27 Mart 2007

Eclipse İstanbul'da...

Eclipse için İstanbul'da 30 Nisan 2007 Pazartesi günü özel bir konferans düzenlenecek. Bu konferansta Eclipse teknolojilerinin gücüne dikkat çekecek yerli ve yabancı konuşmacılar yer alacak. Sitesinde konferansa katılım ücretsiz!!! gözüküyor. Yer olarak İTÜ Ayazağa kampüsü Kültür Merkezi belirtilmiş. Kaçırmayın derim... Konferans programı.

17 Mart 2007

Dosyalarınızı Nasıl Sıkıştırırsınız?

Merhabalar,
Java'da dosyalarınızı ve klasörlerinizi hiç sıkıştırmayı denediniz mi? Denemediyseniz buyrun böyle alalım:) . Java'yı kullanarak dosya ve klasörlerinizi arşivleyen bir program yazabilirsiniz. Bunun için "java.util.zip" paketini kullanabilirsiniz. Bu iş için bu paketteki ZipFile, ZipEntry ve ZipOutputStream sınıflarını kullanabilirsiniz.
ZipEntry sınıfı zip dosyasında saklanacak her bir elemanı temsil eder. Bu elemanlar dosyalar ve klasörlerdir. ZipFile sınıfı bir zip dosyasını temsil eder. ZipOutputStream ise bir zip dosyasına için gerekli olan I/O sınıfıdır.
İsterseniz örneklere bakarak inceleyelim:

1. Bir dosyayı sıkıştırmak için:

byte[] readBuffer = new byte[2156];
int bytesIn = 0;

