Archive for March, 2003

Revolution on Mobile Computing

前幾天一大早就被家父挖去聽一個presentation,是關於行動通訊技術的發表會。在一棟不起眼的大樓中,掛著小小門牌的辦公室裡,正在舉行的卻是可能完全顛覆現有行動通訊生態的一場集資說明會….。

簡而言之是這樣的:利用一種純軟體的技術,可以在目前GSM的系統上提供雙向2-8Mbps的頻寬。由於現有的 GSM 設備只要升級軟體的部份,相較於 3G 的系統需要重新採購,價格上便宜不少;而同樣架於 GSM 上的 GPRS 只能提供最高到 150Kbps 以下的頻寬,更是無法與之相比。

比較大的問題是收費;由於這個架構沒有集中的基地台,所以無法以量計費;目前合理的猜測是最終會以月租 20 元美金出現在市場上,提供無限制的上網及通話服務。

假若這個技術真的被推廣成功,會是一場很可怕的革命。因為,目前家中 ADSL 提供 512/64kbps 就要收將近 20 元美金,在這個系統佈建完成之後,ADSL 還有多少價值?可以想見的是勢必同樣的價格就可以買到 6/1.5Mbps 的極速 ADSL。

另一個改變生態的是語音通訊。一旦上網不再以量計費,大多數的人應該都會改用VoIP等技術來撥打電話,使得傳統的語音話務大受影響。而且由於這個架構中也可以把市話納入,或是,像上一段說的,大家捨棄 ADSL 而直接使用行動設備上網,那彼此間通訊又是完全免費的!

不過天下哪有這麼好的事。擋在前面的是花了大筆冤枉錢標 3G 頻段的系統業者、還有現有的電話設備製造商;你有技術,恁爸有錢圍堵你,看你怎麼玩;這時候才會發現台灣已經在世界上扮演一個很可怕的角色,那就是創業家的天堂。

台灣的硬體製造商技術已經不輸先進國家,缺的是從無到有的創新能力。而一個國外的技術團隊可以利用台灣的這些製造商來避免自行設廠製造的風險;同時,由於台灣的資本並不算太大,只要能夠提供幾億的可能營收,大多都願意投入。而在行動通訊方面,我們又是一個人口密度高、新產品接受度高,手機又普遍的國家。當然,日本也是,只不過他們沒有GSM。:p

除去實際技術層面不談,這真的是很令人興奮的一種技術革命;事實上,這也是行動通訊上的 Internet 革命。怎麼說呢?Internet 有一個特色就是去中心化(decentralized),這個特質使得以量收費的Model不易實行,等到它普遍之後,就衝擊到傳統的電信業者;如今行動通訊也要走向這條路,也許,這就會是新世界的開端吧 :)

祈求世界和平

掙扎了幾天,還是因為一篇反反戰的文章而挑起了被我埋在土裡的良知。一週的空襲恐懼已經夠大、夠強了,伊拉克的人民犯了什麼錯?身處台灣的我又何德何能在這裡悠閒的過日子?

但我也只能,把blog改成灰色,願這片陰雲早日散去…

公領域與私領域

這已經不是第一次了;每一次決定是否要把自己的空間登錄到某個列表上,心中總會有一點猶疑。要寫作需要讀者,有了隱形的讀者卻會扭曲或是制約某些創作的空間;總是企求自己寫一些很正式的文章真的是很辛苦,blog似乎也解決不了這個問題…。

就好比一家小咖啡店的老闆,面對美食雜誌採訪的抉擇一樣;我還是比較喜愛那種顧客走時,會說,"啊,真好~"的感覺….

留美背景資料知識庫

台大椰林的 AdvancedEdu前陣子看到有人做了這樣一個留美背景資料知識庫,立意很好但是因為引用的大多都是網友post在板上的個人背景,造成了一點小風波。

不過沒想到竟然是高中的朋友做的,這世界還真是小,所以來這邊幫忙推一下。

留美背景資料知識庫

記得當時年紀小

大概很少人像我一樣會記得為什麼加入一個社團。高三的時候看了兩本書:《資訊遊俠列傳》《我的電腦探索》。為了借這兩本書回家看,我還加入萬惡的建中三研社,其實這都是邪惡的林解碼(ljm)的陰謀。總之,在看完這兩本書之後,除了認識很多建中資訊社的強者之外,印象最深的大概就是 CCCA黃志賢了。

