23.10.10

Mevlana'dan 7 Öğüt



Cömertlik ve yardım etmede akarsu gibi ol,

Şevkat ve merhamette güneş gibi ol,

Başkalarının kusurunu örtmede gece gibi ol,

Hiddet ve asabiyette  ölü gibi ol,

Tevazu ve alçak gönüllülükte toprak gibi ol,

Hoşgörürlükte deniz gibi ol,

Ya olduğun gibi görün, ya göründüğün gibi ol.









Seven advice of RUMI :
In generosity and helping others be like a river ,
In compassion and grace be like a sun ,
In concealing other's faults be like night, 
In anger and fury be like dead ,
In modesty and humility be like earth ,
In tolerance be like a sea ,
Either exist as you are or be as you look. 





20.10.10

PMD (Açık Kaynak Kodlu Kod Analiz Aracı)

Mart 2010 tarihinde hazırladığım bir yazıyı paylaşmak istiyorum. 

Doğrulama ve test yazılım geliştirme sürecinin önemli bir parçasıdır. Testin kalitesi yazılımın kalitesiyle paralellik sergiler. Bu süreçte kullanılabilecek bir araç olarak PMD'den nasıl faydalanıldığı kısaca aşağıda anlatılmıştır.

PMD java için yazılmış açık kaynak kodlu kod analiz aracıdır. 

http://sourceforge.net/projects/pmd/files/ adresinden indirilebilmektedir. Bu adreste JDeveloper, Eclipse, Netbeans gibi çeşitli IDE’ler için uygun indirme yapılabilmektedir. Ben Netbeans üzerinde çalıştığım için Netbeans versiyonunu indirdim. Daha sonra eklentiyi IDE’me kurdum. Bu işlemi Tool>Plugins>Downloaded>Add Plugins..>pmd.nbm adımlarını izleyerek yaptım. Eklentiyi kurduktan sonra bir projeye sağ tıkladığımda Tools bölümünden Run PMD çalıştırılarak ya da Ctrl+Alt+P kısayoluyla çalıştırılabilmektedir.


Şekil 1

PMD’nin kodu analiz ederken hangi kriterlere bakacağını da ayarlamamız mümkün. Buna göre kodun şu şu özelliklerine bakılsın, şunlara bakılmasına gerek yok şeklinde bir ayarlama yapılabiliyor. Aynı zamanda eski ayarların saklanıp tekrar kullanılması, farklı senaryolar için farklı ruleset’lerin kullanılması mümkün. İlk önce Tools>Options>Miscallaneous>PMD penceresini açılır.(Şekil-2)


Şekil 2
Buradan “Manage Rules” butonuna basıldığında Rule editor tablosu gelir. Buradan rule’lar kullanıcı tarafından belirlenir. “>>” tuşu ile tüm rule’ların yüklenmesi de sağlanabilir.


Şekil 3
Kuralları bu şekilde ayarladıktan sonra artık kodları test edebiliriz. Test işlemi için yaz stajında yazdığım “Çoklu Server Client” programımı seçtim. Bu program ağ üzerinden bilgisayarların haberleşmesini sağlayan, aynı bilgisayarda birden fazla server ve client oluşturulmasına imkan veren bir programdır. Run PMD yapılınca PMD 128 adet uyarı verdi. Bunlardan biri de EmptyCatchBlock hatasıydı. Hatanın yanında açıklaması var. Daha detaylı bir
açıklama ve kod örneğine “Rule editor” penceresinde hata seçildiğinde ulaşılabilmektedir. Bu kadar çok uyarı çıkmasının nedeni tüm kuralları geçerli kılmam oldu.


Şekil 4

Şimdi de daha önceden hazırlanmış bir ruleset’in kullanılmasında bahsedeceğim. Bu sefer Options Penceresinden (Bkn Şekil-2) Manage rulesets butonuna basıyoruz. Add ruleset butonuna basarak bir xml dosyası yüklüyoruz.(Bkn Şekil-5) Bu dosyada kural ayarlarımız mevcut. Bu xml dosyasını kendimiz değiştirebiliyor, ihtiyaca göre edit edebiliyoruz. Ya da daha önceden başkalarının yazdığı bir ruleset’i kullanabiliyoruz. Aşağıda kullandığım ruleset’in içi gözükmektedir.

<?xml version="1.0" ?>
- <ruleset name="Custom ruleset" xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>Imagine PMD Rule Set</description>
<rule ref="rulesets/basic.xml" />
<rule ref="rulesets/codesize.xml" />
<rule ref="rulesets/clone.xml" />
<rule ref="rulesets/coupling.xml" />
<rule ref="rulesets/finalizers.xml" />
<rule ref="rulesets/imports.xml" />
<rule ref="rulesets/logging-java.xml" />
<rule ref="rulesets/logging-jakarta-commons.xml" />
<rule ref="rulesets/naming.xml" />
<rule ref="rulesets/optimizations.xml" />
<rule ref="rulesets/strings.xml" />
<rule ref="rulesets/sunsecure.xml" />
<rule ref="rulesets/unusedcode.xml" />
- <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
- <properties>
<property name="reportLevel" value="8" />
</properties>
</rule>
- <rule ref="rulesets/strictexception.xml">
<exclude name="SignatureDeclareThrowsException" />
</rule>
</ruleset>


Şekil 5

