07:14

Vlc Player Video Streaming (Herşeyiyle)

Merhaba herkese bu aralar staj yapmaktayım ve staj yapmaya başladığım. ilk günden beri bir proje üzerinde çalışıyoruz bu projede bana düşen ise video streamin ve transkod akış ve formatın dönüşümüde diyebiliriz. Birçok streaming yapabileceğiniz program var bunların isimlerini saymayacağım.Birini anlatacağım diğeri ise ogg formatının geliştiricileri olan Vorbis.com'dur. Benim size anlatacağım ise açık kaynak olmasıy ile birlikte tüm format biçimlerini destekleyen Vlc player tabi burda vlc playerin en çok VideoLAN - VLC media player'ı nasıl çalıştığını nasıl streaming yapabileceğimizi. bazı html kodlarını sunmaya çalışacağım.çünkü projem boyunca yine ingilizce dökümnalrla karşı karşıya kaldım ve bunu türkiyede sadece özelliklerinden bahsedip geçmiş sitelerden başka hiç birşey bulamadım. kısacası ben burda sizlere.

1. video,kamera,veya herhangi bir aygıt ile bilgisayarınız üzerinden vlc player ile nasıl streaming yapılacağını anlatıcağım.

2. Karşı bilgisayarın sizin yayınladığınız bir videoyu nasıl Görebilir bunu anlatacağım.

3. Eğer olurda html üzerinden videolarınız yayınlamak isterseniz vlc playerin html kodlarını hem mozilla hemde internet exp. (i.e)için çalışan bir html kodu.

4. Bu kod dun nasıl oluşturulacağını anlatmaya çalışacağım.

5. Yayınladığımız formatan başka bir formata çevirerek nasıl yayınlayacağımıza bakıcaz.

aklıma gelenler bunlar ama bunlardan daha fazlasını anlatacağımdan emin olabilirsiniz.Bu arada video derken tüm ses ve video formatları için yapılacak işlemler değişmeyecek bunuda belirtmekte fayda görüyorum.Bunların ekran görüntülerini hazırlıyorum. bir çoğu bitti eğer acil olurda bişe danışmak isterseniz mail atabilirsiniz. görüşmek dileğiyle.

10:20

Mimlendik :) "Mimleninle Ne Hissediyorsunuz?". diye bakalım

Öncelikle sözümüze küçük bir teşekkür konuşmasıyla başlayalım çok sevgili gerçekten bilgi bir okadarda sevimli insanları seven hep yardım etmeden yana olan arkadaşım Seval Ünver'e çok teşekür ederim. şimdi sorumuzun cevabına gelince bizzat sevalin yazısını okurken acaba kimleri mim ledi içlerinde varmıyım diye başladım. Ama direk sonunu okumadın bu heyecanı yaşamalıydım satır atlamadan okuyorum yazısını ve sonlara doğru geldim bir listesi oldugundan bahsediyor genelde merak ettikleri olur ve onların isimlerini yazardı bu kez ayırmaan kimseyi herkesi mimliyor hemen açtım bende listeyi ohhhh varmışım tabi yazıya geri döndüm amınm bide yazmayana kötü bir beddua var ama ben yazıcaktım. hemen açtım blogumu ve mim lenecekmiyim sorusu karşısında neler hissetiğimi anlatım. Peki mim lenince neler hissediyorum. İşte asıl sorunum burda sonra başlıyor allahım ben ne yazmalıyım benim yazım okadar etkileyici degildir ki ? bak ellim ayagım birbirine dolandı yine :) eee biraz düşüneyim bir gün geçti iki gün geçti aha üçün gün başka bir mim konusu tabi ben yazmayınca adımda yok :( bidahakisine valla zamanında yazıcam bak seval gördüm hemen oturdum üşenmeden gerçek hislerimi yazıyorum. mim lenmek bir yerde birileri seni öenmsiyor demek belki sevalin yazısında dediği gibi google da adınızın en üste görünmesine yardımcı olur ama ben daha çok ekndimi o insanda önemli hisetmeme yardımcı olur kendi kendime demekki bu benim fikirlerimi öenmsiyor derim ve o kişi bende farklı olur değer vermiştir bana ama kızarımda ben yazmayı bilmem ki işte açtık bir blog yazarız aklımıza gelirse be abicim :) ne istersiniz benim gibi garibandan da demekten de vazgeçmem başka bir mim oyununda aynı heyecanla sizlerle duygularımı paylaşmak üzere :) okuyan okumayan ve özellikle seval e çok teşekkür ederim.son olark ben bu konuda yorumlarını merak ettiğim arkadaşlarımı ekleyeceğim bu mim oyununa Erkan Özer Seçkin Arsoy Seçkin karabel hem bunlarda kendi bloglarını güncellemiş olurlar :) hadi kolay gelsin.

