Su kulesi (Mannheim)

Mannheim şehrinin en ünlü eserlerinden birisi Su Kulesi’dir. İnşasının bittiği 1889 yılından 1909 yılına kadar şehrin içme suyu ihtiyacını karşılayan bu kule, 1909 yılından sonra Luzenberg su kulesinin inşasıyla beraber 2000 yılına kadar sadece su deposu olarak kullanılmış.

Kulenin ve çevresindeki parkın süslemelerinde mitolojik figürler kullanılmıştır.

Kulenin en tepesinde bir balığın üzerinde elinde üç dişli mızrağıyla, tanrı Poseidon’un eşi Amphitrit heykeli bulunmaktadır.

Tanrıça Amphitrit

Kulenin iki yanında deniz kabuğundan yapılma borularına üfleyen iki adet Triton heykeli var. Triton tanrı Poseidon ve Amphitrit’in çocuklarıdır. Belden yukarısı insan, belden aşağısı da balıktır.

Triton

Kulenin duvarlarında ne olduklarını bilmediğim başka figürler de var.

Bu figürler kulenin çevresi boyunca sadece bu sırada sürekli tekrarlanıyor.

Bu da yukarıdaki figürlerin daha altında ve kulenin çevresi boyunca kullanılan bir figür.

Kulenin anayola bakan tarafında içinde dört tane triton figürü olan bir havuz var. Sıcak mevsimlerde bu havuz su dolu olur ve figürlerin ağızlarındaki borulardan su fışkırtılır.

Bu figürlerde kuledekilerin aksine deniz kabuğundan bir boru bulunmamakta.

Kulenin diğer tarafında ise daha büyük bir yeşil alan ve havuz bulunmaktadir. Bu alanın etrafı yine değişik figürlerle süslenmiştir.

Büyük havuzun iki tarafında ise birer tane centaur heykeli var. Centaurlar yarı insan yarı at şeklindeki mitolojik yaratıklardır.

Parkın en ucundaki duvarda da sekiz insan figürü var. Bunların da ne olduğunu bilmiyorum.

Bir geometri sorusu tipi

Bu yazıda internet sitelerinde sık sık gördüğüm bir geometri sorusu üzerine düşüneceğim. Yine aynı sitelerde verilen çözüm yöntemi üzerine de aklıma takılan noktaları inceleyeceğim.

ABC üçgeninin ikizkenar üçgen olduğu verilmiş. EDA açısının değeri soruluyor. Bu aynı zamanda A açısının da değeri çünkü AED üçgeni de ikizkenar. Bu tür soruların çözümünde genelde yardımcı çizimlerle bir eşkenar üçgen elde edilmeye çalışılıyor ve bu sayede bütün açı değerleri hesaplanabiliyor. Bu soru için verilen yardımcı çizim de şu şekildeydi:

|DV| = |BV| = |BD| olacak şekilde bir V noktası seçilmiş. Ya da VDB açısı 60 derece olacak şekilde bir DV doğrusu ve DBV açısı yine 60 derece olacak bir doğru çiziliyor ve bu iki doğrunun kesiştiği noktaya V deniyor. Bu şekilde açı hesaplarını yaparsak da şu sonucu elde ediyoruz.

\(\angle{BAC} = \alpha \)

\(\angle{ACB} = \frac{180 – \alpha}{2} \) (ABC üçgeni ikizkenar olduğundan)

\(\angle {CVB} = \frac{180 – \alpha}{2} \) (Çizim sayesinde BVC üçgeni ikizkenar olduğundan)

\(\angle {VBC} = \angle {ABC} – 60 = \frac{180 – \alpha}{2} – 60 \) (ABC üçgeni ikizkenar ve DBV açısı da çizim nedeniyle 60 derece).

Şimdi BVC üçgeni için açıların toplamını yazarsak basit bir denklem buluruz.

\(\angle {VBC} + \angle{BCV} + \angle {CVB} = 180 \)

Yukarıdaki değerleri de yerlerine koyalım:

\(\frac{180 – \alpha}{2} – 60 + \frac{180 – \alpha}{2} + \frac{180 – \alpha}{2} = 180 \)

\(3 \cdot \frac{180 – \alpha}{2} – 60 = 180 \)

\( 3 \cdot \frac{180 – \alpha}{2} = 240 \)

\(3 \cdot (180 – \alpha) = 480 \)

\(180- \alpha = 160 \)

\(\alpha = 20 \)

Böyle güzel bir yardımcı çizimle elde edilen bu basit çözüm beni neden rahatsız etti peki?

Aklıma takılan soru baştan beri hep şu oldu: V noktasının AC kenarı üzerinde olduğunu nereden biliyoruz? BVD üçgeninin eşkenar olacak şekilde çizilebileceğinden şüphem yok ama V köşesinin ABC üçgeni üzerinde olmasını sağlayan bir şart var mı ve eğer varsa bu ne? Eğer yoksa bunu nasıl gösterebilirim?

Önce bu çizimi geogebra’da yaptım ve gerçekten de V köşesi AC kenarı üzerine geldi, bütün açılar ve mesafeler de problemde verilen özelliklere sahip oldu. O zaman ikna olmam çok zor olmamalıydı. Bu sefer o çizimi başka şekilde nasıl elde ederim diye düşünmeye başladım ve şu sonuca ulaştım.

Altmış derecelerle başlamak yerine DVE üçgeni ikizkenar olacak şekilde başlayabilirim. Bu şekilde AC kenarı üzerinde her zaman bir V noktası bulabilirdim. Peki bu V noktasını B noktası ile birleştirirsem ne olur?

Hemen şu şekli ve açıları elde ederiz.

\(\angle {DAE} = \angle {EDA} = \alpha \) (ADE üçgeni ikizkenar üçgen)

\(\angle{DEV} = 2\alpha \) (DAE üçgenindeki dış açı komşu olmayan iç açıların toplamına eşittir)

\(\angle {EVD} = \angle {DEV} = 2\alpha \) (DEV üçgeni ikizkenar üçgen)

\(\angle {BDV} = 3\alpha \) (\(\angle{ADE} + \angle{EDV} + \angle{BDV} = 180\) ve \(\angle{DEV} + \angle{EVD} + \angle{VDE} = 180\). Buradan da \(\angle {BDV} + \angle{ADE} = \angle{DEV} + \angle{EVD} \) çıkar. Sonuç olarak da \(\angle {BDE} = 2\alpha + 2\alpha – \alpha = 2\alpha\) çıkar).

\(\angle {DBE} = \angle {DVB} = \frac{180 – 3\alpha}{2}\) (DBV ikizkenar üçgen)

