Deney dizisi, üçüncü bölüm – Nişastanın direnişi

Bir önceki deneyde C vitamini (askorbik asit) eklediğim iyot çözeltisinin rengini kaybettiğini göstermiştim. Bu deneyde elde ettiğim bu karışımın nişasta ile nasıl bir tepkime vereceğini görmek istedim. Videoda da görüldüğü gibi yeni bir nişasta su karışımı hazırladım. Soldaki erlen içinde bir önceki deneyde hazırladığım iyot ve C vitamini çözeltisinin bir kısmını (kalanını bir sonraki deneyde kullanacağım) nişasta karışımına döktüm. Bir süre beklememe rağmen bir renk değişimi olmadı. Demek ki negatif yüklü iyot iyonları nişastayla ilk deneydeki tepkimeye girmiyorlar.

Deney dizisi, ikinci bölüm – İyot ve C vitamini

İkinci hazırlık deneyi de iyot çözeltisiyle C vitamini (askorbik asit) tepkimesi. Aşağıdaki videoda da görüldüğü gibi önce erlende iyot çözeltisini hazırladım. Ardından daha önceden hazırladığım C vitamini çözeltisinden birazını erlendeki çözeltiye ekledim. C vitamini çözeltisi için marketten aldığım 1000 mg’lık C vitamini tabletlerinden iki tanesini bir kapta metal kaşık yardımıyla ezerek (evet, havan daha iyi bir çözüm olabilirdi) suda çözdüm. Tabii ki tamamı çözünmüyor. Artıkları kahve filtresi yardımıyla süzdüm. C vitamini ile iyot çözeltisi bir araya gelince iyot çözeltisi birden rengini kaybetti. Bu tepkime de oldukça hızlıydı.

\(C_{6}H_{8}O_{6} + I_{2} \longrightarrow{C_{6}H_{6}O_{6} + 2H^{+} + 2I^{-}} \)
 
Bu tepkimede de görüldüğü gibi çözeltideki iyot indirgenip negatif yüklü iyonlar haline gelince renk değişiyor.
 
 

Bir sonraki deneyde, elde ettiğim bu karışımını nişastayla etkileşimine bakacağım.

Deney dizisi, birinci bölüm – İyot ve nişasta

Uzun zamandır yapmayı planladığım bir gösteri deneyi için gereken malzemeleri sonunda tedarik ettim ve düşünmeye başladım. İnternette bu deneyin bir sürü filmi var nasıl olsa. Bu durumda deneyde meydana gelen olayları parça parça göstermeye karar verdim.

Bu yazı dizisinde hikayeye bu parçalarla başlayacağım ve en sonunda da yapmak istediğim deneyi yapacağım.

Serinin ilk deneyi ilkokuldan beri yapılan iyot ile nişastanın tepkimesi. Malzeme olarak eczaneden alınan tentürdiyot ve marketten alınan nişasta yeterli. Bunları çözmek için de tepkimeleri etkilemesin diye damıtılmış su kullandım. Aşağıdaki videoda bu deneyi nasıl yaptığımı görebilirsiniz.

Deney erlene iyot çözeltisi koymamla başlıyor. Görüldüğü gibi kırmızıya yakın renkli bir sıvı. Biraz damıtılmış su ekleyerek sıvı miktarını arttırdım. Sonra bir deney kabında nişasta çözeltisi hazırladım.Bu sıvı biraz bulanık oldu çünkü nişasta suda iyi çözünmüyor ama deney için sorun değil. Sonra da iyot çözeltisini nişasta çözeltisine döktüm. Görüldüğü gibi renk çok çabuk bir şekilde koyu laciverde hatta siyaha dönüştü. Bu deneyde göstermek istediğim şey, renk değişiminin ne kadar hızlı olduğuydu. Son deneyde de bu renk değişimini kullanacağız.

 

Robot programlama (Çizgi sayma)

Bu sefer robotu üçüncü çizgide durdurma problemine bakayım dedim. Temel Lego programlama derslerinde işlenen bir problem. Robot zeminden farklı renkte çizgilerin üzerinden geçerken üçüncü çizgide durmalı. En basit çözümlerden biri heralde şöyle olabilirdi:

Yavaşça kısa süre hareket et.

Çizgi görene kadar ilerle.

Çizgiyi görünce dur.

Bu üç adımı üç kere tekrarlayan bir program bu problemi çözer.