在整本都是神的書裡面,其實你是不會崇拜裡面某個人的;相對的,我開始認識這個我常常出現在我使用的軟體(NCSA Telnet,好懷念呀)、以及我抓檔案的 FTP 站(NCTUCCCA.edu.tw)的社團 — CCCA。即使在那個唸大學就要到台大的高中生涯裡面,我這個連交通大學在哪、以及交通大學到底管不管交通都搞不清楚的高中生,對於交通大學的想望,完全來自於 CCCA。

人生的際遇總是很奇妙,明明很嚮往,真的有機會卻不去把握,過了一個學期我也只參加過一次課程。也許是和這個社團有緣,卻因為營隊被草蝦學長找上,才慢慢融入這個大家庭之中,在這邊度過了最美好的大學生涯。

前幾天和某位前社長學弟(:p)聊到社團近況,老人嘛,總是有看不慣的事情。我正好想起以前這段經驗,就說了,其實重要的不是改變已經在的,而是如何讓好的人才願意進這個社團。我自己覺得過去 CCCA 的名聲真的很響亮,也確實做了非常多新的嘗試、引進新的技術。雖然很多事要看時機,但這些年來,社團對外累積的東西真的是越來越少了。(其實是在自我檢討,當了一年社長也沒什麼建樹 >_<)

我就和某位前社長學弟說,也許我們可以多寫一些的文件,連帶讓外界認為是"CCCA出品"的感覺,累積外界對CCCA的熟悉感。雖然我不知道能夠有多大用處,不過,就算只是做給自己這群人看的,其實也夠了。

在《資訊遊俠列傳》最後訪問了交大資工的四位學長們。裡面提到的”群體學習”也影響了我對社團的看法。高三在三研社的經驗、以及大一、二在CCCA和同齡的社團夥伴們一起學習的感覺,真的是非常的好;也許我們都已經遺忘了這種感覺,但其實,經營社團,不就是這麼一回事嗎?:-)

註一:《資訊游俠列傳》, 賀元著, ISBN 9579964025
註二:《我的電腦探索》, 黃志賢等著, ISBN 9579964033
註三:CCCA 創社副會長
註四:草蝦,一個曾號稱台灣數萬個 NewsGroups 板主的男人,剛保衛國家回來

Network OS 的未來

歷史是作弄人的;主從架構(Client-Server Architecture)曾經是電腦世界的主流,藉著威力強大的大型主機,使用者只需要用計算能力有限的用戶端電腦連接到 Server即可處理大部份的工作。然而大型主機的發展受限、個人電腦運算能力提昇、多媒體的掘起,使得運算的工作被個人電腦的 CPU 取代。然而網路頻寬的提升、叢集運算(Clustering)的成熟,又再一次讓主從架構變成一種值得考慮的架構。
Thin Client 是一台計算能力有限的電腦,它主要只負責處理使用者的輸入、以及呈現畫面的工作。大部份繁複的工作,都藉由網路交給 Server 來處理,再將結果傳回給 Client。然而這個架構其實面臨到兩個問題: 1) Thin Client 的能力到底得有多強? 2) 網路頻寬得有多大? 這兩個問題彼此又是相關的。當 Client 處理的越少,就得將越多的資料透過網路傳給 Server,而需要更大的頻寬。

Sun 在 1994 年推出 JAVA 的時候就曾經嘗試過藉由這個架構來破解微軟在作業系統上的絕對優勢;使用者從網路上下載的 JAVA 程式,只要有 JAVA Virtual Machine就可以執行,不論原本使用什麼作業系統。當 Client 一開機,就自動從網路上抓取其他所需的程式,不再需要透過傳統的硬碟來儲存資料。

然而這個架構在當時終究是不可行的;區域網路設備的價格仍太貴、Client 端的配備不能滿足日益擴張的多媒體需求,更不用說,Server 的價格也還是居高不下。與其採用這種架構,不如把工作都分散在單獨的 PC 來執行。文書處理、試算表、甚至小型資料庫都慢慢變成以 PC 為主的工作了。