\(\angle {ACB} = \frac{180-\alpha}{2}\) (ABC ikizkenar üçgen)

\(\angle{CBV} = \angle {ABC} – \angle{DBV} = \frac{180-\alpha}{2} – \frac{180 – 3\alpha}{2} = \alpha\) (ABC üçgeni ikizkenar üçgen)

\(\angle{CVB} = \frac{180 – \alpha}{2} \) (BVC üçgeninin iç açıları toplamı 180 derecedir ve buradan da BVC üçgeninin ikizkenar üçgen olduğu çıkar)

\(\left| BV \right| = \left| BC \right| \) (BVC üçgeni ikizkenar üçgen)

BDV üçgeni eşkenar üçgendir çünkü \(\left| BD \right| = \left| DV \right| = \left| BV \right| \)

\(\angle{BDV} = \angle{DVB} = \angle{VBD} = 60\) (BDV üçgeni eşkenar üçgen)

\(3\alpha = 60 \rightarrow \alpha = 20 \)

Demek ki o eşkenar üçgen çizme yöntemi bu üçgende işe yarıyormuş ama bence bu iyi bir problem çözme yöntemi değil. Öncelikle bu heralde sadece 80-80-20 (iç açılar) ikizkenar üçgeninde işe yarar ve hiçbir açı verilmediğinden bu çizimi yapabilmek cevabı bilmeyi gerektirir. Bunun yerine yukarıdaki ikizkenar üçgen ile başlama hiçbir şekilde böyle bir ön bilgi gerektirmemekte ve aynı sonuca ulaşmakta.

Hislerim bu sefer doğru çıkmadı ama en azından bu soru için artık rahatça ikna olabilirim.

Monte Carlo yanılgısı (Kumarbaz yanılgısı)

Üniversitede elektronik okumak istiyordum, çünkü aklıma gelen her şey için elektronik devre yapabileceğimi hayal ediyordum. İlk yıllarda bölümün düşündüğüm gibi olmadığını anlayınca bir boşluğa düşmüş oldum. Ne yapabilirim diye düşünürken dördüncü sınıfta aldığım bir dersten sonra istediğim devrelerin çoğunu yazılımla yapabileceğimi farkettim. O andan itibaren tamamen yazılıma kaydım.

Zaman geçtikçe deneyler de ilgimi çekmeye başladı. İlginç bir şekilde okulda deneylere yatkındım ama tembeldim. Deney yapmayı okul hayatım bittikten sonra daha çok sevmeye başladım. Kimya, elektronik deneyleri için bodrumda laboratuvar bile kurdum.

Çok daha sonraları deneylere bilgisayarı da ekledim. Genelde veri toplama ve işleme için kullandım. Son zamanlarda simülasyonlar ve olasılık deneyleri için de programlar yazmaya başladım.

Bugün kumarbaz yanılgısını denemek istedim. Simülasyonda bir kumarbazımız var. Bu kumarbaz yazı tura oyunu oynuyor. Parayı attıktan sonra tahminde bulunuyor ve eski tahminleri de not alıyor. Merak ettiğim şey şuydu: Eğer kumarbaz kararını eski sonuçlara göre verirse rastgele bir karara göre nasıl bir ortalama tutturabilir? Daha iyi mi daha kötü mü?

Bunun için çeşitli stratejileri karşılaştırdım:

  1. Kumarbaz daha önce gelen sonuçları not alır ve eğer daha fazla tura gelmişse yazı, daha fazla yazı gelmişse tura der. Eğer eşit sayıda yazı ve tura gelmişse rastgele karar verir. Bunun da değişik türleri olabilir. Örneğin toplamlar arasındaki fark belli bir sayıdan büyükse bu şekilde davranır, fark küçükse rastgele cevap verebilir.
  2. Kumarbaz her yazı tura atışı için aynı cevabı verir. Hep yazı ya da hep tura.
  3. Kumarbaz her yazı tura atışı için rastgele bir cevap verir (Örneğin başka bir parayla yazı tura atar ve onun sonucunu söyler).

Çok daha farklı stratejiler de bulunabilir elbette ama hedeflerim sadece basit durumları denemek ve kolayca deney tasarlayabileceğim bir sistem kurmak olduğundan burada bıraktım. Şimdi kısaca deneyden ve sonuçlarından bahsedeyim.

Deney programını R dilinde yazdım. Her deney adımında 10000 yazı tura atıldı ve stratejiler doğru tahmin sayılarına göre birbirleriyle karşılaştırıldı. Kazanan strateji o tur için bir puan aldı, diğerleri ise sıfır. Eşitlik durumunda eşit skor alan stratejiler birer puan aldı. 1000 deney sonucunda her stratejinin puanı listelendi.

convert <- function(v) {
  if(v == 'T') {
    1
  } else {
    -1
  }
}

call <- function(v, offset) {
  if(v < -offset) {
    'T'
  } else if(v > offset) {
    'H'
  } else {
    if(sample(c(1, -1), size=1) == 1) {
      'T'
    } else {
      'H'
    }
  }
}

filter_max <- function(l) {
  which(sapply(l, function(x) l[1] %in% x));
}

experiment <- function() {
  number_of_experiments <- 1000;
  constants_H <- "constants_H";
  constants_T <- "constants_T";
  gambler <- "gambler";
  gambler_with_offset_1 <- "gambler_with_offset_1";
  gambler_with_offset_2 <- "gambler_with_offset_2";
  gambler_with_offset_3 <- "gambler_with_offset_3";
  random <- "random";
  counter_gambler <- 0;
  counter_random <- 0;
  counter_constant <- 0;
  counters <- c(constants_H = 0, constants_T = 0, gambler = 0, gambler_with_offset_1 = 0, gambler_with_offset_2 = 0,
                gambler_with_offset_3 = 0, random = 0);
  scores <- c(constants_H = 0, constants_T = 0, gambler = 0, gambler_with_offset_1 = 0, gambler_with_offset_2 = 0,
              gambler_with_offset_3 = 0, random = 0);
  for(i in 1:number_of_experiments) {
    number_of_trials <- 10000;
    coin <- c('T', 'H')
    coins <- sample(coin, size = number_of_trials, replace = TRUE);
    converted_coins = lapply(coins, convert);
    sums = cumsum(converted_coins);

    gambler_guesses = lapply(sums, call, offset = 0);
    gambler_guesses_1 = lapply(sums, call, offset = 1);
    gambler_guesses_2 = lapply(sums, call, offset = 2);
    gambler_guesses_3 = lapply(sums, call, offset = 3);
    random_guesses <- sample(coin, size = number_of_trials, replace = TRUE);
    constant_guesses_H <-sample(c('H'), size = number_of_trials, replace = TRUE)
    constant_guesses_T <-sample(c('T'), size = number_of_trials, replace = TRUE)

    scores[constants_T] = sum(constant_guesses_T == coins);
    scores[constants_H] = sum(constant_guesses_H == coins);
    scores[gambler] = sum(gambler_guesses == coins);
    scores[random] = sum(random_guesses == coins);
    scores[gambler_with_offset_1] = sum(gambler_guesses_1 == coins);
    scores[gambler_with_offset_2] = sum(gambler_guesses_2 == coins);
    scores[gambler_with_offset_3] = sum(gambler_guesses_3 == coins);
    sorted <- scores[order(unlist(scores), decreasing = TRUE)];
    maximum_values <- filter_max(sorted);
    for(x in maximum_values) {
      counters[names(maximum_values[x])] = counters[names(maximum_values[x])] + 1;
    }
  }
  print(counters);
}


