Zırvalama Tahtası symfony, debian, PHP5, SQL ve pek çok ayrıntı

24Aug/100

Topluluk ve tasarım

Aşağıdaki yazıyı 2007 Kasım'ında yazmaya başlamış ancak daha sonra ilerde devam ederim diyerek taslak halinde bırakmışım, arşivde gezerken fark ettim ve yarımda olsa yayınlamaya karar verdim. Kime, ne yardımı dokunur bilemiyorum. Katkıda bulunabilir, devamını getirebilirsiniz.

Grafik ve tasarım birbirinden ayrılmaz ikili olsa da her ikise birbirinden farklı işlerdir. Grafik oranı düşük ancak temiz öğeler ile hazırlanmış pek çok site dolaşıyor etrafta ve bunların pek çoğu web 2.0 kavramı ile hareket ediyor. Hayır öyle janjanlı değil sadece temiz yalın tasarımları olan ve içeriği kullanıcıların belirlediği siteler. Peki 10 sene önceki web'te olup bitenler ve bugün'ü karşılaştırdığınızda neler görüyoruz? Yani akımları ve modaları kastediyorum. 10 sene önce arkaplanda yanıp sönen yıldızlar vardı. her taraf sadece hareketli olsun diye donatılmış gifler vardı. Ve insanlar internette bir şeyler yapmaya çalışıyordu (I kiss you). Kimileri başardı kimileri başaramadı. Başaranlar yeni akımlar oluşturmaya veya onları takip etmeye devam ettiler. 10 sene öncesinin arka planında ışıklar, yıldızlar olan siteleri hala ayakta ve bir taraftada yeni anlayışın oluşturduğu siteler var. Peki kimler hangilerini tercih ediyor ve neden?

Kişisel olarak izlenimim dünün genç olanları, geliştirdikleri unsurları/fikirleri kullanan siteleri tercih ettiği yönünde. Yani eğer 25 yaş üstü iseniz ve şimdiye kadar sadece chat yapmak yerine bir takım oluşumları takip etmiş bir şeyler yapmak için çaba göstermiş iseniz içeriği kendinizin belirleyebildiği siteleri tercih ediyorsunuz.

Oysa dünün orta yaşlıları veya interneti hatun/erkek düşürme mekanı için sınırsız bir kaynak olarak görenler hala arka planında yıldızlar parlayan siteleri tercih ediyorlar çünkü ne kendilerini ne de içinde bulundukları toplulukları geliştirmek yönünde hiç bir çaba gösterme gereği duymadılar. Zevkleri ve görüşleri aynı kaldı. İnce ve temiz tasarıma sahip toplulukların içerisinden zeki ve kültürlü insanların bulunması, hala bir şeyler yapma isteğini dürtükleyen ve bunun için çaba gösteren insanların bulunmasından ibaret.

Filed under: Bu ne?, Genel, Kişisel, ben No Comments
7Jul/100

Web site istatistikleri ve collectd

Bir web sitesinin büyüme istatistiklerini oluştururken ilk başlarda bir hesap tablosu yeterli olabilmektedir ancak büyüme devam ettikçe bu hesap tablosu anlamsızlaşacak ve büyümenin yavaşladığı veya düştüğü zamanlar için geriye dönük izleme yapmak zorlaşacaktır, bu durumda patronlara elimizdeki veriyi daha anlaşılır cicili bicili grafikler çıkartacak ufak tefek yazılımlar hazırlamak bizim en önemli vazifemiz haline gelir ve buda takdir edersiniz ki sıkıcı bir iştir.

Yıllardır pek çok farklı ürün/servisde kullanılan rrd ve rrd araçları bu sıkıcı işleri bizim yerimize yapabilir ancak bu seferde rrd komutuna ait parametreleri neyi nasıl yaptığını öğrenmemiz, deneyimlememiz gerekiyor. Elbette rrd ve araçlarını kullanan farklı uygulamalar için eklentiler yazabilir ve ağ trafiği, bağlantı durumları, yük vb. sistem izleme araçlarının yanında kendi yazılımımız için grafikler oluşturulmasını sağlayabiliriz. Aşağıda collectd isimli veri toplama aracının dbi modülünü kullanarak bir web sitesinin kullanıcıl sayılarını alan ufak bir yapılandırma mevcut. Aşağıdaki yapılandırma sayesinde günlük kullanıcı sayısındaki ivmeyi görebiliyoruz. Birde buna her gün kayıt olan kişilerin sayılarını eklersem eğer tam olacak :)

