28 Aralık 2010 Salı

Progressive Overflow (Linear Probing)

Herkese tekrar merhaba,

Çarpışmayı engelleyen(collusion resolution) yöntemlerimize devam ediyoruz. En son EISCH algoritmasından bahsetmiştik. Tıpkı LISCH-LICH gibi, EISCH'in de EICH adında farklı bir versiyonu var. Ama benzer mantık olduğu için onu anlatmadan geçtim. BLISCH gibi konulara değineceğim bir ara da. Şimdiye kadar hep bağlantı yoluyla çarpışma engelleme algoritmalarından bahsettik(with links). Şu anda ise bağlantı olmadan, without links, çarpışmayı engelleme algoritmasına geçiyoruz.

Link'ler ile olan yöntemde, hatırlarsınız, bir anahtar değerini tutan alanımız, bir de bağlantıyı koparmamak için Link değerini tutan alanımız vardı. Without Links kategorisinde, adından da anlaşılacağı üzere, Link değerini tutan bir alanımız yok. Bu anlamda, Link ile çalışan algoritmalara göre daha avantajlı.

Progressive Overflow, bağlantısız (without links) çalışan algoritmalar içerisinde en basit olanı. Mantık şu: herhangi bir anda collision(çarpışma) olursa, takip eden ilk boş/müsait yere yerleştirilir.(Tablonun sonuna kadar gittiniz ve boş yer bulamadıysanız, tablonun en başından itibaren yerleştirmeye çalışınız). Basit olduğu için tercih edilebilse de, başarısız aramalarda performansı oldukça düşüktür.

Her zaman olduğu gibi Alan Tharp amcamızın kitabındaki soruyu çözelim.

SORU: 27-18-29-28-39-13-16-42-17       mod 11


ÇÖZÜM: Her zaman olduğu gibi hash'ini alarak home address'lerini buluruz.
hash(27)=5 mod11
Hash bulmayı unutanlar için bir kez daha hatırlatayım. 27 değeri verilmiş bize. mod da 11 imiş. 27'yi 11'e bölüyoruz. Kalan değer bizim hash değerimiz veya bir başka deyişle home address'imiz oluyor. 27 için home address'i 5 çıktı. O halde 27 değerini tablomuzun 5 numaralı gözüne yazıyoruz.

SıraAnahtar Değeri
0
1
2
3
4
527
6
7
8
9
10


Şimdi de 18'i yerleştirelim.
hash(18)=7 mod 11
7 numaralı göz de boş olduğundan sorunsuzca yerleştiririz.

SıraAnahtar Değeri
0
1
2
3
4
527
6
718
8
9
10

29'a geldi sıra. Şimdi bu yöntemi anlamaya başlayacaksınız.
hash(29)=7 mod 11
7 numaralı göz dolu, az önce oraya 18 yerleşmişti. Link kullandığımız önceki algoritmalarda R değeri tutuyor, bu değerin gösterdiği gözlere sayımızı yerleştiriyorduk. Progressive Overflow'da ise bir sonraki göze yazıyoruz, gayet basit. :) 7 numaralı göz dolu olduğundan, bir sonraki göze bakıyoruz. 8 numaralı göz dolu mu boş mu diye kontrol ediyoruz. Boş olduğunu görüyoruz(yukarıdaki tabloya bakın). Bu yüzden kaydımızı 8 numaralı göze yazıyoruz. Eğer 8 numaralı göz de dolu olsaydı, bu sefer 9 numaralı göze bakardık. Tablonun son hali şöyledir:

SıraAnahtar Değeri
0
1
2
3
4
527
6
718
829
9
10

28'i yerleştirelim.
hash(28)=6 mod 11
6 numaralı göz boş olduğundan, 28'i sorunsuzca yerleştiriyoruz.

SıraAnahtar Değeri
0
1
2
3
4
527
628
718
829
9
10

39'a geldi sıra.
hash(39)=6 mod11
6 numaralı göz dolu. Oraya az önce 28'i yerleştirmiştik. O yüzden bir sonraki göze bakıyoruz:7 numaralı göz. Ancak 7 nuaralı göz de dolu, orda da 18 var. Yine bir sonraki göze bakıyoruz:8 numaralı göz. Maalesef orası da dolu, orda da 29 var. Yine bir sonrasına bakarız:9 numaralı göz. Nihayet boş bir göze denk geldik. :) 39 değerini 9 numaralı göze yerleştiriyoruz. Tablo şu hale gelir:

SıraAnahtar Değeri
0
1
2
3
4
527
628
718
829
939
10

13'ü yerleştiriyoruz şimdi.
hash(13)=2 mod11
2 numaralı göz boş olduğundan, 13 değerini sorunsuzca yerleştiririz.

SıraAnahtar Değeri
0
1
213
3
4
527
628
718
829
939
10

16'da sıra.
hash(16)=5 mod11
5 numaralı göz dolu. 6, 7, 8 ve 9 numaralı gözlere de sırayla bakacak olursak, onların da dolu olduğunu göreceğiz. O yüzden yine bir sonraki göze bakıyoruz:10 numaralı göz. Orası boş!! :) 16 değerini de 10 numaralı göze yerleştiriyoruz o halde. Tablo şu hale gelir:


SıraAnahtar Değeri
0
1
213
3
4
527
628
718
829
939
1016

42'ye geldi sıra.
hash(42)=9 mod11
9 numaralı göz dolu olduğundan, oraya yerleştiremiyoruz. Bir sonraki göze bakarız:10 numaralı göz. Ancak orası da dolu. Yazının en başında, böyle bir durumla karşılaşırsak, ne yapacağımızı belirtmiştim. Tablonun sonuna ulaştık. O yüzden tablonun en başından başlayarak, boş yer aramaya devam ederiz. 10 numaralı göz doluydu. Bir sonraki göze bakalım:0(sıfır) numaralı göz. Orası boş. Bu yüzden 42 değerini 0 numaralı göze yerleştiririz. Tablo şu hale gelir.


SıraAnahtar Değeri
042
1
213
3
4
527
628
718
829
939
1016

Son olarak 17'yi de yerleştirelim.
hash(17)=6 mod 11
6 numaralı göz dolu. Ondan sonra gelen, sırasıyla 7, 8, 9, 10 ve 0 numaralı gözler de dolu. 1 numaralı göz ise boş. 17 değerini de buraya yerleştiririz. Tablonun nihai hali şöyledir:



SıraAnahtar Değeri
042
117
213
3
4
527
628
718
829
939
1016

Bu algoritma için de average probe'u(bir değere ortalama kaç adımda ulaşabildiğimiz) hesaplarsanız(daha önce yapmıştık), oldukça yüksek bir değer elde edeceksiniz. Bunun sebebi secondary clustering(ikincil kümeler)'dir. Bu da farklı home address'ine sahip kayıtlardan kaynaklanmaktadır. Daha farklı açıklamak gerekirse, artış sayısının 1 olmasından ötürü, ikincil kümeler ortaya çıkmaktadır. Pratikte pek de kullanılmaz bu algoritma.
Son bir not, bu algoritmada da kayıt direkt silinmez. Aksi takdirde arama işlemi sırasında boşluklar oluşabilir. Arama işlemi de boşluğu gördüğünde, aramayı durdurur; aranan kayıt tabloda bile olsa ulaşılamaz olur. Bu yüzden silinecek kaydın başına tombstone konur(işaretleme yapıyorsunuz yani). Bu göze yeni bir kayıt ekleyince de o tombstone'u kaldırırsınız.

Bu algoritma da bu kadar. Sonra görüşürüz..

26 Aralık 2010 Pazar

Lütfen Evinizde Denemeyin..

Idaho State'ten Kamil Gawrzydek serbest atış kullanıyor. İlk atışında topun denge noktasıyla buluşmasına tanık olacaksınız. :)



Not: Videonun kaynağı youtubedur. Videoyu izleyemeyen varsa, bağlantı adresi: http://www.youtube.com/watch?v=lF8w3zN0xiA&feature=player_embedded

Hayward Kovulmuş!

İnsan bir haber verir değil mi ama.. İşten atılacaksın, bir mesaj bile atmayacaksın. Efendim, Tony Hayward'ın BP'deki görevine son verilmiş. Ve bu olay aylar öncesinde olmuş. Ben bunu South Park sayesinde öğrenebildim. -14ncü sezonda 10 veya 11nci bölüm olması lazım-

Meksida'ki sızıntı olayı aslında, bildiğim kadarıyla, BP'nin ilk vukuatı değil. Tony Hayward da günah keçisi olmuş sanki.Burada eleştirilmesi gereken bir şahıs değil, şirket politikası olmalıydı zannımca. Şimdi bazı arkadaşlar, "şirketi de o yönetiyor ya zaten, salak mısın nesin" diyebilirler ama böyle kişiler şirketin genel politikasına sadece yön verebilirler. Kaldı ki Hayward onca hamleyi danışmadan yapabilir mi, orası muamma. Para basan bir petrol firmam olacak ve onu bir tek adamın ellerine bırakacağım... Nefes aldırmam adama. :)

Ne oldu şimdi peki? BP aklandı, günah keçisi bulundu ve kellesi vuruldu. Şimdiye kadar yazdıklarımdan Hayward taraftarı olduğum anlamı çıkmasın, zaten banane elin İngilizinden. Kendisini en çok "I am sorry" kampanyalarından hatırlayacağım. :) Hemen örneğini verelim: http://www.youtube.com/watch?v=KKcrDaiGE2s&feature=player_embedded    :)