06:17

OpenSolaris e flash player eklentisinin yapılması

Arkadaşlar OpenSolaris kurdunuz ve internette gezintiye çıktınız ve sürekli karşınıza eklentileriniz eksik olduğunu belirten bir uyarı bloncuğunun çıkması hemen sinirizi bozmasın bu flash player eklentinizin olmadığını gösteriyor. Açıkcası bu sorunun türkçe sayfalarda nasıl yapıldığını anlatılıyormu bilmiyorum ama araştırdığım kadarıyla da bulamadım yabancı sitelerde daha doğrusu OpenSolaris'in kendi forumunda bu konuyla ilgili sorulan sorulara bir çok cevap veren olmuş ama ben içlerinden birtane geliştiricinin yazısını okudum ve nasıl olması gerektiğini gayet iyi anlatmış ve uyguladım şuanda sorunsuz bir şekilde çalışıyor. Bende bunu türkçe olarak anlatıp ilk olmak istedim umarım öylede olmuştur. :) şimdi adım adım yapmanız gerekenleri anlatıyorum.

1-) http://get.adobe.com/flashplayer adresine gidip orda son sürüm Adobe Flash Player indiriyorsunuz.

2-) flash_player_10_solaris_x86.tar.bz2 indirilen bu şekildeki uzantılı dosya sadece sürümüne göre değişecek olan numaralardan başka bir farklılık göstermeyecektir.

3-) Dosyamızın üstüne sağ tıklayarak önümüze gelen seçeneklerden Extract Here diyoruz ve karşımıza flash_player_10_solaris_r22_87_x86 uzantılı bir dosya çıkıyor. Dediğim gibi sadece bunlar sürümüne göre isimde küçük değişiklikler olabilir. Işte bu çıkan dosya aslında Flash plugin kütüphanesidir.

4-) Şimdi masa üstünde sol üst köşede Applications, Places, System yazan yerde Places e tıklıyoruz. Oradan da Home Folder diyoruz. Aslında aynı yazıları takip ederseniz orda ev şeklinde bir icon var o kısa yoldan Home Folder a gider :)

5-) Şimdi Home Folder u açarsanız burda gizli dosyalar var. Bunları görmemiz gerekiyor bunun içinde View → Show Hidden Files a tıklıyoruz yada kısa yolu ctrl+h ta yaparak gizli dosyaları görmemize yardımcı olur.

6-) Karşımıza gelen gizli dosyalar arasında (.mozilla) klasörünü bulup açıyoruz eğer orda plugins dosyası varsa çıkarmış olduğumuz flash_player_10_solaris_x86.tar.bz2 dosyayı bu plugins dosyasının içersine kopyalarsanız Mozillayı açar kaparsanız eklentimiz eklenmiş olacaktır.

7-) Bir çogunluğumuzda Plugins dosyası olmaycaktır. Bende de yoktu sadece iki tane klasör var bunlar "extensions" ve "firefox"

8-) Bu dosyaların olduğu yere hemen sağ tıklayarak Create folder diyorsunuz. Ve yine çıkarmış olduğunuz flash_player_10_solaris_r22_87_x86 dosyasını bunun içersine kopyalıyorsunuz ve bu yeni dosyanızın adını Plugins olarak değiştiriyorsunuz. Böylelikle flash player eklenmiş oluyor.

9-) eklendiğinde sistemin vereceği cevap size bu mozilla'nın adres çubuğunda yazacaktır.
hockwave Flash

File name: libflashplayer.so
Shockwave Flash 10.0 r22

MIME Type Description Suffixes Enabled
application/x-shockwave-flash Shockwave Flash swf Yes
application/futuresplash FutureSplash Player spl Yes olacaktır. Böylelikle flash ile olan sorunumuzu çözmüş olduk. Herkese iyi eğlenceler.

