Thursday, March 31, 2011

Adventures with Visual Studio 2010 and Matlab

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.

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

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.

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)