2016年9月3日 星期六

運用 gprof + graphviz 學習 Open Source

有時我們想了解一個 Open Source 軟體是如何運作的,可能是為了除錯,也可能是想了解心中的一些議題在這個軟體中是如何運作的。舉例來說,如果你正在用 socket 開發軟體,想要知道如何正確使用 socket API,找一個很受歡迎,很多人使用的 Open Source 軟體打開研究,比起只看文檔或書上的範例,抓頭騷耳老半天要來的快速有效。

2016年8月30日 星期二

IT 考古: 什麼是 CGI?

某天有位朋友跟小弟討論起 PHP,因為他的裝置運算能力有限,無法負擔解譯 PHP script 的成本,於是他想出一個方法,把 *.php 丟給 Browser 去解譯,我跟他這樣講不行,Browser 只能解譯 HTML & JavaScript(當然,如果裝了什麼特殊 plug-in 有可能,但這裡指一般情況)。

2016年7月19日 星期二

2016年7月17日 星期日

有病治病,沒病強身: Cppcheck + Valgrind

Cppcheck


簡單來說這是一套靜態 C/C++ 靜態分析工具,什麼是靜態分析?就是程式尚未編譯執行前,直接對原始碼分析,看有沒有 bug 或值得改進之處。

2016年6月21日 星期二

用遞迴產生所有排列

本來要解的題目其實是算法競賽入門經典習題 2-6:

用 1,2,3,...,9 組成 3 個三位數 abc, def, ghi, 每個數字恰好使用一次,要求 abc:def:ghi = 1:2:3。按照 "abc def ghi" 的格式輸出所有解,每行一個解。提示:不必太動腦筋。(這裡有一份題解,效率比列出所有的排列高)

2016年6月14日 星期二

管理者的遠見

有一天大科學家 Richard Hamming (Hamming 碼發明者,1968 Turing Award 得主) 問他的老闆 Bode:

「為什麼你要當這個部門的頭呢?為什麼你不去當一名大科學家呢?」

2016年6月5日 星期日

書評: Wireshark 網路分析就這麼簡單

大部分講 TCP/IP 的書有如字典,啃起來乾巴巴的沒什麼味道,食之無味棄之可惜。偏偏網路是個很講究實戰的領域,這些偏向學術性的著作往往很難提供工程師需要的即戰力。