Programın son hali bu ama ilk denememde sadece kumarbazın en basit stratejisiyle (daha fazla tura gelmişse yazı, daha fazla yazı gelmişse tura demek) rastgele karar verme stratejisini karşılaştırmıştım. Onun sonuçları ilk bakışta bir sürpriz olmuştu.

1000 deney sonucunda
Kumarbaz = 85
Rastgele = 916

Toplam 1000 deney yaptım ve kazanma toplamları 1000’den fazla olduğuna göre bir deneyde ikisi de eşit skor tutturmuş olmalı. Kumarbaz yanılgısı durumu bildiğim bir olaydı ama durumun ciddiyetinin bu derece olduğunu beklemiyordum. Bu arada küçük bir not da ekleyeyim, bu kavramı biliyordum dedim ama bunun hesaplarını daha önce hiç yapmadım. Bu deneylerin amacı da hesap yapmak değil sadece bu konu hakkında basitçe fikir sahibi olmaktı.

Sonra deneye bir de kumarbazın her zaman yazı dediği stratejiyi ekleyeyim dedim. Beklentim bu stratejini en az rastgele karar verme kadar iyi olması yönündeydi.

1000 deney sonucunda
Kumarbaz = 0
Rastgele = 504
Hep yazı= 502

Üç stratejinin yarıştığı durumda rastgele karar stratejisi kendisine gerçek bir rakip bulmuş gibiydi. Bu ortamda kumarbazın basit stratejisinin artık bir şansı yok gibi görünüyordu.

Sonra programda da yaptığım gibi bütün stratejilerin aynı anda yarıştığı bir deneme yaptım. Bu da sonuçları:

1000 deney sonucunda
Kumarbaz türevleri = 0
Rastgele = 271
Hep yazı = 385
Hep tura = 351

Görüldüğü gibi hep yazı ve hep tura oyunu eşit derecede domine etmeye başladılar. İkisinin de tek başına yaklaşık yüzde elli doğru tahminde bulunacağını beklemek normal bir durum. Diğer stratejiler bundan daha iyi skorlar elde edemeyecektir. Peki kumarbazın stratejisine yardım edilebilir mi? Eğer kumarbazın verdiği kararları biraz daha rastgeleleştirirsek daha iyi sonuçlar almasını beklemek çok da yanlış olmaz. Eğer hep rastgele karar verirse rastgele stratejiye yaklaşacaktır. O zaman rastgele karar verdiği aralığı (toplamlar arasındaki fark) büyüttüm ve bir iyileşme gördüm ama beklediğim hızda bir iyileşme olmadı bu.

1000 deney sonucunda
Kumarbaz (toplamlar arasındaki fark 50 ise rastgele) = 99
Rastgele = 223
Hep yazı = 351
Hep tura = 339

Bu kadar basit bir problem üzerine bu kadar çok deney tasarlanabilmesi hoşuma gitti. Bence deneyler de teoriler kadar önemli bir alan, bence deneyin sonucu teorinin sonucundan daha etkileyici ve şaşırtıcı.

Dil öğrenme (Programlama dili)

Bir programlama dilini neden öğrenmek isterim? Bunun çeşitli cevapları var tabii ki. Örneğin çalıştığım projede kullanılan bir dil olabilir ve bu nedenle o dili öğrenmem gerekiyordur. İleride bu dil işime yarayabilir diye düşünüyor olabilirim. Aklımdaki projelere uygun araçlar olduğu için öğrenmek isteyebilirim. Belki de sadece yeni bir şey öğrenmek için.

Programlama dili öğrenmek için kullandığım üç temel yöntem var:

  1. Programlama dilini bilgisayarıma kurup dil ile ilgili dökümanları ya da bir kitabı sırayla okuyup denemek.
  2. İlgilendiğim bir alanda bir proje seçmek ve o projeyi öğrenmek istediğim dil ile programlamak.
  3. Hackerrank gibi sitelerdeki soruları çözmek.

Birinci yöntemde vurgulamak istediğim nokta dökümanlar ya da kitaplar değil tabii ki. Bu kaynaklara her yöntemde ihtiyacım var. Yöntemlerdeki farklar öğrenme yolculuğunda kullandığım araçlar değil de daha çok bu sırada izlediğim rotalar.

İlk programlama dillerimi kitaplardan öğrendim. Üniversitede öğrendiğim dilleri de bu yöntem altında değerlendiriyorum. Kaynaklar yardımıyla bir dili öğrenmek ve bu bilgileri denemek o dilin inceliklerini öğrenmek için iyi bir yöntem olabilir. En azından bu şekilde büyük olasılıkla dili doğru kaynaklardan, dilin hangi fikirlere önem verdiğini de anlayarak doğru şekilde öğrenebiliriz.

Birkaç dil öğrendikten sonra bu yöntem bana verimsiz gelmeye başladı. Verimsizliği biraz açıklamam lazım tabii. Örneğin her dilde ilk kısımlar, değişkenler, döngüler, fonksiyonlar gibi aynı kavramlar üzerine oluyor. Bu kadar tekrar hoşuma gitmemeye başladı haliyle. Oraları hızla geçince de başka bir sorunla karşı karşıya kaldım. Kavramlar ne kadar aynı olsa da buralarda kullanılan isimler farklı olabiliyor. Bir dilin değişken dediğine diğeri değer ya da nesne diyebiliyor. İlerdeki konularda bu kavramlarla karşılaşınca nasıl olsa biliyorum bunları diye hızla geçtiğimde bir süre sonra bazı çelişkilerle karşılaştığım oldu. Çelişkilerin nedeni tabii ki o sıkıcı ilk üniteleri atladığımdan kavramların tanımlarının kafamdaki tanımlardan farklı olduğunu fark edememiştim.