İnternetten indirdiğim custom ruleset ile projemde tekrar test başlattığımda bu sefer bana 26 uyarı verdi.(Bkn Şekil-6)


Şekil 6
Bu uyarıları düzelterek daha kaliteli bir program oluşturmak mümkün. Projenin tamamına test uyguladım ancak class’lara tek tek uygulamak da mümkün. Hatalarımı göstermesi bakımında benim için çok yararlı oldu. Anlayamadığım hatalarda açıklamalara ve örnek kodlara bakmak da tecrübe kazandırdı. Bu sayede ileride yazdığım programlarda günden güne daha az hata mesajı alacağımı düşünüyorum.

19.10.10

İnsanlardan Bazıları

İnsanlardan bazıları….

İnsanlardan bazıları (100 sene sonra toprağın altındaki çürümüş bedenini düşünmeden) boyuyla posuyla caka satıyor, satmasın.

İnsanlardan bazıları kendisine verilen şekli değiştiriyor, değiştirmesin.

İnsanlardan bazılar gecenin gizlediğini gündüz açığa çıkartıyor, çıkartmasın.

İnsanlardan bazıları (o kimsenin süsü görmeyeceği günü unutarak) aşırı süsleniyor, süslenmesin.

İnsanlardan bazıları boş işlerle uğraşıyor, uğraşmasın.

İnsanlardan bazıları yapacağım diyor, yapamayacağını demesin.

İnsanlardan bazıları verdiği hediyeyi geri istiyor, istemesin.

İnsanlardan bazıları trafikte haddi aşıyor, aşmasın.

İnsanlardan bazıları -mış gibi yapıyor, yapmasın.

İnsanlardan bazıları kibirleniyor, kibirlenmesin.

İnsanlardan bazıları üç kuruşluk menfaat peşinde koşuyor, koşmasın.

İnsanlardan bazıları yalan söylüyor, söylemesin.

İnsanlardan bazıları kalp kırıyor, kırmasın, yıkmasın.

İnsanlardan bazıları güzel olanı bırakıp çirkine gidiyor, gitmesin.

İnsanlardan bazıları elindekinin kıymetini bilmiyor, yazık ediyor, etmesin.

İnsanlardan bazıları kendisine bakmadan diğerine akıl veriyor, verdiği akıl akıl değilse hiç vermesin.

İnsanlardan bazıları yarı yolda bırakıyor, bırakmasın.

İnsanlardan bazıları hayatlarında verdikleri en büyük sözü bozuyor, bozmasın.

İnsanlardan bazıları yaptıklarını başa kakıyor, kakmasın.

İnsanlardan bazıları gösteriş için saçıyor, saçacaksa hak için saçsın.

İnsanlardan bazıları esirgiyor, esirgeyecekse dolandırıcıdan esirgesin.

İnsanlardan bazıları hak görününce kızıyor, kızmasın, üzülsün.

İnsanlardan bazıları pişman oluyor, sonra yine haddi aşıyor, sonra da unutuyor, unutmasın.

İnsanlardan bazıları şimdiyle seviniyor, çok sevinmesin, gelecekle üzülsün.

İnsanlardan bazıları altın çatal bıçakla oynuyor, onları dünyadaki sahiplerine bıraksın.

İnsanlardan bazıları devletten çalıyor, çalmasın.

İnsanlardan bazıları çaldığını bilmiyor, bilmiyorsa öğrensin.

İnsanlardan bazıları bilmediği işe giriyor, girmesin.

İnsanlardan bazıları haddi aşanları dost ediniyor, edinmesin.

İnsanlardan bazıları gidip boyun eğiyor, sonra da gelip baş kaldıranların koluna giriyor, girmesin.

İnsanlardan bazıları yaptıklarının boşa gitme ihtimalini hiç düşünmüyor mu, kendisine sorsun.

İnsanlardan bazıları söz veriyor, veriyorsa tutsun.

İnsanlardan bazıları başkalarına duygu sömürüsü yapıyor, yapmasın.

İnsanlardan bazıları akrabadan yüz çeviriyor, çevirmesin.

İnsanlardan bazıları kapıdan kovuyor, kovmasın.

İnsanlardan bazıları yok sayıyor, saymasın.

İnsanlardan bazıları sinsice planlıyor, O’nun da bir planı olduğunu unutmasın.

İnsanlardan bazıları kapılara dayanıyor, dayanmasın.

İnsanlardan bazıları kötü konuşuyor, konuşmasın.

İnsanlardan bazıları evladını düşünüyor,  diğerinin de evlat olduğunu düşünsün.

İnsanlardan bazıları haddi aşıyor, aşmasın.

İnsanlardan bazıları para biriktiriyor, biriktirecekse daha güzelini biriktirsin.

İnsanlardan bazıları malını sayıyor, sayacaksa günahını saysın.

İnsanlardan bazıları dertsiz, dünyayla oyalanıyor, kendine gelsin.

İnsanlardan bazıları az bir karşılık için çok çalışıyor, çalışacaksa daha hayırlısına çalışsın.

İnsanlardan bazıları ufak zaferlerinde kendilerini üstün görüyor, bi de çıksın kendisine Ay’dan baksın.

İnsanlardan bazıları bazı insanları anlatıyor, artık sussun, biraz da kendine baksın, o anlattıklarını kendisinde arasın.

   M.Ali
Related Posts Plugin for WordPress, Blogger...