Yeni şeyler öğrenebileceğim bir çözüm aradım ve aşağıdaki programı yaptım. Bu programda birbirine paralel (yani aynı anda) çalışan iki program akışı var. Başlangıç bloğundan çıkan iki ayrı yol bu program parçalarını belirliyor. Önce programa iki tane başlangıç bloğu koyup yaptım bunu ama nedense ikisini de tek tek çalıştırmam gerekti. Bu şekilde iki program parçası da tek bir tuşla başlatılabiliyor.

Alt taraftaki program parçası sadece robotu sürekli ileri doğru hareket ettiriyor ve sonsuz bir döngüye giriyor, yani bu program hiçbir şeye bakmadan sürekli ierliyor. Bu döngüden sonra ise robotu durdurma bloğu var. Demek ki bu döngü o kadar da sonsuz değilmiş. Evet, bu döngünün ömrünü üst taraftaki program parçası belirliyor.

Üstteki program parçası temelde şunu yapıyor. Renk değişimi olana kadar bekliyor. Değişiklik olunca yeni rengi bir değişkene yazıyor. Eğer yeni renk siyah ise (kullandığım çizgilerin rengi siyahtı) o ana kadar görülmüş çizgi sayısı değişkenini bir arttırıyor. Eğer toplam 3 olmuşsa alt taraftaki sonsuz döngüyü bitiriyor ve böylece motor duruyor.

Programda iki tane değişken var. Bunlar biri ‘color’ adında diğeri de ‘line’ adında kırmızı bloklar şeklinde tanımlanmış. Bu blok programlama dilinde beni en rahatsız eden şey değişken kullanımı oldu. Bir değişkenin değerini arttırmak için önce bir değişken okuma bloğu kullanıyoruz. Sonra bu değişkenin çıktısını toplama bloğuna sokuyoruz. Çıkan sonucu da tekrar değişken yazma bloğuna gönderiyoruz. Basit bir işlem için üç blok gerekiyor yani. Bu blokları bir araya getirip kendi bloklarımıza yapabiliriz ama bu işi henüz o kadar öğrenmedim.

Üstteki program parçasının alt kısmında toplama bloğunun girişlerinin biri çizgi sayısı değişkeninin değeriyken diğeri de renk değişkeninin siyah olup olmadığını kontrol eden karşılaştırma bloğunun çıkışıdır. Eğer renk değişkeninin yeni değeri siyah ise karşılaştırma bloğunun çıkışı 1 değerine, aksi durumlarda ise 0 değerine sahip oluyor. Bu nedenle aşağıdaki toplama bloğu sadece renk geçisi siyaha olursa çizgi değişkenini 1 arttırıyor, diğer durumlarda ise 0 arttırıyor, yani sabit tutuyor.

Sonraki blok ise çizgi sayısı değişkeninin değerinin 3 olup olmadığını kontrol ediyor. Eğer 3 ise çıktı doğru oluyor ve bir sonraki döngü bloğu bitiyor. Eğer 3 değilse çıktı yanlış oluyor ve döngü devam ediyor. Bu döngü bitince de döngü durdurma bloğu çalışıyor ve bu blokta kullanılan numara bitirmek istediğimiz döngüye verdiğimiz numarayla aynı olmalı (Programda 02). Dikkat edersek üstteki program parçası 01 numaralı döngüye, alttaki program parçası ise 02 numaralı döngüye sahip. Biz de 02 numaralı döngüyü bitirmek istiyoruz, çünkü böylece motor duracak.

Aiağıdaki kısa filmde programı çalışırken görebilirsiniz.

Robot programlama

Bir süredir Serkan’a aldığım Lego Mindstorms EV3 setiyle oynuyorum. Pahalı olmasına rağmen oldukça hoşuma giden bir öğrenim imkanı.

Programlamayı şimdilik Lego Mindstorms EV3 yazılımıyla yapıyorum. İlk başta android için olan uygulamayı kullanmıştım ama orada çok daha az blok olduğundan bazı programlar daha zor oluyordu.

Aşağıda ilk denemelerimden birini görebilirsiniz. Sonsuz döngü içinde hareket eden bir robot. Kızılötesi sensörle önünde bir engel olup olmadığına bakıyor. Eğer bir engel varsa biraz geriye gidip restgele seçtiği bir yöne dönüp bir sonraki engele kadar ilerliyor. Programdaki ses blokları temel program için önemli değildir.