Demek ki yeni bir dili kaynaklardan öğrenmek için de yine kaynaklardaki sırayı takip etmem gerekiyordu. Tabii ki her istasyonda aynı süre duraklamama gerek yoktu ama yol haritası hemen hemen tamamen benim kontrolüm dışındaydı.

Eğer bir dili o an çok iyi öğrenmeme gerek yoksa ama ilerisi için yatırım yapmak istiyorsam o zaman elimdeki bazı projeleri o dilde yapmayı deniyorum. Bu projeler kişisel, hobi projeleri olabildiği gibi şirket içinde de olabiliyor. Bu şekilde dili öğrenme yolculuğunu gerçek bir hikayenin üzerine oturtmuş oluyorum ve motivasyon açısından da faydalı oluyor ama profesyönel işlerde biraz dikkatli olmak gerekiyor. Örneğin yöneticilere ya da arkadaşlara o proje için neden o dili seçtiğimi açıklamam gerekebiliyor. Kişisel projelerde böyle bir sorun yok ama. İşin geri kalan kısmında yine kaynakları okumam gerekiyor ama bu sefer kendimi motive etmem daha kolay oluyor. Belli bir hedefim var ve yarım yamalak da olsa dil öğrenmenin getirisini hemen alıyorum.

Üçüncü yöntemi, hackerrank ve benzeri siteleri yeni yeni kullanmaya başladım. Bunu da daha çok bildiğim dilleri unutmamak ya da yeni özelliklerini deneyerek öğrenmek için yapıyorum. Bu şekilde bir dil gerçekten öğrenilemez sanırım ama boş zamanlarda kısa antrenmanlar için iyi olabilir.

Bu kullandığım yöntemlerin doğru kombinlendiği zaman iyi sonuçlar vereceğine inanıyorum. İlk diller bence birinci yöntemle daha iyi öğrenilebilir, çünkü hiçbir dil bilmeden bir projeyi, hobi projesi bile olsa yapmaya kalkmak bu sırada verilecek bir sürü yanlış karar yüzünden hem zorlaştırır hem de dile karşı yalancı bir güvensizlik yaratabilir. Bir dili ve program geliştirmeyi iyi öğrendikten sonra yeni dillerde ikinci yöntem daha iyi sonuç verebilir. Bu sırada hem bir projenin başarılı olmasına şahit olmanın heyecanı da öğrenmeyi destekleyici bir etki yapabilir. Son olarak da eski bilgileri unutmamak için üçüncü yöntem kullanılabilir.

ChatGPT ile deneyler

Bilim tarihiyle azıcık ilgilenen herkes deney tasarlamanın ne kadar zor olduğunu bilir. Bundan daha da zor olanı bu deneyin sonuçlarını yorumlamak olabilir.

Benim de herkes gibi kafamda bir ChatGPT tasviri var. Internetteki bilgileri bir şekilde harmanlamış ve bunları iyi cümlelerle paketleyip sunan bir yardımcı. Yalnız kendisiyle yazışırken arada kendimi onunla tartışırken bulduğum da çok oldu. Demek ki içten içe onu düşünen bir varlık olarak da hayal etmek istiyorum. Öyle olmadığını bilsem de. Düşünmenin tanımı ya da sınırları bizim için de çok zor olmalı ama, bu durumda hiç düşünemiyor da diyemem heralde.

Bugün şirketteki işlerim biraz iyi gidince dinlenmek için onunla bir deney yapayım dedim. Standard sorulara çok iyi cevaplar verdiğini biliyordum. Daha geçenlerde yazdığım bir oyun programı için bir algoritma sormuştum ve önerdiği şeyi programlayıp çalıştırınca istediğim gibi çalıştığını görmüştüm. Sorduğum şey de standard bir algoritmaydı ama bu durumda iyi bir yardımcı olduğunu inkar edemem şimdi.

Deney için bilinen bir bilmeceyi aldım ve parametreleri biraz değiştirdim. Böylece sorunun şekli ve çözüm algoritması dışında tam bu sorunun çözümüyle eğitilmiş olamayacaktı. Acaba bu çözüm yolunu bu yeni parametrelere uydurabilecek miydi? Ya da en azından deneyecek miydi?

Şimdi yazışmamıza bir bakalım:

Sorduğum soruyu doğru anladığını düşünüyorum. Yani anlamaktan kastım, kurallarını çözdü ve eğitildiği verilerdeki bazı yöntemlerle benzerlikler bulabildi. Kullandığı algoritmanın sonuçlarını yanlış buldu ama. Bunun çok değişik nedenleri olabilir. Mesela soruyu çözmekten çok giriş, gelişme ve sonuç kısımları olan kısa bir yazı yazma eğilimi olması nedeniyle hemen ilk bir iki sonucu genellemiş olabilir.

Burada ikili arama yöntemini kullanarak bir sonuç buluyor ama tabii ki soruda istenen en iyi çözüm değil bu. Bunu da aramıyor. Yine de bu çözüm denemesi hiç de fena değildi. Çözümleri sonuna kadar getirmediğinden yaptığı çıkarımlar da haliyle hatalı oluyor. Bunun nedenlerini bilemiyorum ama.

Buradaki cevabın ilk paragrafında soruyu çözdü heralde dedim. Cevap doğruydu, ilk adım da doğru ama ondan sonra mantığı uygulamayı beceremedi. Becerememekten de öte, sonraki adımlarda iyice saçmalamaya başladı. Acaba soruyla ilgili bazı şeyleri yanlış mı anladı, yoksa göz ardı etmeye mi başladı bilemiyorum ama beklediğim çözümden birden uzaklaşmaya başladık.

Neyse ki, adımları tek tek deneyince daha iyi bir sonuç bulabildik.

Bu sefer bir önceki çözümde kullandığı yöntemlerin birini (katların artırma kuralını) genellerken diğerini (başlangıç katının önemi) tamamen unuttu. Bunun yanında problemi de iyice unuttu. Birden binaya yeni katlar eklemeye başladı. Binanın kat sayısını hatırlattığımda ise diğer yöntemleri de iyice unuttu ama kafasındaki çözüme uymayan sayıları güzel cümlelerle pazarlamaya kalktı.

Bu kısımda ise daha önceki kısımlarda katettiğimiz her aşamayı kaybettik gibi gözükse de çözümle ilgili bir pırıltıya dikkat çekmek istiyorum. Başlangıç katı olarak 4. katı seçti ve sonra önce 3 sonra iki kat artırdı. Bunlar yanlıs sayılar olsa da doğru çözüm için gerekli mantığa ulaştık. Tabii program bunu mantık olarak gördü mü yoksa sadece bir sürü parametreden birinin rastlantısal bir etkisi miydi bilemiyorum.

