全站文章 iT邦幫忙
iThome Online提供免費電子報,現在就訂,最新IT訊息每日寄達。

iThome 每日新聞報
iThome 產品技術報
加入iThome Online會員,立即使用討論區、Blog等服務。

免費加入會員
登入 / 登出
管理會員帳號
忘記帳號密碼
聯絡客服
訂閱周刊
讀者服務
13' E政府專刊no.7(48)
13' iTcloud No.3(47)
12' E政府專刊no.6(46)
12' 個資法專刊No2(45)
12' iTcloud No.2(44)
12' e政府專刊No.5(43)
12' 個資法專刊(42)
11' CIO專刊(41)
11' e教育專刊No.3 (40)
11' e政府專刊No.4 (39)
11'iTcloud專刊(38)
10' e教育專刊No.2 (37)
10'e政府專刊No.3 (36)
09'e政府專刊No.2 (35)
09'e教育專刊(34)
09'e政府專刊(33)
08'企業資安專刊-端點安全防護(32)
08'企業採購情報誌(31)
07'資訊安全技術應用專刊(30)
07' 新世代資料中心專刊(29)
07'企業資安技術應用專刊(28)
企業採購情報誌'06冬季號(27)
iT人甘苦談─穿著醫師袍的熱血電腦人:PCMan
文/陳思翰 2011-06-03
分享到facebook
目前擔任北部某醫學中心內科住院醫師的洪任諭,他曾開發出家喻戶曉的PCMan軟體,且在工作之餘,仍積極投入自由軟體開發

IT人物─洪任諭


內科住院醫師
●出生年:1983年
● 學經歷:陽明大學醫學系畢業,現任北部某醫學中心的內科住院醫師,任職時間約3年
● 軟體作品:PCMan BBS系列軟體、新酷音輸入法Windows版、Firefox IE Tab套件、Linux LXDE桌面系統
 


電子佈告欄(Bulletin Board System,以下簡稱為BBS)在網際網路剛發展時非常盛行,但隨著時代的進步,網路呈現的方式越來越多,所以使用BBS的人也逐漸減少。不過,它的影響力仍不可忽視,以臺灣最知名的BBS──PTT來講,使用人數每小時平均有13萬,而同時連線最多可近15萬人,並且也造就了許多次文化。平常有上BBS習慣的人,幾乎都聽過也使用過PCMan這套BBS連線軟體。而打造PCMan的作者,就是目前任職於北部某醫學中心內科住院醫師的洪任諭。而除了知名的PCMan外,其實連下載次數超過3,000多萬的Firefox IE Tab套件,也是他打造出來的軟體。

從沒上過電腦補習班,程式開發完全自修
洪任諭畢業於陽明大學醫學系,學業、工作繁忙的他,很難讓人想像,他的興趣竟然是程式開發。而讓人更驚訝的是,他竟沒有上過任何補習班或相關課程,都是靠自修習得。而他程式開發如此厲害,為何是念醫學系,而非資訊科系?洪任諭說,他覺得資訊科系整天都要面對電腦,也較少接觸人群,他不喜歡這種感覺。除此之外,他認為醫學系能跨領域,與各種不同的專長結合,出路更廣。

洪任諭會接觸程式開發,是因為高二時家中買了電腦,而他覺得買來只打電動實在太浪費了,所以開始想電腦還能做些什麼。而最簡單的方式,就是看電腦補習班傳單上的授課項目,零零總總的一堆課程。他心想,不然自己也來學。但那些課程對於學生太過昂貴,所以他選擇買書自修。

洪任諭第一次碰的程式語言為Quick Basic,可是當他看完書後發現業界沒有人用Quick Basic後,他就跑去改學C。他說,那時學C語言,頂多只是印出幾行字或星型符號,完全不能理解它還能夠做些什麼。之後在學校的電腦課中,聽到老師說C語言能夠寫出像Windows這類的程式,讓他覺得不可思議。

意外打造出PCMan連線軟體

洪任諭從對程式一無所知,到能夠獨立開發PCMan,其實中間過程都是誤打誤撞造成的。在高二的時候,他的電腦處理器是Pentium II 266MHz,記憶體只有64MB。洪任諭說,那時KKMan剛出來,他大多用它上BBS。不過,因為自己電腦硬體差,使用起來非常「卡」。他某次跟同學聊天時抱怨說,如果自己會寫程式,要寫一套能讓自己電腦跑得順的連線軟體。結果,後來這玩笑話就成真了。

開發PCMan這套軟體,其實並不是為了當初那句玩笑話。洪任諭說,他高三的時候開始學C++,並且接觸Windows MFC(Microsoft Foundation Classes,微軟基礎類別庫)。那時,他對於MFC中的Socket Programming功能感到非常好奇。因為上面寫著,該功能只要輸入IP位址與服務埠,就能連線到主機。

而洪任諭當時記得住的IP位址,就只有學校的BBS位址。輸入後,他收到BBS的歡迎訊息,讓他嚇一跳。他心想,為什麼別人畫面是彩色,而自己的卻是黑白,並且只有一行字,還有許多看不懂的指令。他問學校電腦老師,老師說那是Telnet通訊協定的RFC 854,可以與對方主機進行溝通。

