04 Ocak 2010

Netbeans te kod şablonlarıyla lisans ayarlarını değiştirmek

Netbeans,eclipse veya visual studio gibi ide lerde yeni bir class oluşturmak istediğimizde önce bizden bu class ın yapısı için önbilgiler girmemiz istenir. Örneğin bu class ın Main class mı olacağı ,soyut olup olmayacağı, yada private veya public mi olacağı henüz oluşturulma aşamasında bize seçenek olarak sunulur ve bu öntanımlamalara göre bir class iskeleti oluşturulur.
Bugün,netbeans te yaratılan bir class ın en üst kısmında bulunan lisans şablonunun nasıl değiştirildiğini anlatmak istiyorum. Yeni bir class oluşturduğumuzda lisans kısmında default olarak şu yazar :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/


Yapacağımız işlemler sonucunda benim editörümde artık otomatik olarak şu yazacak :
/*
* Bu kod Levent Özkan tarafından 04-01-2010
* tarihinde geliştirilmiştir.
*/


Bu değişim için yapmamız gereken, açık bir proje varken tools menüsünden templates i seçmek.Daha sonra açılan pencereden java yı buluyoruz ve altındaki java class ı seçip open in editor diyoruz.Karşımıza aşağıdaki gibi java class template geliyor.




<#include "../Licenses/license-${project.license}.txt">; satırından da anlaşılıdğı  gibi lisans bilgileri dosyadan okunuyor. Bizim yapacağımız şey ise yeni bir dosya yaratmak ve burdaki project.license parametrsini kendi dosyamıza bağlamak. Önce yeni bir lisans dosyası yaratalım.Bunun için yine tools menüsünden  templatesi seçiyoruz ve açılan pencereden Licenses dalı altındaki Default (yada herhangi bir) dosyaya tıklayıp duplicate ediyoruz. Oluşturduğumuz  dosyaya sağ tıklayıp proporties diyoruz ve burdan display name ve file name i ayarlıyoruz. Örneğin ben Display name : levent.txt  File Name : license-mydefault dedim. Burada file name in "license-XXX" şeklinde olması önemli.Dosyamızın özelliklerini belirledikten sonra sıra geldi içeriğini belirlemeye.Dosyamızı yine open in editor diyerek açıyoruz.Benim levent.txt dosyamı aşağıdaki gibi düzenledim.
 


Gerekli düzenlemeleri yaptıktan sonra kaydedelim. Şimdi sıra geldi java sınıf oluşturma şablonuna bu lisans dosyasını parametre olarak göndermeye. Bu işlemi yan taraftaki Files penceresinden (görünmüyorsa ctrl+2) yapıyoruz.Buradan nbproject altındaki project.properties i altmenüleri açmadan çift tıklıyoruz ve açılan sayfanın en altına giderek parametremizi yazıyoruz. Dikkat edilmesi gereken nokta, buraya display name in değil file name in yazılması.
Dosyamızın adı license-mydefault, ancak buraya sadece mydefault yazıyoruz.




project.license=mydefault  satırını ekledikten sonra işimiz bitiyor. Yeni bir class oluşturduğumuzda
artık lisans kısmına belirttiğimiz dosyanın içeriğini otomatik olarak yazdırabiliriz.

Son olarak, eğer sadece ilgili projede değil de bütün projelerde kendi hazırladığımız şablonu kullanmak istiyorsak ;
#include "../Licenses/license-${project.license}.txt"  satırında ${project.license} yerine kendi dosyamızın ismini yazmalıyız. <#include "../Licenses/license-mydefault.txt"> şeklinde yazıp kaydettiğimizde artık her projede kendi şablonumuz gösterilecektir.. 




26 Kasım 2009

YAPTIRTAÇ 1.0

