Stajımın bir buçuk ayı geride kalırken yavaş yavaş blog yazıları da rutine bağlanıyor ve yazacak konu bulmakta zorlanıyorum. :) Güzel bir hafta geçirdiğimi söylemeliyim.

Bugün itibariyle 1,5 aydır devam ettiğim proje ürün haline gelmiş durumda. Hafta içinde şirket içi kapalı beta‘ya açıyor olacağız. Takip eden haftalarda da ürün olarak çıkılabileceğini düşünüyorum. Aslında geçen 1,5 ay bu projeyi gerçeklemek için oldukça uzun bir süre. Fakat platforma alışma ve kaliteli ve yenilenebilir bir sistem hazırlama süreci zaman alabiliyor. Üstelik mesaiden sonra akşamları da evde projeye devam ediyorum. Bu kapsamda staj bana ciddi bir tecrübe kazandırdı. Projenin içinde tekrar kullanılabilecek bir çok yapı oluşturdum. İleriki kişisel projelerimde de kullanmayı düşünüyorum. Ama hala Java çalıştıracak (App Engine hariç) Tomcat server’ı nereden bulacağımı bilmiyorum. Bu arada App Engine altında Quercus container’ında PHP çalıştırabiliyormuşuz, not düşeyim dedim.

Bu haftamı projenin arayüz entegrasyonunu bitirerek geçirdim. Haliyle dönüp dolaşıp jQuery’e geldim. Emre Erkan‘dan üç güzel JavaScript+jQuery e-book’u edindim. Aklımda bir Spring 2.5+ kitabı **okuma fikri **de var. İkisinin de sebebi “ya kullanıyoruz, çalışıyor da, ama incelikleri nedir” düşüncesi. Okumak gereken çok şey var. Hiç işe yaramayacak olsa bile hobi olarak okunabilecek yüzlerce yazı var. Okul başlayınca okurum diye erteliyorum ama okul dönemi de kafa kaşıyacak zaman olmuyor. Çalıştıkça insanın aklında güzel hobi ve AR-GE projeleri geliyor ama yine gerçekleştirecek zaman bulma derdi var. :-/

Hafta sonumu stajda parçası olacağım yeni bir projenin bana düşen kısmına başlamakla geçiriyor olacağım gibi görünüyor. Tabi aklıma hobi proje gelirse önceliği kapıp götürecek bu süre zarfında kendileri. Hafta içinde yeni girdiğim projenin toplantısı dışında eğitim vb. bir aktiviteye katılmadım. :)

Bu hafta edindiğim fikirlerden biri de **üçüncü parti **yazılımlar üzerine oldu. Bugüne kadar FriendFeed, Twitter vb. servislere ciddi sayıda _3rd party _uygulamalar geliştirmiş biri olarak ciddi bir sorun olacağı aklıma gelmemişti. Ama FriendFeed’in Facebook’a satılmasından sonra siteyle ilgilenen kimse kalmayınca arada bir API’ın servis dışı kalması ve benim uygulamalarımın aksaması yavaştan beni uyuz etmeye başlamıştı. Stajda geliştirdiğim projede de örneğin Recaptcha kullanmaya başlamıştım. Fakat fikir alışverişleri sonucunda böyle bir şey kullanılıyor olsa bile tek _switch _ile yerelde çalışan bir çözümü kullanmak gerekiyor. Hatırlamak gerek ki gezenzi‘den tutun foursquare’e, taksiyle.com’a kadar bir çok servis Google servislerinin mahkeme kararıyla engellenmesi olayında Google Maps kullandıkları için bir süre devre dışı kaldılar, kimi hala çalışmıyor. Bu nedenle sistemin işleyişini üçüncü parti bir uygulamaya bağımlı tutmak doğru değil. Eğer odağınız 3. parti geliştirmek değilse bir çok servisin alternatif çözümünü bulabiliyorsunuz. Yoksa da oturup kendiniz yazıp yayımlamamanız ve dünyaya faydalı olmamanız için bir sebep yok. :)

Aslında planlarım arasında en azından Android SDK’ya giriş yapmak vardı bu yaz ama yine aksamış görünüyor. Belki okul vaktinde fırsat bulabilirim. Yine bu yaz Samsung Galaxy S veya iPhone 4 gibi bir telefon almak gibi bir düşüncem var. İkisi de birbirinden pahalı geliyor ama *#0000#‘sinde 2006 yazan ve her yeri sorunlu Nokia 6680’imden kurtulmak istiyorum. Ne yazık ki Android’lerdeki uzun uzadıya ROM muhabbeti, güzel bir müzik dinleme deneyimi sağlayamaması, multi-touch tartışmaları, derli toplu bir marketin olmaması ve mevcutların geniş yelpazede olmaması (gerçi hızlı büyüyor) ve iPhone’lardaki kullanılabilirliğe ulaşamaması gibi dertler mevcut. iPhone’da ise yurt dışından kontratsız getirme, SIM unlock, anten problemi gibi sorunlar söz konusu. Aslında çoğu büyütülecek şeyler değil ama bu aralar üşengeçliğim üzerimde. Android alırsam uygulama geliştirmek için elimin altında bir cihaz olacak, hem de open source ruhuyla hareket ediyor; iPhone alırsam da keyfim yerinde olacak ama uygulama geliştirmek için MacBook almak zorunda kalacağım. :( Temiz bir ikinci el iPhone 3GS almak en temiz yöntem gibi görünüyor. Satan bir tanıdığı olan vs. varsa bana ulaşabilir. :D

