[SOFT] 高效程式開發筆記 #1 – Thread Profiler

要打造一個效能良好的 Multi-Thread Application 是難度相當高的一件事,一般來說第一個會碰到的問題就是因為 synchronization objects 的 contention 造成的效能下降,通常可以用 atomic operator 及 lock-free algorithm 做一些改善。而隨著現在 CPU 的核心數愈來愈多,又把難度向上提高了不少 Orz。其它常碰到的問題包括了:第一個是 Load imbalance:假設你的電腦是 4 cores,理想上開 4 threads...

[NOTE] Home Automation 家庭自動化

我希望有一個裝置可以讓我控制家中所有有紅外線的設備(冷氣、電視、MOD…),已經有一些商品化的產品,但是還是想自己做看看。目前最流行的是用LIRC或Winlirc,不過看起來都是用RS-232的 solution,在現在這個年代用RS-232實在是不大中,我想要研究一下比較現代化的做法。USB IR 接收/發射器Tira (USB IR transmitter /...

[DEBUG] 丟掉VS.NET,用 WinDbg 才是王道 Part 1

在 debug 時最常用到的就是 symbol file / symbol server,然而相信常有 load 不到 symbol file 的經驗,不管怎麼按,怎麼換,不對就是不對,有時覺得明明就放對了,還是不能用 Orz。如果你用的是 VS.NET,應該永遠都只能繼續怨天尤人、哭天搶地了,但如果你用的是 windbg 的話,那麼請照著下面步驟來解決這個問題。例如我在追查memory leak的時候,去分析一個 address 的 call stack!heap -p -a 0x12344545結果得到的 callstack...

[SOFT] 如何整合 TeamCity 與 Boost Unit Testing Framework

上次介紹的 TeamCity 預設是不支援 Boost Unit Testing Framework 的,需要額外的 plugin 才能將Boost UTF 的測試報告整合進 TeamCity 中。首先先到 TeamCity 官方網站下載 plugin,檔案在http://confluence.jetbrains.net/display/TW/Cpp+Unit+Test+Reporting裡面有一個 teamcity-boost-1.2.zip for Boost.Test...

軟體開發之道 – 大教堂和市集

大教堂和市集(The Cathedral and the Bazaar) 是一篇相當有名的文章,不過之前一直沒有看,直到後來讀了Dreaming in Code 一書後,才把這篇文章仔細讀完。這篇文章是由 Eric Steven Raymond 所寫,內容在描述 Linux 的開發模式(市集)及Raymond 自己仿照這個模式開發 fetchmail...