Aklıma doğru düzgün bir isim gelmedi. Bende yaptırtaç koydum ismini. Yaptırtaç, sizin belirlediğiniz bir saatte yine sizin seçtiğiniz bir işlemin bilgisayar tarafından otomatik olarak yapılmasını sağlamayı amaçlayan .net ortamında c# dili ile yazılmış basit ve oldukça kullanışlı bir programcıktır. Yaptırtaç, henüz bilgisayarı kapatma , yeniden başlatma ve oturumu kapatma gibi 3 temel işlevi gerçekleştirebiliyor ancak zamanla ve gelen isteklere göre (tabi gelirse) özellikleri arttıralcak ve geliştirilecek.
Aslında böyle bir programa oldum olası ihtiyaç duydum desem abartmış olmam. Doğduğumdan beri hemen hemen hergece müzik eşliğinde dalarım uykuya. Bebekliğimde annem radyoyu yatağımın yanına koyar , kısık sesle açarmış müziği , ben de dalarmışım uykuya. Tabi ben uyuduktan sonra da annem gelir radyoyu kapatırmış..
Gelelim Yaptırtaç'a:
Yaptırtaç'ı  buradan indirin.Yaptırtaç tıkla çalışsın tarzı bir programdır.
Kullanılışı: Masadan kalkmadan önce müziğin sesi vs ayarlanır ve sonra yaptırtaç açılır.Tahmini uykuya dalma süresi hesaplanır ve buna göre yaptırtaç' ın zamanı kurulur. daha sonra tamam diyerek gönül rahatlığıyla yatağa girilir ve uykuya dalınır. Yaptırtaçın bilgisayarınız istediğniz saat ve dakikada kapatacağından emin olabilirsiniz..
Tabi sadece uykuya dalmak için kullanılmaz yaptırtaç. Diyelim internetten bişeyler indiriyorsunuz kuyruğun bitme zamanına göre yaptırtaç'ı kurabilir ve işinize bakabilirsiniz.
Yaptırtaç 'ın yapmasını istediğiniz veya yaparken yanlışlık yaptığı her türlü şeyi bana iletiniz. hoşçakalın....

08 Kasım 2009

netbeans te koddan uml oluşturmak ()

Bu blogu ilk açtığımda günlük olarak bişeyler yazabileceğimi tahmin ediyordum ancak görüldüğü gibi ancak haftada bir yazabiliyorum. Ama yoğunluğum azaldıkça bloguma göstereceğim ilgide aynı oranda artacaktır. Bugün netbeans te  koddan nasıl uml diagramı oluşturulduğunu paylaşmak istiyorum. Paylaşayım ki kodlarını bitirip rapor aşamasına geçen arkadaşlar 'uml diagramını nasıl nerden oluştururum acaba' diye düşünüp google da envai çeşit aramalar yapmasınlar tıpkı benim bugün yaptığım gibi.

Önce uml eklentisini kurmamız gerekiyor. Bunun için sırsaıyla Tools -> Plugins  yolunu takip edib ve available plugins listesinden Uml yi bularak install edin. (netbeans 6.0 ve üzeri için)
Şimdi geldi varolan koddan uml diagramı olşturmaya. Bu ve benzeri türden yaklaşımlara  Reverse Engineering denildiğinide hatırlatmış olalım. Nasıl yapılıyormuş resimler eşliğinde gösterelim.

1- Netbeans te File -> new project dedikten sonra aşağidaki gibi bir pencere görürüz,soldaki categories kısmından UML i ,  sağ taraftaki projects kısmında da Reverse Engineered Java-Platform Model i seçiyoruz ve next diyoruz.


2- Projenizin ismini belirledikten sonra (benimkisi MyUml) orta kısımda uml diagramını çıkarmak istediğiniz projenin ismini göreceksiniz (benimkisi Rys1) biraz aşağıda ise o projenin source kodlarının bulunduğu src klasörü ve Test packageları var biz test kısmındaki tik i kaldırıp yola src ile devam ediyoruz ve finish diyoruz.



3- Projeyi finish diyip yarattığımızda proje dosyalarının gösterildiği sol tarafta projemiz ve ve projemizin kullanacağı sınıflar Model dalı altında gösterilir.



4- class diagramını oluşturmak istediğimiz classlarımızı ctrl ile tek tek seçiyoruz ve seçili dosyalara sağ tıklayıp create Diagram from Selected Elements diyoruz


 
5- Daha sonra çıkan pencereden Diagram type olarak class diagram ı seçip diagramımıza isim verdikten sonra finish diyoruz ve diyagramımızı oluşturuyoruz


6- Kodu geriye sararak tasarım görünümünü oluşturmuş olduk. Benim diagramımım biraz karmaşık olmakla birlikte şu şekilde




