20 Temmuz 2013 Cumartesi

JAVA BufferedInputStream Sınıfı

JAVA da java.io paketinde bulunan BufferedInputStream sınıfı ve kullanımı hakkında geniç bir döküman .



JAVA BufferedReader Sınıfı


JAVA I/O işlemlerinin önemli bir sınıfı olan BufferedReader sınıfının tüm yönleri ve kullanımına yönelik örnekler içeren güzel bir döküman . 

JAVA java.io Paketi


 java.io paketi ve içeriğine dair detaylı bir çalışma .


JAVA Writer Sınıfı

JAVA da giriş , çıkış işlemleri ile ilgili döküman serisine devam ediyoruz . Bu dökümanımızda Writer sınıfı ve detaylarına yönelik gayet detaylı bir çalışma .


JAVA Veri Akımları (Giriş-Çıkış İşlemleri)

JAVA Giriş - çıkış işlemlerine ve java.io kütüphanesi sınıflarına detaylı bir bakış ve önemli örnekler içeren bir döküman . Konu hakkında gayet açıklayıcı olduğunu düşünüyorum .


JAVA Giriş - Çıkış İşlemleri

    JAVA da tüm dillerde olduğu gibi  Input- Output  işlemleri önemlidir . Sonuçta bir program aldığı verileri işleyerek bir sonuca ulaşarak bir çıktı veren sistemdir . Bir programa veri girişi işlemleri çok geniş sistemdir . Ne şekillerde  veri girişi yapılabilir ? Bir dosyadan , direkt olarak elimizle , veritabanlarından , çeşitli optik okuyucu vb. sistemlerden , sensörlerden vs. Bu liste uzar gider . 

     Bu örnekte kendimin hazırladığı , dosyadan veri alışı ve dosyaya veri girişi örnekleri bulunmaktadır .
“BufferedReader” sınıfı ile dosyanın değerlerini okumamız mümkündür, dosyaya yazmak için ise “BufferedWriter” sınıfını kullanıyoruz . Bu sınıflar java.io kütüphanesi içerisinde tanımlanmış sınıflardır . 



19 Temmuz 2013 Cuma

RaspBerry Pi Mini Bilgisayar

    Raspberry Pi, kredi kartı büyüklüğünde, televizyona da bağlanabilen, bir masaüstü bilgisayarın yapabileceği hemen her şeyi yapabilen, usb ve ethernet girişine de sahip bir mini bilgisayardır. Birleşik Krallık'ta Raspberry Pi Vakfı tarafından okullarda bilgisayar bilimini öğretmek amacılığıyla geliştirilmiştir.
    ARM tabanlı bu mini bilgisayar, temel ofis uygulamaları ve oyunlar gibi normal bir bilgisayarda yapabileceğiniz çoğu işlemi yapmanıza imkan sağlamaktadır. Bununla birlikte yüksek çözünürlüklü(HD) video oynatabilme yeteneğine sahiptir. 


    Raspberry Pi ölçüleri 85.60mm x 53.98mm x 17mm, şeklindedir (SD kart girişine tam boyutlu SD kart takınca bir kısmı dışarı çıkmakta, bu da boyutu az olsa da yükseltebilmekte). Fansız olan bu cihazın ağırlığı ise 45 gramdır.

    Kart üzerinde 3.5mm ses ve RCA video jackı, HDMI çıkışı, SD kart yuvası, güç girişi, RJ45 ethernet soketi, CSI kamera konnektörü ve iki adet USB portu bulunmaktadır.


    RaspBerry Pi ' nin en önemli özelliklerinden birisi de , üzerinde her hangi bir hdd vb. hafıza sisteminin bulunmaması. Cihaz üzerinde ki hafıza kartı (SD kartı) yuvasına takacağımız uygun genişlikteki bir kart üzerine kurulacak olan bir Linuz işletim sistemi ile çalışabilmektedir . Piyasada ki Linux dağıtımlarından uygun herhangi birisi kullanılabilmekte . RaspBerry Pi vakıfının web sitesinden Debian ve Arch Linux ARM işletim sistemleri indirilebilir.Python programlama dili ile programlanabildiği gibi BBC Basic, C ve Perl programlama dilleri de kullanılabilmektedir.17 Aralık 2012 tarihinde Raspberry Pi Vakfı, IndieCity ve Velocix firmalarıyla işbirliği yaparak kullanıcıların uygulama programları indirebilmeleri için Pi Store'u açmışlardır. Kullanıcıların Raspbian işletim sisteminde bulunan bir uygulamayı kullanarak çeşitli kategorilerdeki uygulamaları bularak indirmeleri mümkündür. Ayrıca kullanıcıların geliştirdikleri uygulamalar da yüklenebilir ve onaylandıktan sonra diğer kullanıcıların kullanımına sunulabilir.





    Yukarıdaki videoda , bilgisayarın kutudan çıkarılıp çalışır hale getirilinceye kadar ki yapılması gerekenler detaylıca anlatılmaka . Gördüğünüz gibi gayet kolay görünüyor . Peki bu mini bilgisayarı ne kadar paraya ve ne şekilde edinebiliriz . İnternette satışını yapan bir çok site var  . Dünyada ki ortalama fiyatı 35 dolar . Yani gayet ucuz . Türkiye'de ise http://www.robotistan.com sitesi üzerinden , 92 TL ' ye edinebilirsiniz . 

