Korku

Hatırladığım en eski korkum karanlıktan korkmamdır. Küçükken tuvalete yalnız bile gidemezdim, her seferinde kardeşimi de kaldırırdım. Artık ayrı ülkelerdeyiz, böyle bir lüksüm kalmadı. Hala geceleri tuvalete giderken yol boyunca ışıkları açarım. İşim bitince de ters sırada ışıkları kapatırım ama şimdi bile bu sırada adımlarımı hızlandırırım.

İlkokul sırasında turşucunun evinden amcam ve komşuları Nuri amcanın bahçelerinde yaptırılan yeni apartmanın üçüncü katına taşınmıştık. İlk kez karanlık merdivenleri olan bir yerde yaşayacaktım. Merdivenlerin ışığı zamanlı otomatik devreyle çalışıyordu, yani ışıkları yaktıktan sonra koşmam gerekiyordu. Işıklar sönmeden düğmeye basmak zamanı uzatıyor muydu bilmiyorum ama her seferinde ara katlardaki düğmelere de basardım.

Bu evde beni merdivenlerden daha çok korkutan bir şey daha vardı. O da bodrumdu. Bodrumun ışığı otomatik değildi. Yani ışığı elle kapattıktan sonra karanlıkta koşmam gerekiyordu. Normal yerlerdeki karanlık korkuma neden olan şey neydi bilmiyorum ama bodrumdan korkmama sebep olan şey dedemin hayaletiydi. Dedem kendimi bildim bileli hastaydı. Gırtlak kanseri. Gırtlağında bir delikle yaşıyordu. Buna yaşamak denirse. O gırtlaktan sürekli iğrendiğim sıvılar çıkardı ve bezlerle temizlenen bu sıvılar yanındaki bir çöp kutusuna atılırdı. Ben uzaktan buna dayanamazken o nasıl dayanıyordu hiç anlayamazdım. Bütün bunlara rağmen ölümü benim için çok ani olmuştu. Dedemin cenazesini de hatırlamıyorum ama benim için ruhu, dedem öldükten sonra kutsal kitaplar ne derse desin bizim evin bodrumuna taşınmıştı. Artık okula giderken ya da okuldan gelirken pasajdan, bahçeden ve bodrumdan geçen, gerçek bir doğru şeklinde olan en kısa yolu mecbur kalmadıkça kullanmadım. Hep B kapısının (donanmanın askeri kapısı) karşısındaki, kaymakamın lojmanının önünden geçen yolu kullandım.

Arada babamla bodruma indiğim olurdu. Kömürü bodruma taşırken ya da babam Cemil abimin PVC kaplama makinelerini yaparken ona yardım etmek için. Aslında yardım ettiğim söylenemezdi. Belki babamdan elektronik öğrenirim diye umuyordum ama ne teorik ne de pratik olarak elektronik öğrenmek kısmetimde yokmuş. Heralde babamın bile anlayamadığı bir durumdu. Ortaokul başından beri hiçbir dersimde bana yardımcı olamayan lise mezunu bu adamın elektronik bilgisi Boğaziçi elektroniği bitirdiğimde bile hala benimkinden çok çok ileriydi.

Yalnızca bir kere mecbur olmadığım halde bodrumda isteyerek biraz zaman geçirmiştim. Kısa bir süre önce amcamların evinde girişteki dolapta kuzenimin erotik dergilerini bulmuştum. Amcamların evi de sürekli açık olurdu. Aşağıda amcamın bakkal dükkanında biri olduğu sürece evde kimse olmasa bile kapı kilitli olmazdı. Ben de sık sık eve gidip gelirdim. Yine bir seferinde evde kimse yokken dolaptan bir dergi alıp okuyabileceğim bir yer aramıştım ve aklıma bodrum gelmişti. Bodrum kimsenin kullanmadığı bir yerdi. Işığı açıp kömürlerin yanında merdivenlerin en alt basamağına oturup dergiyi karıştırmaya başladım. Dergi demek o kadar ilginç gelmişti ki, dedemin hayaleti o gün bodrumda değildi. Birden bahçe tarafından kapının açıldığını duydum. Dergiyi kömürlerin üzerine atmaktan başka bir hareket yapamadım, donup kalmıştım. Pasajda kuaför dükkanı olan İlknur abla yanımdan geçti. Önce bana, sonra kömürlerin üzerindeki dergiye bir göz attı ve sonra bana gülümseyip devam etti. Ondan sonra ne olduğunu tam hatırlamıyorum ama dergiyi götürüp dolaba geri koydum sanıyorum. Orada bırakmamışımdır heralde. Eve de götürmemişimdir. Evet, evet, dolaba geri koymuş olmalıyım. Bodrumla ve dolayısıyla dedemin ruhuyla ilgili hatırladığım son anım da budur.

