Arşiv: 'Programlama'

Programlama Dillerinin Dünyada Popülaritesi

Will Larson, Google Insights kullanarak yaptığı arama sonucunda, bazı programlama ve uygulama dillerinin dünya genelinde ülke bazında popülaritesini belirlemiş. Evet şaşırmanıza gerek yok, Türkiye herhangi bir dilde listenin ilk 10′unda yer almıyor. Fakat liste(ler)de Küba‘yı, Kosta Rika‘yı ve hatta Jamaika‘yı bile görmeniz mümkün.

Şu anda en popüler iki programlama dili olan Java ve C# ‘ta ise birinci sırada Hindistan bulunuyor. Bilişim ve Teknoloji’nin devlet politikası olduğu ülke, yurt dışına “programcı” beyin göçüyle oldukça popüler durumda.

Hatta Microsoft ve Google gibi büyük şirketlerde, hiç de azımsanmayacak bir Hintli programcı yüzdesi bulunuyor.

Will Larson listesine C#’ı katmamış, bu veriyi de size ben sunuyorum.

Resmi Büyütmek için Üzerine Tıklayınız

Bu konuda aslında söylenecek çok söz var, ama şimdilik yorumsuz bırakmayı tercih ediyorum.

Araştırma sonuçlarına BURADAN ulaşabilirsiniz.

100 Adet Açık Kaynak Sunum

O’Reilly tarafından düzenlenen OSCon (Open Source Convention – Açık Kaynak Konferansı), “Open your mind” (aklını aç) sloganıyla 21-15 Temmuz 2008 tarihleri arasında Portland, Oregon ‘da düzenlendi. Konu açık kaynak olunca, burada yapılan konuşmaların paylaşılmaması düşünülemezdi. Bu konferansa katılmış olan pek çok konuşmacı, hazırladıkları konuşma metinlerini ya da sunumlarını paylaştılar. Pek çok diyorum, çünkü bazı konuşmacılar konuşma metinlerini ya da sunumlarını paylaşmaktan kaçınmış. Açık kaynak konferansında böyle bir tavır takınmak, konferans temasına pek de aykırı olmasa gerek (!). O’Reilly sitesinde bu metinleri bir güzel yayınlamış, meraklıların indirmesini bekliyor. İşin ilginci, bu metin veya sunumların arşivlendiği sayfanın sponsoru Microsoft!

İçlerinde ciddi anlamda faydalanılacak dosyalar bulunuyor. Mesela benim en çok dikkatimi çeken “Even Faster Web Sites” (Daha da hızlı web siteleri) başlıklı konuşmasıyla Google’dan Steve Souders oldu. Güzel hazırlanmış bu konuşma metnini İnternet sitesi tasarımcılarına şiddetle tavsiye edebilirim. Steve Souders aynı zamanda İnternet siteleriniz performans analizlerini yapan YSlow Mozilla Firefox eklentisinin de yaratıcısı. YSlow’u kullanmak için öncelikle Firebug eklentisini indirmeniz gerekiyor. Aynı zamanda hızlı İnternet sayfaları için “High Performance Web Sites” isimli O’Reilly yayınlarından çıkan bir kitabı da bulunan Souders, eski Yahoo! Performans Müdürü (Chief Performance Yahoo!).

Bu metin ya da sunumları indirmek için herhangi bir ücret ödemeniz gerekmiyor. Ancak belirtmekte fayda var, bütün metinler İngilizce. Dolayısıyla indirirken bunu göz önünde bulundurun.

Konuşma metinleri ve sunumları arşivine BURADAN ulaşabilirsiniz.

Sen Ne Kadar Aptalsın?

stupidfilter_logo Evet başlığın ne kadar garip olduğunun farkındayım. Ancak Gabriel Ortiz ve Paul Starr böyle bir proje başlatmışlar: Aptal Filtresi anlamına gelen “StupidFilter“. Genellikle bu tarz projeler PHP tabanlı oluyor, nitekim Ortiz ve Starr da bu geleneği bozmamışlar. Amaç sitenize yapılan (blog da olabilir) yorumların aptallık derecesini ölçmek. Hal böyle olunca, insan düşünmeden edemiyor: Kim bunu kullanmak ister ki? Yani sitenize girip yorum yapma zahmetine katlanmış ziyaretçilerinizin bir de yorumlarının aptal olup olmadığını test edeceksiniz. Bana kalırsa pek parlak bir proje değil. Ancak Amerikalılar bu tarz “aptal damgalanması”nı seviyorlar zannedersem, o yüzden Amerika’da tutulabilir. Nitekim neredeyse kendimi bildim bileli “… for dummies” serisi kitaplar, raflarda yer kaplarken, bir dönem en çok satılan kitaplar arasında yer alıyordu. Fikir olarak pek parlak görünmese de, arkadaşlar uğraşmış ve bir şeyler üretme özelliklerini kaybetmemişler.

Genel olarak düşünüldüğünde ise, arkasında ciddi anlamda “yapay zeka” (artificial intelligence) yatıyor. Yani en azından bu sistemi geliştirmek, Türkçe metni İngilizce metine düzgün bir şekilde çeviren program yazmak kadar detaylı ve uğraştırıcı bir şey. Ancak şu anda sistem pek de zeki değil. Hal böyle olunca da bize denemekten başka bir şey kalmıyor. Demo sayfasının altında yer alan “If you get something classified as stupid incorrectly, please submit false positives here.” ibaresine tıklayarak, sizce aptalca görünen, ama sistemin aptalca olduğunu yorumlamadığı metinleri ya da kelimeleri gönderebilir, böylece projenin gelişimine katkıda bulunabilirsiniz.