FileInputStream fis = null;
ZipOutputStream zos = null;
try {
zos = new ZipOutputStream(new FileOutputStream(""));
fis = new FileInputStream(<"Sıkıştırılacak dosyanın yolu">);
// dosya bir zip elemanı haline dönüştürülüyor
ZipEntry anEntry = new ZipEntry(fileToZip.getPath());
// Zip elemanı yazılmak üzere ZipOutputStream nesnesine veriliyor.
zos.putNextEntry(anEntry);
// Son olarak dosyanın içeriği stream'e yazılıyor.
while((bytesIn = fis.read(readBuffer)) != -1)
{
zos.write(readBuffer, 0, bytesIn);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// yazma işlemi bittikten sonra streamler kapatılıyor.
try {
fis.close();
zos.close();
} catch (IOException ex) {}
}

2. Bir klasörü sıkıştırmak için:
Klasör ve klasörün her bir elemanı ayrı bir entry olduğu için ayrı ayrı sıkıştırılır.

File dirTozip = new File(<"Sıkıştırılacak klasörün yolu">);
ZipOutputStream zos = null;
try
{
zos = new ZipOutputStream(new FileOutputStream(""));
// gerçekten klasör mü?
if ( !dirTozip.isDirectory() ) {
throw new IllegalArgumentException(dirTozip+" bir klasör olmalı!");
}
// klasörün içeriği alınıyor
String[] dirList = dirTozip.list();
// klasörün içindeki her bir eleman ayrı ayrı sıkıştırılıyor.
for(int i=0; i
{
File f = new File(dirTozip, dirList[i]);
if(f.isDirectory())
{
// eğer bu File nesnesi bir klasörse içindekileri sıkıştırmak için
// bu fonksiyon yeniden çağrılır (recursive)
// yeni bir klasörü elemanı oluşturuluyor.
ZipEntry anEntry = new ZipEntry(f.getPath()+"/");
zos.putNextEntry(anEntry);
zipDir(f, zos);

continue;
}
// Buraya ulaştıysak bir dosya sıkıştırabiliriz demektir.
zipFile(f, zos);
}
} catch(Exception e) {
e.printStackTrace();
} finally {
// yazma işlemi bittikten sonra streamler kapatılıyor.
try {
fis.close();
zos.close();
} catch (IOException ex) {}
}

3. Bir zip dosyasını açmak için:

Enumeration entries;
ZipFile zipFile;

try {
zipFile = new ZipFile(<"Açılacak zip'in yolu">);
entries = zipFile.entries();

byte[] buffer = new byte[1024];
int len;

while(entries.hasMoreElements()) {
ZipEntry entry = (ZipEntry)entries.nextElement();

// eğer entry bir klasör ise klasör oluşturulmalı
if(entry.isDirectory()) {
(new File(entry.getName())).mkdir();
continue;
}

// Entry açılıyor....
InputStream in = zipFile.getInputStream(entry);
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(entry.getName()));

while((len = in.read(buffer)) >= 0)
out.write(buffer, 0, len);

in.close();
out.close();

}

zipFile.close();
} catch (IOException ioe) {
ioe.printStackTrace();
return;
}

Bu 3 işlemle basit bir arşivleme programı yazabilirsiniz. Kolay gelsin...

28 Şubat 2007

JCataloger v1.0 beta

Merhaba,

Açık kaynak olarak geliştirdiğim JCataloger programının v1.0 betasını google project hosting yardımı ile siz değerli insanların kullanımına sunmaya başladım. Kısaca bu programın ne işe yaradığından bahsedeyim: JCataloger size elinizin altında bulunan arşivlerinizi indekslemeyi sağlar. Bunu arşivinizdeki CD, DVD, sabit sürücü... gibi veri saklama ortamlarındaki klasör yapısını kopyalayıp bu klasör yapısını indeksleyerek yapar. Böylece aklınızda olan bir dosyayı kolayca ve hızlı bir şekilde arşivinizde aramaya yardımcı olur. Bu kolaylık şundan dolayıdır; arşivinizde 1000 tane CD varsa bir dosyayı bu kadar CD'ye teker teker bakarak aramak uzun sürebilir. İşte JCataloger sizi bu zahmetten kurtarabilecek bir program.
Yalnız programın beta sürümünü yayımladığımdan dolayı bazı hatalar olabilir. Zaten amacım benim göremediğim hataları ve yenilikleri siz değerli insanların gözleri ile görebilmektir ve bu programı geliştirmektir. JCataloger indeksleme işi için arka tarafta Apache Lucene projesini kullanmaktadır.
Programın kaynak ve çalıştırabilir kodlarını
http://code.google.com/p/jcataloger/downloads/list adresinden indirebilirsiniz.
JCataloger hakkında hata ve yeni istekleriniz için
http://code.google.com/p/jcataloger/issues/list adresini kullanabilirsiniz.
JCataloger'ın kodu Subversion kullanılarak host edilmektedir. Aşağıdaki adresteki bilgiler ile kodu yerel makinenize çekebilirsiniz.

http://code.google.com/p/jcataloger/source

JCataloger'dan haberdar olmak için ana sayfasını ziyaret edebilirsiniz.

İyi günler dilerim...

14 Şubat 2007

Özgür Yazılım ve Açık Kaynak Günleri

Merhabalar,
3-4 mart tarihlerinde İstanbul Bilgi Üniversitersi'nde özgür yazılım ve açık kaynak günleri düzenlenecek. Bu organizasyon bayadır yapılıyor. Açık kaynak yazılımın gelişmesi için daha fazla organizsayonun yapılması gerekir. Ülkemizin yazılım ithal etmemesi için bu konunun üstüne gidilmelidir. Ticari yazılımlarla yapılacak işleri alternatif olan açık kaynak yazılımlarla da yapabilirsiniz. Buna Java en büyük örnektir bence. Size kurumsal, mobil, masaüstü çözümlerini sunuyor, seç beğen al yani:). Umarım bu organizasyon kaçmaz...

01 Şubat 2007

NetBeans'de Bir Hata

Merhabalar,
PARDUS'ta yada başka bir işletim sisteminde NetBeans kullanırken özellikle yeni bir proje oluştururken şöyle bir hata ile karşılaşabilirsiniz: javax.xml.transform.TransformerConfigurationException : Could not compile stylesheet. Bu hatayı ben yeni bir görsel JSF projesi oluştururken aldım. Bildiğiniz gibi NetBeans proje oluşturulduğunda ant scriptlerinin bulunuduğu XML dosyalarını da üretiyor. Muhtemelen bir sorundan dolayı bunları üretemiyor ve bu hatayı veriyor. Çözümü ise çok basitmiş. Sadece NetBeans'in konfigürasyonlarının bulunduğu netbeans-5.5/etc/netbeans.conf dosyasındaki netbeans_default_options parametresine locale tr_TR seçeneğini eklemektir. Parametrenin son hali aşağıdaki gibi olacaktır:
netbeans_default_options="-J-Xms32m -J-Xmx128m -J-XX:PermSize=32m -J-XX:MaxPermSize=96m
-J-Xverify:none --locale tr_TR"

Bundan sonra projelerinizi düzgün bir şekilde oluşturabilirsiniz.

28 Ocak 2007

Eclipse C/C++ Debugger'ındaki Bir Hatanın Çözümü

Yazdığınız C kodunu debug etmek için Eclipse'in C/C++ eklentisini kullanıyorsanız aşağıdaki gibi bir hata ile karşılaşabilirsiniz:
Kullandığım işletim sistemi PARDUS. gcc ve gdb paketleri yüklü. Eclipse yazdığım c kodlarını çalıştırmak ve debug etmek için bu paketleri kullanıyor. Yazdığım bir C kodunu çalıştırabildim, fakat debug yapmak istediğimde "Failed to set program arguments, environment or working directory" gibi bir hata verdi. Bunun nedeni de şu imiş. Benim Eclipse çalışma alanım Eclipse Projelerim isminde bir klasördür. Debugger, oluşturduğunuz bir C projesinin yolunda boşluk karakteri görürse deminki hatayı veriyor. Yani Eclipse Projelerim klasörünün ismini Eclipse_Projelerim şeklinde değiştirdim ve sorun çözüldü. Aynı şekilde C kaynak dosyası da boşluk karakteri içermemeli.

25 Ocak 2007

iPhone Java'yı destekleyecek mi?

Bildiğiniz gibi Apple iPhone ismindeki telefonuyla telefon piyasasına da girmek istiyor. Bu ürün henüz dünya çapında satışa çıkarılmadı. Bu yazıyı yazarken herhalde Amerika'da satılmaktadır. Bu üründe de Apple tasarımdaki yaratıcılığını yine konuşturmuş. Neyse şimdi ürünün reklamını yapmayayım, en iyisi sadete geleyim. Şurda sitede Steve Jobs ile yapılmış bir söyleşi anlatılmış. Steve Jobs'un dediğine göre iPhone Java'yı içindeki tarayıcısında desteklemeyecekmiş. Çünkü artık Java kullanılmıyormuş, burda herhalde Applet'leri kastetmiş kendisi. Bu konuda haklı olabilir, çünkü gerçekten appletler artık o ilk çıktığı cazibesini nerdeyse kaybetti bence. Artık onun yerine insanlar flash kullanmayı tercih ediyor. Telefona üçüncü parti bir program yükleme konusunda da Jobs şunu söylemiş. "Telefon bir PC değildir, iki üç program kurduktan sonra telefon araması yaptığında telefon çalışmaz hale geliyor." Bence bu yanlış bir düşünce olmuş, çünkü mobil piyasası çok hareketli. Artık yazılım şirketleri mobil programlar geliştirerek bu piyasadaki pastadan pay almaya bakıyorlar. Bu nedenle telefon üreticileriyle yazılım firmaları çeşitli anlaşmalar yapyorlar. Bu nedenle Java ve .Net gibi yazılım ortamlarının bu alanda kullanımı da gittikçe artıyor. Mobil telefon piyasasına bakarsanız yeni çıkan telefonların nerdeyse hepsi Java destekliyor. Ed Burnette de bu konuda şunu söylemiş, telefon için yazılım geliştirirken C, C++ gibi unmanaged (yani memory kontrolünü sizin yaptığınız, pointer kullanımı...) yazılım dilleri yerine Java ve .Net gibi managed diller kullanırsanız telefon çökmez. Gerçekten de öyle, C'de eğer tanımladığınız pointer'ları iyi bir şekilde yönetemezseniz ve hafıza kullanımını iyi bir şekilde yönetemezsiniz o program telefona çok zarar verir. Bu nedenle Java gibi garbage collection'ı olan, hafıza yönetimini, pointer kullanımını kendisi ayarlayan diller kullanırsanız bir sorun çıkmaz. Bu anlatılanlara göre iPhone Java'yı desteklemezse yazık olur. Çünkü rekabet edeceği firmalar program desteği konusunda iPhone'a fark atar:)

05 Ocak 2007

Ölü Pixellere Son!

Bir dizüstü bilgisayar satın aldınız diyelim. Çok heyecanlısınız, çünkü uzun süredir bu anı bekliyordunuz. Eski masaüstü bilgisayarınızdan kurtuldunuz. Artık bilgisayarınızı istediğiniz yere taşıyabileceksiniz ve daha bir sürü güzel, heyecanlı düşünceler beyninizi kemiriyor.
Bu düşüncelerle dizüstünüzün kapağını açtınız ve açma düğmesine bastınız. İşletim sistemi çalıştı, herşey yolunda. Fakat o da ne? Ekranda bir tane benek duruyor, elinizle siliyosunuz gitmiyor, tükürüp siliyosunuz gene gitmiyor. Maalesef o benek silmekle gitmez! Bu benek aynen aşağıdaki gibidir:

Resimdeki kırmızı benek bir ölü pixeldir ve bunun tamiri için makineyi servise gönderebilirsiniz yada bu sitede iddia edildiğine göre bir java programı aracılığı ile bu ölü pixeli tekrar canlandırabilirsiniz. Programın ismi de JScreenFix. Çalıştırdığınızda karıncalı televizyon görüntüsünü andıran bir arayüz çıkarıyor ve bu ekranın bu ölü pixelleri düzelteceğine inanılıyor. Ölü pixeli olan arkadaşlar, bir deneyip buraya yazarsanız sevinirim. Bilgimiz olsun:)