Bu yaşa geldim, hala yalnızken karanlıktan korkarım. Yalnız uyurken kabuslar görürüm ya da kabus görmekten korkarak uyuyamam. İlginçtir, kabuslarımda dedemi değil de babaannemi görürüm, oysa onunla ilgili çok ve güzel anılarım vardır. Belki de bir bahane bulup cenazesine gitmediğim için kendimi cezalandırıyorumdur ya da nasıl olsa korkacağım, bari sevdiğim biri korkutsun diye çabalıyorumdur.

Bana yapacakları şeyleri korkarak düşündüğüm o kadar şeye rağmen doktorlara, dişçilere gidiyorum ama bu basit korkumu belki tedavi edebilir diye bir psikoloğa gitmeyi şimdiye kadar hiç düşünmedim. İleride de gideceğimi sanmıyorum. Yoksa ben bu korkuyu seviyor muyum? Yok ya, o kadar da manyak değilimdir.

Mantıksızlıkta bugün

Bir arkadaşım bir süredir quora adresindeki bazı soruları ve cevapları gönderiyordu. Bugünkü gönderi eğlenceliydi. Link yerine sadece soruyu vereceğim:

Why are home DNA ancestry tests banned in Turkey?

Bu sorunun altına tabii ki etnik, Türklerin barbarlığı, işlediği insanlık suçları gibi nedenlerden ötürü testlerin yasak olduğu gibi açıklamalar yazılmış. Ben de bu basit soruya daha değişik ve daha basit cevaplar bulmaya çalışacağım.

Aklıma ilk gelen örnekler:

1, 2’den büyük olduğu için bu testler Türkiye’de yasaktır.

Papa Türk olduğu için bu testler Türkiye’de yasaktır.

Türkiye’de hiçbir sorun olmadığı için bu testler Türkiye’de yasaktır.

Bu örnekler tabii ki daha da çoğaltılabilir.

Acaba bu örnekler gerçekten de bu soruya cevap olabilir mi? Önce cevapta verilen şu nedene bakalım. Türk milleti uydurulmuş bir millettir, aslında bireyler müslümanlaştırılmış başka milletlerdir, bu ortaya çıkmasın diye testler yasaklanmıştır.

Bu cevapta kullanılan önermeleri yazmayı deneyeyim:

Bir şeyin ortaya çıkmasını istemiyorsak bunu engellemeliyiz.

Testler bireylerin aslında Türk olmadığını ortaya çıkaracaktır.

Türk diye biri yoksa Türk milleti de yoktur.

Türk milletinin uydurulmuş bir millet olduğunun bilinmesini istemiyoruz.

Bu önermeler cevabın mantıklı olabileceğini gösteriyor ama bir sorun var. O da testlerin Türkiye’de yasak olmaması. O zaman en azından “bir şeyin ortaya çıkmasını istemiyorsak bunu engellemeliyiz önermesi” sorunlu oluyor, çünkü öner sürülen nedenlerle soruda verilen sonuç arasındaki bağlantı burada. Kısaca sonuç yanlış olduğu için bir bağlantı yok. Eğer bağlantıya gerek yoksa yukarıda verdiğim örneklerle aynı yanlış sonuca daha çabuk ulaşabiliriz gibi geliyor bana.

Ödev yardımları

Nadir de olsa arada sırada arkadaşlarım, tanıdıklarının, akrabalarının, olası kız arkadaşlarının ödevlerini yapmam için benden yardım isterler. Uzun zamandır bu ödevleri yapmıyorum, en fazla nasıl yapılacağını anlatıyorum.

