Google Search API ile ajax arama

Eğer bir kaynak arıyorsanız, indexlerin güncelliği, genişliği gibi nedenlerden dolayı, diğer arama motorları yerine Google’ı tercih etmek, iyi bir karar olarak düşünülebilir. Yaptığınız Google aramalarını programatik olarak yapmak ve sonuçları herhangi bir şekilde kullanmanın sayısız örneği verilebilir.

Örneğin, sayfanıza site içi arama eklemek istiyorsunuz. Sayfanıza ait içeriği eğer Google zaten tarıyorsa, site içi aramanız aslında basit bir Google araması ile yapılabilir. Biliyorsunuz Google’da “site:mfyz.com” şeklinde arama yapılacak domaini filtreleyebiliyorsunuz. Dolayısıyla site içi aramanızı, herhangi bir algoritma yazmaya gerek kalmadan, hatta sadece tarayıcıda javascript ile yapabilirsiniz.

Google’un istemci altyapıları için sunduğu JSON tabanlı bir arama APIsi var. Bu api sayesinde normal bir Google araması yapabiliyorsunuz.

Bu API’yi basit bir HTTP isteği ile kullanabiliyorsunuz. Herhangi bir Google araması yapıyormuş gibi bir sorgu gönderip cevabını json olarak alıp işleyebiliyorsunuz.

http://ajax.googleapis.com/ajax/services/search/web?v=1.0

Aramanızı bu URL’e gerekli parametreleri ekleyerek yaptığınızda Google en fazla 8 sonuç verecek şekilde dönüyor.

Cevap olarak dönen JSON içeriği uzun olduğu için burada göstermeyeceğim. Ama birkaç parametreyle gelen sonuç kümesini kullanabilir, sayfalama ve sonuç boyutu gibi parametreler ile sayfalama yapabilirsiniz.

Asıl kullanacağınız sonuç değeri, arama sonuçlarının bulunduğu **response.responseData.results** sonuç kümesi olacaktır. Basit bir nesne dizisi olan bu değeri javascript ile ekrana doğrudan basabilir veya sunucu taraflı bir kod ile işleyebilirsiniz.

Google bu API ile tek istekte en fazla 8 sonuç döndürüyor. Nedenini kesin bir şekilde bilmiyorum fakat güvenlik nedeniyle olduğunu tahmin ediyorum. Eğer 8’den fazla sonuç göstermek istiyorsanız birden fazla api çağrısı yapmak zorundasınız veya istemci tarafında sayfalama yaparak sonuçları sayfalama ile gösterebilirsiniz.

Sayfalama için API çağırısında göndereceğiniz **start** parametresi, arama sonuçlarının başlangıç sırasını belirtiyor. Eğer belirtilmezse geçerli değeri 0 olacaktır. Bundan sonra 8, 16, 24… şeklinde ikinci, üçüncü sayfaya ait sonuçları, ek çağrı yaparak yükleyebilirsiniz.

Burada kontrol etmeniz gereken tek şey, toplam bulunan sonuç kümenizde yeterli sonuç olup olmamasıdır. Yani eğer kullanıcı son sayfada ise “Sonraki Sayfa” linkini göstermemeniz gerekir. Basit bir sayfalama için;

toplam sayfa sayısı = toplam sonuç sayısı / sayfa başına düşen sonuç sayısı

bölümünün üste yuvarlanması ile bulunur. Bunu Google size toplam bulunan sonuç sayısını tahmini şekilde söylüyor.

Sonuç kümesindeki **response.responseData.cursor.estimatedResultCount** parametresi size sayısal olarak tahmini sonuç sayısını söyleyecektir. Sayfa sayısını hesaplayarak gerekli sayfalama navigasyonunu oluşturabilirsiniz.

Örneği kodlayalım

Yazının başlarında verdiğim site içi arama örneğini javascript ile kodlayalım. Doğrudan tüm kodu verip açıklayacağım.

HTML tarafında ihtiyacınız olan iki ana parça, arama formu ve sonuçları listeleyeceğiniz bir tablo veya liste.

Javascript tarafını jQuery kullanarak yazarak HTTP çağrısını, JSON sonucunu işleme, html elemanlarını yönetme gibi birçok kısmı kolayca halledebilirsiniz.

İlk yapmamız gereken şey arama formundan arama sorgusunu yakalamak ve arama butonundaki tıklama hareketini yakalamak olacak. Bunun için butonun tıklama olayını yakalayıp text alanının içeriğini alıyoruz.