04 Ocak 2007

Solr Index Server!!!

Apache Solr isminde bir ürün çıkardı. Solr bir arama sunucusu. Yani siz istediğiniz dökümanları, verileri sunucu tabanlı bir uygulamaya HTTP üzerinden XML istek (request), aynı AJAX gibi, olarak gönderiyorsunuz, sunucu da bu verileri kendi içerisinde Lucene projesini kullanarak indeksliyor. Bir şeyi aramak istediğinizde aynı şekilde XML istek olarak HTTP üzerinden sunucuya istek yolluyorsunuz. Sunucu da size sonuçları XML olarak döndürüyor.
Bir düşünsenize, büyük bir şirket ve yüklü bir döküman yığınının tutulduğu bir veya bir kaç sunucu var ve bu dökümanlardan tüm çalışanlar faydalanıyor. Solr sayesinde bu dökümanları indeksleyebilir ve hızlı arama sonuçlarına ulaşabilirsiniz, aynı google gibi:). Solr kullanarak sunucu üzerinde arama yapıp sonuçlarını kullanıcıya güzel bir arayüzle gösteren kullanıcı tabanlı (thin client) uygulamalar yazabilirsiniz. Örnekler çoğaltılabilir.
Bu uygulamanın özellikleri ve bir de eğitimi mevcut! Kolay gelsin...