07:19

White Box Testing

White Box Testing: White box testing yapısal (structural) veya program tabanlı(merkezli) testtir. Programın kodu kullanılabilir. Test case programın içyapısından türetilir. Bunun dezavantajı ise mission(görev) hatalarının yakalanmayışıdır. Yani programın cevap vermesini beklediğimiz ihtiyaçların, gereksinimler deki hatalar nelerdir sorusunun cevabın bulamazsınız. İkinci olarak ise test-oracle sağlayamaz bu ne demek sizin programa yapacağınız bir input girdisi için beklenilen outout çıktının ne olacağı sorusunun cevabını bu test yöntemiyle alamazsınız. White box testing test takımının oluşturmak istediği test case lerin prosedürüne uygun tasarım mimarisinin kontrolü altında test case tasarımının yaklaşımıdır. White box testing bize sunmuş olduğu test case lerin neler olduğuna bakalım.

1-) Koşul Şart Testi (Condition Testing):
Program koşulları içerisinde mevcut koşullara göre test case in oluşturulmasıdır. Peki, bunlar neler olabilir.

a-) Basit Boolean Koşulu Olabilir:
Boolean sadece true veya false değerleri alabilir. Bu yüzden bu test türünde iki tane test case oluşturulabilir.

Örnek olarak
İF (DATA VALİD ) THEN…

İF (DATA İNVALİD) THEN…

2-) Koşulu Olan Değeri Operatör Değeriyle Sınamak: Bu tür koşullu testlerde üç tane test case türetilmelidir. Değerlerimizin x ve y gibi iki değer olduğunu varsayarsak

a-) x ve y nin eşit olduğu durumlar
x = = y

b-) x’in y’den büyük olduğu durumlar.
X > y

c-) x’in y’den küçük olduğu durumlar
x < Y
3-) Bileşik Şartlar: (AND &&) veya (OR || ) Burada ise dört tane test case mevcuttur.

a-) 1.koşulun ve 2. koşulun doğru olma olasılığı.

b-) 1.koşulun doğru 2. koşulun yanlış olma olasılığı.

c-) 1.koşulun yanlış 2. koşulun doğru olma olasılığı.

d-) 1.ve 2. koşulun yanlış olma olasılığı.

Örnek:
İF (KOŞUL 1) && (KOŞUL 2 ) THEN…

İF (KOŞUL 1) || (KOŞUL 2 ) THEN…





4-)Döngü (Loop ) Test: Burada test case ler program içindeki mevcut döngülere göre hazırlanır.

a-) Basit Döngü (Simple Loops ) Testing:



Basit bir döngü için kurulması gereken test case ler:

I-) Döngüdeki girdileri Atlamak.
II-) Döngülerden sadece bir defa geçmek.
III-) M defa geçilen bir döngüde MIV-) (N–1) ,N defa geçilen bir döngüde N maksimum geçilebilecek döngü sayısıdır.

b-) İç İçe (Nested Loop) Döngüler:

 En içteki döngü ile başlanmalı. Diğer dışarıdaki döngüler küçük değerler ile test case leri oluşturulmalıdır.
 En içteki döngü için basit döngü kuralları uygulanır.
 Ne zaman en içteki döngü test edilmesi bitti dıştaki döngü ile birlikte çalıştırılmalı bu testte bittikten sonra diğer döngüye geçilmelidir.
 Bu işlemler bütün döngüler bitene kadar devam etmelidir.

c-)Ard arda eklenmiş (Concatenated Loops) Döngüler:


 Burada döngüler eğer birbirilerinden bağımsız iseler basit döngü testin benzeri bir yaklaşım uygulanır.
 Eğer döngüler birbirilerine bağımlı iseler iç içe döngü testin benzeri bir yaklaşım uygulanır.


Veri Akışı (Data Flow) Testing: Basit bir girdi ile mevcut noktaların program içindeki kodun küçük parçalara bölünmesidir. Herhangi bir parça için hangi değişkenlerin tanımlanacağı ve nerde kullanılacağının tanımlanmasıdır. Tabi çeşitli koruma kriterleri mevcuttur bunlara örnek verecek olursak

1-) Bütün tanımlar için use-pairs (kullanım çiftlerinin) oluşturulması.
2-) Bütün tanımlar için Benzer kullanım alanlarının tanımlanması.