Tam belki de doğru yoldayız diye düşünüyordum ki, yine ikili arama yönteminin ününe aldanıp çözümden iyice uzaklaştı.

Son kısımda da demin dediğim şeyi onaylar gibiydi. İkili arama birçok sınırsız sayıda yumurtamız olsa en iyi arama performansını verebilir ama bu problemde sadece iki yumurtamız var. Bu tür mantık yürütmesini beklemiyordum tabii ki ama eğer biraz mantık yürütüyorsa bunu arka arkaya tekrarlayabilir belki diye umuyordum. Yanılıyormuşum. En sonunda ilginç olmayan bir şekilde insani bir tepki verdi ve soruyu çözemeyince çoğunlukla işe yarayacak bir şey önerdi. Bu tür çözümler problemden sıkılan, daha fazla arama yapmak istemeyen insanların en sık başvurduğu çözümler oluyor. Bütün parçaları tek tek bulmuş olsa da hepsini birleştirerek 6 denemelik çözümü yine de bulamadı.

Bu durumda düşünemiyor diyebilir miyim? Çok genel anlamda düşünüyor olabilir ama bizim soyutlama, genelleme yeteneğimizden tabii ki hala çok uzak. Ayrıca bu ChatGPT programının böyle bir amacı var mıydı onu bile bilmiyorum.

Bir olasılık sorusu

Bundan çok uzun yıllar önce ben üniversite sınavına hazırlanırken sorular çok daha sıradandı diye hatırlıyorum. Belki de yapabildiğim için öyle hatırlıyorumdur. Şimdi değişik sosyal medya gruplarında sorulan test sorularına bakınca seviye sanki biraz yükselmiş gibi geliyor bana ama bu sorular sınav soruları değil, çeşitli test kitaplarından alınmış sorular. Hatta aralarında yanlış sorular da oluyor.

Geçen haftalarda iki kere karşılaştığım ama bizim zamanımızda hiç sorulmayan bir olasılık sorusu türünden bahsetmek istiyorum.

Ahmet ve Ayşe akşam 7 ile 8 arasında buluşmak istiyorlar. Buluşma yerine tam kaçta gelecekleri belli değil ama her birinin 7 ile 8 arasında herhangi bir zamanda buluşma yerine gelme şansı eşit. Buluşma yerine erken gelen diğerini en fazla 15 dakika bekleyecek ve bu süre içinde diğeri gelmezse buluşma yerinden ayrılıp eve dönecek. Ahmet ve Ayşe'nin buluşma ihtimali nedir?

Bütün buluşma zamanını 60 dakikaya böleyim ve Ahmet’in buluşma yerine geliş zamanını x ekseninde, Ayşe’nin gelişini de y ekseniyle göstereyim.

x ekseni Ahmet’in gelebileceği dakikalar, y ekseni de Ayşe’nin gelebileceği dakikaları gösteriyor.

Yukarıdaki şekilde iki tane doğru çizdim. Bunlar sorunun çözümü için çok önemli denklemler, daha doğrusu eşitsizlikler. Yukarıdaki doğru y – x < 15 eşitsizliğinin sınırını oluşturan doğru. Bu eşitsizlik Ayşe’nin Ahmet’ten en fazla 15 dakika daha sonra geldiği noktaları gösteriyor ve yukarıda kalan doğrunun altındaki bütün noktaları içeriyor. Alttaki doğru da x – y < 15 eşitsizliğinin sınırı oluyor. Bu eşitsizliği sağlayan noktalar da doğrunun yukarısındaki noktalar. Bu eşitsizliğin anlamı da Ahmet’in Ayşe’den en fazla 15 dakika sonra geldiği durumlardır.

Bu iki doğru arasında kalan koyu mavi alan da Ahmet’in ve Ayşe’nin buluşma yerine en fazla 15 dakika farkla geldiği durumlardır.

Ahmet’le Ayşe’nin buluşma ihtimali böylece koyu mavi alanın bütün alana oranı şeklinde hesaplanabilir.

\(P(buluşma) = \frac{60^2 – 45^2}{60^2} = \frac{7}{16} \)

Başta da dediğim gibi bu tür sorular benim zamanımda sadece bilmece olarak soruluyordu ve sınav seviyesi için zor bir teknik olarak görülüyordu. Anlaşılan artık biraz daha standard bir soru türü olmuş.

Kısaca, bu tür sorularda aktörler için eksenler seçilip o alanda soruda aranan eşitsizlikler yazılır ve istenen alanın tüm alana oranı hesaplanır. Problemin geometrik alanlara dönüştürülmesi olasılıkta sık sık görülen yöntemlerden biridir ve sonunda bizim eğitim sisteminde de beklenen bir şey olmuş ama bunun anlaşılması için derste daha deneysel bir yaklaşım gütmek gerekebilir.

Grup teorisi diye hobi mi olurmuş?

Hobi olarak matematik öğreniyorum. Acele etmeden. İşime yarar mı diye kaygılarım olmadan. Şu an ilgilendiğim alanı ise grup teorisi. Nedir, ne değildir diye anlatmaya kalkmayacağım. Bilgisayarıma indirdiğim kitaplardan arada bir okuyorum ve kitaptaki alıştırmaları kağıt kalemle çözmeye çalışıyorum. Hafta sonu yazmaya çalıştığım Hackenbush programı iyi gidince takılıp kaldığım probleme bir daha baktım.

\(p \) bir tek asal sayı olsun. \(U(p^n) \) grubunda derecesi 2 olan tek elemanın \(p^n – 1 \) olduğunu gösterin.

Bu soruyla uzun zamandır uğraşıyordum. Uğraşıyordumdan kastım arada bir bakıp hiçbir ilerleme kaydedemiyordum. Yapabildiğim tek şey, eğer bu grupta derecesi ikinci bir eleman daha varsa, başka bir üçüncü eleman daha olmalıdır sonucuna ulaşmak olmuştu.

\(a \) ve \(b \) dereceleri 2 olan iki değişik eleman olsun dedim. O zaman \(a \cdot a = e \) ve \(b \cdot b = e \) demektir. Bu ikisi de birbirinden farklı olduğuna göre ve ikisinin de dereceleri 2 olduğuna göre birbirlerinin tersi değillerdi. Eğer biri diğerinin tersi olsa o zaman

\(a \cdot b = e \)

\(a \cdot a \cdot b = a \cdot e = a \)

\(e \cdot b = b = a \) sonucu çıkacaktır. Ama a ve b birbirlerinden farklıydı. Demek ki çarpımları da etkisiz eleman olamazdı.

