tech-sjh

2010年6月22日 星期二

彰化一日遊-吳晟書屋

五月中旬看到公視播出有關吳晟書屋的新聞後,就一直計畫前往。鄉土詩人吳晟在彰化溪州自家
老宅前蓋了一棟新宅院,專門給書住。看到公視新聞時,sj很興奮地說,學生時代國文課有讀過
吳晟老師的詩作「甜蜜的負荷」,很想找時間去這棟書屋看看,在吳晟blog上查到確切地址後便
立即規劃彰化行程。

離開埤頭鄉-「稻米博物館」後,照著在地人指示路線走,轉往溪州鄉-「吳晟書屋」。從埤頭鄉
到溪州鄉很近,我們沿路欣賞稻田,快到目的地時居然轉錯彎迷路了。都市人在鄉下迷路真的很
緊張,很怕開車開到最後沒有路可開,不然就是開進稻田裡。還好路邊有個阿公騎摩托車跟田裡
農夫在聊天,我只跟他說我要找吳晟的老家,也沒講住址,他馬上用手比著某個宅院說,那間就
是吳晟的家。我一臉茫然,他說的方向有一堆房子,我根本不知道哪間三合院才是我要找的。阿
公看我臉上寫著「聽無」兩個字,立刻發揮鄉下人熱情友善的一面,很豪邁地說要騎車在前面帶
路,就這樣我們開車跟著好心在地人後面走,一下子就找到目的地了。


看到跟電視上一樣的書屋時,終於放下心中大石頭,我們找到了。當天有四、五部車停在三合院
前,我心想今天來看書屋的人真多。奇怪的是,怎麼書屋裡沒半個人? 我問sj到底可不可以進去裡
面參觀? 他說新聞上報導歡迎愛書人共襄盛舉,所以應該可以進去吧?!我看書屋沒上鎖,就大膽
地走進瞧瞧。

書屋比我想像要大很多,感覺有三層樓高,屋子裡藏書豐富,經過歸納整理擺設整齊,看得出吳
晟老師的用心,這些書都是無價之寶,ssh在書屋裡興奮地跑跳,我得小心他不要在這裡發揮撕書
的功力。參觀書屋後準備離開時,三合院主人出現了,是吳晟老師的太太。我向師母說明我們的
來意後才知道,原來書屋不是給像我們這種觀光客參觀的。一開始看到三合院前停了好幾部車也
不是遊客的車。師母說,那些車都是他們自家人的車,兒子媳婦孫子全家大小都在三合院裡睡午
覺。我聽完後開始緊張,這麼說來,我們是私闖民宅。新聞上的報導原意應該不是邀請大家去書
屋參觀。我們大剌剌地把車開進別人家,又走進去逛了一圈,真是白目極了。鄉下地方有些人家
是門戶不上鎖的,但不上鎖不代表你可以進去。搞清楚真相後,趕緊跟師母道歉,表明我們沒有
歹念,不是小偷,只是把事情想的太簡單的都市傻子。

正連忙表示道歉之意時,吳晟老師也從三合院走了出來,他請我們到書屋泡茶聊聊天,過程中,
他看到ssh很怕踩到樹葉,就跟我們聊到「標籤理論」。如果你在孩子面前一直說他很怕樹葉,或
是說他就是不愛讀書.....等等話語,這就是給孩子貼上標籤,這樣孩子就會漸向大人貼的負面標籤
發展,相反地,若是我們以正面鼓勵方式,常對孩子說,你好棒,肯定孩子的學習熱情與信心,
孩子自然會充滿更多正面能量,滋養他在人生過程中面對各種挑戰的勇氣、耐心與毅力。

此外老師也提到對於母語保存的重要性,提醒我們在家裡多說母語,讓小孩從小在多語環境中成
長,可以增強對於母語文化的保存。對於上幼稚園前是否自己帶小孩或是交給保姆帶?老師也偏
好我們能夠在孩子上學前,多培養親子感情,給孩子更健全的兒時身心發展。

實際與在學時課文作者聊天談心的經驗,讓人感覺補滿了生命中原本缺少的某一塊,很高興有這
個機會與吳晟老師一家人談天。

2010年6月21日 星期一