Google’un arama APIsini basit bir HTTP isteği ile kullanacağımızı söylemiştim, sonuç bir json nesnesi olduğu için jQuery’nin http istek yardımcı methodlarından **getJSON** methodunu kullanarak hem isteği yönetebilir hem de cevabı işleyebiliriz.

Yukarıdaki javascript methodu basit bir HTTP çağrısı yapıp gelen json cevabını işliyor. Basitçe bir liste elemanı (ul) içeriği oluşturuyoruz. Gelen sonuç dizisini bir HTML koduna dönüştürüyoruz. Methodun sonunda ise oluşturulan HTML kodunu liste elemanınımıza ekliyoruz.

Bu methodda gördüğünüzü ilk parametre, arama formundan gelen arama sorgusu, ikinci parametre ise, sayfalama için Google APIsine gönderilecek olan sonuç başlangıç indeksi. Bu sayede bu fonksiyonu tekrar çağırarak ikinci, üçüncü ve diğer sayfalardaki arama sonuçlarını yükletebiliyoruz. İlk arama yapılırken yani yukarıda ilk verdiğim javascript kodunda çağırılan arama methodu “0” başlangıç parametresi ile çağrılıyor.

Bu methodda dikkatinizi çekmiş olan bir nokta da arama parametresin sonuna “site:mfyz.com” eklemiş olmam. Sorguya eklenen bu kısım, yapılan aramanın sonuçlarında sadece o domain’deki sayfaları döndürmesini sağlayacaktır.

Yukarıdaki HTML çıktısını CSS ile işleyebilirsiniz veya arama formunu “ara” butonu ile değil eş zamanlı arama gibi her tuşa basıldığında belirli bir zaman aşımı ile girilen kelimeyi yakalayıp arama yapabilirsiniz.

Yeni arama kutusu

Site içi arama, mfyz.com’un öneki sürümlerinde vardı fakat son iki sürümde kaldırmıştım bu özelliği. Daha doğrusu tekrar yazmam gerekiyordu fakat zaman bulup tekrardan yazamamıştım.

Tepedeki navigasyonun sağ kısmını yani üye işlemleriyle ilgili kısmını daha da ufaltarak arama kutusu koydum. Tıkarsanız kutu büyüyecek ve yazdığınız sorguya göre anlık arama yapacak sitede. Bunun için google ajax api’lerini kullandım ve basit bir javascript sonucunda anlık arama sağlayabiliyorum artık.

Genellikle döküman ve forum konuları sonuçları bulsa da sitede aradığınız birşeyi bulma konusunda çok yardımı dokunacaktır diye düşünüyorum.

Siz de sitenize buna benzer bir live search koymak isterseniz, google Ajax api ile web veya görsel araması gibi işlemler için çok güzel hazırlanmış bir jquery örneği var, ekteki linke tıkalayarak örneği inceleyebilirsiniz.

http://tutorialzine.com/2010/09/google-powered-site-search-ajax-jquery/

Pharma hack (Google Cloaking Hack) nedir?

Pharma hack nedir?

Pharma hack bır çeşit SEO saldırısıdır. Asıl adı Google Cloaking Hack’dır. Sitenizi html çıktısını kullanıcıya göre manipüle etmek üzerine kuruludur. Pharma hack adını genellikle internette cinsel sağlık ürünleri veya besin takviyesi satan şirketlerin bu hack ile trafik kazanmaya çalışmasından almıştır. Yani bu hack sadece sitenizin arama motoru trafiğini kesmez. Tabi siz analitics yazılımlarda bir trafik kaybı görmezsiniz. Sadece bounce rate’iniz her gün yükselir ve dış trafiğiniz artar. Bu da pagerank’ınızı kaybetmeninizi sağlayabilir.

Büyük tehlike ise sitenizin sansürlenmesi. Türkiye’de son dönemde birçok sitenin/blogun sansürlerden dolayı engellendiğini görüyorsunuz. Bu filtreler genelde halka açık ortamlar, eğitim kurumları gibi alanlarda çok daha etkin. Yani zararsız bir siteye sahip olsanız bile bu hack ile MEB ve BTK’nın google indeksleri ile edindiği site bilgisi genelde cinsel sağlık ürünleri olacağı için muhtemelen siz o içeriğe sahip olmasanız bile okullar, internet cafe’ler gibi yerlerden otomatik olarak filtrelenmiş olacaksınız.