Yöneticilik de hüner ister Tony'can, sıkma kendini, yat yarışına devam. :)
Ben Cem Adrian konserine bilet almaya çalışadurayım, siz kendinizi pazartesiye hazırlayın. Sonra görüşürüz.

18 Aralık 2010 Cumartesi

Das Boot(1981)

1981 yılında gösterime giren Das Boot, son zamanlarda izlediğim en iyi filmdi diyebilirim. Yaklaşık 3-3,5 saatlik süresinde hiç sıkıldığım bir an olmadı ve bu özelliğiyle bana Godfather serisini anımsattı.

İkinci Dünya Savaşı yıllarında 12 denizaltıyla beraber denize açılan U-96 tip bir denizaltının ve mürettebatının öyküsü ele alınmış. Yıllarca savaşın hep karadaki halini izlemiş biri olarak, ilk kez denizdeki mücadeleyi görmek de farklı bir duyguydu. :) Hidrofon Taraması ise en çok ilgimi çeken kısımdı. "Hava kötü olduğunda, suyun altında görebildiğinden daha fazlasını duyabilirsin" şeklinde, hidrofon, en mükemmel şekilde açıklandı filmde. Keza su basıncının etkisiyle civataların birer birer patlama sahnesi de güzeldi gerçekten. Genel manada neler oldu derseniz: Alman denizaltıları, İngiliz gemilerine saldırdılar, Destroyer'lar da onları vurdular. Bu şekilde bir kovalamaca şeklinde geçti. Ardından Alman denizaltına Cebelitarık Boğazını geçme emri gelince, vurulmaları ve suyun altında verdikleri yaşam mücadelesi... Asıl önemli yeri de, uzunca bir süre suyun altında ölümü bekledikten sonra, denizaltının son bir ümitle çalıştırılması ve Cebelitarık'ı geçmeleri; ardından La Rochelle'de, yani kendi evlerinde, İngiliz Hava Taarruz Uçakları tarafından vurulmaları. Filmin sonundaki Kaptan'ın gemisinin batışını izleme sahnesi oldukça iyiydi.

Wolfgang Petersen'a ve Lothar Buchheim'a kocaman bir alkış. İzlemediyseniz, hiç vakit kaybetmeyin derim. Sonra görüşürüz..

Dilini Eşek Arısı Sevsin..

Oğuz Haksever, CHP Kurultayından aktarıyor:"(..)Yeni listeye tepkiler var. Olumlu tepkiler bunlar..."

Tepki kelimesi, "tep"mek kökünden türemiştir ve olumsuz anlamdadır. Tepmenin olumlusu olmuyor yani. Detaylı bilgi için bkz. TDK

12 Aralık 2010 Pazar

Facebook Profilinize Kimler Bakmış? :)

Yeniden merhaba arkadaşlar,

Az önce okuduğum bir haber üzerine kısa bir yazı yazmak istedim. :) Facebook'ta profilinize kimin baktığını gösteren bir uygulama YOK. Bunu sağlayan bir grup da YOK. Bunu sağlayacak API yazılımcılar tarafından yazılabilir belki ama facebook da buna karşı her gün kendini geliştiriyor.

Yani lütfen kendinizi komik duruma düşürmeyin. Maalesef arkadaşlarımın sayfalarında da böyle şeyler görüyorum ki bu beni daha çok üzüyor. Galiba bu durum teşhir edilmekten hoşlanma ile ilgili. :) Kim girecek kardeşim sayfana: ben sen o biz siz onlar.. Girmesini istediğin biri varsa, git iletişim kur. :) Ama lütfen dikkat edin ve facebook fırsatçılarının tuzaklarına düşmeyin. ;)

Görüşmek üzere..

EISCH (Early Insertion Standart Coalesced Hashing)

Merhaba arkadaşlar,

Daha önce başlamış olduğumuz "collusion resolution" yöntemlerinden "bağlantı yöntemi ile çarpışma önleme" tekniğinin bir diğer konusundan devam ediyoruz. Şimdiki konumuz EISCH. Diğer anlattığım konuları okuduysanız şayet, bu isimden yanlışbir anlam çıkarmayın sakın. EISCH, collision olduğunda, kaydı başa ATMAZ!! Daha farklı bir durum söz konusu. Örnek üzerinde anlatayım.

Yine Alan Tharp'ın North Carolina State Üniversitesi için hazırladığı kitabındaki örneği yapalım:

SORU: 27-18-29-28-39-13-16-42-17
hash(key)=key mod11

ÇÖZÜM: Mod 11 dediği için tablomuzu yine 0-10 arasında çiziyoruz.


SıraAnahtar DeğeriLink
0
1
2
3
4
5
6
7
8
9
10


Ardından ilk elemanımızı yerleştirmeye başlıyoruz.
hash(27)=5 mod11
Artık bu işlemleri biliyorsunuz farz ediyorum çünkü diğer başlıklarımda bayağı anlatmıştım. O yüzden 27'yi direkt 5 numaralı göze yerleştirdim. 5 numaralı göz boş olduğundan sorunsuzca yerleştiririz.

SıraAnahtar DeğeriLink
0
1
2
3
4
527
6
7
8
9
10

Şimdi ikinci elemanımızı yerleştirelim.
hash(18)=7 mod 11
7 numaralı göz de boş olduğundan, 18'i de oraya sorunsuzca yerleştiririz.

SıraAnahtar DeğeriLink
0
1
2
3
4
527
6
718
8
9
10


Sıra geldi 29'u yerleştirmeye.
hash(29)=7 mod 11
7 numaralı göz dolu! Orada 18 var. Bu yöntemde tıpkı LISCH yönteminde gösterdiğim gibi kaydı en sondaki müsait alana atıyoruz. Yani 10 numaralı göze... Yine R diye bir değer tutalım isterseniz, diğer tekniklerde yaptığımız gibi... R bize en alttaki müsait değeri versin. 10 numaralı göze 29'u koyuyoruz, artık 9 numaralı göz müsait. O yüzden R=9 oldu. 7 numaralı gözden de, 10 numaralı göze bir link attık. Sebebini bir kez daha açıklamış olayım: 29'u aramak isteyenler, doğal olarak 7 numaralı göze bakacaklar. Ancak orada 29 yok, 18 var. Dolayısıyla 29'un izini kaybetmememiz lazım. O yüzden de 7 numaralı gözden, bir link atmak zorundayız.

SıraAnahtar DeğeriLink
0
1
2
3
4
527
6
71810
8
9
1029


Şimdi de 28 var sırada.
hash(28)=6 mod11
6 numaralı göz boş olduğundan, 28'i sorunsuzca yerleştiririz. R=9 hala...

SıraAnahtar DeğeriLink
0
1
2
3
4
527
628
71810
8
9
1029

39'a geldi sıra.
hash(39)=6 mod11
6 numaralı göze az önce 28'i yerleştirmiştik; yani orası dolu. O halde R değerinin işaret ettiği göze yerleştireceğiz. R=9 idi. Dolayısıyla 39'u 9 numaralı göze yerleştiriyoruz. R=8 oldu. 6 numaralı gözden, 9 numaralı göze link atarız. Çünkü 39 değerini aradıklarında önce 6 numaralı göze bakarlar... Tablo şu hale gelir:



SıraAnahtar DeğeriLink
0
1
2
3
4
527
6289
71810
8
939
1029

Şimdi bunun LISCH'ten farkı ne, diye soranlar vardır mutlaka. :) Az sabredin, farkı fark etmeye ramak kaldı. :)

13'ü yerleştiriyoruz şimdi de.
hash(13)=2 mod11
13 numaralı göz boş olduğundan, sorunsuzca yerleştiriyoruz. R=8 hala...

SıraAnahtar DeğeriLink
0
1
213
3
4
527
6289
71810
8
939
1029

16'yı yerleştirelim hemen.
hash(16)=5 mod11
5 numaralı gözde 27 var. Dolayısıyla R değerinin işaret ettiği göze koyacağız 16'yı. R=8 olduğundan, 16'yı 8 numaralı göze yerleştiririz. 5 numaralı gözden de link atarız.. R=4 oldu artık. 7-6 ve 5 numaralı gözler dolu çünkü. En alttaki boş olan göz 4 olduğundan, R değeri de 4 oldu. :) Doğru dürüst anlatayım diye saçma sapan cümleler kuracağım yakında. :D Neyse. :)

SıraAnahtar DeğeriLink
0
1
213
3
4
5278
6289
71810
816
939
1029

42 değeri var sırada.
hash(42)=9 mod11
9 numaralı gözde39 var. (Eski bilgileri tazelemek isterseniz, şunu da belirtelim. 9 numaralı gözde home address'i[hashten dönen değeri] 6 olan 39 değeri var. Yani 39'un home addressi değil zaten orası. Dolayısıyla burada bir coalescing var)
R=4 idi en son. Dolayısıyla 42'yi 4 numaralı göze yerleştiriyoruz. R=3 oldu... 9 numaralı gözden de, 4 numaralı göze bir link atarız yine..

SıraAnahtar DeğeriLink
0
1
213
3
442
5278
6289
71810
816
9394
1029

Veee.. :) Gelelim EISCH'in ne olduğunu anlayacağınız, 17'nin yerleştirilmesine. Aynı home address'ten en az 3 kere gelmesi lazımdı ki konuyu anlatabileyim. :) Benim suçum yok yani. :)