TEKNİK ÖZELLİKLERİ 

  • Broadcom BCM2835 SoC full HD İşlemci
  • ARM1176JZ-F düşük güç tüketimine sahip 700 MHz İşlemci
  • 512MB SDRAM
  • 10/100 Ethernet RJ45 jack
  • İki adet USB konnektörü
  • HDMI ve RCA Video Çıkışları
  • HDMI ve 3.5mm Ses Çıkışları
  • SD, MMC, SDIO kart yuvası (Diğer hafıza kartları için adaptörle kullanım gerçekleştirilebilir.)
  • Linux işletim sistemini destekler.
  • Kart boyutları 8.6cm x 5.4cm x 1.7cm
  • Sert plastik koruma kutusunda, fabrikada denenmiş olarak ve ilk sizin açacağınız şekilde gönderilmektedir.
    Peki bu cihazla neler yapalirsiniz ? Tamamen hayal gücünüze kalmış . İsterseniz bir Linux dağıtımı ekleyebilirsiniz, isterseniz Firefox OS kurabilirsiniz, isterseniz XBMC dağıtımlarını kurup bir media centera dönüştürüp film/dizi/müzik izleyebilirsiniz, isterseniz de genişletme kartları ile ledli ufak projelerinizi hazırlayabilirsiniz. HDM çıkışı ile evdeki TV nize bağlayıp , Ethernet ilede küçük ev içi ağınızı bir media center a dönüştürebilirsiniz . Eğer yeterli programlama ve Linux bilginiz vasra , kartı bağlayacağınız bir sistemle kendi mini bilgisayarınızı ve işletim sisteminizi geliştirebilirsiniz . 


     Unutmadan belirtelim , acaba bu cihaz ne şekilde ve nekadar güce ihtiyaç duyuyor . Standart bir kullanım için en az 5 volt 1 amper ya da daha yüksek akım sağlayan bir güç kaynağı lazım. Özellikle USB’den güç alan hard diskler çok güç emeceğinden bu konuda size elektrik beslemeli ve Raspberry Pi’yi destekleyen bir usb hub ile bağlayabilirsiniz. Yani gerekli gücü sağlayacak bir microUSB şarj aleti edinerek bu sorunu kolayca hallediyorsunuz . 


      Peki , bir RaspBerry Pi edinerek , LINUX üzerinde çalışan bir RaspBerry Pi uygulaması , JAVA ile geliştirilebilir mi  ? Tabiki geliştirilebilir . Belki JAVA GUI ile kendi küçük işletim sisteminizi ve mini bilgisayarınızı dahi yaratabilirsiniz . Ayrıca cihaz hakkında güncel ve çok daha geniş bilgiyi RaspBerry Pi Türkiye topluluğu ' nun sitesinden alabilirsiniz . 

