Swing Uygulamalarında Thread Kullanımı
Swing Uygulamalarında Thread Kullanımı

Java’da Swing uygulamalarında, kullanıcı arayüzündeki elementlerde değişiklik yapmak ve bu arayüzden gelen eventleri dinlemek için tek thread kullanılır. Bu thread’e “event dispatch thread” ismini vermişler. Bu thread’in içinde uzun sürecek bir işlem yapmayı şiddetle önermiyoruz çünkü bu thread’in kilitlenmesi kullanıcı arayüzünün kilitlenmesi anlamına geliyor.

Kendi Thread Pool'umuzu Yaratalım
Kendi Thread Pool'umuzu Yaratalım

Thread nedir, nasıl kullanılır konusuna uzun zaman önce değinmiştim. Peki multithread bir uygulamada sürekli yeni Thread yaratmak ne kadar iyi bir yöntemdir? Sık sık Thread yaratmak bazen performansı arttırmak yerine düşürebilir çünkü yeni bir Thread yaratmak işletim sistemi için masraflı bir iştir. Hem yeni bir Thread’in yaratılması, bu Thread için gerekli kaynakların ayrılması, hem de yüzlerce Thread’i yönetmek ve bunlar arasında geçişler yapmak JVM için masraflı işlerdir. Bu yazıda Thread kullanımını nasıl kontrol altında tutarız buna bakıyor olacağız.

Dining Philosophers Problem Çözümü - Java Örnekli
Dining Philosophers Problem Çözümü - Java Örnekli

Merhaba sevgili arkadaşlar. Yaklaşık 2 ay önce Dining Philosophers Problemine değinmiş, örnek bir Java uygulamasıyla kolayca sistemi deadlock’a sokabilmiştik. Sorunu yaratmış, fakat çözmeden bırakmıştık. 2 aydır yoğun tempoda çalıştığım için tekrar blog yazmaya fırsat bulamadım. Şimdi basit bir yöntemle ve örnek kodlarla bu sorunun nasıl çözüleceğine odaklanacağız.

Dining Philosophers Problemi Java Uygulaması
Dining Philosophers Problemi Java Uygulaması

Hayatımda hiç deadlock ile karşılaşmamış birisi olarak Java’da deadlock yakalamaya heves ettim. Bunu en güzel ve eğlenceli şekilde nasıl yaparım diye düşünürken Dining Philosophers Problem geldi aklıma. Basit bir Java kodu ile problemi yaratmayı başardım.

Java String Concatenation, StringBuilder ve StringBuffer
Java String Concatenation, StringBuilder ve StringBuffer

Gece gece canım sıkıldı, yine yerimde duramadım, bir benchmark yapıp yazılım camiasında sık sık dile getirilen bir noktaya bir de ben parmak basayım dedim. Biliyorsunuz ki Java ile birşeyler geliştirirken sık sık String‘leri uç uca eklememiz gerekiyor. En basit okul ödevinden en komplike web projelerine kadar bu işlemi hiç düşünmeden concatenation yöntemi ile yapanlarımız var. Hiç düşünür müydünüz bunun bir performans sorunu olarak değerlendirilebileceğini ve alternatif yaklaşımlarının bulunduğunu?

Tab Archiver: Tablerinizi Kaydedin
Tab Archiver: Tablerinizi Kaydedin

Google Chrome eklentisi geliştirmeye tam gaz devam ediyorum. Bu eklenti yardımıyla web tarayıcınızda açık olan tüm sekmeleri bir tıkla kaydedip kapatabilirsiniz. Daha sonra istediğiniz zaman bu sekmeleri geri getirebilirsiniz.

Checkbox Yerine Select Kullanalım
Checkbox Yerine Select Kullanalım

Uzun zaman olmuş blog yazmayalı. Madem frond-end developer olduk, hadi biraz daha Javascript yazalım. Geçen gün Netmera için bir sayfa geliştirirken karşılaştığım bir zorluktan bahsetmek istiyorum öncelikle. Diyelim kullanıcıya ekranda belirli seçeneklerden istediği kadarını seçebilmesi için bir arayüz hazırlamamız gerekiyor. Bunun için genellikle kullanılan ön yüz elemanı genellikle checkbox olur. Fakat seçenekler biraz fazla olursa ne olur? Ekranda 50-60 tane checkbox’ı alt alta göstermek ister miyiz? Bu gibi durumlarda bizim kullandığımız genel yöntem kullanıcıya bir tane select (dropdown yada combobox) göstermek ve bir tane butonla da daha fazla select elementini ekrana getirebilmesini sağlamak. Bu yöntem çok güzel bir şekilde ihtiyacımızı karşılıyor fakat bir sıkıntısı var, Javascript ve jQuery ile bunu yönetmesi biraz zor.

Linux: MySQL Veritabanını Import ve Export Etmek
Linux: MySQL Veritabanını Import ve Export Etmek

Bazen tüm bir MySQL veritabanını tek bir dosya halinde yedek almamız gerekebilir. Yada tam tersi, bir dosyadan bir database’i geri yüklememiz gerekebilir. Bunun için linux konsolunda doğrudan çalışan mysqldump ve mysql komutlarını kullanabiliriz. Bu yazıda kaynak olarak gösterdiğim stackexchange linkini yer imlerime eklemiş her ihtiyacım olduğunda oradan bakarak yapıyordum bu işi fakat buraya da not alayım dedim.

jQuery'de Olaylar (Event Handling)
jQuery'de Olaylar (Event Handling)

jQuery Giriş ve Gelişme yazısıyla başladığım jQuery yazı dizisine olaylar ile devam ediyorum. Bilgisayar programlarını ve web sitelerini interaktif hale getiren şeyler aslında olay(event) dediğimiz şeylerdir. Örneğin kullanıcı bir linke tıkladığında, faresinin imlecini bir butonun üzerine getirdiğinde veya klavyeden bir tuşa bastığında biz bunları anlık olarak yakalamak ve tepki vermek isteriz. Aslında kullanıcının web sitesinde yaptığı hemen hemen herşeyin bir olay karşılığı vardır ve jQuery sayesinde biz bu olayları çok kolay yakalayıp buna karşı bir davranış geliştirebilir, bir tavır takınabiliriz.

jQuery Giriş ve Gelişme
jQuery Giriş ve Gelişme

Günümüzde Javascript’in web programlama alanında ne denli önemli bir dil olduğunu artık açıklamaya gerek yok. Client tarafında neredeyse her işi artık Javascript ile yapıyor hale geldik. Aslında, Javascript yaygınlaşmadan önce client tarafında hiçbir şey yapmıyorduk. Sayfalar düz HTML sayfalarıydı, bir linke veya bir butona tıkladığımızda sayfanın yeniden yüklenmesini bekliyorduk. Örneğin Facebook’daki like butonuna tıkladığınızda tüm sayfanın yeniden yüklendiğini düşünün. Tüm o yazılar, resimler, görüntü… Ne amelelik değil mi?