Murphy Kanunları


  1. Bir şeyin ters gitme olasılığı varsa, ters gidecektir.
  2. Bir şeyin birkaç şekilde ters gitme olasılığı varsa, hep en kötü sonuç doğuracak şekilde ters gidecektir.
  3. Bir şeyin ters gidebileceği olasılıkları engelleseniz bile, anında yeni bir olasılık ortaya çıkacaktır.
  4. Bir şeyin olma olasılığı, istenme olasılığı ile ters orantılıdır.
  5. Er ya da geç olası en kötü koşullar zincirlemesi vuku bulacaktır.
  6. Ne zaman bir şeyden vazgeçseniz, vazgeçtiğiniz o şey size geri gelir.
  7. Olmuyorsa zorlayın, kırılırsa zaten değişmesi gerekirdi.
  8. Ne kadar beklersen bekle istendiği zaman gelecektir.
Kaptan Murphy nin 1948 yılında yaptığı bir deney sırasında cihazları yanlış bağlayan bi arkadaş sonucunda çıkarmış kanunlar. :D

31 Mayıs 2009

Posted In: Geyik ve Ben, Gezegen

İlginç biten bir Moblin denemesi

Internette gördüğüm güzel masaüstü yöneticisine hayran kalıp hemen moblin img dosyasın indirdim. Önce torrent ile indireyim birilerine faydam dokunsun dedim fakat verdikleri torrent linki var fakat .torrent dosyasını sunucuya koymamışlar. Web üzerinden indirdim. dosyayı intel.com a ait bir alt alan...

The post İlginç biten bir Moblin denemesi appeared first on Bahri Meriç CANLI Kişisel Web Sitesi.

28 Mayıs 2009

Posted In: Açık kaynak, asus, eee pc, EeePc, Genel, linux, Moblin, open source, pardus-linux

TTNet ve adi(l) kullanım

8 Mbps’e kadar ADSL paketlerinde, hattın desteklediği hız ile bağlantılı olarak 8 Mbps’e kadar hız sağlanmaktadır. Tüm “8 Mbps’e kadar ADSL paketleri” için aylık 15 GB adil kullanım uygulanacaktır. Aylık download miktarı 15 GB’ı aşması durumunda, ay sonuna kadar download hızı 512 Kbps olarak uygulanacaktır.

Yukarıdaki metin TTNet in sunacağı 8Mbit pkaetleri ile ilgili uyarıdır. Ben de bu paketi duyduğumda aylık az bir ödeme farkıyla bu hizmeti sunacaklar diye sevinmiş hatta geçmeyi de düşünmüştüm. Ancak her zamanki gibi bunun altından tüketiciye bir kazık çıktı. Neymiş evendim “Adil kullanım” mış. Evet ADİ hizmetlerine çok da güzel kılıf uydurmuşlar. Ne diyelim dünyanın en pahalı ve yavaş internet hizmetini almaya devam edeceğiz.


Yayınlandı dumur, gezegen, internet

25 Mayıs 2009

Posted In: dumur, Gezegen, internet

Linux.com yenilendi.

Linux Foundation topluluğu Linux.com’un yenilendiğini duyurdu. Linux.com uzun bir süredir güncellenmiyordu ve yenilik için çalışmalarda olduğu açıklanmıştı. Linux.com artık daha yetenekli ve yeniliklerle dolu bir portal. Güncel Linux haberleri, ürün incelemeleri, daha interaktif bir ortam ile Linuxseverlerin bir araya gelebileceği güzel bir site. Linux.com’a giriş yapıp paylaşıma başlayabilmeniz için LinuxFoundation.org ID ve şifrenizi kullanabiliyorsunuz. Aşağıda […]

14 Mayıs 2009

Posted In: Community, GURU, Linus Tovards, linux, Linux Foundation, linux.com, site

Chrome Turkce imla denetimi