15 Temmuz 2013 Pazartesi

JAVA CheatSheet

           JAVA hakkında ipuçları ve küçük bilgiler içeren üç sayfalık bir cheatsheet . Her ne kadar , bir konuyu bilirsek bilelim küçük ve basit şeyleri unutabiliyoruz değil mi ? İşte bunun gibi küçük ve eğlenceli notlar insanın elinin altında çok iş görebiliyor .


5 Temmuz 2013 Cuma

JAVA for Döngüsü için Bir Örnek

Malum bir satranç ustası şah ile köylü bir ustanın satranç oyununu herkes bilir . Şahı yenen köylü , şahtan satranç tahtasının ilk karesine bir buğday , ikincisine iki buğday , üçüncüsüne dört buğday ve her bir kareye bir öncesinin iki katı olacak şekilde , tahtanın üzerindki toplam buğdayı istemiştir .

İnce hesap; Hesaplamaya ilk kareler kolay gitmiş. 1. Kareye bir buğday, 2. Kareye iki buğday, 3. Kareye dört buğday... Ancak 10. Kareye gelindiğinde 1023 buğday

Vermeleri gerekiyor. Bu yaklaşık bir avuç buğdaya karşılık gelir; hesabın hep böyle gideceğini, hep köylüye böyle üç beş buğday vereceklerini zannediyorlardı. Zaten 15. Kare yalnızca 1.5 kilo buğday vereceklerdi. 25. Kareye gelince 1.5 ton olduğunu Görmüşler ama fazla heyecanlanma-mışlar. Oysa;

31. Kareye gelince, bu işin şakası olmadığını anlamaya başlamışlar. Çünkü vermeleri gereken buğday

31. Karede 92 tonmuş. 49. Kareye geldikleri zaman 24 milyon ton buğday vermeleri gerekiyor. Bu ise Türkiye’nin bir yıllık buğday üretiminden fazla. 54. Kareye geldiklerinde ise 771 milyon ton buğday vermeleri gerekiyor. Bu da dünyamızın bu günkü ölçülere göre bir buçuk yıllık buğday üretimi. “madem başladık hesaplara devam edelim” deyip bitirmişler.

64. Kare de tamamlandığında bugünkü ölçülerde dünyanın 1500 yıllık buğday üretimini köylüye vermeleri gerektiği ortaya çıkmış.

For döngüsünün anlatımı için gayet güzel bir örnek ve problem olacağı kesin bunun . Mantık olarak ilk kareye 2nin 0. kuvveti , ikinci areye 2 nin 1. kuvveti , üçüncü kareye 2 nin 2. kuvveti ve son kareye 2 nin 63. kuvveti kadar buğday gelecek . Tahtanın üzerinde ise 2^0+2^1+2^2+2^3+...2^63 kadar buğday olacaktır .

Bunu ise JAVA da şu şekilde hesapladım .

public class Satranc {
public static void main(String[] args) {
double Toplam = 0;
for(double i=0; i
Toplam=(double)(Math.pow(2,i)+Toplam+1.0);
}
System.out.println(Toplam);
}
}

Sonuç 1.8446744073709552E19 şeklinde ekrana basıldı ve daha önceki hesapları doğruluyordu .

Toplam=(double)(Math.pow(2,i)+Toplam+1.0); ifadesindeki 1.0 ise , döngüdeki i değişkeini 0 değil 1 den başlattığımız için ilk karede kalan bir buğdaydır.

Bir buğdayı 1gr olarak düşünüp , her bir kareye gelindiğinde tahta üzerindeki toplam buğdayın ağırlığını ve o karedeki buğdayn ağırlığını da hesaplayacak şekilde kodu yazmakta bir antreman olabilir JAVA severler için .