29 Nisan 2009 Çarşamba

Indian Sound

İstiklal Caddesi'nde müzik yapan
ara sıra rastladığım bir kızılderili grup var.
(Amerikan yerlisi desek daha doğru mu olacak acaba...)

İki tane cd aldık onlardan.
Ancak ilk cd bende değil o yüzden grubun isminin Indian Sound,
ikinci albümlerinin isminin de Nostalgia olduğunu zannetmekteyim.

İnternette bulunmayacağı için de birkaç şarkısını yüklüyorum, buradan dinleyebilirsiniz:

Flying Condor
Relanpago (favorim)

Bir deneyin, oldukça güzel.

28 Nisan 2009 Salı

Adding a Scrollbar

It's very easy to add a scrollbar for some items you want to display on the page.

The following code is implemented in .NET environment:

For example you have a datalist and you want to display a number of items at first sight, so that user can scroll down to see more items.
In the designer part you should do the following:







Then, in the code (it can be page_load event) you write the following code:

if (dl.Items.Count > someNumber)
{
datalist.Style.Add("height", "200px");

datalist.Style.Add("overflow", "auto");

}
You should change 200px to whatever is appropriate for your implementation.

If the datalist has more than "someNumber" items, then the following is observed:

18 Nisan 2009 Cumartesi

Farbtastic




Yaratıcı ve güzel bir JQuery plugin'i: Farbtastic

İmleçle seçtiğiniz renklerin kodlarını hızlıca görebiliyorsunuz.

Nasıl çalıştığını görmek için: http://acko.net/dev/farbtastic