02 Ocak 2007

Aptana Web IDE

Selamlar,
Eclipse RCP kullanılarak Aptana isminde bir web ide geliştirilmiş. Bu IDE sayesinde html, javascript ve css dosyalarınızı gayet kolaylıkla yönetebilirsiniz. Örneğin javascript kullanarak bir kütüphane (mesela AJAX kütüphanesi) yazmak istiyorsanız bu Aptana gayet iyi bir seçim olabilir. Çünkü ilk önce eclipse ortamından kopmamış oluyorsunuz, ikincisi Aptana içinde bir tane javascript debugger'ı getiriyor. Böylelikle yazdığınız javascript kodlarının nasıl çalıştığını gözlemleyebilirsiniz. Bir diğer özellik html, css, javascript için kod yardımı (code assist) özelliği de var.
Ayrıca bu Aptana'yı kullananlar bir de eğitim amaçlı olarak videolarını koydukları bir site yapmışlar. Bu sitede çeşitli kısa eğitimler bulabilirsiniz.

31 Aralık 2006

Bayram Tebriği

Herkesin kurban bayramını kutlar, yeni yılın sağlık, başarı ve mutluluk getirmesini dilerim.

08 Aralık 2006

Özgürlük için...

Pardus 2007'yi bekliyoruz ve blog kardeşliğine katılıyorum ve diyorum:Özgürlük için... ve sizde söyleyin: Özgürlük için...