hash(17)=6 mod 11
6 numaralı gözde 28 var. Dolayısyla 17'yi R değerinin gösterdiği 3 numaralı göze yerleştireceğiz. Ancaaak.. Ancak 6 numaralı gözden zaten 9 numaralı göze link atılmış. LISCH olsaydı sorumuz, 6 numaralı göze giderdik. Ordan 9 numaralı göze link atılmış, 9'a giderdik; ordan da 4 numaralı göze link atılmış. 4 numaralı göze giderdik ve ordan da 17'nin bulunduğu 3 numaralı göze link atardık. Fakat EISCH böyle değil.. :)

EISCH yönteminde, yeni eklediğiniz elemanı, home address'inizdeki, yani hashten dönen değerdeki gözde bulunan elemandan sonraki ilk göze atarsınız. Örnekten devam edecek olursak: 17'nin home address'i 6 çıkmıştı. 6 numaralı gözde 28 var. İşte 17'yi hemen 28'ten sonraki eleman yapıyoruz. Bu EISCH yöntemindeki E(Early) harfinin esprisi de burada zaten. :) Yani 28'ten link direkt 17'nin bulunduğu göze atılır. Ordan da linkler eskisi gibi devam eder. Tablonun son hali şöyle olur:

SıraAnahtar DeğeriLink
0
1
213
3179
442
5278
6283
71810
816
9394
1029

Şimdi elemanlara kaçar adımda ulaştığımıza bakalım ve daha önceki yöntemlerde yaptığımız gibi average probe'u(ortalama olarak hedefe ulaşmadaki adım sayısı) hesaplayalım.
27 değerine 1 adımda ulaşıyoruz.
18 değerine 1 adımda ulaşıyoruz.
29 değerine 2 adımda ulaşıyoruz.
28 değerine 1 adımda ulaşıyoruz.
39 değerine 3 adımda ulaşıyoruz.
13 değerine 1 adımda ulaşıyoruz.
16 değerine 2 adımda ulaşıyoruz.
42 değerine 2 adımda ulaşıyoruz.
17 değerine 2 adımda ulaşıyoruz.
Toplamda 15 adımda 9 değere de ulaşabiliyoruz. 15/9=1.67 çıkıyor. LISCH'te bu değer 1.78 idi. Daha etkili bir yöntem imiş demek ki. :)


Bu yöntemin esprisi coalescing'i daha sonraki sıralara ötelemesidir. Yeni gelen değeri, home address'inden sonraki eleman yaptığınızda, bu yöntemi uygulamış oluyorsunuz.


Sonra görüşürüz..

11 Aralık 2010 Cumartesi

Éphémère

Merhabalar,

Yeni yaşa girmenin verdiği ağırlıkla yazıyorum bu yazıyı. :) Bu sefer doğum günü kısmını pasifleştirdim feysbukta. Ama siteden kaldırmadım. Böylece kaç tane duyarlı arkadaşım varmış göreyim istedim. :) Görmez olaydım. :D

Bu hafta nispeten daha rahat geçti ama donmaya başladık diyebilirim. Artık Aralık'ta olduğumuzu hissetmeye başladık. İyi tarafı, yaya trafiği rahatladı.. Kötü tarafı ise, araç trafiği zirve yaptı.

Haftaya dair ilk bahsedeceğim şey, en kısa zamanda Sıla'nın son albümünü edinmeniz. Yine yapmış yapacağını. Süper olmuş. En sevdiğim şarkı şu diyemiyorum bile..

Diğer bir konu yumurtalı protesto için öğrencilere edilen laflar. Ayıptır yahu. Söylüyorlar dinleyen yok, yürüyorlar dayak yiyorlar.. Bunca şeyin patlamasıydı muhtemelen o. Yumurta Saldırısı için önlem almadığı için üniversite rektör ve dekanlarına ateş püskürüyormuş meşhur zat. Rektörler veya dekanlar bağımsız kurumların başındaki kişilerdir ve eğitim işlerinden sorumludur. El pençe divan durmak zorunda değillerdir. Özel muamele beklemesi çok komik. Bugün otobüsü ateşe verip gencecik Serap'ı vahşice öldüren katili "taş atan çocuklar" yasasından yararlandırıp, sürekli dayak yiyen ve susturulmaya çalışılan gençliği dava edip tutuklatmaya çalışırsanız, ortada ciddi bir sorun var demektir. Ya algılarım bozuldu ya ülkemin olaylara baktığı yer değişiyor.
Yorum sizin.

Yarın Algoritma konusu anlatacağım bir aksilik olmazsa. Bu arada Aylin Aslım'dan Bir Çocuk Sevdim'i dinleyin derim. :) O da sağlam bir sestir.

Görüşürüz sonra.

8 Aralık 2010 Çarşamba

Özür & Düzeltme & Kınama

Geçenlerde ODATV'de okuduğum ve haliyle tepki gösterdiğim Bartın Üniversitesi ile ilgili haber hakkında, üniversite öğrencisi arkadaşın yaptığı sağduyulu ve bilgilendirici mesajla işin ayrıntılarını öğrendim. Dolayısıyla şüphelerim için şahıslardan özür dilemeyi görev bilirim.

Ayrıca konu ile ilgili açıklama yapmak yerine, saçma sapan mesajlarla hakarette bulunan zavallı iki arkadaşı da şiddetle kınıyorum.

Sonra görüşürüz..

28 Kasım 2010 Pazar

Bir Haftasonunun Anatomisi

Geçenlerde portatif tahkim edevat vasfıyla bir mağazaya gittim. :P :) Bildiğiniz giyim mağazası ama içeride bir müzik vardı ki insan beynine ancak bu denli saldırı olabilirdi. Bizim Ümit Besen'in İngiliz versiyonu resmen. Ama sanırım ne dediğini anlamadıklarından veya söyleyen yabancı olduğundan -bizim milletimizin genelinde olan yabancıyı ilahlaştırma hastalığı malumunuz- kendilerinden geçmişçesine dinliyorlardı. Dinleyen tipleri de hafızanızda canlandırmanız için şöyle anlatayım: güzel/yakışıklı olmakla kokona olmak arasındaki farkı idrak edemeyen tikicanlar. :) Mağaza sahibi de yaşlıdan bir hanım teyzeydi. İçerisi boş diye asmış duratını etrafa bakınıyordu. Sebebi aramasına gerek yok aslında. Oradan bir Iron Maiden koysaydı böyle mi olurdu mağazası. :D
Please don't worry now that I have gone
I have gone beyond to see the truth
When you know that your time is close at hand
Maybe then you'll begin to understand
Life down there is just a strange illusion

Ben moda girmeye başladım yine, sonra tekrar görüşürüz. :)

19 Kasım 2010 Cuma

Es ist Zeit für Rache!

Selam arkadaşlar,

Başlığın yazıyla alakası yoktur, Cartman aklıma geldi birden, nostalji yaptım sadece. :) Hep ciddi kayıtlar girmişim farkında olmadan bu aralar. :) O yüzden şöyle güzel bir iki haberi barındıran kısa bir kayıt da girmiş olayım.

İlk bombayı NBA TV'den aldık. Beşiktaşımızın bazı basketbol maçları NBA TV'den, banttan da olsa, gösterilecekmiş. Hem de Webber'in yorumlarıyla... Iverson transferi ile amacımıza şimdiden fazlasıyla ulaşmış olduk böylece.

Yine basketboldan gideceğim. Geçenlerde fenerin Siena maçına gittim, Sinan Erdem'e. Kadro kalitesinin altında oynamaya devam etseler de, isabetli üçlüklerle sonuca gittiler. Maalesef. :) Maç sonu yolda Final Four'un hangi şehirde oynandığını sordular birbirlerine. :D  Başta İbrahim olmak üzere, bu fenerliler olmasa nasıl zaman geçerdi, komiksiniz yaa. :) Cholet zaten gereken cevabı verdi. :D

Az önce Reservoir Dogs(1992)'u izledim. Daha önceki skandal Tarantino filminden sonra, kendisine bir şans daha verdim. :) Şöyle anlatayım, oyuncular iyi oynamış... Bazı muhabbetler, ki ilk masa başında geçen konuşmaları hatırlayın, gayet güzeldi. Ama salt kan dökme üzerine kurulmuş basit bir filim. Daha önce Inglorious Basterds hakkında da bir yazı yazmış ve benzer şeylerden bahsetmiştim. Demek ki Tarantino'nun tarzı bu. Ve yine demek ki bu adamın filimleri cidden bana göre değil. :) Yalnız nasıl bir anlam yükledilerse, IMDB'de adamın filmi hala Top 250'de geçiyor. :) Hayır bu filmi bu kadar beğendilerse, bizim Kurtlar Vadisi dizisinin bir bölümünü izletsek bunlara, bunların mantığına göre, herhalde 1nci sıradan inmez. :) İçeriği tartışılsa da hem konusu var, hem de bol bol kan var. :)

Siz bu satırları okurken, ben Kardinal Wolsey'in intihar sahnesini izliyor olacağım. Allah'ın Tarantino'su, madem sırf şiddet seviyorsun, şu filmden örnek alsaydın yaa. :D  O kadar iyi bir intihar sahnesi yapmış ki adamlar, tüm filim boyunca sövdüğüm adam için, "özünde iyi biriydi aslında yeeaaa" falan demeye başladım. Neyse bitiyor bu filim, sonra yazarım ben yine. :)

17 Kasım 2010 Çarşamba

"Taraf"ı Belli Olan Gazete?

