While searching for infinity and indeterminate in C++ a few days ago I came across a bizzare bug report that left me shievering and made me feel so powerless. Ironically it was a case where the power function (pow) was used, Pow function not working:
"When C++ compiler is compiling a function that returns double, it pushes the return value on the coprocessor stack (i.e. on ST0). If the caller ignored the return value, the compiler generates the instructions that free the stack of the coprocessor. But if we casted the function pointer to a void-returning function, the caller won’t free the coprocessor and therefore it will stack-overflow after a while."
I wrote something similar to the code mentioned in the above page:
As you can see, we made an error by casting a double returning function to a void pointer. But since that seemingly has nothing to do with the rest, everything should be fine and the code should not enter the "if (dValue != 100)" block. The output tells a different story:
Notice that after iteration 7, although dValue is 100 upto 17 digits, it still enters the "if (dvalue != 100)" condition. Interestingly, the assertion does not fail (which should, if it enters != 100)! But if you put the assertion just after line 22, the assertion will fail! For the reason of this strange bug, read the link above.
Now, how on Earth can you trace the origin of such a case in a large program? You need to disassemble the shit out of it! Everyday the evidence whispers to me that C++ should be avoided whenever possible. Especially if you are not a software engineer, but rather use software as a tool to explore physical phenomena (like me). ADA comes to mind, if only it had a cool IDE. Could C# be a second best to realize defensive programming? Or may be I should never write large software and be content with my toy programs ;)
Quote of the day:
"Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?" -- Brian Kernighan, "The Elements of Programming Style", 2nd edition
Tuesday, April 29, 2008
ThinkGeek
Teknolojik tiplere oyuncaklar: ThinkGeek
Bugün Koray'ın dikkatimi çektiği ilginç bir ürünleri var. Adı Flying Alarm Clock, yani uçan alarm saati. Alarmı susturabilmek için uçup giden başlığı bulup yerine takmanız gerekiyor. Tabi bu esnada uyku muyku kalmıyor.
Neyse ki ben cep telefonu alarmı ile kalkabilecek üstün iradeye sahibim (!)
Daha insani bir ürün ise geçenlerde Rahmi'nin dikkatimize sunduğu glo Pillow
"Bu adamlar sıyırmış" dedirten ve terbiyeli bir kanal olduğumuz için yer veremeyeceğimiz şu ürüne de bakınız: Super Pii Pii Brothers
Bugün Koray'ın dikkatimi çektiği ilginç bir ürünleri var. Adı Flying Alarm Clock, yani uçan alarm saati. Alarmı susturabilmek için uçup giden başlığı bulup yerine takmanız gerekiyor. Tabi bu esnada uyku muyku kalmıyor.
Neyse ki ben cep telefonu alarmı ile kalkabilecek üstün iradeye sahibim (!)
Daha insani bir ürün ise geçenlerde Rahmi'nin dikkatimize sunduğu glo Pillow
"Bu adamlar sıyırmış" dedirten ve terbiyeli bir kanal olduğumuz için yer veremeyeceğimiz şu ürüne de bakınız: Super Pii Pii Brothers
Sunday, April 27, 2008
Işığın dalga özelliği
Derya ile fizik konulu sohbetlerimiz bende uzak geçmişimde üstünü örttüğüm konulara merakımı yeniden canlandırmaya devam ediyor. Bugünkü konumuz dalgalar ve ışığın dalga davranışı. Tek bir ışık kaynağından çıkan ışığı birbirine yakın (0.1 milimetre düzeyinde) iki yarıktan geçirince 1 metre kadar uzaktaki perdede parlak ve koyu çizgiler oluşurmuş (bkz. double slit experiment). Buna girişim denir ve ışığın (ve elektronun) dalga özellikleri gösterdiğine dair en bilinen ispat yöntemidir, bir o kadar da mistiktir, tuhaf bir evrenin kapılarını aralar. Aşağıda konuyu nefis bir şekilde açıklayan video var:
Bilimin "denilene inanma, deneyi tekrarla, öyle karar ver" prensibinden hareketle girişim deneyini en yakın zamanda bizatihi yapmak niyetindeyim. Planım bende mevcut olan bir lazer pointer'ı karton bir kutuya koymak, kutu üzerine ciletle iki yarık açıp girişim çizgilerini gözlemek. İşin güzel yanı gözlem sonuçlarını kullanarak nanometre civarında olan ışığın dalga boyunu ölçmenin mümkün olması. Bizden ayrılmayınız!
Bilimin "denilene inanma, deneyi tekrarla, öyle karar ver" prensibinden hareketle girişim deneyini en yakın zamanda bizatihi yapmak niyetindeyim. Planım bende mevcut olan bir lazer pointer'ı karton bir kutuya koymak, kutu üzerine ciletle iki yarık açıp girişim çizgilerini gözlemek. İşin güzel yanı gözlem sonuçlarını kullanarak nanometre civarında olan ışığın dalga boyunu ölçmenin mümkün olması. Bizden ayrılmayınız!
Human Factors in the Design of Spacecraft
Human Factors in the Design of Spacecraft (pdf), p.36:
"...human factors involvement in designing the early spacecraft often followed the tried and true tradition of whenever you don't know, select people who can do the job under almost any circumstances, and then train, train, train them until they can do it adequately no matter how difficult or inefficient the procedure."
Thanks to Nart
"...human factors involvement in designing the early spacecraft often followed the tried and true tradition of whenever you don't know, select people who can do the job under almost any circumstances, and then train, train, train them until they can do it adequately no matter how difficult or inefficient the procedure."
Thanks to Nart
Science 2.0 -- Is Open Access Science the Future?
Science 2.0 -- Is Open Access Science the Future?
"A lot of the how-to gets passed around as lore in biology labs and never makes it into the protocol manuals...So whenever a student or postdoc managed to stumble through a new protocol, he or she would write down what was learned on a wiki page [OpenWetWare]. Others would then add whatever tricks they had gleaned."
"Instead of making do with a static Web page posted by a professor, students began to create dynamically evolving class sites where they could post lab results, ask questions, discuss the answers and even write collaborative essays. And it all stayed on the site, where it made the class better for next year."
"...the Web provides better protection than the traditional journal system, Bradley maintains. Every change on a wiki gets a time stamp, so if someone actually did try to scoop you, it would be very easy to prove your priority—and to embarrass them... If you wait for the journals, your work won’t appear for another six to nine months. But with open science, your claim to priority is out there right away... The time stamps on every entry not only establish priority but allow anyone to track the contributions of every person, even in a large collaboration...we suddenly found people discovering us on Google and wanting to work together"
"...the real significance is the technologies’ potential to move researchers away from an obsessive focus on priority and publication toward the kind of openness and community that were the supposed hallmarks of science in the first place."
"A lot of the how-to gets passed around as lore in biology labs and never makes it into the protocol manuals...So whenever a student or postdoc managed to stumble through a new protocol, he or she would write down what was learned on a wiki page [OpenWetWare]. Others would then add whatever tricks they had gleaned."
"Instead of making do with a static Web page posted by a professor, students began to create dynamically evolving class sites where they could post lab results, ask questions, discuss the answers and even write collaborative essays. And it all stayed on the site, where it made the class better for next year."
"...the Web provides better protection than the traditional journal system, Bradley maintains. Every change on a wiki gets a time stamp, so if someone actually did try to scoop you, it would be very easy to prove your priority—and to embarrass them... If you wait for the journals, your work won’t appear for another six to nine months. But with open science, your claim to priority is out there right away... The time stamps on every entry not only establish priority but allow anyone to track the contributions of every person, even in a large collaboration...we suddenly found people discovering us on Google and wanting to work together"
"...the real significance is the technologies’ potential to move researchers away from an obsessive focus on priority and publication toward the kind of openness and community that were the supposed hallmarks of science in the first place."
Gin, televison and social surplus
Gin, televison and social surplus:
"And television watching? Two hundred billion hours, in the U.S. alone, every year. Put another way, now that we have a unit, that's 2,000 Wikipedia projects a year spent watching television. Or put still another way, in the U.S., we spend 100 million hours every weekend, just watching the ads. This is a pretty big surplus. People asking, "Where do they find the time?" when they're looking at things like Wikipedia don't understand how tiny that entire project is"
"...someone working alone, with really cheap tools, has a reasonable hope of carving out enough of the cognitive surplus, enough of the desire to participate, enough of the collective goodwill of the citizens, to create a resource you couldn't have imagined existing even five years ago."
"And that's message--I can do that, too--is a big change."
"And what's astonished people who were committed to the structure of the previous society, prior to trying to take this surplus and do something interesting, is that they're discovering that when you offer people the opportunity to produce and to share, they'll take you up on that offer. It doesn't mean that we'll never sit around mindlessly watching Scrubs on the couch. It just means we'll do it less."
"...this was in fact a big one-time shift, more analogous to the industrial revolution"
"And television watching? Two hundred billion hours, in the U.S. alone, every year. Put another way, now that we have a unit, that's 2,000 Wikipedia projects a year spent watching television. Or put still another way, in the U.S., we spend 100 million hours every weekend, just watching the ads. This is a pretty big surplus. People asking, "Where do they find the time?" when they're looking at things like Wikipedia don't understand how tiny that entire project is"
"...someone working alone, with really cheap tools, has a reasonable hope of carving out enough of the cognitive surplus, enough of the desire to participate, enough of the collective goodwill of the citizens, to create a resource you couldn't have imagined existing even five years ago."
"And that's message--I can do that, too--is a big change."
"And what's astonished people who were committed to the structure of the previous society, prior to trying to take this surplus and do something interesting, is that they're discovering that when you offer people the opportunity to produce and to share, they'll take you up on that offer. It doesn't mean that we'll never sit around mindlessly watching Scrubs on the couch. It just means we'll do it less."
"...this was in fact a big one-time shift, more analogous to the industrial revolution"
Saturday, April 26, 2008
Sırada Geocities... Yok mu arttıran?
Benim websayfamı da bünyesinde barındıran Geocities'e erişim yasaklanmış, Geocities adaletten kaçamamış. Ya da biz miyiz mahkum edilen? Bu adil düzende emeği olan herkese saygılarımı sunarım.
Blogspot'a sıra gelmesi yakındır. Doya doya okuyun, yarın ne olur bilinmez.
Geocities'e erişim engelleme gerekçesini öğrenmek için Adalet Bakanlığı Bilgi Edinme Bürosu'na mail attım. Bakalım bilgi verilecek mi, yoksa "dava ayrıntıları gizlidir" mi denecek? Tüm internet kullanıcılarını ilgilendiren bir konunun gizli olması mümkün değildir herhalde.
- o -
Güncelleme (29 Nisan): Bilgi Edinme Bürosu cevap yazdı:
- o -
Güncelleme (7 Haziran): Hala cevap gelmediğinden Adalet Bakanlığı'na tekrar şunu yazdım:
Ayrıca Tüketici Hakları Derneği'ne de mail yolladım, belki ilgilenirler. Derneğin yeri Atatürk Bulvarı'ndaymış, yakın yani.
Bir yandan da sürecin nasıl işlediğini merak ediyorum. Sayfaya erişim engelleme kararı nasıl aldırılıyor, nasıl geri kaldırılıyor? Erişim engelleme kararlarını alan aşağıdaki mahkeme türleri arasındaki fark ne? Hangisine başvuracağımızı nasıl bilebiliriz?
* Sulh ceza mahkemesi
* Asliye hukuk mahkemesi
Adamı zorla avukat yapar bu memleket (!)
mp3: Cüneyt Arkın - Yeminimi Bozdum
Blogspot'a sıra gelmesi yakındır. Doya doya okuyun, yarın ne olur bilinmez.
Geocities'e erişim engelleme gerekçesini öğrenmek için Adalet Bakanlığı Bilgi Edinme Bürosu'na mail attım. Bakalım bilgi verilecek mi, yoksa "dava ayrıntıları gizlidir" mi denecek? Tüm internet kullanıcılarını ilgilendiren bir konunun gizli olması mümkün değildir herhalde.
- o -
Güncelleme (29 Nisan): Bilgi Edinme Bürosu cevap yazdı:
"Başvurunuz... ilgisi nedeniyle 24.04.2008 tarih ve 2008/2330 sayılı yazımız ekinde Ankara Cumhuriyet Başsavcılığı Bilgi Edinme Bürosuna gönderilmiştir."Güzel, konu ile ilgilenilmiş. Şimdi gözler Cumhuriyet Başsavcılığı'nda...
- o -
Güncelleme (7 Haziran): Hala cevap gelmediğinden Adalet Bakanlığı'na tekrar şunu yazdım:
"26 Nisan 2008 tarihinde aşağıdaki konuda bilgi istemiştim. 29 Nisan 2008’de bana email yolu ile verilen cevapta “Başvurunuz ilgisi nedeniyle 24.04.2008 tarih ve 2008/2330 sayılı yazımız ekinde Ankara Cumhuriyet Başsavcılığı Bilgi Edinme Bürosuna gönderilmiştir. Başvurunuza, Ankara Cumhuriyet Başsavcılığı tarafından cevap verileceği hususunda bilgi edinmeniz rica olunur.” denmiştir. Ancak aradan bir aydan fazla zaman geçmesine rağmen bana cevap verilmemiştir. Neden cevap verilmediğini ve ne zaman cevap verileceğini öğrenmek istiyorum. Gereğini arz ederim."- o -
Ayrıca Tüketici Hakları Derneği'ne de mail yolladım, belki ilgilenirler. Derneğin yeri Atatürk Bulvarı'ndaymış, yakın yani.
Bir yandan da sürecin nasıl işlediğini merak ediyorum. Sayfaya erişim engelleme kararı nasıl aldırılıyor, nasıl geri kaldırılıyor? Erişim engelleme kararlarını alan aşağıdaki mahkeme türleri arasındaki fark ne? Hangisine başvuracağımızı nasıl bilebiliriz?
* Sulh ceza mahkemesi
* Asliye hukuk mahkemesi
Adamı zorla avukat yapar bu memleket (!)
mp3: Cüneyt Arkın - Yeminimi Bozdum
Thursday, April 24, 2008
Amasra'nın fethi
22-23 Nisan'da uzun zamandır aklımızda olan Amasra gezisini yaptık. Amasra güzel bir yer. Deniz havası iyi geliyor.
Tavşan adasına nazır Ağlayan Ağaç Cafe'ye giderseniz oradaki korkuluklarda meçhul aşıklar Ş ve D'nin bıraktığı izleri görebilirsiniz ;)
Pansiyonun hemen karşısındaki küçük müzede Amasra'nın Roma, Yunan, Ceneviz ve Osmanlı dönemlerinden kesitler var.
Amasra'da turizm yarı-amatör bir intiba bırakıyor. İyi niyetli insanlara benziyorlar ama işler biraz derme çatma.
Dönüşte izlediğimiz Amasra-Safranbolu güzergahı yeşilin her tonunu barındıran ve benim denizden daha çok sevdiğim tabiat manzarası ile dolu. Arada bir arabayı durdurup envai çeşit bitki kokusunu içimize çekerek, kuşların sessizliğe meydan okuyan keyifli şarkılarını dinleyerek sarhoş olduk. O manzarayı ve canlı renkleri gördükten sonra Bolu ormanları sıkıcı geliyor insana.
Arada Safranbolu'ya uğradık ama Amasra'dan sonra biraz yavan bulduk ne yalan söyliim.
Bu arada arabada sunroof iyi birşeymiş. Yan camları açınca gürültü oluyor ve rüzgar rahatsız edebiliyor. Sunroof ise hem sessiz hem ferah.
İşin lojistik boyutuna anlatacak olursak, yanına alacakların:
* Güneş gözlüğü
* 1.5 lt Su
* Termosta çay, bardak, şeker
* Sandviç
* Fotoğraf makinesi ve yedek pil
* Diş fırçası ve macunu
* Pijama
* Polar/yağmurluk (ne olur ne olmaz)
* Şort (hava sıcak olursa diye)
* Terlik
Gidiş Yolu: Ankara - Gerede - Mengen - Devrek - Bartın - Amasra : Evden çıkıp pansiyon parkına girene kadar 310km, 5 saat (aheste seyir modunda). Gerede'ye kadarki kısmı otobandan halledin. Ankara Gerede arasında kayda değer manzara yok.
Dönüş: Amasra - Bartın - Safranbolu - Karabük - Gerede - Ankara: Yine 5 saat
Kaldığımız yer: Kuşkayası Pansiyon. Tlf: (378) 315 25 76. Pansiyon temiz, sıcak suyu var (Amasra şartlarında önemli özelliklermiş). Odada TV mevcut. Pansiyon sahipleri düzgün insanlar. Büyük bir apartmanın alt kısmını pansiyona çevirmişler. Oda biraz serin, biz battaniye istedik. İnternetteki resimlerden sanki büyük bir bahçesi varmış gibi görünüyor ama öyle değil. Bir adımda bitiyor bahçe. Yeri Amasra'nın merkezinde, hemen karşısında müze ve küçük liman var. Etraftaki diğer otel ve pansiyonlar da benzer olduğundan sanırım daha iyi bir seçenek yok.
Bonus: Yerli wikitravel: E-Gezi
mp3: Amy Winehouse - Back To Black
Tavşan adasına nazır Ağlayan Ağaç Cafe'ye giderseniz oradaki korkuluklarda meçhul aşıklar Ş ve D'nin bıraktığı izleri görebilirsiniz ;)
Pansiyonun hemen karşısındaki küçük müzede Amasra'nın Roma, Yunan, Ceneviz ve Osmanlı dönemlerinden kesitler var.
Amasra'da turizm yarı-amatör bir intiba bırakıyor. İyi niyetli insanlara benziyorlar ama işler biraz derme çatma.
Dönüşte izlediğimiz Amasra-Safranbolu güzergahı yeşilin her tonunu barındıran ve benim denizden daha çok sevdiğim tabiat manzarası ile dolu. Arada bir arabayı durdurup envai çeşit bitki kokusunu içimize çekerek, kuşların sessizliğe meydan okuyan keyifli şarkılarını dinleyerek sarhoş olduk. O manzarayı ve canlı renkleri gördükten sonra Bolu ormanları sıkıcı geliyor insana.
Arada Safranbolu'ya uğradık ama Amasra'dan sonra biraz yavan bulduk ne yalan söyliim.
Bu arada arabada sunroof iyi birşeymiş. Yan camları açınca gürültü oluyor ve rüzgar rahatsız edebiliyor. Sunroof ise hem sessiz hem ferah.
İşin lojistik boyutuna anlatacak olursak, yanına alacakların:
* Güneş gözlüğü
* 1.5 lt Su
* Termosta çay, bardak, şeker
* Sandviç
* Fotoğraf makinesi ve yedek pil
* Diş fırçası ve macunu
* Pijama
* Polar/yağmurluk (ne olur ne olmaz)
* Şort (hava sıcak olursa diye)
* Terlik
Gidiş Yolu: Ankara - Gerede - Mengen - Devrek - Bartın - Amasra : Evden çıkıp pansiyon parkına girene kadar 310km, 5 saat (aheste seyir modunda). Gerede'ye kadarki kısmı otobandan halledin. Ankara Gerede arasında kayda değer manzara yok.
Dönüş: Amasra - Bartın - Safranbolu - Karabük - Gerede - Ankara: Yine 5 saat
Kaldığımız yer: Kuşkayası Pansiyon. Tlf: (378) 315 25 76. Pansiyon temiz, sıcak suyu var (Amasra şartlarında önemli özelliklermiş). Odada TV mevcut. Pansiyon sahipleri düzgün insanlar. Büyük bir apartmanın alt kısmını pansiyona çevirmişler. Oda biraz serin, biz battaniye istedik. İnternetteki resimlerden sanki büyük bir bahçesi varmış gibi görünüyor ama öyle değil. Bir adımda bitiyor bahçe. Yeri Amasra'nın merkezinde, hemen karşısında müze ve küçük liman var. Etraftaki diğer otel ve pansiyonlar da benzer olduğundan sanırım daha iyi bir seçenek yok.
Bonus: Yerli wikitravel: E-Gezi
mp3: Amy Winehouse - Back To Black
Monday, April 21, 2008
Bir google groups kalmıştı ellenmedik!
Dealing with infinite and indeterminate values in C++
In my programs infinity usually arises when a value is divided by zero. I get indeterminate when I divide zero by zero.
In C++, infinity is represented by 1.#INF. Indeterminate is represented by -1.#IND. The problem is how to test if a variable is infinite or indeterminate. Checking infinity is relatively straightforward: You find the infinity definition in your particular C++. For my case (VS2003), it is std::numeric_limits::infinity(). You have to include "limits" in order to use it. You can assign this infinite value to a variable and you can compare it to some value in order to check if that value is infinite.
Indeterminate is a little tricky, because you cannot compare an indeterminate value to some other value. Any comparison returns false. You can use this property to detect an indeterminate value by comparing it to itself. Let's say you have a double variable called aVal. Under normal conditions, aVal != aVal returns false. But if aVal is indeterminate, aIndVal != aIndVal returns true. This weird situation is not present for infinite values, i.e. aInfVal != aInfVal always returns false.
Here are two functions that can be used to check for indeterminate and infinite values:
Update Jan 04, 2009: I asked this question on Stackoverflow
In C++, infinity is represented by 1.#INF. Indeterminate is represented by -1.#IND. The problem is how to test if a variable is infinite or indeterminate. Checking infinity is relatively straightforward: You find the infinity definition in your particular C++. For my case (VS2003), it is std::numeric_limits
Indeterminate is a little tricky, because you cannot compare an indeterminate value to some other value. Any comparison returns false. You can use this property to detect an indeterminate value by comparing it to itself. Let's say you have a double variable called aVal. Under normal conditions, aVal != aVal returns false. But if aVal is indeterminate, aIndVal != aIndVal returns true. This weird situation is not present for infinite values, i.e. aInfVal != aInfVal always returns false.
Here are two functions that can be used to check for indeterminate and infinite values:
Update Jan 04, 2009: I asked this question on Stackoverflow
Saturday, April 19, 2008
Specifying and checking boundary values
When you write any non-trivial software, you have a lot of functions that take their input from outside and provide output to be used in yet another function. A good practice is to specify explicitly the boundary values for all inputs and outputs. In that manner, you will know what values to expect and be able to issue an error or warning message if boundaries are exceeded. If you don't write code to check the boundary, you might end up wasting time due to complicated bugs. Those bugs are especially nasty when they happen at sparse random intervals and at some very deep level.
After you write your boundary checking code, you'll also wish your algorithm to behave nicely even if the input is bad. Let's say you have a model that tries to follow an input reference (desired) signal. The reference signal is supposed to be a sinus with amplitude 1. This means that your expected range is [-1, 1]. Under normal conditions the output will be like this:
If for some reason you get an unexpected value (a division by zero here, a faulty sensor reading there) and you have no safety net in place, your output will become erratic:
As you see, the sudden jump takes time to die out and distorts the system even after the signal stabilizes. The simplest way to take care of unexpected jumps is to go back to the last good (i.e. inside boundary) signal and use that until the signal is valid again:
This simple strategy made sure that there was not too much distortion after the signal resumed to a valid state.
Moral of the story: Always specify the boundaries of inputs and outputs (for large systems in an interface control document). Check them and make sure you have the necessary code guarding against cases where something unexpected happens. Ignore this and you will waste away your life chasing elusive bugs (as has this poor soul countless times at his own peril).
After you write your boundary checking code, you'll also wish your algorithm to behave nicely even if the input is bad. Let's say you have a model that tries to follow an input reference (desired) signal. The reference signal is supposed to be a sinus with amplitude 1. This means that your expected range is [-1, 1]. Under normal conditions the output will be like this:
If for some reason you get an unexpected value (a division by zero here, a faulty sensor reading there) and you have no safety net in place, your output will become erratic:
As you see, the sudden jump takes time to die out and distorts the system even after the signal stabilizes. The simplest way to take care of unexpected jumps is to go back to the last good (i.e. inside boundary) signal and use that until the signal is valid again:
This simple strategy made sure that there was not too much distortion after the signal resumed to a valid state.
Moral of the story: Always specify the boundaries of inputs and outputs (for large systems in an interface control document). Check them and make sure you have the necessary code guarding against cases where something unexpected happens. Ignore this and you will waste away your life chasing elusive bugs (as has this poor soul countless times at his own peril).
A Fetish For Numbers
A Fetish For Numbers: Hospital Care:
"So many numbers we lose sight of the person. Scientists measure what they can measure and pronounce the rest to be unimportant. But the most important parts of life are qualitative. One of the physicians on my study team told us that it can take as long as 20 minutes to fill out all the required forms while she is in front of the patient, yet she is only allowed 15 minutes to attend to each patient... One physician told of watching a nurse busily record all of the numerical indications about a patient’s circulatory and respiratory systems, but with insufficient time to think about the meaning of the numbers and insufficient time to look at the patient: a five-second glance would have sufficed to show that the patient was having extreme difficulty breathing."
An interesting concept: The National Academies
"The National Academies perform an unparalleled public service by bringing together committees of experts in all areas of scientific and technological endeavor. These experts serve pro bono to address critical national issues and give advice to the federal government and the public."
"So many numbers we lose sight of the person. Scientists measure what they can measure and pronounce the rest to be unimportant. But the most important parts of life are qualitative. One of the physicians on my study team told us that it can take as long as 20 minutes to fill out all the required forms while she is in front of the patient, yet she is only allowed 15 minutes to attend to each patient... One physician told of watching a nurse busily record all of the numerical indications about a patient’s circulatory and respiratory systems, but with insufficient time to think about the meaning of the numbers and insufficient time to look at the patient: a five-second glance would have sufficed to show that the patient was having extreme difficulty breathing."
An interesting concept: The National Academies
"The National Academies perform an unparalleled public service by bringing together committees of experts in all areas of scientific and technological endeavor. These experts serve pro bono to address critical national issues and give advice to the federal government and the public."
Friday, April 18, 2008
Yurdumdan fantastik yatırım stratejileri
Memlekette ekonomik zekanın kıt olduğu malum. Misal sık sık kredi kartı borçlarının ödenemediğinden bahsedilir. Bugün öğrendiğim bir yatırım yaklaşımı yazmaya değer.
Bahse konu vatandaş irade sahibi olamadığı için para biriktiremiyor. İstese bir miktar parayı kenara koyabilecek halbuki. O da gidiyor bankadan 10bin YTL kredi çekiyor, birikmiş param olsun hesabı. Banka nasıl olsa ümmüğüne basa basa bana para ödetir, bu sayede de birikmiş parası olur.
Skeptik: Peki güzel kardeşim 10bin YTL'ye şu an ihtiyacın var mı?
Spastik: Yok.
Skeptik: Peki krediyi para gerçekten lazım olduğunda çeksen?
Spastik: ...sessizlik...
Buna benzer bir hikaye Göksun'da şöyle vukuu bulmuştu: Hemşerilerim bileşik faiz hesabından anlamadıkları için banka kredisini çok cazip zannetmişler ve kredi çekip altın alarak müthiş karlar elde etmişlerdi (!)
Bakalım daha neler göreceğiz...
Bahse konu vatandaş irade sahibi olamadığı için para biriktiremiyor. İstese bir miktar parayı kenara koyabilecek halbuki. O da gidiyor bankadan 10bin YTL kredi çekiyor, birikmiş param olsun hesabı. Banka nasıl olsa ümmüğüne basa basa bana para ödetir, bu sayede de birikmiş parası olur.
Skeptik: Peki güzel kardeşim 10bin YTL'ye şu an ihtiyacın var mı?
Spastik: Yok.
Skeptik: Peki krediyi para gerçekten lazım olduğunda çeksen?
Spastik: ...sessizlik...
Buna benzer bir hikaye Göksun'da şöyle vukuu bulmuştu: Hemşerilerim bileşik faiz hesabından anlamadıkları için banka kredisini çok cazip zannetmişler ve kredi çekip altın alarak müthiş karlar elde etmişlerdi (!)
Bakalım daha neler göreceğiz...
Thursday, April 17, 2008
Servis Güzergahı Nasıl Belirlenir
İş yerine servisle giden insanlar mutlaka insanların nereden alınacağı sorunu ile karşılaşmıştır. Servis güzergahı belirlenirken sabah herkes evine en yakın yerden ve mümkün olan en geç saatte alınmalıdır. Servisin iş yerine ulaşma saati de en geç 8:30 olmalıdır. Akşam ise herkes yine evine en yakın yerde ama bu sefer mümkün olan en erken saatte bırakılmalıdır.
Doğal olarak "ben evime çok uzak yerden alınıyorum", "eve çok geç ulaşıyorum", "X kişisini almak için neden bu kadar dolaşıyoruz, yürüsün ana yola çıksın" şikayetleri olacaktır. Şikayetleri gidermek için genellikle yarı mantıklı, yarı nabza göre şerbet yöntemleri izlenir.
Nabza göre şerbet usulleri gerginlik yaratır çünkü kurallar belirsizdir, konjonktüre göre değişebilir. İnsanlar kendini haksızlığa uğramış hisseder. Yapılması gereken kişiden bağımsız, servisin toplam iyiliğini hedefleyen kurallar kullanmak ve herkesin kuralları anlamasını sağlamaktır.
Basit kural [06.03.2014]: Bir yolcuyu almak için servis güzergahının uzatılması gündemde ise uzama miktarına t, bu uzamadan etkilenen kişi sayısına n, uzama sonucu söz konusu yolcunun yürüme süresindeki kısalma dt olsun. Güzergahın uzatılması için dt >= n*t olmalıdır. Yani bir kişinin süre kazancı diğer kişilerin toplam kaybından az olmamalıdır. Örnek: Diyelim Ali'nin 10 dakika daha az yürümesi için önerilen güzergah Ali'den önceki kısmı 5 dakika uzatıyor olsun. Ali'den önceki kişi sayısı 3 ise toplam kayıp 3*5 = 15 dakika > 10 olacağından güzergahın kısa halde tutulup Ali'nin 10 dakika daha fazla yürümesi gerekir.
Sabah güzergah belirleme işini bir optimizasyon problemi olarak formüle edecek olursak:
* İş yerine ulaşma saati 8:30
* İnsanların evlerinden alındıkları mesafeyi minimize et. Yokuş çıkılacaksa dy/dx'e bağlı ağırlık ver.
* Alınacak kişinin devamlılığını (kaç yıldır o adreste oturduğunu) dikkate al.
* Geçilen trafik lambası miktarını minimize et.
* Toplam yolculuk süresini minimize et.
* Mahalle arası dolaşma miktarını (dönüş sayısını) minimize et. Diyelim birini almak için iki rota seçeneği var. Birinci seçenek alınacak kişinin (adı Dartanyan) 5 dakika geç, ikinci seçenek 7 dakika erken binmesine neden oluyor. Dartanyan'ı almak için servis içerisinde bulunan üç kişi (Atos, Portos, Aramis) ikinci seçeneğe göre 3'er dakika erken binmek zorunda kalıyor, yani 9 dakika kaybediyor olsun. O zaman birinci seçenek +5-9 = -4, ikinci seçenek -7+9=2 dakika sağlıyor, dolayısı ile servisin toplam çıkarı düşünüldüğünde ikinci seçenek mantıklı oluyor. Genellikle Dartanyan böyle düşünmeyecek, mantık dışındaki seçenekleri (duygu sömürüsü, tahakküm vb.) zorlayacaktır. O zaman ne yapılacağı Atos, Portos ve Aramis'in kararlılığına bağlıdır.
Servis dolaşırken harcanan süreler trafik ve yol durumuna bağlı olduğundan birkaç gün boyunca ölçüm yapıp ortalama almak lazım. Bir de servise her yeni eleman eklendikçe veya belediye bir yolu tek yön yaptıkça tüm ölçüm ve hesaplama işini tekrarlamak gerek.
Problem bir algoritma olarak ifade edilebilir görünüyor. O zaman da yazarız güzel bir bilgisayar programı, çözeriz meseleyi. Programın sahip olması gereken özellikler:
* Herkesin evinin koordinatları girilmeli
* Olası rotalar ve o rotada geçen süreler girilmeli
* İş yerine en geç ne zaman ulaşılacağı girilmeli
Program bu bilgilerle optimum rotayı çıkarmalı. Duyarlılık (sensitivity) analizi ile çözümün esneklik payını bulmalı.
Güncelleme 17 Kasım 2016: Tek yönlü yollar nedeniyle sabah ve akşam güzergahlarını farklı yapmak servistekilerin ortalama iyiliği için daha iyi olabilir.
Doğal olarak "ben evime çok uzak yerden alınıyorum", "eve çok geç ulaşıyorum", "X kişisini almak için neden bu kadar dolaşıyoruz, yürüsün ana yola çıksın" şikayetleri olacaktır. Şikayetleri gidermek için genellikle yarı mantıklı, yarı nabza göre şerbet yöntemleri izlenir.
Nabza göre şerbet usulleri gerginlik yaratır çünkü kurallar belirsizdir, konjonktüre göre değişebilir. İnsanlar kendini haksızlığa uğramış hisseder. Yapılması gereken kişiden bağımsız, servisin toplam iyiliğini hedefleyen kurallar kullanmak ve herkesin kuralları anlamasını sağlamaktır.
Basit kural [06.03.2014]: Bir yolcuyu almak için servis güzergahının uzatılması gündemde ise uzama miktarına t, bu uzamadan etkilenen kişi sayısına n, uzama sonucu söz konusu yolcunun yürüme süresindeki kısalma dt olsun. Güzergahın uzatılması için dt >= n*t olmalıdır. Yani bir kişinin süre kazancı diğer kişilerin toplam kaybından az olmamalıdır. Örnek: Diyelim Ali'nin 10 dakika daha az yürümesi için önerilen güzergah Ali'den önceki kısmı 5 dakika uzatıyor olsun. Ali'den önceki kişi sayısı 3 ise toplam kayıp 3*5 = 15 dakika > 10 olacağından güzergahın kısa halde tutulup Ali'nin 10 dakika daha fazla yürümesi gerekir.
Sabah güzergah belirleme işini bir optimizasyon problemi olarak formüle edecek olursak:
* İş yerine ulaşma saati 8:30
* İnsanların evlerinden alındıkları mesafeyi minimize et. Yokuş çıkılacaksa dy/dx'e bağlı ağırlık ver.
* Alınacak kişinin devamlılığını (kaç yıldır o adreste oturduğunu) dikkate al.
* Geçilen trafik lambası miktarını minimize et.
* Toplam yolculuk süresini minimize et.
* Mahalle arası dolaşma miktarını (dönüş sayısını) minimize et. Diyelim birini almak için iki rota seçeneği var. Birinci seçenek alınacak kişinin (adı Dartanyan) 5 dakika geç, ikinci seçenek 7 dakika erken binmesine neden oluyor. Dartanyan'ı almak için servis içerisinde bulunan üç kişi (Atos, Portos, Aramis) ikinci seçeneğe göre 3'er dakika erken binmek zorunda kalıyor, yani 9 dakika kaybediyor olsun. O zaman birinci seçenek +5-9 = -4, ikinci seçenek -7+9=2 dakika sağlıyor, dolayısı ile servisin toplam çıkarı düşünüldüğünde ikinci seçenek mantıklı oluyor. Genellikle Dartanyan böyle düşünmeyecek, mantık dışındaki seçenekleri (duygu sömürüsü, tahakküm vb.) zorlayacaktır. O zaman ne yapılacağı Atos, Portos ve Aramis'in kararlılığına bağlıdır.
Servis dolaşırken harcanan süreler trafik ve yol durumuna bağlı olduğundan birkaç gün boyunca ölçüm yapıp ortalama almak lazım. Bir de servise her yeni eleman eklendikçe veya belediye bir yolu tek yön yaptıkça tüm ölçüm ve hesaplama işini tekrarlamak gerek.
Problem bir algoritma olarak ifade edilebilir görünüyor. O zaman da yazarız güzel bir bilgisayar programı, çözeriz meseleyi. Programın sahip olması gereken özellikler:
* Herkesin evinin koordinatları girilmeli
* Olası rotalar ve o rotada geçen süreler girilmeli
* İş yerine en geç ne zaman ulaşılacağı girilmeli
Program bu bilgilerle optimum rotayı çıkarmalı. Duyarlılık (sensitivity) analizi ile çözümün esneklik payını bulmalı.
Güncelleme 17 Kasım 2016: Tek yönlü yollar nedeniyle sabah ve akşam güzergahlarını farklı yapmak servistekilerin ortalama iyiliği için daha iyi olabilir.
Saturday, April 12, 2008
Gücüksu Hikayeleri
Geçenlerde teyzemlerde yaptığımız bir sohbette ilgimi çeken iki Çeçence beddua öğrendim:
"Pitırborg vehii" : Pitırborg'a gidesin. Cehenneme gidesin anlamına gelmekteymiş. Bu bedduanın kökeni ise Çarlık zamanında özellikle ağır (siyasi?) suçluların St. Petersburg'da yargılanması ve bu insanlardan bir daha haber alınamaması imiş.
Benzer bir beddua da "yıldız tanrısına gidesin" (sanırım "sid deel vehii" gibi birşey) imiş. Bu da müslümanlıktan önceki zamanda yıldız tanrısının öte dünyayı ifade etmesinden kaynaklanıyormuş.
Sevdiğim kelimelerden biri: "Huneyhtinig": Türkçe'deki "şey" kelimesinin kullanışlılığına sahiptir.
Zimoka: Çocuk masallarında geçen ünlü bir masal kahramanı, bir çeşit Keloğlan. Babam bana hep Zimoka'nın masallarını anlatırdı. Her gördüğümden de bu masalları anlatmasını istediğimden Erol dayım bana Zimoka diye seslenir olmuştu (!) Masalları şu an hatırlamıyorum çünkü o zamanlar 4-5 yaşlarındaydım. Bir ara öğrenip buraya yazmalı.
Verdiği bilgilerden dolayı Ahmet amcaya teşekkür ederim.
mp3: Samer Sami - Ghira Kaafe
"Pitırborg vehii" : Pitırborg'a gidesin. Cehenneme gidesin anlamına gelmekteymiş. Bu bedduanın kökeni ise Çarlık zamanında özellikle ağır (siyasi?) suçluların St. Petersburg'da yargılanması ve bu insanlardan bir daha haber alınamaması imiş.
Benzer bir beddua da "yıldız tanrısına gidesin" (sanırım "sid deel vehii" gibi birşey) imiş. Bu da müslümanlıktan önceki zamanda yıldız tanrısının öte dünyayı ifade etmesinden kaynaklanıyormuş.
Sevdiğim kelimelerden biri: "Huneyhtinig": Türkçe'deki "şey" kelimesinin kullanışlılığına sahiptir.
Zimoka: Çocuk masallarında geçen ünlü bir masal kahramanı, bir çeşit Keloğlan. Babam bana hep Zimoka'nın masallarını anlatırdı. Her gördüğümden de bu masalları anlatmasını istediğimden Erol dayım bana Zimoka diye seslenir olmuştu (!) Masalları şu an hatırlamıyorum çünkü o zamanlar 4-5 yaşlarındaydım. Bir ara öğrenip buraya yazmalı.
Verdiği bilgilerden dolayı Ahmet amcaya teşekkür ederim.
mp3: Samer Sami - Ghira Kaafe
İş / İşyeri Değerlendirme Kriterleri
Eğer bir işte çalışıyorsanız zaman zaman "buna değiyor mu", "daha iyisi olabilir mi" gibi sorularla meşgul olmak kaçınılmazdır. İşyerini değerlendirirken kullandığımız kriterlerin önemli bir kısmı kişiden kişiye değişir, subjektiftir. Örneğin benim için birlikte çalıştığım insanların akıllı olması ve işimi nasıl yapacağımda söz sahibi olmam çok önemlidir.
Sübjektif olanları (elemanlarla uyum vb.) bir kenara bırakarak da işe yarar değerlendirme yapmak mümkün. Tam zamanlı bir işi (haftada 5 tam gün) değerlendirmek için kolayca ölçülebilir kriterleri aşağıda listeledim. Kriterleri evet/hayır (1/0) biçiminde değerlendirmek gerekiyor. Kriterlerin yanındaki rakamlar kriterin önemini göstermektedir. 1=Az önemli, 2=normal, 3=çok önemli. Örneğin birinci kritere evet dediyseniz o kriterden verilen not 1 * 3 = 3'tür. Varsayım: Çalışan kişi işe başlarken üzerinde anlaşılan işi layıkıyla yapmaktadır.
Süper iş: 90/100
İyi iş: 75/100
Vasat iş: 50/100
Minimum iş: 25/100
Haftada beş gün çalışıyorken işinize verdiğiniz not 25/100'ün altındaysa çalışmayarak daha iyi bir karar vermiş olursunuz.
mp3: Prince - The Most Beautiful Girl In The World
Sübjektif olanları (elemanlarla uyum vb.) bir kenara bırakarak da işe yarar değerlendirme yapmak mümkün. Tam zamanlı bir işi (haftada 5 tam gün) değerlendirmek için kolayca ölçülebilir kriterleri aşağıda listeledim. Kriterleri evet/hayır (1/0) biçiminde değerlendirmek gerekiyor. Kriterlerin yanındaki rakamlar kriterin önemini göstermektedir. 1=Az önemli, 2=normal, 3=çok önemli. Örneğin birinci kritere evet dediyseniz o kriterden verilen not 1 * 3 = 3'tür. Varsayım: Çalışan kişi işe başlarken üzerinde anlaşılan işi layıkıyla yapmaktadır.
- Aranan niteliklere sahip olduğun için iş değiştirmek, işe ara vermek kolaydır: 3 puan
- Yıllık elinize geçen net para en az 12 * 2 * asgari ücret: 3 puan
- Ücret zamanında ödenir: 2 puan
- Sigortanız yatar: 1 puan
- Çalışan ile işveren arasında yapılacak işi ve ücreti tanımlayan resmi sözleşme vardır: 2 puan
- İşveren yıl içinde ücreti düşürme talebinde bulunmaz: 2 puan
- Ek iş (fazla mesai vb.) için ek ücret öder: 2 puan
- Çalışanın üzerine düşeni yaptığı sürece en az bir yıllık iş garantisi vardır: 3 puan
- Her yıl sonunda yeniden iş aramak gerekmez: 2 puan
- Çalışma yeri Ankara’dır, yılda 1 aydan fazla şehir dışına çıkmak gerekmez: 3 puan
- Çalışma süresi haftada 40 saati geçmez: 3 puan
- Çalışma süresi hiçbir gün 8 saati geçmez: 1 puan
- Çalışan ayda 1 gün mazeret izni kullanabilir: 1 puan
- İşyerine servis vardır: 2 puan
- İşyerine gidiş/geliş süresi 1+1=2 saatin altındadır: 2 puan
- İşyerinde yemek çıkmaktadır: 2 puan
- Kreşte/okulda küçük çocuğu olanların çocuklarını sabah teslim edebilmeleri ve akşam karşılayabilmeleri için: İşyeri servisine biniş saati en erken 07:45, servisten iniş saati en geç 18:30: 2 puan
- Tuvaletler temiz: 1 puan
- Çalışan yılda en az üç hafta izin kullanabilir: 2 puan
- Çalışan yıllık iznini istediği zaman kullanabilir: 2 puan
- Çalışan bir yıl ücretsiz izin kullanabilir (doğum izni vb. nedenlerle): 2 puan
- Çalışan neden göstermeksizin her beş yılda bir yıl ücretsiz izin kullanabilir: 1 puan
Süper iş: 90/100
İyi iş: 75/100
Vasat iş: 50/100
Minimum iş: 25/100
Haftada beş gün çalışıyorken işinize verdiğiniz not 25/100'ün altındaysa çalışmayarak daha iyi bir karar vermiş olursunuz.
mp3: Prince - The Most Beautiful Girl In The World
Friday, April 11, 2008
Medya Kullanma Kılavuzu
Medyadaki uydurma, propaganda ve iftiraların farkına vardığımdan, bunların sayısının doğru haberlerin sayısına yakın olduğunu gördüğümden beri (>5 yıl) gazete okuyamaz, tv'de haber izleyemez oldum. Medyanın bizi gerizekalı yerine koyduğu durumlar:
* İşine gelen haberi doğruluğunu kontrol etme zahmetine girmeden kullanmak. Örnek: Patrik ile eski Diyanet İşleri Başkanı'nın kardeş olduğu haberi
* Cümleleri, demeçleri kırpıp işine gelen anlamı elde etmek. Örnek: "Medya ahlaksızdır demedim" cümlesini "medya ahlaksızdır" diye kırpmak .
* Konunun muhattaplarına söz hakkı tanımamak.
* Aleyhte kamuoyu yaratmak istediğiniz kişilerin hep çirkin resim ve görüntülerini kullanmak.
* Uydurmak, daha da fecisi gerçeğin zıttı yalanlar söylemek.
* Hamasetle olayları saptırmak, gerçeği sıvamak. Avrupa Birliği'ni eleştiren haberler buna güzel örnek teşkil eder.
* Diğer bilcümle bullshit yöntemleri...
Haberlerin nasıl yapıldığında dair şöyle bir hipotezim var: Bir odada kelli felli yayın yönetmeni benzeri tipler oturur. Arada biri içeri girip gündemle alakalı çeşitli anahtar kelimeler söyler. Bu kelli felli tipler o günkü konjünktüre ve kendi ajandalarına uygun şekilde anahtar kelimelerin aralarını doldurup fantaziler türetirler. Sonra en uçuk olanları haber yapılır.
Artık haberlere düzeysiz fantazi muamelesi yapıyorum. Haberlerin en doğru yeri hava durumu, onu da teletext ile takip ediyorum. Hatta sabahları teletext'e bakarken tv'nin sesini kısıyorum, yoksa mazallah arka plandaki propagandadan etkilenebilirim.
Önerim illa haber izleyecekseniz fikrinizi oluşturmadan önce mümkün olduğunca farklı kaynaktan beslenmenizdir. Bir çeşit filtreleme algoritması ile yalan dolanın arasında gizlenmiş gerçek kırıntılarını bulma olasılığınız artar. Yabancı kanalları (CNN, BBC, RTL...) ve web sayfalarını izlemeyi de ihmal etmeyin. Tarihi konular hakkında ise ingilizce wikipedia güzel bir kaynak çünkü çok çeşitli pencerelerden bakışları içeriyor. Örnek: İkinci Viyana Kuşatması
Yazımızı bugün okuduğum bir sözle bitirelim: "Gerçeğin en kötü yanı bir gün su yüzüne çıkmasıdır."
Güncelleme, 18 Nisan 2012: Önemli bir kılavuz: Fair bloğu
* İşine gelen haberi doğruluğunu kontrol etme zahmetine girmeden kullanmak. Örnek: Patrik ile eski Diyanet İşleri Başkanı'nın kardeş olduğu haberi
* Cümleleri, demeçleri kırpıp işine gelen anlamı elde etmek. Örnek: "Medya ahlaksızdır demedim" cümlesini "medya ahlaksızdır" diye kırpmak .
* Konunun muhattaplarına söz hakkı tanımamak.
* Aleyhte kamuoyu yaratmak istediğiniz kişilerin hep çirkin resim ve görüntülerini kullanmak.
* Uydurmak, daha da fecisi gerçeğin zıttı yalanlar söylemek.
* Hamasetle olayları saptırmak, gerçeği sıvamak. Avrupa Birliği'ni eleştiren haberler buna güzel örnek teşkil eder.
* Diğer bilcümle bullshit yöntemleri...
Haberlerin nasıl yapıldığında dair şöyle bir hipotezim var: Bir odada kelli felli yayın yönetmeni benzeri tipler oturur. Arada biri içeri girip gündemle alakalı çeşitli anahtar kelimeler söyler. Bu kelli felli tipler o günkü konjünktüre ve kendi ajandalarına uygun şekilde anahtar kelimelerin aralarını doldurup fantaziler türetirler. Sonra en uçuk olanları haber yapılır.
Artık haberlere düzeysiz fantazi muamelesi yapıyorum. Haberlerin en doğru yeri hava durumu, onu da teletext ile takip ediyorum. Hatta sabahları teletext'e bakarken tv'nin sesini kısıyorum, yoksa mazallah arka plandaki propagandadan etkilenebilirim.
Önerim illa haber izleyecekseniz fikrinizi oluşturmadan önce mümkün olduğunca farklı kaynaktan beslenmenizdir. Bir çeşit filtreleme algoritması ile yalan dolanın arasında gizlenmiş gerçek kırıntılarını bulma olasılığınız artar. Yabancı kanalları (CNN, BBC, RTL...) ve web sayfalarını izlemeyi de ihmal etmeyin. Tarihi konular hakkında ise ingilizce wikipedia güzel bir kaynak çünkü çok çeşitli pencerelerden bakışları içeriyor. Örnek: İkinci Viyana Kuşatması
Yazımızı bugün okuduğum bir sözle bitirelim: "Gerçeğin en kötü yanı bir gün su yüzüne çıkmasıdır."
Güncelleme, 18 Nisan 2012: Önemli bir kılavuz: Fair bloğu
Saturday, April 05, 2008
3. Rafting Şenliği
29 Mart'ta Büyük Melen'de üçüncü rafting şenliğimizi düzenledik. Organizasyonu SALTUR yaptı, ulaşım, rafting, yemek dahil adam başı 130 YTL'ye mal oldu. Aşağıda maceramızın klibi var:
Klipteki müzik: Doom3 oyununun soundtrack'i
Organizasyon eleştirisi: Geçtiğimiz iki rafting etkinliğinde raftingi bitirip bottan indiğimiz yerde doğru düzgün duş alabilmiştik. Bu sefer bottan indikten sonra midibüse binip başlangıç noktasına döndük. Oradaki duş da biraz uyduruk olduğundan tat vermedi. Bir de Düzce valisi grubunu beklememiz gerekti. Gitmeden önce duşu ve devlet erkanı durumunu sorunuz (!) Onun dışında bir sıkıntı yoktu. Yemekler de güzeldi.
Klipteki müzik: Doom3 oyununun soundtrack'i
Organizasyon eleştirisi: Geçtiğimiz iki rafting etkinliğinde raftingi bitirip bottan indiğimiz yerde doğru düzgün duş alabilmiştik. Bu sefer bottan indikten sonra midibüse binip başlangıç noktasına döndük. Oradaki duş da biraz uyduruk olduğundan tat vermedi. Bir de Düzce valisi grubunu beklememiz gerekti. Gitmeden önce duşu ve devlet erkanı durumunu sorunuz (!) Onun dışında bir sıkıntı yoktu. Yemekler de güzeldi.
Subscribe to:
Posts (Atom)