時至今日,對於企業而言,又有了新的考量。分散儲存造成資料集中控管、備份不易,而 100Mbps 的網路已經是入門級的配備,個人電腦的 CPU 更是強大到可以處理大部份的任務都綽綽有餘。如今對於集中管理的渴望還是來自控管的便利性,為了避免機密外洩、病毒氾濫、資料流失,如今的 Client-Server 架構其實是以資料為中心的概念,而同時若能夠提供更低價的辦公室軟體,減少每台電腦所需要付的授權費用,那麼就更有誘因了。

首先推出的還是網路儲存方案。藉由網路分享,資料可以確保是最新的狀態;某些文件則甚至可以追蹤它的修改記錄達到回溯的功能。MIS 人員則可以更方便的備份重要的資料。

接下來是也許就是公司公文流程的改良。藉由 E-mail 系統,辦公室的公文都可以透過 E-mail 來傳達;而收發這些 E-mail,當然也可以透過瀏覽器連到 Server 端處理,而不需要將信件收回 Client 端;透過處理這些資料的記錄,主管也可以更清楚掌握每一個工作進度。

很顯然的是,文書處理、試算軟體以及資料庫等等都可以用現有的 Client、透過瀏覽器來實現。也就是說,在辦公室的環境中,透過網路來執行程式的架構,應該是會越來越流行的。

不過這時候如果跳出來看一看家庭應用,是不是有可能也是以網路為主體的架構呢?

首先還是以儲存資料為中心來看。現在的硬碟越做越大,雖然價格也越來越低,但是對消費者而言,由於家中的電腦越來越多,資料重複的問題也越來越大,特別是筆記型電腦為了滿足行動便利性,往往造成資料和家中的桌上型不同步的現象。同時,MP3隨身聽、Tablet PC以及其他新的數位裝置,若是擁有無線上網的能力,就可以不需要內建一個大的儲存裝置來擺放明明原本就在桌上型電腦有一份的資料。

或是,反過來說,如果我們有一台 20GB 硬碟的 MP3 隨身聽,那麼桌上型電腦也不需要特意去把這 20GB 和自己的硬碟同步,而應該要可以從這台 MP3 隨身聽的硬碟播放檔案。

所謂的分散式系統的精髓,就是要讓使用者在操作時,完全就像是使用一台正常單機作業的電腦一樣。將來如果在使用這些設備中的儲存裝置,就如同像在用我們自己的硬碟一樣,想必對於使用者會是更為方便的。

同樣的,現在作業系統、應用程式都必須要每一台系統上灌一套,如果在同一個家庭中我們可以在任何類似的裝置執行某些程式,例如,只要有螢幕有喇叭,就可以播放影片,而不需求額外進行安裝,那麼顯然也比現在要方便許多。

而當我們要處理大量運算的時候,如果又可以把資料分散到各台裝置去執行,這樣的架構才能夠完全把網路和硬體發揮到極致。對於沒有運算能力的,就加強它的網路能力,靠著主電腦或其他電腦來處理。

雖然這樣的夢想還有一段路要走,但是可以想見的是,以資料為中心的架構,將成為Network OS 走入家庭的第一步。

可惡的中文問題…

很不幸的忘了把 NoHTMLEntities 設成 1,結果標題都亂掉了,於是很生氣把 DB 砍掉重裝一次。我真的衝動又沒耐性的人…

談 GNU General Public License

GPL(GNU Public License)是現在許多網路上流傳的 Open-Source 軟體所採用的授權模式。由於一般慣於將之稱為 "Freeware",使得一般人常誤解這類軟體一定不能營利。事實上,這邊的 "Free" 指的是 "Freedom"(自由) 而非"免費"。
在 GPL 的前言就開宗明義說道:

"當我們談到自由軟體 (free software) 時,我們指的是自由而不是價格。我們把 GNU 通用公共許可證設計成您的保障,讓您保有發佈自由軟體的自由(您可以自由決定是否要對此項服務收取費用);確保您能收到程式原始碼或者在您需要時能得到它;確保您能修改軟體或將它的一部分用於新的自由軟體;而且還確保您知道您擁有這些權利。"(註一)

因此採用 GPL 的 Freeware,是允許使用者修改、散佈,只要使用者也遵循 GPL 的遊戲規則 — 不能限制其他使用者修改、散佈,並且讓他們也知道自己擁有這樣的權利。