Malumunuz bazı gazeteler var, isim vermeye lüzum yok, milli bayramları kutlamayan... Kurtuluş Günlerimizi unutup, 4 Temmuz'u saygıyla anmayı asla unutmayan... Bir de utanmadan bizim gibi ulusal çizgide durup, milli değerleri savunanlarla dalga geçmeye yeltenen... Bakın o gazetelerden birisi niyetini(?) belli eden bir potu nasıl da kırmış...

10 Kasım'da Ulu Önder'imizden tek kelime bahsetmeyen ismi lazım olmayan bu gazete, aynı gün 2nci sayfasında, Fransız De Gaulle'nin ölüm yıldönümünden bahsediyor...

Tercihler tartışılmaz ama daha iyi tanımak için fikir verirmiş. Hala tereddütü olan varsa yani... Neyse şimdi; bu bağlantı da Oda TV'nin yine süper bir arşiv çalışması sayesinde gün ışığına çıkmış: http://www.ina.fr/politique/politique-internationale/video/CAF88040223/voyage-general-de-gaulle-en-turquie.fr.html
Bahsi geçen Fransız'ın Atamıza olan saygısı, Anıtkabir ziyareti... O "taraf"ta bilen/gören/duyan var mı???

Geçmiş Zaman Olur Ki...



Otuzumda asılmamı istediler,
Kırk sekizimde Barış Madalyasının bana verilmesini.
Verdiler de...

13 Kasım 2010 Cumartesi

LICH(Last Insertion Coalesced Hashing)

Tekrar merhaba arkadaşlar,

Dün yazmış olduğum LISCH metoduna, Link Atarak çarpışmaları(collision) önleme yöntemlerimize, bugün LICH ile devam ediyoruz. Önceki yazı için bkz. http://gurkanalkan.blogspot.com/2010/11/lischlast-insertion-standart-colesced.html

LICH yönteminde iki parçalı yapı mevcut. Biri Primary Area dediğimiz, gelen kayıtları yerleştirdiğimiz alan; diğeri ise Overflow Area dediğimiz, collision'a sebep olan kayıtları yerleştirdiğimiz alan.

Primary Area
Overflow Area
LISCH konusunda o kadar detaylı yazdım ki bazı kavramları, burada daha yüzeysel geçeceğim. Diğer makaleye bağımlı kalın diye yapıyorum. :P :)

Dilerseniz Alan Tharp'ın kitabındaki soruyu burada beraber yapalım..

SORU:
27-18-29-28-39-13-16-42-17
hash(key)=key mod 7

ÇÖZÜM:
Tablo boyutunu ayarlayarak işe başlayalım yine. mod 7 dediği için 0-6 arası bir tablo kullanacağız ama burada LISCH'ten farklı olarak, bu tablo sadece Primary Area dediğimiz bölgedir. Bir de küçük bir kısım Overflow Area için kullanırız. Overflow Area için de, tabloyu 10'a tamamlamak için, 4 satır kullanalım.
SıraAnahtar DeğeriLink
0
1
2
3
4
5
6
///////////////////////////////////////////////
7
8
9
10

Tablomuz yukarıdaki gibi 2'ye bölünmüştür. 27'yi yerleştirerek işe başlayalım.hash(27)=6 mod 7
27'yi 6 numaralı göze sorunsuz bir şekilde yerleştiririz. Tablo şu hale gelir.

SıraAnahtar DeğeriLink
0
1
2
3
4
5
627
///////////////////////////////////////////////
7
8
9
10
18'i yerleştirelim şimdi de.
hash(18)=4 mod 7
18 değeri de 4 numaralı göze sorunsuzca yerleştirilir.

SıraAnahtar DeğeriLink
0
1
2
3
418
5
627
///////////////////////////////////////////////
7
8
9
10
Sıra geldi 29'u ve 28'i yerleştirmeye.
hash(29)=1 mod 7
hash(28)=0 mod 7
29 değerini 1 numaralı göze, 28 değerini de 0 numaralı göze sorunsuzca yerleştirdik. Tablo şu hale geldi:

SıraAnahtar DeğeriLink
028
129
2
3
418
5
627
///////////////////////////////////////////////
7
8
9
10
 39'u yerleştirelim şimdi de.
hash(39)=4 mod 7.
39'u 4 numaralı göze yerleştiremiyoruz, orası dolu, 18 var. Collision(çarpışma) oldu! Collision'a sebep olan 39 değerini overflow area'nın en sonundaki müsait/boş olan alanına yerleştiririz. Yani 10 numaralı göze... 4 numaralı gözden de, 10 numaralı göze link atarız. Sebebini diğer başlıkta yazmıştım. son kez burada bir daha yazmış olayım. 39 değerini kaybetmemek için link atıyoruz. 39'u bu tabloda aradığımızda 4 numaralı göze gideriz ama orada başka değer var. O yüzden 4 numaralı gözden 39'un olduğu yere link atarız ki bulabilelim. Tablo şu hale gelir. 

SıraAnahtar DeğeriLink
028
129
2
3
41810
5
627
///////////////////////////////////////////////
7
8
9
1039
13'ü yerleştirelim şimdi de.
hash(13)=6 mod 7
13'ü de yerleştiremiyoruz çünkü 6 numaralı göz dolu. 13'ü de overflow area'da 9 numaralı göze yerleştiriyoruz çünkü en alttan baktığımızda, orası müsait(10 numaralı göz demin dolmuştu). 6 numaralı gözden de, 9 numaralı göze link atıyoruz. Tablo şu hale geldi:

SıraAnahtar DeğeriLink
028
129
2
3
41810
5
6279
///////////////////////////////////////////////
7
8
913
1039
16'ya geldi sıra.
hash(16)=2 mod 7
2 numaralı göz zaten boş olduğundan sorunsuzca yerleştirdik. Tablonun son hali:

SıraAnahtar DeğeriLink
028
129
216
3
41810
5
6279
///////////////////////////////////////////////
7
8
913
1039
42'ye geçelim.
hash(42)=0 mod 7
0 numaralı göz dolu olduğundan, 42'yi overflow area'ya, müsait olan göze[8 numaralı göz], yerleştiririz. 0 numaralı gözden de link atarız. Tablo şu hale gelir:

SıraAnahtar DeğeriLink
0288
129
216
3
41810
5
6279
///////////////////////////////////////////////
7
842
913
1039
Son olarak 17 kaldı.
hash(17)=3 mod 7
3 numaralı göz boş olduğundan, 17 değeri sorunsuzca yerleştirilir. Tablo şu hale gelir nihai olarak:

SıraAnahtar DeğeriLink
0288
129
216
317
41810
5
6279
///////////////////////////////////////////////
7
842
913
1039

Böylelikle tabloya yerleştirmiş olduk. Şimdi bir iki husustan bahsedeceğim ki LISCH'ten farkını daha net görebilelim. Bunda da sona eleman attığımızdan, farkını tam kavrayamayanlar vardır muhtemelen. Eğer overflow area dolarsa ne yaparız? Doldurmayacak bir değer seçeriz genelde. :) Dikkat ettiyseniz, 4 gözlük bir overflow area'yı ben kendim uydurdum. O açıdan bu çok sıkıntı yaratamaz. Asıl soruna gelelim. Örneğin home address'i(hash'ten dönen değeri) 4 olan bir sayı daha olsaydı ne yapacaktık? 4 dolu malum. 4 numaralı gözden zaten link atılmış. Peki o zaman overflow area'dan link mi atacaktık? HAYIIIIR. :) Sıkı durun şimdi. :) Primary Area'yı 1 göz azaltacaktık(örneğimize göre 0-5 arası olurdu), overflow area'yı da 1 göz arttıracaktık(örneğimize göre 6-10 arası olurdu). Mod'u da haliyle 7 değil, 6 yapacaktık. Ve herşeyi sil baştan hesaplayacak, ona göre tekrar tabloyu dolduracaktık. :)

Son olarak average probe değerini(verilere ortalama kaç adımda ulaşılacağı) hesaplayalım. LISCH konusunda detaylı anlattığım için buraları hızlı geçiyorum.

27 değerine 1 adımda ulaşıyoruz.
18 değerine 1 adımda ulaşıyoruz.
29 değerine 1 adımda ulaşıyoruz.
28 değerine 1 adımda ulaşıyoruz.
39 değerine 2 adımda ulaşıyoruz.
13 değerine 2 adımda ulaşıyoruz.
16 değerine 1 adımda ulaşıyoruz.
42 değerine 2 adımda ulaşıyoruz.
17 değerine 1 adımda ulaşıyoruz.
Toplamda 12 adımda tüm değerlere ulaşıyoruz. 9 tane de değer olduğuna göre=> 12/9=1,33 de average probe olur. LISCH'de de aynı değerleri kullanmış ve average probe'u 1,78 bulmuştuk. Görüldüğü üzere LICH yöntemi, LISCH yöntemine göre daha etkili...
Son olarak Address Factor diye bir kavram var. O da şudur: Primary Area/Total Table Size.
Yani verileri yerleştirdiğimiz alan, toplam tablo boyutunun kaçta kaçı olduğunu bize veriyor. Bu oranı yaklaşık %85lerde tutmamız gerekiyor.

Bir yöntemin daha sonuna geldik. Ben de fenerin yenilişini keyifle izlemeye gideyim artık. :)
Sonra görüşürüz.

Devletçilik & Özgürlük