Program sonsuz döngü içinde çalıştığından robotu durdurmak için kontrol bloğunun üzerindeki düğmeyi kullanmak gerekmekte. Programda tabii ki hangi sensörün ve motorun hangi giriş kanalına bağlandığına dikkat etmek lazım. Aşağıdaki program B ve C kanallarına takılı büyük motorları ve 1. kanalda bulunan kızılötesi sensörünü kullanmakta. Bekleme bloğu kızılötesi sensör engel algılayana kadar motorun düz hareket etmesini sağlıyor. Engel algılandıktan sonra motoru durduruyorum çünkü diğer durumda ses dosyası motor gürültüsünden duyulmayabiliyor. Yani ses dosyaları kullanılmazsa motorları durdurmaya da gerek yok. Ses dosyası çalındıktan sonra motorlar geriye doğru bir tur döndürülüyor. Rastgele sayı bloğu 1 ile 4 arasında (1 ve 4 dahil) rastgele bir tamsayı üretiyor ve sonraki ‘switch’ bloğunda her bir ihtimale karşı ne yapılacağı programlanıyor.

Bir engelle karşılaşınca yön değiştiren robot progamı

Aşağıdaki videoda da robotu çalışırken izleyebilirsiniz.

Kalsiyum hidroksit ile karbondioksit tespiti

Çocuklara kimya deneyi yapalım mı dediğimde çok sevindiler. Ümit kimya olduğu için, Serkan da gaz ocağıyla oynama şansı bulabileceği için. Gaz ocağı tehlikeli bir alet ama, kullanım kılavuzuna göre alevin sıcaklığı 1700 dereceye kadar çıkabiliyormuş. Ayrıca yanlış muhafaza durumunda patlama riski de var. Öleceksek açık havada ölelim dedik ve deneyi bahçede yapmaya karar verdik.

Kalsiyum hidroksit (sönmüş kireç, kireç sütü ve kireç kostik adlarıyla da biliniyor) suda oldukça az çözünen beyaz bir toz. 100 mililitre suda (20 derecede) sadece 0.17 gram toz çözünebiliyor.  Deneyi okuduğum yerde daha kolay çözmek için tüpü gaz ocağında ısıtmamı diyordu, ben de öyle yaptım ama aslında bu tozun çözünürlüğü sıcaklık arttıkça azalmakta. Heralde ısıtma aşamasında sadece büyükçe toz parçaları kırılıp suda daha kolay dağıldığından bana daha iyi çözünmüş gibi geldi.

Erlen (Erlenmeyer, Erlenmeyer flask) içine 150 ml kadar su koyup çay kaşığının ucu ile çok az toz ekledim. Toz parçaları iyice kaybolana kadar ısıtıp karıştırdım. Bir iki dakika sonra çözeltim hazırdı. Sonra pipet yardımıyla suyun içine üflemeye başladım. Bir süre sonra su bulanıklaşmaya başladı. Bu bulanıklaşma ortamdaki karbondioksiti gösteriyor, yani suya üflediğim havanın içinde karbondioksit varmış.

Bu olay esnasında oluşan tepkime şöyle:

Ca(OH)2 + CO2 CaCO3 + H2O

CaCO3 (Kalsiyumkarbonat) da su da çok daha az çözündüğünden bir katı asıltı (süspansiyon) oluşuyor ve bulanıklık oradan geliyor. Eğer erlen içindeki çözeltiyi içine üflemeden öylece bıraksaydım da havadaki karbondioksit yüzünden bir süre sonra aynı tepkime yine olacaktı.

Aşağıdaki videoda hazırladığım çözelti ile üfleme sırasında bulanıklaşma görülebilir.

Ne olursa olsun müşteri memnuniyeti – Yalan rüzgarı

Proje yöneticilerinden sık sık duyduğum bir cümleden bahsedeceğim: “Ne olursa olsun progamı şu tarihte teslim edeceğiz!”

Dilbilgisi açısından olumlu bir durumdan bahseden bu cümle aslında kendi kendini yalanlayan bir çelişkidir. Şimdi bu cümleye nasıl geldiğimize bir bakalım, neden çelişki olduğu kendiliğinden belli olur.