Geçen haftalarda Eclipse’e giydirdiğim laflardan [1][2][3] sonra yine Eclipse tabanlı SpringSource Tool Suite‘in başarısı beni büyüledi ve Spring altında geliştirirken büyük kolaylık sağladığı için dönüş yaptım. İşte yanlışlıkla keşfettiğim birkaç Eclipse klavye kısayolları:

  • Ctrl+Shift+R: Workspace‘inizde ulaşmak istediğiniz dosyayı adını yazarak ulaşabileceğiniz bir pencere. Onlarca klasör arasında kaybolmamak için birebir.

  • Ctrl+Shift+T: Üstekinin Java class’ları için olanı. Workspace dışında erişebildiği tüm Java paketlerini class adına göre aramayı ve açmayı sağlıyor. Ama _enclosing projects _veya workspace‘den gelen sonuçları üstte gösterse tam süper olacak.

  • Ctrl+Shift+O: Import’ları fixler. Kod yazarken diğer paketlerden kullandığınız sınıfların _import_larını elle yazmasanız da Ctrl+Boşluk ile tamamlıyordunuz ya, bu da birden fazla eksik import olunca veya gereksiz import’larınız warning verip duruyorsa basıyorsunuz o sayfadaki import’lar elden geçiriliyor, kategorilerine göre bir boş satırla ayrılıyor.

  • Ctrl+Shift+F: Kodunuzu güzel anlamda biçimlendiriyor. Uzun satırları kırpıp aşağılara güzelce bölüyor, operatörler arasındaki eksik boşlukları vb. tamamlıyor. Kısaca Java conventionlarına uyduruyor.

  • Ctrl+Alt+(aşağı&yukarı): Seçtiğiniz kodun aşağıya veya yukarıya bir kopyasını oluşturuveriyor.

  • Alt+Shift+S: Sağ tıklayıp Source menüsüne girmekle eşdeğer. “Generate getters/setters” kısmına daha hızlı erişiyorsunuz. (elle _getter-setter _yazdığım günler aklıma geldi.)

  • Ctrl+1: En güzelini en sona sakladım. _:) Quick Fix _olarak sıkça gördüğümüz ufak hatanın oluştuğu yere fareyle gelip tek tıkla düzeltme alternatifiniz olan durumlarda hızlıca düzeltmenizi sağlıyor. Fareyi üstüne getir, bekle veya soldaki satır hizasındaki kırmızı çarpıya git bekle olayından kurtarıyor. Ayrıca epeydir komut satırından **svn **kullanan (debelenen) biri olarak TortoiseSVN gibi güzel bir Windows kabuk eklentisinden çok geç haberdar oldum, epeydir adını duyuyordum oysa ki. Eclipse için de en iyi SVN eklentisinin Subclipse olduğuna kanaat getirdim. Yani Subversive sux. Bir de bir adresten sadece header’ları çeken bir sorgu tipi olduğunu öğrendim. Adını hatırlamıyorum araştırmaya da üşeniyorum ama yıllardır acaba var mıdır böyle bir şey diyordum. Netbeans’teki built-in svn plugini bal gibi, o ayrı.

Okul başladıktan sonra ciddi Apache incubation projelerinden birine committer olarak girmeyi düşünüyorum. Özellikle HBase, CouchDB vb. olabilir mesela. Bana büyük katkısı olacağına inanıyorum. Staja gidiş geliş Kocaeli’de oturduğum için benim açımdan zahmetli olmaya devam ediyor. Yollarda müzik dinlemeyi ve uyumayı tercih ediyorum, zevkli de oluyor. Bu tempo kilo verdirir diye bekliyorum altı haftadır ama Turkcell Teknoloji’de yemekler de güzel. :) Okulun başlayacak olması yine canımı sıkıyor. Yine yarısı benle alakasız saçma sapan dersler alacağım. :(

Yazı yine zırvalamaya doğru giderken staj sürecinde benim gibi havadan sudan konuşmak yerine teknik blog yazan arkadaşlar da var. Sizi Bahar’ın bloguna veya Erkan’ın bloguna veya Recep’in bloguna yönlendirebilirim.