Bilgisayar alanından hareketle yaşamla ilgili her şeyi paylaşmaya çalışan arkadaşların oluşturduğu kollektif bir günlüktür.
Podcast
http://www.freesciencelectures.com/
http://www.thelinuxlink.net/
http://freescienceonline.blogspot.com/2007/05/programming-video-education-lectures.html?search=programming
http://yildizsavaslari.com/podcast/
Sınav
İlk olarak Ogün Sanlısoy'dan Koşu Başladı
Sonra Özlem Tekin'den A)Şık
Nil Karaibrahimgil'den Yaş 18
Manga ve Göksel'den Dursun Zaman
Evet dikkatimi çeken ve hoşuma giden parçalar bunlar :D
Aklıma gelmişken yeni takıldığım dizi Kavak Yelleri. Az izlediğim televizyonda, rastlarsam izliyorum. Ne de olsa müziklerini Pinhani yapmış :D
Dosyalarınızı Yedekleyin
Linux içerisinde yedekleme yapmak için ise az biraz araştırmayla rahatça öğrenebilmeniz veya hazır betikler bulmanız mümkündür.
İlk olarak SBackup adı verilen programı söyleyeyim. İşinizi bayağı kolaylaştıran bir arayüzü var. Debian ve Ubuntu içerisinde Synaptic aracılığıyla (veya sudo apt-get install sbackup komutuyla) kurabiliyorsunuz. Kurduktan sonra Sistem->Yönetim->Simple Backup Config aracılığıyla arayüzünü açabiliyorsunuz. Arayüzü kullanmak oldukça kolay. Ayrıca Sistem->Yönetim->Simple Backup Restore ile önceden yaptığınız yedeklemeleri geri yükleyebiliyorsunuz.(Resimlerle aşama aşama anlatım - İngilizce)
Diğer bir yöntem tar ile yedeklemedir. Belli başlı bazı dizinleri yedeklemek için, teype yedekleme yapmak için kullanabilirsiniz. Dizin yedeklemek için çok basit bir şekilde sudo tar cvpzf backup.tgz emre/ şeklinde bir komut kullanabilirsiniz (bu komut emre dizini ve altındaki tüm dosyaları backup.tgz adlı bir dosyada yedekler).
Tüm sistemi yedeklemek için sırasıyla
su
cd /
tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /
komutlarını kullanabilirsiniz. Geri almak için (almadan önce ne yaptığınızdan emin olmalısınız) tar xvpfz backup.tgz -C / komutunu kullanabilirsiniz.
Tekrar uyarıyorum yukarıdaki komut (geri alma komutu) sisteminizde var olan tüm dosyaların üzerine yazacaktır. Oluşacak hatalardan beni sorumlu tutmayın :)
Daha iyi sıkıştırma için BZip2 sıkıştırması kullanabilirsiniz. Bunun için yukarıdaki komutlarda sadece dosya adlarını değiştirmeniz(backup.tgz yerine backup.tar.bz2) ve komutlardaki z'leri j'ye (tar cvpzf yerine tar cvpjf ve tar xvpzf yerine tar xvpjf) çevirmeniz yetmektedir.
Yedeklemeler ile ilgili ayrıntılı bilgiye her zaman google'da uygun aramalarla ulaşabilirsiniz. (Örneğin "How to backup evolution" gibi)
Bağlantılar:
Ubuntu:Feisty Guide Backup Ubuntu System
http://ubuntuguide.org/wiki/Ubuntu:Feisty#Backup_Ubuntu_System
Linux Sistem Yöneticisinin Kılavuzu-Yedek Alma
Debian Linux Backup (Bayağı ayrıntılı)
Howto: Backup and restore your system!
Wikiversity
Öğrenmek günümüzde gittikçe kolaylaşan bir eylem haline geldi. XIX. (19) yy ve öncesine baktığımızda bu kadar çok üniversite, bu kadar çok öğretim kurumuyla karşılaşmak mümkün değildi. Günümüzde artık adım başı üniversite, yüksek okul, vb. yapılanmalarla karşılaşabiliyorsunuz. Ayrıca internet adı verilen ve her türlü bilgiye (doğru olsun yanlış olsun) rahatlıkla erişebildiğiniz bir "sanal alem"e sahibiz.
Ancak günümüzde bilimsel gelişme ve teknolojik gelişme artık bir kaç ülkenin tekeline geçmiş durumdadır. Yaptığınız bilimsel çalışmaları dünyadaki diğer insanlara anlatabilmeniz gerekmektedir. Bunu yapabilmek için de sayıları binleri aşan bilimsel dergilerde yayınlatabilmeniz gerekmektedir. Bu da gerçekten zor bir iştir (kendimden biliyorum). Ben bu konuyu geçtim, diğer insanların yaptığı bilimsel çalışmaları, deneyleri tekrarlamak istediğimde başaramıyorum. Halbuki bildiğim kadarıyla bilimsel çalışmanın temelinde deneylerin tekrarlanabilirliği yatar :S
Ya aslında ben bu konu hakkında yazmayacaktım, yazmış oldum silmiyorum.
Öğrenmenin yüksek maliyetler gerektiren bir eylem olduğunu unutmamak gerekiyor. Evet, etrafımızda yararlanabileceğimiz kaynak sayısı arttı ama bu kaynakları kullanabilen insan sayısı o kadar da artmadı.
Yukarıdaki siteyi böyle konulara meraklı olanlar için veriyorum. Wikipedia'nın kardeş projesi olan bu projenin şu an için en kötü yanı henüz Türkçe desteği olmaması. İngilizcenize güveniyorsanız deneyebilirsiniz. Bu özgür üniversitedeki ilgilendiğiniz alandaki tüm dersleri bitirdiğiniz zaman bir şeyler öğrenmiş olursunuz sanırım :S
İilgimi çeken bir kaç alan:
http://en.wikiversity.org/wiki/Filmmaking
http://en.wikiversity.org/wiki/Portal:Computer_Science
Not: İnsan merakı sayesinde bu kadar bilimsel gelişmeyi, bu kadar teknolojik gelişmeyi üretir bir hale gelmiştir. Bu meraka sahip olduğu sürece "kendi sonunu" kendisi getirecektir :D
Eymir Gölü - Ankara
Bizde bir şekilde girdik içeri. Burada uyguladığımız kural Ankara'dan neler öğrendim başlıklı yazımdaki ilk kural. İyiki de girmişiz. İlk görüşte bozkırdan bozma olarak düşündüğüm bu şehrin güzel yanlarının da olduğunu görmek sevindirdi beni. Bu da aynı yazımda geçen ikinci kuralın kanıtı. Farklı bakmak gerek güzellikleri görmek için.
Su, ağaçlar, kuşlar, ördekler, tavşanlar gibi doğal yaşam üyeleri ile birlikte minderinize yayılıp çay, kahve, gözlemeleri mideye indirebileceğiniz güzel ve samimi bir ortam burası. Etraftaki tavşanları kovalayabilir, yakalarsanız oynayabilirsiniz burada; ben yakalayamadım, yakalanmışı ile oynadık :)
ODTÜ arazisi içerisinde bulunan Eymir gölüne arabayla gitmek gerekiyor. Bisikletiniz varsa birlikte götürün derim.
İşte birkaç fotoğraf Eymir'den:
IMG dosyaları bağlamak ("img mount")
mount -o loop dosya.img /mnt/imageEğer bin dosyasını bağlamak istiyorsanız yapmanız gereken bchunk programı yardımıyla bin dosyasını iso'ya çevirip iso olarak bağlamanızdır. Ubuntu'da bcchunk programını sudo apt-get install bchunk ile rahatlıkla kurabilirsiniz.
Not:Sid Meier's Pirates güzel bir oyun :D Linux sürümü var mı acaba :S
Not 2: cue dosyasına sahip değilseniz bchunk işe yaramıyor. O yüzden aşağıdaki şekilde bir kabuk programcığını işinizi görecektir:
#!/bin/bashYukarıdaki kodu /usr/local/bin/bchunkcue dosyasına yazıp ( sudo pico /usr/local/bin/bchunkcue yazdıktan sonra içeriği yazın) dosyaya çalıştırma özelliği (sudo chmod +x /usr/local/bin/bchunkcue) verip bchunkcue dosya.bin dosya komutuyla cue dosyası olmadan bin dosyalarını çevirebilirsiniz.
echo "FILE ""$1.bin"" BINARY" >> $1.cue
echo " TRACK 01 MODE1/2352" >> $1.cue
echo " INDEX 01 00:00:00" >> $1.cue
bchunk $1.bin $1.cue $1_
rm $1.cue
Ajax - 4
--GWT yi PATH olarak tanıtalım
export PATH=$PATH:/media/sda7/mehmetkis/programs/gwt-linux-1.3.3
--Projeyi oluşturacağımız klasöre gidelim. Ben Eclipse ile kullanmak istediğimden workspace klasörü altında oluşturdum.
cd /media/sda7/mehmetkis/workspace/
--Projeyi oluşturma. - eclipse parametresi Eclipse projesi olarak oluşturmasını sağlıyor.
projectCreator -eclipse DashboardPrj -out DashboardDir
--Uygulamayı oluşturma
applicationCreator -eclipse DashboardPrj -out DashboardDir org.gwtbook.client.Dashboard
--Uluslararasılık (internationalization) özelliği kazandırma. Bu özellik, kullanıcı arayüzlerini farklı dillerde sunabilmenizi kolaylaştırıyor
i18nCreator -eclipse DashboardPrj -out DashboardDir org.gwtbook.client.DashboardConstants
--Uluslararasılık (internationalization) özelliğini gerçekleştirme
DashboardConstants-i18n/DashboardConstants-i18n
GWT kullanımını öğrenmek zorunda değiliz aslında. Ama gelişmiş projeler yaratırken, Javascript kodlaması ile uğraşmak yerine, doğrudan, bildiğimiz Java kodlamasını yaparak AJAX yöntemini uygulamış oluyoruz. Yazdığımız Java uygulaması, GWT ile derleme sonucunda, javascipt ve xml dosyalarına dönüşüyor.
Java ile programlarken tek kısıt GWT nin henüz java1.4 üstü sürümleri desteklemiyor olması.
Ajax - 3
Javascript kodlama için en çok önerilen metin düzenleyicilerden biri Aptana. Eclipse eklentisi olarak kurdum, başarılı. Yanında prototype gibi yaygın kullanılan birçok javascript kütüphanesi ile birlikte geliyor. aptana ile ilgili birkaç bağlantı şöyle:
http://www.aptana.com/documentation.php
http://www.aptana.tv/Publish Post
http://www.aptana.com/docs/index.php/Main_Page#Aptana_Tutorials
Hazır kodlara ulaşabileceğiniz bir adres ise şöyle:
http://www.dhtmlgoodies.com
Bu adreste doğrudan alıp sayfalarınızda kullanabileceğiniz dhtml ve ajax bileşenleri bulabilirsiniz.
Ajax - 2
Ajax yöntemini PHP ile kullanabiliyorsunuz[1]. Ben ise java ile kullanmayı tercih ettim. Bunun için de araçlar buldum ama Emre'nin daha önce bahsettiği Google Web Toolkit(GWT) i seçtim. GWT ile ilgili iyi bir e-kitap buldum: GWT in Action EASY AJAX WITH THE GOOGLE WEB TOOLKIT
--alıntı
Java Programlama: Bana en mantıklı gelen bu yöntem ile mevcut java uygulama geliştirme ortamları kullanılabilmekte, javascript ve XML ile yapılan geliştirmedeki handikapları ortadan kaldırmaktadır. Ayrıca javascript dünyasında meydana gelebilecek değişikliklerin entegrasyonunda bir interface oluşmasını sağlamıştır.
Bu yöntemin iki farklı uygulamasını görmek mümkün:
- Bir tanesi Google'ın yaptığı gibi java ile geliştirilen AJAX uygulamasını kendi compiler'ı ile javascript ve HTML'e dönüştürülmesi. Bu yöntemin avantajı, uygulamanın server bağımsız olmasını sağlamasıdır, java ile geliştirdiğiniz uygulamayı çalıştırmak için bir java web server'ına ihtiyaç duymazsanız.
- Diğeri ise java ile geliştirilen uygulama bir java web server üzerinde çalıştırılması esasına dayanır. Server'e istekler geldikçe server tarafında javascript ve HTML sayfalar üretilir ve client'a gönderilir.
Kaynaklar:
[1] http://www.nothingrows.net/files/ajax-ve-php-ile-komple-proje-yonetimi-bolum-1/
[2] http://www.yesiltas.net/sezer/2006/10/ajax.html
Ajax
http://tr.wikipedia.org/wiki/AJAX_(programlama)
http://www.yesiltas.net/sezer/2006/10/ajax.html
http://people.sabanciuniv.edu/alper/calismalar_ajax.html
Ankara'dan neler öğrendim
-İnsanın, etrafını ve yaşadığı koşulları güzelleştirenin yine kendisi olduğunu öğrendim.
-Eski dostlukları devam ettirmenin ne kadar önemli olduğunu öğrendim.
-Çalışmak için değil yaşamak için şehir seçmenin daha doğru olduğunu öğrendim.
-Bir yerlerde, bir şeyler olmak istiyorsan, farklı yerlerde (sağlam) tanıdıkların olması gerektiğini öğrendim.
-Yaşıyor olmanın, şehit asteğmenlerden tek farkımız olduğunu öğrendim.
Bir Temel Hak Olarak İnternet
Şöyle düşünelim, BT sektöründe çalışıyorsunuz. Bütün gün bilgisayar başındasınız. İşiniz gereği zaten kullanmakta olduğunuz interneti aynı zamanda alışveriş, kişisel gelişim, günlük hayatı takip, bankacılık işlemleri için de kullanıyorsunuz. Ve birden işvereniniz güvenlik gerekçesiyle şirketin bütün internet çıkışını kapatıyor. Ya da sayılı bir kaç siteye erişim imkanı sağlıyor. N'aparsınız?
Evet yukardaki ikinci durum benim başıma geldi. Çalışmakta olduğum banka; şube çalışanları, BT personeli ve genel merkezde çalışanlar da dahil olmak üzere bütün çalışanlarının internetini resmen kırptı. Önce bir güvenlik açığı ve bunun araştırması sebebiyle internet tamamiyle bir hafta kesildi. Bir hafta sonrasında ise geri gelen şeye internet demek çok zor.
Kendisi hariç diğer bankaların internet şubelerine, Hürriyet ve Milliyet hariç diğer gazete ve haber sitelerine, fazlamesai'ye, ek$i sözlük'e, alışveriş sitelerine, blog sayfalarına yani neredeyse hemen her siteye erişimi engellemiş durumda. Yani, kendisini toplumun itici ve yenilikçi gücü olarak gören bankalar ve bunları yönetenler interneti hala bir lüks, olmasa da olur bir araç olarak görüyor.
Şimdi gelelim sorulara: Bir işveren, şirketin güvenlik politiklarına uyacağını işe girerken zaten taahüt etmiş çalışanının internetini hangi gerekçeyle ne kadar sansürleyebilir?
Bu taahütüne uymayan çalışanlar olursa bunun faturası sadece o kişiye mi bütün çalışanlara mı kesilmelidir?
Sektör farketmeksizin mesaisini bilgisayar başında geçiren bir çalışan için özgür bir internet erişimi, aynen sigorta veya sendika gibi temel bir hak mıdır?
Güncelleme: Çalışanlardan gelen yoğun şikayetler sonucu filtreleme biraz daha genişletildi neyseki. Diğer banka internet şubelerine, gazete ve haber sitelerine, IT sitelerine, google haricindeki arama motorlarına artık erişilebiliyor. Beklentim bu genişlemenin süreceği yönünde.
Neden herkes GNU/Linux kullanmalıdır?
Bu yazıda neden GNU/Linux kullanmanız gerektiğine dair 5 neden sunuluyor. Ben de bu nedenleri tek tek yazacağım.
- Eğlence: Windows XP uzun zamandır ortalıkta ve çok az değişti. Yeni Vista ise pahalı ve çoğu donanımda çalışamıyor. GNU/Linux bir kaç sene önce Windows XP'yi yakaladı ve çoktan geçti, Vista ile yarışmaya ise zaten çok önceden başlamıştı (3D Masaüstü, saydam pencereler, güvenlik, vb.). Temel olarak düşünürseniz yeni bir işletim sistemi ve uygulamalar öğrenmek başlı başına eğlencelidir.
- Özgürlük: Kullanıcı dostu bir dağıtım indirip bir CD'ye çekip kullanabilirsiniz. Bunu özgür bir şekilde yapabilirsiniz. Maddi olarak bakarsak bile bu size sadece boş bir CD parasına mal olacaktır. Hiç kimse sizi bu CD'yi kopyalayıp arkadaşlarınıza dağıttığınız veya çok sayıda bilgisayara kurduğunuz için durdurmayacaktır, hatta destekleyecektir.
- Topluluk: Geleneksel olarak işletim sistemleri ve yazılımlar kullanıcı rehberi ve yardım masası desteği ile gelir. GNU/Linux geniş bir kullanıcı ve geliştirici topluluğu ile gelir, böylece canınızı sıkan telefon görüşmeleri veya eksik belgeler olmaz. Elbette GNU/Linux ile birlikte uygulamaların kullanım rehberleri dğaıtılmakta ama takıldığınız bir şeyi internet üzerinde IRC veya forumlarda sorup öğrenme şansınız daha yüksek ;)
- Sorumluluk: Sahipli yazılım aldığınızda yazılımınız belli derecede (kaçak olarak kullanmıyorsanız :D ) garantili olarak gelir. Ama GNU/Linux dağıtımları açıkça herşeyden sorumlu olduğunuzu belirtirler. Yaptığınız her hata, her değişiklik, her deneme sizin sorumluluğunuzdadır. Bu nedenle bir şey yapmadan önce yedeklemek, vb. eylemleri gerçekleştirmeniz yine sizin sorumluluğunuzda olacaktır. Özetle GNU/Linux yetişkinler içindir.(Bkz: 5. neden)
- Güvenilirlik: GNU/Linux dağıtımları yeterince güvenilirdir. Siz deneme sürümü veya yeni yazılmış bir uygulama kullanmıyorsanız genellikle sisteminiz kolay kolay çökmez. Çökmesi için bayağı uğraşmanız gerekmektedir. Çökse bile bir parçası çöker, tüm sistem çökmez. (Eğer benim gibi unstable (=istikrarsız) sürüm manyağı değilseniz sisteminiz istikrarlı ve güvenilir bir şekilde hayatını sürdürecektir). Windows sistemlerle karşılaştırıldığı zaman virüs ve solucanlara karşı "doğuştan" bağışıklığı olduğunu söylemeye gerek yok sanırım :)
- Yeni kullanıcılar LiveCD (Yaşayan CD) kullanarak ısınma turları yapmalıdırlar.
- Yaşayan CD'leri kullanarak Windows sisteminizi bile kurtarabilirsiniz.
- Çoğu yaşayan CD dilediğinizde kullanmak üzere masaüstüne bir "Kur (Install)" simgesi koyar.
- Kurulum yapmadan önce mutlaka verilerinizi yedekleyin. Hatta belli aralıklarla bilgisayarınızdaki önemli verileri yedekleyin.
- Binlerce dağıtım arasından size en uygununu seçmeyi unutmayın. Başlangıç için Ubuntu, SUSE, Mandriva, Fedora veya Pardus (Ulusal dağıtım) deneyebilirsiniz.
- Özgür yazılım geliştiricileri açık biçimleri (.xml, .jpg, .png, .odt, .html, .pdf) tercih ederler. Siz de kapalı biçimlerden (.xls, .doc, .wav,) ziyade bunları tercih etmeye çalışın.
- GNU/Linux kullanırken sistem hakkında araştırma yaparak dizinleri ve anlamlarını (Türkçe kaynak) öğrenmeye çalışın. (/ ne demektir, /home/ nedir, vb.)
- Çok sayıda var olan özgür ve açık yazılımlar Windows karşılıklarına göre daha başarılı sonuçlar üretebilmektedir.
- Wine kullanmayı öğrenin. Oyunları oynamak istiyorsanız Cedega'dan yararlanabilirsiniz.
- GNU/Linux ağ için vardır. Yeni başlayanların bile rahat bir şekilde ağ bağlantısı kurmasını sağlar.
Yazıyı sonlandırırken son bir bağlantı vermek istiyorum. Bu bağlantıda GNU/Linux "podcast"leri bulabilirsiniz. İşinize yarayabileceğine inanıyorum. (Türkiye'de daha hızlı internet lazım)
Açık Kaynak Bağlantıları
Açık kaynak yasa danışmanlığı yapan bir avukatın sitesi: http://www.opensourcelaw.biz/
Software Freedom (Yazılım Özgürlüğü) Yasa Merkezi: http://www.softwarefreedom.org/
Özgür yazılım magazini: http://www.freesoftwaremagazine.com
Java 6 Yenilikleri
Öncelikle başlıklar halinde Java 6 ile birlikte gelen yeni özellikleri görelim(Parantez içerisindeki JSR ifadeleri "Java Specification Request" anlamına geliyor ve ilgili özelliğin tanımlandığı belirtim dosya numarasını gösteriyor):
- Pluggable Annotation Processing API (JSR 269)
- Common Annotations (JSR 250)
- Java API for XML Based Web Services - 2.0 (JSR 224)
- JAXB 2.0 (JSR 222)
- Web Services Metadata (JSR 181)
- Streaming API for XML (JSR 173)
- XML Digital Signature (JSR 105)
- Java Class File Specification Update (JSR 202)
- Java Compiler API (JSR 199)
- JDBC 4.0 (JSR 221)
- Scripting in the Java Platform (JSR 223)
Web Servisleri:Web servis istemcileri geliştirmek için kullanımı kolay bir uygulama geliştirme arayüzü sunulmaktadır. (Bkz)
Betik Kullanımı:Java kodunuz içerisinde betik kodu kullanıp ikisini bir arada kullanabiliyorsunuz (Bkz). Bir çok betik dilini ekleyerek genişletebiliyorsunuz (Bkz). Bu bayağı tartışılan bir konuydu. Çoğu insan çok kolay işleri bir betik dili ile yaparak Java'ya eklemeyi önemli olarak görüyor.
JDBC 4.0: Güncel JDBC uygulama geliştirme arayüzü bu sürümle birlikte dağıtılıyor (Bkz). Daha önce bu günlükte bahsettiğim Java DB birlikte dağıtılarak gömülü veritabanı kullanımı destekleniyor (Bkz).
Yeni Masaüstü Özellikleri: Swingworker, JTable sıralama, GroupLayout ve daha fazla yeni özellik bu sürümde eklenmiştir (Bkz).
İzleme ve Yönetim: Tüm izleme ve yönetim araçları (Bkz) gereksinim durumunda eklenecek hale getirildi. Ve yeni bir araç olan jhat eklendi.
Derleyici Erişimi: Program içerisinden javac derleyicisini kontrol edebiliyorsunuz.
Eklenebilir ("pluggable") açıklayıcı bilgiler ("annotation"):Kendi açıklayıcı bilgilerinizi tanımlayarak uygulamanız içerisinde kullanıp işleyebiliyorsunuz.
Masaüstü Konuşlandırma: Swing artık daha güzel görünüp, daha hızlı çalışıyor. Çalışma zamanı ve uygulama kurulumu yenilendi.
Güvenlik: PKI, Java GSS, Kerberos ve LDAP gibi servislerle bütünleştirme desteği geldi.
Başarım ve Kalite: İstemci ve sunucuda iki basamağa kadar başarım artışı sağlandı.
Yukarıdaki özellikler genel olarak Java 6 ile gelen yenilikleri içeriyor. Özelde ne yenilikler var, onları da kod örnekleriyle bir günlük yazısından faydalanarak Türkçeleştiriyorum.
I/O'daki değişiklikler
Şifreleri ekranda göstermeden okuma: Java SE 6 ile terminalden ekranda görünmeden (özellikle şifre okumak için çok iyi) girdi alabilme özelliği sağlanmış durumda. Bunu
java.io.Console
ile yapabiliyorsunuz: import java.io.Console;Belirtilmesi gereken bir kaç özellik:
...
char[] password = System.console().readPassword("password: ");
// sifreyi kullan
...
// sifreyi temizle
java.util.Arrays.fill(password, '\0');
System.console()
standart giriş veya standart çıkış terminal değilse null döndürür.readPassword()
bir dizi döndürür, böylece yukarıda gösterildiği şekilde null haline getirebilirsiniz.readPassword()
terminalin karakter kümesini kullanır. BuCharset.defaultCharset()
olmayabilir.
new File("A:\\tmp.txt").exists();Şeklinde bir kod çalıştığı zaman herhangi bir mesaj çıkmadan eğer A sürücüsünde disket yoksa exists() false döndürüyor.
Disk alanının bulunması: java.io.File içerisinde eklenen aşağıdaki metodlar disk alanı ile ilgili bilgiye erişmenizi sağlıyor:
Dikkat edilmesi gereken nokta bu metodların döndürdüğü değerler, yaklaşık değerlerdir. Arka plandaki işleri dikkate almamaktadırlar.
Konuyla ilgili bir kaç not:
- getUsableSpace() sadece Microsoft Windows için quota'ları hesaba alıyor.
- Her metod sonucu long olarak döndürüyor. Dönüş değeri erişim haklarıyla ilgili bir bilgi taşımıyor. Alana yazma izni olmayabilir.
- 0 dönmesi disk bölümünün olmadığı veya alan olmadığı anlamına gelir.
İşlemlerin başarılı olması durumunda metodlar true döndürür.
Microsoft Windows aygıtları artık dosya olarak görülmüyor: CON, NUL ve LPT gibi Windows aygıtları File.isFile() sorgusunda artık false döndürüyor.
File.toURL kullanımdan kaldırılıyor: Dosya isminden doğrudan URL oluşturmak saçma URL'lerin ortaya çıkmasına neden olabiliyor. Bu nedenle toURL metodu yerine
URL u = File.toURI(dosyaAdi).toURL()şeklinde bir kullanım yapılması gerekiyor.
Microsoft Windows için uzun yol ismi: Windows için artık 260 karakterlik (bu platformun sınırı) dosya yolu ismi kullanılabiliyor.
Diğer Dosya Sistemi Değişiklikleri:
- File.length() pagefile.sys gibi özel dosyalar için 0 döndürüyor. (Bkz)
- File.createNewFile() varolan bir dizin için yanlışlıkla IOException atarken artık false döndürüyor. (Bkz)
- File.listFiles() bağlanmış nfs dizinleri için artık doğru sonuçlar döndürüyor. (Bkz)
- File.deleteOnExit() yapılan dosyalar kapanma esnasında doğru çalışması için listeye atılarak çıkarken tek tek siliniyor. (Bkz)
- java.util.HashMap başarımı arttırıldı
- java.util.Arrays sınıfına dizinleri ve alt dizinleri kopyalamak için iki yeni metod eklendi. (copyOf, copyOfRange)
- Yeni kolleksiyon arabirimleri eklendi. (NavigableMap, NavigableSet, ConcurrentNavigableMap) İlişkili TreeMap, TreeSet gerçekleştirimleri yeni hale uyarlandı ve yeni eşzamanlı sınıflar (ConcurrentSkipListMap, ConcurrentSkipListSet) eklendi.
- İki bitişli kuyruklar için yeni arabirimler (Deque, BlockingDeque) eklendi. LinkedList Deque arabirimini gerçekleştirmek üzere güncellendi. Deque'nin verimli bir gerçekleştirimi olan ArrayDeque eklendi. Eşzamanlı gerçekleştirim olarak LinkedBlockingDeque gerçekleştirildi.
- Açılan jar dosyasındaki dosyaların zaman bilgisi olarak açılma zamanı yerine diğer araçlardaki gibi dosyaların zamanı kullanılmaya başlandı.
- Açık zip dosyalarının sayısındaki 2036 üst sınırı kaldırıldı. Artık platformun destekleyebildiği sayıda zip dosyası açık olabiliyor.
- Bir zip dosyasındaki girdi (dosya) sayısı sınırı dosyadaki girdi sayısı sahasının 2 byte olması yüzünden 64k oluyordu. Bu yüzden bu saha gözardı edilerek bu sınır kaldırıldı.
- Microsoft Windows için uzun isimlendirme zip dosyaları için de gerçekleştirildi.
Kaynaklar ve Ayrıntılı Bilgiler için Bağlantılar:
Java SE 6
What's New in Java SE 6.0
Java SE 6 Key Features
Java SE 6: Top Ten
Introduction to Java 6.0 New Features, Part I
Laboratuvar testleri
Soramıyorum artık, iş başa düştü. İnternette güzel bir site öğrendim neyseki. Laboratuvar testleri ile ilgili güzel bir site:
http://www.mc.metu.edu.tr
Emre'de sormamanın getirdiği sıkıntıları yaşıyordur sanırım. Birkaç ay daha böyle internetten idare edeceğiz ;)
TAK! TAK! TAK!
Evvel zamanin birinde, Emre ile buyuk parkta yuruyorduk. Onumuzde uc tane guzel kicli kiz vardi, kiclari bir saga bir sola sallaniyor, bizim de gozlerimiz olay merkezinden ayrilamiyordu. Veritabanindan cektigimiz verileri musterilere masraf olarak saplamaya alismis olan beyinlerimiz, bu sefer hayvansal gudulerimiz ve hormonlarimizin etkisiyle devreden cikmisti. Hedefe kilitlenmis bir patriot fuzesinden farksizdik. O an dunyanin merkezinde biz ve uc adet kic vardi.
Ve ne olduysa o an oldu... Gayptan "TAK! TAK! TAK!" diye sesler isitmeye basladik. Bir kor adam, bastonunu yere "TAK! TAK! TAK!" diye vuruyordu. O vurdukca gok inliyor, yer sanki yariliyordu... O "TAK! TAK! TAK!" diye vurdukca, biz yerin dibine giriyorduk, geberiyorduk, biz de kor oluyorduk, hic birsey goremiyorduk... Bir tiyatro sahnesinde, cevremizde seyirciler, adam bastonunu vuruyor; o vurdukca bizim kalbimiz on parcaya ayriliyordu... Bir yanimizda uzaklasan uc kic, bir yanimizda ilerleyen kor bir adam... Arada biz... Ve biz ki uc kici her acidan gorebilen ama kor adamdan daha kor iki adam!
Hayat kadini, kor adam, 3 kic ve biz... Hayat devam ediyor, birileri hic birsey goremiyor, birileri hicbir hayat yasayamiyor, birileri kicini ovunerek gosterip dolasiyor; birileri uc kicin, kor adamin ve hayat kadininin arasinda mutlu bir hayat yasadigini zannediyor.
Uc kicin, o hayat kadininin ve o kor adamin da mutlu bir hayat yasayabildigi bir dunyada dolasabilmesini diliyorum. Takip edenin kim oldugunun onemi yok...
Yine Aynı Konu
Az önce bir kaç yazı okudum. Her zamanki gibi (aslında her zamanki gibi değil benim dikkatimi her zaman çeken diyelim) konu geliştirici ("developer") ve programcı ("programmer") arasındaki fark. Yazar yaşadığı deneyimi bizimle paylaşarak nasıl Java Geliştiricisinden VB6 Programcısına dönüştüğünü masumiyet kayboldu başlığıyla veriyor. Yazıda geliştirici ve programcı sorumlulukları arasındaki farklar maddeler halinde belirtiliyor. Aslında yazıyı Türkçe'ye çevirmem gerekiyor ama şu an için üşeniyorum. Bu günlüğün tamamen Türkçe yapılması gerektiğini savunsam da arada sırada bu şekilde İngilizce bağlantılar verdiğim için hepinizden şimdiden özür diliyorum. Belki de kendimi iyi hissettiğim bir günde yazardan izin alarak Türkçeleştiririm (söz vermiyorum :) ).
O yazıdan bir başka yazıya geçiyoruz. Aynı yazıdaki bir bağlantıdan ulaştığımız bu yazı klasik soruyu soruyor. "Geliştirici misiniz, programcı mı?" Evet bu soru kritik bir soru. Bu yazımı okuyan Yazılım mühendisliği adayları varsa bu soruyu kendilerine sormalılar. Bu sorunun cevabına göre iş bulmalılar. Gözüme çarpan en önemli nokta "programcı" etiketlilerin "geliştirici" etiketlilere göre %50 daha az maaş aldığı noktası. Maaş benim düşünceme göre o kadar önemli değil. Önemli olan hangi şekilde mutlu olacağınız. Programcılık mı, geliştiricilik mi sizi mutlu edecek? Yazı İngilizce. Yukarıdaki dil ile ilgili sözlerim bu yazı için de geçerli :)
Peki ben niye kafayı bu konuya bu kadar takmışım? Hiç bilmiyorum. Her zaman kafamı kurcalar bu konu. Daha önemli konular düşünülebilecekken neden bu konu, ben de bilmiyorum. Evet, bugün hiç iyi değilim ben :)
Kapatmadan önce son olarak bir bağlantı vermek istiyorum. Kardeşim tarafından bana iletilen düşümce sitesi. Sanat yapıtları hakkında düşüncelerin paylaşıldığı bir site. Yapıtlar hakkında yorumları okuyarak fikir edinebilirsiniz.
- Daha önceki bu konuyla ilgili benzer yazıma ulaşmak için
- Bu yazı günlüğe eklenmeden önce Abiword'ta hazırlanmıştır (Başarılı yazılım, hafif ve kullanışlı).
- Ayrıca yazı yazılırken serinlemek için Armutlu Soza içilmiştir (Başarılı içecek).
- Sinan ilk yazısını yazdı Hoşgeldin diyorum
- Ayrıca Turgay'a kullandığı kötü Türkçe için kınama yolluyorum :D
Bir zam hikayesi...
Odaya girdigimizde, mavi gozlu ve tombul parmakli adam hafif bir saskinlikla iceri zincirleme olarak giren muhendis sayisini hesaplamaya calisiyordu. Bes adet sandalyeden hangisine oturmali kararini almaya calisan bes adam ise bes bir agizdan:
-‘Merhaba mavi gozlu ve tombul parmakli adam’, dediler.
Sandalyesini secmeye ve oturmaya baslayan bes adam, oturulacak sandalye sayisini birer birer azaltip diger arkadaslarinin secebilecegi sandalye kombinasyonunu azaltiyorlar, bir yandan da kiclarini sandalyede en rahat edecekleri sekilde konumlandirmaya calisiyorlardi. Kicti bu, bir bilgisayarcinin en fazla kullandigi organiydi ve sakaya gelemezdi. Mavi gozlu ve tombul parmakli adami ana fikri anlayabilecek duzeye getirmek icin siraladiklari anlamsiz cumlelerden sonra, hedef cumle hep bir agizdan yukseldi:
-‘Emegimizin hakkini istiyoruz!’
Muhendisler sessice mavi gozlu ve tombul parmakli adama bakiyorlar ve suratindaki garip hareketlerden anlamlar cikartmaya calisiyorlardi. Mavi gozlu ve tombul parmakli adam bir muhendise gore ‘Hasiktir oradan!’ der gibi bakiyordu. Bir baskasi adamin olayi anlayip anlayamadigini anlayamamisti. Bir digeri buradan sonra calisabilecegi is yerlerini birer kez daha aklindan gecirdi. Yuregi yuregine en sigmaz olani camdan disari bakiyor ve kendini 20. kattan asagi atacak gibi yaparak “bana genel muduru getirin!!” diye bagirmak istiyordu. Salakca bir dusunce olmasina ragmen o anin mantiksizligi icinde cok mantikli gelmisti.
-‘Cevabi ust yonetime iletip size alinan karari en kisa surede bildirecegim.’ dedi mavi gozlu ve tombul parmakli adam.
Bes adam ayni anda ayaga kalkti ve odadan bir trenin vagonlari gibi birer birer cikti. Hepsi uretimden gelen guclerini kullanmanin verdigi mutluluk ve klavyelerinden baska kaybedecek birseyleri olmadigi dusuncesi ile gozlerinin zincirlendigi bilgisayar ekranlarina tekrar bakmaya basladilar.
Hayat yine eski seyrine donmustu. Kodlar bir nehir gibi akiyor ve umutlari da alip goturuyordu. 20. kattaki deniz manzaralı iskence koltugunda bana kanserojen cihazlarla işkence yapılmaktaydı. Nefes alamiyordum, kubital tunnel sendromlu kollarim uyusuyordu ve emegimin karsiligini verecekler mi sorusu kafami kurcaliyordu. Bana yapilan insan haklarina aykiriydi ama tam olarak ne kadar ettigini bilmedigim emegimin karsiligini aldigimda susup daha bir zevkle calisacaktim. En azindan sahiplerim oyle dusunuyordu. Tam o anda herhangi bir SSK kuyrugunda herhangi bir yasli teyze yere dustu, son nefesini verirken etrafinda toplanan insanlar acima ve saskinlik duygulari ile ona baktilar. Bunu bilemeyecek kadar o teyzeye uzak bir dunyada yasayan ben, isten cikip kordonda denize karsi cayimi yudumladim. Kafamda emegimin karsiligini alip alamayacagim sorusu vardi, ve fena halde kurcalaniyordum…