daha ayrıntılı ve benzer konular için şurayı araştırın.

Geldik bir cumartesi gecesinin daha sonuna : )

31 Ekim 2009

Java StringTokenizer Sınıfı

Java nın 3000 e yakın hazır sınıfından  bir tanesi de StringTokenizer sınıfıdır. Bugün StringTokenizer sınıfının kullanımı ve bu sınıfa ait metodların ne işe yaradığını anlatmaya çalışacağım. StringTokenizer sınıfı herhangi bir metni belirlediğimiz herhangi bir kritere veya kriterlere göre parçalamak (parse etmek ,parsing) için kullanılır. Eğer herhangi bir kriter koymazsak bu durumda default olarak boşluk karakterine göre parçalama işlemi gerçekleştirilir ki bu işleme splitting denir.Parçalama işleminden sonra oluşan her bir parçaya Token denir.
Programming is Practise felsefesinden yola çıkarak bu sınıfın kullanımını kolayca anlayabileceğimiz basit bir program yazarak işe başlayalım.


import java.util.StringTokenizer;


public class Practise {


    public static void main(String[] args) {
    
        String cumle1="deniz gözlerinden alır sonsuzluğun haberini";
        StringTokenizer st1 = new StringTokenizer(cumle1);
        while(st1.hasMoreTokens())
        {
            System.out.println(st1.nextToken());
        }
// 1.bölüm sonu

        String cumle2="ben,sen,o,biz,,,siz";
        StringTokenizer st2= new StringTokenizer(cumle2,",");
        while(st2.hasMoreTokens())
        {
            System.out.println(st2.nextToken());
        }
// 2.bölüm sonu


        String cumle3="yıldızlara;uzanıp,hep-seni sordum?gece!yarılarında. "
        String delims =",;-!.";
        StringTokenizer st3= new StringTokenizer(cumle3, delims);
        System.out.println("\n Token sayısı="+st3.countTokens());
        while (st3.hasMoreElements())
        {
            System.out.println(st3.nextToken());
        }

// 3.bölüm sonu
       
    }

}



Programı bölüm bölüm inceleyecek olursak, ilk bölümde cumle1 stringini nasıl token lara ayırabileceğimizi görüyoruz.StringTokenizer tipinde bir st nesnesi oluşturuyoruz. Constructor  parametre olarak sadece cumle1 stringini aldığından default olarak splitting işlemi yapacaktır yani boşluk karakterlerine göre token lara ayırma işlemi. Buna göre ilk bölümün çıktısı şu şekilde olmalıdır.

deniz
gözlerinden
alır
sonsuzluğun
haberini


İkinci bölümde, string içine bir kaç virgül ekleyerek oluşturduğumuz st2 nesnesinin yapıcısına cumle2 ve "," stringlerini parametre olarak gönderiyoruz. Yapıcıya 2.parametre olarak gönderilen bu karaktere sınırlayıcı karakter (delimiter) adı verilir. Bu durumda cumle2 stringi "," karakterinin görüldüğü her yerde token lara ayrılır. Çıktı şu şekilde olmalıdır.

ben
sen
o
biz
siz


Üçüncü bölümde, birden çok delimiter kullanılmak istenmiş ve bunlar karakter dizisi şeklinde bildirilmiştir.
 StringTokenizer st3= new StringTokenizer(cumle3, delims); -kod satırının anlamı cumle3 stringini delims içindeki karakterlere göre token lara parçala- manasına gelmektedir.StringTokenizer oluşturduğu token ları bir dizi olarak değil ancak sırayla erişilebilecek bir enumaration type olarak döndürür. 3.bölümün çıktısı da aşağıdaki gibi olur.

Token sayısı=6
yıldızlara
uzanıp
hep
seni sordum?gece
yarılarında


Dikat edilirse, delims içinde boşluk karakteri ve "?" bulunmadığından dolayı
'seni sordum?gece' tokenlara ayrılmamıştır.

hasMoreTokens(); boolean değer döndüren bir metoddur sırada token olup olmadığını kontrol eder
nextToken(); sıradaki token i döndürür
countTokens(); o anda kalan token sayısını verir.

Daha ayrıntılı bilgiler;
java-sun.com

24 Ekim 2009

Düz ,sağa yatık ve sola yatık çizgilerle Hello World!

