成立 PCMan Facebook 專頁

之前常被許多網友要求加 Facebook,但是數量過多難以管理,大部分也都不認識,無法一一加入,所以成立 PCMan FB 專頁。未來長篇的文章還是會放 Blog 上,而平常的小動態會放在 FB。
另外,現在也可以使用 http://blog.pcman.im/ 來連到本網站

2009年11月23日 星期一

[軟體] PCMan Telnet/BBS for Firefox 2009 全新套件

最近突然心血來潮,想學習怎樣寫 Firefox extension,
順便學習之前一直沒有學的 Javascript,於是,就重寫了 PCMan 作為練習
經過長時間的研究 + 三天密集 coding + 參考 FireBBS,目前已經初步可用了

PCMan Telnet/BBS extension for Firefox,誕生!
專案網頁: http://code.google.com/p/pcmanfx/

功能還不夠完整,但是該有的基本功能都有了,彩色顯示也很正常
重點是可以支援中文雙色字,顯示效果也很接近原 PCMan 系列。
當然效能和記憶體用量遠不能和原版 PCMan 相比,但是對於用純
Javascript 寫成的套件來說,目前的執行效率還在可接受的範圍。

歡迎大家測試或給予意見,或者是...最好可以有熱血的朋友加入開發,
小弟最近很忙,可能會沒有時間繼續寫完。
目前程式碼相當短,而且最困難的核心部分我幾乎都已經寫完了,
剩下就是許多小地方的補強。 這次是純 Javascript,
有能力改寫的人應該就很多了吧! 快加入吧!

主要特色:
1. 使用 Javascript + XUL + 少量 html 開發
2. 程式簡潔,可讀性佳,模組化,初版僅 1000 行,
易讀,易改,相當適合想學習 Telnet 程式撰寫的朋友,
作為學習的參考。
3. 雖然是使用 Javascript,執行效率仍在可接受的範圍,
操作上有接近原生軟體的表現。
4. 支援一字雙色的顯示,畫面呈現效果優良,接近原生軟體。
5. 跨平台,目前確定可運作於 Windows (優) 和 Linux (可),
Mac 及其他 Firefox 能運作的平台尚未測試,理論上可用,
但顯示效果會略有出入,中文輸入部分可能會有些小問題。
6. 開放原始碼,以 GNU/GPL V2 自由授權釋出。

想加入開發的朋友,請和我聯絡,加入這個專案。

[閒聊] PCMan BBS 連線軟體全系列的發展史

很多意外的進步,常都是在不務正業,以及無心插柳當中,
陰錯陽差獲得的,不過成果並不是偶然,而是長期累積的結果。
平日累積的經驗和研究,可能毫無成果,看似白費,一無所獲,
但一旦等到了時機適當的時候,就能在短時間內立即展現出來。

PCMan BBS 連線軟體系列,堪稱地球上版本最多的 BBS 連線軟體
從主要的 PCMan Combo/Lite 系列,由 2001 年發展至今
已經演變成自由軟體,成為開放原始碼的 Open PCMan 專案
後來我還使用不同的開發工具和程式語言,重寫了好幾次,
這些支援各種平台的版本並不是用移植的,而是每次都是重寫。
反覆重寫一樣的程式,看似沒有太大意義,但是在這個過程中,
雖然沒做出什麼新東西,我學會了使用幾種不同的工具。

原本 2001 年的時候,我只是在學習 socket programming 而已
因為要測試連線,腦中又只記得學校 BBS 站的 IP,隨手輸進去
才意外發現,這樣程式竟然可以接收到 BBS 站的畫面,
這幾行隨手用來練習用的測試程式,最後變成了 PCMan 全系列。
http://pcman.openfoundry.org/
http://pcman.ptt.cc/index2.html (舊網址)

後來看到可跨平台的 wxWidgets (當時叫 wxWindows) 程式庫,
就有打算要嘗試使用看看,還在評估研究的時候,
幾個月後又看到有位網友真的用 wxWidgets,開發出了另一套
BBS 連線軟體 BBMan,證實了這件事情的可行性。

