Archive

Archive for November, 2008

Glassfish + Eclipselink + Maven + DbUnit:

November 22, 2008 erdincyilmazel Leave a comment

Glassfish V3 Prelude sürümünün yayınlanması ile birlikte bu uygulama sunucusunun içerisinde default persistence provider olarak gelen Eclipselink‘i inceleyeyim dedim. Glassfish V3 her ne kadar tam anlamıyla JEE 5 certified bir uygulama sunucusu olmasa da genel anlamda benim ihtiyaç duyacağım her şeyi sunuyor. Web container, ejb container, transaction desteği… Bunların yanında update center’dan JRuby, Grails vb. pek çok desteği de ekstra olarak çekip kurabiliyorsunuz.

Neyse, fazla lafı dağıtmadan eclipselink’e döneyim. Bildiğiniz gibi Oracle persistence provider’ı olan toplink ürününün bir nevi light versionu olan toplink-essentials‘ı open source camiasına hediye etmişti. Glassfish’in bundan önceki sürümlerinde de (V1 ve V2) toplink-essentials kullanılıyordu. Ancak geçen sene içinde Oracle toplink ürününün tamamına ait kaynak kodunu Eclipse Foundation’a bağışladı ve Eclipselink ortaya çıktı. 2008 Mart ayında ise Sun Microsystems, Eclipse ve Oracle ortak bir girişimle Eclipselink’in JPA 2.0 referans implementasyonu olmasına karar verdiler. Şu anda 1.0.2 stable sürümü olan Eclipselink Glassfish V3 ile birlikte bizlere sunuluyor.

Tabi uygulama sunucusu olarak Glassfish V3 tercih edildiğinde geliştirme ve test aşamalarında da yine aynı ortamı sağlamak amacıyla Eclipselink kullanmak zorundasınız. Başka bir JPA provider kullanabilirsiniz elbette ama hem eclipselink’in kendine has özelliklerini kullanmak, hem de uygulama sunucusu üzerinde çalıştırdığınızda sürprizlerle karşılaşmamak için unit testlerinizi de yine aynı persistence provider ile çalıştırmak isteyeceksinzdir.

Bunun için aslında güzel bir tutorial yazmak isterdim ama benden önce çok güzel şekilde yazmışlar. Sade ve işe yarar küçük bir örnek olan bu tutorial’da maven ile eclipselink kullanarak mysql ya da derby database’i üzerinde DbUnit ile nasıl unit testler çalıştırabileceğinizi anlatıyor. (Amma cümle oldu!!! içinde binbir tane buzzword var!!) Tutorial’ı yazan arkadaş örnek kodları da favori ide’m olan intellij projesi olarak da koymuş daha bir güzel olmuş :)

Eclipselink’in kendine has JPA’dan ayrı bir takım eklentileri ve iyi olduğu söylenen cache mekanizması var. (Henüz derinlemesine incelemedim.) Bu kendine has özellikleri Eclipselink JPA Extensions adı verilen bir api ile sunuyor. Bu api içerisinde standard JPA annotation’larına ek olarak kullanabileceğiniz ekstra annotationlar var.

Son olarak glassfish’in de Eclipselink kullanımı ile ilgili kendi dökümantasyonu olduğunu söyleyeyim. Glassfish V3 Prelude her ne kadar Prelude adı insanı yanıltsa da production ready ve Sun tarafından ticari olarak desteklenen bir ürün ve iyi şekilde dökümante edilmiş. Yalnızca eksiği bir V3′e ait planlanan tüm özelliklerin implement edilmemiş olması. Örneğin clustering yok.

Categories: Uncategorized

Intellij 8 Python plugin’i early access olarak yayınlandı

November 20, 2008 erdincyilmazel Leave a comment

Plugin şuanda plugin manager’dan download edilebiliyor. Henuz alpha sürümü olduğunu belirtmek lazım, lakin şuanda henüz çok sorunlu. Tabi alıştığımız intellij ortamında python kodu editlemek şimdiden keyifli ancak doğru şekilde import edilmiş öğeleri unresolved olarak göstermesi autocompletion’ın doğru çalışmamasına ve gereksiz warninglere yol açıyor. Bu problemin standard python modülleri ve sizin kendi projenizdeki modülleriniz için geçerli olmadığını belirtmem lazım. Problem bilgisayarınıza yüklediğiniz django gibi MySQLdb gibi diğer modüllere erişmek istediğinizde yaşanıyor. (site-packages’a yüklenen modüller.) Bu modüllere CTRL+click yaparak doğru şekilde zıplayabiliyorsunuz, yani intellij doğru şekilde ilgili modülü buluyor ancak yine de bulamamış gibi acaip hatalar veriyor.

Şuan için refactoring, debugging gibi desteklerin olmadığını da söylemek lazım. Python kodlamak için pek çok editör denedim, eminim problemleri giderildiğinde intellij’den başkasını kullanmayacağım, ancak şuanda en iyi pytyon ide’si olarak eclipse’in pydev plugini gözüküyor.

Daha önce bahsettiğim Netbeans’in python plugin’i de hızlı şekilde development’a devam ediyor ancak orada da özellikle sistem pathinden import edilmiş diğer libraryler ile ilgili autocompletion özellikleri düzgün çalışmıyor. (Konuyla ilgili bug report ettim)

Categories: Uncategorized

YouTube’dan Canlı Yayın

November 20, 2008 erdincyilmazel Leave a comment

YouTube 23 Kasım günü (Türkiye saatiyle sanırım gece 3′te) canlı olarak ilk kez yayın yapacak. Pek çok ünlü sanatçının yer alacağı etkinliğe ait geri sayım sayacını aşağıda görebilirsiniz.