由於通訊協定RFC 854的參考文件為英文,而且因為文章複雜,使他難以閱讀。而跟同學討論時,決定去用NetTerm這套連線軟體。該軟體除了能連線到BBS外,還能儲存成記錄檔。而他就用NetTerm,一步一步研究每個指令進出的紀錄檔。洪任諭發現,每次資料送回來,都是沒有經過解碼的16進位資料;而且這些資料中,夾雜在文字中間的英文指令,都是RFC 854通訊協定。

他就照著操作取得的指令,透過Socket Programming傳到BBS主機。接著,第二個字串就回傳過來,但這些字串沒有經過排版。他也好奇KKMan的連線畫面為何有彩色,他的軟體卻沒有。而這些字串,字與字的中間有著許多看不懂的符號。他把這些符號濾掉後,剩下的就跟KKMan的黑白畫面一樣。

後來,他才知道那些符號是彩色及控制游標符號的終端機指令。而這時候,洪任諭的C++基礎還沒學好,開發上卻先接觸MFC,結果導致許多功能使用上有問題。最後,他把程式重寫了3、4次才有個雛形。

而他就這樣,每個功能都像尋寶似的,將KKMan能夠做而自己軟體卻沒有的功能,慢慢研究並加上去。基本功能都建置完後,他才把分頁、選取文字之類的進階功能加入。並在升大學那個暑假,正式推出第一版PCMan。他說,軟體當初取名為PCMan,並不是為了跟KKMan打對臺。而PCMan這名字,是來自於洪任諭的BBS ID,而後面的Man只是湊巧相同而已。

PCMan轉移到Linux後,順手開發了桌面系統LXDE

第一版PCMan推出後,因為大受好評,陸續有網友寄信,希望洪任諭加入不同的功能。而他也曾經受到PTT站長的幫助,表示願意協助推廣PCMan。也因為這樣,使他開始著手將PCMan轉移到不同平臺上。而這個原因,也造就了他另一個軟體大作──Linux LXDE桌面系統。

當時,洪任諭只是為了開發Linux版的PCMan而接觸Linux。他不只不會上面的程式語言,甚至沒接觸過這套作業系統。那時候,他透過wxWidgets(Windows and X widgets)跨平臺函式庫重新改寫PCMan,原本以為在Linux上重新編譯就能使用。結果編譯完後,發現PCMan不能使用,而且部分功能有問題。

洪任諭想,似乎只差臨門一腳就完成,索性就打開類別庫來修改Bug,結果發現裡面都是GTK+(GIMP Toolkit)的圖形介面函式庫。後來,他為了修理編譯錯誤的部分而學習GTK。而接觸GTK沒多久後,他發現似乎也不難。因此決定,與其修改出錯的部分,不如直接用GTK重寫。也因為修改時大多是在Linux環境上,後來他也成為Linux使用者。

而LXDE的開發,純粹是因為洪任諭在使用Linux時,每次開GNOME的檔案管理員都要花上20幾秒,他覺得開啟時間這麼久,其中一定有問題。後來,他就開發了輕巧、開啟速度快的PCMan檔案管理程式。不過,後來推廣上屢遭挫折,一直無法增加使用人數。他那時想,可能是因為使用者都習慣用桌面系統預設的檔案管理介面,所以推廣上較困難。

於是,洪任諭就找了幾個精通Linux的網友組成開發團隊,打造輕巧的Linux桌面系統。而LXDE後來也受Linux使用者的擁載,且被Ubuntu的分支Lubuntu收錄。LXDE並無版本的差異,這是因為LXDE的基本精神是模組化的桌面系統,它是由許多獨立元件組合而成,且元件間無相依性。使用者能視自己的需求,選擇元件使用。所以他們這個開發團隊,只會更新元件版本。

程式開發需要學以致用,才能維持開發的熱情
洪任諭製造的軟體,大多都是因為練習程式語言,或是市面上缺乏自己想要的工具,才開發出來的。以PCMan和LXDE來說,其實初衷都是來自於電腦硬體差、執行程式速度過慢,而決定自己開發輕巧型的軟體來使用。

洪任諭為了確定軟體是否夠輕量化,到2007年之前,他釋出每一版PCMan之前,都會安裝到自己的Pentium II電腦上驗證。只要執行時夠順暢,就代表該版本沒問題;如果較遲鈍,那就代表它程式碼可能有寫錯的地方。也因為這樣,每個版本的PCMan,使用上就是較別的BBS連線軟體輕巧。

大多數人一定都好奇,洪任諭是如何讓自己的程式開發變得如此厲害?洪任諭說,在學習程式開發時,千萬別自我設限,並且要學以致用,如此才能激起撰寫程式的熱情。文☉陳思翰

分享到facebook

2014資安趨勢研討會
更多研討會
▼ ADVERTISEMENT ▼
▲ ADVERTISEMENT ▲

電週文化事業版權所有、轉載必究 •Copyright © iThome | 刊登廣告授權服務服務信箱隱私權聲明與會員使用條款關於iThome