JeffHung.Blog

(My smile insists of having nose. :-)

(還不是真的) Android 中文注音輸入法

Android 甫推出,就受到極大的矚目,尤其是 Google 還辦了一個 Android Developer Challenge 的計畫,拿出一千萬美元的獎金,獎勵在 Android 平台上的好 idea。
我簡單地瀏覽了一下 Android 的 API,發現在上面寫 AP 實在是簡單到不行。可能學過 java 幾個月的大學生,都有辦法寫出不錯的 application。好用的 API 實在是平台興盛的要素之一啊。
然後我就不小心寫出了個(還不是真的) Android 中文注音輸入法來。這實在是因為 Android 已經準備好了一個 TextInputMethod 的 class,只要繼承之,實作出自己的 keys to input 的轉換規則,然後要用的地方再 setInputMethod() 或於其 layout xml 裡設定一下 android:inputMethod,一切就搞定了。
不過,由於我還找不到,怎樣讓這個輸入法,能夠在任何不是自己寫的程式裡開啟。在不能夠 globally activable 的情況下,還只能算是個「還不是真的」輸入法。這個問題,是目前最需要被解決的問題。
除了不能 globally activable 之外,我本來想要把輸入法表格先匯入 SQLite 資料庫裡,然後於輸入時查詢對應。一來能夠享用 SQLite 的快速查詢能力,二來 SQLite 也是 Android 官方的資料儲存方式。不過,資料庫都建好了,也用 adb push 放在文件說的標準位置,也直接用 [...]

Obtaining java env vars from javavmwrapper

JRE 有很多版本,也有很多廠商出,因此,FreeBSD 有提供一個 ports 叫做 java/javavmwrapper,是一組 shell script,會自動依據設定,從安裝於系統中的眾多 JRE 中,選擇最新或最適當的 JVM,設定環境變數後,執行 java 程式。java/javavmwrapper 安裝的主 script 叫 javavm,後面以此稱之。
然而,有些用 Java 寫的重量級套件,會附上完整的啟動 script,自動進行相關的設定,如 CLASSPATH 等。而這些啟動 script,其實並不懂怎麼使用 javavm,因此需要人工設定如 JAVA_HOME 等環境變數。也就是說,要用這些 script,我們就沒辦法利用 javavm 聰明的功能,來幫我們管理 JVMs。
還好,UNIX 系統的強項,就是方便的指令組合功能。如果 JAVAVM_DRYRUN 環境變數存在的話,javavm 就不會真的執行 JVM,而是將相關的環境變數印出來。透過這個機制,我們就可以重用 javavm 的聰明管理機制。如下:
env `env JAVAVM_DRYRUN=yes java | xargs echo` bin/startup.sh
在 FreeBSD 裡,裝了 java/javavmwrapper 以後,/usr/local/bin/java 其實會指到 javavm,自動幫我們選擇 JVM,因此上面的指令我們可以直接使用 java 呼叫。利用 env,我們讓 javavm [...]

SVN Team Provider and Subversive (not completed)

Eclipse 已經是個非常成功的 open source 軟體開發平台,其涵蓋的範圍,不僅包括了 Java development,亦在 embedded development[1] 開花結果,成為許多 platform 的預設開發環境。作為一個完整的開發平台,在這樣子的成功之下,隨之而來的,便是 team development 的需求,尤其是與最近鋒頭最健的 Subversion 整合,更是擁有超過 100 votes,名列 top 5 的 feature request。因此,SVN Team Provider 這個 project,便出現了,目前處於 proposal / gathering community 的階段。
在以往,我們若要在 Eclipse 裡使用 Subversion,通常需要安裝 Subclipse 這個 plug-in。Subclipse 解決了在 Eclipse 連結 Subversion native libraries 的技術問題,不過,其與 Eclipse 的整合程度,只能算是初級,人心總是不足的,總是希冀能有更強大、更徹底的整合。因此,SoftLanding Systems、CollabNet[2]、TMate[3] 以及其他重量人士如 Karl Fogel 等,並結合與 team development [...]

Doxygen syntax coloring in Vim

Vim 的 syntax coloring 功能強大,讓人愛不釋手;而 doxygen 的出現,讓 C、C++ 甚至 Perl,也都能有像 Javadoc 那樣的 in-code documentation solution。如果能夠兩者結合,如許多 Java IDE 在 editor 裡對 Javadoc 的支援那樣[1],連 comment 裡的文件內容,都能夠把 syntax coloring 弄得漂漂亮亮的,那就更棒了。
剛剛在逛 doxygen 網站,被我發現這個 script:《DoxyGen Syntax : DoxyGen Highlighting on top of c/c++/java》。簡單說,就是能夠在原本 Vim 對 C/C++/Java/... 的 syntax coloring 的基礎上,再增加對註解裡 doxygen 文件內容的 syntax coloring。於是趕緊抓下來試試。
網頁上的安裝方法比較複雜,我試了幾次沒有成功。所以就研究了一下 Vim 的 online document,發現 *mysyntaxfile-add* 這一節這麼說道:

If [...]

Borland 要賣掉他的 Windows/Java 開發工具了

從反微軟資訊新聞的這篇《要付費的軟體發展工具即將成為歷史?》看到的消息,原始來源是 The Register 的這篇《Borland rides Segue on trip out of IDE biz》:Borland 要賣掉他的 Windows/Java 開發工具了,改行搞 software performance 了。
真是令人惋惜但不意外的消息。因業務挫敗導致政策的搖擺,繼而導致產品品質的不穩定,再加上一向秉持的封閉軟體特性,當沒有夠成熟的開放軟體與之競爭的時候,還可以叱吒一時,但若是人們有得選擇時,天平就會擺到不會被綑綁的開放軟體的那邊。

Language-based security for mobile code, with applications to smart cards

在 Lambda the Ultimate - The Programming Languages Weblog 裡看到這篇《Language-based security for mobile code, with applications to smart cards》,裡面介紹一篇 TECS Week 2005 的 lecture:《Language-based security for mobile code with applications to smart cards》。有在做 mobile code 或 agent 的人,都值得看一看。稍微作一下筆記:
Language-based security (model) for mobile code:

The sandbox model (how to execute untrusted code securely)
Access control in API (Java [...]

BSD-style license Wonka JVM

URL: https://opensource.luminis.net/confluence/display/WONKA/Home
某個學長告知的。記錄一下。我把幾個重點弄成 bold 了。

Wonka is a cleanroom Virtual Machine for the Java(tm) language, originally developed by telematics specialists ACUNIA. It is extremely portable and self-contained, and can optionally be used with its own real-time executive (OSwald(tm)) to provide a complete solution for embedded devices. The Wonka Virtual Machine is fully Java2(tm) compatible and the Wonka [...]