Yazılar nasıl etiketlenir?

Django ile yazdığım bloguma otomatik etiketleme sistemi eklemeye çalışıyorum. Etiketleme sistemi arama ve alakalı yazıları tespit etme özellikleri için gerekli. Etiketleme olayını otomatiğe bağlamamın sebebi ise daha hızlı bir şekilde yazı girebilecek olmam.

Uygulayacağım yöntem sanırım şöyle birşey olacak; kendimi sitedeki içeriğe uygun büyük bir etiket bulutu oluşturacağım. Kelimleri eklentiye gireceğim ve daha sonra bir yazı girdiğimde eklenti yazılarda o kelimeleri arayacak, ve eğer varsa, o yazıyı o etiketle etiketleyecek. Daha sonra örneğin alakalı yazıları göstermek istediğimde, benzer etiketlere sahip yazıları, çok benzer etikete sahip olandan az olana doğru sıralayacak. Bu da böyle bir blog yazısıdır.

C++ öğrenmek

Bölümümle alakalı olarak değil de, ilgi alanlarımla alaklı olarak günün birinde C/C++ öğrenmek zorundaymışım gibi hissediyorum kendimi(işin temeline olan merak). C++ öğrenmenin yeterince zor olması yetmiyormuş gibi, bir de Python gibi bir dilden sonra öğrenmeye çalışırsanız çok daha zor oluyor(denedim, ordan biliyorum).

Programlamaya Python ile başlamakla ne kadar doğru bir karar verdiğimi sürekli düşünüyorum. Gerçekten de yeni başlayanlar için(hatta sanırım eskiler için de?), öğrenmesi kolay ve zevkli bir dil. Kısa sürede ortaya birşeyler çıkarabilecek seviyeye gelebiliyorsunuz, syntax(türkçesi ne ki bunun?)ı kolay, yazması ve okuması kolay, çok amaçlı..

C++ ise tam tersi, ortalama öğrenme zamanının 5 yıl olduğundan bahsediliyor her yerde(herhalde bu işin üstadı olmak için gereken süredir diye düşünüyorum). Syntax’ı Python ile karşılaştırıldığında anlaşılması ve yazılması çok zor. Bir de programlamaya Python ile başlayıp, boşlukların bir anlam taşımasına alıştıktan sonra, diğer dillere alışmak daha da zor oluyor(boşlukların anlamlı olduğu başka dil var mı acaba?).

İşin bir diğer yönü de kaynaklar, C’nin bu konuda avantajlı olduğu düşünülebilir, fakat ben bu konuda sapıtmış durumdayım. Örneğin şu anda Python hakkında internetteki tüm sağlam ingilizce kaynakları biliyorum, çoğunu da okumuşumdur. Aynı şekilde birkaç Python kitabım var, birkaç tane de okulumun kütüphanesinden takip ediyorum, sağlam kaynakların hepsini sayabilirim(ve bunlar yeterli aslında). Fakat sözkonusu C gibi onyılların dili olunca, piyasada belki de yüzlerce kitap var, aynı şekilde internette de.. Python hakkında bile bir sürü gereksiz kaynakla zaman kaybettim(internetteki saçma tutoriallarla özellikle), bir programlama dili öğrenmek zaten yeterince sıkıcı bir iş, birde bu kadar kaynağın arasında boğulmak istemiyorum.

Bir yerden başlayacağım neticede, en azından türkçe bir kaynaktan başlarsam daha kolay ve hızlı ilerlerim, bu sıkıcı süreci biraz olsun kısaltırım diye bir süre araştırma yaptım ve A’dan Z’ye C Kılavuzu kitabından başladım, fakat tam bir hayal kırıklığı oldu. Sürekli muhabbeti yapılan mikroişlemci veya DOS muhabbetinden midir bilmiyorum her sayfada bu kadar ilkel bir dille nasıl uğraşılır diye kara kara düşünürken buldum kendimi.

İnsanlar akın akın C#, Java gibi dilleri öğrenirken bazen yanlış yolda mıyım acaba diye düşünmüyor değilim :) ..

Şimdi http://www.learncpp.com/ adresinden bu sefer C++’a başladım. Python’u çözdüm de buna mı sıra geldi? Hayır ama aynı anda birden fazla kitap okuyup, sıkılınca değiştirmek gibi, bir yandan başka bir işle uğraşmak iyi geliyor(bir yandan ingilizceyle uğraşmak yetmiyor da :) ).

Nası’ gidiyo

