2007/11/30

OLPC的另一觀點

在2005年1月尼古拉斯•尼葛洛龐帝(Nicholas Negroponte)在出席瑞士達沃斯的世界經濟論壇(World Economic Forum)中宣佈了他的這項名為“一個孩子一部電腦”(OLPC, One Laptop Per Child)的非盈利計劃。

尼葛洛龐帝計畫要在4年內設計出一種只賣100美元的筆記本電腦,讓全世界1.5億落後國家的在校兒童人手一部, 以縮短開發中國家與已開發國家的技術差距。

這位痳省理工學院(MIT)教授搞得全世界的開發中國家都信誓旦旦的表示,將要大量購買這種電腦,而各國領導人和企業讚助商紛紛表示要支持這項宏偉的計劃。

到了2007年底,3 年的時間過去了,卻只有來自烏拉圭的10萬部訂單。但尼葛洛龐帝聲稱:與秘魯已談成另一筆25萬部訂單。如果深究進度落後的原因,最大的因素卻可能是受到了尼葛洛龐帝的自身的影響力,因為「100美元筆記本」計劃直接威脅到英特爾(Intel Corp.) CPU、微軟(Microsoft Corp.)Windows OS的傳統電腦既得利益者,OLPC促使他們加快開發腳步推出自己的廉價機型classmate,與OLPC兢爭。

由於最初的產量低於預期未達成預期的規模效益,再加上提供升級的設計(可增加cache memory、更換更快的CPU),提高了售價,使得OLPC售價超過了原先預估的100美元,但偏高的價格卻使OLPC與基於Windows的傳統電腦的售價縮小、在價格競爭中居於劣勢,更直接影響了開發中國家採購此電腦的意願,轉而採購可以提供更多維護的classmate,現在這些貧困國家有好幾種備選的機型,這使得尼葛洛龐帝的OLPC計劃有因力小勢微而被邊緣化的危險。

看到上述的報導,我想到尼葛洛龐帝或許不該氣綏,因為,他雖然想藉由推出OLPC來縮短已開發國家和開發中國家資訊化程度的距離,雖然他的推廣行動成果不如這些營利事業好,但是他卻成功的促成此一志業的推動。

這讓我想到台灣當時自力研發的經國號戰機,雖然經國號戰機一開始的性能不如F16,但經國號戰機的推出卻促使美國願意出售F16給台灣,以避免台灣有更深的戰機研發能力,其實,這可能原本就是台灣打的算盤,促使美國願意賣給我們更強的武器。像是在談判過程中,我們又採購了60架的幻像戰機,雖然價格不斐,但卻能成功的達成我方的企圖。

從另一個角度來說,或許這個計畫仍然是成功的,雖然最後勝利者的頭銜可能不一定在尼葛洛龐帝身上,但成功不必在我,因為他仍然促成了此一美事。
http://chinese.wsj.com/big5/20071126/fea175918.asp?source=insidetoday
小電腦 大雄心

2007/11/24

我的嘸蝦米學習過程

一直以來,我一直想要把我學習嘸蝦米的過程告訴大家,希望能吸引大家也加入嘸蝦米的行列。現在因為發明嘸蝦米的劉重次先生過世了,我想現在該是我能寫些什麼讓人了解嘸蝦米的好用之處的時候了。

身平第一個使用的電腦輸入法是注音,而且是那個最原始的注音。每個字只有在鍵入固字的唸法才會現在這個字;而且每個字的出現位置都在固定頁面的固定位置。

不過,一如我所認識的自己,用了沒有多久就開始尋找能取代注音的輸入法。

後來,我的同學介紹了我使用「漢音輸入法」,漢音輸入法也著時好用,他有幾個重要特色,讓我一用就用了4年:

  1. 智慧選字。它的智慧選字能選出更正確的字,例如:ㄕˊ在誇大不實、不時的情況下,就會自動出現候選字,然後自動跳出最常用的字。
  2. 自定義詞彙。可以設定一長串的自定詞,例如:將「中國船運公司」設成「中」的自定詞,然後再輸入時只要輸入第一個字「中」後再按Tab鍵,就可以出現自定詞的列表「中國船運公司」,然後可以再選出一組自定詞的列表。

這個輸入法,我記得在Windows95、Windows98上都還能使用,但到了Windows XP後,就完全不使用,而原本擁有這個輸入法專利的台灣松下,也將輸入法之一的智忘選字專利授權給微軟的新注音,而不再推出相關的輸入法,而使「漢音輸入法」成為絕響。