於是我也學著用 C++ 配 wxWidgets,重寫出 PCMan X,
可跨 Windows, Linux, 和 Mac OS X 三大主流平台,
這在當年可能是台灣第一個支援 Mac OS X 的 BBS 連線軟體,
本來計劃用這個取代原本的 PCMan,不過後來因為種種原因
現在已經廢棄不用,但我在其中學會了如何使用 wxWidgets
也因為這個原因,我才開始摸 Linux 下的程式設計,
也是這樣陰錯陽差變成 Linux 系統的使用者,一直用到今天
又是因為當時嘗試修正 wxWidgets Linux 版的中文輸入問題,
所以意外開始學 GTK+,到今天變成都改寫 Linux 下的軟體
http://pcmanx.sf.net/

因為自己本身變成了 Linux 的使用者,所以之後開發的軟體
都是以 GTK+ 進行,並且專門開發給 Linux/X11 使用。
所以就用 GTK+ 重寫出 PCMan X GTK+2,是目前 Linux 下
主要使用的版本,使用 C/C++ 搭配 GTK+ 2。
http://pcmanx.csie.net/
http://code.google.com/p/pcmanx-gtk2/

後來,意外看到 Firefox 瀏覽器外掛程式的文件,想到似乎
可以把 PCManX 的程式改寫,用外掛的方式塞進瀏覽器裡面
經過實驗之後,PCMan for Firefox 的外掛就產生了
這個版本是使用 C/C++ 搭配純 Win32 SDK/API 撰寫,
所以很小很快,但目前似乎和最新版 Firefox 有點相容性問題
http://pcmanmoz.mozdev.org/

(這個 BBS 外掛所引用的技術,後來被我用來開發知名的
IE Tab for Firefox 外掛程式,不過後來因為沒有空
又不再使用 Windows,我就沒有繼續參與開發,而讓另一位
合作的開發者 yuoo2k 維護後續的新版了。)

作為台灣地區第一個把 BBS 連線軟體塞進 Firefox 的人,
我當然是不會因此滿足,畢竟我是 Linux 使用者,
所以,幾個月後,Linux 版 的 PCMan X GTK+ 2,
在一些高手的協助下,也發展出可以塞進 Firefox 的外掛
變成可以內嵌到 Firefox。
http://pcmanx.csie.net/

在 2007 年初原最古老的 PCMan 系列開放程式碼,
變成 Open PCMan 專案,以自由軟體的新姿態重新出發。
在整合進網友貢獻的新功能之後,我就淡出沒再開發這些軟體了
平常的重心已經轉到醫療工作上,還有 Linux 平台
主要的心力投入在開發 Linux 上的 LXDE 桌面環境。

2009 年,有些熱心的網友重新活化了 Open PCMan 專案
為這個專案注入新血,並且由他們推出了 2009 年版。
也就是大家今天會在網站上下載到的版本。

2001 年開發了第一版 PCMan 軟體,到 2009 年完全淡出,
其實我還是會手癢的。 於是...在下班後稀有的閒暇時間,
還有中午飯後的休息時間,我又偷偷打開了編輯器,輸入了
一些簡單的程式碼。而這個無意間的舉動,又意外的,
衍生出一個新作品。

說意外也不全然是,我調查相關的技術,和翻閱相關文件
累積相關資訊也有幾個月了,不過本來還在觀望的...

這兩天我原本只是一時興起,想練習一下 Javascript,
因為這個廣泛被應用在網頁上的程式語言,現在正火紅
但是我其實從來沒有學過,也不太會用,加上我一直想要
學習怎樣用 Javascript語言,撰寫 Firefox 瀏覽器的
擴充套件。所以,在看過相關的教學文件之後,
也就是官方網站上的那個簡陋的 Hello World 範例,
我就開始動手,把在腦中勾勒已久的程式寫下。

三天內寫了九百行,很簡短,但是一個新的 BBS 連線軟體
初具雛形了。 這是最新的 PCMan for Firefox 擴充套件,
可以讓使用者在 Firefox 裡面開啟 telnet:// 上 BBS

這不是先前 PCMan plugin 的新版,這是完全 from scratch
用完全不同的程式語言,所重寫的新軟體。

PCMan for Firefox 現在是純 javascript 程式,
沒有夾帶 plugin 了! 目前功能還很簡陋,不過大致上可以用了
剛剛已經放上專案網站: http://code.google.com/p/pcmanfx/

在退出 PCMan 系列的開發兩年之後,很高興這個歷久不衰的
系列作品,又有了新的成員出現。

詳細介紹請看下篇。