Efendim malumunuz Devletçilik, Atamızın bizlere miras bıraktığı ilkelerinden biridir. Genel manada, devletin çıkarlarımız doğrultusunda elzem gördüğü alanlara girmesidir denebilir. Tabi bu kadar sığ değil anlamı ama asıl amacım bu ilkeyi detaylandırmak olmadığından, böyle geçiyorum.

Geçen gün Abdi İpekçi'nin katili devlet televizyonu ve Tarkan'ın gece kulübü diye bildiğimiz TRT'nin canlı yayınına çıktı. Bu karar bir saatli bombadır. Çünkü ben de dahil olmak üzere herkesin beklentisi, o adamın özür dileyeceği, affedilmeyi isteyeceği şeklindeydi. Ancak adam çıkıyor ve kendisini övüp, kitabının reklamını yapıyor. E o zaman kendisine ve bu programda emeği geçen herkese kocaman bir YUH!

Peki bu durum hakkında Başbakan ne dese beğenirsiniz: "Bunu özel kanal-devlet kanalı diye niye ayırıyorsunuz? Devletçilik geride kaldı, özgürlükler öne çıktı..."

Yani ülkemizin Başbakanı, yıllardır böylesine bir coğrafyada ayakta durmamızı sağlayan Ulu Önderimizin devriminin bittiğini, bu devrimin "bertaraf edildiğini" itiraf etmiş oluyor. Komik olan, devletçilik bittiyse eğer, neden devlet televizyonu var ve ben neden her ay TRT vergisi adı altında soyuluyorum? Madem özgürlükler öne çıktı, madem karanlık cinayetleri işleyenler bile bu denli özgür konuşuyor, Silivri'de tutulan yazarlar da neyin nesi?

Bir kavramı ağzınıza almadan önce 1000 kez düşünün derim...

Sonra görüşürüz..

Oktay Ekşi vs Engin Ardıç

Normalde dün yazmış olduğum LISCH yazımı, bugün LICH ile sürdürmek istiyordum. Ki hala yazabilirim ama ne zamandır aklımdaydı şu konuyu yazmak.

Biliyorsunuz Oktay Ekşi yazdıklarından ötürü çok büyük tepkiler aldı, özür diledi. Ancak yetmedi bu bazılarına. İstifası istendi. Etti mi etmedi mi bilmiyorum, pek takip etmedim. Ama birkaç gün sürekli olarak iktidar tarafından laf yedi, bunu biliyorum. Doğrudur yanlıştır, konum bu değil. Şimdi diğer örneğe geçelim.
Engin Ardıç adlı skandal arkadaştan bahsetmek istiyorum. Köşesinde şöyle yazmış: "(...) Kemal Bey eğer Bülent Bey gibi olmak istiyorsa, herşeyden önce kendisine bir de Rahşan Hanım şarttır.
Sevim Hanım'dan ayrılsın, kiminle evlensin, kiminle evlensin... Buldum: Ya Canan Arıtman'la, ya Nur Serter'le. Gürsel Tekin'e de Sevgi Erenerol'u istemeye gideceğim çiçek ve çikolata yaptırıp, cezasını Yargıtay bozunca
". Böyle bir terbiyesizlik var mı? İsimleri geçenler evli insanlar... Eşlerini tahrik/rencide etmek bir kenara, bu sözler bir insan evladından çıkabilir mi? Oktay ekşi için sürekli karalama kampanyaları düzen yalaka medya, acaba Engin Ardıç için ne yapacak? Şimdiye kadar hiçbir şey yapmadı... Acaba iktidardan/güçten yana olması, kendisine koruma kalkanı mı oluşturuyor?

İkiyüzlülüğü bırakın ve bu terbiyeden yoksun adama gereken cevabı verin...

Vallahi Yedin!

"7 yerim 9 yerim ama 8 yemem" diyordun ama 8 maç ceza yedin "Bülent Başgaaaaan". :) Suçu da yetkisiz menajerlik. Allah'ın sopası yok işte, 8 tane, yarasın tosunuma...

12 Kasım 2010 Cuma

LISCH(Last Insertion Standart Coalesced Hashing)

Merhaba arkadaşlar,

Collision kavramından daha önce bu blogda bahsetmiştim. Dileyenler arattırıp bakabilir. Collision Resolution dediğimiz, çarpışmaları engelleme yöntemleri mevcuttur. Bunlar:

  • Bağlantı ile(With Links)
  • Bağlantı Olmadan(Without Links)
  • Yalancı Link ile(With PseudoLinks)
Bağlantı(Link) ile çözüm yöntemlerinden olan LISCH, bugünkü konumuz arkadaşlar... Yani isimden de anlaşıldığı üzere, coalesced olduğunda, gelen kaydı en sona atıyoruz. Coalesced'in de ne olduğuna değineceğim, biraz sabır. :) Konuyu en iyi örnek üzerinde anlatabilirim. O yüzden direkt örneğe geçiyorum.

SORU:
27-18-29-28-39-13-16-42-17 şeklinde bir dizi sayı gelmiş ve
hash(key)=key mod 11

ÇÖZÜM:
İlk önce yerleştireceğimiz tablo boyutunu ayarlamalıyız. Soruda mod 11 dediği için tablomuz 0 ile 10 arasında olacaktır. Ayrıca R diye bir değer de tutalım. Bu da bize tabloyu sondan tarasın ve boş yeri söylesin. İlk başta R=10. Çünkü collision yok ve en son gözü gösteriyor. (Eğer sona bir eleman eklenseydi, R=9 derdik. Yani en sondan bir önceki eleman müsait anlamında...)

SıraAnahtar DeğeriLink
0
1
2
3
4
5
6
7
8
9
10
Tablomuz yukarıdaki gibidir. 27'yi yerleştirerek işe başlayalım.
hash(27)=5 mod 11
27'nin mod 11'e göre hash'i 5 değerini verdi.(27/11=2 kalan=5. Kalan değer, bize hash değerini veriyor.)
Bu yüzden 27'yi 5 numaralı alana yazıyoruz. Collision yok. R=10 hala. Tablonun yeni hali aşağıdadır.


SıraAnahtar DeğeriLink
0
1
2
3
4
527
6
7
8
9
10
 Şimdi ise 18'i yerleştirelim.
hash(18)=7 mod 11 (18/11=1 Kalan=7)
 18 değerini de 7 numaralı göze yerleştirelim o halde. Collision yok. R=10 hala. Tablomuz şöyle oldu:

SıraAnahtar DeğeriLink
0
1
2
3
4
527
6
718
8
9
10
Sıradaki kaydımız 29.
hash(29)=7 mod 11. İşte burada bir collision oluştu! Çünkü 7 numaralı gözde 18 var şu anda. 29 da aynı yeri gösteriyor. O yüzden LISCH mantığı gereği, 29'u en sondaki müsait yere atıyoruz. Çünkü hatırlarsanız algoritma gereği collision olduğunda, collision'a sebep olan değer en sona atılıyordu. Bu müsait yeri R ile tutmuştuk hatırlarsanız. R=10 idi. Yani 10 numaralı göze, collision'a neden olan 29 değerini atıyoruz. Artık 10 numaralı göz dolu. R=9 oldu (Alttan taramaya başlayınca, en sondaki müsait değer).
Ancak şu var! 29'u tabloda bulmak istersek, 7 numaralı göze bakarız. Çünkü hash değeri 7 çıkıyor. Ama 7 numaralı gözde 18 var. 29 değeri kaybolmasın diye 7 numaralı gözden, 29'u yerleştirdiğimiz 10 numaralı göze link atarız(şimdi neden bu yöntemin "with links" diye adlandırıldığını anlamışsınızdır). Tablo şu şekle gelir.

SıraAnahtar DeğeriLink
0
1
2
3
4
527
6
71810
8
9
1029
Üstteki tabloya dikkat buyurun şimdi. 7 numaralı hücreye baktığınızda link alanında 10 yazdığını görürsünüz. Yani hash değeri 7 olan bir diğer değer, 10 numaralı gözde imiş.

Sıradaki değerimiz 28.
hash(28)=6 mod 11
28 değerini sorunsuz bir şekilde 6 numaralı göze yerleştirelim. R=9 hala...
 Tablonun son hali şöyle:


SıraAnahtar DeğeriLink
0
1
2
3
4
527
628
71810
8
9
1029
Yeni değerimiz 39.
hash(39)=6 mod 11. 39 değerini 6 numaralı göze yerleştiremiyoruz çünkü orada 28 değeri var. Az önceki gibi collision oldu. Yapılacak işlem tamamen aynı. Collision'a sebep olan 39'u R değerine yerleştiriyoruz. R değeri en son 9 idi. O yüzden 39'u 9 numaralı göze yerleştiriyoruz. R=8 oldu(sondan başlayınca boş/müsait olan göz 8 çünkü). 28'in bulunduğu 6 numaları gözden, 39'un bulunduğu 9 numaralı göze de link atarız ki 39 değeri kaybolmasın.. Tablo şu şekle gelir.

SıraAnahtar DeğeriLink
0
1
2
3
4
527
6289
71810
8
939
1029
13 değerine geçelim.
hash(13)=2 mod 11.    2 numaralı göz boş olduğundan, 13 değerini sorunsuzca yerleştiriyoruz. R=8 hala... Tablo şu hale geldi:


SıraAnahtar DeğeriLink
0
1
213
3
4
527
6289
71810
8
939
1029
 16 değeri var sırada.
