Ne için, nerede, ne kullanıyorum?
02 Jan 2012Bazen arkadaş arasında Bunun için ne kullanıyorsun?
diye sorular sorulabiliyor veya yeni birşey bulduğumuzda heyecanla bahsediyoruz. Güncel olarak ne için, nerede, ne kullandığımı derleyip toplamanın hem benim için hem de merak edenler (varsa) için iyi olacağını düşündüm.
Sunucu Yazılımları
İşletim sistemi olarak tabiki Linux (RedHat Enterprise, yoksa Debian). Web sunucu olarak da nginx ve yerine göre Apache HTTP Server. Daha önce LigHTTPD kullanma fırsatım oldu, statik dosyalar ve streaming medya için kullanmıştım, geliştirme süreci biraz yavaşladı diye hatırlıyorum. SQL sunucusu olarak MySQL ve gerekirse PostgreSQL kullanmayı tercih ederim. 2000 yılından itibaren PostgreSQL kullanan bir proje hazırlamadım fakat arada bir takip ediyorum. Günümüzde bolca ismi duyulan ve moda olan NoSQL
kavramı ile MongoDB ve key-value (anahtar-değer) veritabanlarından Redis, disk üzerinde tutulacak bir veri gereksinimi olmadığında ise Memcached (özellikle oturum yönetimi veya önbellekleme/cache için). Memcached’in verileri disk üzerine de yazan ve sharding
kavramı getiren ve yönetim paneli gibi özellikleri olan Membase CouchBase Server projesini de takip ediyorum (Redis’e rakip diyebiliriz). Tam metin arama da ise şimdiye kadar Sphinx ve Apache Lucene deneme fırsatım oldu, fakat Sphinx’in kullanımı daha hoşuma gitti, eğer Lucene’ı Zend Framework ile kullanacaksanız dikkatli olun. Zend Framework içinde gelen Lucene kütüphanesi kaynak kullanı konusunda biraz problemli.
İnternet Programlama
Yıllar önce Perl ile başlamıştım fakat şu anda tabiki PHP tercih ediyorum. Python ve Ruby dillerini uzun süredir inceliyorum fakat
bir proje çıkartma fırsatım olmadı. (Sadece Python ile Linux üzerinde basit bir socket sunucu hazırlamıştım). Bunlar hariçinde JavaScript ile node.js platformu üzerinde birşeyler yapma planlarım var, bu yıl geçtiğimiz yıl içerisinde adından çokca bahsettirdi. İlerde kurcaladığımda bununla ilgili bir yazı yayınlamayı da düşünüyorum.
Mobil Programlama
Şimdiye kadar sadece iOS uygulamaları üzerine uğraşma fırsatım oldu. Çoklu platform desteği ile Appcelerator Titanium platformunu kullandım ve şimdiye kadar hazırladığım 10’a yakın uygulama yayınlandı (sadece iOS için). JavaScript bilenler için oldukça basit ve hızlı şekilde iOS, ve Android, BlackBerry, Tizen ve Windows platformları üzerinde uygulama geliştirme için bir platform. Belge olarak biraz eksik ama örneklerden ve API belgelerinden hızlıca öğrenebilirsiniz. Daha sonra biraz Xcode ile Objective-C denemelerim oldu fakat zaman darlığından devam edemedim. Objective-C’nin dil yazımı biraz garip gelebilir fakat çok zor değil, programlama bilgisi olanlar hızlıca çözebilir. Esas zorlayan kısım Xcode ve Cocoa Framework’e alışmanız. İlerde Appcelerator Titanium ve mobil programlama (muhtemelen Objective-C) ile ilgli birkaç yazı yazma planlarım var.
PHP Çatıları (Framework)
Çok fazla işim düşmese de uzun zamandır CakePHP projesini takip ediyorum ve deneme
fırsatım oldu. Performans takıntınız yoksa ve hızlıca birşeyler üretmek istiyorsanız PHP çatıları arasında en
basiti diyebiliriz. CakePHP projesinden ayrılıp daha sert kuralları olan, PHP 5.3 ve üst sürümleri
destekleyen ve performans olarak daha iyi olan Lithium Framework güzel bir proje. Oldukça
esnek olan Lithium Framework’ün halen kararlı sürümü yok fakat şu anda bazı startup projelerinde kullanılıyor.
Yazımı ve kullanımı keyifli ve oldukça tertipli düzenli bir çatı. İlerde CakePHP ve Lithium Framework
konusunda yazılar görebilirsiniz. Zend Framework‘ü ise her zaman uzaktan takip
ediyorum. Symfony, Yii, CodeIgniter, Kohana, FuelPHP gibi çatıları tarzları ve yaklaşımları yüzünden hiç
beğenemedim. (Aman dikkat, bu bundan hızlıdır, bu çatı bunu döver gibi bir söylemim yok, sadece tercih ve
zevk meselesi.)
Kod Editörü
Linux üzerinde genellikle GNU nano veya Pico kullanıyorum. Microsoft Windows üzerinde ise Sublime Text 2, yoksa Notepad (plus plus değil, bildiğimiz düz Notepad). Mac üzerinde ise her zaman TextMate, fakat terminal üzerinde yine GNU nano kullanıyorum, genellikle elim terminale aşırı ve abartılı şekilde aşina olduğu için GNU nano kullanımım daha yüksek oranda.
Kodlama için kullandığım araçlar neredeyse tamamen değişti, Linux ve OSX üzerinde GNU nano, OSX üzerinde Sublime Text ve Atom, IDE olarak ta PHPStorm kullanıyorum.
Microsoft Windows artık kullanmadığım için genel olarak bir araç tercihim yok, ama kullanmam gerekirse muhtemelen editör olarak Sublime Text veya Atom ve IDE olarak PHPStorm kullanırdım.
Kaynak Kod / Sürüm Yönetimi
Tüm sistemler üzerinde Git veya Subversion (SVN), fakat Git daha çok hoşuma gidiyor.
Tarayıcı
MacOSX üzerinde Safari (neden Google Chrome kullanmadığımı bilmiyorum Google Chrome halen 64bit uyumlu sürümünü çıkartmadı ve benim gözlemlerimde Safari’ye göre daha yavaş), Microsoft Windows üzerinde Google Chrome, fakat bir siteyi denemem gerekirse (ki uzun zamandır böyle bir gereksinimim olmadı) Mozilla Firefox ve IETester, Linux üzerinde ise Lynx metin tarayıcısını kullanıyorum.
Teknoloji / Sektör Takip
Twitter üzerinden arkadaşlar sağolsun birşeyleri retweet
ediyorlar devamlı, günde sayını bilmediğim kere
TechCrunch, Read Write Web, Smashing Magazine, Webrazzi ve GitHub üzerinden projelerdeki yenilikleri takip ediyorum.
Genelde günde bir defa MacRumors, 9To5Mac ve Culf of Mac bloglarını takip ediyorum.
Hafta bir ve aklıma geldikçe de myNoSQL bloğunu takip ediyorum.
Genelde RSS okuyucu kullanma alışkanlığım olmadığı için sitelere girip takip ediyorum.