Müşterinin bir makineye ihtiyacı vardır. Bu makineye de acilen ihtiyacı vardır. Ya bu pazara geç girdiği için diğer üreticilerin almaya yanaşmadığı projeleri kabul etmek zorunda kalan ya da bu projenin ne kadar karışık olduğunu anlayamayan satış elemanı da bu makineyi (henüz var olmayan) müşteriye satar. İmzalar atılır ve proje ancak o zaman önümüze gelir. İstenen şeylere kısaca göz atmak bunun söz verilen tarihte yetişmeyeceğini anlamaya yeter tabii ki. Diğer projeleri de (evet, aynı anda birden fazla proje yapmazsak ölürüz) göz önüne alarak biraz daha gerçekçi ama yine de yalan, yanlış bir plan teklif ederiz. Sonra projeden sorumlu yönetici kaybolur. Satış elemanı ve bilmediğimiz daha başka kişilerle toplantılar yapar ve döner. Bize diğer projelerin ertelendiği müjdesini verir. Artık önümüzde bir engel kalmamıştır. Yani tek engel projenin buna rağmen yetişmeyecek kadar karışık olmasıdır. Bunu da söyleriz ama oldukça iyi bir sokoban oyuncusu olduğuna inanan yöneticimiz şunu şöyle yaparız, bunu buraya kaydırırız filan der ve teslimat tarihine dokunmadan toplantıyı bitirir.

Projenin nasıl olsa yetişmeyeceğini bilmenin rahatlığıyla işimizin başına döneriz. Bu aşamada proje yöneticisine acımaya başlarız tabii. Eğer mantıklı biriyse (evet, mantıksızlarıyla da çalıştım) bu yaptığının mantıksız bir hareket olduğunu bilir. Yani projeyi yapacak elemanlarının hepsi bunun yetişmeyeceğini söylüyorsa ve yönetici bu projeyi o tarihte bitirmek istiyorsa yapacağı en akıllıca hareketlerden biri bu projeyi başka bir ekiple yapmaktır ama bunu da yapmadığına göre heralde kendisi de mantıksız bir durumda sıkışmıştır. Belki gidip müşteriye ya da patrona yalan söyleyecektir, belki de büyük bir kozmik felaketin gerçekleşmesi için dua edecektir.

Yukarıda işimizi rahatça yaparız dememe rağmen teslimat tarihi yaklaştıkça stres de artar, çünkü yöneticimiz “şu kadar zaman kaldı, nasıl gidiyor?” gibi gereksiz hatırlatmalarda bulunur. Bu hatırlatmalara karşı biz de projenin hala yetişmeyeceğini hatırlatırız. Bu noktada üst yönetimden bir toplantı talebi gelir. Toplantının amacı proje yükü en fazla olan elemanların yükünü azaltacak çözümler bulmaktır. Tabii ki günler sürecek bu toplantıya (bir kerede halledildiği ender görülür) proje yükü en çok olan elemanlar davetlidir. Bu toplantının sonucu da büyük ihtimalle şöyle bir şeydir: Yük altındaki eleman eğer diğer projeleri toplantıdan önce beş gün içinde bitirmesi gerekiyorduysa artık o projeler için sadece üç günü vardır. Böylece artan iki günü büyük proje için kullanabilir (Gülmeyin, bunlar gerçekten oluyor).

Zaman iyice tükenmek üzereyken karşılıklı sesler de yükselmeye başlar. Sıkışık durumdaki elemanlar  her işe yetişemeyeceklerini yüksek desibelle ifade ederler. O anda kutsal cümle duyulur: Ne olursa olsun programı o tarihte teslim edeceğiz!

Tecrübesiz biri ilk başta bu cümlenin devre arasında teknik diretörün soyunma odasında yenik durumdaki, hatta hezimet yaşamakta olan takım oyuncularına yaptığı bir isteklendirme konuşması olduğunu düşünebilir ama skorun iyiye doğru değiştiğini hiç görmedim. Bu cümle proje yöneticisinin projenin yetişmeyeceğini resmen kabul ettiğinin ifadesidir. Büyük ihtimalle bunu kendisi de uzun zamnadır biliyordur ama karşılıklı baskılar bu patlamayı getirmiştir. Cümlenin doğru kısımları var tabii ki. Evet, bir program teslim edeceğiz ama bu program asla müşterinin istediği program olmayacak. Ondan sonra da müşteriye söylenecek yalanların planlandığı toplantılara sıra gelecek. Her şey müşterinin memnuniyeti için.

Toplama bilmecesi (Çözüm)

Soru

Bu sorunun çözümlerini deneme yanılma yaparak buldum.

10 rakamı silip 0 yazarak 1111 toplamına ulaşmak

  0 0 1 
  0 0 0 
  0 5 0 
  0 7 0 
  9 9 0
  _____
1 1 1 1