<Plugin dbi>
  <Query "users">     
     Statement "SELECT count(*) as count FROM users" 
     <Result>
      Type "gauge"
      InstancePrefix "users"
      #InstancesFrom "count"
      ValuesFrom "count"
    </Result>
  </Query>
  <Database "xxxxx">
    Driver "mysql"
    DriverOption "host" "xxxxxxx"
    DriverOption "username" "xxxxxxxxx"
    DriverOption "password" "xxxxxxxxx"
    DriverOption "dbname" "xxxxxxxxx"
    SelectDB "xxxxxxxxxx"
    Query "users"
  </Database>
</Plugin>

bu yapılandırmanın ürettiği grafik ise aşağıda

kullanıcı sayısı

(Yazar) Sevgili günlük
(Günlük) .....
(Yazar) Yeniden biçimlerdir beni.
(Günlük) Mucizeler departmanı yukarda canım.

Filed under: Genel No Comments
14Jun/102

Lucene + Zemberek + Cassandra = Lucandra

Lucandra, lucene indexlerini Cassandra'ya yazarak indexlerin birden fazla makinede tutulmasını (partition ve replication) sağlıyor, böylece ölçeklenebilir lucene indexleri elde edilerek arama için tek noktada oluşacak bir hata ile arama özelliğinin devre dışı kalmasının önüne geçiliyor.

Bir süredir bu proje benimde ilgimi çekiyordu ancak Türkçe için yeterli değildi, zira Türkçe için kök bulmak problemli idi ve buna bir çare bulmak gerekiyordu, 2 sene önce açık kaynak günlerinde bu konu ile ilgili olarak yapılan çalışmalar arasında kök bulucu olarak zembereğin kullanıldığını duymuş ve kök bulmak için neden lucandra'ya zemberek eklemiyorum diye kendi kendime sormaya başlamıştım. İlk bir kaç günlük tırsıntı ve kaynak kod okuma ile geçen zaman sonrasında projenin forklanması ve toplam 3 ana commit ile (daha fazla commit'im var ama içlerinden 3'ü önemli) zemberek kök bulucu sistemi projeye eklenmiş oldu. Sadece lucene ile değil solr ile de kullanılabilinir durumda. Zembereğin eklenmesi için yaptığım değişiklikler, 1 satır silmek, 5 satır eklemek, 1 satırda değişiklik yapmak, 3 adet kütüphaneyi (zemberek-cekirdek, trlucene, zemberek-tr) lib dizinine eklemekden ibaret, tabii birde kök bulucu içerisinde yer alan "gereksiz kelime"lerin güncellenmesi var.

Şimdilik sadece Türkiye Türkçesi ile çalışıyor ancak Azeri Türkçesi ve Türkmence Türkçesi için de çalışmasını isterseniz tek yapmanız gereken bu iki dile ait zemberek kütüphanelerini lib dizinine eklemek ve başlangıç sırasında -Dlucene.analyzer= parametresi ile hangi dil için analiz yapılacağını belirtmenizden ibaret.

Henüz Türkçe desteği mainstream'de yer almıyor (pull request gönderdim, bekliyorum), eğer denemek isterseniz http://github.com/selam/Lucandra adresinden kaynak kodları alabilirsiniz.

Filed under: Genel 2 Comments
15Jan/100

Solr ile rastgele sonuçlar