Peki çarpımlarının derecesi kaç olurdu?

\(a \cdot b \cdot a \cdot b = a^2 \cdot b^2 \) çünkü grubumuz değişmeli grup.

\(a^2 \cdot b^2 = e \cdot e = e \)

Bu çarpımın etkisiz eleman olmadığını biliyordum. Demek ki çarpımın derecesi 2 imiş. Böylece bu grupta derecesi 2 olan en az üçüncü bir elemanın olacağını gösterdim ve bir aptallık yapıp burada durdum.

Neyse daha fazla ilerleme kaydedemediğimden hafta sonu matematikçi bir arkadaşımı arayıp soruyu anlattım ve bana verebileceği bir ipucu olup olmadığını sordum.

Bana ilk dediği şeylerden biri bu grupta eleman sayısı 4 olan bir alt grup bulmuşsun oldu. Benim aklıma bunun bir altgrup olup olmadığını araştırmak gelmemişti. Sonra hemen denedim tabii.

Derecesi 2 olan üçüncü sayı \(c = a \cdot b \) olsun. Bu elemanlar çarpma altında kapalı mı diye baksam yeter diye düşündüm.

\(a \cdot c = a \cdot a \cdot b = e \cdot b = b \)

\(b \cdot c = b \cdot a \cdot b = b\cdot b \cdot a = e \cdot a = a \)

Gerçekten de kapalıydılar. Yani \(e \), \(a \), \(b\) ve \(c \) elemanları ve modulo \(p^n \)’e göre çarpma işlemi bir altgruptu.

Ondan sonra bana şunu örnek olarak \(U(9) \) grubunu verdi ve bu grubun 4 elemanlı bir altgrubu olabilir mi diye sordu. Olamaz dedim. \(U(9) \) 6 elemana sahipti ve 4, 6’yı bölmez.

Peki bunu genelleyebilir misin diye sordu. Yani \(U(p^n) \) grubunun eleman sayısı dörde bölünür mü diye sordu.

Bu noktada bana yeterince fikir verdiğini düşünüp teşekkür ettim ve iyi akşamlar diledim. Hemen elime kağıt kalemi alıp \(U(p^n) \) grubunun eleman sayısını hesaplamaya başladım. Aslında bunun förmülünü daha önce bulmuştum ama yine bir kontrol ettim. Bu grubun \(p^n – p^{n-1} \) elemanı vardı.

Bunu da çarpanlara ayırdığımda \(p^{n-1} \cdot (p – 1 )\) çıkıyordu. \(p^{n-1}\) her zaman tek sayı olduğundan dörde bölünemez ama \(p \) asal sayısı \(4k + 1\) formundaysa bu grubun eleman sayısı dördün bir katı olacaktı. Gerçekten de 13, 17, 37 gibi asal sayılar için grubun eleman sayıları 12, 16 ve 36 oluyordu. Demek ki bu şekilde bir genelleme olmuyordu ve aklıma daha başka bir şey de gelmediğinden yatıp uyudum.

Sabahleyin arkadaşımı tekrar arayıp bazı asal sayılar için grup eleman sayısının dörde bölünebildiğini söyledim. Bana ilk söylediği şey, bu durumda başka bir çelişkiye ulaşacağım oldu. Bu çelişki bir türlü aklıma gelmiyordu. Sonra dedi ki, mesela \(U(37) \) grubunun 4 elemanlı cyclic olmayan bir altgrubu olabilir mi? O an her şey yerine oturdu. Ben bulduğum dört elemanlı altgrubun cyclic olup olmadığına bakmamıştım bile. Bu altgrup tabii ki cyclic değildi ama ilk başta verilen grup (\(U(p^n)\) ) cyclic idi. Cyclic bir grubun altgrupları da cyclic olmalıydı. Uğraştığım soru birden çözülmiştü.

Arkadaşımın bu kadar basit bir soruyu aklında tutmuş olmasına mı şaşırayım, yoksa bana bunu kolayca çözdürebilmesine şaşırayım bilemedim gerçekten de. Heralde bu sorular uzmanlar için üçle beşi toplamak gibi bir şeydir. Belki de her satranç ustasının çok iyi bildiği standart bir pozisyon gibidir. Böyle süper arkadaşlarım olduğu için çok şanslıyım.

Karton deyip geçmemeli

Şu sıralar grup teorisi üzerine bir matematik kitabı okuyorum. Daha en başlardayım. İlk örnekler geometrik şekillerin simetrileri ile ilgili. Yani kısaca, bir geometrik şekli bozmadan onu nasıl dönüştürebiliriz ki aynı başlangıçtaki pozisyonu alsın? Evet biliyorum, anlatmayı beceremedim. Şöyle bir örnekle tekrar deneyeyim.

Mesela elimizde bir kare var. Bu kareyi merkezi etrafında doksan derece döndürürsek yine aynı pozisyondaki bir kare elde ederiz, çünkü köşeler yine köşelerin üzerine gelir. Evet, her bir köşe bir sonrakinin üzerine gelir ama bu bizi rahatsız etmesin. Bu harekete döndürme diyelim. Peki bundan başka hangi simetrilerimiz var?

Bir kare köşegenleri çevresinde de simetrik gözükür değil mi? Yani köşegen üzerindeki köşeleri sabit tutup diğer iki köşeyi yer değiştirirsek yine bütün köşeler üstüste gelir. Bu harekete de çevirmek diyelim, yani şekli o köşegen etrafında çevirmek. Buna benzer iki simetri eksenimiz daha var ama. Onlar da karşılıklı kenarların orta noktalarını birleştiren doğrular oluyor. Karemizi bu eksenler etrafında çevirdiğimizde yine aynı kareyi elde ediyoruz.

O zaman bu iki temel işlemi yukarıdaki gibi genelce kullanabiliriz artık. Döndürme şekli bir nokta etrafında belli bir derece döndürme olsun. Çevirme de bu şekli bir doğru etrafında köşeler yine üstüste gelecek şekilde döndürmek olsun. Evet, hala aynı kelimeleri değişik şeylerde kullandığımın farkındayım ama artık nokta etrafında döndürmeye kısaca döndürme, doğru etrafında döndürmeye de çevirme diyeceğim.

Dün kitapta birkaç tane soruyla karşılaştım:

Düzgün bir çokgende (yani her kenarı aynı uzunlukta olan) arka arkaya iki kere çevirmenin neden bir döndürme olduğunu geometrik olarak açıklayınız.

Düzgün bir çokgende arka arkaya iki kere döndürmenin neden bir döndürme olduğunu geometrik olarak açıklayınız.

