Li-Wen Hsu’s Blog

June 29th, 2007

Tools

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 PerspectiveCode 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

Filed under: Murmuring, Research, Computer, Programming — lwhsu @ 06:27

June 26th, 2007

畢業典禮

好快,又到畢業的時候了。

P1040910

真的好快,去年好像才畢業一次,今年又要畢業一次,不同的是,心境完全是天壤之別。

大學畢業典禮的時候,其實我已經念了半年的碩士了,所以算是遲來的畢業典禮;
碩士畢業典禮的時候,其實我根本還沒有把論文搞定,所以算是早來的畢業典禮。

特別感謝送我花的大家,兩場畢業典禮收到了三束,所以依鴿籠原理….唔…XD
真是讓我意外又感動。:-)

回想起參加過的畢業典禮

幼稚園好像有辦一個簡簡單單的畢業典禮,但是我只記得拍記念冊照片的事情。
小學畢業典禮,奇怪,我一點印象也沒有了,反而能記起來的只有前一年當樂隊在旁邊伴奏的事…
國中畢業典禮,我只記得我媽很好心地請她班上的學妹送了束花給我
(母親大人真是了解我,知道以後很難會有女生送我花了…),
還有當天晚會的煙火,施放地點離人群太近,結果把一堆人的衣服燒破了,廠商為此賠了不少錢。
高中畢業典禮,我記得建中青年逍遙遊中的一句:

建中畢業典禮很亂,根本不像畢業典禮。

好像有校長伴哈利波特的橋段,但是我也沒什麼特別印像,那個時候在做什麼呢?
我記得好像和班上的同學「翻最後一次牆」去後門的商店買煙火,自己班上玩得很快樂。
對了,那天晚上也是 2002 年世界盃英格蘭和阿根庭的大戰,那時候通訊不發達,
我和旁邊的同學們只能用手機簡訊得知最新戰況。
(真是一點感覺也沒有…所以這類的 3G Application 一定要在這種大家都會在一段不短的時間會一直想看電視的時候推出,
應該就可以成功推廣不少。 )

總之,都是一些奇奇怪怪的畢業典禮就是了…

畢業典禮只是一個結束,還有另一個開端。
然而最近兩次的畢業典禮結束之後,我沒有變,都留在這邊。
希望希望,我可以真的不要再再交大參加第三個畢業典禮了,
(不過可以「很快」念到到博士畢業的話,唔…我也不排斥吧,
但現在我懂了,笨笨的烏龜還是要慢慢爬,動太快是會翻的。)

但是我要的是什麼呢?

「想想自己要的是什麼。」這是參加交大資工申請入學面試的時候 jnlin 學長問我的。
我那時候心中混亂,只回說:「先給我個大學念吧!」

五年過去了,我的答案是什麼呢?
人家問起我希望過的生活是什麼,我忘了從多久以前開始,都是這樣回答的:

我要帶著筆記型電腦,走遍世界,Coding

一個荒誕不切實際的理想,白話一點就是「嘴砲」。至少對我而言,是的。

大學室友,蔡董(丟這個 link 是因為我實在不知道要怎麼表示他 XD)
和我說過,我們兩個人是完全相反的人,但是做的事卻也是完全相反。
我嘴裡說的是大膽的行為,但是行事前總是得想好所有可能的狀況,想好後路,然後選最保守的路去走;
而他說話保守,但是真的大膽放手去做事的卻是他。
(這大概就是我們大二剛開始住一起的時候兩個人都是去死去死團團員,
但是在我的鼓動之下,蔡董成功地交了第一個女朋友,交往了一段不算短的時間的原因吧。
而我,還是過著當好人的日子。)

我想多多少少是因為當了這麼多年系統管理人員的職業病吧(牽拖的壞毛病又犯了),
一定都要先確保資料都備份好了,才敢開始做事。
還有凡事都要往最壞最壞的方向去想。
(或許也是程式設計師的職業病吧?什麼東西都要問 worst case,
突然想到,如果在分析的時候,也把發生各種 case 的機率一起算進去,是不是比什麼Θ(n)、Ο(n) 和 Ω(n) 好點?
看來我已經把資料結構和演算法的課本丟掉太久了…)
這大概也是過了這麼多年,我還在這邊原地踏步的原因吧。

