作者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