İlk blog yazım .. İlkler benim için her zaman zor, heyecanlı ve bir o kadar da stresli olmuştur. Bu yazıya başladığım şu saniyelerde de bu durum etkisini hissetirmekte : ) Ama yine de bu durum bence normal bir süreç çünkü, yaşanan ilkler insan hayatını bir şekilde etkileyerek o hayata başka bir yön katar , hayatı başka bir tarafa kaydırabilir hatta yönsüz bile bırakabilir : ) Her insan için o kadar çok yön ve bu yönlere giden o kadar çok yol vardır ki; insan bu yolların hepsinde aynı anda bir yolculuk içerisindedir,bin parçalı bir yolda yolculuklar… Bu yolculukların hepsi birden hayat olur işte ve biz de bir yandan bu yollarda yürümeye devam ederken , diğer yandan da yeni yollara yani yeni ilklere saparız. Aklıma annemin beni elimden tutup, ilkokula keydetmeye götürdüğü gün geldi. Evimiz okula oldukça uzaktı, 7 yaşındaki bir çocuğun adımlarıyla 25- 30 dakikalik bir yol.. O tek katlı sarı okul binasının merdivenlerine yaklaştıkça korkum artıyordu. Gevşetmeye çalıştıkça ben, annem daha da sıkı tutuyordu ellerimi. Merdivenlerden çıkıp kayıt masasının önüne geldiğimizde ben artık ağlıyordum ve annemin elinden kurtulup okulun bahçe kapısına doğru koşmaya başlamıştım uzaklaştıkça yavaşladığımı da hatırlıyorum.. en sonunda o binaya zorla girdim ve kaydım yapıldı.Okullar açıldı.Annem ilk 5 gün boyunca ilk ders saatlerinde benimle derslere girmek zorunda kaldı, anne-oğul aynı sırada oturuyorduk : ) Annelerin hakkı ödenemez.. İlk haftalar deftere çizdiğimiz düz, sağa yatık, sola yatık çizgilerde bile onun emeği vardır : ) .. ilkti ve zordu..

İlkokuldan üniversiteye uzuun bir atlama yaparsam ( ‘93 – ‘06 = 13 yıl ) , üniversiteye bir bilgisayar mühendisinin en çok yapacağı şeyin kod yazmak olduğunu bilerek geldim ve ben hayatımda daha önce hiç kod yazmamıştım, ve bu konulara yabancı oldumu söylersem doğru söylemiş olurum. Benim için korkulu ve stresli bir dönemdi. Bu durum benim 1. sınıfa başlamadan önce 1 yıl hazırlık sınıfına gitmeme bile neden oldu… Çoğu kimsenin yaptığı gibi ben de önce bir araştırma sürecine girdim ve sonunda elime bir kitap aldım. bu kitap bir turbo pascal kitabıydı, keza ben hazırlık okuduğumda 1. sınıflara pascal öğretiliyordu. Kitabı elime alıp bilgisayarımın karşısına geçtiğimde heyecanlanmıştım. Bundan sonra en çok yapacağım işi ilk defa yapacaktım. Kitaptaki talimatları okuyarak bilgisayarıma önce bir pascal editörü kurdum ve artık kodları yazmaya hazırdım. İlk kod tartışılmaz “hello world!” olacaktı. ve kodları yazmaya başladım.

Program Hello ;

Uses Crt;

Begin

ClrScr;

Write ( ‘ Hello World!’ ) ;

Readln;

End.


Hatalı olmasın diye satırları birebir yazdım hatta write ‘ ın içini bile değiştirmeye çekindim : ) Kodları yazıp derledikten sonra hemen hemen herkesin başına gelen benim de başıma geldi, derleyici hata verdi : ) Eksik noktalı virgülleri koyup tekrar derledikten sonra hatasız şekilde program çalıştı ekranda beklenen ‘hello world!’ göründü. O anki heyecanı yaşayanlar bilirler, o heyecanla ve gazla kitapta bayağı ilerlemiştim : ) .. ilkti ve heyecanlıydı..

Bu yazıya başladığımda ne konuda yazacağımı bilmiyordum, ben başlıyayım o gelir dedim ve başlığı da şekillenen duruma göre atarım dedim; düz,sağa yatık ve sola yatık çizgilerle hello world!