彰化一日遊-中興穀堡

終於等到週末好天氣,驅車前往彰化,此行有二個參訪目標,一是埤頭鄉「中興穀堡」,二是溪州鄉「吳晟書屋」。

中興穀堡位於彰化縣埤頭鄉,2010年1月中旬正式營運,是一座由民間企業成立的稻米博物館,歐式風格的城堡建築就蓋在稻米工廠內。進入博物館搭電梯從二樓開始參觀,二樓展區規劃完善,展示各種稻米農具與製米機具,細說稻米歷史,分辨稻米種類,告訴你哪一種米是由哪位農夫種植,什麼米能夠為國爭光外銷到日本去,從二樓窗戶往下看就是米倉現場作業,館方也提供各種米食DIY課程,只要預約就可以自己動手碾米、爆米香、做三角飯糰或客家麻糬,凡是跟米有關知識,這裡都學得到。像我這種都市裡的「莊腳俗」,參觀過稻米博物館後才懂得何謂「粒粒皆辛苦」。

一樓是販賣各種與米相關的商品,個人覺得米漿口味冰淇淋不錯吃,一隻40元,純米冰淇淋則不推薦,沒有米的味道,很像香草冰淇淋。糙米米麩跟米製牛軋糖是我覺得值得買的伴手禮,牛軋糖現場可以試吃,不仿吃過後再決定是否購買,我看SSH連吃兩塊,原來米製牛軋糖質地偏軟,小朋友也咬得動,才決定買回家解解饞。

耳熟能詳的「有點黏又不會太黏」,就是中興米的招牌廣告。聯米企業將事業重心北移至樹林,並成功行銷品牌「中興米」後,又回鄉彰化埤頭設廠,以濁水溪流域的優良稻米為原料,用心經營台灣傳統米文化,也逐步邁向年營業額高達20億的米食王國。

離開前,詢問館方人員如何前往溪州,在地人指引一條直達路線,不需再從北斗交流道上國道,因為埤頭鄉與溪州鄉相鄰,中興穀堡大門前那條路往左直直開就到溪州鄉。館員還教我們,北斗其實應該唸成「寶斗」,如果你念「北斗」,人家就知道你是外地來的,買東西會買貴。這種只有在地人才懂得知識,我們很幸運地學到了。


博物館入口處


二層高歐式城堡建築


自費體驗各種米食DIY,採預約制


員工辦公室


拍張照留念


一樓戶外庭園


買支米漿冰淇淋坐在這裡樂活一下


一樓庭園出口








園區處處都是可愛裝飾

2010年6月13日 星期日

SSH學習日記-安靜

在餐廳吃飯時,SSH興奮地大聲尖叫,家人教他要安靜,SSH聽到「安靜」這個詞是他沒學過的,馬上現學現賣,以更高的分貝大聲地說「安靜」,得意的模樣是想表現他又學會新單字了。只是身旁的我們就糗大了,臉上已經不知道幾條線,我很擔心若是去圖書館時他也這麼說,那就換圖書館員臉上N條線了。

超愛說話的SSH,鐵定是遺傳我,無時無刻都在講。二歲幼兒正處於好奇寶寶階段,學習能力強,記憶力絕佳,又愛模仿,大人說話時,他們都在聽一句話裡有沒有新單字是他沒學過的。像我說「去costco買雞肉捲」,他就學會「costco」跟「雞肉捲」;「開車去加油站加油」,每經過加油站必說「加油」。記得有一次在公車上,SSH也是高分貝地講個不停,前座的小女生就跟她的媽媽說:「我覺得他好吵喔」,SSH聽到,馬上學起來並且大聲地說「好吵」,還連說兩次,我知道他是高興學會說「好吵」這個詞,根本不懂人家是在complain。

2010年6月10日 星期四

別當自作聰明的程式設計師(我認錯)

Bruce Sterling 轉貼了一篇標題為 Mea Culpa (我認錯) 的程式設計師反
省文。並重新定標題為別當自作聰明的程式設計師。原作者是從 1969
年就開始進入程式設計領域,已有超過四十年程式設計經驗的
Jonathan Edwards。Bruce Sterling 認為文中的反省並不只是作為單一
程式設計師的反省文,而是整個軟體產業需要一起面對的共業。