Categories: Uncategorized

GUI Tasarımı

November 20, 2008 erdincyilmazel Leave a comment

Ffffound.com sitesinin uyguladığı pagination sisteminin demosu. Tasarıma sadece görsel zenginlik değil kullanım kolaylığı olarak bakılması gerektiğinin güzel bir örneği.

UI Highlights from Ffffound from Ryan Singer on Vimeo

Categories: Uncategorized

Netbeans’den Python destegi

November 11, 2008 erdincyilmazel Leave a comment

Sun Microsystems’in scripting dillerine verdigi destek Netbeans’de de kendini gosteriyor. Ruby ve Php desteginden sonra simdi de sirada Python var. Daha once de Ruby destegini gelistiren Java Posse yorumcularindan Tor Norbye simdi de python destegini gelistiriyor. Birkac haftadir takip ediyorum, her yeni build’de biraz daha stabil hale geliyor ve suanda gayet kullanilabilir durumda. Zaten Tor Norbye’nin blog’unda bahsedildigi uzere birkac gun icinde bir early access paketi yayinlayacaklarmis. Sanirim Netbeans 6.5′in release olmasiyla birlikte cikacak bu release.

Nightly build’lere http://deadlock.netbeans.org/hudson/job/python/ adresinden erisebilirsiniz.

Categories: Uncategorized

Vmware Infrastructure 3 Demo

November 9, 2008 erdincyilmazel Leave a comment

Biraz Vmware reklami yapar gibi oldum ama bu demo acaip hosuma gitti: :)

Categories: Uncategorized

Virtual Appliance

November 9, 2008 erdincyilmazel Leave a comment
Özellikle Amazon EC2‘nin popülaritesini arttırması ve Virtualization‘ın cloud computing’de ve data center yönetiminde yaygın olarak tercih edilen bir teknoloji olmasının ardından Virtual Appliance kavramı iyice yaygınlaşmaya başladı. Kısaca özetlemek gerekirse, Virtual Appliance belli bir amaca hizmet etmek için özelleştirilmiş sanal makina imajı olarak düşünülebilir. Aslında appliance denildiğinde dışarıdan müdahale ihtiyacı olmadan kendi kendine çalışabilen, problem olduğunda recover edebilen, bir kere kurup kendi haline bırakacağınız kapalı kutudaki çözümler olarak düşünülebilir. Ama virtual appliance kavramında tanımın biraz daha esnek olduğunu görüyoruz.

http://www.vmware.com/appliances/learn/

Bugün internette Vmware için, VirtualBox için ve diğer virtualization çözümleri için (Örneğin Xen, Parallels) pek çok hazır sanal makina imajı bulabilmeniz mümkün.

Eğer bir developer’sanız sistem kurulumu ve ayarlarıyla uğraşmak istemiyor, yalnızca kod yazmaya odaklanmak istiyor olabilirsiniz. O zaman internetten üzerinde jdk, apache, mysql, python, subversion vb. bilimum ihtiyacınız olabilecek yazılımın kurulmuş ve ayarlanmış olduğu bir sanal makina bulup ücretsiz olarak edinebileceğiniz Vmware Player’da ya da Virtualbox’ta çalıştırabilirsiniz.

Özellikle eğer Vmware kullanmak isterseniz seçenekleriniz bir hayli geniş. Vmware’in Virtual Appliance Marketplace sitesinde ihtiyacınıza uygun her türlü sanal makinayı bulmanız mümkün. Bu sanal makinalar Ubuntu’dan Open Solaris’e, Windows 2003 Server’dan çeşitli BSD dağıtımlarına kadar geniş bir yelpazede bulunabilyor. En azından merak ettiğiniz bir işletim sistemini denemek açısından bile hiç zahmetsiz bir süreç olacağından biraz vakit ayırmaya değer.

Peki kendi ihtiyaçlarınıza göre bir sanal makina nasıl oluşturabilirsiniz? Bunun için Vmware kullanacaksanız ücretli satılan Vmware workstation gibi bir yazılıma ihtiyacınız olacaktır. Ama Virtualbox gibi ücretsiz çözümler de gayet başarılı. Bir sanal makina oluşturup gerekli sistem kaynaklarını bu makinaya aktarıp üzerine istediğiniz işletim sistemini kurmanız mümkün. Sanal makinalar için özelleştirilmiş işletim sistemlerini tercih ederseniz kuracağınız makinadan alacağınız performansı da artırabilirsiniz.

İşin en güzel yanı ise internette kendi sanal makinanızı oluşturabilmenizi sağlayan ücretsiz servisler olması. Elastic Server benim denediğim servislerden birisi. İstediğiniz bir işletim sistemini, üzerine kurmak istediğiniz uygulama ve frameworkleri web arayüzünden seçiyorsunuz, size birkaç dakika içinde Amazon EC2 veya Vmware üzerinde çalışabilecek bir makina imajı hazırlıyor. Oluşturduğunuz makina imajını diğer insanlarla paylaşmak isterseniz bu servisi de size sunuyor.

Vmware’in sitesinde benzer hizmet veren yerlerin bir listesi var.

Son olarak google’da bu Virtual Appliance olayına inananlardan biri olacak ki, kurumsal müşterilerine sunduğu Google Search Appliance ürününü bir virtual appliance olarak ücretsiz sunmaya başladı. Tabi bu ücretsiz sanal makinanın limitleri yok değil. Örneğin 50.000 döküman indeksleyebiliyorsunuz toplam olarak, ama küçük ve orta ölçekli firmalar için hiç de fena değil.

Categories: Uncategorized