Google Chrome tarayicisi icin Turkce imla denetimi konusunda Google muhendislerinden Mehmet Akin ve Hironori Bono ile kucuk bir calisma yapmistik (Issue 4782). Imla denetim mekanizmasi olarak Zemberek degil, Zemberek kullanilarak urettigimiz tr-spell projesinden ortaya cikan Hunspell formatindaki bir sozluk kullanildi. Turkce imla denetimi destegi henuz su anki kararli surumlerde yer almiyor. Ama beta kanalini aktiflestirdiginizde gelen guncellemeler ile (2.0.166 sonrasi surumler) Turkce imla denetimi destegi calisir hale geliyor.

12 Mayıs 2009

@Override annotation ve Java5 ile Java6 arasındaki farkı

Java5 ile gelen annatationlardan biri olan @Override bir metodun eskisini geçersiz kıldığını (override) ifade eder. Ancak Gentoo’da bir hata nedeniyle farkettiğim üzereanlamı Java5 ile Java6 arasında farklılık göstermektedir. Java6’dageçersiz kılınan ve gerçekleştirilen metodlar için @Override kullanılabilirken Java5’te sadece ilk kullanımı geçerlidir. Bu bir hata olarak Sun hata kayıt sistemine defalarca raporlanmıştır. (Benzer ve çift hata kayıtlarından anlaşıldığı üzere) Benim hataların yorumlarından anladığım amacın Java5 için de her iki durumu desteklemek olduğu ancak derleyicideki hata sebebiyle Java5 spesifikasyonunun revize edilerek sadece ilk kullanımın desteklendiği ve Java6’da her iki kullanımım geçerli sayıldığı yönünde. Bunun sebebi ise hatalı da olsa Java5 için uyumluluğu korumak.

Şimdi bu durumu bir örnek üzerinden inceleyelim.

interface Interface {
	public abstract void b();
}

abstract class Base {
	public abstract void a();
}

public class Sub extends Base implements Interface {

	@Override
	public void a() {
	}

	@Override
	public void b() {
	}

}

Bu kod Java6 ile gelen derleyici ile derlenmekte ancak Java5’teikinci @Override için şu hatayı vermektedir.

Sub.java:15: method does not override a method from its superclass
	@Override

İşin ilginç yanı Java6 derleyicisi ile -source 1.5 -target 1.5 parametreleri verildiğinde de hata vermemekte 1.5 ile olan uyumsuzluğu ancak ecj (Eclipse Java derleyicisi) yakalayabilmektedir. Bu sebepten ötürü arayüz metodları gerçekleştirilirken @Override kullanılmaması başka amaçla illa Java6 gerekmiyorsa kodun uyumluluğunu arttıracaktır.


Yayınlandı gentoo, gezegen, java

7 Mayıs 2009

Posted In: gentoo, Gezegen, java

Yeni Gezegenci

Henüz yeni bir gezegen üyesiyim, üye olalı daha birkaç gün oldu. Çanakkale Onsekiz Mart Üniveristesi Bilgisayar Müh. bölümü mezunuyum ve şu an, lisans döneminde hocam olan Necdet Yücel ile üniversitenin Bilgi İşlem Daire Başkanlığı'nda birlikte çalışıyoruz.

Günlüğümde daha çok Linux, özgür yazılım, OpenLaszlo, Red5, Ipv6 ve vidyokonferans gibi konulara yer veriyorum. Ancak gezegende bu girdilerden sadece Linux, özgür yazılım ve gündelik konularla ilgili olanlar yer alacak. Elimden geldiğince blog'a birşeyler yazmayı aksatmamaya çalışacağım. Bir sonraki yazımda görüşmek üzere ;)

5 Mayıs 2009

Posted In: Gezegen

Wireshark&BitTorrent

Evet arkadaşlar bugünkü konumuz wireshark ve torrent(Torrent trafiği desem daha doğru:).Öncelikle size torrentin çalışma prensibini anlattıktan sonra elimden geldiğince torrent trafiğini nasıl gözlemleyebileceğinizi anlatacağım.

BitTorrent

