Ne için, nerede, ne kullanıyorum?

Bu yazı eski blogdan arşiv amaçlı alınmış olduğu için içerikte tutarsızlıklar olabilir.

Bazen 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.