成立 PCMan Facebook 專頁

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

2016年12月17日 星期六

PIME 輸入法 v0.16.1 釋出,穩定性改善

PIME 輸入法 v0.16.1 釋出,穩定性改善不少,敬請下載升級。
下載: https://github.com/EasyIME/PIME/releases/
為了改善 PIME 穩定性問題,我開發了自動化測試工具,針對新酷音,用程式自動測試大量切換視窗,切換中英文模式,開關輸入法,以及選字 (見影片)。本次釋出前已通過 5000 詞彙的自動輸入測試,目前沒有發生當機情形。


主要修正項目如下:
  1. 部份修正打字經常無故失效問題
  2. 修正記憶體錯誤造成當機
  3. 修正 windows 7 登出會有錯誤訊息
  4. 改進新酷音詞庫編輯程式 (感謝 ottokang ottokang@gmail.com)
  5. 修正新酷音中英文狀態顯示錯誤
關於防毒軟體的聲明:
  • "本程式不含惡意軟體",有完整程式碼供檢閱證明。
  • 作為輸入法,本來就必須攔截使用者鍵盤輸入,再加上後端使用網路技術開發,又沒有憑證簽章,可能被防毒誤判為惡意側錄使用者輸入而阻擋,請手動排除。
  • 做應用程式簽章可減低誤判機率,但購買簽章每年約需台幣 6000 元,非無捐款的免費專案可負擔。若有企業願贊助簽章,歡迎聯絡。

2016年11月29日 星期二

PIME 輸入法 0.16 釋出 (提供新酷音詞庫編輯)