DEF(s) = { x | S ifadesi, X’in tanımını içermektedir.}
USE(s) = { x | S ifadesi, X’in kullanımını içermektedir.}

Örnek:
1- i= get-a-number-from-console();
2- j= get-a-number-from-console();
3- if (a < 90 ) {
4- i= get-a-number-from-console(); }
5- else {
6- j= 5;
7- }
8- İf (a > b) {
9- İ = 8;
10- J = 6 ;
11- } else {
12- Printf (“ %d \n”,i);
13- }
14- İf ( b < 30 )
15- Printf (“ %d \n”,i);
16- J=6;
17- } else {
18- Printf (“ %d \n “,i);
19- }

Soru 1: Hangi satırda i tanımlanmıştır(Definition)? (siz j yi yazınız)

Yani burada İ nin tanımlandığı yerleri soruyor satır : 1 – 4 ve 9

Soru 2: Hangi satırda i kullanılmıştır (Use)?

Line 15 ve 18


Soru 3: İ için kaç tane Def-Use çifti oluşturulabilir.

6 tane bunları oluşturalım.

a- 1 – 15
b- 1 – 18
c- 4 – 15
d- 4 – 18
e- 9 – 15
f- 9 – 18

Soru 4: Soru 3 te oluşturmuş olduğumuz def-use çifti için test caseleri oluşturunuz.
Burada şartların oluşa bilmesi için satır satır test’e başlıyorsunuz.

A şıkkı için sonra yapalım b’den başlayalım

b- 1 - 18

eğer a=35 ve b= 36 olursa a 90 dan küçük olmuş olur if in içersine girer devam eder.

c- 4 - 15 yani bunun anlamı 4. satırdan başlayıp 15. satırı çalıştıracaksın
a=25 b=26 olursa bu şartı sağlamış olur.

d- 4 – 18 a=25 b=35

e- 9 – 15 a=25 b= 20

f- 9 – 18 a=35 b=31

a şıkkına baktığımız zaman a >= 30 a><= b, ve b<30 olmalı böyle bir durum söz konusu olamaz a şıkkı çalışmaz.(bu örnek bana ait degildir. ders notlarımdan alıntıdı.)


13:23

Software Validation & Testing

Yazılım Testinin Öğeleri:

1-) Test Strategisi: Yazılım testinin türünün ne olduğunu ve hataları bulmada kullanılacak en iyi hangi testin olduğunu belirlenmesini sağlar. Test starategisi temel olarak hangi testin en iyi sonucu vereceğini, daha etkili bir test için her testin içersine nesneler koyarak en uygun çabanın eforun belirlenmesini sağlamak ve bütün versiyon kaynaklarının en iyi şekilde kullanımını nasıl yapılacağını anlatır.

2-) Test plan: Sizin yazılımdaki proje planınız ile yani elinizde bulunan yazılımın işleyişi ile yazılımda ki testin yerine getirmesi gereken iş bölümünün veya görevlerin bir arada ele alınmasıdır.

3-) Test Cases (Durumları): Bir yazılımın ayrıntılı şekilde işleyişlerinin belirlenmesidir.
Örneğin, siz bir yazılım yaptınız ve bu müşterinin ihtiyaçlarına ne ölçüde karşılandığının tespitidir. Yani burada kullanıcının kullanılacağı butondan text’in puntosuna kadar her açıdan yazılımın ele alınışıdır.

4-) Test Verileri: Veri ve veri tabanında ki veri girdilerinin testini içermektedir. Veri projenin test case lerinden birinin işleyişi (executing) ile kullanılır.

5-) Test Environment(çevre): Belerli bir alanda ve doğru ekipmanları kullanarak testin oluşturulmasıdır.

Kaynaklar (Source) :
→ Zaman
→ Harcanan efor
→ İnsanlar

Plan :
→ Projenin başlatılması
→ Dizayn
→ kod ve
→ Kimlerin çalışacağının belirlenmesi

Veri (Data):
→ Verinin doğru akışlar sergileyip sergilemediğinin kontrolü gibi çevresel faktörlere bağlı olayların sınamasıdır.

Test:
Girilen input la bizim beklediğimiz output un aynı olması için gözlenilenlerin doğruluğunu onaylamaktır.





Bir Testin Limitleri Sınırları:

1-) Yapılan bir yazılımda bütün mümkün girdilerin (inputs) sınanması, test edilmesi mümkün değildir.

2-) Testin bütün mümkün yollarının (Paths) sınanması olanaksızdır.

3-) Test hata durumunun gösterilmesi için kullanılabilir fakat asla onları gözlemleyemezsiniz.

4-) Test yazılımın hatasız olmasını garanti etmez. Fakat hataların daha etkili bir biçimde bulunmasına yardımcı olur.

Bir Test'in Başlangıcında Sorulması Gereken Temel Sorular:

Tabi bunlar yazılımdan yazılıma farklılık gösterecektir. Ama bir testin temelinde başlıca aşağıdaki soruların çözümleriyle işe başlanır.

1-) Test ne zaman başlamalı ?
2-) Test ne zaman bitirmeli ?
3-) Neler test edilmeli ?
4-) Test cases en iyi şekilde nasıl oluşturabiliriz ?
5-) Gözlenen Output lar doğrumu ?
6-) How well did use do ( Yazılımın nasıl iyi kullanılacağının yapılması )
Bu bizim yazılımda ki testimizin etkinliğini anlatır. Totel de ne kadar hata bulduğumuzdur.
7-) Yazılımı kimler test etmeli. Buda test takımına bağlıdır.

14:38

Software Validation & Testing

Verification: Var olan bir yazılım istenilen ve belirtilen özelliklere uyumlu olup olmadığını kontrol etmektir.Yazılımı geliştirici tarafından yapılan ve Üretim evrenlerinde verification gerçekleştirilir. En bilinin adıyla Specification software olarak adlandırılır.En genel haliyle Geliştirici ürünü doğru Kodladı mı? Geliştirdi mi? sorusunun cevabını aranmaktadır. Süreç-yönlüdür.Gereksinimleri ve ihtiyaçları belirtilen ürünün tamamlanan evreleri önceki evreleri aşamaları sırasında kurulmuş bir biri içersinde uyumlumudur diye bakılmaktadır.

Validation:Müşteri odaklıdır. Müşterinin beklentilerinin karşılanıp karşılanmadığını kontrol eder.En genele haliyle Geliştirici yaptığı ürünün müşteri için doğru olup olmadığı sorusunun cevabını aramaktadır.
Üretim-yönlüdür.Ürünün hazır olan tamamlanan evreleri aşamaları arasında kullanıcının ihtiyaçlarına cevap veriyor mu? diye bakılmaktadır.
Burada genel olarak takip edilen yol
şeklindedir.Şemayı ele alıp bunları tek tek birbirleriyle karşılaştırmalısınız.
Bakım & Onarım (maintenance ): Yazılımı veya uygulamayı tekrar tekrar güncellemek veya düzenlemek demektir.
Her zaman daha Az çaba için Verification & Velidation Önemlidir.

Yazılım Geliştirme maliyet tarafından bakıldığı zaman



Yazılım Life-Cycle Maliyeti


Bütün yazılım geliştirme aşmalarının %60 civarında Maintenance yani Bakım & Onarım olarak çaba gösterilmektedir. Bunların dağılımları

 %21 Düzenleyici (Corrective Maintenance)
 %25 Adaptasyon (Adaptive Maintenance)
 %50 Eksiksiz (Perfective Maintenance)
 %4 Koruyucu (Preventive Maintanence) Bakım & onarım şeklinde geçmektedir.

Velidation & Verification teknikleri:

2 ayrılır

1-) Statik V&V: Bir yazılımı çalıştırmadan (Execute) önce bilgilerin toplanmasıdır.
Peki Bunlar neler olabilir diye bakalım.
Life-Cycle : Reviews, İnspections,Wolkhtrough
Statik analiz biçimsel verification dır. Yalnızca yazılım geliştirmelerde güvenlik ve emniyeti sağlar.

2-) Dinamik V&V: Bir yazılımın Çalıştırıldığı (Execute) edildiği anda bilgilerin toparlanmasıdır.Yani burada artık sizin elinizde çalışan (run) eden bir kod vardır. Burada yapabileceğiniz iki tane işlem vardır. Bunlardan birisi Testing diğeri ise DebugingŞimdi birazda Life-Cycle’a bakalım.