06 Aralık 2006

Virtual Ant

Ant'ı kullanmayanımız yoktur herhalde.Kısaca Ant bizlere karmaşık sistemlerin build ve deploy işlemlerini kolay bir şekilde yapmamızı sağlıyor.Şu ana kadar bu işlemi elimizle build.xml dosyaları yazarak yapıyorduk.Fakat,saolsun,bundan sonra elimizle yazmayacağız,elimizle tıklayarak yapacağız,yani fare kullanarak:)Virtual Ant denilen proje görsel olarak ant scriptleri hazırlamamıza olanak sağlıyor.Proje windows'taki file exporere gibi bir arayüzle karşınıza çıkıyor.Burdaki dosyalar üzerindeki yapacağınız işlemler gerçek dosya sistemini etkilemiyor.Yani sanal çalışıyorsunuz.Yaptığınız her işlem bir ant task'ı olarak kaydediliyor.Daha geniş bilgi için sitesine ve demosuna bakabilirsiniz.Unutmadan proje paralıdır.

05 Aralık 2006

Pardus'a geçtim

Merhabalar,
Artık ben de bir Linux kullanıcısı oldum.Daha doğrusu PARDUS kullanıcısı.Bu iletinin java ile fazla bir ilgisi yok fakat bundan sonra PARDUS'ta java ile ilgili karşılaştığım sorunlar olup çözümlerini bulduğum zaman buraya yazacağım.Şu an windows'a hiç ihtiyaç duymuyorum.PARDUS'u Tubitak'taki ve emek veren herkes çok güzel bir şekilde inşa etmişler.PARDUS'u kurduğunuz zaman ihtiyacınız olan her şey beraberinde geliyor.Yeni bir şey yüklemek istediğinizde PISI adı verilen kendilerinin geliştirdiği paket yükleme ve güncelleme aracını kullanıyorsunuz.RPM ve DEB uzantılı dosyaların kurulumunu desteklemiyor.PARDUS'u kurduktan sonra yeni bir işletim sistemine geçmemden dolayı bir kaç zorlukla karşılaşmadım değil.Bunların en önemlisi internet oldu.Bende ZOOM 5510B USB ADSL modem vardı ve bunu bir türlü tanıtamadım.Kendi içinde gelen eciadsl paketi benim modemin bir eski versiyonunu destekliyormuş.Ben ne yaptım, abimin zoom ethernet modemi ile takas ettim benim modemi.Böylece sorun çözüldü:)
Java uygulamalarını kurmam da hiç zor olmadı.Ne kurdum:Eclipse 3.2.1,NetBeans 5.5, NetBeans Visual Web Pack, Glassfish Application Server.Bunlardan NetBeans'in kurulumunda sorunlar oldu.Bu sorunların çözümünü daha sonra dile getireceğim.Şu an çok güzel bir şekilde Java geliştirebiliyorum.
Bence PARDUS'u tüm Türkiye kullanmalı.En önemlisi milli bir işletim sistemi.Böylece açık kaynak koda desteğimiz de artmış olur ve piyasadaki microsoft tekelide azalmış olur.Windows'un kullanım açısından en son kullanıcıya hitap etmesini inkar etmemek lazım;fakat PARDUS'un da bu özellik olarak fazla eksik bir tarafı yok bence.Tamamen alışkanlık meselesi, kullandıkça alışıyorsunuz...İyi günler dilerim...

