一年了
賀! 本部落格終於停水告一年了 XD
這一年是人生中許多重大轉折的一年,有空的時候(?)要把那些在 queue 裡面的文章 publish 出來…
BTW, Flickr 的部份,倒是更新的挺勤的,雖然還沒有時間去標 tag 還有寫 comment 了…
賀! 本部落格終於停水告一年了 XD
這一年是人生中許多重大轉折的一年,有空的時候(?)要把那些在 queue 裡面的文章 publish 出來…
BTW, Flickr 的部份,倒是更新的挺勤的,雖然還沒有時間去標 tag 還有寫 comment 了…
It is impossible to sharpen a pencil with a blunt ax. It is equally vain to try to do it with ten blunt axes instead.
— Edsger W. Dijkstra
Dijkstra 資工系的同學一定都不陌生,講到最短路徑問題,一定都會提到他的 Dijkstra’s algorithm,
還有 Floyd–Warshall algorithm。當然,Bellman-Ford algorithm 也很重要,
因為在 Dijkstra 的方法中,不允許負邊存在。
(上面的「陌生」要擺個 link 到國語辭典去的原因是,原來我已經廢到連是那個「陌」都想不起來了…)
在 dds@ (Diomidis D. Spinellis) 的 blog 看到這篇 The Tools we Use [1]
dds@ 是 Code Quality: The Open Source Perspective 和 Code Reading: The Open Source Perspective 的作者,
看起來都是相當值得一讀的好書。
Code Reading 好不容易排隊借了回來,但是只看完第一章就一直丟在旁邊了。
今天發現後面又有人預約,看來又要重新排一次隊了…
而 Code Quality 這本在我連推薦了三次之後,我們的浩然終於在六月20日發訂了…
(隔壁王水大的圖書館早在四月24日發訂了,但是是過了兩個月還是在發訂中…照這樣的處理速度…民國那一年才會看到書阿 @_@
真讓人有點想就敗下去了…Code Quality, Code Reading,必竟也好久沒有買書了,把錢花在這也比買糟糕物好得多。)
說了這麼多不太相關的東西,來談談 dds@ 的這篇文章吧,
首先他拿出了一張圓餅圖,展示了在 FreeBSD ports 裡面的軟體要 build 起來需要用那些工具,還有執行多久。
原來之前他在 -arch@ 和 -hackers@ 討論關於 Process accounting changes,
將 acct(5) 的精確度從 15ms 調到 1ms 是是為了要做這個實驗阿(當然也有可能是相反過來,做完了這個以後才想找個東西來實測看看。
不過我相信,任何 work 都會有他的動機在,就算是 just for fun,也是很棒的阿! :-)
第二段的一句相當有意思:
Using a shiny IDE on top of 1970’s technologies is equivalent to wearing an iPod while ox-ploughing: the work becomes less burdensome, but we’re unlikely to reap substantial productivity improvements from such a change.
所以在後面他說只有把 abstraction 的程度提高,才是真正增加生產力的方法。
在文中他也提到了 C++ compiler 平均一次執行的時間是 1.6s,遠比 C 的 0.17s 多,代表了隨著技術的進步,
電腦和人腦的 trade off 越來越不平衡。也就是說,人可以越來越懶?或著是說,人可以把更多的心思花在更深層的思考上,
旁枝末節的苦工,就交給電腦去做吧。就像唐鳳說過的「大巧不工」— 「最巧妙的程式,就是不用寫程式的程式」。
所以 Perl 像強力膠一樣把 CPAN 黏在一起,而大家也像是吸了強力膠一樣,為 perl 深深著迷。
dds@ 說:
However, nowadays CPU power is a resource a) we can afford to use and b) we can’t afford not to use.
其實我們的聖杯戰爭也一樣,人腦強的是 symbolic reasoning 的能力,
歸納出方法之後,交由電腦的 concrete execution 去完成我們想的工作。這也是電腦科學中,演算法令人著迷的地方。
(為什麼我會想到求婚大作戰中那個妖精說的:「祈願吧,說出來我就替你實現!」呢?哈利露亞~thesis~ XD)
上過 Compiler 課的同學應該都聽老師講過這個故事:
Two success stories of the 1970s that raised the level of abstraction for a specific domain were Stephen Johnson’s parser generator yacc, and Michael Lesk’s lexical analyzer generator lex. Together these two tools and the theory behind them transformed the task of writing a compiler from wizardry into a standard rite of passage for computer science undergraduates.
yacc 和 lex 就是 abstraction 提高生產力最好的例子。
另外這也道出了,科學家和工程師另人著迷的地方,就是讓不可能成為可能,最後變成我們生活的一部份。
(Google 說的 R==D 這種態度才是對的阿!)
最後,每次提到 tools 相關的東西,就一定會想到 gugod 的 talk: 利器善事。這是 OSDC.tw 2006 中,我最喜歡的一場。那句結語令我印象深刻:(沒錯,我又忘了是那個「象」了…)
Teach your tools to teach you to do the right thing.
說了這麼多(而且覺得好亂好沒內容 @@…) 還是乖乖回去造我的輪子吧…
[1] Diomidis Spinellis. The Tools we Use. IEEE Software, 24(4):20–21, July/August 2007
According to Wired News on Nov 10, 2005:
When Bill Gates announced that the technology was under development at the 2002 Windows Engineering Conference, he called it the holy grail of computer science
這篇講的是 Microsoft Research 的 SLAM Project。原文是:
“Things like even software verification, this has been the Holy Grail of computer science for many decades but now in some very key areas, for example, driver verification we’re building tools that can do actual proof about the software and how it works in order to guarantee the reliability.”
Bill Gates, April 18, 2002. Keynote address at WinHec 2002
這在玩什麼我就不多說了…反正有興趣的人真是少之又少…
待在這邊的大概就是超級強者之輩,還有我們這種跟在別人後面走的笨蛋…
(往好處想好了,知道自己是笨蛋代表知道還有那邊可以努力的地方;
真正的笨蛋是連自己是個笨蛋都不知道…)
之前 survey SLAM 看到這些話的時候只有一笑置之,後來在上個星期到 iis.sinica 聽
Edmund M. Clarke 的演講:Model Checking: From Hardware To Software And Back Again 看到投影片上面時就覺得很熟悉,今天老師提的時候才再想起來。
原來,我們打的是電腦科學裡面的聖杯戰爭阿!
看到這些消息,沒出息的在下,心中想到的卻是,
阿我的 Saber 在那裡呢?我也想要有個愛玩 cosplay 的魔法少女戰友阿!
不然…會作菜的溫柔學妹呢?(沒有補魔力還算聖杯戰爭嗎?)
不過只會白吃白喝的 Tiger 老師就不用了,謝謝。
以上不知道我在說什麼的請參考這邊。
不過,以後別人問說我的實驗室在幹什麼的時候,我就可以很帥(?)地說:
我們在打聖杯戰爭阿!
而不是說什麼:「簡單來說…就是在 debug 啦…」
阿阿,聖杯戰爭阿,原著的 45 個結局中,40 個是 Bad ending/Dead ending…
在魔術師的資質不如人,寶具又輸人家的情況下,這是場硬戰阿…
難到… 我只是個 Servant 嗎?雖然說真的有種被令咒命令的感覺就是了…Orz
看來,這篇的 categories 要加入 Anime/Game 了…我真是糟糕…Orz
今天在 IRC 上被大神點名了…我想大概是 jserv 的這篇的關系吧。
更正確一點的說法,應該說好久沒有按下 “Publish” 了吧 XD
Wordpress 裡 “Write” 那頁裡面寫到一半,或是還沒有整理完的文章一大堆,或許該個時間全部處理一下。(或是全部 delete 掉?昨天在信義誠品把《時間管理-給系統管理者》給翻完了,學到像是遇到這種狀況,應該就要爽快地通通幹掉才是上策 XD)
匆匆忙忙、也渾渾噩噩地度過了研究所的第二學期,但是總覺得好像一點東西都沒有學到,更遑論有什麼研究成果出來了。
或許,這就是人家說的「做研究做了老半天,然後什麼東西都沒有生出來,便開始懷疑自己根本就是個笨蛋、早點死了心不要浪費資源做研究了」那種感覺吧…
上個學期,每當心情煩悶的時候,我的殊解壓力的方法,就是去 send-pr(1),剛好那個時候對 python 也頗有興趣,就把 ports system 裡面 python 相關的 port 都掃過一次,看看有沒有什麼該 update、或是要修改的,做著做著,除了對 FreeBSD 的 ports system 了解更深,porting 越來越熟練以外,結果在最近,就被 “punished” 了…
唔…說了一堆雜七雜八的話,應該來感謝一下教我怎麼做 port 的大神,我的 mentor,clsung,幫我處理我的第一個 port (雖然已被 cvc3 所取代,且可能很快會被我拿來當練習 rmport 的對像…XD)的 610 大姐姐。對了,差點忘了幫我 commit 一堆 PR 的 miwibot XD
還記得高一的時候參加了學校辦的什麼 “千禧領航江南行”
隨著校長去了大陸幾個 “重點學校” 逛了一圈
那時後,我們印象最深的,就是他們的標語文化了
(除了什麼 “我們家裡有熱水” (註一) 以外最深的吧)
那時候就親眼看到了什麼
上海市全體公安向不闖紅燈的市民致敬
那時候(不知道現在怎樣)大陸人闖紅燈不走斑馬線真的很強,
八線道的十字路口就斜斜地走過去,看到完全令人傻眼
而且他們開車的人也不是像國外一樣會禮讓行人的呀 @_@
不過…我們住了兩天以後也學會了就是
(也就是說,入境隨俗?)
其他的…想不起來了 XD
今天看到篇 “Google 实习拾趣” 最下面的 “一些好玩的 Google Talk 签名”:
“爱生活, 爱 Coding”
“早起修 Bug, 一天工作都有劲”
“每一个整洁的接口背后都有一个龌龊的实现”
“自从咱用了 Unit Test,,腰不酸了,背不痛了,腿也不抽筋了”
“珍爱小拇指,远离 Emacs”
為什麼又讓我浮起了當年的感覺呢?
另外 “存在即合理” 的:
Google 的工程师干活最常用是 VIM、Emacs 和 Eclipse。用 VIM 或 Emacs 的人占多数,用 Eclipse 人较少。于是少数派经常遭到众人鄙视。少数派认为,存在即合理,因此用 Eclipse 是合理的。众人认为,存在即合理,因此众人的鄙视是合理的。
裡面總覺得有種說不出來的怪,不過這是某種幽默吧,我想。
讓我嘴角上揚的,則是 “程序员的冲动”:
我实在太喜欢 C++ 了。每当打开一个空白文档,手指有一种莫名的冲动,会不由自主地键入”#include “。
不過,早點用 gugod 說的 snippetsEmu 吧,「節省打鍵,手指拯救」
厄…這東西可是從 Emacs 上學來的耶,別對 Emacs 有偏見嘛 XD
(我承認,我一開始玩 Emacs 就是被那個 meta 鍵給打敗的…)
—
註一:
參訪上海交大附中的時候,有位接待的上海交大附中同學在寒喧的時候說:
台灣的生活應該很苦吧,對了,你們知道嗎?我們家裡有熱水耶!
語畢,我們這邊的同學完全不知道怎麼回應好
(事後有人說,應該回句「我們家裡還有冰水喔!」
不過那時剛到「祖國」還是安分小心一點好)
Powered by WordPress