後來我就開始使用了其他以注音為主的其他輸入法,例如:新注音、自然輸入法,不過因為沒有「漢音輸入法」那樣使用起來那麼直覺,所以一直覺得並不好用。

2002年考完二技的那一年,在入學前的暑假,我下定決心要開始使用「嘸蝦米」,而選「嘸蝦米」的原因是因為當時連續好幾年,中文打字的冠軍都是用「嘸蝦米」,此外,我服役的文書也都使用「嘸蝦米」,這讓我對「嘸蝦米」的使用非常有信心。

但要學好「嘸蝦米」就得先學英打,所以我就先找尋適合我的英打學習軟體,後來我找到了「英打高手」這套軟體。「英打高手」這套軟體操作起來非常簡單,我每天早、晚強迫自己各花30分鐘練習,二個星期後,我已經學會所有字母、數字的打字了,這就已經足夠學會「嘸蝦米」了。學會英打後,我借了我哥的學「嘸蝦米」的書和裏面的「嘸蝦米」練習軟體。

「嘸蝦米」練習軟體也著實簡單,只要按照上面的學習進度,每天早、晚我還是繼續強迫自己各花30分鐘練習,二個星期後,我已經學會一般拆碼的「嘸蝦米」了。

我曾和其他使用注音的人分享自己的學習心得,從我的同學、女友、妹妹、朋友、太太,但卻從沒有人願意嘗試,不過那是他們的心理障礙,得靠他們自己克服了。

我最近看到了有人訪問劉重次先生時,他說的一句名言:「學習是一下子,使用是一輩子,不要為了一下子害了一輩子」。我完全同意劉先生的看法。進了二技後,我的作業因為中、英打字效率提高的緣故,寫得更快了。我後來開始學寫程式,也一樣得使用英打來撰寫程式,甚至我後來寫書、工作也都和打字有很密切的關係。

鍵盤是目前最有效率的電腦輸入工具,在語音的輸入法的效率還沒有辦法提昇前,我想這一個月30個小時的投資,早已獲得豐厚的報酬。我估計,未來10年內,鍵盤還將是最有效率的電腦輸入工具,這些投入的學習時間,我想是非常值得的。

2007/11/19

利用CVS Checkin一個新檔案/目錄

今天我一直想要利用CVS Checkin一個新檔案/目錄,但是一直都不成功,原來我對CVS的幾個地方還不夠了解...

import的說明檔是:
Usage: cvs import [-d] [-k subst] [-I ign] [-m msg] [-b branch]
[-W spec] repository vendor-tag release-tags...
-d Use the file's modification time as the time of import.
-k sub Set default RCS keyword substitution mode.
-I ign More files to ignore (! to reset).
-b bra Vendor branch id.
-m msg Log message.
-W spec Wrappers specification line.
(Specify the --help global option for a list of other help options)

CVS 的二個重要觀念
但在 CVS 內有二個重要觀念:目錄和Tag。
因為在import時,主要是以目錄作為checkin的方式,因此,要 Checkin的檔案最好放到一個目錄內,而且直接跳到這個目錄作checkin。
至於 tag,那是因為 CVS 在 import 時會需要使用2類 tag:vendor-tag、release-tags
  • Vendor Tag:提供者標記
  • Release Tag:發行版本的標記

假設有個來源目錄在 123/456,我們想要將 /456的所有檔案全部 checkin 到 CVS 專案根目錄下 /456/789內,因此我們要先跳到來源目錄 /123/456 內,然後鍵入
$123> cvs import /456/789 abc def

此時,abc是指Vendor-Tag;def是指Release-Tag。
為什麼會需要Vendor-Tag呢?
在一個必須由不同開發人員和開發組來修改軟體的專案中,會從不同的地方獲得原始碼。有時候會為了區別不同開發組的原始碼,就需要在checkin檔案時直接指定Vendor-Tag。
為什麼會需要Release-Tag呢?
在一個必須由不同開發人員和開發組來修改軟體的專案中,需要對軟體開發的階段作控管,以便對程式作同步的動作,這時候會為了區別不同開發組原始碼的開發階段,就需要在checkin檔案時直接指定Release-Tag。