摘譯如下:

程式設計因為需要高度的分析能力,常常讓我們陷入一個誤區,為
了提高程式設計能力,而不斷讓優秀的程式設計師擁有強大的優越
感,自認為高人很多等,特別是相對於平庸的程式設計師,我們都
希望盡情炫耀自己的聰明才智,得到同儕的仰慕眼光。但在之後的
大半輩子裡,我痛苦的領悟到程式設計的重點在於態度、而非聰明
才智。

現實問題的磨難最容易激發出聰明才智的創意靈感,但結果的表象
雖然讓人驚喜於充滿創意的解決方案,實際上卻是後續長期維護災
難的開端。一個讓人眼睛一亮的程式設計方式,但卻可能深藏著無
數的深層炸彈,在日後一一引爆。

而在日後維護過程中,可能我們又會自我優越的認為,只有我才能
解決其他平庸者無法解決的精密設計疏失,比如特製的資料庫系統
,多線程(multi-threaded)的作業系統。

後來我把整個系統轉移到新框架上,解決掉讓人困擾了二十年的長
期維護工作。這痛苦的領悟與經驗讓我瞭解,程式設計不是當最聰
明的人,程式設計告訴我的是軟體是如此的複雜,讓全世界最聰明
的菁英都顯得微不足道;不要想單靠一己之力解決所有複雜的問題
程式設計的重點在於簡化與慣例。把這句話倒著刺青到你的額頭
上,這樣每次看到螢幕中的你都可以提醒自己這項原則。其中最重
要的是態度:努力工作、負責任、專注在實際問題,而非未經驗證
的猜測。

程式設計其實跟其他的工程與設計不盡相同。其中的主流文化常常
陷在前面說的自我感覺良好誤區。就像是格列佛遊記般,只是多了
大括號,中括號,縮排位置,要不要加小括號等議題。我們唯一同
意的是其他程式設計師有多愚蠢,但我們應該自己試著 Google 一下
"愚蠢的程式設計師",就會看到自己也名列其中。

程式設計技術的提升仰賴於文化的提升,我們能做的就是在自己的
工作中耐心、持續的付出、分享交流我們學習到的經驗與心得。

相關連結:

Programmers should stop being such smart-alecks

Mea Culpa

2010年6月6日 星期日

OpenBSD 開發與版本控管流程

要如何做才能真正在每次版本發行時,能夠不再因為重大軟體瑕疵
而延遲、改變時程?

OpenBSD 的開發流程,告訴我們的是開發流程與軟體品質的密切關
係,OpenBSD 團隊如何克服開發、測試時人性懶惰的弱點?以及他
們考量哪些重點?做了什麼?80 位開發成員如何互動來確保軟體品
質。

首先是對發行版本這項工程的定義:用科學方法設計、開發結構、
機械、裝置或製造過程;不論是處理個別單一項工作,或是整合成
一體的工作;也是對於建構、操作有完整認知的過程;在特定控制
變因內預測行為;所有針對特定功能、經濟運作、保全生命財產安
全等都算是工程的定義。

一般商業公司有足夠的人力、資金、時間可以同時有開發、測試團
隊一起運作,但是開放源碼軟體在這種執行模式下會有問題...發行
的軟體版本通常是未經完整測試的產品,需要持續修正。

發行版本的理想程序是:全部程式碼都經過測試、經過最多人測試
、最短的測試時間、最少的痛苦除錯...當然實際上我們只能取到折
衷方案。

完美的發行理想程序可以帶給我們:沒有重大錯誤造成使用者退回
上一版、大部份的新開發功能都可正常使用、開發者開心、使用者
歡喜、可以在發行版本後快速回到功能開發。

但實際上常是發行版本後,進入維護版本的除錯無間地獄...

最常見的流程就是:開發 --> 準備發行版本放慢開發腳步 -->
Tag/branch release tree --> Test & Fix --> Product N
通常是在 branch 之後交由發行版本的團隊進行 build/test,然後發
現錯誤需要 bug fix merge 回 trunk,或需要由 trunk merge 到發
行的 branch,就一直循環....直到真正修完錯誤,或是大家都精疲力
盡,結果通常是:好吧,只能出這版了!