Bir süredir blogla ilgilenemiyorum, ödev ve okuldan arta kalan vakitte Django ile uğraşıyordum, henüz bir tasarımı, doğru düzgün arama yapabilen bir arama özelliği(sanırım Google kullanacağım) olmasa da, altyapı olarak hazır sayılır. Masaüstü bilgisayarıma erişebildiğimde ve Mass Effect’den hevesimi aldığımda bir tasarım yapmayı planlıyorum(bir miktar ajax öğrensem iyi olacak aslında, daha javascript bilmiyorum ama ben). Daha sonra Webfaction üzerinden Django blogumla yayın yapmayı planlıyorum, onun dışında orjinal olduğunu düşündüğüm(en azından bir kısmının) bir projem daha var, yine Django kullanacağım fakat daha çok işi var ve ben daha Django’yu tam anlamıyla çözebilmiş değilim, işin kötüsü öğrendikçe detaylara giriyor ve öğrenilecek daha çok şey çıkıyor karşıma. Bir yandan da bağnaz Linux kullanıcılarıyla kavga ediyorum :) . Bir yandan da değişik konuları araştırıyorum:

  • Django’da MySQL kullanıyorsanız filtreleme sırasında şöyle bir case-sensitive sorunuyla karşılaşabilirsiniz: 1, 2. Daha sonra PostgreSQL’e geçme kararı aldığım için pek bir işime yaramadı gerçi.
  • Yine Django kullanacaksanız ve benim gibi mod_python mu, FastCGI mı kullanmanız gerektiğine karar veremiyorsanız, bir de şu sayfalara bakın: 1, 2.
  • Python for mobile devices. Gerçi benim P990i de hiçbirinin bir önemi yok.
  • C’ye de bir giriş yaptım bu arada.
  • Levenshtein distance.
  • Direct3d vs OpenGL. Makaleden değil de yorumlardan daha çok şey öğrenebilirsiniz.

Çok sıkıldığımda Band of Brothers izliyorum, Cowboy Bebop bitti(etkisinden kurtulamadım birkaç gün, yok böyle anime), Samurai Champloo iniyor, o sırada Fairy Tail, Vampire Knight ve şu sıralar biraz sıksa da Fullmetal Alchemist: Brotherhood izliyorum. Daha sonra da ingilizce seslendirmeli Monster izlemeyi planlıyorum. Nedense animelerin seslendirmeleri benim gibi bir hazırlık öğrencisinin bile çok rahat anlayabileceği seviyede oluyor.

Neden Linux kullanıyoruz?

Biliyorum ki bu başlığı okuduğunuzda pekçoğunuz sinirlendi(kötü bir başlık olduğunu kabul ediyorum), pekçoğunuz içinden “yine bir troll” diye geçirdi, fakat amacım ne birilerini sinirlendirmek, ne de trolluk. Forumlarda(ubuntu-tr dahil) ve SUDO’da dördüğüm bir durumu anlatmak istiyorum. Devamı »

Programlamanın temelleri vs.

İngilizce aşkına bir senemi feda etmiş olmamın(?!) verdiği acı ile birkaç aydır okulumun kütüphanesinden “bilgisayar mühendisliğine giriş”, “programlamaya giriş” vs. kitapları alıp okumaya çalışıyorum. Tabii ki ders amaçlı kullanılan bu kitapları roman okur gibi okumak biraz garip oluyor ama neticede işe yaradığı kesin. Bu konularda Mutasyon’daki yazılar çok faydalı oldu. Assembly, C ve işlemciler hakkında çok güzel bir kaynak.

Bilgisayar mühendisliği ile alakalı konferanslara da katıldığımdan kafam iyice karıştı, önce işin temelini öğrenmek amacıyla işlemciler, makine dili, assembly gibi konuları kurcalamaya başladım, daha sonra derleyiciler derken şu anda aralarındaki bağlantıyı kurmakta zorlandığım bir sürü bilgi var kafamda. Özellikle derleme(compile), decompile(geri-derleme?!) ve interpret konusunda.

Sunum ödevim için konu olarak yapay zekayı seçmemin de etkisiyle yapay zeka konusuna dalış yaptım. Genel kültür seviyesinde bir sürü(umarım gereksiz değildir) bilgiyle doldurdum kafamı. Bir yandan da Python ile uğraşmaya çalışıyorum, arada nesne tabanlı programalamayı kurcalıyorum. Python’da ticari uygulama nasıl geliştirilir, kaynak kod nasıl gizlenir çözmeye uğraşıyorum, fakat hiç de kolay olmadığını farkettim. Neyse ki yüzlerce dolar değerindeki ticari uygulamalarının bile kırılıp, cracklerinin vs. yapılması bana moral veriyor. Açık kaynak kodu seviyorum :) . Aşağıda Python kodunun güvenliğini sağlamak ve decompile etmek hakkında bazı kaynaklar var:

Bir yandan da bir hafta sonra başlayacak olan 2 haftalık dönem arası tatilim için hazırlık yapıyorum(Dragon Age, Modern Warfare 2, Left 4 Dead 2 almak, arkadaşları ayarlamak vs.).

Okudum: Hackers & Painters

hackerspainters
Hackers and Painters, sabit bir konusu olmayan genel olarak internet, bilgisayar dünyasıyla alakalı denemelerden oluşuyor diyebiliriz. Son bölümleri ise programlama dilleri hakkında. Paul Graham’ın tecrübelerinden bahsediliyor 3 bölümü hariç çok sıkıcı geldi bana. “İnekler neden popüler değildir?” ve “Rüya Dil” bölümleri ilginçti. Fakat kitabı bir bütün olarak düşünürsek sıkıcıydı diyebilirim. Birkaç bölümü için okunabilir.

Bu arada kitap türkçe, fakat ismi tercüme edilmemiş.

Hackers & Painters ve Lisp

Hackers & Painters okuyorum ve Lisp ilgimi çekmeye başladı. Kullanacağım falan yok ama ilginç bir dile benziyor, okunacaklar listesine eklediklerim:
http://www.fazlamesai.net/index.php?a=article&sid=2461
http://www.fazlamesai.net/index.php?a=article&sid=2511