BitTorrent hepimizin bildiği gibi dosya transferleri için düzenlenmiş olan protkollerden biridir. Doğasında peer to peer bulunan bu protokol kullanıcıları direk olarak birbirlerine bağlar ancak arada tracker diye adlandırılan aksiyonları koordine eden bir server vardır.Bu trackerın sadece bağlantıları kontrol etme yetkisi bulunur gönderilen ya da alınan dosyaların içeriği görmesine izin verilmez.

Wireshark Analizi:)

Bir bakalım burada şu anlık neler yapabiliriz. Şimdilik sadece size anlatabileceğim torrent trafiğini görebilmek ve torrentin hangi adres ve program kullanılarak indirildiğini bulabilmektir.
Öncelikle wireshark programımızı açalım ve paket yakalamaya başlayalım.Daha sonra indirmek istediğimiz torrenti indirmeye başlayalım.Bir anda ekranınızda bir sürü paket dolmaya başlayacaktır.Filter kısmına gidip bu paketleri nispetende olsa biraz indirebiliriz. Ayrıca bize lazım olan paketler torrent olanlar ne de olsa.Bu yüzden filter kısmına bittorrent yazıp apply düğmesine basalım.Artık sadece torrent trafiğini izliyoruz. Karşımıza hemen 4-5 satır boyunca handshaking işlemleri çıkıyor.Bilgisayar-Server arasındaki ve data nın alınacağı kişi arasındaki bağlantı sağlanıyor. Buradan sonra requestler ve pieces lar başlıyor.Bunlarda zaten data yı indirmeye başladığımızın alameti:).
Eh biraz zaman geçtikten sonra dosyamız iniyor.Paket kalabalığını kaldırmak için stop düğmesine basıyoruz.Filter kısmına tcp yazıyoruz ve burada biraz arama zahmetine katlanarak info kısmında sso-service ile başlayan satırı buluyoruz. Şimdi bu satır üzerinde sağ tuş tıklayıp follow tcp stream yolunu izledikten sonra artık indirilen adres ve program da karşınızda.Şimdilik bu kadar bende bu protokol hakkında daha fazla şey öğrendikçe sizlere aktarmaya devam edeceğim.

BitTorrent Filter's
Field name
Type
Description
Versions
bittorrent.azureus_msg
None
Azureus Message
0.99.0 to 1.0.7
bittorrent.bdict
None
Dictionary
0.99.0 to 1.0.7
bittorrent.bdict.entry
None
Entry
0.99.0 to 1.0.7
bittorrent.bint
Signed 32-bit integer
Integer
0.99.0 to 1.0.7
bittorrent.blist
None
List
0.99.0 to 1.0.7
bittorrent.bstr
String
String
0.99.0 to 1.0.7
bittorrent.bstr.length
Unsigned 32-bit integer
String Length
0.99.0 to 1.0.7
bittorrent.info_hash
Byte array
SHA1 Hash of info dictionary
0.99.0 to 1.0.7
bittorrent.jpc.addr
String
Cache Address
0.99.0 to 1.0.7
bittorrent.jpc.addr.length
Unsigned 32-bit integer
Cache Address Length
0.99.0 to 1.0.7
bittorrent.jpc.port
Unsigned 32-bit integer
Port
0.99.0 to 1.0.7
bittorrent.jpc.session
Unsigned 32-bit integer
Session ID
0.99.0 to 1.0.7
bittorrent.length
Unsigned 32-bit integer
Field Length
0.99.0 to 1.0.7
bittorrent.msg
None
Message
0.99.0 to 1.0.7
bittorrent.msg.aztype
String
Message Type
0.99.0 to 1.0.7
bittorrent.msg.bitfield
Byte array
Bitfield data
0.99.0 to 1.0.7
bittorrent.msg.length
Unsigned 32-bit integer
Message Length
0.99.0 to 1.0.7
bittorrent.msg.prio
Unsigned 8-bit integer
Message Priority
0.99.0 to 1.0.7
bittorrent.msg.type
Unsigned 8-bit integer
Message Type
0.99.0 to 1.0.7
bittorrent.msg.typelen
Unsigned 32-bit integer
Message Type Length
0.99.0 to 1.0.7
bittorrent.peer_id
Byte array
Peer ID
0.99.0 to 1.0.7
bittorrent.piece.begin
Unsigned 32-bit integer
Begin offset of piece
0.99.0 to 1.0.7
bittorrent.piece.data
Byte array
Data in a piece
0.99.0 to 1.0.7
bittorrent.piece.index
Unsigned 32-bit integer
Piece index
0.99.0 to 1.0.7
bittorrent.piece.length
Unsigned 32-bit integer
Piece Length
0.99.0 to 1.0.7
bittorrent.protocol.name
String
Protocol Name
0.99.0 to 1.0.7
bittorrent.protocol.name.length
Unsigned 8-bit integer
Protocol Name Length
0.99.0 to 1.0.7
bittorrent.reserved
Byte array
Reserved Extension Bytes
0.99.0 to 1.0.7

