作者octobird (遺憾)
看板PCman
標題[新聞] iT人甘苦談─穿著醫師袍的熱血電腦人:PCMan
時間Thu Jun 23 01:05:43 2011
http://www.ithome.com.tw/itadm/article.php?c=67918
iT人甘苦談─穿著醫師袍的熱血電腦人:PCMan
文/陳思翰 2011-06-03
目前擔任北部某醫學中心內科住院醫師的洪任諭,他曾開發出家喻戶曉的PCMan軟體,且
在工作之餘,仍積極投入自由軟體開發
IT人物─洪任諭
http://www.ithome.com.tw/img/135/67918_1_1_l.jpg
內科住院醫師
●出生年: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連線軟體輕巧。
大多數人一定都好奇,洪任諭是如何讓自己的程式開發變得如此厲害?洪任諭說,在學習
程式開發時,千萬別自我設限,並且要學以致用,如此才能激起撰寫程式的熱情。
文⊙陳思翰
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.233.149.200
1F:推 chancewen:m(_ _)m 06/30 22:09
2F:推 kaoh08:拜神m(_ _)m 看來我的硬體還不夠差XD 07/30 21:20