hash(16)=5 mod 11.
16 değerini 5 numaralı göze yerleştiremiyoruz zira orada 27 değeri var. Yine bir collision vakası. :P :) Hafıza-i beşerin nisyan ile malul olmasından mütevellit bir kez daha anlatıyorum. :) Bu cümleyi yazdığım sırada Mein Herz Brennt çalıyordu. Yan etkileri diyeyim artık. :D
Collision'a sebep olan 16 değerini, R ile tuttuğumuz sondaki müsait göze yerleştiririz. R=8 idi en son. Bu yüzden 16'yı 8 numaralı göze yerleştiriyoruz. 27'den de 16'ya link atıyoruz. Yani 27'nin durduğu 5 numaralı gözün link değerine 8 yazıyoruz ki 16 değeri kaybolmasın... R değeri en son 8 idi. Şu an 7 olamaz, orası boş değil,18 değeri var. R değeri 6 da olamaz, orada da 28 değeri var. R değeri 5'i de gösteremez çünkü orada da 27 var. O halde R=4 oldu. Tablonun son hali şöyle:

SıraAnahtar DeğeriLink
0
1
213
3
4
5278
6289
71810
816
939
1029
Sıradaki değerimiz 42.
hash(42)=9 mod 11.
42 değerini 9 numaralı göze yazamıyoruz çünkü orada 39 var. 39 da orada aslında misafirdi hatırlarsanız çünkü 39'un çıkan hash değeri 6 idi(hash39= 6 mod 11). İşte buna coalescing denir!!.. Yani dönen hash değerleri fark olanlar aynı zincirde buluşuyor. 42'yi bulmak için, 9 numaralı göze gidiyorsunuz ve orada aslında dönen değeri 6 olan başka bir değer var ama link'i yine de 39'dan atıyoruz. Buna coalescing deniyor işte. :) Daha nasıl anlatayım bilemiyorum ama anladınız siz onu. :)
42'yi R'nin tuttuğu göze, yani 4 numaralı göze, yerleştiriyoruz. 9 numaralı gözden de 42'ye link atıyoruz. R=3 oldu artık. Tablonun son hali şöyledir:

SıraAnahtar DeğeriLink
0
1
213
3
442
5278
6289
71810
816
9394
1029
Son olarak 17 değeri kaldı.
hash(17)=6 mod 11
6 numaralı gözde 28 değeri var. O yüzden 17'yi R'nin gösterdiği yere, yani 3 numaralı göze, koyuyoruz. Link atma olayı ise şöyle:Link'i 28'den atamayız çünkü 28'in olduğu gözden, 9 numaralı göze link atılmış. 9 numaralı gözden de, 4 numaralı göze link atılmış. Bu yüzden biz de 17'ye 4 numaralı gözden link atarız. R=2 oldu en son... Tablonun nihai hali şöyledir:

SıraAnahtar DeğeriLink
0
1
213
317
4423
5278
6289
71810
816
9394
1029
 Böylelikle tabloya yerleştirmiş olduk. Bir iki şey daha söyleyeyim. Hash'ten dönen değere home address denir. Kısa ismi varken, tüm yazı boyunca nedense uzun uzun kastım. :) Yani bir yerde home address gibi bir şey okursanız, artık anlarsınız. :)
Son şey: average probe. Yani ortalama kaç adımda verilere ulaştığımız...
27 değerine 1 adımda ulaşıyoruz.
18 değerine 1 adımda ulaşıyoruz.
29 değerine 2 adımda ulaşıyoruz.(7 numaralı göze gidiyoruz, ordan link ile 29'a atlıyoruz)
28 değerine 1 adımda ulaşıyoruz.
39 değerine 2 adımda ulaşıyoruz.(6 numaralı göze gidiyoruz, ordan link ile 39'a atlıyoruz)
13 değerine 1 adımda ulaşıyoruz.
16 değerine 2 adımda ulaşıyoruz.
42 değerine 2 adımda ulaşıyoruz.
17 değerine 4 adımda ulaşıyoruz.
 Toplamda 16 adımda tüm değerlere ulaşıyoruz. 9 tane de değer olduğuna göre=> 16/9=1,78 de average probe olur.
LISCH metodu bu kadar arkadaşlar. İnşallah bu konser ortamından doğru düzgün bir anlatım çıkmıştır. :D
Korn yorumuyla One ile sizlere veda ediyorum. :)

Sonra görüşürüz..

Vakıflar/Dernekler

İyi akşamlar herkese.

Malumunuz, çok meşhur bir dernek/vakıf insanların inançlarını sömürerek soymuştu. Hoş, hala uyanamayanlar da var. Neyse konumuz bu değil. Bahsetmek istediğim, insanların neden dernek/vakıf vs kurmak istemesi...

Bu anlattıklarım her vakıf ve dernek için geçerli olmayacaktır. Yarası olan gocunur. Vakıflar ve dernekler, hayır işlerine vesile olan yapılardır. Tabi görünüşte! Aynı vakıflar/dernekler aynı zamanda vergi kaçırma kapısı da olmakta!! Kişiler veya şirketler vakıf/dernek kurmalarına müteakip, tüm yatırımlarını bu vakıflara/derneklere bağışlarlar(!!!). Ardından elinden çıkmış görünen mallarını bu vakıf ve derneğe sattırırlar!

Ülkemizde de dernekler ve vakıflar pek takip edilmezler. Görünürde demokrasinin gereği, toplumsal gelişimin öncüsü gibi ithamlarla pohpohlanırlar...

Kurulan dernekler ve vakıflar kurucularına büyük bir şöhret kazandırırlar. Yani hem kendi paranızı hiçbir vergi ödemeden işletecek hem de topkumda sevilen biri olacaksınız. Ayrıca dernek sahibinin görüşleri bu vakıf/dernek yoluyla topluma enjekte edilmeye çalışılır. Burs veren bazı dernek ve vakıfları düşünün... Ne demek istediğimi anlayacaksınız.

Algoritmadan konu anlatasım var ama çok da şekil çizmem gerekiyor... Ben karar veredurayım.. Sonra görüşürüz. :)

5 Kasım 2010 Cuma

Adieu Mon Pays

Gönül isterdi ki bu başlık altında Enrico Macias'tan bahsedebilseydim.. Ancak Milli(!!!) Eğitim Bakanlığımız düşünmüş taşınmış veee okullarda "Andımız" ile "İstiklal Marşı" okunması uygulamasını iptal etmiştir. Hep nazik ifadeler kullandığım medyamız, daha açık anlatayım, yalaka basın ise olayı "değişim" sloganıyla verip, 1-2 satırda kapatmış. Obama da "we can change" diyordu sahi... Okula giden her çocuğun İstiklal Marşını okumasını baskıcı bir uygulama algılayanlar var maalesef.. Her sabah Kurtuluş'umuzu bir kez daha anlatan ulusal marşımızı duyamayacağız artık... Andımız'ın yeri bende çok başka.. İlkokul yıllarımda okul önünde Andımız'ı okumak için yarış ederdik... Artık bu gibi şeyler olmayacak. Ülkemizin gidişatı hiç hayra alamet değil...

Bir de üstüne az önce bir haber okudum. Boğaziçi Üniversitesinde protesto eden gençlere çevik kuvvet, en açıklayıcı tabirle, Allah ne verdiyse girişmiş... Demokrasi nidaları atanlar, karşıt görüşü hep zorbalıkla bastırmaya çalışıyorlar. Bunun adı da demokrasi...

Bir millet uyanamıyor...

29 Ekim 2010 Cuma

Hoşgeldin Iverson





Yeniler:




Közkamanlık

Başlıktaki ifadeyi ilk kez duyanlar çoğunluktadır. Açıkçası benim tanışmam da çok eskilere uzanmıyor. Kazak Rahmankul Berdibay'ın (Manas Destanından ilham alarak yazmış olduğu söylenen) "Baykal'dan Balkan'a" adlı kitabında bu ifade ilk kez vücut bulmuş. Kendisi Közkamanlığı şöyle tanımlamış:"Halk arasında fitne ve karışıklık çıkarıp, kendi başına buyruk olarak düşmanların maşası haline gelip, kendi yurduna hainlik yapan vefasız".

Peki çıkış noktası nedir bu Közkamanlığın? Şöyle anlatayım: Manas'ın amcası Hüseyin Kalmaklar'a esir düşer. Esir düştüğü topraklarda bir Kalmaklı bayanla evlenir ve çocukları olur. Ancak çocukları oralarda kaldığından, o toprakların dilini/kültürünü/terbiyesini almıştır. Çocuklarına Közkamanlar denmekteydi. Ancak çocukları şuursuz hale getirilerek, Kırgızlar içeriden yıkılmaya çalışılmıştır. Hiçbir insani duygusu kalmayan, kendi özlerine düşman olan bu Közkamanlar sadece servet ve şöhret peşinde koşmuş ve Kalmakların maşası olmuşlardır. Tek düşünceleri Manas'ı öldürmektir ve Kırgızları küçümserler ve onların neden Kalmakları örnek almadığını düşünürler. Bir gün Manas'a zehirli kımız içirirler ve onu neredeyse öldüreceklerdir. Ancak başaramamışlardır. Ardından birbirlerine girmişler ve kendilerini öldürmüşlerdir.

Közkamanlar ana dilini bilmeyen, milletinden ayrı/kopuk bir kültür ve terbiyede yetişen insanlar arasından çıkar. Berdibay'ın deyimiyle "kronikleşmiş korkunç bir hastalık"tır. Günümüzdeki Közkamanlara bakacak olursak: çoğu üniversite okumuş, yüksek kültürlü ve aydın diye bilinen kişilerdir. Başka milletlerin tarihlerini, felsefelerini ezbere bilirler. Ağızlarından demokrasi, insan hakları, barış, ifade özgürlüğü, kardeşlik sözleri hiç eksik olmaz. Ancak kendi milletine, tarihine ve bayrağına düşmanlıkta düşmanlarını bile sollarlar.