3 Mayıs 2009

Posted In: Gezegen, linux, Wireshark

Jcaki


Evde arta kalan zamanlarimin bir kisminda kucuk bir yazilim kutuphanesi gelistiriyorum. Son zamanlarda Mehmet de biraz kodda duzeltmeler yapiyor. Kutuphane aslinda ufak ve basit bir sey. Buna ragmen hemen her projede benim icin vaz gecilmez bir hal aldi diyebilirim. Java dilinde yazilim gelistirirken bazi konularda isleri yapmak icin uzunca kod parcalari yazmaniz gerekebilir. Mesela bir metin dosyasinin satirlarini okumak, ya da elinizdeki bir String'i bir dosyaya kaydetmek, muhtelif dosya ve String islemleri gibi. Jcaki projesi ile bu islemler cok daha kolay bir hale geliyor (caki -> çakı). Ornegin bir metin dosyasini okumak icin SimpleTextReader sinifini kullanip sunu yapmaniz yeterli:
List<String> list = new SimpleTextReader("foo.txt").asStringList();
Eger dosya cok buyuk ise satir satir islem yapmak icin IterableReader mekanizmasi kullanilabilir mesela;
for(String s: new SimpleTextReader("foo.txt").getIterableReader())
out.println(s);
Daha karmasik bir ornek olarak, bir metin dosyasindan sadece INFO ve DEBUG kelimelerini iceren satirlari bas ve sondaki bosluklari kirparak okumak isterseniz, su sekilde bir kod ile uretilen SimpleTextReader isinizi gorecektir.
SimpleFileReader
.Builder("foo.text")
.encoding("utf-8")
.trim()
.ignoreWhiteSpaceLines()
.allowMatchingRegexp("INFO|WARNING")
.build();
Benzeri sekilde yazma siniflari da mevcut.
new SimpleTextWriter("foo.txt").writeLines("Hello","World");
dikkat edilirse bu durumda Writer nesnesini kapatmaniza gerek kalmiyor, cunku sistem verileri yazar yazmaz acilan OutputStream'i kapatiyor. ama istenirse acik kalmasi da saglanabilir. Ornegin:
SimpleTextWriter.keepOpenWriter("foo.txt","utf-8").writeLines("Hello","World");
Pek cok String islemleri de Strings sinifi uzerinden yapilabiliyor. Wiki sayfasindan cesitli kullanim sekillerini gorebilir, javadoc ile siniflari ve metotlari inceleyebilir, 1.0 Alpha surumunu indirebilirsiniz.
Aslinda buna benzeyen yardimci kutuphaneler (Apache commons gibi) mevcut, ama proje gelistirirken karsilastigim ihtiyaclar biraz farkli oldugundan ve daha modern Java 5 ozelliklerini kullanmak istedigimden bu sekilde bir yola girdim. Kod ve API henuz duragan ve olgun degil, o nedenle hata olma olasiligi her zaman var. Ama ben projelerde su ana kadar sorunsuz sekilde kullandim.

2 Mayıs 2009

Twitter Auto Publish Powered By : XYZScripts.com