Nasıl oluyor?

Pharma hack sitenize doğrudan ziyaretle anlayamayacağınız bir saldırıdır. Siteniz doğrudan gelen ziyaretçilere normal çıktısını verir ve tarayıcıda doğrudan sitenize giren insanlar sitenizi görmeye devam ederler, böylece siz de anlamazsınız pharma hack altında olduğunuzu.

Ama arama motoru botları sitenizi taramaya çalıştığı zaman sitenizin hack kodu sitenizin sayfa başlığı, anahtar kelimeleri gibi meta etiketlerini değiştirip sayfa içeriğinde istedikleri anahtar kelimeleri de ekleyerek sitenizin çıktısını manipule eder. Böylece pagerank’ınızı kullanarak arama motorlarından gelen trafiğinizi çalarlar. Böylece sitenize ait tüm google indeksleri bir sonraki güncellemede o anahtar kelimeleri alır. Eğer siteniz yüksek page rankına sahipse o anahtar kelimelerde üst sıralarda çıkar ve kullanıcı linke tıkladıgı zaman sayfanızdaki ufak bir javascript kodu kullanıcıyı başka bir sunucuya yönlendirir. Arama motoru trafiğiniz yanlış içerikle sunulur ve kısaca arama motoru trafiğiniz başka bir siteye yönlendirilir.

Sitenizde pharma hack var mı?

Sitenizi sayfaları kontrol ederek pharma hack olup olmadığını anlayamazsınız. Birkaç yolu var;

1) Tarayıcınızın User Agent’ını GoogleBot olarak değiştirip sitenize girebilir, sayfalarınız öyle kontrol edebilirsiniz.

2) Google Webmaster Tools’a kayıt olup sitenizi ekleyip google botun sitenizi nasıl taradığını görebilirsiniz. Googlebot site sitenizin verdiği HTML çıktısını gösterecektir. Meta etiketlerinizi ve sayfa içeriğinizi kontrol edip fakrlı olup olmadığını görebilirsiniz.

Ne tür uygulamalarda yapıyorlar?

Benim gördüğüm örnekleri popüler php hostinglerde ya sunucu kontrolünü ele geçirdikten sonra tüm hesaplara ya da sadece sizin hesabınızı ele geçirdilerse sizin hesabınızda yapılan birkaç ufak php numarasıyla sayfalarınızı arama motoru botlarında farklı render etme üzerine kuruludur. Eğer bir wordpress bloguna veya joomla, drupal gibi bir CMS kullanıyorsanız muhtemel olarak tehlike altındasınız demektir çünkü ele geçirilmesi, gizlenmesi en kolay ve hackerların hedef kitlesidir.

Örnek bir pharma hack kodu göstermem gerekirse:

Bu kod wordpress bloglar için özellikle yazılmış bir pharma hack kodu. Genelde sitenizde her sayfada çalıştırılan bir dosyada yer alırlar. (bootstrap.php, common.php, db.php vs…)

Google plus app altyapisi yapmayi planliyor mudur?

Google plus buyuk bir sisirme ile release oldu herkes hesap aldi hicbir hareket olmadi, tam da bir google social network faili dememize ramak kalmisti ki hizli bir sekilde oyunlar sonra da marka sayfalarini acti, dolayisiyla oyun sirketleri oyunlarini google plus’a tasimaya, sirketler de markalari icin sayfalar uretmeye basladi.

Acikcasi birkac kere bilindik techcrunch, mashable ve birkac apple fan sitesinin accounlarini takip etme girisimim oldu ama hicbir zaman twitter veya facebook feedim gibi takip eder olmadim google plusu, hatta notificationlari cok dogru yerlestirmis olsalar dahi hic ilgimi cekmedi kosedeki 3-5 rakami google plus barindaki.

Sonuc olarak googel plus icin tek cikis yolu senaryom var ve bundan cok buyuk oranda eminim ki google bu konuda sadece dogru zamani bekliyor herkese sunmak icin. Bu yol da tabi ki gelistiricilere bir uygulama altyapisi sunmak, bakin facebook her gun oyuncak gibi apisini, app policy’lerini degistirip duruyorlar, kimse de gikini cikaramiyor buna ragmen her sitede like, comment butonlari, connect ile 1-click signup’lar goruyoruz. Nedeni ise uygulamalar icin bas agrisiz bir kullanici deneyimi sunmalarini saglayacak cok guzel bir arac sunuyorlar.