(Küçük not: Muhtemelen Almanca 'renk' demek olan Farbe ile İngilizce 'harika' Fantastic'i birleştirmişler.)

11 Nisan 2009 Cumartesi

SVMLight yazılımını kullanmak

http://svmlight.joachims.org/ adresinden elde edebileceğiniz SVMLight yazılımı Support Vector Machine(Destek Vektör Makinesi) denilen makine öğrenmesi(machine learning) yaklaşımını kullanmayı amaçlıyor.

SVM yaklaşımı birçok alanda kullanabiliyor. Burada amaç bir sınıflandırma yaratmak.

Örnek olarak şöyle bir durumu göz önüne alabiliriz:

Bir metindeki kelimeleri isim, sıfat, zamir diye etiketlemek istediğimizi düşünelim. Bu işleme Part-of-Speech Tagging deniyor (maalesef Türkçesini öğrenemedim). Yani metindeki kelimeleri belli sınıflara ayırmak istiyoruz. Bu sınıflara ayırma işlemini de SVM yaklaşımıyla yapabiliyoruz.

Elimizde ek, kök ve en önemlisi tip(isim, zamir) gibi bilgilerin de yazılı olduğu bir kelime dosyası olduğunu düşünelim. Bu dosyayı ikiye ayıralım; bir kısmını öğrenmek, bir kısmını da test etmek için kullanacağız.

Şimdi SVMLight'ın nasıl çalıştığını görelim:

Yazılım iki komuttan oluşuyor: svm_learn ve svm_classify.
İlk komut tek şeye ihtiyaç duyuyor çalışmak için: Girdi dosyası (featureValues.txt)

Üzerinde çalışılacak metinden, yani öğrenme için ayrılmış metinden hazırlanan bu dosyanın nasıl hazırlandığına geçmeden önce SVMLight'ın kurulumundan biraz bahsedeyim. En başta verdiğim adreste görülebileceği gibi Linux ve Windows için sürümleri var yazılımın. İkisi için de kurulum basit. Kurulumdan sonra sitede bulunabilecek bir örnek(http://download.joachims.org/svm_light/examples/example1.tar.gz) indirilip şu şekilde denenebilir:

Dos ekranı/terminal açılıp gerekli dizine gidildikten sonra şu komutu çalıştırıyoruz:

svm_learn featureValues.txt model.txt

Bu şekilde bizim verdiğimiz featureValues.txt dosyasını alıyor ve bundan bir model oluşturuyor.
Bu modeli model.txt dosyasına kaydediyor.
Daha sonra da bu modeli şu şekilde kullanarak sınıflandırmak istediğimiz kelimeleri sınıflara ayırmış oluyoruz:

svm_classify test.txt model.txt output.txt

Burada test.txt denilen dosya sınıflandırmak istediğimiz kelimeler üzerinde, yani test yapmak istediğimiz kelimelerden hesaplayarak oluşturduğumuz bir dosya.

Biraz dosya formatlarına bakalım:







Burada sınıf bir sayıdan oluşuyor(isim için 0, sıfat için 1 gibi).
Görüleceği gibi bu örnekte iki tane sınıf yeterli gelmeyebilir. Çünkü fiil, zamir gibi daha birçok tür var. O zaman SVMLight multiclass'ı indirip kullanabiliriz. Onun da kullanımı aynı şekilde yalnızca sınıf değerleri 0 ve 1'den başka değerler de alabilir.

Özellikten kastedilen nedir peki? Mesela Türkçe'de g ile biten kelimeler genelde(belki de her zaman) isimdir. O zaman her kelime için g ile bitip bitmeme bir özellik olabilir.

Şöyle iki kelimeden oluştuğunu düşünelim öğrenme dosyamızın:

filolog İsim
yalnız Sıfat

Bu dosyadan şöyle bir featureValues.txt dosyası oluşturabiliriz:

1 1:1
3 1:0

Burada 1 isim türüne, 3 sıfat türüne denk geliyor. Hemen yandaki 1, 1.özelliği gösteriyor. 1 ve 0 ise kelimenin g harfiyle bitmesi durumu. Eğer g ile bitiyorsa 1, bitmiyorsa 0 yazıyoruz.

Tabii gerçekte iki kelimeden ve tek özellikten alabileceğimiz özellikler çok az, bu nedenle oldukça fazla kelime sayısı olan öğrenme dosyaları kullanılıyor. Tabii bir özellik yerine de birçok özellik kullanılıyor.

Böyle bir dosya bir de test edilmesi istenen dosya üzerinde oluşturuluyor(test.txt). Daha sonra da yukarıda anlatıldığı gibi svm_classify komutu çalıştırılıyor.

Peki yazılımın çıktıları neler?

predictions.txt adlı bir dosya oluşturuyor öncelikle. Burada test ettiğimiz kelimeler üzerinde her kelime için tahmin ettiği sınıfların ne olduğuna dair bilgi bulabiliyoruz. Daha sonra DOS/terminal ekranında da ne kadar doğru etiketlediğimizi gösteriyor. Test edilen kelimelerin gerçek tiplerini biliyor oluşu bunu mümkün kılıyor.

Kısaca, SVMLight oldukça kullanışlı bir yazılım.
İlk başta biraz kafa karışıklığı yaratabilecek olsa da, sonuçta kullanımı kolay ve anlaşılır bir yazılım.



9 Nisan 2009 Perşembe

Castlevania: Order of Ecclesia











Castlevania serisine ait son oyun "Order of Ecclesia"yı da zevkle oynayıp sonuna geleli uzun zaman oldu bile.

Bu sefer ana karakterimiz bir kadın, adı Shanoa. "Portrait of Ruin"de olduğu gibi ikinci bir karakter yok.
Grafikler için serinin en iyileri denilebilir. Hem karakterler hem de mekanlar üzerinde ayrıntılı çalışılmış.







Haritalar daha farklı ve daha güzel bir görsellikte kullanıcıya sunuluyor.

Oyunda ilerledikçe bir köyün sakinlerini kurtarıyoruz çeşitli bölgelerden,
onların isteklerini yerine getirip birşeyler kazanıyoruz.

"Boss"lardan bazıları normal bazıları ise oldukça zor.


Bulmaca yönü biraz azalmış denilebilir.

Ama hala ilerledikçe keşfedecek sürpriz özellikler var. Sürpriz sonlar gibi.

Oyunda sıkıştığınız yerde işin içinden çıkamıyorum
derseniz,
http://faqs.ign.com/articles/928/928271p1.html
adresindeki site faydalı bilgiler sağlıyor.
Oyunda ilerleyip nereleri tamamlamadım acaba
derseniz de bu adrese bakmakta fayda var.