-
Daha önceki bir yazımda Google’ın gözlük projesinden sonra giyilebilir bilgisayarların gelişiminde öncü role sahip Steve Mann’ın hikayesinden bahsetmiş ve Google’ın gözlük projesini bugün konuşuyor isek biraz da bunu 70’lerin sonlarından bu yana çalışmalarını ısrarla ve kesintisiz biçimde sürdüren Steve Mann ve benzerlerine borçlu olduğumuzu anlatmaya çalışmıştım. [Read More]
-
Weird Autowiring Behaviour in Spring Framework
By Kenan SevindikDuring lab sessions in our Enterprise Java trainings, I usually leave the main track of lab outlines and start trying various cases related to the topic. It is a bit risky for me, but it also becomes beneficial for attendees in terms of learning by experimenting with the framework. The... [Read More] -
Another Difference Between Autowire byType and constructor
By Kenan SevindikLets keep playing with autowiring behaviour of Spring Framework. Autowire byType or byName is not required by default. In other words, they will do nothing if they cannot find suitable candidates to inject into target beans. They can be made required in two different ways; [Read More] -
Web Bileşenleri İçin Spring’in Autowiring Desteği
By Kenan SevindikSpring kullanan Java uygulamalarının muhtemelen en az bir yerinde Spring tarafından yönetilmeyen nesnelerin Spring bean’ları ile iletişime geçmesi gerekir. Spring’in AOP kabiliyeti sayesinde Spring tarafından yönetilmeyen domain nesnelerine bağımlılıkları enjekte etmek mümkündür. Diğer bir tür nesne ise web bileşenleridir. Bunlar servlet, filter veya JAX-WS endpoint’leri olabilir. Çoğunlukla Spring tarafından yönetilmeyen... [Read More] -
TransactionTemplate and Rollback Rules
By Kenan SevindikWhen I was playing with TransactionTemplate during one of my Spring training sessions, I promptly suggested the audience try changing the default rollback rules while using TransactionTemplate. After all, TransactionTemplate encapsulates boilerplate transaction begin, commit/rollback statements, and we only give the business logic part, which it executes inside that begin…commit/rollback... [Read More] -
How to build SessionFactory in Hibernate 4
By Kenan SevindikWell, I think it is the first time in Hibernate’s history that it is released with incomplete feature implementations and documentation. I came to this conclusion when I see Configuration.buildSessionFactory() method as deprecated. [Read More] -
Spring Application Framework ve Tasarım Örüntüleri 2
By Kenan SevindikÖnceki yazılarımızdan birinde Spring Application Framework’de kullanılan örüntülerin bir kısmından bahsetmiştik. Factory Method, Singleton, Prototype, Proxy, Template Method, Observer, Mediator, Front Controller örüntüleri Spring Application Framework içerisinde değişik şekillerde karşımıza çıkmaktadır. Bu yazımızda da Spring Application Framework içerisinde kullanılan diğer bazı örüntülerden bahsedeceğiz. [Read More] -
Serialization mı Memento mu?
By Kenan SevindikGeçen hafta düzenlediğimiz ve hem benim hem de katılımcılar için oldukça verimli ve eğlenceli geçtiğini düşündüğüm uygulamalı “Nesne Yönelimli Tasarım Prensipleri ve Tasarım Örüntüleri Eğitimi”nde Memento örüntüsünü inceleyip Java’da nasıl implement edileceğini bir örnek ile açıklarken “Serialization varken Memento’ya neden ihtiyaç duyarız?” şeklinde bir soru soruldu. [Read More] -
Java ve Double Dispatch 2
By Kenan Sevindikİlk yazımızda Java’da “single dispatch“in nasıl çalıştığını ve “multiple dispatch” problemini incelemiştik. Eğer metot çözümleme sırasında input argümanında dikkate alınmasını istiyorsak izlememiz gereken yol “metot çözümlemeyi input argümanın kendisine delege etmek” olacaktır. Nasıl mı? Örnekle açıklayalım… [Read More] -
Java ve Double Dispatch 1
By Kenan SevindikHepimizin bildiği gibi Java polymorphic (çok formlu) bir dildir. Çok formluluk java uygulamasının içindeki metot çağrılarının spesifik olarak hangi sınıftaki metot tanımı ile yapılacağının çalışma zamanına kadar ötelenmesi ile gerçekleştirilmektedir. Bir örnek ile açıklayalım. [Read More] -
NoClassDefFoundError vs ClassNotFoundException
By Kenan SevindikHer ikisi de biz java programcılarının karşısına sıklıkla çıkan hatalardandır. Her ikisi de uygulamamızın runtime’da ihtiyaç duyduğu bir class’ın bulunamadığını anlatmaktadır. Ancak aralarındaki farkları bilmek sorunun ana nedenini tespit etmek ve çözüm getirmek için önemli olabilir. [Read More] -
JSF ViewScope ve JVM Memory Problemleri
By Kenan SevindikŞu sıralar büyük bir müşterimizin kurumsal web uygulamasının performans optimizasyonu üzerinde çalışıyoruz. Süreç sonunda uygulamanın kaldırabileceği kullanıcı sayısında ve istekleri ele alma hızında önemli ölçüde iyileşme oldu. Bu iyileştirme sürecinin bir bölümünü de memory optimizasyonuna ayırdık. Uygulamanın ön yüzü JSF ile geliştirilmişti. Bu bloğu takip edenler JSF hakkında ne güzel(!)... [Read More] -
İlerleme Süreklilik İster
By Kenan SevindikSteve Mann’ı ve çalışmalarını İnternet üzerinden 94’den bu yana aralıklarla takip ediyorum. Kendisi 70’lerin sonlarından bu yana “giyilebilir bilgisayar” sistemleri üzerinde çalışıyor. Çalışmaları en son Google’ın “gözlük” projesini duyunca tekrar aklıma geldi. Acaba Steve Mann’da bu projede yer alıyor mu veya bu proje hakkında ne düşünüyor diye merak ediyordum. Kısa... [Read More] -
Spring JavaConfig ve Döngüsel Bağımlılıklar
By Kenan Sevindik -
Hibernate; Field Level Mı? Getter Level Mı?
By Kenan SevindikEntity’lerin persistent property’lerine Hibernate’nin nasıl erişeceği ile ilgili olarak iki yol mevcuttur. [Read More] -
Spring 3.2 Sürümü Çıktı, Spring 4 Yolda…
By Kenan SevindikAslında Spring 3.2.0 sürümü Aralık 2012’nin ortalarında çıktı. Biz de projelerimizde Spring 3.2 ile çalışmaya başladık. Spring’in farklı sürümler arasındaki geçişleri yönetme başarısı burada da devam ediyor. Spring 3.x serisi içerisinde herhangi bir problem yaşamadan upgrade’ler yapabiliyorsunuz. Hatta bu geçişler 1.x’den 2.x’e, daha sonrasında 3.x’e de hemen hemen aynı kolaylıkta... [Read More] -
POST’lasak da mı saklasak yoksa PUT’lasak da mı saklasak?
By Kenan SevindikSarımsaklasak da mı saklasak, yoksa sarımsaklamasak da mı saklasak… Yok yok hayır, REST tabanlı bir servis geliştirirken yeni bir resource ekleme ve güncelleme işlemleri için hangi HTTP metodunun tercih edileceğine karar vermek bu tekerlemeyi söylemek kadar zor değil. Yalnızca bu iki metot ile ilgili bilmemiz gereken birkaç temel noktaya odaklanarak... [Read More] -
Hangi SVN Dizin Yapısını Tercih Ediyorsunuz?
By Kenan SevindikSVN ile çalışırken iki dizin yapısı karşımıza çıkıyor. Bunlardan ilki [Read More] -
Spring Konfigürasyonu; XML mi, Annotasyonlar mı, Yoksa Java mı?
By Kenan SevindikSpring Application Framework konfigürasyon metadatasının oluşturulabilmesi için üç farklı yol sunmaktadır. Bunlar XML, java annotasyonları ve java kodu şeklindedir. Spring ilk çıktığı günden bu yana XML konfigürasyon metadata formatını desteklemektedir. İkinci yol java annotasyonlarını kullanmaktır. Java kodu içerisinde belirtilen annotasyonlar vasıtası ile konfigürasyon metadata ifade edilmektedir. [Read More] -
Hibernate 4 ve Multitenancy
By Kenan SevindikMulti-tenant uygulamaları kurumsal yazılım projelerinde hayata geçirmenin üç temel yolu vardır. Birinci yol her bir istemci için tamamen ayrı bir fiziksel veritabanı kullanmaktır. Bu yaklaşımda JDBC veritabanı bağlantıları her bir istemci için ayrı ayrı yönetilmektedir. Bu yönetim veritabanı bağlantı havuzları için de geçerlidir. Uygulamalar sisteme login olmuş kullanıcıya ait tenant... [Read More] -
Hibernate ve Multi-Tenant Uygulamalar
By Kenan SevindikInternet’in yaygınlaşması ve uygulamaların web platformuna taşınması ile birlikte farklı organizasyonlara ait verilerin tek bir sunucu uygulamasında yönetimi üzerine kurulu olan multi-tenant uygulamaların sayısı da gün gittikçe artıyor. [Read More] -
StringHttpMessageConverter DEFAULT_CHARSET Limitation for Turkish Content
By Kenan SevindikSpring has its own REST support known as Spring Web MVC. Although, I am happy with its general capabilities, I came up with a small but very annoying problem or, let’s say, a limitation related to one of its HttpMessageConverter classes. [Read More] -
Tasarım Prensipleri ve Tasarım Örüntülerine Giriş Seminerleri
By Kenan SevindikAralık 2011’de ODTÜ Enformatik Enstitüsü’nde, arından da dün ODTÜ Bilgisayar Mühendisliği’nde tasarım örüntülerinden ve nesne yönelimli yazılım geliştirmede temel bazı tasarım prensiplerinden bahsettiğimiz iki sunum gerçekleştirdik. Bunlardan ODTÜ’deki sunumda klasik ve modernist nesne yönelimli tasarım yöntemlerinin ne tür sonuçlar doğurduğunu örnek bir proje üzerinde katılımcılarla paylaştık. Sunum ve örnek koda... [Read More] -
5. TASOD Çalıştayı Yapıldı
By Kenan SevindikBedir Tekinerdoğan’nın gayretleri ile her sene düzenlenen Ulusal İlgiye Yönelik Yazılım Geliştirme Çalıştayı’nın 5.si geçen hafta Bilkent Üniversitesi’nde yapıldı. Bu çalıştayların çoğuna katılan birisi olarak sunumlardan oldukça yararlandığımı belirtebilirim. Gün geçtikte ilgiye yönelik yazılım geliştirme yöntemlerinin kurumsal uygulama geliştirmenin temel bir parçası olduğunu görmek sevindirici. Etkinlikteki sunumlara buradan erişebilirsiniz. [Read More] -
ThreadLocal Kullanımının Yol Açabileceği Güvenlik Problemleri ve Alınabilecek Önlemler
By Kenan SevindikThreadLocal değişkenler hem Java hem de .NET ile geliştirilen kurumsal uygulamalarda zaman zaman karşımıza çıkabilir. ThreadLocal bir değişkenin değeri her Thread için farklı farklı olabilmektedir. Bu değişkenler, en çok uygulamanın katmanları arasında bağlamsal bir verinin (contextual data) metotlara parametre geçmeden taşınması için kullanılmaktadır. [Read More]