Google plus boyle bir altyapiyi sunsa facebook’dan cok cok cok daha guclu olacagina inaniyorum, cunku evet facebook veri sunuyor fakat veriyi sunma, gosterme vs konusunda bir arac degil, sadece veri kaynagi, su an populer cunku elindeki veri cok guvenilir yuksek oranda dogru ve tekil (fake accountlarin orani o kadar cok da degil)

Google’in harita, docs, takvim hatta gmail’e bile izinli erisim saglamasi akilalmaz uygulamalar gelisebilecegini gosteriyor bana. Ha insanlar bir parca yapiyor bunu zaten. Tabi senaryo bu kadar kolay ve parlak degil. Google nasil yapacagini bir sekilde cozmeli ve elindeki kisisel veriyi dogaltmanin yolunu bulmali. Kimse google’daki profillerini doldurmaya yeltenmiyor, dogru bilgi sunmaya calismiyor.
Eger google bu altyapi ile dogru bilgileri sunabilir hale gelirse facebook’a zor zamanlar yasatabilir tabi facebook’un sadece izleyici oldugunu varsayiyorum bu senaryoda 🙂

Ne kadar cenemizi yorsak da popcorn’umuzu hazirlayip izlemek disinda yapabilecegimiz birsey yok.

Google Music icin iOS web uygulamasi yayinladi

Google gecen gunlerde music servisinin iOS tarayici uygulamasini yayinladi. Beni sasirtan sey yillardir insanlar native uygulama mi yoksa web app mi diye mobil sunumlarini doldurup durdular, hatta ben de hatirliyorum bunu yaptigimi defalarca. Sonunda herkes native uygulamanin avantajini soyleyip durup tarayici uygulamalarini yerlere vuruyorlardi. Google gmail vs gibi bircok tarayici uygulamasindaki basarisini burada da gostermise benziyor. Ilk denememde ilk merak ettigim tarayici kapandiginda da calismaya devam edip etmemesiydi, tabi ki devam ediyormus. Diger sey ise iphone veya ipad’den cihazdaki kontrollerle tarayicidaki kontrolleri yonetebilmekti. Bunun anlami iphoneu kapatsam bile kulakliktaki tuslarla kontrol edebilecegimdi. Son olan sey ise airplay ile muzigi televizyona daha dogrusu apple tv bagli ses sistemine yayin yapabilmekti ve burada gercekten sok oldum. Sonuc olarak google ios tarayici uygulamalari konusunda asfalti aglatmis biraz.

Denemek icin sahip oldugunz google hesabinizla iOS cihazinizda safariden music.google.com adresine girmeniz yeterli.

Tabi ki native bir uygulamanin yerini tutmaz ve en kisa zamanda ios uygulamasini gorecegimizi dusunuyorum google music sevrisi icin. Google music’de gordugum tek eksik sosyal bir yaninin olmamasi. Su an ortaya cikan servislerin sosyal networklere bagli olmamasi gibi bir secenegi olmadigini dusunuyorum artik. Umarim google bu sosyal aglari sallamama tavrini yeni servislerinde de devam ettirmez. En azindan google+ entegrasyonu yapmalari viralite icin servisin kaderini etkileyecek bir unsur bana gore.

Surada tech crunc’daki habere ait google music ekran goruntulerini gorebilirsiniz.

Kaynak: http://goo.gl/I09yh

PingSitemap: Yeni sayfalarınız için arama motorlarını haberdar edin

Sitemap’ın öneminden ve nasıl üreteceğinizden daha önce bahsetmiştim (Dinamik sitemap.xml oluşturmak).

Sitemap.xml dosyanızı oluşturdunuz peki sonra?

Tabiki arama motorları servislerinin botları sitenize geldiğinde ilk olarak sitemap.xml’inizi bulmaya çalışacak, bulduğu zaman da site indeksini hızlıca çıkaracaktır. Fakat botlar sık sık sayfalarınızı gezse de sitemap.xml’inizi her zaman anlık olarak kontrol etmezler.

Arama motorlarının ping servisleri vardır ve bu servisleri kullanarak sitemap.xml’inizin güncellendiğini, hemen kuyruğa alınmasını istediğinizi belirtebilirsiniz. Bu uygulamayı birçok büyük web servisi, wordpress, blogger gibi blog hizmeti veren servisler, hatta kendi sunucunuza kuracağınız wordpress de bunu yapmaktadır.