另外,為了應付多個 vendor 的情況,需要說明導入到哪個 vendor 分支,cvs 在import 命令中也可以指定 `-b' 選項,它的default 是1.1.1,也就是說即使不指定-b的參數,和輸入'-b 1.1.1'的結果是相同的。

例如,有2個開發組red 和 blue分別提供了目錄 /123和/456,你想:

  • checkin red 組的原始碼到分支 1.1.1、使用 vendor 標籤 RED,並加入release tag RED_1-0
  • checkin blue 組的原始碼到分支 1.1.1、使用 vendor 標籤 Blue,並加入release tag BLUE_1-5

就可以使用以下的指令:
$ cvs import dir RED RED_1-0
$ cvs import -b 1.1.3 dir BLUE BLUE_1-5

注意,如果 vendor tag 與 '-b' 選項不匹配,cvs 並不會做檢測,例如:
$ cvs import -b 1.1.3 dir RED RED_1-0

但這種不匹配已埋下了隱患,使用這種方式 cvs 可能會認為這種方式是一種錯誤。

2007/11/07

同哀!嘸蝦米發明人劉重次先生辭世

嘸蝦米發明人劉重次先生已經於九月三十日因肺癌辭世,我和劉重次先生沒有交集,但我衷心感謝他發明了嘸蝦米輸入法。

劉先生的其家屬製作了一份追憶手冊,但是因為下載的人太多,蝦友solaris10放了一份到他的網站上作分流,提供給有意願多了解劉先生的蝦米朋友們。

另外,solaris10也公開了1998年採訪劉重次先生的過程,重新整理成兩篇文章,讓所有朋友們也能夠了解劉先生和他的嘸蝦米輸入法。
我所認識的劉重次先生
我所認識的劉重次先生(外傳)

我使用嘸蝦米輸入法已經六年了,劉先生已經過一個多月,可我一直到現在才知道這個訊息、並看過上面的文章,才對劉先生以及生平有了一些了解。我想,人一生若能像劉先生一樣能作過一件影響眾人的大事,也就不枉此生了。

相濡以沫

昨天我和同事討論是要昨天還是今天去吃麻辣鍋。

不過因為我同事不喜歡某些火鍋料煮後的湯汁,所以希望能吃一鍋的涮涮鍋。他說實在不了解為什麼我們喜歡這麼多人吃一鍋,我笑著打趣說:我們喜歡「相濡以沫」!

他有點不懂,我就告訴他「沫」是浮於液體表面的小泡。如:泡沫、肥皂沫,因為人嘴巴旁的口水的泡沫也有小泡,所以又引伸成口水。在這裏我是引伸「以沫」的動作來戲稱大家將筷子放入火鍋撈食物的交換口水的動作,當然,我們是會用撈勺的。

這句是出於<莊子˙大宗師>:「泉涸,魚相與處於陸,相呴以溼,相濡以沫」。比喻人同處於困境,而互相以微力救助。
相濡以沫,國語辭典 民國八十七年四月版

2007/11/06

文字的趣味-藏詞

今天在MSN上看到一個以前的同事寫了「樹欲靜而風不止」,我就知道她的父親可能往生了。

因為我知道那個同事的父親有口腔癌,之前也作過化療,但是狀況一直不大好。但當我看到上一句想下一句「子欲養而親不在」時,就發了訊息給她確認了這件事。

但我今天想要說的就是中國字裏面特有的一種趣味-藏詞。

「藏詞」是陳望道在《修辭學發凡》中對使用歇後語的一種稱呼。起初「藏詞」的使用需要一定的文言功底,例如《道德經》:「禍兮福所倚,福兮禍所伏。」用「倚伏」代替「禍福」,但這個使用範圍卻因為需要學習許多的文言文,使用上因此受到了限制。

後來的「藏詞」在結構與用法上則比較自由,採用了「比喻—說明」式的用法,使用的內容也和中國的民間故事、典故、文化、習慣有密不可分的關係。使用時,往往只要說出比喻的前段,後面的解釋部分則讓對方自己領悟。

我聽過一個例子,是補習班的國文老師說的。有個高階的公務人員退休了之後,還佔用了公家宿舍,他就請其他同事寫了一個簽呈說明是某某原因所以要續住後請示長官,結果長官批了合情、合理後就退回來了,承辦人員就知道了長官不同意。因為中國人講究「情、理、法」,但長官寫了合情、合理,獨缺法,表示這件事並不合法,所以長官不同意這麼作。

另外,最近的使用就是紅衫軍到了凱達格蘭大道時,要將之改成「禮義廉大道」,原因也是「藏詞」,因為四維少了一個「恥」,暗批陳水扁是「無恥」之徒。


在MySQL內一次Insert多筆資料

最近需要利用SQL Insert多筆資料,為了避免以後忘記,就記在這裏。

在SQL內Insert時要考慮一些事:

  1. 某些欄位是Null時就必須填值
  2. 數字欄位不用加引號
  3. 文字內容內的引號

每個欄位都輸入值:

INSERT INTO `limittable` ( `filepath` , `limitlv` )
VALUES ('aa', '0'),
('bb', '1'),
('cc', '2');