Sansür, bir toplumun kendine olan güvensizliğini yansıtır ve otoriter rejimlerin belirgin bir özelliğidir.

--Potter Stewart

12.11.2009

Kelle Koltuk Programlama

Takip ettiğim blogların birinde beni "Cargo Cult Programming" terimiyle tanıştıran çok hoş bir yazı okudum. Blog yazarı Cihat Altuntaş'ın "Çakma Programlama" diye çevirdiği terimi, bu tarz programlamanın olası sonuçları açısından ve de Cargo Cult terimine birazcık benzer söylenişinden dolayı "Kelle Koltuk Programlama" diye dilimize çevirmeyi daha hoş buldum :)

Terimin detaylı anlatımını wiki'den okuyabilirsiniz. Özetle neyin ne olduğunu bilmeden ezbere programlama, şu örnekte kodu şöyle yazmışlar ben de yazıp bi deneyeyim çalışacak mı programlama...

:)

5.11.2009

SCWCD EE5

Yaklaşık 3 saat önce SCWCD EE5 sınavını da başarıyla sonuçlandırıp sertifika almaya hak kazandım, darısı çalışanların başına :)

Önceden de belirttiğim gibi sınav için "Head First Servlet & JSP" kitabından faydalandım. Kitap sınav için tüm gerekli konu başlıklarını gayet iyi açıklıyor fakat hem konu anlatımlarında hem de kitabın sonundaki deneme sınavında küçük yanlışlıklar göze çarpıyor. Bu yüzden kitabın sitesinden kitapla ilgili düzeltmeler kısmına mutlaka bakılmalı.

Ayrıca JavaRanch sitesinden SCWCD ile ilgili forum ve sınav hakkında açıklayıcı, faydalı bilgilere de erişebilirsiniz.

Sırada ne mi var? Sırada bir aksilik çıkmazsa aralık ayında askerik var ;)

22.10.2009

Bazen Mühendislik Sıradışı Çözümlerin Peşinden Gitmektir..

Ya bir heyecan uğruna ya da sadece öylesine; sıradan çözümleri görmezden gelerek... :)





25.09.2009

En Basit Tasarım Örüntüsü Singleton (mu?) -- 2

Daha önceki bir blog girdimde Singleton sınıfın yazımında dikkat edilesi hususları yazmıştım. Singleton örüntüsünün Java Reflection ile kırıldığını da duymama rağmen "nasılı" üzerinde pek durmamıştım. Bir kaç gün önce karşılaştığım blog girdisinde "Yohan Liyanage" bu konudan ve alınabilecek önlemlerden bahsetmiş: Breaking Singleton

Bakalım Singleton'dan daha ne numaralar çıkacak :)

19.08.2009

SpringSource Tool Suite 2.1.0

Yaklaşık 2 hafta önce STS 2.1.0'nın kararlı sürümü yayınlandı. Yeni kurup hızlıca göz gezdirme fırsatı bulduğum STS 2.1.0'nin, Eclipse 3.5 üzerine kurulu olmasının yanı sıra ilk dikkatimi çeken güzelliği IzPack kullanarak hazırlanmış bir kurulum sihirbazı aracılığıyla kurulumunu gerçekleştirebilmeniz. IzPack ile kurulum sihirbazı hazırlama konusunda önceden benim de tecrübem olduğundan doğru ve hoş bir seçim diyebilirim. IzPack'i kurcalamanızı tavsiye ederim. STS kurulumunun yanında Spring tm Server, Spring dm Server ve Spring ROO paketlerini de kurabilmek için sihirbaz size seçim şansı tanıyor. Seçilen paketler kurulum esnasında belirlediğiniz dizin altına herbir paket kendi dizininde gruplanmış şekilde kopyalanıyor.

Ayrıca kararlı sürümün kurulum dosyası olarak dağıtılmasıyla önceki sürümlerde .zip dosyasını açarken karşılaşılan ve can sıkan uzun dosya isimlerinin yarattığı probleminin önüne geçilmiş.

Sorunsuz kurulumdan sonra hemen denemek istediğim, önceki sürümde bir türlü kullanamadığım "Roo Shell" penceresi oldu. Her nedense bir türlü STS üzerinden Roo Shell'i kullanarak Roo projesi yaratamamış, var olan bir Roo projesini de STS'ye aktaramamıştım. Kararlı sürümde gördüğüm kadarıyla Roo Shell penceresi çalışır durumda...

Diğer dikkatimi çeken ise, STS çalışıp Package Explorer penceresi görünür görünmez var olan Eclipse projelerini arayarak listelemesi oldu.

Alalacele kısaca paylaşmak istediğim ilk izlenimlerimin bunlar. Kullanıp keşfettikçe STS'yi buradan sizlere tecrübelerimi aktarmaya devam ederim..


15.08.2009

SCJP, SCWCD, Spring Roo, STS, vs. vs.

Uzunca sayılabilecek bir süre blogumla ilgilenemedim. Bunun başlıca sebebi SCJP 6.0 için çalışıyor olmam ve bu sebeple merak ettiğim, ilgilenmek istediğim Spring Roo gibi teknolojilerden uzak kalmamdı. Neyseki 2 hafta önce sınava girerek sertifika almaya hak kazandım ve ardından yıllık izne çıktım.

SCJP sınavına "SCJP Sun Certified Programmer for Java 6 Exam 310-065" kitabıyla hazırlandım. Uygulama geliştirirken ezbere ya da bilmeden yaptığımız birçok konuyu öğrenmek, "bu da bu şekildeymiş" demek, örnek soruları çözmek benim için hem eğitici hem de keyifliydi. Kitabı okumanızı tavsiye ederim. Ardından bol soru çözmek sınav için yeterli olacaktır.

