為何要醉 coding?
認識我的朋友或許會知道,我時常把「酒」掛在嘴邊,雖然不是頗常喝 (這是自我安慰)。開始喝酒,是在入伍下部隊後,那時雖常陪「達官貴人」喝酒,但是那時候總用矇騙的手法,沒有真的醉過,大多知難而退,不然就是魚目混珠的閃躲敬酒攻勢。去年六月份生日時,在同事陪同下慶生,不小心被灌醉,當時... 好糗 (skip)
退伍後,在台北靠寫程式打零工,勉強糊口,無奈的我,除了唱著羅大佑在(一九)八○年代初期代表台灣X世代憂傷與失落、提到「台北不是我的家」的「鹿港小鎮」一曲外,就只能躲在寄宿的屋簷下,寫寫程式自娛,也因而先後混到幾個計畫的 write access & project admin。參與 Free / Open Source Software Projects,首先一定要對授權方式與相關的法律規範有足夠的認知,其次是溝通能力,技術才是最後幾個考慮項目,然而,除了希望 source code 能以 Public Domain 或所謂的 Copyleft 形式自由流通外,專利加諸的限制是不可忽略的。
之前的 blog [
快快樂樂寫 Java VM],提到 Interpreter 實作上相當常見的 threaded-code 技巧,而去年我也在 Kaffe mailing-list 提交了 [
Threaded code and quick instructions for Kaffe],這對效能大約有 10% 的提升。然而 Java 之父 James Gosling 在 United States Patent 有一份專利 [
Method and apparatus for resolving data references in generated code],這影響了 threaded-code 技巧的實作方式,因為該專利的核心思想就是 "generating intermediate form code containing symbolic field references from said intermediate representation",如果要避過這個專利,事實上就限制最佳化的可能性,也因此,儘管 patch 已經準備好,但我基於更動應該要是 patent-free 的原則,至今還沒辦法 commit 到 CVS repository。
舉上述的例子,即是說明這樣的機會對我來說,是頗常遇到,甚至我還會因為工作的關係,不小心閱讀或修改了某個商業套件,但其授權方式或專利技術會「限制」我參與相關的 open source 計畫 (我白天有正常的工作,晚上才會有閒情作 open source),這是非常糟糕的。是此,去年的某一天,我索性就買了幾罐啤酒飲用,想把白天看到的那些「邪惡程式碼與文件」徹底忘掉,然後重新實做過,沒想到,不僅程式碼寫完,也意外發現 coding 如有神助,很快就把骨幹寫好了 (但是 debugging 還是要一段時間,這當然是酒醒時的工作)。寫程式這種事情很有趣,可以像是作家一般把工作與興趣結合,也可能會像是廉價勞工,對我而言,兩種都有可能,不過有時候就是想體驗 Hacker 的生活,所以就開罐暢飲,享受「醉 coding」的美妙感受。
稍早小貓送我一罐葡萄酒,新來的女同事 Vivien 送了一瓶清酒,上個月底南下到嘉義,去 [
gaber] 家喝私釀酒,回程時伯父熱心的包裝了兩罐白葡萄酒,現在內湖住所的收藏如下: (click to enlarge)

這裡再度感謝各位朋友的贈送,但我還是最愛私釀酒,風味實在是沒話說:棒!
外頭飄著小雨,室內也冷颼颼,而我又要「醉 coding」了 :-)
突然想到,這樣下去,會不會有哪一天,我會發生「自燃現象」呢?參考《超自然異象大追蹤》的 p.181
由 jserv 發表於 November 16, 2005 12:39 AM