主要改進:
  • 改進系統架構,提昇穩定性 "減少無故當住的機率"
  • (終於) 提供了新酷音輸入法的詞庫編輯程式 (還很簡陋,有改進空間,歡迎協助改寫)
  • 修正許多小 bugs,包括輸入法設定工具無法正確啟動
  • 底層移除 libpipe.dll 低階操作,改使用標準 web 技術,降低開發和維護的難度。
  • 如發現和防毒軟體不相容,被誤判為病毒/惡意程式的狀況,敬請回報。(請參考本篇: EasyIME/forum#13 (comment))
關於防毒軟體的聲明:
  • "本程式不含惡意軟體",有完整程式碼供檢閱證明。
  • 作為輸入法,本來就必須攔截使用者鍵盤輸入,再加上後端使用網路技術開發,又沒有憑證簽章,可能被防毒誤判為惡意側錄使用者輸入而阻擋,請手動排除。
  • 做應用程式簽章可減低誤判機率,但購買簽章每年約需台幣 6000 元,非無捐款的免費專案可負擔。若有企業願贊助簽章,歡迎聯絡。

2016年8月24日 星期三

COSCUP 2016: 開源軟硬體實做全套電子鼓(python + RPi)

終於實現了!在開源技術研討會上開演唱會! 既然要 live demo 電子樂器,當然就要用真的音樂。 直接用自造電子樂器搞 live band,現在想起來還是覺得很瘋狂啊! 畢竟不管演講經驗有多少,live demo 永遠都是大家最害怕,最不可控制的變數。 從投影機投不出,音效放不出,demo 網站連不上,到程式當場當掉不能運作,這些都屢見不鮮。 要講一個這樣的 session,寫程式開發軟體本身,反而成了最簡單的部份了。 上台前一週臨時組成的樂團,因為成員忙碌也沒時間一起練過,全靠線上溝通。 設備場地無法先看過,真多虧了COSCUP 全體工作人員協助安排。 昨天在會場和夥伴們講好分工,在僅有15分鐘的準備時間內, 大夥一起上,按計劃分工架設了所有的設備,接好了每一條導線。 排桌椅,安排講台位置,處理投影機、連接八條開發板訊號線,一條音源線、網路線、音箱、電吉他導線、烏克麗麗、以及架設兩支麥克風收音。 在科技研討會做配置這樣複雜的 live demo,心臟真的要非常大顆,能順利完成的機率低得可以。 隨著大家的辛勞,看著一切在預定時間內就定位,演講順利準時開始,實在說不出的感動。 到了 live demo 時間,看著所有器材正確的運作了,簡直是奇蹟! 最後整個 session 含 Q&A 也順利在預定時間講完,美中不足是不少聽眾反應講得太快了。 雖然演講本身有待改進之處,臨時成軍的 live band 也有點小掉漆,這仍然是一次大膽的嘗試,難忘的經驗。 最近換了新工作格外忙碌,開發自由軟體專案的時間反而少了, 之後要再講這些技術分享的場子,機會可能比較少了。 這次的「大製作」其實也很適合作為「封麥」演說吧 XD 再次謝謝每一位給我指導和幫助的朋友,沒有大家的幫忙,這次的活動不會順利。


完整的演講投影片在這裡:http://www.slideshare.net/pcmantw/coscup-2016-python-rpi
程式碼可從 github 下載:https://github.com/PCMan/pydrum

2016年8月13日 星期六

[演講] 非典型程式教育 (TPET8 年會) 影片釋出

最近程式教育納入課綱,造成許多爭議。七月時在 TPET8 教育噗浪客年會演講,從一個自學者的角度,來重新反思程式教育,和中小學老師們分享。會後收到不少正面回饋,但大會官方尚未釋出錄影,只能分享投影片。
今天花了一些時間,利用先前聽眾分享手機錄下的部份,加上原本的投影片,重新製作成 HD 高畫質版的演講影片,分享給關心資訊教育議題的朋友,歡迎自由轉載。
To teach or not to teach? That is the question!



p.s. 本影片完全使用開放原始碼軟體製作完成 (ffmpeg 轉檔,audacity 聲音後製,和使用 openshot 合成影像)。

2016年7月16日 星期六

PIME 0.14 - 支援 node.js,新增多種輸入法

本次為「重大改版支援 node.js,並且新增多種輸入法。
  1. 開發者 KenLuoTW 貢獻多個 cin-based 輸入法模組:行列、大易、拼音、速成 輸入法
  2. 開發者 lyenliang 整合大新倉頡進酷倉輸入法,KenLuoTW 更新泰瑞倉頡至最新版碼表。
  3. 大幅改進安裝程式,減少檔案鎖死,需要重開機的狀況 (By KenLuoTW)
  4. 大幅改進內部架構,同時支援多種程式語言 (By PCMan)
  5. 開發者 jessy1092 新增了 node.js 支援,未來可以用 javascript 開發 Windows 中文輸入法
  6. 新增 emoji 輸入法模組,幫助輸入 unicode 表情符號 (By jessy1092 )
  7. 修正許多小 bugs

非常感謝 KenLuoTW, jessy1092,及lyenliang 的協力開發,使得 PIME 逐漸成長茁壯
p.s. 有計劃支援「無蝦米」但是礙於蝦米的 cin 表格版權疑慮待釐清,目前無法提供。網路上有找到把正版 Liu table 轉成 cin 格式的方法,但不確定如何整合進 PIME 下比較方便,希望對這部份有研究的朋友可以協助。

2016年6月27日 星期一

PIME 輸入法平台 v0.13.1 釋出

慶祝碩士論文初稿完成 - PIME 輸入法平台 v0.13 釋出
請到此網址下載:https://github.com/EasyIME/PIME/releases/

  • 共修正數十個 bugs
  • 修正選字視窗位置不正確問題
  • 修正語言列按鈕無法正確消除和設定選單叫不出問題
  • 修正安裝後導致 Excel 啟動變慢 (其實應該是微軟的 bug...)
  • 修正設定工具無法正確存檔
  • 加入酷倉輸入法,由開發者 KenLuoTW 貢獻 (非常強大的智慧倉頡輸入法)
  • 修正 IE 內不能使用 (在安裝程式加入選項關閉保護模式, 由 KenLuoTW 貢獻)
  • 預設只安裝新酷音,其他輸入法模組選用
特別感謝開發者 KenLuoTW,對安裝程式部分做出很多改進!

2016年5月16日 星期一

PIME 中文輸入法近況

好一陣子沒更新關於輸入法或是其他軟體的近況了,因為最近一兩個月在趕工碩士論文,所以實在沒空碰程式。忙完畢業論文,會找時間來一波更新,把殘存的 bugs 盡量都修一修,敬請期待! 另外現在 blog 更新會比較慢一些,關於軟體的最新消息,歡迎訂閱 Facebook 專頁
smile 表情符號

2016年4月10日 星期日

[演講] 國際化開源專案技術實務與經驗分享 (2016-04-07 清大)

之前受邀到清大的開源軟體相關課程演講
主要是探討國際化專案開發時,多國語言支援需要注意的小地方,以及分享和國外開發者合作的經驗。會後簡報釋出,歡迎有興趣的朋友取用



2016年3月11日 星期五

PIME 輸入法 v0.12 釋出 - 完整移植原 TSF 版新酷音的功能

PIME 輸入法 v0.12 釋出
下載位址: https://github.com/EasyIME/PIME/releases
更新重點:

  • 已完整移植原 windows-chewing-tsf 版本的功能
  • 並加入自由大新倉頡輸入法 (由開發者 lyenliang 貢獻)

其他修正:
  • 修正 32 bit 版本 dll 過舊問題
  • 完整實作語言列選單
  • 修正切換輸入法造成的語言列按鈕殘留
  • 一些小 bugs 修正
  • 改善輸出簡體中文的選項



2016年3月2日 星期三

PIME 輸入法平台 + 新酷音輸入法 v0.11,修正多個 bugs

PIME 推出新版,新酷音模組部分包含下列改進
  1. 提供輸出成簡體中文 (使用 OpenCC 實作)
  2. 修正選字問題,以及選字游標不正確
  3. 修正全形處理 bug
  4. 修正空白鍵選字造成無法輸入空白 bug
  5. 修正設定工具偶爾無法正確儲存問題
下載請到:
https://github.com/EasyIME/PIME/releases

使用若發現任何 bugs,敬請回報到這裡:

目前進行中的開發計畫 (由網友貢獻):
  1.  cin-based 的表格類輸入法支援
  2. 新倉頡輸入法 (cin-based)
  3. 支援語言列按鈕選單
  4. Node.js 支援 (已經有初步可動的基本實作)
敬請期待 !

2016年2月26日 星期五

PIME 輸入法平台 + 新酷音輸入法 v0.10

新版本來了,修正:
  1. 修正快速鍵不能使用的問題
  2. 修正全形輸入的 bug
  3. 改善設定介面
下載請到:https://github.com/EasyIME/PIME/releases

2016年2月11日 星期四

PIME 輸入法平台 + 新酷音輸入法 v0.08

新酷音輸入法 Windows 版 v0.08 又來了
下載: https://github.com/EasyIME/PIME/releases/download/v0.08/PIME-0.08-setup.exe
本次修正:
  1. 無法正確設定選字按鍵
  2. 修正 Windows 8/10 app 內無法使用
  3. 改善安裝程式,協助安裝 VC++ 2015 runtime,及改善解安裝流程
  4. 嘗試改善設定工具無法儲存問題 (不確定有無修好)
  5. 新酷音模組程式碼註解全面中文化,方便開發者研究
若安裝後遇到找不到 dll 無法執行的朋友,請參考微軟文件,確定你有 Universal C Runtime: https://support.microsoft.com/en-us/kb/2999226 的 Windows Update。

本次最重要的修改,其實是程式碼註解的全面中文化。以往開發自由軟體的習慣,為了和跨國的不同開發者合作,文件和程式碼及註解都是全英文。但考量注音類的中文輸入法是台灣特有,沒有跨國合作開發的需求,反而是應該幫助本國開發者理解程式,所以花了一天重整,加上大量的中文註解,讓有興趣動手改良的朋友容易研究。
只要用文字編輯器打開 C:\Program Files (x86)\PIME\server\input_methods\chewing\chewing_ime.py 這個檔案,就可以閱讀 Python 撰寫的程式碼,甚至動手修改。
節錄其中一小段程式碼:


可以發現,真的很好閱讀。主要處理輸入的部份在 filterKeyDown()onKeyDown() 兩個函數內,如果是熟悉 Python 的開發者,搭配中文註解很容易就能讀懂。
本軟體還在開發中,難免會有些 bugs。如果你是會寫 python 的使用者,不妨點開程式碼,或許馬上就會發現有能協助修正的地方。

自己動手修改並除錯程式的方法:
  1. Ctrl + Alt + Del 叫出工作管理員,強制關閉 PIMELauncher.exe 和 pythonw.exe 兩個 processes (這是 PIME 的 server 部份)
  2. 修改 chewing_ime.py 或是其他想修改的 python code
  3. 手動執行 C:\Program Files (x86)\PIME\server\server.py 這個程式,就能顯示出 python 的終端機視窗,可在裡面看到除錯訊息
  4. 打開記事本或其他軟體,測試輸入
  5. 發現錯誤,關掉 server.py,改過之後,再重新啟動 server.p,即可繼續測試 (須先在記事本切換到其他輸入法,再切回來,讓它重新連上 server)
整個專案完整的程式碼在:https://github.com/EasyIME/PIME
關於程式的架構,這裡有完整的 Hacking guide 有介紹:
https://github.com/EasyIME/PIME/blob/master/HACKING.txt
有興趣參與開發或研究的朋友,歡迎閱讀!


2016年2月9日 星期二

PIME 輸入法架構 + 新酷音輸入法 v0.06 正式釋出

春節假期「一日雙版」紀錄達成,早上出 v0.05,晚上出 v0.06
下載網址:https://github.com/EasyIME/PIME/releases/download/v0.06/PIME-0.06-setup.exe
這個版本,是開發 PIME 平台到現在為止,第一個日常可用的穩定版!
久違的新酷音輸入法 Windows 版本又回來了,歡迎大家下載使用。

基本上已可取代原先 TSF 版的大部分功能,操作上差異不大。
本次改版重點:
1. 中英文全半形切換 bug修正
2. 偵測變更正確重新載入設定
3. IPC 安全性修正
4. 改進安裝程式,更穩固正確
5. 支援語言列圖示
6. 修正部份記憶體沒有正確釋放問題


程式碼主要由 python 和 javascript 寫成,註解很多,容易閱讀
歡迎有興趣的朋友下載研究,加入開發或改進的行列!

2016年2月7日 星期日

PIME 輸入法架構 + 新酷音輸入法 v0.05

新酷音輸入法 for Windows 有新版本了 ,但這次沒有新功能,而是移植到了新的輸入法平台 PIME,改為用 Python 語言開發,並且換成 server/client 架構。經過連日開發,終於達到接近日常可用的狀態。(但很多細部功能和設定還沒有效果)

PIME 輸入法安裝程式,預設將會安裝新酷音輸入法的模組。
在此可以下載最新的 PIME v0.05: https://github.com/EasyIME/PIME/releases/download/v0.05/PIME-0.05-setup.exe



 

本次並內建了新的新酷音輸入法設定工具 。對使用者來說沒有顯著的差別,並沒有新功能 (甚至部份功能還沒完成),但是這個工具完全是使用 HTML + JavaScript 撰寫。(但讀寫設定檔的部份,無法用標準 JavaScript 達成,不得已用了一點微軟特有的 ActiveX 元件搭配)

很多朋友應該覺得奇怪,先前我移植了新酷音輸入法到 TSF 架構之後,為何遲遲沒有繼續開發。一方面當然是因為時間不太夠,但另一方面則是發展重心移動到 PIME 平台去了。
對使用者來說,這樣的重寫意義不大,畢竟功能沒有改善。但對於開發者來說,這是意義相當重大的改變。過往開發 Windows 輸入法的門檻很高,需要 C++ 和 COM  的技術,還要了解很多低階的系統細節,但藉由 PIME 的包裝,撰寫輸入法模組的開發者,只需要會寫 Python 即可,不需要了解 Windows TSF 底層細節,大大降低一般開發者加入維護的門檻。
設定工具改用 JavaScript 和 HTML 重寫也是一樣的原因,降低開發的門檻。
而改為 server/client 架構可以增進穩定性,也讓除錯和開發變得快速許多。現在看不到顯著的好處,但是對於未來長遠的維護和開發,這樣的架構是大大有利。

新年新氣象,就是要用新架構,開發新軟體!
祝大家新年快樂!

PIME 系統架構介紹:https://github.com/EasyIME/PIME/blob/master/HACKING.txt
開發輸入法模組範例:https://github.com/EasyIME/PIME/tree/master/server/input_methods/meow

(p.s. 吃自己的狗食:本文在 Windows 10 系統下,使用 PIME 版的新酷音撰寫完成。)

2016年2月1日 星期一

PIME Windows 輸入法平台釋出 v0.03

先前曾經有在 COSCUP 2015 演講過我開發的 PIME 輸入法平台,但隨後沉寂了一陣子。這兩天有空,終於重新整理了架構,出了新的版本,並且提供了全新的安裝程式,裝好即可使用。
https://github.com/EasyIME/PIME/releases/download/v0.03/PIME-0.03-setup.exe

有興趣研究細節的朋友,這裡有程式碼:
https://github.com/EasyIME/PIME

還新增了一份 Hacking guide 解說了程式的架構跟目錄結構:
https://github.com/EasyIME/PIME/blob/master/HACKING.txt 


 PIME 是在 Windows上使用 Python 3 開發 TSF 中文輸入法的平台,目前支援到 Windows 10,並且能支援 Windows app container (Metro mode)。可以讓開發者在不了解系統細節的情況下,單純使用 Python 就能實作支援 Windows 的輸入法模組。

本次重要修改如下:
  • 安裝程式自帶一份 python 3.5 (32-bit) 環境,不需要使用者手動安裝 python,也不影響系統上已有的其他 python 版本,不須考慮 32/64-bit 混合使用問題。
  • 將 Win32 API 相關的操作全部從 python code 中移除,改用 C++ 的模組封裝在 libpipe 內。這有兩個巨大的好處
    • 不再需要安裝 pywin32 模組
    • 若要移植 PIME 架構到其他語言 (例如 Node.js),可直接用 ffi 載入 libpipe 來處理系統底層的部分,而不用自己撰寫,使得移植變得可能而且相當簡單。
  • 改進安裝程式,正確啟動 server,安裝完即可直接開始使用
 想測試的朋友 (尤其輸入法開發者),歡迎按此下載安裝程式:
https://github.com/EasyIME/PIME/releases/download/v0.03/PIME-0.03-setup.exe

理論上,使用 github 上釋出的程式碼可以完全重新編譯整個套件,但因為有不少元件,不但都要放到正確的位置,還要使用指令分別手動註冊輸入法模組,很難全部手動正確設定強烈建議使用包好的安裝程式,裝好了再把你想修改的檔案換掉即可。