Yeni bir içerik girildiği zaman sitenize yeni sayfalar eklenmiş, bazı varolan sayfaların da güncellenmiş olması anlamına gelmektedir. Arama motorlarının bu değişiklikleri hemen tarafamasını isterseniz az sonra anlatacağım ufak teknikle bunu yapabilirsiniz.

Ping servisleri

Arama motorlarının birçoğu ping servisini bir URL üstünden sitemap.xml dosyanızın adresini alarak yapar. Aslında bir çeşit kayıt olma işlemidir ama çok daha basit hali. Örneğin google’ın ping servisi

şeklindedir. Tabiki bu url’in sonuna sitenizin sitemap.xml dosyasının url’ini vererek bu adresi çağırmanız gerekir.

Şimdi kod üzerinde bir dizide popüler arama motorlarının ping servisleri ve yapılarını göreceksiniz. Zaten kodun yaptığı işi hemen anlayabilirsiniz. Basitçe sitemap.xml dosyanızı belirten urlleri "file" fonksiyonu ile almaya çalışıyoruz. Zaten bu url’ler ziyaret edildiği ve cevapları geldiği için bu servisler pinglenmiş olacak.

Dinamik sitemap.xml oluşturmak

“Sitemap nedir? Önemi nedir?” diyenler şuradan (Vikipedi: Site haritası) başlasınlar.

Şimdi gelelim öneminden çok üretilmesine. Basit bir xml aslında. Fakat eğer sürekli güncellenen yapıda bir siteniz var ise bu xml’i periyodik olarak yenilemeniz gerekir. Tabi ki yüzlerce sayfası olan bir sitede (örneğin blog) bu linklerin envanterini bir xml’de tutmak oldukça zor olacaktır.

Çoğu web uygulamasında sayfaların içerikleri veritabanında tutulan bilgilerin listelenmesi ve detay sayfalarından oluşmaktadır. Yazılar, Arşiv sayfaları, Fotograf sayfaları, Forumlar, forum konularının bulunduğu sayfalar vs. Bu sayfaları listeleyen/gösteren php dosyaları olduğunu düşünürsek sitemap.xml’i oluşturacak kodun bu içerikleri sadece adresleyerek listelemesini yapacak bir kod olduğunu söyleyebiliriz.

Bu içerikleri listeleyerek sadece o içeriklere ait sayfaların URL’lerini oluşturan bir php dosyası düşünün. Basitçe örnekleyeceğim.
Mesela forum adında bir tablonuz var ve bu forum’un site haritası için sadece URL’leri gerekli ve bunu oluşturan ufak bir kod vermek gerekirse :

bu kod, forum konularının sayfalarını URL dizisi olarak oluşturur. Yani 156 nolu forum konusuna erişilecek URL http://mfyz.com/?/konu/156/ şeklindeyse bu URL’i veritabanının yapısına göre oluşturduğunuzu düşünün.

Şimdi sitenizin diğer bölümlerini de bu URL listenize ekleyin. Bu liste 50.000 URL’e kadar olabilir, çünkü sitemap.xml dosyalarında en fazla 50.000 url indeksleyebilirsiniz.

Bütün url listenizi oluşturduğunuzda aşağıdaki yapıda bir XML oluşturmak için gerekli ufak php kodunu vereceğim.
Önce örnek bir sitemap.xml dosyasına bakacak olursak:

Burada urlset nodu içinde url elementini ve loc, lastmod, changefreq, priority alt elementlerini görebilirsiniz. Şimdi basitçe elinizde olan sitedeki tüm sayfaları belirten URL dizisini dönüp bu XML’i oluşturabiliriz.

Eğer veritabanınınzda bu sayfaların oluşturulma tarihleri gibi bir bilgi saklıyorsanız XML’de bunu belirtmeniz iyi olacaktır. Bundan önemlisi changefreq ve priority’dir. changefreq belirttiğiniz url’deki sayfanızın değişme sıklığını arama motoruna söyler. Arama motoru da o değişiklik sürecine göre o sayfayı o periyodda tarayacaktır. Priority de o sayfanın sitenizdeki içerik etkisini ifade edebilir. Mesela forum sitenizin asıl içeriği olmayabilir, ya da fotograflar sitenizin içeriğine çok etkisi olabilir ve 0-1 arasında yüzdelik belirtir gibi öncelik belirtebilirsiniz.