İspection: Bir takım tarafından denetilir ve uygulanır. Yazılım geliştirmenin belirli evrelerinde ürünü yazılımı incelerler. Bu aşamada neler yapılabilir? SRS, Tasarım Dizayn, kodlama yapılabilinir. Genelde dört veya beş kişiden oluşurlar.İnspaection takımının en önemli özelliklerinden biri Check-List kullanarak dosya içerisindeki hataları problemleri bulmaya ve denetlemeye çalışır.

Review: Bir dosyanın değerlendirilmesi sırasında geliştirme standartlarının kolayca yönetilmesi ve İspatları, açıklamaları ile yönetimini sağlar. Belirlenen ve başlatılan amaçlara göre geliştirme süreci yürütülmeye başlar. Review in genel amacı daha az teknik konular daha çok Specifications ve standartlara göre ürünü değerlendirmektir.Tasarım dizayn ve geliştirme gereksinimlerini kusursuz bir şekilde garantiye almaktır.

Walkhtroughs: Genel amacı hataları belirlemek ve belgelemektir. Geliştiricinin uygulama sırasındaki tahmini hataları değildir. Walkhtroughs diğer statik V&V tekniklerine göre daz az biçimseldir. Walkhtroughs takımına rehberlik etmesi için bir Check-List ve diğer takımların çalışma dosyalarının raporlarını kullanmazlar.

İnspection süreç aşamaları:



Plan: Sade moderator sorumluluğunda gerçekleşir ve çalışan ürüne uygulanır.(work product )

Gözden Geçirme (Overview): İsteğe bağlı olarak oluşturulur.

Hazırlanma(Preparation): Takım üyelerinin kendi başlarına çalışmalarını gerektirir.

Hatalarla Karşılaşma (Meeting): Bütün programın her hatası tartışılır. Final hata listesi oluşturulur.

Takip etmek (Follow-Up): çalışan proje doğrulanır.

Yazılımı Test etmenin önemi:

İlk olarak bu soruyu kendinize sorup cevaplamaya çalışın eğer kafanızda birşeyler oluşmadıysa aşağıdaki nedenleri okuduktan sonra soruyu tekrar cevaplamaya çalışınız.
1-) Yapılan testin başarasın dan harcanan zamanından test sürecinin kalitesinin hesaplanması

2-) Life-Cycle test tekniklerini kullanarak hata göçlerinin önlenmesi

3-) yazılımda uygun test tool kullanımları

4-) Test profesyonel bir disiplin kendini geliştirmiş bilgi ve becerisi ileri düzeydeki vasiflı elemanlara ihtiyaç duyar.Burada aranan asıl cevaplar. Yazılım sürecinin ne kadar süreceği? Yazılımın nasıl yapılması gerektiğinin kararının verilmesi? Test sürecinde uygulanacak strategilerin neler olduğuna? Doğru strateji ile doğru insan gibi soruların çözümü önem taşımaktadır.

Unutmamak gerekir ki En iyi yazılım istenileni en az hatayla en iyi yapandır.

14:01

Java Öğreniyoruz Nerden Başlamalı Acaba ?

Java Mesut Altınyaprak
Burada Java platformunun bir macare oldugunu öğreneceğiz.Java teknolojis ile yapabileceğiniz birçok şey vardır. Ancak, İhtiyacımız olan Ne yapmak istediğimizi bilmek ve ilk engel olarak nereden başlayacağımızı en iyi bir biçimde anlamaktır. Burada sizlere Tools yani araçları anlatmaya çalışacağım. Söylemek istediğim bir şey var tools (Araç) demek yerine olduğu gibi yazmayı tercih ettim bazı yerlerde yabancı kelimeler var bunların türkçe karşılıkları çok anlamsız olduğu için hiç değiştirmeden yazdım. Ne yapmaya karar verdikten sonra java programını öğrenmeniz daha kolay olacaktır. Burada kendimizin java temmelleri üzerinden hangi tool ile başlamamız gerektiğine karar vereceğiz. Tools hakkında gereken bilgileri okuduktan sonra bu teknolojilerin kaynağı hakkında bilgiler ve java programlama dilinin detaylarını öğrenmeye başlamış olacağız.

