I had to write a C-Mex function to be called from a Matlab script. I first wrote the C-Mex interface, then the algorithm in a separate C file and added unit tests using Visual Studio 2010's C++. I spent a lot of time on not-so-intuitive details.
I wanted to pass a two dimensional array (DCM_ce) to a function (calcXYMinusHFromLLH). In the main body, the Visual Studio watch gave correct answers:
But when it entered the function, the watch value was wrong. I realized that when passing multidimensional arrays to a function in C, Visual Studio's watch gives wrong answers. If you use printf, you see the real value that is used:
My suffering did not end yet(!) Later on, when I called the C-Mex function from an m-file script, I noticed that the interface function (mexGetPr) took the transpose of the 2-D matrix. I had to re-transpose it so as to obtain the original input from my m-file:
When I finished the job, the time I spent was like this:
* Designing and documenting the algorithm: 0.5 days
* Converting the algorithm to C code (with all necessary helper functions): 0.5 days
* Wrestling with Visual Studio: 1 day
* Wrestling with C-mex: 1 day
As you see, environmental problems took most of my time. That's a good reason to have specialized folks for implementing algorithms, especially if the project is complex.
Thursday, March 31, 2011
Sunday, March 20, 2011
Nükleer Santral ve Adam Yerine Konmak
Japonya'daki depremin ardından Mersin-Akkuyu nükleer santral tartışmaları yoğunlaştı. Benim üzerinde durmak istediğim konunun teknik boyutu değil, sosyal/politik tarafı: Nükleer santral, baraj vb. geniş çaplı etkisi olan tesislerin kurulması kararı verilirken bölgedeki insanların rızası ne kadar önemlidir?
Klasik cevaplardan biri "uzmanlar gerekli enerji ihtiyacı ve risk değerlendirmelerini yapmışlardır herhalde, onlardan iyi bilecek değiliz". Buradaki "herhalde" kelimesi önemli çünkü bundan emin olamayız. Hele de o uzmanlar santralin yakınında oturmuyorlarsa... Ayrıca uzmanlar hep mükemmel kararlar verselerdi çok daha müreffeh bir hayat yaşıyor olurduk. Teknik nedenler %100 doğru bile olsa özellikle bölgedeki insanlara nedenlerin anlatılması ve ikna edilmeleri gerekir, tazminat yetmez. "Cahil halk anlamaz" argümanına sığınmak benim kabul ettiğim bir yaklaşım değildir.
Önerim uzmanların, bürokratların açıklamaları ile yetinmeyip o bölgede ikamet eden insanlara "santrale evet/hayır" referandumu yapılmasıdır. Böylece ikna ve tazminat çalışmaları daha ciddi ele alınır, bölge insanı da karar mekanizmasına dahil olan gerçek manada "vatandaş" haline gelir, ortalama zeka yükselir. İşler biraz uzar, maliyet artar ancak demokrasinin gereği budur ve "adam yerine konmak" paradan çok daha önemlidir.
music:
* Aşık Mahzuni Şerif - Mamudo
* Gregorian - Nothing Else Matters
Klasik cevaplardan biri "uzmanlar gerekli enerji ihtiyacı ve risk değerlendirmelerini yapmışlardır herhalde, onlardan iyi bilecek değiliz". Buradaki "herhalde" kelimesi önemli çünkü bundan emin olamayız. Hele de o uzmanlar santralin yakınında oturmuyorlarsa... Ayrıca uzmanlar hep mükemmel kararlar verselerdi çok daha müreffeh bir hayat yaşıyor olurduk. Teknik nedenler %100 doğru bile olsa özellikle bölgedeki insanlara nedenlerin anlatılması ve ikna edilmeleri gerekir, tazminat yetmez. "Cahil halk anlamaz" argümanına sığınmak benim kabul ettiğim bir yaklaşım değildir.
Önerim uzmanların, bürokratların açıklamaları ile yetinmeyip o bölgede ikamet eden insanlara "santrale evet/hayır" referandumu yapılmasıdır. Böylece ikna ve tazminat çalışmaları daha ciddi ele alınır, bölge insanı da karar mekanizmasına dahil olan gerçek manada "vatandaş" haline gelir, ortalama zeka yükselir. İşler biraz uzar, maliyet artar ancak demokrasinin gereği budur ve "adam yerine konmak" paradan çok daha önemlidir.
music:
* Aşık Mahzuni Şerif - Mamudo
* Gregorian - Nothing Else Matters
Thursday, March 10, 2011
Bir fikri sevmek ya da sevmemek, işte bütün mesele bu!
İnsanları bir konuda ikna etmen gerektiğinde en çok dikkat edeceğin şey mantık değil, karşındakinin o konuyu sevip sevmediğidir. Eğer sevmiyorsa saf mantıkla ikna etmek deveye hendek atlatmaktan zordur, her iki tarafta sinir yaratır. Önce duygu durumunu tart, fikirden hoşlanmıyorsa neden hoşlanmadığını anlamaya çalış, mantıkla zaman kaybetme.
Örneğin ateşli tartışma konusu olan evrimi ele alalım. Evet evrim teorisini destekleyen tonla ispat var. Ancak ilk yapman gereken şey ispatları sıralamadan önce "evrim teorisinin bir an için doğru olduğunu düşün, bu senin değerlerinle çelişir mi?" sorusunu sormaktır. Diğer canlılarla bağımızın olması fikri pek çok kişide insanın değerini düşürdüğü hissini uyandırıyor (bende tam tersi bir hisse yol açıyor - bkz. LUCA). Eğer evrimin insanın değerini azaltmadığına ikna edebilirsen gerisi kolay... Duygu ve ikna arasındaki bağlantı için bkz. On Being Certain.
Örneğin ateşli tartışma konusu olan evrimi ele alalım. Evet evrim teorisini destekleyen tonla ispat var. Ancak ilk yapman gereken şey ispatları sıralamadan önce "evrim teorisinin bir an için doğru olduğunu düşün, bu senin değerlerinle çelişir mi?" sorusunu sormaktır. Diğer canlılarla bağımızın olması fikri pek çok kişide insanın değerini düşürdüğü hissini uyandırıyor (bende tam tersi bir hisse yol açıyor - bkz. LUCA). Eğer evrimin insanın değerini azaltmadığına ikna edebilirsen gerisi kolay... Duygu ve ikna arasındaki bağlantı için bkz. On Being Certain.
Wednesday, March 09, 2011
Kar tatilinde yapılacaklar
Ankara'yı bir karış kar felç etmeye yetiyor, iki karış olunca doğal afet sayıldı, iki gün tatil olduk.
Tatilde neler yapabiliriz? Öncelikle blogspot'a erişim için gerekli ayarları yapar, sonra blog yazarız :)
Okunmayı bekleyen kitaplarımıza ilgi gösterebiliriz:
Kitap okumaktan sıkılınca dizi izleyebiliriz. Önerim Dr. House'dur. Derya'ya not: Hayır canım, Dr. House'u kattiyyen sensiz izlemiyorum. İzin verdiğin RTL'deki Dr. House dün akşammış, kaçırdım :(.
Film izleyebiliriz (bkz. playlist)
Belgesel izleyebiliriz:
* Life in the undergrowth
* The dog whisperer
* Coast
* Monsters inside me
NBA TV izleyebiliriz.
Portakal suyu sıkar, bademle birlikte yeriz (güzel bir kombinasyon). Acıkır, yemek yaparız (fırında soslu tavuk).
Müzik dinleyebiliriz (misal Gregorian'dan The Unforgiven ve Brothers in arms)
Tatilde neler yapabiliriz? Öncelikle blogspot'a erişim için gerekli ayarları yapar, sonra blog yazarız :)
Okunmayı bekleyen kitaplarımıza ilgi gösterebiliriz:
Kitap okumaktan sıkılınca dizi izleyebiliriz. Önerim Dr. House'dur. Derya'ya not: Hayır canım, Dr. House'u kattiyyen sensiz izlemiyorum. İzin verdiğin RTL'deki Dr. House dün akşammış, kaçırdım :(.
Film izleyebiliriz (bkz. playlist)
Belgesel izleyebiliriz:
* Life in the undergrowth
* The dog whisperer
* Coast
* Monsters inside me
NBA TV izleyebiliriz.
Portakal suyu sıkar, bademle birlikte yeriz (güzel bir kombinasyon). Acıkır, yemek yaparız (fırında soslu tavuk).
Müzik dinleyebiliriz (misal Gregorian'dan The Unforgiven ve Brothers in arms)
Thursday, January 27, 2011
How many monitors do I need for software development?
A constant theme for me is to improve the way I work. I just replaced my chair (unfortunately not a Hermann Miller) and adjusted the lighting. The remaining items are a better keyboard and finding the optimum monitor setup.
Right now I use two monitors but today I realized that I need three. While working I usually have three separate pages I need to constantly access. The main one is the development screen where I write code (Matlab, Visual Studio, Netbeans). Second page is the specification/design document for the problem at hand or the help page of the development environment. Third page is my notes about the code (steps I followed while solving a bug, lessons learnt etc.). I use Microsoft OneNote for this.
Therefore I need, three monitors (actually four if I had separate monitors for spec and help, but that would be too crowded on the desk). Other programs usually open all the time are Total Commander, MS Outlook and IE, but since I don't have to access them as often, they don't need their own monitors.
Further reading supporting my point:
* Why Developers Need a Multi-Monitor Setup
* What's your ideal multiple-monitor setup for programming?
* Joining The Prestigious Three Monitor Club
* Three Screens For One Computer
Technical details:
* Main questions:
** Does your motherboard support dual graphic cards?
** Are the chipsets of your graphic cards the same?
** It's crucial to have an adequate power supply, otherwise the PC will suffer low performance and random shutdowns as it overdraws the PSU's available wattage and amperage
* Multiple Monitors and Productivity: Motherboard must support it and both cards must have same chipset.
* Ultramon: for having separate taskbars on each screen
music: Massive Attack - Teardrop
Right now I use two monitors but today I realized that I need three. While working I usually have three separate pages I need to constantly access. The main one is the development screen where I write code (Matlab, Visual Studio, Netbeans). Second page is the specification/design document for the problem at hand or the help page of the development environment. Third page is my notes about the code (steps I followed while solving a bug, lessons learnt etc.). I use Microsoft OneNote for this.
Therefore I need, three monitors (actually four if I had separate monitors for spec and help, but that would be too crowded on the desk). Other programs usually open all the time are Total Commander, MS Outlook and IE, but since I don't have to access them as often, they don't need their own monitors.
Further reading supporting my point:
* Why Developers Need a Multi-Monitor Setup
* What's your ideal multiple-monitor setup for programming?
* Joining The Prestigious Three Monitor Club
* Three Screens For One Computer
Technical details:
* Main questions:
** Does your motherboard support dual graphic cards?
** Are the chipsets of your graphic cards the same?
** It's crucial to have an adequate power supply, otherwise the PC will suffer low performance and random shutdowns as it overdraws the PSU's available wattage and amperage
* Multiple Monitors and Productivity: Motherboard must support it and both cards must have same chipset.
* Ultramon: for having separate taskbars on each screen
music: Massive Attack - Teardrop
Sunday, January 23, 2011
Akademik Yayın Stratejisi
Geçen Nesij'le akademik camia ve akademik yayın üzerine sohbet ediyorduk. Anladığım kadarı ile iki yaklaşım var:
* Az ama kaliteli yayın
* Çok ama daha "düşük kaliteli" yayın
Umut'tan öğrendiğime göre kaliteli bir yayını da alt parçalara bölerek yayın sayısını arttırmak mümkün. Camianın kullandığı terim hoşuma gitti: Least Publishable Unit, diğer adı ile Minimum Publishable Unit (MPU). MPU bilimsel bir dergide yayına yol açabilecek en az içeriği tanımlayan bir espiri.
Bazı üniversiteler kaliteden çok yayın sayısına bakarken, diğerleri sayıdan ziyade kaliteye bakıyormuş. O nedenle de akademik kariyerini sürdürmek istediğin yerin ne beklediğini bilmek kritik öneme haiz. Diyelim sen kaliteye önem verdin ve doğal olarak çok zahmetle az yayın yaptın. Ama eğer çalışmak istediğin yer sayıya göre eleman alıyorsa verimsiz çalışmış ve boşa kasmışsın demektir. Üniversitenin kriterini öğrenmek için sanırım tek çare oradaki akademik kadronun yayın geçmişine bakmaktır çünkü doğrudan dekana soracak olsan "tabi ki kaliteye önem veriyoruz" diyecektir.
music:
* Belle & Sebastian - I Want The World To Stop
* The Hooters - Johnny B
* Az ama kaliteli yayın
* Çok ama daha "düşük kaliteli" yayın
Umut'tan öğrendiğime göre kaliteli bir yayını da alt parçalara bölerek yayın sayısını arttırmak mümkün. Camianın kullandığı terim hoşuma gitti: Least Publishable Unit, diğer adı ile Minimum Publishable Unit (MPU). MPU bilimsel bir dergide yayına yol açabilecek en az içeriği tanımlayan bir espiri.
Bazı üniversiteler kaliteden çok yayın sayısına bakarken, diğerleri sayıdan ziyade kaliteye bakıyormuş. O nedenle de akademik kariyerini sürdürmek istediğin yerin ne beklediğini bilmek kritik öneme haiz. Diyelim sen kaliteye önem verdin ve doğal olarak çok zahmetle az yayın yaptın. Ama eğer çalışmak istediğin yer sayıya göre eleman alıyorsa verimsiz çalışmış ve boşa kasmışsın demektir. Üniversitenin kriterini öğrenmek için sanırım tek çare oradaki akademik kadronun yayın geçmişine bakmaktır çünkü doğrudan dekana soracak olsan "tabi ki kaliteye önem veriyoruz" diyecektir.
music:
* Belle & Sebastian - I Want The World To Stop
* The Hooters - Johnny B
Saturday, December 25, 2010
Hastaneler ve doktolar üzerine
Hastaneye hepimiz gitmiş ve çaresizlik/öfke karışımı hisler yaşamışızdır. Sorunların bir bölümü ciddi yatırımlar gerektiren şeyler. Ancak bir kısmının maddiyatla ilgisi yok, sadece birazcık akıl yürütme lazım. Örnek: Sabahın köründe KBB muayenesi olmak için hastaneye gidersin. Kenarda oturup beklerken bazılarının bir kağıda isim yazdığını görürsün. Etraftakilere sorarsın, bu buruşmuş kağıdın hasta muayene sırası olarak kullanılacağını öğrenir, kendini 53. kişi olarak eklersin. İki saat bekledikten sonra muayenehane kapısı açılır ve sadece ilk 50 kişinin muayene edileceği söylenir. Hasta halinle söylene söylene oradan ayrılırsın. Bir de yeni adet çıkmış, biraz ciddi bir tetkik yapılacaksa "bana herşey açıkça anlatıldı, riskleri göze alıyorum" yazan kağıdı imzalamazsan işlemin yapılmıyor.
Bence en kolay ve en büyük faydayı sağlayacak uygulama hastalara hastaneye ayak bastıkları anda önlerindeki süreci anlatan (nereye başvurulacak, tetkikler ne kadar sürecek vb.) bir kağıt verilmesi. Ek olarak hazırla bir bilgilendirici sunuş, koy bekleme salonuna monitör, sunuş orada izlensin. Buna benzer şeylerin neden yapılmadığını anlamıyorum. Hastanelerin kralları olan doktorlar memleketin en yüksek puanlı okullarından mezun olduklarına göre konu zeka eksikliği olamaz. Doktorların onda biri bile hastanelerin işleyişi ile ilgilenseler hastanelerin çiçek gibi olması gerekir. Bu kurumsal aldırmazlık nasıl oluşmuş? İyileştirme önerisinde bulunan, insiyatif alan doktorlar üstleri tarafından cezalandırılıyorlar mı?
Ahlak anlayışım gereği eğitim görmüş, göreli olarak rahat yaşayan insanların onlar kadar şanslı olmayanlara karşı sorumlulukları olduğuna inanırım. Memleketimizde bu sorumluluk daha ziyade karşıdakinin ihtiyacını/hassasiyetini anlamadan akıl vermek, çözüm dayatmak biçiminde tezahür ediyor. Hastanelerdeki durum doktorların entellektüel potansiyeli ile karşılaştırıldığında bana ahlaksızlık gibi görünüyor. Sınır Tanımayan Doktorlar'ın Türkiye'de ofisi olmaması da bu inancımı güçlendiriyor.
Bu konuda bilgisi olan varsa beni aydınlatsın.
Ümit verici bir örnek: Türkiye'den Doktor Geldi
Sevdiğim bir doktor örneği: Hastalarımdan Öğrendiklerim
music:
* Bob Dylan - Knockin' on Heaven's Door
* Dire Straits - Sultan's of Swing
* Dire Straits - Brothers in Arms
Bence en kolay ve en büyük faydayı sağlayacak uygulama hastalara hastaneye ayak bastıkları anda önlerindeki süreci anlatan (nereye başvurulacak, tetkikler ne kadar sürecek vb.) bir kağıt verilmesi. Ek olarak hazırla bir bilgilendirici sunuş, koy bekleme salonuna monitör, sunuş orada izlensin. Buna benzer şeylerin neden yapılmadığını anlamıyorum. Hastanelerin kralları olan doktorlar memleketin en yüksek puanlı okullarından mezun olduklarına göre konu zeka eksikliği olamaz. Doktorların onda biri bile hastanelerin işleyişi ile ilgilenseler hastanelerin çiçek gibi olması gerekir. Bu kurumsal aldırmazlık nasıl oluşmuş? İyileştirme önerisinde bulunan, insiyatif alan doktorlar üstleri tarafından cezalandırılıyorlar mı?
Ahlak anlayışım gereği eğitim görmüş, göreli olarak rahat yaşayan insanların onlar kadar şanslı olmayanlara karşı sorumlulukları olduğuna inanırım. Memleketimizde bu sorumluluk daha ziyade karşıdakinin ihtiyacını/hassasiyetini anlamadan akıl vermek, çözüm dayatmak biçiminde tezahür ediyor. Hastanelerdeki durum doktorların entellektüel potansiyeli ile karşılaştırıldığında bana ahlaksızlık gibi görünüyor. Sınır Tanımayan Doktorlar'ın Türkiye'de ofisi olmaması da bu inancımı güçlendiriyor.
Bu konuda bilgisi olan varsa beni aydınlatsın.
Ümit verici bir örnek: Türkiye'den Doktor Geldi
Sevdiğim bir doktor örneği: Hastalarımdan Öğrendiklerim
music:
* Bob Dylan - Knockin' on Heaven's Door
* Dire Straits - Sultan's of Swing
* Dire Straits - Brothers in Arms
Subscribe to:
Posts (Atom)