也就是說,Mike 如果今天拿到 RedHat 公司出的 RedHat Linux 8.0,他若發現裡面有若干 bugs,想要加以修改,他可以把 RedHat 提供的原始碼拿出來加以修正,修正完成之後的成果,假如他的同學 John 也想要,Mike 可以 1) 直接送給他; 2) 以若干價格賣給他。但不論如何,Mike 都不能阻止 John 把這份新的 Linux 交給別人,或是加以修改;John 甚至可以原封不動的送給他的女朋友 Mary。

這邊有幾個問題存在:

第一,如果任何人只要遵照 GPL 的規範,都可以將他拿到的軟體自由散佈,那合理來說,GPL 軟體的價格幾乎不會高於使用者取得這份軟體的代價;例如說,某人可以選擇到網路上下載一份 Redhat Linux,也可以選擇到店裡面去買一張同樣內容的光碟;甚至請隔壁鄰居燒一張給他,三種不同選擇付出的成本,可能是時間、金錢或是其他機會成本,但其定價會趨近於取得成本。最終的結果是,售價都被散佈成本吃掉了,提供改良的人本身並沒有獲得好處。

第二,在作業系統上開發應用軟體如果也要被納入 GPL 的範圍中,也是不合理的。
通常作業系統都會提供所謂的 API(Application Interface),或是常用函式庫(Library),它們的角色就如同一台車上的各種操控元件,當車要轉彎時,我們轉動方向盤就可以,不需要去思考車子是如何控制輪胎、齒輪如何作用等等。有了方向盤這個 API 或是 library,某公司設計的自動駕駛機器人就可以藉著操控方向盤來控制車子行進方向,再配合上油門、煞車、排檔等等其他 API,這家設計機器人的公司並不需要去接觸到汽車研發的底層技術,就可以完成一個自動駕駛機器人。

從上面的例子可以看出來,雖然這個機器人是基於汽車的 API 來開發的,但是其關鍵技術和汽車本身並無相關。同樣的道理,在 GPL 的作業系統上,如果硬性要求使用這些 API 的程式被列入 GPL 的範圍,恐怕只會大幅降低開發新軟體的意願,因此為了避免這問題產生,必須要將 Library 或是 API 的 License 與一般的區分開,而有了所謂的 GNU Lesser General Public License (LGPL)。

在 LGPL 中,只強調對於原本的 library 的 freedom,也就是說如果我賣的機器人搭配上這台 LGPL 的車來賣,那麼我必須要告訴使用者這台車是可以自行改裝的,也可以複製這台車的任何部份,但是機器人本身的設計圖我可以不用給使用者。

實務上,採用 GPL 是不太可能靠軟體本身賺錢的。照 Richard Stallman(Free Softeware Fundation 發起人,註二) 的說法,GPL 的軟體是要靠服務而不是軟體本身來
賺錢。也許這樣的說法很奇怪,但服務其實包涵的範圍很廣,從客製化(Customized)、教育訓練、到修正軟體的 Bug fix 都可以算是服務。GPL 的 Free Software 的商業模式和現實並沒有什麼不同,就像水電裝潢我們可以自己去特力屋買材料來做,也可以請別人來幫忙,或是請專業團隊來施工設計。這些都是服務的範圍。

另一個有趣的商業模式是 MySQL AB 這家公司(註三),這家公司所提供的GPL 資料庫在 Open-Source 社群擁有非常高的知名度,同時在市場上也擁有不小的市佔率。該公司的 MySQL Server 同時擁有 GPL 和 Commercial License 兩種授權,也就是說,如果某公司今天想要開發一套資料庫應用軟體,又不想把原始碼交給客戶,那麼就可以向他們採購 Commercial License 版的 MySQL。相對的,對於一般人而言,GPL 版本是免費的,小公司若是自己內部要架設資料庫,就可以採用這個版本。

除了 GPL 之外,還有 BSD License(註四) 等其他 License 模式;BSD License 遠比 GPL 更為鬆散,它只要求附上原版的版權聲明,以及要註上"本產品包含由加州大學柏克萊 分校及其他貢獻者所開發的軟體"。更簡明的說,就是只要不宣稱整個軟體都是自己寫出來的,就符合它的要求了。以商業應用而言,這可以算是最好的選擇了。

註一: 譯文摘自 http://cldp.linuxforum.net/doc/GPL.html
註二: http://www.stallman.org/
註三: http://www.mysql.com/
註四: http://www.freebsd.org/copyright/license.html