下一次,像去年那樣,什麼都不要想,機票買了背包背了就上飛機出去這種衝動會是什麼時候呢?
(好像前幾個月才在衝動之下去了日本一次…)
我是指,在人生的道路上大膽的往一個方向走走看,好像我還沒有過。

臨晨在只有一人的實驗室裡寫程式有感。

Filed under: CS, NCTU, Diary — lwhsu @ 03:09

June 14th, 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 ResearchSLAM 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

Filed under: Anime, Game, Microsoft, Software Enginnering, Murmuring, IIS, SQLab, Research, Diary — lwhsu @ 07:55

June 6th, 2007

系足期末隊聚

之前《2007 交大系際盃足球賽》說到亞軍的獎品有 2000 元的大潤發禮卷。
於是這個學期的期末隊聚基金就有著落啦。:D

交大待到第五年了,第一次上電資大樓的樓頂,就是為了烤肉。
也才知道,原來電資大樓的頂樓是交大的烤肉盛地…

想不到,2000 元可以餵飽這麼多人阿。
我們大概十多個人,從晚上 7 點開始生火,一直烤到臨晨 1 點,
大家都再也吃不下了以後,還有三盤肉剩下來。

這張圖是學弟正在排「勾肩搭背的雞翅們」,在後面也可以看到幾個緊急照明燈。
據了解,原來電資大樓除了頂樓可以烤肉以外,
原來最上面幾層的緊急照明燈還可以拆下來當烤肉時的照明用…
IMGP0963

最後整理場地時,我無意間發明了一個奇怪的遊戲:把燒紅的木碳用夾子放到水裡面
被學長關心說是不是寫論文壓力太大,心理變態(這是一個很深的誤解阿…)
但是每個人嘴巴說好變態,身體卻很誠實地玩了起來,
然後大家都迷上了這個感覺是怎樣… -_-||
(從夾子傳過來一陣一陣的振動,那觸感還真是新奇有趣呀…)
最後連學妹們也玩起來了…
IMGP0969
於是我們花了比平常還多很多的時間在收拾(或是玩樂?)善後上…

六個小時的中,大家雜七雜八的聊了很多,學弟聊著暑假環島的計劃。
學長講著之前環島的經驗。才覺得,好像我的大學回憶中,少了這一點耶。
(不,現在不可以想這些東西,敢緊做出些對世界有貢獻的東西吧,
像是一篇可以讓自己畢業的論文,以免亂浪費寶貴的研究資源…)

Oh, 最後應該要記錄一下,這次活動的時間是在六月2日。

Filed under: cs.football, CS, NCTU, Diary — lwhsu @ 03:19

June 3rd, 2007

FreeBSD 最近的大動作

標題好像寫的很大,不過FreeBSD 最近做了那些事也輪不到我來提了 XD

又好久沒有按 “Publish” 了…
上一篇的 ID 是 56,這一篇已經到 67 了…(結果到頭來,68先被 publish 出來)

今天(Oops, 這是 May. 22 的事了…)在 #bsdports 看到下面這段,挺有趣的。

23:52 < linimon_> gcc4.2
23:52 < linimon_> then xorg
23:52 < linimon_> then the shlib bump.
23:52 < @Pav> missed symbol versioning
23:53 < linimon_> and the rewrite of the kernel in C++

好像以前在 CSZone (KKcity 上面的) 的某個板 (或許是 HighHand 板吧?)
有看到有人介紹用 C++ 寫的 OS,不過已經不知道在那邊了…

寫到 CSZone,才發現有這個地方:
http://groups.google.com.tw/group/cs_zone

Filed under: Uncategorized — lwhsu @ 19:30
Next Page »

Powered by WordPress