Sırada SCWCD var. Sınava çalışmak için ilk başta "Sun Certified Web Component Developer Study Guide" kitabını düşünsem de kitabın okuyuculardan aldığı kötü yorumlar, beni "Head First Servlet & JSP" yönlendirdi. En kısa zamanda da ikinci sertifika için çalışmaya başlamayı düşünüyorum.

İlk sertifikaya çalışırken gösterdiğim tembelliği tekrarlamamaya; Refactoring, TDD ve merak ettiğim Spring Roo, OSGi gibi konulara da tekrar eğilmeye çalışıcam. Bu sırada Eclipse 3.5 tabanlı SpringSource Tool Suite 2.1.0'ı da kullanarak getirdiği kolaylıkları gözlemlemek de istiyorum.

29.06.2009

CETURK Java Teknolojileri Etkinliği -7

Geçtiğimiz haftalarda Ankara'da gerçekleştirdiğimiz Java Teknolojileri Etkinliğinin bir benzerini bu sefer İstanbul'da, IBM Türk binasında gerçekleştireceğiz. 04.07.2009 tarihinde Java ve Kurumsal uygulamalara gönül veren İstanbullularla buluşmak dileğiyle.

Etkinliğin ayrıntılı duyurusuna http://www.ceturk.com/etkinlikkayit.asp?id=75 adresinden erişebilirsiniz.

16.06.2009

CETURK Java - Ankara Etkinliğinin Ardından..

13 Haziranda ODTÜ - KKM'de gerçekleştirilen CETURK Java Teknoloji seminerlerinin kendi açımdan heyecanlı geçmesinin yanı sıra izleyicilerin de yeni teknolojilerle tanışması açısından başarılı geçtiğini düşünüyorum.

Benim de Mustafa Demir ile "Spring Web Service" sunumuyla katıldığım etkinlikte Hasan Türksoy'un GWT ve Mehmet Gürsul'un OSGi konularına giriş düzeyindeki sunumları en azından bu iki konuya olan açlığımı bir nepze gidererek bu iki alanda biraz oyalanmam için kapıları araladı. Ayrıca Ümit Vardar Hocamızın EJB 3.1'in getirdiği yenilikler konulu sunumuyla Kenan Sevindik'in Audit sunumu da etkinliğe renk kattı.

İlk sunumum olması sebebiyle heyecanlanmanın yanında keyif de aldığımı söyleyebilirim. Yeni sunumlarda birlikte olmak dileğiyle... :)

"Spring Web Service" sunumunun yansılarına ve örnek uygulamaya http://files.getdropbox.com/u/135887/presantations/springws.rar bağlantısından erişebilirsiniz.




5.06.2009

CETURK Java Teknolojileri Ankara Etkinliği 2

CETURK'ün katılım ücretsiz olarak düzenlediği teknoloji etkinliklerinin Ankara'da 2.si 13 Haziran 2009 Cumartesi günü ODTÜ Kültür ve Kongre Merkezi (KKM) A Salonunda gerçekleştirilecek. Alanında uzman kişilerin çeşitli sunumlarla bilgilerini paylaştıkları CETURK etkinliklerinin bu ayağına "Spring Web Service" sunumuyla Mustafa Demir ile birlikte biz de konuşmacı olarak katılıyoruz. Devamının gelmesini dilerim...

Ayrıca GWT, Spring AOP, EJB 3.1 ve OSGI sunumlarının da olacağı seminerin duyurusuna ve program akışına http://www.ceturk.com/etkinlikkayit.asp?id=74 adresinden ulaşabilirsiniz.


25.03.2009

Hibernate Parameter Binding

Hibernate kullananların sıkça karşılaştığı bir durum Hibernate’in ürettiği SQL cümleciklerine geçtiği parametreleri görememektir. Hibernate’in ayar kütüğü persistence.xml’e yazılan

<properties>

...

<property name="hibernate.show_sql" value="true"/>

...
</properties>


İfadesi bile üretilen SQL cümleciğinde parametre gelecek yerleri ‘?’ ile gösteriyor. Hal böyle olunca bazen debug esnasında akışı izlemek sıkıntılı olabiliyor. Bu sıkıntıyı aşmanın bir yolu ise Hibernate Type sınıfı için Log4j 1.2.12 sürümünden itibaren kullanılmaya başlanan TRACE düzey loglama yapmak:


<logger name="org.hibernate.type">

<level value="TRACE"/>

</logger>


Her ne kadar ‘?’ yerine değerler gelmese de basılan loglardan soru işareti ile belirtilen yerlere atanan değerleri elde etmek mümkün. Dönen değerler de bonus olarak gösteriliyor


Hibernate:
/* load deneme.DovizTipi */ select doviztipi0_.ID as ID52_0_, doviztipi0_.ACIKLAMA as ACIKLAMA52_0_, doviztipi0_.KISA_ACIKLAMA as KISA8_52_0_ from DOVIZ_TIPI doviztipi0_ where doviztipi0_.ID=
?

25 Mar 2009 15:11:27,159 - TRACE - IP:127.0.0.1, ReqURI:/ips/spring/anasayfa-flow - /ips - org.hibernate.type.NullableType.nullSafeSet(151) | binding '949' to parameter: 1

25 Mar 2009 15:11:27,159 - TRACE - IP:127.0.0.1, ReqURI:/ips/spring/anasayfa-flow - /ips - org.hibernate.type.NullableType.nullSafeGet(193) | returning 'Yeni Türk Lirasi' as column: ACIKLAMA52_0_

25 Mar 2009 15:11:27,159 - TRACE - IP:127.0.0.1, ReqURI:/ips/spring/anasayfa-flow - /ips -
org.hibernate.type.NullableType.nullSafeGet(193) |
returning 'TL' as column: KISA8_52_0_