Yazıyı yine Berdibay'ın ifadeleriyle kapatalım:"Kendi milletinin tarihini bilmek ve bilmek istememek Közkamanlığın işaretidir. Onlar dünyadaki güzelliklerin hepsini başka bir memlekette arar, kendi memleketlerinde ise övünülecek ve örnek alınacak hiçbir şeyin olmadığını düşünürler."

Mesajın kime gittiğini anlayan anladı, sonra görüşürüz..

Cumhuriyet Bayramımız Kutlu Olsun

Orgeneral Işık Koşaner'in Bayram Mesajı:

Türk Silahlı Kuvvetlerinin Değerli Mensupları,
      Ebedî Başkomutan ve Büyük Devlet Adamı Mustafa Kemal ATATÜRK’ün önderliğinde Türk milletinin her türlü zorluk ve imkânsızlığa rağmen büyük fedakârlıklar ve şehitlerimizin aziz kanları ile yoktan var ettiği Türkiye Cumhuriyeti’nin 87’nci yılını kutlamanın onur ve gururunu yaşıyoruz.
      Cumhuriyet, ulusumuzun onurunu yücelten, çağdaş uygarlıkla bütünleşmesinin yolunu açan inanılması güç bir devrim ve Türk ulusunun karakterine en uygun yönetim biçimidir.
      Umutların tükendiği, her şeyin sona erdiğinin sanıldığı bir anda, Yüce Atatürk’ün önderliğinde “Ya istiklal ya ölüm!” parolasıyla bir ulusun yeniden dirilişinin ve tarihin ender kaydettiği bir başarının simgesi olan Cumhuriyet, her türlü tehlikeye karşı göğüs gererek ulusça birlik ve beraberlik içinde sonsuza dek korumamız ve yaşatmamız gereken en değerli varlığımızdır.
      Atatürk’ün Türk ulusuna armağan ettiği en önemli eseri olan Türkiye Cumhuriyeti’nin kuruluş felsefesinin temelinde; çağdaş yurttaş, toplum ve devlet ülküsüne ulaşmayı sağlayacak prensipler özenle yaşama geçirilmiş ve gücünü ulus iradesinden alan demokrasinin hayat bulmasının yolu açılmıştır.
      Cumhuriyet, Anayasamızda da güvence altına alınmış olan üniter devlet, ulus devlet ve laik devlet temellerine oturan Atatürk milliyetçiliğine bağlı laik, demokratik, sosyal bir hukuk devleti olma erdemine sahiptir.
      Değerli Silah Arkadaşlarım,
      Türk milletinin bağrından çıkan, Türk vatanseverliğinin çelikleşmiş ifadesi olan Silahlı Kuvvetlerimiz, bugüne kadar olduğu gibi bundan sonra da Cumhuriyetimizin temel değerlerinin, ulusal birliğimizin ve bölünmez bütünlüğümüzün güvencesi olmaya devam edecektir.
      Ulusumuzdan aldığı güç, sahip olduğu modern imkân ve kabiliyetler, üstün disiplin, yüksek moral gücü ve eğitim seviyesiyle Türk Silahlı Kuvvetlerimiz birlik ve bütünlüğümüze kastedecek her türlü tehdit karşısında daima göreve hazırdır ve milletinin emrindedir.
      Bütün değerleriyle, hukuk ve düşünce sistemiyle daima çağdaş bir kurum olan Türk Silahlı Kuvvetleri, bugüne kadar olduğu gibi bundan sonra da hukuka saygılı olmaya devam edecektir. Ancak hukuka saygının herkes tarafından dikkate alınması gereken bir zorunluluk olduğu ve gerçek anlamda hukuk devleti olgusuyla çağdaş ve saygın bir toplum olunabileceği aşikârdır.
      Dünyada ve bölgemizde meydana gelen son gelişmeler bir kez daha göstermektedir ki, ülkemizin bulunduğu bu zor coğrafyada güçlü Silahlı Kuvvetlere sahip olmak, varlığımızın, bekamızın ve esenliğimizin yegâne teminatıdır.
      Bu mutlu günde, bir neslin kendini feda ederek bizlere armağan ettiği Cumhuriyetimizin kuruluşunu gerçekleştiren başta Ebedî Başkomutanımız Mustafa Kemal ATATÜRK ve bu uğurda canlarını feda eden şehitlerimizin, ebediyete intikal etmiş komutanlarımızın ve gazilerimizin aziz hatıraları önünde bir kez daha saygıyla eğilirken Cumhuriyeti korumak uğruna ve bölücü teröre karşı yürütülen mücadelede şehitlik mertebesine ulaşan askerlerimizi rahmetle, kahraman gazilerimizi minnet ve şükranla anıyoruz.
      Bu duygularla, Cumhuriyetin erdemine, onun kazanımlarına ve temel değerlerine yürekten inanmış, silah arkadaşlığı çatısı altında sarsılmaz bir birlik ve vatana adanmışlık ruhuyla birbirine kenetlenmiş, Atatürkçü Düşünce Sistemini özümsemiş Türk Silahlı Kuvvetlerinin değerli mensuplarının ve ailelerinin Cumhuriyet Bayramını en içten dileklerimle kutlar, esenlikler dilerim.

28 Ekim 2010 Perşembe

Yetmez Ama Yetti Be!

Merhaba arkadaşlar,

Öncelikle başlığım tüm referandum kuşlarına gelsin. Her neyse asıl bahsetmek istediğim konuya döneyim. Yurdum insanı malumunuz çok merhametli, misafirperver ve de yardımseverdir. Ancak bu özellikleri diğer bazı yönleri gibi sömürülüyor ve kullanılıyor. Her gün her dakika, Filistin'e yardım; Pakistan'a yardım; Endonezya'ya yardım; adını sanını duymadığım ülkeye yardım... Yeter artık yaa. Bu ülke insanı açlıktan kırılırken, çöpçüler çöp tenekelerinden çıkan muzları yerken, aileler parkta kalırken, küçük çocuklar parasızlıktan okuyamazken nerede bu insanlar? Maşallah her Allah'ın günü yardım süsü altında, arkada bir fon müzikle kampanya reklamları var. Dönün de bir ülkenizin haline bakın. O ülkelerdeki insanlar Müslüman da, Türkiye'dekiler kafir mi?

Geçenlerde bir yazar çok güzel bir kelam etmiş:"Yeni Camii'de dilenir, Sultanahmet'te sadaka verir". Şu an bizi bundan güzel özetleyen cümle yok. Ülkenin üçte biri yoksulluk ve açlık sınırının altındayken, ne bu çığırtkanlık? Bir de dini motiflerle yapmıyorlar mı bunu, kafayı yiyorum. Dini bilseler içim yanmayacak. Düşünün bir kere, zekat verirken önce akrabaya veriliyor. Bunu hiç düşünmüyor musunuz?

Bizim insanımız aç, emekliler sürünüyor, yönetenlerde ve kurumlarda ses yok. Ama X ülkesi söz konusu olunca işadamlarından tutun da sokaktaki esnafa kadar herkes seferber. Aç bir adam dükkanından bir ekmek istese vermeyecek olan esnaf hem de bu(çok gördüm, öyle şey olmaz deemeyin boşa).. İETT, yani İBB, bile halka sormadan halkın parasını hibe ediyor!! Otobüslerde reklamlar boy boy.. Geçen gün haberlerde gösterdi, 1999 depreminde, evet yanlış okumadınız 1999 depreminde, mağdur olan depremzedeler hala prefabrik evlerde sefalet içinde yaşıyorlar. Başbakana derdini anlatmak isteyen kadıncağız da polis tarafından coplanıyor. Yerim ben Pakistan Yardımınızı! Salt gösteri için, oy için bu bayağı ve küçük hareketlerden nefret ediyorum. O zavallı kadıncağızın suçu bu ülkede yaşamak mı?

Akrabalarımdan duydum, bir de okullara zarflar gönderilmiş.. Çocuklardan da para topluyorlarmış. Önce çocuklardan güzellikle(!) alınan kayıt paralarını engelleyin. Doğu'daki okullarda soba ve yakacak ihtiyacı olduğunu okuyoruz. Birileri tüm okullara bilgisayar koyduk diye oy peşinde koşuyor, gelin görün ki okullarda henüz temel ihtiyaçlar sağlanamadı, sobalar maalesef yanmıyor.

Yazımıgüzel bir deyimle bitireyim:"Kendisi himmete muhtaç bir dede, nerde kaldı gayriye himmet ede"

Sonra görüşürüz..

The Answer is..

Şaka gibi.. Efsane 3 numara Beşiktaşımızda.. Kombine almadım da bu sene, kesin yönetim bilet fiyatlarını tavan yapacak ama the answer'ı izlemek için değer yaa. :)

24 Ekim 2010 Pazar

AVL Trees (AVL Ağaçları)

Merhaba arkadaşlar,