Ortaokul boyunca resim ödevlerimi babam yapmıştı. Belki de diğer derslerde bana yardım edemediği için bunu yapmayı kabul etmişti, bilmiyorum ama bunun bana pek faydası olmadı açıkçası. Şimdi hiç önemi kalmamış birkaç takdir belgesi dışında resimle tanışmamı da yirmi otuz yıl geçiktirdi sadece.

Son olarak üniversitede programlama ödevlerimi Taşkın’a yaptırmıştım. O programlamada çok iyiydi ve ben bu konuyla hiç ilgilenmiyordum. Tabii ki aynı ödevi asistanların anlamayacağı şekilde iki değişik programla çözmek kolay olmadığından sonunda yakalandık ve ikimiz de bir ödevden sıfır aldık. Ben o dersi bıraktım sonra, yani final sınavına girmedim. Ertesi sene o dersin bütün ödevlerini kendim yaptım ve daha sonra da elektronik mühendisi olarak çalışmak yerine yazılımcılığa geçtim.

Daha sonraki yıllarda arkadaşlarımdan, akrabalarımdan ödevlerini yapmam doğrultusunda istekler geldi. Hayır diyemediğim zamanlardı. Her seferinde de aynı senaryo olurdu. Ödev için çok az zaman kalmıştır. Ödevde ne yapılacağı yardım isteyen kişi tarafından tam bilinmez ve konu uzmanlık alanım değildir. Yani sorularıma hep “yap bir şeyler işte” cevabını alırım. Ödev benim açımdan bittiğinde ve ödevi teslim ettiğimde olmuş mu diye sorarım ve asla bir cevap alamam.

Bir sefer, iki sefer bu kazığı yedim. Daha sonra ödev yapmamaya başladım. Başta da dediğim gibi en fazla nasıl yapılacağını anlatırım, gerisini kendi yapsın. Para karşılığı da olsa yapmam. Belki astronomik bir ücret karşılığı. Ucuza böyle sefillik bir daha yaşamak istemem.

Bu kadar akıl verdikten sonra dün ne yaptım peki? Bir arkadaşın akrabasının ödevini tabii ki. Çocuğun hangi bölümde okuduğunu bile bilmiyoruz. Bildiğimiz şeyler ödevin acıl yapılması lazım, çocuk programlamadan anlamıyor ve büyük ihtimalle konuyu da bilmiyor. İlk tepkim, “abi bırak çocuk bu dersten kalsın, vallahi herkes için daha iyi olur” demek oldu ama sonra yapılacak iş üç bilinmeyenli üç denklem çözen bir program olduğundan evet dedim. Kaygısızca, hiç ekstra enerji harcamadan, sadece o işi yapan bir program yazdım.

Artık hoca bu ödevi o çocuğun yapmadığını mı anlar, ya da ödevde istenen başka bir şey miydi, umrumda değil açıkçası. Bence hoca durumu çaksın diye yeterince ipucu bıraktım ama akademideki herkes de çok iyi olmak zorunda değil.

Ödeviniz, projeniz olursa yardım isteyin tabii ki. Eğer bildiğim bir alansa gaz ve toz bulutundan başlayıp her şeyi anlatabilirim. Ödevi yapılması gerektiği şekilde yapmam ama.

Good suffix rule (Boyer-Moore algoritması)

Boyer-Moore metin arama algoritması serisinde öğrenmeye çalışacağım ikinci algoritma good suffix rule adı altında biliniyor. Aranan metnin ne kadar sağa kayrıdılacağını belirleyen iki kuralın ikincisi ve diğer yöntemden (bad character rule) biraz daha karışıkmış.

Bad character kuralında sadece uyumsuzluk olan noktadaki karaktere bakmıştık. Bu sefer uyumsuzluğun olduğu noktadan önceki sonek kısmına bakacağım, çünkü aranan metni uyumsuz noktanın sağındaki karakterler de birbirine uymazken, sadece uyumsuzluk olan yerdeki karakterin doğru olacağı şekilde kaydırmak yeterli olmayacaktır. Yani bu şekilde bir kaydırmada aranan metnin bulunamayacağı açıktır.