Düzgün bir çokgende önce döndürme ve ardından çevirmenin ya da önce çevirme ve ardından döndürmenin neden bir çevirme olduğunu geometrik olarak açıklayınız.

Geometrik şeyleri kafamda canlandırmayı pek beceremem. Kağıt kalemle de aklıma hemen bir şey gelmedi. Sonra zaten canım sıkkın, bari evde bir yerlere tıkıştırdığım malzemeleri kullanayım dedim. Kartonlardan düzgün çokgenler kesmeye başladım. Sonra bu kestiğim şekillerin köşelerini fotoğraftaki gibi numaralandırmaya başladığımda birden soruların çözümü kucağıma düştü.

Eşkenar üçgen, kare, eşkenar beşgen ve eşkenar altıgen

Fotoğrafta da görüldüğü gibi kartonların A yüzünde köşeleri saat yönünün tersinde artacak şekilde işaretlerim. Kartonun diğer yüzüne B dedim ve aynı köşeleri aynı sayılarla işaretledim. Bu durumda B yüzünde köşelerin numaraları saat yönünde artmakta.

Şimdi herhangi bir kartonu alalım ve döndürme işlemine bakalım. Örneğin B yüzü yukarıda olan eşkenar üçgen şeklini alalım. Eşkenar üçgende her bir döndürme altmış derecedir. Bu şekli hangi yönde altmış derece döndürürsek döndürelim köşe numaraları saat yönünde artıyor olacak. Aynı özellik diğer şekillerde de korunur sadece döndürme açısı farklı olacak. Karede doksan derece, eşkenar beşgende yüzsekiz derece ve düzgün altıgende de yüzyirmi derece döndürmek gerekecek.

Bir eksen etrafında çevirme işleminde ise kartonların yüzleri değişeceğinden köşelerin dizilimi de değişecek, yani çevirmeden önce saat yönünde artıyorduysalar çevirdikten sonra saat yönünün tersinde artacaklar. Aynı şekilde çevirmeden önce köşe numaraları saat yönünün tersi yönünde artıyorduysalar çevirdikten sonra saat yönünde artacaklar.

Bu bilgiler eşliğinde kitaptakı sorulara bakıncakitaptaki soruları çok kolay çözebildim ve de nedenini de anladım.

Düzgün bir çokgende (yani her kenarı aynı uzunlukta olan) arka arkaya iki kere çevirmenin neden bir döndürme olduğunu geometrik olarak açıklayınız.

Varsayalım çevirmeden önce A yüzü yukarıda olsun. Demek ki çevirmeden önce köşe numaraları saat yönünün tersi yönünde artmaktaymış. Bir kere çevirdikten sonra köşeler saat yönünde artıyor olacak ve bir daha çevirince yine A yüzü yukarı gelecek ve köşe numaraları eskisi gibi saat yönünün tersi yönünde artıyor olacak. Köşelerin hangi konuma geldiklerinin bir önemi yok, bildiğimiz şey bu son şekil her durumda köşeler birbirlerine göre aynı dizilimi koruyacaklar. Sadece köşelerin ilk konuma göre bulundukları yerler farklı olabilir ama dizilimleri aynı olacak ve bu dizilim de başlangıçtaki konumdan bir döndürmeyle elde edilebilir.

Düzgün bir çokgende arka arkaya iki kere döndürmenin neden bir döndürme olduğunu geometrik olarak açıklayınız.

Döndürme işlemleri köşe numaralarının artış yönlerini değiştirmemekte. Şekil de ayrıca deforme olmadığından her köşenin komşu köşeleri de aynı kalır. Dolayısıyla bir köşe döndürme yönünde başlangıçtan ne kadar uzaklaşmışsa diğer bütün köşeler de aynı yönde o kadar uzaklaşmış olur. Bu da toplamda başka bir döndürmeye eşdeğerdir.

Düzgün bir çokgende önce döndürme ve ardından çevirmenin ya da önce çevirme ve ardından döndürmenin neden bir çevirme olduğunu geometrik olarak açıklayınız.

Bu işlemlerde sadece bir çevirme olduğuna göre köşelerin numaralarının artış yönü tersine dönecek. Bu da ancak çevirme işlemi ile sağlanabilir. Peki bu iki işlem sonucunda oluşan her dizilim için bir çevirme var mı? Yukarıda da gördüğümüz gibi döndürme ve çevirme işlemleri köşelerin birbirlerine göre konumlarını hiç değiştirmiyor, yani şekilde bir deformasyon olmuyor. Köşelerin birbirlerine göre konumlarında bir değişiklik olmuyorsa toplamda köşe sayısı kadar olası dizilim vardır. Düzgün çokgenlerde de köşe sayısı kadar çevirme için simetri ekseni vardır. Her eksen farklı bir dizilim yaratıyorsa sorunumuz çözülmüş olur. Örneğin 1 numaralı köşeyi alalım ve sırayla bu çevirmelerin bu köşeyi farklı köşelere gönderdiğini görelim. Elimde kartonlar varken bunu görmek benim için daha da kolay. Eğer seçilen bir köşeyi herhangi bir köşeye gönderebiliyorsam, sıralamalar da korunduğuna göre her dizilim için bir çevirmek bulabiliriz demektir.

Pragmatizmin elli tonu

İki gün önce şef diğer ekipten M’ın, planladığımız güncelleme ile ilgili benimle konuşmak istediğini söyledi. Anladığım kadarıyla bazı endişeleri varmış. M da dün aradı ve konuştuk. Önce kısaca problemden bahsedeyim ama. Üretim hattında birbiriyle konuşan iki adet makinemiz var. Benim programladığım makine ürünleri optik inceliyor, M’ın programladığı da tartıyor. Sonunda ürün bilgileri M’ın programladığı makinede gösteriliyor. Bu gösterilen bilgilerin bir kısmı da ürünün değişik görüntüleri. Aynı ürün için biri röntgen ikisi optik olmak üzere üç değişik görüntümüz var. Bu görüntüleri göndermeden önce ham verileri JPG’e dönüştürüyorum ve bu işlem üretim hızına oranla çok uzun sürüyor. Diğer program bu verileri topluyor ve eğer ürün hala üretim hattındaysa ağırlık bilgisiyle beraber gösteriyor. Şimdi burada karşılaştığımız sorun şu: Sık sık görüntü güncellemesi olmuyor çünkü veriler zamanında diğer sisteme ulaşmıyor. Bu da kullanıcıyı rahatsız ediyor.