9 rakamı silip 0 yazarak 1111 toplamına ulaşmak

  1 0 0
  0 0 0
  0 0 5
  0 0 7
  9 9 9
________
1 1 1 1

8 rakamı silip 0 yazarak 1111 toplamına ulaşmak

  1 0 1 
  0 0 3 
  0 3 0 
  0 7 7 
  9 0 0
_______
1 1 1 1

7 rakamı silip 0 yazarak 1111 toplamına ulaşmak

 0 1 0
 3 3 0
 0 5 5
 7 0 7
 0 0 9
_______
1 1 1 1

 

6 rakamı silip 0 yazarak 1111 toplamına ulaşmak

  1 0 0
  3 3 0
  5 0 5
  0 7 7
  0 9 9
_______
1 1 1 1

 

5 rakamı silip 0 yazarak 1111 toplamına ulaşmak

  1 1 1
  3 3 3
  5 0 0
  0 7 7
  0 9 0
_______
1 1 1 1

 

Her sorun yazılım hatası değildir

Nereden kaynaklanıyor bilmiyorum ama insanlarda her sorunun yazılım hatası olduğu şeklinde bir önyargı oluşumuş durumda. Yazılımcılar arasında bile. İtiraf edeyim, donanım sorunlarını yazılımla çözmeye çalışanların (ya da bunu yapmaya zorlananların), hatta bunu başaranların(?) olduğu bir yerde çalışıyorum. Burada donanımdan kastım, yazılım olmayan her şey. Yani fizik kuralları da dahil. Bir simülasyon içinde yaşadığımızı ileri süren bilim insanlarının savları ispatlanana kadar fiziği de donanım sınıfında düşüneceğim. Belki de bu tür hatalı çözümleri çok tekrarlayınca bir süre sonra aradaki farkı göremiyoruz. Burnumuzun ya da beynimizin otuz saniye içinde iğrenç kokulara alışabilmesi gibi.

Yıllar önce röntgen cihazları projesine başladığımızda makinede testler yapan yazılımcı bir arkadaş test merkezinden telefon edip kullanıcı arabiriminde bir hata olduğunu söylemişti. Nedir diye sorduğumuzda da kullanıcı adını girerken harflerin kendiliğinden silindiğini söyledi. Kahkahalarımızın geçmesinden sonra elemana klavyenin geri silme tuşunun üzerinde kim oturuyorsa onu kaldırmasını söyledik ama yanılmışız. Klavyenin üzerinde sadece bir defter varmış, kaldırınca program birden normal çalışmaya başladı.

Dün de yine aynı eleman başka bir programı kullanırken bir problemle karşılaşınca o programı yapan arkadaşı çağırdı ve durumu anlattı. Sayfadaki listeyi fare ile aşağı doğru kaydırırken sorun yoktu ama yukarı doğru kaydırırken sayfa aynı zamanda sağa da kayıyordu ve listenin solundaki bilgileri göremiyordu. Bu da tabii ki rahatsız ediciydi. Programı yapan arkadaş da refleks olarak kafasını kaşıyarak sorunun nerede olabileceğini düşünmeye başladı. Ben de arkadaşın fareyi nasıl kullandığına bakıyordum ki sorunu gördüm.

“Sorun senin ince motor becerilerinde”

“Nasıl yani?”

“Fareyi nasıl tuttuğuna ve işaret parmağını nasıl hareket ettirdiğine dikkat ettin mi?”

“Her zamanki gibi, işte böyle.”

Bunun üzerine fareyi aldım ve üzerindeki küçük tekerleği sağa ve sola hareket ettirdim. Sayfa  da sağa ve sola kaydı. Sonra da anlatmaya başladım.

“Fareyle sayfayı aşağı doğru kaydırırken parmağını sadece aşağı değil aynı zamanda az da olsa sola da hareket ettiriyorsun. Bu da farenin küçük tekerleğini sola doğru hareket ettiriyor. Sayfayı da önceden en sola kaydırdığından sayfa daha fazla sola kayamıyor ve her şey normal gözüküyor. Yukarı kaydırırken de parmağını aynı şekilde hatalı hareket ettiriyorsun. Bu sefer farenin tekeri soldan sağa doğru hareket ediyor ve sayfa sağa doğru kayıyor.”

Problemleri kontrolsüzce yazılımla çözmemiz sanırım bizi çevremize ve hatta kendimize karşı körleştiriyor. Yani yaptığımız bu hata sadece bir yazılım sorununa dönüşmüyor, tekrarladıkça bizi de bozuyor.