Eğer arama motoru olarak solr kullanıyor ve mevcut veri index'iniz üzerinde rastgele sıralı sonuç getirmek isterseniz iki yönteminiz var, birincisi schema.xml içerisinde bir random sort field'i tanımlamak diğeri uygulamanız üzerinde bu işlemi çözmek, (her ikisinide yapabilirsiniz elbette) random sort alanı sadece verinizi index'lerken veya index'den çıkartırken oluşturulur ve iki veri güncellemesi arasında aynı sıralamayı alırsınız. Bu sizin için yeterli değilse izleyebileceğiniz bir diğer yol, arama kriterleriniz ile sadece 1 satır sonuç dönecek şekilde gerçekleştirmek ve arama kriterlerlerinize uygun olan sonuç sayısını öğrenip bu sayı içerisinden bir başlangıç noktasını rastgele belirledikten sonra tekrar istediğiniz satır sayısı ile aramayı gerçekleştirmek.

1 = Arama kriterlerine göre arama yap ve kaç sonuç olduğunu öğren (100)
2 = istediğim sonuç sayısını toplam sonuç sayısından çıkart, (100-90)
3 = geriye kalan sonuç sayısından rastgele bir başlangıç noktası seç (start = random.intchoice
4 = aramayı tekrarla

Kolay gelsin.

Filed under: Genel No Comments
4Jan/100

sineapi

Sinelist projesini bir türlü tamamlayamamış ve henüz yapmak istediklerimin %10'nu bile yapamamış olmama rağmen bir süredir bilmemkaçıncı versiyonunu yazmaya başladım, bu sefer kullandığım teknik ise veri tabanı yapısını schemaless bir yapıya çevirmek, herşeyi json objeleri olarak saklamak ve kullanmak. Bununla birlikte daha ölçeklenebilir bir yapı için proje içerisinde yer alan işlevlerin tamamını web arabiriminden çıkartarak sineapi ismini verdiğim bir api'ya geçirdim. projenin tüm ihtiyaçlarını arka tarafta bu api ile hazırlayarak web arabiriminden kullanıcılara sunmayı planlıyorum. Her ne kadar api açık kaynaklı olsada zamanla tüm ihtiyaçlar için api'ı kullanacağımdan projenin şimdilik belirsiz bir noktasında geliştirmelerin tamamını dışarıya açmayabilirim, ancak mevcut kısmı incelendiğinde schemaless bir projenin nasıl olabileceği görülebilinir. Eğer bir servis geliştirmeyi düşünüyor, bu servisi mobil cihazlar, masaüstü ve diğer web uygulamalarının yazılabilmesi için bir api ile verinizi erişime açmak istiyorsanız mevcut halini şu an itibari ile api yetkilendirme için kullanabilirsiniz.

Not: Her türlü kod gözden geçirmeyi başımın üstünde tutarım.

Filed under: Genel No Comments
8Dec/090

Özgür yazılım, özgür toplum

Richard stallman'ın yazılarından hazırlanan bu kitabı fazlamesai'de haberini gördüğüm gün siparişini vermiştim ve bu gün elime ulaştı. mutluyum heyecanlıyım. Yazılım'ın sadece bir "iş" ve bu işin etrafındaki yönelimler olmadığını zaman zaman hatırlama ihtiyacı hissediyordum, benim gibi zaman zaman "ne yapıyoruz" diye düşünenler için göz attığım kadarı ile iyi bir kitap olduğu kanaatindeyim.

Filed under: Genel No Comments
24Nov/090

Bankalar ve yanlış bilgilendirmeleri

Çok sinirleniyorum bu tür basit şeylere ama hak ediyorlar sanki,

Daha önce Akbank'a ait banka hesabımın ATM kartını kaybetmiş ve yenisini istemiştim, yenisi elime ulaştığında kartın içerisinde bulunduğu zarfın içerisinden çıkan tanıtım broşüründe istersem şifremi telefon bankacılığı ile yapabileceğimi yazıyordu bende doğal olarak aradım ve tam 14 dakika boyunca telefonda bekledim, sonunda telefona yanıt veren görevli bu işlemi telefon aracılığı ile yapılamadığını şubeye gitmem gerektiğini söyledi. 14 dakika boyunca bir telefonun ucunda beklemektense şubeye daha kısa zamanda gidebilirdim tabii beni yanlış bilgilendirmeseydiler, saygılarımı sundum tabii o ayrı.

Bu gün ise yapı kredi bankasına bir süredir zarfında beklemekte olan ait kredi kartımın şifresini tanımlamak istedim, zarfı açtığımda yine katrın yapışık olduğu kağıt üzerinde şu ibare yer alıyordu

"Tele24'lerden, yurt dışında Visa ve/veya MasterCard sistemine bağlı ATM'lerden yararlanmak ve alışverişlerinizi onaylamak için gereken kredi kartı şifrenizi Yapı Kredi İnternet Bankacılığı'nı kullanarak ya da 444 0 444 Yapı Kredi Telefon Bankacılığı'ndan önce 3'ü sonra 1' tuşlayarak belirleyebilirsiniz"

Tabii ki internet bankacılığı kullanarak şifre belirlemek mümkün değildi, ve telefon ile şifremi belirledim.

Kızdığım şey ise, madem yapmıyorsun neden yazıyorsun, madem yazıyorsun neden yapmıyorsun? acaba bu tür ufak ve tefek bilgilendirme hataları ne kadar nakit'e mal oluyor. sadece benim gibi bir müşteri için değil banka için de yapmadığı şeyi yaptığını söyleyen satırları yazmak için mürekkep'den tutun da zaman kaybına ve bu kaybın yol açtığı maddi zarar'a kadar hesaplayabilirmiyiz veya bunun hesabını sorabilirmiyiz? Ha tabii ki hesabı sorulması gereken daha pek çok şey var, birileri bizim hesabımızı sormadan.

Filed under: Genel No Comments
1Oct/091

Dikkat edilmesi gereken projeler

Son zamanlarda ilgilenmeye başladığım uygulama/projelerden bazılarını yazayım dedim, özellikle cometd projesine göz atmanızda fayda var, malum html5 ile gelen web socket'leri ve cometd birleşince realtime web için oldukça iyi bir adım atmış olacağız.

cometd - bayeux (http://cometdproject.dojotoolkit.org/)
tornadoweb (www.tornadoweb.org)

4Aug/090

sinelist için içerik

Merhabalar, tahmin ediyorum ki bu günlüğü takip edenler açısından pek ilgili bir duyuru değil ancak belki etrafınızdaki diğer kişiler arasından ilgilenebilecek olanlar vardır. Sinelist projesi için içerik oluşturmaya hazırlanıyoruz bunun anlamı özgün içerik üretebilecek olan kişilere ihtiyacımız var. Bu kişilere ürettikleri içerikler için içerik türüne 10 ila 20 kuruş arasında ücret ödenecektir. Türk filmlerine öncelik verilecektir. Duyurunun ilgilenecek kişilere ulaşmasını sağlarsanız sevinirim.

Filed under: Genel No Comments
20Jul/090

gazetede haberler

Uzun zamandır gazete almıyor, tv seyretmiyordum. İnternet ile yaşayan biri olmama rağmen tv yada gazetelerin sitelerinden bile haberleri takip etmiyor, her türlü "bilgilendirici" yayından uzak duruyorum. Bu gün nereden esti ise bir ek$i'ye dalayım neler olmuş bitmiş bakınayım dedim ki demez olaydım, cinnet geçirenlermi istersiniz, bir milyon için birini öldürenlermi, aile katliamı yapanlarmı. Ülkece hep beraber cinnet geçiriyoruz. Sanki yakın zaman içinde "komşu bizde hiç cinnet kalmamış sizden biraz taze cinnet alabilirmiyiz" diye kapımı çalacaklarmış gibi hissediyorum. Garip geliyor bunlar bana. Hiç bir şey adil değil, dürüst değil, gerçek ve samimi değil, kabul ediyorum ama neden yenilmiş hissedip, teslim olunuyor? Kanının son damlasına kadar savaşan, kafası kopsa dahi yerden alıp koltuk altında savaşan ataları olan (tamam, bu bana biraz komik geliyor) bir ülkenin insanları, savaşmaktan vazgeçip, boktan şeylere teslim oluyor. Anlamıyorum ve umarım hiç bir zaman anlamam. Merak ediyorum, hiç mi iyi bir şeyler kalmadı? Samimi olan tek şey kedim mi?

Filed under: Genel No Comments