İlk defa şans eseri gördüğüm bir yazıyla BlueJ adı altında bir Java eğitim IDE'si ile karşılaştım. Bir göz atmakta fayda var.
Okuduğum yazı bir gerçekten bahsediyordu. Patent denen meretin ne şekilde kullanılabileceğine güzel bir örnek.
Serbest dağıtılan bir yazılım üretiyorsunuz, bu yazılımda kullandığınız ve ilk olarak sizin bulduğunuz bazı yapılar, özellikler bir süre sonra ticari bir yazılımda ortaya çıkıyor. Ve bunu kendileri ilk defa yapıyormuş gibi gösteriyor (Her türlü ticari üründe var bu, sadece yazılımlarda değil). Siz bu ticari ürünün sizin fikirlerinizi almasına aldırmıyorsunuz, aldırdığınız tek şey bunu kendi buldukları bir şey olarak anlatmaları. Bu zorunuza gidiyor. Ah tabi o malum firma için bu da yetmiyor. Kardeşim bunu biz bulduk, patentini alıyoruz. Sen bunu kullanmaya devam edersen patent haklarımızı ödemek zorunda kalırsın diyor sana. Bunları kafamdan sıkmıyorum, Bu da lanet olası bir micro$oft davranışı. Bütün etik dışı, ahlaksız örneklerde olduğu gibi. Hala bana bazıları neden microsoft'u sevmiyorsun diye soruyor ya, şaşırıyorum :S. Şimdi nerede şu patenti savunan arkadaşlarımız? Patent haklarımızı koruyacaktı değil mi, ama nedense her zaman olduğu gibi zenginin haklarını koruyacak gibi gözüküyor. Bu yüzden, sırf bu yüzden serbest yazılıma devam.
BadVista.org
YENİ DUYURU: Microsoft patent başvurusunu çekecekmiş. Bu kadar tepki olmasaydı Microsoft doğruyu yapamayacaktı. (Kaynak)
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.
GNU/Linux ve Bluetooth
Dizüstündeki ubuntu dağıtımında bir arkadaşımın ricasıyla bluetooth'u denemeye karar verdim. Hemen firefox'u açtım. Bir çok siteyi aratmaya başladım. Ancak daha kolay bir şeyi ilk olarak denemeye karar verdim.
Synaptic paket yöneticisini kullanarak bazı paketleri kurulması yetiyormuş. Bu şekilde rahatça Tecom USB dongle'ı bir başka bluetooth cihazıyla taratıp bulabildim.
Aşağıda uygulamanız gereken aşamalar var:
Bağlantılar: Aslı Almanca olan bir bluetooth kurma sayfasının çevirisi (Yazıyı yazdıktan sonra inceledim bu sayfayı bayağı aydınlatıcı bilgi içeriyormuş)
Synaptic paket yöneticisini kullanarak bazı paketleri kurulması yetiyormuş. Bu şekilde rahatça Tecom USB dongle'ı bir başka bluetooth cihazıyla taratıp bulabildim.
Aşağıda uygulamanız gereken aşamalar var:
- İlk olarak ilgili paketleri kuralım (Dilerseniz paket yöneticisinden paketleri seçerek te kurabilirsiniz.): sudo apt-get install bluez-gnome bluez-pin bluez-utils
- Daha sonra Hizmetler (Services)'i System araçları altından çalıştırıp Bluetooth servisinin çalışıp çalışmadığını kontrol ediyoruz. Servisi açık değilse açıyoruz.
- Dongle'ı takıyoruz, ve dongle'ın kırmızı ışığı yanmıyor.
- Elimize bluetooth destekli telefonu alıp Cihazları taratınca Bluetooth Preferences appletinde tanımladığımız isimle dizüstünü buluyoruz.
- Ama bağlanamıyoruz. Çünkü servis desteklenmiyor :)
Bağlantılar: Aslı Almanca olan bir bluetooth kurma sayfasının çevirisi (Yazıyı yazdıktan sonra inceledim bu sayfayı bayağı aydınlatıcı bilgi içeriyormuş)
GNU/Linux'te Flash bellek (MP3 çalar) biçimlendirme
GNU/Linux dağıtımları kullanırken yaşanan sıkıntılardan biri microsoft ürünlerinde mesela sağ tuşla açılan menüdeki gibi "Biçimlendir" şeklinde kolaylıklar olmamasıdır. Gerçi bu gnome kullanmam ile ilgili de olabilir. KDE kullanan kişiler KDE'de bunlar var diyecektir. Ama ne yapayım ben gnome'u seviyorum.
Gelelim probleme. Elimdeki flash bellek olarak kullandığım bozuk mp3 çalarım içermemesi gereken bazı dosyaları içermeye başlamıştı. Bazı dosyaları silemez olmuştum. Tahmin ettiğiniz gibi biçimlendirme vakti gelmiş aletin. Ben de hemen bunun kısa bir yolunu aradım bulamadım :) İnternette ufak bir araştırma ile aşağıdaki resimdeki aşamaları izleyerek görebilirsiniz (cihazı takın, otomatik tanıma olmuyorsa bağlamanız gerekir. sudo mount -t vfat /dev/sda /media/disk komutu ile bağlayabilirsiniz. /media/disk klasörü olmalı ve /dev/sda yerine uygun bağlantı noktasını bulmalısınız):
Çıkarıp tekrar taktığınızda veya tekrar bağladığınızda (mount) belleğiniz bomboş olarak işinizi görecektir. (Ben denedim oldu :D )
ÖNEMLİ NOT: Bu komutları uyguladığınız zaman flash belleğin içerisindeki verileri kaybedeceğinizi unutmayın. Yaşanacak bir yanlış veri kaybının tamamen sizin hatanız olacağını unutmayın ;) Böyle bir veri kaybı yaşamak istemiyorsanız öncelikle verilerinizi yedekleyin.
Kaynak : How do i format a USB flash drive?
Gelelim probleme. Elimdeki flash bellek olarak kullandığım bozuk mp3 çalarım içermemesi gereken bazı dosyaları içermeye başlamıştı. Bazı dosyaları silemez olmuştum. Tahmin ettiğiniz gibi biçimlendirme vakti gelmiş aletin. Ben de hemen bunun kısa bir yolunu aradım bulamadım :) İnternette ufak bir araştırma ile aşağıdaki resimdeki aşamaları izleyerek görebilirsiniz (cihazı takın, otomatik tanıma olmuyorsa bağlamanız gerekir. sudo mount -t vfat /dev/sda /media/disk komutu ile bağlayabilirsiniz. /media/disk klasörü olmalı ve /dev/sda yerine uygun bağlantı noktasını bulmalısınız):
Çıkarıp tekrar taktığınızda veya tekrar bağladığınızda (mount) belleğiniz bomboş olarak işinizi görecektir. (Ben denedim oldu :D )ÖNEMLİ NOT: Bu komutları uyguladığınız zaman flash belleğin içerisindeki verileri kaybedeceğinizi unutmayın. Yaşanacak bir yanlış veri kaybının tamamen sizin hatanız olacağını unutmayın ;) Böyle bir veri kaybı yaşamak istemiyorsanız öncelikle verilerinizi yedekleyin.
Kaynak : How do i format a USB flash drive?
Java notları
Java notları
------------
Java Mustang (j2se 6.0) çıktı ama Tiger(j2se 5.0) ile gelen yenilikler kadar kullanışlı özellikler getiremedi. Java 5.0 ile gelen yeniliklere göz atarken daha önce dikkat etmediğim birkaç eski bilgiyi de not ettim. Şöyleki:
--------------
float değişkeni: "float" veri tipi, tek-duyarlı, 32 bit, IEEE 754 kayan noktalıdır. "Byte" ve "short" veri tiplerinde önerildiği gibi "float" veri tipini("double yerine"), geniş veri dizilerine ihtiyaç duyulan yerlerde, bellekten kazanmak için kullanın.
Float veri tipi, para kuru gibi duyarlılık gerektiren değerler için kesinlikle kullanılmamalıdır. Bu değerlerde, java platformunun sağladığı java.math.BigDecimal sınıfını kullanmak daha uygundur.
--------------
double değişken: "double" veri tipi, çift-duyarlı, 64 bit, IEEE 754 kayan noktalıdır. Bu veri tipi de para kuru gibi duyarlılık gerektiren değerler için kesinlikle kullanılmamalıdır.
--------------
özel karakterler: \b (backspace), \t (tab), \n (line feed), \f (form feed), \r (carriage return), \" (double quote), \' (single quote), and \\ (backslash).
--------------
mantıksal ve bit tabanlı karşılaştırmalar:
Operators Precedence
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR |
logical AND &&
logical OR ||
--------------
Parametreler, bir metodun tanımındaki değişkenler listesidir. Argumanlar ise, metod çağrıldığında geçişi yapılan değerlerdir.
--------------
İçiçe sınıfların kullanım amacı:
-Tek bir yerde kullanılan sınıfları mantıksal olarak gruplama yöntemidir.
-Kapsülleme/sarma (encapsulation) nın artmasını sağlar.
-Okunabilirlik ve bakımı kolaylaştırır.
--------------
Açıklayıcı not(Annotation): Aslında programın bir parçası olmayan, program hakkında veri sağlarlar. Açıkladıkları kodun işleyişi üzerinde doğrudan etkileri yoktur.
Birkaç farklı kullanım alanları vardır:
* Derleyici için bilgi - Açıklayıcı notlar, derleyici tarafından hataları bulmak ve uyarıları önlemek için kullanılabilir.
* Derleme ve kurulum zamanı işlemi - Yazılım araçları, kod, XML dosyası v.b. oluşturmak için açıklayıcı notları işleyebilirler.
* Çalışma zamanı işlemi - Bazı açıklamalar çalışma zamanında sınanabilirler.
Açıklama notları program içerisinde; sınıf, değişken, metod ve diğer programlama elemanlarına uygulanabilirler.
Açıklama notları önce yazılır; adlandırılmış veya adlandırılmamış değerler içerebilir:
@Author(
name = "Benjamin Franklin",
date = "3/27/2003"
)
class MyClass() { }
veya
@SuppressWarnings(value = "unchecked")
void myMethod() { }
Dökümantasyon
Bir yazılım takımının geliştirdiği her sınıfın başına, yorum satırları şeklinde önemli bilgileri eklediğini düşünün:
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
}
Aynı üstbilgiyi açıklayıcı not olarak ekleyebilmek için öncelikle açıklamanın türünün belirtilmesi gerekir:
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
String[] reviewers(); // Note use of array
}
@ = "AT" Açıklama türüne işaret eder.
Açıklama türü tanımlandıktan sonra, değerleri de dolu olarak, o türün açıklamalarını şu şekilde kullanabilirsiniz:
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe"
reviewers = {"Alice", "Bob", "Cindy"} // Note array notation
)
public class Generation3List extends Generation2List {
// class code goes here
}
Not: @ClassPreamble içindeki bilginin Javadoc ile oluşturulan dökümantasyon içerinde de olması için, @ClassPreamble tanımının @Documented açıklama notu ile belirtilmesi gerekir:
import java.lang.annotation.*; // import this to use @Documented
@Documented
@interface ClassPreamble {
// Annotation element definitions
}
Kaynak: The Java Tutorial
------------
Java Mustang (j2se 6.0) çıktı ama Tiger(j2se 5.0) ile gelen yenilikler kadar kullanışlı özellikler getiremedi. Java 5.0 ile gelen yeniliklere göz atarken daha önce dikkat etmediğim birkaç eski bilgiyi de not ettim. Şöyleki:
--------------
float değişkeni: "float" veri tipi, tek-duyarlı, 32 bit, IEEE 754 kayan noktalıdır. "Byte" ve "short" veri tiplerinde önerildiği gibi "float" veri tipini("double yerine"), geniş veri dizilerine ihtiyaç duyulan yerlerde, bellekten kazanmak için kullanın.
Float veri tipi, para kuru gibi duyarlılık gerektiren değerler için kesinlikle kullanılmamalıdır. Bu değerlerde, java platformunun sağladığı java.math.BigDecimal sınıfını kullanmak daha uygundur.
--------------
double değişken: "double" veri tipi, çift-duyarlı, 64 bit, IEEE 754 kayan noktalıdır. Bu veri tipi de para kuru gibi duyarlılık gerektiren değerler için kesinlikle kullanılmamalıdır.
--------------
özel karakterler: \b (backspace), \t (tab), \n (line feed), \f (form feed), \r (carriage return), \" (double quote), \' (single quote), and \\ (backslash).
--------------
mantıksal ve bit tabanlı karşılaştırmalar:
Operators Precedence
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR |
logical AND &&
logical OR ||
--------------
Parametreler, bir metodun tanımındaki değişkenler listesidir. Argumanlar ise, metod çağrıldığında geçişi yapılan değerlerdir.
--------------
İçiçe sınıfların kullanım amacı:
-Tek bir yerde kullanılan sınıfları mantıksal olarak gruplama yöntemidir.
-Kapsülleme/sarma (encapsulation) nın artmasını sağlar.
-Okunabilirlik ve bakımı kolaylaştırır.
--------------
Açıklayıcı not(Annotation): Aslında programın bir parçası olmayan, program hakkında veri sağlarlar. Açıkladıkları kodun işleyişi üzerinde doğrudan etkileri yoktur.
Birkaç farklı kullanım alanları vardır:
* Derleyici için bilgi - Açıklayıcı notlar, derleyici tarafından hataları bulmak ve uyarıları önlemek için kullanılabilir.
* Derleme ve kurulum zamanı işlemi - Yazılım araçları, kod, XML dosyası v.b. oluşturmak için açıklayıcı notları işleyebilirler.
* Çalışma zamanı işlemi - Bazı açıklamalar çalışma zamanında sınanabilirler.
Açıklama notları program içerisinde; sınıf, değişken, metod ve diğer programlama elemanlarına uygulanabilirler.
Açıklama notları önce yazılır; adlandırılmış veya adlandırılmamış değerler içerebilir:
@Author(
name = "Benjamin Franklin",
date = "3/27/2003"
)
class MyClass() { }
veya
@SuppressWarnings(value = "unchecked")
void myMethod() { }
Dökümantasyon
Bir yazılım takımının geliştirdiği her sınıfın başına, yorum satırları şeklinde önemli bilgileri eklediğini düşünün:
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
}
Aynı üstbilgiyi açıklayıcı not olarak ekleyebilmek için öncelikle açıklamanın türünün belirtilmesi gerekir:
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
String[] reviewers(); // Note use of array
}
@ = "AT" Açıklama türüne işaret eder.
Açıklama türü tanımlandıktan sonra, değerleri de dolu olarak, o türün açıklamalarını şu şekilde kullanabilirsiniz:
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe"
reviewers = {"Alice", "Bob", "Cindy"} // Note array notation
)
public class Generation3List extends Generation2List {
// class code goes here
}
Not: @ClassPreamble içindeki bilginin Javadoc ile oluşturulan dökümantasyon içerinde de olması için, @ClassPreamble tanımının @Documented açıklama notu ile belirtilmesi gerekir:
import java.lang.annotation.*; // import this to use @Documented
@Documented
@interface ClassPreamble {
// Annotation element definitions
}
Kaynak: The Java Tutorial
bisiklet = uygarlık = yaşama saygı
Bisikletle ilgili haberler okudum. Ben bisikletimi kullanmayalı aylar oldu; insanlar ise bu buluştan en iyi şekilde yararlanmaya devam ediyorlar.
Radikal gazatesindeki haber şöyle diyor:
"16 milyon nüfuslu Hollanda'da insandan çok bisiklet var. 18 milyon bisiklet bulunan ülkede, bir Hollandalı iki tekerlek üstünde yılda 917 km.'den fazla yol yapıyor. Amsterdam merkez istasyonunda çok katlı bisiklet otoparkı, her köşede bisiklet parkı alanı var. Birçok politikacı ve kraliyet üyeleri bile bisiklete biniyor."
Ntv'nin sitesinde ise, 1800'lü yılların başında icat edilen bisikletin halen gelişmekte olduğunu gösterir bir haber ile karşılaştım.
"Ayakla sürülen bisiklete NASA talip
ABD’de Curtis DeForest adlı bir mucit tarafından icat edilen, normal bisikletten daha hızlı ve güvenli olan tuhaf görünümlü araç NASA’nın ilgisini çekti.
Buluşuna HyperBike adını veren ve normal bisikletin kusurlarını ortadan kaldırmak için bu aracı tasarladığını söyleyen DeForest, HyperBike’ı kullanmayı kuru mekanda yüzmeye benzetiyor.
Koltuğu bulunmayan, sürücünün ayakta durduğu araç, kolaylıkla saatte 80 km hıza ulaşabiliyor. Yaklaşık 2,5 metre çapındaki 2 tekerleğin birbirinden alttan 160 cm, üstten ise 65 cm uzaklıkta durması araca garip bir görünüm veriyor. Araçta kollar yardımıyla ilave güç de yaratılabiliyor."
Uygarlığın ve yaşama saygının göstergelerinden biri olarak kabul ettiğim bisiklet ve kullanımının yaygınlaşması ile ilgili bu tür gelişmeleri ülkemizde de görmek isterdim.
Radikal gazatesindeki haber şöyle diyor:
"16 milyon nüfuslu Hollanda'da insandan çok bisiklet var. 18 milyon bisiklet bulunan ülkede, bir Hollandalı iki tekerlek üstünde yılda 917 km.'den fazla yol yapıyor. Amsterdam merkez istasyonunda çok katlı bisiklet otoparkı, her köşede bisiklet parkı alanı var. Birçok politikacı ve kraliyet üyeleri bile bisiklete biniyor."
Ntv'nin sitesinde ise, 1800'lü yılların başında icat edilen bisikletin halen gelişmekte olduğunu gösterir bir haber ile karşılaştım.
"Ayakla sürülen bisiklete NASA talip
ABD’de Curtis DeForest adlı bir mucit tarafından icat edilen, normal bisikletten daha hızlı ve güvenli olan tuhaf görünümlü araç NASA’nın ilgisini çekti.
Buluşuna HyperBike adını veren ve normal bisikletin kusurlarını ortadan kaldırmak için bu aracı tasarladığını söyleyen DeForest, HyperBike’ı kullanmayı kuru mekanda yüzmeye benzetiyor.
Koltuğu bulunmayan, sürücünün ayakta durduğu araç, kolaylıkla saatte 80 km hıza ulaşabiliyor. Yaklaşık 2,5 metre çapındaki 2 tekerleğin birbirinden alttan 160 cm, üstten ise 65 cm uzaklıkta durması araca garip bir görünüm veriyor. Araçta kollar yardımıyla ilave güç de yaratılabiliyor."
Uygarlığın ve yaşama saygının göstergelerinden biri olarak kabul ettiğim bisiklet ve kullanımının yaygınlaşması ile ilgili bu tür gelişmeleri ülkemizde de görmek isterdim.
Kaydol:
Kayıtlar (Atom)