27 Kasım 2006

JBuilder 2007 ve Eclipse

Merhaba,
JBuilder 2007 sürümü Eclipse RCP kullanılarak geliştirilmiş.Yani çekirdek eclipse'in üzerine kendi eklentilerini geliştirmişler.Böylece Eclipse kullanıcıları JBuilder'a farklı Eclipse eklentileri ekleyebilecekler.
Bu sürüm çeşitli güzel özellikleri içinde barındırıyor.Görsel olarak EJB 3.0 ve JPA sınıflarını tasarlayabiliyorsunuz.Masaüstü programlar için görsel olarak GUI tasarlayabiliyorsunuz ki JBuilder bu konuda bir hayli iddialıdır.
Denemekte fayda var:) İyi çalışmalar...

05 Kasım 2006

Java 6 (Mustang)'deki Değişikliklerin Listesi

Merhabalar,
Aşağıdaki linkte Java 6'daki iyileştirmeler ve yeni özellikler listelenmiş.Faydalı olacağını düşündüm.
http://java.sun.com/javase/6/webnotes/features.html

04 Kasım 2006

Dikey yazı nasıl yazarsınız?

Bildiğiniz üzere Graphics interface'nin drawString metodunu kullanarak bir JFrame üzerinde istediğiniz koordinatta bir yazı yazdırabilirsiniz.Dikey olarak yazı yazdırmak istediğinizde nasıl yaparsınız? Aşağıdaki kod parçası bu işi yapmaktadır:

public static void drawVerticalText( Graphics g, double drawType, String label, int xPos, int yPos ) {
Graphics2D g2D = (Graphics2D)g;

// Yazıyı döndürmek için transformasyon gerekiyor.
AffineTransform fontAT = new AffineTransform();

// Varolan fontun bozulmaması için
Font theFont = g2D.getFont();

// 90 derece sola dondurulmus eni font oluşturuluyor
fontAT.rotate(3*Math.PI/2);
Font theDerivedFont = theFont.deriveFont(fontAT);

// yeni fontu belirleniyor
g2D.setFont(theDerivedFont);

// yazınızı dondurulmus fontla yazabilirsiniz
g2D.drawString(label, xPos, yPos);
// varolan fontu tekrar kullanmaya devam edin
g2D.setFont(theFont);
}

Metoda parametre olarak kullandığınız Graphics objesi ve diğer gerekli parametreleri verdikten sonra istediğiniz koordinata istediğiniz yazıyı yazabilirsiniz.

03 Kasım 2006

NetBeans mi Eclipse mi?

Merhabalar,
Başlıkdan da anlaşıldığı üzere yeni çıkan NetBeans 5.5 ile Eclipse 3.2 arasındaki artıları eksileri haddim üzere olmayarak fikirlerimi belirtmek istedim.Öncelikle yazacaklarım Charles Ditzel ile yapılan bir röportaja dayanmaktadır.Kendisi sitesinde aldığım gibi koyuyorum a partner area architect at Sun Microsystems.
Öncelikle NetBeans'de şöyle bir özellik var."All in one".Türkçe söylemek isterdim fakat bu daha güzel sanki.Yani geliştirme adına bulabileceğiniz her şey nerdeyse NetBeans'i kurduğunuzda geliyor.Mesela GUI designer olarak Matisse projesi adında yürütülen çalışma ile geliyor ve gayet başarılı.Masaüstü için görsel uygulamalar geliştirmeyi çok kolay hale getiriyor. Sonra Java EE 5'i destekliyor ki şu an IDE'ler arasında IntelliJ IDEA dışında hiçbir IDE Java EE 5'i desteklemiyor.Ayrica kullandığınız veritabanlarına IDE ortamından bağlanmanıza olanak sağlıyor.NetBeans içerisinde Struts ve JSF desteği veriyor.Fakat bu yukarda saydıklarımın hiç biri eklenti yüklemeden Eclipse ile kullanılamıyor.Masaüstü için görsel programlar yazmak istiyorsanız Visual Editor eklentisini indirmeniz gerek.JAVA EE desteklemek için WTP (Web Tools Project) indirmeniz gerek ki boyutu 180 MB civarında.Ayrıca Struts ve JSF desteği de maalesef yok.Bunların yanı sıra NetBeans ortamına kendi sitesinde yayınlanan çeşitli paketler yardımı ile yeni geliştirme ortamları eklemek mümkün.Örneğin; Mobility Pack ile J2ME geliştirme ortamı olması ki telefonlara sürükle bırak özelliği ile görsel uygulamalar yazabiliyorsunuz.Visual Web Pack ile sürükle bırak JSF web uygulamaları yapabileceğiniz ortamı oluşturabiliyorsunuz.Ayrıca Eclipsede de olduğu geniş bir plugin listesi var.

