En sevdiğimiz baharatlardan olan reyhanı (güzel kokan demekmiş) evde yetiştirmeyi düşünüyorduk epeycedir. Ancak ne fidesine ne de tohumuna rastgelmiyorduk. Nihayet bugün tohumlarını bulduk. En kısa zamanda da yetiştireceğiz. Reyhan (purple basil) fesleğenin (basil) bir türü imiş meğer.
Linkler:
How to grow basil
Reyhan nasıl yetiştirilir
Güncelleme (6 Haziran 2012): Geçen yıl ektiğimiz reyhan bir yılını doldurdu ve keyfi yerinde görünüyor. Zaman zaman budadım, özellikle çiçek tomurcuklarını kopardım ki çiçek açmasın. Çiçek açmasına izin verirsem reyhanın "amacımı yerine getirdim" deyip kendini salacağına inanıyorum:
Sunday, May 31, 2009
Saturday, May 30, 2009
Fıkra
Bir mühendislik öğrencisi çimlere uzanmış ders çalışırken bir başkası son model bisikleti ile çıkagelir. Birinci öğrenci "nereden buldun bunu?" diye sorar
Bisikletli öğrenci: "Dün dışarda ders çalışırken güzel bir kız bisikleti ile yanıma yanaştı. Elbiselerini çıkarıp 'ne istersen senin olabilir' dedi"
Birinci öğrenci: "İyi seçim. Muhtemelen elbiseleri sana olmazdı."
Bisikletli öğrenci: "Dün dışarda ders çalışırken güzel bir kız bisikleti ile yanıma yanaştı. Elbiselerini çıkarıp 'ne istersen senin olabilir' dedi"
Birinci öğrenci: "İyi seçim. Muhtemelen elbiseleri sana olmazdı."
Tuesday, May 26, 2009
Developing Expertise
A nice presentation about different stages of competence and the needs of each stage, Developing Expertise
I only disagree with the statement that experts shouldn't be forced to explain their rationale (with memos for example). I think that we should be able to explain our intuition.
Related reading: Level 5 means never having to say you're sorry
Bonus: SpaceX
I only disagree with the statement that experts shouldn't be forced to explain their rationale (with memos for example). I think that we should be able to explain our intuition.
Related reading: Level 5 means never having to say you're sorry
Bonus: SpaceX
Can my blog updates appear on facebook?
Can my blog updates appear on facebook?
...log into facebook and go to Notes. It's a basic facebook feature, so you don't have to add anything. Click "my notes". See the little box about note settings? Click anything that says "import settings", which will bring you to a screen where you can add the RSS feed from your blog.
Sunday, May 24, 2009
TÜBİTAK Ortaöğretim Proje Yarışması 09
Bu pazar günü TÜBİTAK Ortaöğretim Proje Yarışması 09 final sergisini gezdik.
Fizikten sosyolojiye kadar çeşitli alanlarda lise öğrencilerinin projeleri vardı. Organizasyon güzel olmuş, yeri Altınpark'ta idi. Altınpark'a gitmek için Atatürk Bulvarı'ndan düz devam ediyor, Ulus'u geçiyoruz. Bir müddet sonra yokuşta sağda beliriyor:
pdf: Finalist proje listesi
Ortaokul-lise zamanlarımda Bilim Teknik Dergisi'nde bu tür yarışmaların haberleri olurdu. Projeler bana çok uçuk gelir, nasıl yapıldıklarını anlamazdım. O nedenle bugün proje yapan öğrencilere ne yaptıklarının yanısıra, nasıl yaptıklarını da sorduk. Yarışmadan nasıl haberdar oldular? Fikri nasıl buldular? Projeyi uygulamaya geçirirken nereden destek aldılar? Anladığım kadarı ile öğretmenin rolü önemli. Öğretmenin enerjisi yüksekse, hele de üniversite ile bağlantıları varsa fikri uygulamaya geçirmek nispeten kolay oluyor.
En beğendiğim fikir "Farklı Ülkelerin Lise Kitaplarındaki I. Dünya Savaşı Anlatımlarının Karşılaştırılması" isimli tarih projesi oldu. Vardı tabi eksikleri ama fikir hoşumuza gitti. Daha önce okuduğum History Lessons kitabı da aynı şeyi Amerikan tarihi için yapmıştı. Projeyi TED Mersin Lisesi'nden Gözen Aksoy ve Ceyhun Demir hazırlamış:
Projelerdeki kızların çokluğu hoş bir sürprizdi benim için, özellikle sayısal alana kızların daha az merakı olacağını sanıyordum (bkz. mühendislik bölümlerinde kız sayısı). Yurdun her köşesinden zeki, meraklı insanlarla birarada olmak güzeldi. Yaptığı işten heyecan duyan ve hızlı hızlı anlatanlarla sohbet etmek moral veriyor. Keşke şimdiden yarızamanlı olarak alabilsek...
Fizikten sosyolojiye kadar çeşitli alanlarda lise öğrencilerinin projeleri vardı. Organizasyon güzel olmuş, yeri Altınpark'ta idi. Altınpark'a gitmek için Atatürk Bulvarı'ndan düz devam ediyor, Ulus'u geçiyoruz. Bir müddet sonra yokuşta sağda beliriyor:
pdf: Finalist proje listesi
Ortaokul-lise zamanlarımda Bilim Teknik Dergisi'nde bu tür yarışmaların haberleri olurdu. Projeler bana çok uçuk gelir, nasıl yapıldıklarını anlamazdım. O nedenle bugün proje yapan öğrencilere ne yaptıklarının yanısıra, nasıl yaptıklarını da sorduk. Yarışmadan nasıl haberdar oldular? Fikri nasıl buldular? Projeyi uygulamaya geçirirken nereden destek aldılar? Anladığım kadarı ile öğretmenin rolü önemli. Öğretmenin enerjisi yüksekse, hele de üniversite ile bağlantıları varsa fikri uygulamaya geçirmek nispeten kolay oluyor.
En beğendiğim fikir "Farklı Ülkelerin Lise Kitaplarındaki I. Dünya Savaşı Anlatımlarının Karşılaştırılması" isimli tarih projesi oldu. Vardı tabi eksikleri ama fikir hoşumuza gitti. Daha önce okuduğum History Lessons kitabı da aynı şeyi Amerikan tarihi için yapmıştı. Projeyi TED Mersin Lisesi'nden Gözen Aksoy ve Ceyhun Demir hazırlamış:
Projelerdeki kızların çokluğu hoş bir sürprizdi benim için, özellikle sayısal alana kızların daha az merakı olacağını sanıyordum (bkz. mühendislik bölümlerinde kız sayısı). Yurdun her köşesinden zeki, meraklı insanlarla birarada olmak güzeldi. Yaptığı işten heyecan duyan ve hızlı hızlı anlatanlarla sohbet etmek moral veriyor. Keşke şimdiden yarızamanlı olarak alabilsek...
Managing with Trust
Managing with Trust:
You Gotta Own It:
If you trust and empower your software and other high-technology professionals to manage themselves, they will do extraordinary work. However, it cannot be blind trust. You must ensure that they know how to manage their own work, and you must monitor their work to ensure that they do it properly. The proper monitoring attitude is not to be distrustful, but instead, to show interest in their work.
By using simplistic extrinsic motivators to goad performance, managers excuse themselves from harder matters such as investment, direct personal motivation, thoughtful team-formation, staff retention, and ongoing analysis and redesign of work procedures.
Data collected on individual performance has to be used only to benefit that individual as an exercise in self-assessment. Only sanitized averages should be made available to the boss.
You Gotta Own It:
...if you do want great software, you have to let the developers own what they're building. The developers are inevitably the ones who have the most control over the success or failure of the project. Creating an environment where your developers have no emotional attachment to the project they're working on is a recipe for mediocre software-- and job disillusionment.
It's heady and a little frightening to know that the boss has put part of his or her reputation into the subordinates' hands. It brings out the best in everyone.
Saturday, May 23, 2009
Kadir Kıymet
Kendi çapımda ahlaklı bir hayat sürdürmeye çalışırım. Ahlak anlayışımın temel unsurlarından biri de iyi şeylerin takdir ve teşvik edilmesi. Bedavacılığa karşıyım.
Kendi çapımdan örnekler:
* Wikipedia'ya katkı yaparım (hem bilgi olarak hem de bağışla).
* Tüm kitaplarımı orjinal alırım.
* Beğendiğim filmlerin orjinalini edinirim.
* Beğendiğim müziklerin orjinalini alırım. Misal ODTÜ Bahar Şenliği'nde dinlediğim Hayko Cepkin'in iki şarkısı çok hoşuma gitti. İnternetten dakkasında bedava mp3'ünü buldum, ama akabinde orjinal CD'lerini aldık.
* İşyerinde yazılımların orjinallerinin alınmasını sağlarım. Eve henüz sıra gelmedi :*) Yakında inşallah.
Yaptıklarım eser sahiplerine ne kadar yansır bilmiyorum. Bana faydası bedavacılığı alışkanlık olmaktan çıkarmamdır, önemli olan da budur. Bir de vicdan var susmak bilmeyen...
Batı uygarlığının nimetlerinden yararlananların teşekkür etmek ve minnet duymak bir yana sıkılmadan dönüp Batı'yı "sömürücülükle" suçlamaları insanlık tarihinin eşine az rastlanır tuhaflıklarından biri sayılmalıdır.
Kendi çapımdan örnekler:
* Wikipedia'ya katkı yaparım (hem bilgi olarak hem de bağışla).
* Tüm kitaplarımı orjinal alırım.
* Beğendiğim filmlerin orjinalini edinirim.
* Beğendiğim müziklerin orjinalini alırım. Misal ODTÜ Bahar Şenliği'nde dinlediğim Hayko Cepkin'in iki şarkısı çok hoşuma gitti. İnternetten dakkasında bedava mp3'ünü buldum, ama akabinde orjinal CD'lerini aldık.
* İşyerinde yazılımların orjinallerinin alınmasını sağlarım. Eve henüz sıra gelmedi :*) Yakında inşallah.
Yaptıklarım eser sahiplerine ne kadar yansır bilmiyorum. Bana faydası bedavacılığı alışkanlık olmaktan çıkarmamdır, önemli olan da budur. Bir de vicdan var susmak bilmeyen...
Tez ve Makalelerdeki Hatalar
Her işe başlamadan önce mutlaka kaynakları tarar, hiç olmazsa konuyla ilgili kelimelerle google araması yaparım. Tekerleği yeniden icat etmeye gerek yok. Ancak haddinden fazla tez ve makalenin hatalarla dolu olduğunu görüyorum. Neden bu kadar hata olduğu üzerine biraz kafa yorduk.
Mastır ve doktora tezi veren üniversite hocalarının üstündeki tez yükü: Yılda 10 tez öğrencisi kabul edebiliyorlar. Bunun iki katı kadar tezin de jüri üyesi oluyorlar desek... her yıl 30 tez okumak zorundalar. Tezleri okumak için de en fazla iki ay var dersek 40 gün. Tezlerin herbiri ortalama 100 sayfa olsa 3000 sayfa eder. 3000/40 = 75 sayfa/gün. Yani hocanın hergün 75 sayfayı ayrıntıları ile kontrol ederek okuması lazım. Pratikte mümkün değil. Hatta minimum iş ahlağı seviyesinde bile inceleyenler azınlıkta, hocaların bir kısmı pikniğe gelir gibi jüriye geliyorlar. Artık tezlerin çoğunda bilgisayar programı da yazılıyor. Kodların hocalar tarafından incelendiği enderdir. Teorinin koda doğru aktarıldığının tek garantisi tez öğrencisinin lafı! Tez yazma sürecinden geçmiş herkes bilir ki jüriye giren öğrencinin psikolojisi hırpalanmıştır, kendisine üç keçi dahi emanet edilemez (!) İdeal çözüm az sayıda yüksek lisans öğrencisi almak ama ona da toplum hazır değil (!)
Sonuçta hatalı teorilerle yola çıkılıyor, teori doğru olsa bile kod yanlış olabiliyor, saçma sonuçlar üzerinden müthiş yorumlar yapılıp işe yaramaz tezler yazılıyor. Tezleri, makaleleri sorgulamadan kullanırsanız ayvayı yersiniz. Bu sorgulama prensibi hayattaki herşey için geçerli ama şimdi yerim dar, konuyu dağıtmayalım...
Akıl sağlığını korumak istiyorsan tezlere/makalelere edebi eserler gözüyle bakmalısın. Tezin kaynak listesini kullanabilir, tezdeki yaklaşımlardan ilham alabilirsin. Eğer sonuçları kullanacaksan hocaların eksik bıraktığı didikleme işini yapmak ve günün sonunda elinde birşey kalmayabileceği gerçeğini akılda tutmak zorundasın.
Mastır ve doktora tezi veren üniversite hocalarının üstündeki tez yükü: Yılda 10 tez öğrencisi kabul edebiliyorlar. Bunun iki katı kadar tezin de jüri üyesi oluyorlar desek... her yıl 30 tez okumak zorundalar. Tezleri okumak için de en fazla iki ay var dersek 40 gün. Tezlerin herbiri ortalama 100 sayfa olsa 3000 sayfa eder. 3000/40 = 75 sayfa/gün. Yani hocanın hergün 75 sayfayı ayrıntıları ile kontrol ederek okuması lazım. Pratikte mümkün değil. Hatta minimum iş ahlağı seviyesinde bile inceleyenler azınlıkta, hocaların bir kısmı pikniğe gelir gibi jüriye geliyorlar. Artık tezlerin çoğunda bilgisayar programı da yazılıyor. Kodların hocalar tarafından incelendiği enderdir. Teorinin koda doğru aktarıldığının tek garantisi tez öğrencisinin lafı! Tez yazma sürecinden geçmiş herkes bilir ki jüriye giren öğrencinin psikolojisi hırpalanmıştır, kendisine üç keçi dahi emanet edilemez (!) İdeal çözüm az sayıda yüksek lisans öğrencisi almak ama ona da toplum hazır değil (!)
Sonuçta hatalı teorilerle yola çıkılıyor, teori doğru olsa bile kod yanlış olabiliyor, saçma sonuçlar üzerinden müthiş yorumlar yapılıp işe yaramaz tezler yazılıyor. Tezleri, makaleleri sorgulamadan kullanırsanız ayvayı yersiniz. Bu sorgulama prensibi hayattaki herşey için geçerli ama şimdi yerim dar, konuyu dağıtmayalım...
Akıl sağlığını korumak istiyorsan tezlere/makalelere edebi eserler gözüyle bakmalısın. Tezin kaynak listesini kullanabilir, tezdeki yaklaşımlardan ilham alabilirsin. Eğer sonuçları kullanacaksan hocaların eksik bıraktığı didikleme işini yapmak ve günün sonunda elinde birşey kalmayabileceği gerçeğini akılda tutmak zorundasın.
Pass phrases
Pass Phrases:
The more paranoid the network admins (or security council, or board, or whoever sets the rules) the more obscure the passwords must be, and the more often the need to be changed. What these people fail to realize is the average human worker just wants to do their job, and can't remember Syz8#K3! as a password. So what do they do.... Out comes the post-it-note on the desk, or in the drawer, or under the keyboard, or the file on the desktop called “passwords.txt“... if your password is so hard to remember that you have to write it down, then you have no security at all.
Thursday, May 21, 2009
Faster Vista
Choosing Anti-Anti-Virus Software:
Vista's new security features will slow your PC down more than almost any other kind of software you can install. For best performance, the first thing I do on any new Vista install is this:
* Turn off Windows Defender
* Turn off Windows Firewall
* Disable System Protection
* Disable UAC
...nothing cripples your PC's performance quite like anti-virus software.
Tuesday, May 19, 2009
İstek ve İrade
Biraz önce Deniz'le hayatta başarı için istek ve iradenin önemi konulu bir sohbetimiz oldu. Sohbetin başlangıç noktası org çalmanın zor olup olmadığıydı. Yeterince istek ve irade olması durumunda her türlü müzik aletinin çalınabileceğini düşünüyorum. Başarılı olup olmadığınızı belirleyen hedefinizin ne olduğudur. Örneğin benim hedefim müzisyen olmak, kitleler tarafından saygı görmek değil. Başka biri ile de yarışmıyorum. Amacım kendimi eğlendirecek kadar müzik yapmak ve temel seviyede müzik teorisi öğrenmek. Gerekli olan tek şey haftada ortalama 5 saat vakit ayırmak ve tabi ki eğlenmek. Ama eğlence işin az bir bölümü, çoğu alın teri.
Benzer durum ingilizce, bilgisayar, dans, yüzme, basketbol, voleybol için de geçerli. Hepsi hoşuma gidiyor, gelişme sağlayacak kadar iradem de var.
Ne tür şeylere isteğinizin olduğunu anlamak için denemekten başka çıkar yol yok. İlk zorlukta da bırakmamalı. Örneğin araba sürmede ve dansta ilk aşamalar zorludur, eziyet gibi gelir. Ancak birkaç ay sonra zevkine varılabilir (o sürede hala eğlenmiyorsanız durumu yeniden değerlendirmeniz gerekir).
Asıl püf noktası irade konusu. İrade, çalıştırılarak geliştirilebilen bir meziyet. Küçük küçük irade antrenmanları ile zinde halde tutmazsanız gerçekten lazım olduğunda kayış atabilirsiniz. Benim kullandığım basit iki irade antrenmanı var. Birincisi sms ve email yazarken gramer ve imla kurallarına uymaktır. Özellikle sms yazarken kesme (apostrof) işareti kullanmak vb. şeyler sıkıcıdır. Ama maksat o ekstra küçük çabayı göstererek iradeyi terbiye etmek. İkinci yöntem ise öğle yemeklerinde çok sevdiğim halde tatlı almamak. Kilo sorunum yok, sadece istediğim birşeyi irademle yapmama gücüm olduğunu kendime ispatlıyorum.
Hala okumaya devam ediyor ve "Şamil tırlatmış" (!) demiyorsanız tavsiyem iradenizi güçlü tutmanızdır. Hayatta başarı için en gerekli şey budur. İrade zaafiyetinin sonucu başarısızlık ve vasat bir hayata razı olmaktır.
Benzer durum ingilizce, bilgisayar, dans, yüzme, basketbol, voleybol için de geçerli. Hepsi hoşuma gidiyor, gelişme sağlayacak kadar iradem de var.
Ne tür şeylere isteğinizin olduğunu anlamak için denemekten başka çıkar yol yok. İlk zorlukta da bırakmamalı. Örneğin araba sürmede ve dansta ilk aşamalar zorludur, eziyet gibi gelir. Ancak birkaç ay sonra zevkine varılabilir (o sürede hala eğlenmiyorsanız durumu yeniden değerlendirmeniz gerekir).
Asıl püf noktası irade konusu. İrade, çalıştırılarak geliştirilebilen bir meziyet. Küçük küçük irade antrenmanları ile zinde halde tutmazsanız gerçekten lazım olduğunda kayış atabilirsiniz. Benim kullandığım basit iki irade antrenmanı var. Birincisi sms ve email yazarken gramer ve imla kurallarına uymaktır. Özellikle sms yazarken kesme (apostrof) işareti kullanmak vb. şeyler sıkıcıdır. Ama maksat o ekstra küçük çabayı göstererek iradeyi terbiye etmek. İkinci yöntem ise öğle yemeklerinde çok sevdiğim halde tatlı almamak. Kilo sorunum yok, sadece istediğim birşeyi irademle yapmama gücüm olduğunu kendime ispatlıyorum.
Hala okumaya devam ediyor ve "Şamil tırlatmış" (!) demiyorsanız tavsiyem iradenizi güçlü tutmanızdır. Hayatta başarı için en gerekli şey budur. İrade zaafiyetinin sonucu başarısızlık ve vasat bir hayata razı olmaktır.
Yazılım Süreçleri Nasıl Olmalı?
İşyerlerindeki prosedürler ilgilendiğim konulardan biridir. Bu aralar yazılım süreçlerinin güncellenmesi çalışmasının içerisindeyim, dolayısı ile çözümün parçası olma şansım var. Yazılım süreçlerimiz yazılım geliştirmede uyulacak kuralları belirliyor. Örneğin yazılım testinden önce yazılım şartnamesinin hazırlanmış olması gerekiyor.
Süreçlerle ilgili sorun kuralların teoride kulağa hoş gelmesi ama uygulamada sıkıntılara (bürokrasi, işgücü ve moral kaybı) yol açmasıdır. Kötü süreçlerin özellikleri şunlardır:
* Detaylıdırlar. Her durumu öngörme gayreti vardır.
* Tekrarlanabilirliği ve izlenebilirliği hedefler. Çalışanları kontrol altında tutmayı amaçlar, adaptasyon yeteneğini kısıtlarlar. Herşeyin hızla değiştiği günümüzde adaptasyon temel hedef olmalıdır oysa. Özellikle yazılım biraz tasarım - biraz kod - biraz tasarım şeklinde ilerler.
* Masa başında, rahat bir ortamda tasarlanırlar. Tecrübeli yazılım geliştiriciler bile başlarına gelenleri unutup fantazilere dalarak süreç yazabiliyorlar. Unutulanlara tipik örnekler:
** İşi layıkıyla yapmak için gerekli sürenin/paranın yarısı bile yoktur.
** İşi yönetecek olanlar tecrübesizdir, işler başta tahmin edilenin iki misli süre alır.
** İşi yapacak olanların teknik birikimi (domain knowledge + software engineering + programming language + IDE) yetersizdir.
** Müşteri tecrübesizdir, istekleri belirsiz ve yanlış olabilir.
** Müşteri tarafındaki yöneticiler değişebilir, yeni yöneticilere herşeyi baştan anlatmak gerekebilir.
Big Macs vs. The Naked Chef:
* Süreçlerin içeriği minimumda tutulmalı. Başımıza gelebilecek her türlü riske karşı tedbirleri değil, tipik bir geliştirme çalışmasında ihtiyaç duyulacak minimum kuralları söylemeli. Yazılım için minimum kurallar şunlardır:
** Source control kullan
** Kod gözden geçirmelerini yap
** Birim test yaz
** Bug veritabanın olsun
** Test dokümanı hazırla ve testleri bu dokümana göre yap. Bu doküman hem şartname, hem de kullanım kılavuzu işlevi görebilir.
** Geriye kalanlar (şartname, tasarım dokümanı, arayüz kontrol dokümanı...) duruma göre geliştiricilerin ihtiyaç duyması haline yapacakları şeylerdir.
* Genel prensiplerin (kod okuma nasıl yapılır vb.) anlatılması için süreçler değil wiki benzeri ortamlar kullanılmalı. Wikilerde kontrol değil, paylaşım ve güncellik esastır. Süreçler eğitim dokümanları değil, anayasadır.
* Riskten kaçınmak adına çok sayıda madde/sınırlama koymak mütevazi/rutin işlerin yapılmasını zorlaştırır, işgücü kayıplarına neden olur. Değerlendirmeye alınacak riskler gerçekleşmesi olası, gerçekleştiğinde telafisi güç sonuçlara yol açan ve önleme maliyeti düşük olan risklerdir.
* Risk almaktan kaçınarak parlak başarılar elde edilemez. Risklerin gerçekleşmesi halinde çözüm iyi yetişmiş, sorgulamayı bilen esnek insanlar tarafından bulunur.
* Peki yeni yazılım geliştiren bir elemanın işini düzgün yapması, cahilce sorunlar yaratmaması nasıl sağlanacak? Öncelikle yeni elemanlarını iyi seçeceksin. Yenileri deneyimli elemanlar gözetiminde çalıştıracaksın, yazdıkları kodları mutlaka sık sık gözden geçirecek ve doğru pratikleri kazanmalarını sağlayacaksın. Elemanlarını eğitecek, motive olabilecekleri özgürlükleri sağlayacaksın.
Aslolanın araçlar değil insan kalitesi olduğuna dair bir yazı, Weeding out the Weak Developers with J2EE:
mp3:
* Hayko Cepkin - Melekler
* Hayko Cepkin - Fırtınam
Süreçlerle ilgili sorun kuralların teoride kulağa hoş gelmesi ama uygulamada sıkıntılara (bürokrasi, işgücü ve moral kaybı) yol açmasıdır. Kötü süreçlerin özellikleri şunlardır:
* Detaylıdırlar. Her durumu öngörme gayreti vardır.
* Tekrarlanabilirliği ve izlenebilirliği hedefler. Çalışanları kontrol altında tutmayı amaçlar, adaptasyon yeteneğini kısıtlarlar. Herşeyin hızla değiştiği günümüzde adaptasyon temel hedef olmalıdır oysa. Özellikle yazılım biraz tasarım - biraz kod - biraz tasarım şeklinde ilerler.
* Masa başında, rahat bir ortamda tasarlanırlar. Tecrübeli yazılım geliştiriciler bile başlarına gelenleri unutup fantazilere dalarak süreç yazabiliyorlar. Unutulanlara tipik örnekler:
** İşi layıkıyla yapmak için gerekli sürenin/paranın yarısı bile yoktur.
** İşi yönetecek olanlar tecrübesizdir, işler başta tahmin edilenin iki misli süre alır.
** İşi yapacak olanların teknik birikimi (domain knowledge + software engineering + programming language + IDE) yetersizdir.
** Müşteri tecrübesizdir, istekleri belirsiz ve yanlış olabilir.
** Müşteri tarafındaki yöneticiler değişebilir, yeni yöneticilere herşeyi baştan anlatmak gerekebilir.
Big Macs vs. The Naked Chef:
Beware of Methodologies. They are a great way to bring everyone up to a dismal, but passable, level of performance, but at the same time, they are aggravating to more talented people who chafe at the restrictions that are placed on them. It's pretty obvious to me that a talented chef is not going to be happy making burgers at McDonald's, precisely because of McDonald's rules.Süreç yazarken benim taraftarı olduğum düşünce kolay adaptasyondur. Ayrıntılar:
* Süreçlerin içeriği minimumda tutulmalı. Başımıza gelebilecek her türlü riske karşı tedbirleri değil, tipik bir geliştirme çalışmasında ihtiyaç duyulacak minimum kuralları söylemeli. Yazılım için minimum kurallar şunlardır:
** Source control kullan
** Kod gözden geçirmelerini yap
** Birim test yaz
** Bug veritabanın olsun
** Test dokümanı hazırla ve testleri bu dokümana göre yap. Bu doküman hem şartname, hem de kullanım kılavuzu işlevi görebilir.
** Geriye kalanlar (şartname, tasarım dokümanı, arayüz kontrol dokümanı...) duruma göre geliştiricilerin ihtiyaç duyması haline yapacakları şeylerdir.
* Genel prensiplerin (kod okuma nasıl yapılır vb.) anlatılması için süreçler değil wiki benzeri ortamlar kullanılmalı. Wikilerde kontrol değil, paylaşım ve güncellik esastır. Süreçler eğitim dokümanları değil, anayasadır.
* Riskten kaçınmak adına çok sayıda madde/sınırlama koymak mütevazi/rutin işlerin yapılmasını zorlaştırır, işgücü kayıplarına neden olur. Değerlendirmeye alınacak riskler gerçekleşmesi olası, gerçekleştiğinde telafisi güç sonuçlara yol açan ve önleme maliyeti düşük olan risklerdir.
* Risk almaktan kaçınarak parlak başarılar elde edilemez. Risklerin gerçekleşmesi halinde çözüm iyi yetişmiş, sorgulamayı bilen esnek insanlar tarafından bulunur.
* Peki yeni yazılım geliştiren bir elemanın işini düzgün yapması, cahilce sorunlar yaratmaması nasıl sağlanacak? Öncelikle yeni elemanlarını iyi seçeceksin. Yenileri deneyimli elemanlar gözetiminde çalıştıracaksın, yazdıkları kodları mutlaka sık sık gözden geçirecek ve doğru pratikleri kazanmalarını sağlayacaksın. Elemanlarını eğitecek, motive olabilecekleri özgürlükleri sağlayacaksın.
Aslolanın araçlar değil insan kalitesi olduğuna dair bir yazı, Weeding out the Weak Developers with J2EE:
So let’s get real. Bad programmers write bad code. Good programmers write good code. RAD lets bad programmers write bad code faster. RAD does NOT cause good programmers to suddenly start writing bad code.
RAD tools can make a good programmer more productive, because they speed up the coding process without compromising the level of quality that a good programmer is going to achieve.
mp3:
* Hayko Cepkin - Melekler
* Hayko Cepkin - Fırtınam
Attenborough'dan Babam Çıksa Yerim
Biraz önce BBC Prime'da Life in the Undergrowth'un Silk Spinners bölümünü izledim. Bölüm benim favori böceklerimden olan örümceklerle ilgili (diğeri karıncalar). Nefis yakın plan görüntüleri açıklayıcı animasyonlarla süslenmiş. Bir de Attenborough abimizin hoş anlatımını ekleyince dadından yenmez bir yapım çıkmış. DVD'sini almak şart oldu! Küçük bir kesit Amazon videosu olarak mevcut.
Zaten biophilia'dan muzdarip olan bendenizin böyle şeyler izlemesi iyi midir bilmiyorum. Çünkü duygularımla hareket ediyor olsam muhtemelen evimizi böcek kolonileri ile donatırdım (Derya ile de papaz olurdum). Ama neyseki mantığımla duygularımı denetim altında tutabiliyorum(!)
Sanırım insanların bilgilerinin artması yaşlandıkça daha duygusal hale gelmelerinin önemli bir nedeni. Örneğin geçmişte çelik gibi sinirlere sahip olan ben artık olur olmaza dudağı titreyen, gözü yaşaran biri haline geldim. Cahilken işler ne kolaydı... Böceklerin öldürülmesi gereken şeyler olmasından tutun batıyı tek dişi kalmış canavar zannetmeye kadar herşey rahatlatıcı siyah beyaz kategoriler içerisindeydi. Her ne kadar eksik/yalan bir dünyada yaşıyor da olsak köyün en son çitinin ötesinde ne olduğunu merak etmediğimiz sürece sorun yoktu.
Neyse, bize ayrılan sürenin sonuna geldik sevgili okuyucular. Esen kalınız.
Zaten biophilia'dan muzdarip olan bendenizin böyle şeyler izlemesi iyi midir bilmiyorum. Çünkü duygularımla hareket ediyor olsam muhtemelen evimizi böcek kolonileri ile donatırdım (Derya ile de papaz olurdum). Ama neyseki mantığımla duygularımı denetim altında tutabiliyorum(!)
Sanırım insanların bilgilerinin artması yaşlandıkça daha duygusal hale gelmelerinin önemli bir nedeni. Örneğin geçmişte çelik gibi sinirlere sahip olan ben artık olur olmaza dudağı titreyen, gözü yaşaran biri haline geldim. Cahilken işler ne kolaydı... Böceklerin öldürülmesi gereken şeyler olmasından tutun batıyı tek dişi kalmış canavar zannetmeye kadar herşey rahatlatıcı siyah beyaz kategoriler içerisindeydi. Her ne kadar eksik/yalan bir dünyada yaşıyor da olsak köyün en son çitinin ötesinde ne olduğunu merak etmediğimiz sürece sorun yoktu.
Neyse, bize ayrılan sürenin sonuna geldik sevgili okuyucular. Esen kalınız.
Sunday, May 17, 2009
Geç olsun da güç olmasın
ODTÜ ve Hacettepe yavaş yavaş internette video yayınına başlamış. Henüz ufuk açıcı şeyler göremedim. İlgimi çeken "Hocam Bu Ay Yine U3'teyiz" ise berbat ses kalitesine sahip. Maksat sadece internete video koymak mı, ses/görüntü kalitesi ile kimse ilgilenmiyor mu? Umarım gelecekte faydalı mecralara dönüşürler, üniversitelerdeki seminer ve ders benzeri aktivitleri internetten de olsa takip etmek isterim.
ODTÜ TV
Hacettepe İnternet TV
ODTÜ TV
Hacettepe İnternet TV
Hayat Bilgisi
Gündelik yaşantımda nasıl çalıştıklarını bilmem gerekmeyen hastane, karakol, vergi dairesi, Turkcell gibi kurumlar vardır. Geçmişte hepsinin işlerini temel beceri seviyesine uygun olarak yaptıklarını düşünme eğilimindeydim. Ancak yıllar içerisinde duyduğum/yaşadığım ve ancak Aziz Nesin hikayelerinde olur sandığım olaylar güvenimi sarstı.
Geçen hafta iki yıl önce aldığım arabamın vergi kaydının olmadığını öğrendim. Arabayı sıfır almıştım, tüm işlemlerini satın aldığım firma yapmıştı. Birkaç ay önce vergimi yatırmak istediğimde vergi dairesi sayfasının mesajı "bir hata oluştu" idi. Mesaj "aracınızın kaydı yok" dese uyanabilirdim ama "hata oluştu" deyince "herhalde web sayfasında sorun var, sonra denerim" demiştim. Farklı denemelerin hepsinde aynı mesajı alınca şüphelenip vergi dairesine mail attım, cevap olarak benim aracın vergi kaydının olmadığını söylediler. Bunun üzerine satıcı firmayı aradım, böyle sorunların sık sık yaşandığını, emniyetten vergi dairesine gönderilmesi gereken evrakın gönderilmemesinden kaynaklanabileceğini söylediler. Ne yapmam gerektiği ile ilgili bana bilgi verecekler, beklemedeyim.
Planım şu: Öncelikle sorunun nereden kaynaklandığını, sürecin nerede aksadığını telefon/mail vasıtası ile öğrenmeye çalışacağım. Sonra dilekçe vb. bürokratik işlemleri halledip (işyerinden izin alıp, seksen kapıya doksan değnek vurup) aracımı kaydettireceğim. Bir yandan da sorun satıcı firma - emniyet - vergi dairesi üçgeninden hangisinde ise o kuruma sorunun nedenlerini ayrıntıları ile birlikte bana izah etmelerini ve tekrarlanamaması için ne gibi önlemler alacaklarına dair açıklama isteyen bir dilekçe vereceğim. Probleme intikamcı değil, çözümcül yaklaşacağım.
Bu ve benzeri örneklerden aldığım ders özel şirket veya devlet kurumu olsun tüm işlemlerin ayrıntısını kontrol etmek gerektiğidir. "El elin eşeğini türkü çığırarak arar" sözü kulağa küpedir. En iyisi bir örnekler potporisi sunayım:
* Hastane kayıtları karışabilir, kaydınızı kendiniz aramak zorunda kalabilirsiniz. Kaydınız ile ilgili hertürlü ayrıntıyı bilin.
* Hastane bankosunda numaranızı yanlış girip bugün git yarın gel diyebilirler. Numaranın doğru girildiğini kontrol edin.
* Uzmanlar pek de uzman olmayabilir. Benim başıma gelen bir olay: Gözle ilgili bir rahatsızlıktan dolayı doktor doktor gezdikten sonra en son doktor "sorununun nedeni sana verilen ilaçlar, kullanmayı kes geçer" dedi. Hakkaten de öyle oldu.
* Size verilen bilgi yetersiz/belirsiz olabilir. Doktor "ameliyat olmazsanız risk oluşur" derse riskin ne olduğunu açıklatın. Siz riski "biraz ağrı sızı" sanarken gerçekte risk ayağınızın kesilmesi olabilir.
* Polis ifadenizi kendi edebi tarzı ile süsleme eğiliminde olabilir, kelimesi kelimesine aynı olmasında ısrar edin. Hukukta kelimeler önemlidir.
* Avukat davanızı doğru dürüst incelemeden sizi korkutmaya çalışabilir, mutlaka dava dosyanızı adliyeden alıp kendiniz inceleyin.
* Dava dosyasını size veren memur eksik evrak verebilir, tamamını istediğinizde "sana onlar yeter" gibi haddini aşan fırçalar atmaya kalkabilir. Haklarınızı bilin, yılmayın. Sizin neye ihtiyacınız olduğunu en iyi siz bilirsiniz.
* Turkcell bayisi sorununuzla ilgilenmek yerine "müşteri temsilcisini arayın" diyebilir.
* PTT görevlisi "bunu koymak için kutu lazım" diye sizi başından savabilir. İlk tepkiniz kuyruğunuzu kıstırıp kutu aramak değil, "burası PTT, burada kutu yok mu" demek olmalıdır.
* Vize işlemleri için banka kaydınızın Fransızca dökümünü bankadan istersiniz, açıkça ne istediğinizi yazılı olarak fakslamanıza rağmen size alakasız bir belge vermeye kalkarlar.
Sonuç olarak işinize gelmeyen/zarara uğrayabileceğiniz durumlarda söylenenleri hemen kabul etmeyin. Durumu sorgulayın, bilgi isteyin, internetten araştırın. Biliyorum, "her işin uzmanı nasıl olabiliriz" denebilir. Uzmanı olmasanız da iyi anlamak zorundasınız. Yoksa ya işiniz uzar, ya da başınız derde girer, ya da sağlığınızdan olabilirsiniz.
Polise maruz kaldığınızda nasıl davranmanız gerektiği hakkında güzel bir video (Nesij'e teşekkür ederim):
Geçen hafta iki yıl önce aldığım arabamın vergi kaydının olmadığını öğrendim. Arabayı sıfır almıştım, tüm işlemlerini satın aldığım firma yapmıştı. Birkaç ay önce vergimi yatırmak istediğimde vergi dairesi sayfasının mesajı "bir hata oluştu" idi. Mesaj "aracınızın kaydı yok" dese uyanabilirdim ama "hata oluştu" deyince "herhalde web sayfasında sorun var, sonra denerim" demiştim. Farklı denemelerin hepsinde aynı mesajı alınca şüphelenip vergi dairesine mail attım, cevap olarak benim aracın vergi kaydının olmadığını söylediler. Bunun üzerine satıcı firmayı aradım, böyle sorunların sık sık yaşandığını, emniyetten vergi dairesine gönderilmesi gereken evrakın gönderilmemesinden kaynaklanabileceğini söylediler. Ne yapmam gerektiği ile ilgili bana bilgi verecekler, beklemedeyim.
Planım şu: Öncelikle sorunun nereden kaynaklandığını, sürecin nerede aksadığını telefon/mail vasıtası ile öğrenmeye çalışacağım. Sonra dilekçe vb. bürokratik işlemleri halledip (işyerinden izin alıp, seksen kapıya doksan değnek vurup) aracımı kaydettireceğim. Bir yandan da sorun satıcı firma - emniyet - vergi dairesi üçgeninden hangisinde ise o kuruma sorunun nedenlerini ayrıntıları ile birlikte bana izah etmelerini ve tekrarlanamaması için ne gibi önlemler alacaklarına dair açıklama isteyen bir dilekçe vereceğim. Probleme intikamcı değil, çözümcül yaklaşacağım.
Bu ve benzeri örneklerden aldığım ders özel şirket veya devlet kurumu olsun tüm işlemlerin ayrıntısını kontrol etmek gerektiğidir. "El elin eşeğini türkü çığırarak arar" sözü kulağa küpedir. En iyisi bir örnekler potporisi sunayım:
* Hastane kayıtları karışabilir, kaydınızı kendiniz aramak zorunda kalabilirsiniz. Kaydınız ile ilgili hertürlü ayrıntıyı bilin.
* Hastane bankosunda numaranızı yanlış girip bugün git yarın gel diyebilirler. Numaranın doğru girildiğini kontrol edin.
* Uzmanlar pek de uzman olmayabilir. Benim başıma gelen bir olay: Gözle ilgili bir rahatsızlıktan dolayı doktor doktor gezdikten sonra en son doktor "sorununun nedeni sana verilen ilaçlar, kullanmayı kes geçer" dedi. Hakkaten de öyle oldu.
* Size verilen bilgi yetersiz/belirsiz olabilir. Doktor "ameliyat olmazsanız risk oluşur" derse riskin ne olduğunu açıklatın. Siz riski "biraz ağrı sızı" sanarken gerçekte risk ayağınızın kesilmesi olabilir.
* Polis ifadenizi kendi edebi tarzı ile süsleme eğiliminde olabilir, kelimesi kelimesine aynı olmasında ısrar edin. Hukukta kelimeler önemlidir.
* Avukat davanızı doğru dürüst incelemeden sizi korkutmaya çalışabilir, mutlaka dava dosyanızı adliyeden alıp kendiniz inceleyin.
* Dava dosyasını size veren memur eksik evrak verebilir, tamamını istediğinizde "sana onlar yeter" gibi haddini aşan fırçalar atmaya kalkabilir. Haklarınızı bilin, yılmayın. Sizin neye ihtiyacınız olduğunu en iyi siz bilirsiniz.
* Turkcell bayisi sorununuzla ilgilenmek yerine "müşteri temsilcisini arayın" diyebilir.
* PTT görevlisi "bunu koymak için kutu lazım" diye sizi başından savabilir. İlk tepkiniz kuyruğunuzu kıstırıp kutu aramak değil, "burası PTT, burada kutu yok mu" demek olmalıdır.
* Vize işlemleri için banka kaydınızın Fransızca dökümünü bankadan istersiniz, açıkça ne istediğinizi yazılı olarak fakslamanıza rağmen size alakasız bir belge vermeye kalkarlar.
Sonuç olarak işinize gelmeyen/zarara uğrayabileceğiniz durumlarda söylenenleri hemen kabul etmeyin. Durumu sorgulayın, bilgi isteyin, internetten araştırın. Biliyorum, "her işin uzmanı nasıl olabiliriz" denebilir. Uzmanı olmasanız da iyi anlamak zorundasınız. Yoksa ya işiniz uzar, ya da başınız derde girer, ya da sağlığınızdan olabilirsiniz.
Polise maruz kaldığınızda nasıl davranmanız gerektiği hakkında güzel bir video (Nesij'e teşekkür ederim):
Wednesday, May 06, 2009
Turkcell'le Mücadele Teknikleri
Turkcell müşteri hizmetlerini (444 0 532) aradığımda hemen herzaman bir müşteri temsilcisine bağlanmak istiyorumdur çünkü ıvır zıvırı zaten internet sayfasından hallediyorum. Ancak menülerde "müşteri hizmetlerine bağlanmak için x'e basınız" diye bir seçenek yok ya da bulunamayacak yerde.
Ancak nasıl bağlanacağımı keşfettim: Menüleri okumaya başladığında 2'yi tuşla (fatura işlemleri). Sonra sıfırı tuşla. Fatura işlemlerinde sıfır diye bir seçenek okunmuyor. Bir çeşit gizli menü sanırım. Sıfırı tuşladığında "sizi müşteri hizmetlerine bağlıyorum" mesajı okunuyor ve, voila, karşınızda bir insan evladı...
Ha, o insan evladı derdinize çare bulabilir mi, orası ayrı konu...
Ancak nasıl bağlanacağımı keşfettim: Menüleri okumaya başladığında 2'yi tuşla (fatura işlemleri). Sonra sıfırı tuşla. Fatura işlemlerinde sıfır diye bir seçenek okunmuyor. Bir çeşit gizli menü sanırım. Sıfırı tuşladığında "sizi müşteri hizmetlerine bağlıyorum" mesajı okunuyor ve, voila, karşınızda bir insan evladı...
Ha, o insan evladı derdinize çare bulabilir mi, orası ayrı konu...
Tuesday, May 05, 2009
Ontology is Overrated: Categories, Links, and Tags
Ontology is Overrated: Categories, Links, and Tags:
Countries are social fictions. It is much easier for a country to disappear than for a city to disappear, so when you're saying that the small thing is contained by the large thing, you're actually mixing radically different kinds of entities. We pretend that 'country' refers to a physical area the same way 'city' does, but it's not true, as we know from places like the former Yugoslavia.
Monday, May 04, 2009
Beypazarı gezisi
1 Mayıs'ta Beypazarı'ndaydık. Beypazarı'na gidiş 1.5 saat sürüyor. Yol: İstanbul yolu - Eryaman tarafına sap - Ayaş'a doğru D140'ı takip et - D140 üzerinde devam et, sonunda Beyapazarı'na ulaşırsın - İnözü vadisine gitmek için Beypazarı'ndaki ikinci lambalardan Kıbrısçık/Karaşar yönüne dön.
Önce İnözü vadisindeki Dostlar tesislerinde öğle yemeği olarak güveçte etli pilav yedik, akabinde semaverden çay keyfi yaptık. Çayı bardakta sipariş etmek de mümkün ama serviste ve çayda iş yok, semaveri tercih edin (çayın demlenmesini beklemeyi göze alarak). Güveçin pişmesi 6 saat kadar sürdüğünden güveç fırınını bir gün önceden arayıp sipariş vermek lazım. Telefonu Fatih'te var. Güveç dahil tüm malzeme (pilav, et vs.) fırın tarafından sağlanıyor. Güveçin bedeli adam başı 5 TL...
Yeme içme faslından sonra biraz yürüyüş yaptık. Sakin bir güzergah bulduk, temiz havanın tadını çıkardık. Güzergahın başlangıcındaki Doğanbey dinlenme tesisleri ilgimizi çekti. Birkaç aya açılacakmış. Tesisin sahibi müteahhit Şefik Doğan ile poz verdik. Tesis açılınca bir indirim yapılır zahar (!)
Güncelleme (9 Temmuz 2011): Doğanbey tesisleri faaliyete geçmiş. Tlf: 0312 763 0 500
Beypazarı Karagöl'de kamp için tesis var. Ankara'ya mesafe: 2 saat. Tesis sahibi: Refik Çelik. Tlf: 0505 932 6074
Evlerin gecelik fiyat: 100 TL
Çadır kurmak için çadır başına 20 TL
Önce İnözü vadisindeki Dostlar tesislerinde öğle yemeği olarak güveçte etli pilav yedik, akabinde semaverden çay keyfi yaptık. Çayı bardakta sipariş etmek de mümkün ama serviste ve çayda iş yok, semaveri tercih edin (çayın demlenmesini beklemeyi göze alarak). Güveçin pişmesi 6 saat kadar sürdüğünden güveç fırınını bir gün önceden arayıp sipariş vermek lazım. Telefonu Fatih'te var. Güveç dahil tüm malzeme (pilav, et vs.) fırın tarafından sağlanıyor. Güveçin bedeli adam başı 5 TL...
Yeme içme faslından sonra biraz yürüyüş yaptık. Sakin bir güzergah bulduk, temiz havanın tadını çıkardık. Güzergahın başlangıcındaki Doğanbey dinlenme tesisleri ilgimizi çekti. Birkaç aya açılacakmış. Tesisin sahibi müteahhit Şefik Doğan ile poz verdik. Tesis açılınca bir indirim yapılır zahar (!)
Güncelleme (9 Temmuz 2011): Doğanbey tesisleri faaliyete geçmiş. Tlf: 0312 763 0 500
Beypazarı Karagöl'de kamp için tesis var. Ankara'ya mesafe: 2 saat. Tesis sahibi: Refik Çelik. Tlf: 0505 932 6074
Evlerin gecelik fiyat: 100 TL
Çadır kurmak için çadır başına 20 TL
C++: "=" vs. "=="
In C or C++, a mistake that is often made is to use "=" where you actually mean "==". Today was such a day... For demonstration purposes, consider the following function:
void myFunction(int myInput)
{
printf("myInput = %d\n", myInput);
assert((myInput =1) || (myInput = 2));
printf("myInput = %d\n", myInput);
}
At the beginning of the function we want to check if the input is valid by using assert. When you call this with myFunction(2) you get:
myInput = 2
myInput = 1
myInput becomes 1 although we called the function with the value of 2. The bug is caused by careless use of "=". We should use "==" for comparisons. "=" means assignment. The correct form should be:
assert((myInput == 1) || (myInput == 2));
Bug catching tip: write const before myInput so that the compiler will complain when you try to change myInput inside the function:
void myFunction(const int myInput)
So, when we call the buggy function we get (with Visual Studio 2003)
error C2166: l-value specifies const object
Which will be a wake up call.
void myFunction(int myInput)
{
printf("myInput = %d\n", myInput);
assert((myInput =1) || (myInput = 2));
printf("myInput = %d\n", myInput);
}
At the beginning of the function we want to check if the input is valid by using assert. When you call this with myFunction(2) you get:
myInput = 2
myInput = 1
myInput becomes 1 although we called the function with the value of 2. The bug is caused by careless use of "=". We should use "==" for comparisons. "=" means assignment. The correct form should be:
assert((myInput == 1) || (myInput == 2));
Bug catching tip: write const before myInput so that the compiler will complain when you try to change myInput inside the function:
void myFunction(const int myInput)
So, when we call the buggy function we get (with Visual Studio 2003)
error C2166: l-value specifies const object
Which will be a wake up call.
Subscribe to:
Posts (Atom)