其中的問題點在於:
一、只有少數人在測試
二、開發者在要發行版本的 branch 除錯修改程式
三、發行後的重點變成維護產品 branch
四、流程容易拖延
五、許多開發者陣亡(指對這個產品的心靈已死)

OpenBSD 進入 Tag/branch 之前的開發流程:

減慢開發速度,進行回歸測試-->鎖定 API/ABI 不再變更-->
早期套件 build test -->鎖定 tree(需經認可後才能再更動)-->
開發者執行測試工作-->Tag/Branch-->解除鎖定-->修改細項-->
正常開發步調-->重大更新-->六月個的開發週期-->減慢開發速度

1.
其中的發行版本修改,都只需要做到微調的動作。並且我們會使
用自己的產品來進行開發(Eat our own dog food)。

2.
鎖定 API/ABI 的原因:此時上層軟體套件才可以編譯,並可同時
發現影響版本發行的重大議題。每天都會編譯程式碼。Daily snapshot.
在編譯軟體套件時發現的回歸測試錯誤,在此時就已經開始修正。
修正完畢後才進行 tag/branch, 接著 unlock 後就可以回到 mainline
持續開發。

3.
鎖定的動作是不預警的,因為人們容易忽略行事曆中的例行事項,
針對測試週期的結果,降低過多錯誤的開發者修改程式的權利。

4.
所有工程師都會參與發行版本時的每一步流程。這可以避免短缺的
測試人力。

5.
作者也承認是因為 OpenBSD 的管理作風比較接近獨裁(theo),因
此其他開放源碼專案可能無法直接套用這個方法,但是對於軟體開
發公司就相當有用了。

相關連結:

The OpenBSD release process, A success story

2010年6月4日 星期五

Ylian Saint-hilaire 在 Intel 的成功方程式

Ylian Saint-hilaire 在 Intel 創新未來部門決定哪些事情該做,又該
放下哪些工作的判斷方法上,提出了一套方程式。當然他也謙稱許
多教導人們成功的書籍都提出類似的方程式,而這只是個粗略的概
念,如果讀者想要套用數據進去,請自行負責判斷後果 :P

主要判斷的依據是看產出的智慧價值扣除花費的心力後,還有多少
價值的觀念為出發點:

智慧價值 - 花費的心力 = 創意 X 市場優勢 X 通路 X 商業利益

其中又把市場優勢細分為:

市場優勢 = 平台優勢 + 技術優勢 + 地位(品牌)優勢

商業利益的判斷也可以細分為:

商業利益 = 平台軟體服務 + 直接收入 + 產品附加價值

依此再配合個人或公司的情況代入數據後,也許下次做判斷,你
可以有更客觀的數據佐證,而非每每猶疑不定,決定了又怕後悔。

相關連結:

Intel Software Network Blogs: My formula for success by Ylian Saint-hilaire

2010年6月1日 星期二

巨無霸小黃瓜

老爸時常拿他用心栽培的蔬菜水果跟我細說園藝的樂趣。我是有聽沒有懂,因為不管是種花種草,還是種蔬菜種水果,我都沒有興趣,我討厭泥土裡的小蟲,任何活的植物到我手裡也一定變枯木。
熱愛種植的老爸,把陽台種滿蔬菜水果,最近,老爸細心呵護,為避免光害蟲害還特別套上紙袋的小黃瓜也陸續成熟。我帶ssh體驗如何收成,只是沒想到居然有一條長成這個樣,剛摘下拿給ssh時,他嚇的立刻躲開。這種 king size應該沒人敢吃吧。


跟30*30 cm磁磚格比較


跟光碟片比較


跟原子筆比較


再比一次


拿尺一量......35cm


正常小黃瓜跟巨無霸一比.....甘拜下風

版權宣告、免責聲明


姓名標示、非商業性、相同方式分享3.0台灣授權條款授權。
免責聲明: 本文所載資料僅供參考,並不構成投資建議,
讀者閱讀或使用該資料所導致結果需要自擔風險與責任,
作者概不承擔閱讀人行為之任何風險與責任。
除非有特別宣稱,作者言論並不代表所屬任何團體、公司、或其他人意見。