Eclipse'i indirdiğinizde ise bir editor,debugger,compiler geliyor.Sakın yanlış anlamayın, Eclipse'i kötülüyor değilim.Ben de genel olarak Eclipse'i kullanıyorum.Çünkü Eclipse'in look & feel'i beni rahatlatıyor.NetBeans genel olarak ne kadar hızlandı deseler de Eclipse'i geçemez.Bir kere kod yazarken real-time compiler'ı NetBeans ile kıyaslaştırılamaz.NetBeans kodu değiştirdikten 2-3 sn. sonra uyarı veriyor neredeyse:).Ayrıca Eclipse'in perspective ve view mantığı diğer IDE'lere taş çıkartacak nitelikte.

Ama dediğim gibi iş web uygulaması, EJB uygulaması gibi kurumsal uygulamalar geliştirmeye geldiğinde ve son teknolojiyi kullanmaya geldiğinde Eclipse NetBeans'e göre zayıf kalıyor.

Benim şu ana kadar genel olarak izlenimlerim böyle.Sizin düşüncülerinizi de almak isterim.İyi çalışmalar dilerim...

27 Ekim 2006

JavaScript 1.7

Merhabalar, Mozilla Firefox 2.0 versiyonuyla piyasaya merhaba dedi.Yeni sürümün özelliklerini incelerken JavaScript 1.7'yi desteklediğini gördüm.Yani JavaScript'in yeni versiyonunun çıktığını da bu şekilde öğrendim.JavaScript'teki yeni özellikleri anlatan bir makale yayınlamışlar.İşte burda! Gerçekten çok hoş özellikler eklenmiş.Mesela Java'daki iterator mantığı getirilmiş, functionlar artık birden fazla değer döndürebiliyor ve döndürülen değerleri aynı anda farklı değişkenlere atayabiliyorsunuz...Makaleye bakmanızı tavsiye ederim.
İyi çalışmalar...

27 Eylül 2006

JAR içinden resim dosyası nasıl okunur?

Bir masaüstü uygulaması yazdınız.Uygulamanızın tüm dosyalarının (java, class, resim dosyaları...) aynı jar içinde olmasını istiyorsunuz.Böyle bir jar dosyası oluşturabilirsiniz fakat kaynak dosyalarını mesela resim dosyalarını direk kodunuzun içinden aşağıdaki gibi:

Icon icon = new ImageIcon("pic1.jpg");

çağıramazsınız.Bunu yapmak için aşağıdaki gibi kodlamanız gerekecek:

// İlk önce ClassLoader objesini alırsınız.
ClassLoader cl = this.getClass().getClassLoader();
// Create icons
Icon saveIcon = new ImageIcon(cl.getResource("images/save.gif"));

İlk önce Bir tane ClassLoader objesi alıyorsunuz.Daha sonra bu obje ile resim dosyasını bir resource olarak programınıza yüklüyorsunuz.Yalnız getResource metodunun içine resim dosyasının tüm yolunu vermeyi unutmayın.