Blogmani projemden daha önce bahsetmiştim.
İki gündür, projeyi kendi bilgisayarıma aldığım için hızlı ilerleyebiliyorum. Yaklaşık 20 gündür, sunucu üzerinde değişiklik yapıp, sonuçları bekleyerek boşu boşuna debelendim. Yarım saatlik bir emekten sonra, çok daha hızlı çalışabilmeye başladım. Her kodcunun bazı komik tembellikleri vardır; benimkisi de, çalışma hızı ve rahatlığını artıracak basit işlemlerden sürekli kaçınıyor olmak.
Şu an, basit bir komünite sistemi için “yeterli” olan bazı geliştirmeleri tamamladım. Umuyorum, gece server’a upload edeceğim. Şu haliyle site feci görünüyor ve bazı şeyler darmadağınık. Puanlama sistemini de halledince, Serhan’la birlikte tema gibi konulara da eğileceğiz ve biraz biraz kullanılabilir bir altyapı çıkacak ortaya.
Zamanımın çoğu, Wordpress’in bazı saçmalıklarıyla debelenmekle geçiyor. Bunlardan bir tanesi, usermeta isimli veritabanı tablosu. Nedense, bilinen tüm veritabanı tasarım kurallarına karşı gelerek, kullanıcı bilgilerinin tutulduğu tuhaf bir tablo hazırlamışlar. Wordpress, kullanıcı adı ve şifre gibi temel bilgileri users tablosunda tutarken, isim,soyad gibi bilgileri usersmeta isimli bir başka tabloda tutuyor. Bazı durumlarda, kullanıcı bilgilerini çekmek, deveye hendek atlatmaktan beter. Mümkün değil demiyorum; ama öylesine “çakma” çözümler geliştirmek zorundasınız ki, site büyüdüğünde (özellikle ziyaretçi sayısı arttığında) verdiğiniz yanlış kararların altında ezilmeniz işten bile değil. Bu yüzden, usersmeta’yı olduğu gibi bırakarak -çünkü bazı eklentiler ve iç fonksiyonlar onu kullanıyor ve hepsini değiştirmeye kalkmak, sistemi yeni baştan yazmaktan daha zor-, kritik alanları users tablosuna taşıdım.
Neyse ki, şu an için sorun yok. Aslında, kontrol panelinin tasarımı da ciddi zorlayıcı etkenlerden biri. Buna daha sonra geleceğim; sistem tamamlandıktan sonra, şayet kullanıcı sayısı artarsa, oraya da el atacağım.
Az önce, puanlama sistemine başladım.
Blograzzi’nin izinden gideceğim: Google, Technorati verilerini çekip, bunu başka parametrelerle birlikte kullanıp, puanlama sistemini yazacağım. Daha önce de bahsettiğim gibi, puanlama sır filan olmayacak. En sonunda algoritmayı açıklayacağım; bununla oturup kendi puanınızı kendiniz hesaplayabileceksiniz.
İlk olarak, Technorati verilerini çekmeye karar verdim…hatta çektim de. (Resmi büyütün).

Verileri çekerken izleyebileceğim birkaç metod vardı.
1.Kullanıcının sayfasını technorati içinden açıp, gelen HTML sayfayı parse ederek istediğim alanları çekmek. Bu daha önce yapmadığım iş değil. Hala birileri farkında olmasa da, PHP, RegEx (Regular Expressions – Düzenli İfadeler) konusunda neredeyse PERL kadar iyi; üstelik POSIX ya da PERL uyumlu Reg Ex kullanabiliyorsunuz.
Bunu yapmadım. Çünkü Technorati API’nin varlığından haberdarım ve daha önce bahsettiğim gibi, “uydurma” işleri sevmiyorum (mecbur değilsem, vaktim varsa)
2.Blograzzi’den verileri “çalabilirdim”. Bunu da doğal olarak yapmadım. Birincisi, özellikle veri, fikir ve bilgi hırsızlığına karşıyım. İkincisi, pragmatik bir çözüm olmasına rağmen, bu bir klon site değil. Aslında amacım bir yandan, daha önce Pozitif Linux’ta ve Pozitif PC’de yaptığım gibi, insanları teşvik etmek; birşeylerin sanıldığından çok daha kolay olduğunu göstermek.
3.Son olarak, Technorati API’yi kullanabilirdim ve bunu yaptım.
Gelgelelim, bunun bazı sakıncaları var.
Eğer para ödemezseniz, Technorati, API’si üzerinden, günde 500 query yapmanıza olanak tanıyor. Bunun anlamı şu: sonuçları günlük güncelleyeceksem, üye sayım 500′ü geçemez. Ya da para ödemem gerek, ama para kazanmadan doğal olarak Technorati’ye para verecek halim yok(!).
Birkaç API key almak da bir başka çözüm; kodda minik bir oynamaya bakar;)
Aslında API key’i limitsiz kullanabilsem, Blogmani içine çok çok daha kullanışlı bir dizi fonksiyon ilave edebilirdim. Öte yandan, buna zamanım ve isteğim de yok. Eminim, bir gün projeyi açarsam, birsürü insan bu tür siteler yapacaktır.
Technorati API’lerini kullanmak kolay olsa da, kod hamallığından kaçınmak için hazır bir kütüphane buldum. Duck Soup, bu işi hakkıyla yapıyor. Kodu inci gibi yazılmış. Gelgelelim, Technorati sunucuları pek hızlı sayılmaz; böylece Blograzzi’nin neden sonuçları anlık değilde günlük güncellediğini de keşfetmiş oldum.
Bundan sonra yapacağım şu: bir tablo açıp, Technorati’den çektiğim verileri günlük olarak buraya kaydedeceğim. Bunu da, günün “ölü saatlerinde” yapmam gerek ki, sunucum isyan etmesin. Bu arada, Linux tabanlı sunucumun Cron hakkında bana ne gibi haklar tanıdığını da öğrenmem gerek. Aslında, sunucu elimde olsa, yapacağım iş çok basit: cron.daily içine bir script atacağım; bu da PHP ile yazdığım, verileri toplayıp veritabanına giren PHP kodunu çalıştaracak (komut satırından, ya da shell script içinden, “php phpscriptim.php” şeklinde PHP kodu çalıştırabilirsiniz). Elbette, bu kadar hakkın, paylaşımlı bir sunucu içinde bana tanınmış olacağını sanmıyorum; ama birkaç saat içinde çözebileceğim, basit bir problem bu…
Popularity: 7% [?]
Bu yazıyı beğendiyseniz, şunları da sevmeniz olasıdır: |
| Technorati’yi kim ezecek?...Blograzzi puan sistemi...Blograzzi yavşaklık raporu...Blog ve Rating...Blogmani puan algoritması ve online puan hesaplama...Çöplog: Blograzzi, seçici olmalı...BLOGMANİ, BİR BLOGRAZZI KLONU DEĞİL...Erkekler için örgü,takı ve biçki-dikiş dersleri...Blograzzi’nin puanını bu sefer ben yükselttim; teşekkürler Blograzzi!... |