Örneğin aradığımız metin HAABH ise ve aşağıdaki bir durum oluşmuşsa algoritmamız sağdan sola doğru karakterleri kontrol edecek ve en sondaki BH kısmının uyduğunu ve sonraki konumdaki H ve A karakterlerinin uyumsuz olduğunu görecek.

... A B A B H A A H B H ...
              H A A B H

Bu durumda daha önceden anlattığım bad character kuralı aranan metni sadece iki karakter sağa kaydırmayı teklif edecek, çünkü bir sonraki H karakteri iki karakter daha solda.

... A B A B H A A H B H ...
                  H A A B H

Burada ana metindeki sonekin (BH) aranan metinde eşleşen kısımdaki altmetne (AA) uymadığını kolayca görebiliriz. Demek ki bad character kuralı bize kaydırma miktarıyla ilgili yeterli bilgi vermiyormuş. Bu bilgiyi kullanmanın yolu da sonekin aranan metinde daha solda mevcut olup olmadığını kontrol etmek. Eğer varsa bu daha soldaki sonekle uyuşan kısmı ana metindeki sonekin altına getirecek kadar kaydırmak yeterli olabilir. Tabii ki bu noktada küçük bir optimizasyon yapmayı da düşünebiliriz. Örneğin son ekten hemen sonraki uyumsuz karakteri de aranan metindeki bir sonekle uyuşan bir sonraki altmetnin hemen sonunda arayabiliriz ama burada küçük bir sorun karşımıza çıkacak gibi. Hedefimiz sadece aranan metni kullanarak bu kaydırma miktarlarını hesaplamak, böylece aramaya başlamadan önce bir kereliğine bütün bu hesaplamaları yapabiliriz. Elimizde sadece aranan metin varsa da o uyumsuz noktada (yani sonekin hemen solundaki konum) hangi karakterin olduğunu henüz bilmiyoruz. Evet bu ciddi bir engel ama bunu aşmak için o noktada uyumsuz olabilecek bütün karakterler için bu hesapları bir kereliğine yapabiliriz. Buradaki sorun da hem bu bir kerelik işlemin oldukça uzun sürmesi hem de bütün bu bilgiler için hafızada çok fazla yer tutmamızın gerekmesi olacaktır. Bunun yerine çok daha basit bir bilgiyi kullanarak bazı durumlarda işimize yarayacak bir optimizasyon elde edebiliriz ama. O da, aranan metindeki daha soldaki sonek tekrarını ararken bulduğumuz altmetnin solundaki karakterin aranan metinde uyumsuzluğun olduğu karakterden farklı olup olmadığına bakabiliriz. Eğer aynıysa bu altmetin işimize yaramayacaktır çünkü altmetni kaydırdığımız zaman aynı uyumsuzluğu aynı yerde bir kere daha bulacağız. Örneğin aradığımız metnin BABHAABH olduğunu varsayalım ve aşağıdaki durumu inceleyelim.

... A B A B H A A H B H ...
        B A B H A A B H

Sağdan sola baktığımızda bulduğumuz uyumsuzluk üçüncü konumda (H ve A) ve sonekimiz BH. BH dizisini aranan metinde solda aradığımız zaman bir kere daha buluyoruz ama BH’nın hemen solundaki karakter en sonda olduğu gibi yine A. Bu durumda sonekleri altalta gelecek şekilde kaydırırsak aşağıdaki durumu elde edeceğimiz açık.

... A B A B H A A H B H ...
                B A B H A A B H

Yani aynı konumda yine aynı uyumsuzluğu (H ve A) elde edeceğiz. Bu uyumsuzluğun ana metindeki H karakterinden bağımsız olacağına dikkat edelim. Yani soneki aranan metinde sola doğru ararken bu sonekin hemen solundaki karakterin farklı bir karakter olmasına dikkat etmeliyiz. Aynı karakter ise aramaya devam edeceğiz, farklı ise aradığımız kaydırma miktarını bulduk diyeceğiz.

Bu linkte burada anlamaya çalıştığım algoritma için gerken tabloyu hesaplayan bir simulasyon hazırladım.