Java platformunu öğrenme maceramız eğlenceli anlaşılır ve heyecan verici olamalıdır. (öğrenmenin temel ilkesi demi bu ya :)) ilk olarak aşağıda listeleyeceğim tools ile başlayacağız yani işe onlardan birini seçerek başlamalıyız. Hepsini inceledikten ve kendinizi hazır hissettikten sonra tools kaynak kodlarının içerisine bakabilirsiniz böylece heycan verici java uygulamaları yapmaya başlamış olacaksınız. Önemli bir hatırlatma tools ve onların kaynaklarını okumadan önce aşağıdaki tools için Java Standard Edition (Java SE) ihtiyacınız olacaktır.Download (Java SE)buradan indirip bilgisayarınıza kurduğunuzda çeşitli öğretici teknik tools(Araçlara) hazır olmuş olacaksınız. Özellikle java Programlama dili hakkında ne bildiğinize bağlı olarak hangi tool’u kullanman gerektiğine karar vermelisin. Bu tools nesnelerin birbirileriyle olan etkileşimi ve yapabileceklerin arasındaki ilişkiyi göstermektedir.Download tutorial java( Tools içindeki nesneler hakkında bilgileri de öğrenmelisin. Ancak, her tools için belirli bir kesim düşünülerek onların ihtiyaçlarına yönelik tasarlandığını da unutmamalısın. Eğer daha önce bir programlama deneyimin yoksa birinci tool ile geliştirme öğrenmeye başlamalısın. Temel den başlayarak öğrenme yolu Greenfoot > BlueJ > the NetBeans IDE BlueJ Edition şeklinde dir. Aşağıdaki resim bölümlenmiş halini göstermektedir.

Şimdi senin öğrenme yöntemine ve isteğine bağlı olarak senin için en iyi ve daha iyi kullana bileceğin doğru şekilde karar vermeni sağlayacak tanımlamaları vermeye çalışacağım.

Tools (Araçları ) öğreniyoruz:

Greenfoot Download

Greenfoot 13 + yaşındaki lise öğrencileri için tasarlanmıştır. Bunu 13 yaşının altında veya üstünde kimsenin kullanamayacağı anlamına gelmemektedir. Herkes yararlanabilir. Greenfoot amacı lise düzeyi programlamalardır. Hızlı bir ekran üstünden heyecan verici ve eğlencili birşeyler alma vurgusu dur. Hangi programın uygunluğunu görmek isteyen geliştiriciler için Greenfoot programlamaya kolay bir giriştir. Programlama bilgisi olmayanlar için önemli bir tool dur. Greenfoot eğlenceli, heyecan verici ve ilgi oluşturur. Çünkü Greenfoot 2D grafik uygulamarının geliştirmesi için uzmanlaştırılmış tır. Buda istediğin Görselliği eğlenceli olarak yaratmanı sağlar. Greenfoot program içersinde çizimler yapılabilecek halde tasarlanmıştır. İlk bunun la programlamaya kancayı atar ve BlueJ ile devam eder ve daha sonra NetBeans IDE BlueJ Edition ile geliştirici olmaya başlayabilirsin.
Download Quick Intro Tutorial


BlueJ [Download]

BlueJ’in amacı daha çok üniversite öğrencilerine yönelik geliştirmeler yapmalarına olanak sağlamaktır. BlueJ tool kullanıcıları daha önce programla dilerinin herhangi biriyle ilgilenmiş kişilere hitap eder. Bu dille daha organize olmuş bir şekilde çalışmanıza olanak sağlar. BlueJ geneldir. Bu uygulama her çeşit uygulama geliştirmek için kullanılabilir. BlueJ nesnelerin, metodların ve alanlarının temellerini öğrenmenize ve geliştirmiş olduğunuz her uygulamar arasındaki görsel olarak birbirleriyle olan ilişkilerini görmenize yardımcı olur. Java programlama dilini nuts ve bolts olarak ögrenirsiniz. Ve ayrıca görsel bir şekilde ne yapılabileceğini görmenizi sağlar. Görsel ve etkileşim teknikleri yüksek seviyeli etkileşim ortamı yaratmaya Tecrübeye ve araştırmaya teşvik eder.
BlueJ Destekleri:
 Tamamen Tümleşik Ortam ( Fully Integrated Environment)
 Çizgisel Sınıf Yapı Görüntü'sü(Graphical Class Structure Display)
 Grafik ve Yazı Düzenlemeleri ( Graphical and Textual Editing)
 Built-in Düzenleyicisi, Derleyici, Sanal makine, Hata ayıklayıcı(Built-in Editor, Compiler, Virtual Machine, Debugger, etc.)
 Kolay Kullanımlı Ara yüz, Yeni başlayanlar için ideal (Easy-to-use Interface, deal for beginners)
 Etkileşimli Nesne Oluşum'u. (Interactive Object Creation)
 Etkileşimli Nesne Aramaları (Interactive Object Calls)
 Etkileşimli Testler (Interactive Testing)
 Etkileşimli Uygulama Gelişmesi (Incremental Application Development)
Download The BlueJ Tutorial http://www.bluej.org/tutorial/tutorial-201.pdf
Bu konularada bakmanızda yarar var:
Nesne (Objects)
Metodlar(Methods)
Alanlar (Fields)

NetBeans IDE BlueJ Edition [Download]

Bluej özel bir ortam içerisinde ileri seviyedeki geliştiricileri hedef almaktadır. Görsel öğelerin ve etkileşim olanakları gibi Object-oriented (Nesneye dayalı ) Kavramların önemli bir şekilde yardım ve öğrenilmesi için önerilen eğitim aracıdır. BlueJ ile programın öğrenmenin tanıtıcı aşamasını programlarsınız. NetBeans ise profesyonel geliştiriciler için çok güçlü bir tool dur. Şimdi ye kadar öğrenciler için diğer uygulamalarıyla birlikte kaçınılmaz zorlu bir engel olmuştur. Professional IDE The BlueJ plug-in gibi bu iki önemli özellikler eklenerek NetBeans IDE oluşturuluyor ve öğrencilerin kullanımı içinde daha uygun hale getiriliyor. Buda
• BlueJ-native formatı içersinde BlueJ projesi (NetBeans IDE standar projesinden veya onlara dönüştürmeden ) yaratmaya ve açık bir NetBeans çalışması yaratmaya olanak sağlıyor. Böylelikle bazı NetBeans IDE çalışmaları ve Bazı geri BlueJ (some back in BlueJ) yapılmasına olanak sağlıyor. Nerede olursanız rahat çalışmanı hisetirecektir sana.
• NetBeans IDE , NetBeans proje penceresine bir BlueJ görüntü sekmesi ekler. BlueJ projelerine tanıdık bir görüntü verir.
• NetBeans IDE, BlueJ Edition a benziyor ama ondan daha güçlü hem senin yeni bir tool’a adaptasyon sürecini azaltacak hem de sana bildiğin tool’u daha güçlü kılarak nesneye ve görselliği aynı anda kullanmana imkan sağlayacak bir tool olarak özetlenebilir.
Download The Netbeans BlueJ Plug-in Tutorial

ÖZELLİKLE BİLMENİZ GEREKENLER

Java öğrenmeye başlayacak biriysen BlueJ veya the NetBeans BlueJ Edition ile başlayabilirsin. Tabi ilk olarak temel bir java programlama dilini öğreneceksin. Bunun için en iyi kaynak ise sun tarafından hazırlanmış olan The Java Tutorial The Java Tutorialkullanabilirsin tabi sadece bunla yetinmemelisiniz. Java Tutorial java programlama dilindeki noktalama hatalarını ve binlerece sınıfın nasıl kullanılacagını öğrenmenize yardımcı olur. Java Center yeni java programlama merkezenin adresidir. Sık sık burada java yapısı ve tutorials eklenerek geliştiricilerin öğrenmesi için sürekli olarak güncel tutulur. Learn Java adresinde ise öğrenmeye başladığın yolda articles ve tutorials nereden bulacağına hangisini kulanman gerektiğine nerden başlaman gerektiğini göstermeyi hedeflemektedir. Java teknolojilerinin haber kaynagı (RSS ) için RSS adresini kullanabilirsin. Eğer başlangıç seviyesinden çıktıgına ve daha iyi düzey bir geliştirici oladuguna inandığın anda Core Java sitesinden yardım alabilirsin bu site genellikle daha prefesyonel ve ileri düzey java geliştiricilerini hedeflemketedir. Facebook hesabın varsa Share sitesinden java topluluguna katılabilir ve paylaşımda sende buluna bilirsin.
Kaynak: http://java.sun.com Yolunuz açık olsun :)