Bu sorunu gidermek için iki değişiklik yaptık. Birinci değişiklikte M bana hangi ürünü göstermek istediğini önceden söylüyor ve bu sayede JPG dönüştürmesine daha önce başlayabiliyorum. İkinci değişiklikte de diğer sistemlere gönderdiğimiz verileri kısıtlayarak sistemdeki yükü biraz hafiflettik. Bu iki çözüm testlerimizde durumu epey iyileştirdi. Tabii ki kesin çözüm değildi bunlar ve arada problem yine olacaktı ama eskisi kadar uzun sürmemesi hedefimizdi.

Yaptığımız ikinci değişiklik için program güncellemesine gerek yoktu. İki parametreyle o işi halledebiliyorduk. Bunu müşterideki sistemde uyguladık ve sonuçlar geçen gün geldi. Bir iyileşme yoktu. M da bu sonuçlar üzerine endişelenmeye başlamıştı. Bana telefonda eğer bu değişiklik bir sonuç vermediyse diğer değişiklik de işe yaramayabilir, o zaman müşteriye ne cevap veririz diye sordu.

Kendi testlerimiz için bir ölçüm metodu tanımlamıştık. Bu testler sonunda iki şey gördük. İki çözüm beraberken sistemde iyileşme görebiliyorduk ve bu yöntemler ölçülebilir bir iyileşme de getiriyordu. Fakat müşteride bu testleri yapan kişi hiç tanımadığımız bir ölçüm aletiydi. Evet, her insan bir ölçüm aletidir ve standartları da yoktur. Ben de M’a, o zaman diğer ölçüm aletini öğrenelim ve testlerimizi ona göre uygulayalım dedim. Belki müştriyle konuşursak beklentilerini ölçülebilir bir hale getirebilirdik. O zaman sürprizlere de ihtiyacımız kalmazdı.

Sonra bu görüşmeyi şefe de anlattım. Şef her zamanki gibi pragmatik yolları tercihten yanaydı. Ölçümlerimizi müşteriye sunabilirdik ve kötüleşme de gözlemlenmemişti. Müşteriyle konuşarak zaman kaybetmeye ne gerek vardı ki? Bakalım şef önce M ile konuşsun da ne yapacağımız bir belli olsun.

0 Comments

Doğallık

Söz konusu siyaset, savaş olunca her şey çok doğal oluyor. Siyasiler seçim kazanmak için bize rahat rahat söyleyebilirler. Muhalefet yetersiz, yanlış işler yapmasına rağmen sırf iktidar partisini yenmek için onu desteklememiz gerek. Savaşlar tarihimizin önemli parçalarıdır. Onlar olmasa biz olmazdık.

Doğallık konusunu çok iyi anladığımı sanmıyorum. Sözlükteki tanımlarla bir deneme yapayım.

  1. Doğada olan, doğada bulunan: Evet bunların hepsi doğada bulunmakta. Bunun yanında doğada çok daha fazlası var ama onlara karşı tamamen karşı olabiliyoruz, ya da kabullenmiyoruz.
  2. Doğada rastlandığı gibi, doğaya uygun olan, doğa güçlerine, kurallarına uyan, tabii, natürel: Doğaya uygun olamayacak bir şey bilmiyorum. Plastik gibi bir şey mi acaba? Bu tanım girişteki konuyla çok ilgili değil sanki.
  3. Kendiliğinden olan, insan eliyle yapılmamış, yapay karşıtı: Bu da olmamalı, yukarıda dediklerimin hepsi insan yapımı.
  4. Yapmacık olmayan: Bu da değil.
  5. Olağan, alışılmış, her zamanki gibi olan, beklenildiği gibi: Bu biraz yakın gibi. Bunu not alayım.
  6. Sağduyuya, mantığa, olağan düzene uygun olan: Yukarıdaki noktaların mantığa, olağan düzene uygun olduğunu sanmıyorum.
  7. Katıksız, saf: Bunun da alakalı değil gibi.

TDK bu kadar tanım vermiş. O zaman beş numaralı tanım üzerine düşüneyim biraz. Alışılmış, beklenildiği gibi olan şeyleri doğal karşılayabilirim gerçekten de ama bu şeylere alışmak zorunda mıyım? Sanırım alışmak için çaresizlik önemli bir kıstas olabilir. Örneğin ölümün doğallığı gibi. Ben de öleceğim ve buna karşı bir çözümüm yok. Belki de bunu engellemek için çok büyük bir motivasyonum da yok. Gerçekten de beklediğim, alıştığım bir şey. Ya savaş? Savaşa karşı da yapabilecek çok bir şeyim yok sanırım. Tarihte de birçok insan buna karşı bir şey yapamadı. Bir kısmı yapabildi ama. Savaştan kaçanlar oldu. Hatta savaşı önleyenler de oldu. Belki sadece geciktirdiler ya da başka bir şekilde sahnelenmesine yol açtılar ama engellenen savaşlar oldu. Siyaset soruları bu kadar bile kesin ya da çaresiz değil. Eğer iktidarın gitmesini istiyorsam muhalefetin bana göre hatalarını eleştirebilirim. O hatlar düzeltilirse daha iyi bir muhalefet olacaktır. Bunu istemiyor olamazlar. Ha, benim bahsettiğim şeyleri hata olarak görmüyor olabilirler. Bu bana yazılım dünyasını hatırlatıyor. Bir programda bir şey yapmaya çalışırız ve program bizim beklediğimiz gibi çalışmaz. Sonra o programa küfrederiz, şikayetler yazarız filan. Programcı da çıkar ve bu programın hatası değil, kullanıcı hatası der. Eminim bu durum kullanıcıya o kadar da doğal gelmez. Ben bir program kullanırken kafamda bir model vardır, programın da o modele göre çalıştığını varsayarım. Eğer uyumsuzluk varsa o programın yerini alabilecek başka programlar ararım. Eğer becerebileceğime inanırsam bu programı kendim yazmayı bile düşünebilirim. Siyaset işini de sanırım böyle düşünüyorum. Kafamda bir dünya, devlet modeli var. Beklentilerim var. Bu beklentiler karşılanmadığı zaman rahatsız oluyorum ve başka seçeneklere bakıyorum. Neden otomatikman kullanıcı hatası diye düşüneyim ki? Büyük ihtimalle kimse bu durumlarda kullanıcı hatası olduğunu düşünmez. Sadece yapacak bir şey olmadığına inanıp kabul edebilir. Olağanlaştırabilir. Önce kötünün iyisini seçiyoruz deriz, sonra bu işin normali bu noktasına geliyoruz. İyileşme arzumuz da bu esnada köreliyor sanırım. Neyse, bugünlük de bu kadar yeter. Gidip başka şeyler öğreneyim. Hem o sırada bu düşüncelerden de kaçabilirim biraz.