Bugünkü konumuz aynı zamanda Binary Search Tree sınıfına dahil edilebilecek olan AVL Trees. AVL ismini, mucitlerinden almış (mucit kelimesi uygun olmadı sanki?). Adelson-Velskii-Landis. Binary Search Tree'yi anlatırken bahsetmiştik, verilerin geliş sırasına göre şekillenen bir yapısı vardı BST'nin. Bu yüzden derinlik çoğu zaman alıp başını gidebilirdi(bir sürü alt node ortaya çıkar). İşte AVL Tree tam da bu noktada devreye giriyor. Dengeleme işlemi için geliştirilmiş olan bu ağaç yapısı, performansı arttırmak için sürekli olarak kendisini yeniden düzenler(re-organize). Yani bir düğümün(node) alt ağaçlarının yükseklikleri(derinlikleri) yaklaşık olarak aynıdır, demekte bu yöntem. Bu yüzden bu yönteme "height balanced tree" de denmektedir. Daha önce de belirttiğim gibi, bir düğümün sağında ve solunda kalan ağaçlarının derinliği yaklaşık olarak aynı değilse, yeniden düzenleriz.

AVL Tree metodunu kullanabilmek için balanced factor sayısını bulmalıyız.
balanced factor=(sağ alt ağacın derinliği) - (sol alt ağacın derinliği)
balanced factor değeri 0, +1, -1 değerleri çıkarsa sorun yok. Bu üç değer dışında bir sonuçla karşılaşırsak, o ağacı yeniden düzenleriz.

Yeniden düzenleme işi de dört adet şablona göre yapılır. Bu şablonlar olası dengesizlikleri ve nasıl çözüleceklerini söylerler. Yani bizim ağacımız hangi şablona uyuyorsa, çözümü de o şablona göre yapacağız.

1. Şablon

Yukarıdaki şablonda X ve Y birer node. A,B,C ise birer alt ağacı temsil etmektedirler. A ağacının derinliği h olsun. B ağacınınki de h, C ağacının derinliği ise h+1 olsun. Balanced factor'u hesaplayacağız. Y düğümü için hesaplarsak= sağ  alt ağacın derinliği - sol alt ağacın derinliği. (Sağ alt ağacı C. Sol alt ağacı ise B.)
Bu durumda= (h+1) - (h)= +1
Y düğümünün derinliği +1.

Şimdi X düğümü için bakalım. solunda bir alt ağaç var. A alt ağacının derinliği h demiştik. Sağ tarafını da anlarsanız bu konunun büyük kısmını bitirirsiniz. :) Sağ tarafta Y düğümü var. Y düğümünün altında B ve C vardı. Burada B'nin h, C'nin ise h+1 derinliği var. Yani Y düğümünün altında en fazla h+1 derinlikte ağaç var. Bir de kendisini katarsak(Y düğümünü), X düğümünün sağ tarafındaki derinlik h+2 olur. Tekrar anlatayım, sol tarafta A alt ağacının derinliği=h.    Sağ tarafta Y bir düğüm olduğu için derinliği +1, bir de altındaki alt ağacın derinliği h+1. Toplarsanız, h+2 de sağ tarafın derinliği olur. 
X için balanced factor ise=(h+2) - (h) = +2
Gördüğünüz gibi 0,-1,+1 dışında bir değer çıktı. Yeniden düzenleme yapmak durumundayız. 

Burada anlatılmak isteneni kabaca şöyle tarif edelim. Ağacınızda balanced factoru +2,+1 şeklinde düğüm varsa, ağacınızın iyileştirmesi aşağıdaki gibidir:



Bu da birinci şablonun çözümü olur. A ve B'nin derinlikleri h idi. X'in balanced factor'u 0 oldu. Y'ye gelelim. Sağ tarafında C'nin derinliği h+1 idi. Y'nin sol tarafında X'in derinliği  +1(çünkü X sadece bir düğüm), h derinliğine sahip alt ağaçları da var, ki onların derinliği de h. Toplamda h+1 de sol tarafın derinliği. Böylelikle Y'nin balanced factor'u= (h+1) - (h+1) = 0 olur.

Diğer şablonlar da aynen böyle. Diğer şablonlarda sadece derinlikleri yazacağım, açıklamaya gerek olmadığını düşünüyorum artık.

2.Şablon
X ve Y birer düğüm.
A, B, C birer alt ağaç. A ağacının derinliği h+1 olsun. B ağacınınki de h, C ağacının derinliği ise h olsun. Kısacası, düğümlerinin balanced factor'u -2(X) ve -1(Y) olan ağacınız varsa, bu şablonun çözümü sizin için.
Çözümü ise:

 3.Şablon
 X, Y ve Z birer düğüm.
A, B, C, D birer alt ağaç. B ağacının derinliği h-1 olsun. A, C ve D ağaçlarının derinliği ise h olsun. Kısacası, düğümlerinin balanced factor'u +2(X), -1(Y) ve +1(Z) olan ağacınız varsa, bu şablonun çözümü sizin için.

 Çözümü ise:


4.Şablon

 X, Y ve Z birer düğüm.
A, B, C, D birer alt ağaç. C ağacının derinliği h-1 olsun. A, B ve D ağaçlarının derinliği ise h olsun. Kısacası, düğümlerinin balanced factor'u -2(X), +1(Y) ve -1(Z) olan ağacınız varsa, bu şablonun çözümü sizin için.





Çözümü ise:





Ağacınız hangisine uyarsa, onu baz alırsınız. Tüm şekilleri az önce tek tek elle çizdim, ki zaten beni tanıyanlar bozuk ve yamuk şekilllerden hemen anlamıştır. :)
Derinliklere ve balanced factor'lere dikkat ederseniz, çok çok kolay bir yöntemdir.

Görüşmek üzere..

Hürriyet ve "Uzun Etek" Olayı

Bazı gazeteler vardır, rengi bellidir. Salt küfretmek, çamur atmak için yazarlar. Özellikle ulusalcı kesime saldırmak için her şeyi bir taraflarından uydururlar. Ancak Hürriyet'te dün öyle bir haber vardı ki yuh dedim. Tamam, ulusalcı takılıyorsun, ki ben de ulusal değerleri koyu şekilde savunurum, birşeyleri ispatlamak istiyorsun da... Sırf haber yapmak için komik yazılar yazıp hem kendini hem de sözde temsil ettiğin ulusalcıları rezil etmenin bir anlamı yok.

http://www.hurriyet.com.tr/gundem/16116515.asp?gid=373 bağlantısına bakarsanız, Sakarya Valisinin davetiyeye uzun etek yazdırdığını ve bunun çok manidar olduğunu yazmışlar. Hatta davetiyeyi de göstermişler...

Cehaletin gözü kör olsun. Hadi yazan kişi cahil ve zeka geriliği yaşıyor, bu gazetenin kontrol mekanizması da mı yok? Uzun etek kavramına bakacak olursanız, full-length dress'in dilimize uyarlanmış hali olduğunu göreceksiniz. Yani bildiğiniz gece elbisesi!

Bakın aşağıda ne vaaaaaaar..




Evet doğru okudunuz. Çok saygıdeğer, eski Cumhurbaşkanımız Ahmet Necdet Sezer'in resepsiyon daveti. Altta ne yazıyor? Uzun etek...

Lütfen haber yazmadan önce biraz okuyun, araştırın. Lütfen...

16 Ekim 2010 Cumartesi

Nuri vs Podol$ki

Geçen gün oynanan Köln-Dortmund maçındaki Podolski terbiyesizliğini ve Nuri'nin ona yaptığı kapağı anlatacağım.

Podolski, maçın 89. dakikasında Nuri'ye sert bir faul yapar. Nuri buna tepki gösterirken, Podolski de resimdekiler gibi tepki verir...



İlk resimde "nassı koyduuuk" derken, ikinci resimde aslında hangi maçtan bahsettiğini gösteriyor(Almanya-Türkiye). Batının çirkin ve ahlaksız yüzünü bir kez daha gözler önüne seren bu pislik herif, çok geçmeden rögarı alıyor. :)


Uzatma dakikalarında sahneye çıkan Nuri, deplasmanda Dortmund'a 3 puanı getiriyor ve Podolski'ye hareketini çekiyor :)
Koşarak sevinen Nuri, Podolski'nin yanına gelince resimdeki hareketi kendisine çekiyor. :D Bu da Dortmund kalecisinin podolskiye tepkisi..
Aslında bu maçı Dortmund'a kazandıran Podolski olmuştur. Nuri'yi hırslandırıp, gole zemin hazırlamıştır.

Nuri'yi süper oyunu ve bu güzel cevabından ötürü kutluyorum...

6 Ekim 2010 Çarşamba

Dogville(2003)

2003 yapımı filmi geçenlerde izledim. Çok basit, ucuz ve sıradan bir yapım olmasına rağmen verdiği mesaj o kadar sert ve doğru ki, bütün olumsuz yönleri size unutturacak cinsten. Tiyatro havasındaki sahneleri filmin başında tuhaf gelse de, herkese ve her konuya aynı anda hakim olduğunuzu hissettirmesi çok hoş bence. :)

Filim insanların gerçekten de neredeyse köpeklerden farksız olduğunu anlatmış. Zaten ismi de bu yönde. Karşınızdaki insanın zaafını öğrenince ondan nasıl yararlanabileceğinizi kötü sahnelerle bize geçirmiş ama bu konuda oldukça başarılı olmuşlar diyebilirim.Filmin sonundaki intikam sahnesi ise mükemmeldi. Sadizmin yer yer kendini gösterdiği sahneler yok değildi ama yine de böyle bir final iyi durdu. :)

Alakasız bir filmin alakasız bir yorumlamasıydı. :)

Sonra görüşürüz..