Şimdi bir URL dizisini sitemap.xml dosyasına çevirecek php koduna bakarsak:

en son XML_Content değişkeninde sakladığınız içeriği

ile sitemap.xml dosyası olarak kaydedebilirsiniz. Bu işleri yaptırdığınız php dosyasını da sunucunuzun cron’una haftada veya ayda bir çalışacak şekilde ayarlarsanız site içeriğinizi düzenli olarak bu dosyada toplayabilirsiniz.

Siteye yeni bir içerik eklendiği zaman da bu betiğinizi tekrar çalıştırarak eklenen içeriği doğrudan sitemap.xml’inize ekleyebilirsiniz.

Google Webmaster Tools kullanarak bu sitemap.xml dosyanızı google botlarına düzenli kontrol etmesi için gönderebilir, google’ı pingleyerek bu dosyayı taramasını söyleyebilirsiniz. Arama motoru servislerini pinglemek ile ilgili konuyu başka bir yazıda anlatacağım.

URL kısaltma servisleri taranabilirliği azaltıyor mu?

URL kısaltma servisleri şu an özellikle sosyal ağlarda otomasyonlarla fln çok fazla kullanılıyor. Uzun url’leri kısa url’lere çeviriyor fakat acaba arama motorlarının botları bu url’leri takip ederken gerçekten son yönlendirilen url’i mi hesaba katıyor?

Arama motorlarına göre dış bağlantı sayısı oldukça önemli bir kriter biliyorsunuz, ama kısa url’lerle aslında dışarıda kaç bağlantının geldiğini tam olarak sayamıyor oluyor botlar.

Belki de friendfeed veya twitter gibi servisler bunu engellemek için bu servisleri kullanıyorlardır. Mesela friendfeed ff.im domainini kullanıyor, yani kendi servisi ve public bir servis değil. Yani google’a göre friendfeed ile ff.im adresleri birbirlerini besliyor ama dışarı bağlantı vermiyorlar.

Tabi arama motoru botlarına bu konudaki problemin çözümünü öğretmek zor değil.

Benim dalgam senin dalganı döver!


Google Wave çıktı, büyük bir ses ile çıktı, insanlar facebook’un tahtını kapacak fln dediler, insanlar günlerce invite aradı (biz de), e invite aldık içeri girdik, ne anlaşılır bir yapı ne de user friendly bir kafa. Sosyal medyanın kendi kendine virütik özelliğini kapamamış bir araç çıktı.

Teoride plug-in, extension, oyunlar, araçlar ile iletişimi zenginleştirme gibi amaçları var belki şu an closed-beta olmasından dolayı mıdır bilmiyorum ama kimse girip wave içinde zaman geçirmeye çalışmıyor. Friendfeed gibi akıcı bir yapısı yok.

Sonuç olarak ileride neler olur bilmiyorum ama bana göre google wave başlangıcı fail olmuş bir proje. Gmail veya google reader/calendar gibi eski örnekleri değerlendirdiğimde onların başlangıcı her ne kadar kapalı-beta başlasa da bu kadar “insanların hayal kırıklığı” ile sonuçlanmamıştı.

Not: Başlığı her türlü yorabilirsiniz, ne kadar fesat olduğunuza bakar 🙂

2 Döküman ve kısa soluklu yapılacaklar

Uzun süredir hiçbirşey yapmıyordum, sanırım yavaş yavaş kafam rahatlamaya, boş vakit bulmaya başladım. Forumdaki bazı ufak problemleri düzelttim. Şimdi tekrar kolları sıvadım ve kısa sürede birçok yenilik ve döküman görmenizi istiyorum açıkcası.

⭐️Neredeyse 3-4 günümü alan google chart api’nin kullanımıyla ilgili özenle hazırladığım döküman şurada :
Google Chart API ile grafik çizdirmek ⭐️⭐️⭐️⭐️ ⭐️

Ayrıca macosx için ücretsiz yazılımlar hakkında da bir şeyler karaladım :
Mac OSX için ücretsiz yazılımlar

Sıradaki yapılacak iş : WebBlog için sayfalama, listeleme
Anasayfa’da gördüğünüz yazıların eskilerine ulaşamıyorsunuz, yakında ulaşacaksınız.