StupidFilter’in ana sayfasına ulaşmak için buraya tıklayınız.

StupidFilter’in demo sayfasına ulaşmak için buraya tıklayınız.

1 Haziran Pazar – Ulusal Regex Günü

Başlığı uzun tutmamak için kısaca Regex yazdım. Aslında uzun hali “Regular Expression”. Bunun tam olarak Türkçe karşılığını bilmiyorum, ama doğrudan İngilizce’den çevirirsek “Düzgün İfade” olabilir. Bilmeyenler halen neden bahsettiğimi anlamamış olabilir. Kısaca anlatayım:

Regular Expression, özellikle web sayfalarında (Windows ve Linux uygulamalarında da kullanılır) bazı alanları kontrol etmek için kullanılır. Örneğin kayıt formunda e-posta adresinin düzgün yazılmadığını kontrol edebilirsiniz. Böylece kullanıcı kayıdını gerçekleştiremez.

Regular Expression gerçekten programcının hayatını kolaylaştıran en önemli detaylardan bir tanesidir. Örneğin yukarıda bahsettiğim e-posta onaylama işlemi için string’teki herbir harfi teker teker kontrol edip, doğruysa devam etmesini ya da yanlışsa hata vermesini sağlayabilirsiniz. Ancak Regular Expression ile bu kadar uzun kod yazmaya gerek yoktur; e-postanın tipini belirlersiniz ve her şey kolaylaşır. Regular Expression’ı tek cümleyle anlatacak olursak, kontrol etmek istediğiniz alanlara sabit bir tanımlama (kalıp) yapar.

Regular Expression ile ilk tanıştığımda üniversitede SQL Parser programı yazıyordum. SELECT, INSERT, DELETE vb. SQL komutlarının çalıştırılabildiği kendi veritabanı projemizi yaratıyorduk. Olay neredeyse tamamen stringler üstünden dönüyordu (SELECT * FROM table WHERE username=’Can’ gibi) ve bu stringleri teker teker kontrol etmek ve yanlış yazıldıysa hata vermek tam bir kabusum olmuştu. 1 gün boyunca nasıl yapacağımı düşündüm. Acaba teker teker kontrol etsem çok mu uzun bir kod olurdu. Örnek olarak SELECT komutu için string kontrolü yaptım. Ama sonuç hüsran, yaklaşık 200 satır kod oldu. Daha bir yığın komut vardı. İşte bu durumda Regex ile tanıştım.

Regex’in yazımı ilk başta şifreli gibi görünebilir, ancak bir kere öğrendikten sonra gerçekten unutabileceğiniz bir şey değil. Örneğin benim programımdaki regex’ler şöyledi:

INSERT komutu: (INSERT)\s(INTO)\s(\w+)\s(VALUES)\s\((\w+|d+)(\,\s)?

(\w+|d+)?(\,\s)?(\w+|d+)?(\,\s)?(\w+|d+)?(\,\s)?(\w+|d+)(\,\s)?(\w+|d+)?\)

DROP komutu: (DROP)\s(\w+|\W+)\s(\w+)

CREATE (Index) komutu: (CREATE)\s(INDEX)\s(\w+)\s(ON)\s(\w+)(\,\s)?(\w+)?(\,\s)?(\w+)?(\,\s)?

(\w+)?(\,\s)?(\w+)?(\,\s)?(\w+)?

DELETE Komutu: (DELETE)\s(FROM)\s(\w+)(\s)?(WHERE)?(\s)?(\w+)?

(<(=)?|>(=)?|=|!=)?(\w+|d+)?

CREATE (Table) komutu: (CREATE)\s(\w+)\s\((\w+\s(CHAR|INT)\s\d+)(\,\s)?

(\w+\s(CHAR|INT)\s\d+)?(\,\s)?(\w+\s(CHAR|INT)\s\d+)?(\,\s)?

(\w+\s(CHAR|INT)\s\d+)?(\,\s)?(\w+\s(CHAR|INT)\s\d+)?

(\,\s)?(\w+\s(CHAR|INT)\s\d+)?(\,\s)?(\*\w+)(\,\s)?(\s)?

(\@\w+)?(\,\s)?(\s)?(\-\w+)?

Burada “w” (word – kelime), “s” (space – boşluk), “d” (digit – sayı) anlamındadır. Yanına koyulan “+” işareti de birden çok olduğunu gösterir. “?” işaretinden sonraki kısımlar “opsiyonel” kısımlardır.

Regular Expression hakkında daha detaylı bilgi için Regular Expression Library sitesini ziyaret edebilirsiniz.

Bir program geliştiriciyseniz (web geliştiricileri de dahil) ve Regular Expression kullanımını bilmiyorsanız, bu gerçekten sizin için çok büyük bir zaman kaybıdır.

Benim Regex ile tanışma hikayem böyleydi ve o gün bu gündür kendisiyle çok iyi anlaşırız =:-) Böyle anlamlı bir günde hediye olmazsa olmaz tabii. http://www.bennadel.com/index.cfm?dax=blog:1243.view ve http://blog.stevenlevithan.com/archives/regexday-2008 sitelerinde sizleri hediyeler de bekliyor.