2007年11月12日 星期一

觀戰有感

前一陣子 MozTW討論版戰事不斷,我對此有一些看法,故利用一些時間寫了這篇文章。

----------

聲明:這篇文章,不是寫給小白的。小白應該看看〈提問的智慧 〉。還有,當有兩個(或以上)人說您是小白,請接受事實,面對自己,再細讀〈提問的智慧 〉。

----------

文章開始前,我先引用一段話:
First they came...

When the Nazis came for the communists,
I remained silent;
I was not a communist.

When they locked up the social democrats,
I remained silent;
I was not a social democrat.

When they came for the trade unionists,
I did not speak out;
I was not a trade unionist.

When they came for the Jews,
I remained silent;
I wasn't a Jew.

When they came for me,
THERE WAS NO ONE LEFT TO SPEAK OUT.

-- by Martin Niemöller
這是德國詩人 Martin Niemöller 寫的一首詩,說明了:如果因為事不關己,就不採取行動,到時侯,當您是當事人的時侯,也不會有人為您說話。
(註:我只想強調 THERE WAS NO ONE LEFT TO SPEAK OUT,並無影射他人是納粹之意)

我想,事情的導火線就是某位網友因為各種理由,不斷惹惱許多前輩,連一些前來調解的前輩也被該網友點名,實在是讓人哭笑不得。而最近,擦槍走火,出現了趕人公投,正是我寫這篇文章的原因。

我的立場明確:我反對。(不過我沒有去投票,因為我認為這種票選根本不該舉行)


我想,一個理想、正常的民主社會,他們的公投一定有不能做的事。例如:您不能公投,要求郭台銘將其財產的一半捐出;您不能公投,要求處死某人;您不能公投,注銷某人的國藉
國家是一個「擁有合法使用暴力的壟斷地位」的實體。
-- by Max Weber
我想,討論區也是一樣,管理員應該是刪除帳號權利的壟斷者。我認為,同是一個社群,除了管理員,誰也沒有趕人的權利。縱使那名網友再怎麼糟糕、無理,只要管理員不作為,他就有權利繼續留在這個社群。


再者,我必須說:一個巴掌打不響。MozTW 之所以會烽火連天,絕對不是該名網友一個人就能造成的。請想想,在該名網友發表(令人無言的)文章之後,您有沒有回文,您有沒有對罵?請再想想,您有沒有企圖以影射的方式嘲笑他?如果有,其實您也沒有立場罵該名網友。
你們中間誰是沒有罪的,誰就可以先拿石頭打她
-- by Jesus, 《約翰福音》第八章

我認為,如果您看到一些令您感到不快的文章,請不要回文,讓該篇文章沉入大海。請記得,回文就好比手動置頂,只會令更多人看到那篇文章,讓更多人不爽。如果該文章有違反法律或版規,我相信版主會處理。如果您真的忍不住,也請以回一篇文章為限,用辭以柔性規勸為主,不要陷入戰局。因為一但陷入戰局,情況很容易失控、擦槍走火。


願 MozTW 討論區和平之日長長久久!

_____hobbyscripter

2007年8月17日 星期五

[嘴泡] 論中文編碼 1

網路上這一類的文章已經很多了,不過我還是很想再桶一刀。

現在仍有不少人深受不良中文內碼的荼毒,其中,最讓人想要公幹的就是 BIG 5,它之所以最為人所公幹,只是因為它是最廣為流傳的爛編碼。因為種種無聊的因素──例如:有人想要在歷史上留名﹝即使是臭名也無坊﹞,讓這一個差勁的編碼,在中文電腦世界稱霸多年。

有些人也許會說 BIG 5 當時設計時,根本沒有考慮這麼多,它的設計者很務實,抱持「先求有、後求好」的心態,所以有很多問題﹝例如:和 ASCII 衝碼﹞是當初沒考慮到的。

但這根本是鬼扯

早在 BIG 5 之前,就早已存在著 CCCII 這一個相當先進的編碼,尤其它的特殊的編碼方式,使得異體字之間可以保有一定的關係,這是連現在大多數的編碼都做不到的。

就結論來說,BIG 5 是垃圾!它之所以稱霸天下,只是因為一些政治因素。

如果說 BIG 5 是垃圾,則 Unicode 中日韓表意文字區就是一個垃圾堆!完全繼承 BIG 5 隨意收字,隨意排字的特點。Unicode 是怎麼確立「一丨亅丿丶」這幾個字的先後順序的?我真的很想知道。有些人說,等到所有程式改用 Unicode 中文處理就不再是問題了。我想,這最多也只能拖一點時間擺了!

但很可惜的是根據謝清俊教授的說法,自從張仲陶教授去逝之後,CCCII 便不再維護了,甚為可惜!

﹝未完,待續﹞

__________h.s.

2007年7月28日 星期六

[練習] Security Wipe -- 檔案安全刪除

這個程式(Security Wipe)是為了 Feuerfuchs Portable Wir 所作的準備,目的是在練習如何安全的刪除檔案,使得邏輯層面的救援軟體,無法還原出原來的檔案。

這個程式,大部分都是使用標準函式庫,只有在刪除檔案的系統呼叫,使用了 Windows API。所以應該可以很容易的移植到各個平台。

這個程式的工作原理是透過不斷重複寫入無意義的資料來達到抹除資料的目的。它首先會將資料做一次「反轉」的工作(Logical Not,~)。然後,依序填入 0x00 與 0xFF 這兩個字元。最後在填入亂數若干次。

目前使用 R-Studio 與 FinalData 是還原不出來的。(可以看到檔案,可以還原,但是還原出來的都是亂碼)

目前設計上還是有一些小瑕疵,所以要正常使用這個程式的話,您的記憶體 (RAM) + 虛擬記憶體(Swap) 要夠大才行。

您可以在下面的連結下載到檔案: 下載 (hosted by Live-Share.com)

Regards,
__________h.s.

P.S.
  1. 這個程式仍在發展中,如果有需要在測試以外的用途使用,我會建議您改用 Eraser
  2. Security Wipe 是我的獨立創作,以 BSD 授權,歡迎大家使用,惟不為使用本程式產生的任何後果做保證。

2007年7月23日 星期一

[嘴泡] Feuerfuchs Portable 重寫版本的計畫

繼續潛水,繼續嘴泡 ing....

新的 Feuerfuchs Portable Launcher 的開發代號: Wir
(如果不是方案三勝出的話,才有這個計畫)

預計會有以下功能:
  • GUI-Toolkit: wxWidgetsFLTK
  • File-System-Library: wxWidgets 或 自己來
  • RDF-Parser
  • 中文路徑(Firefox 1.0.x 的支援未定、Mozilla Calendar 支援確定取消)
  • 增加一個 Feuerfuchs Portable 工具列
  • 提供強制關閉 firefox.exe 的功能(避免尚未關閉完全)
  • 可以使用「精靈」來配置 Feuerfuchs Portable
  • 使用 Binary Based 的設定檔規格(加快啟動速度)
  • FeuerfuchsPortable.ini 仍會向下相容
  • 提供「複製到硬碟」然後「打包、存回隨身碟」的功能
  • 提供資料安全刪除(未定)
  • 很有可能會用 UPX 壓縮
  • 多國語言支援
至於授權方面,
我很想用 BSD,
新的軟體的所有程式碼,
我會自己獨立創作,
不過因為我不是在 Cleanroom (我曾經改寫過 Firefox Portable Launcher)所以我不知道可不可以不用 GPL。(煩惱 ing...)

Regards,
__________h.s.

2007年5月18日 星期五

Open JDK Avaiable

Sun 把 Java VM 開放出來了。您可以在 OpenJDK 網站中找到所有開放出來的程式碼。

其中好像有和 Java Applet 有關的程式碼。
可是卻找不到和 Netspace Plug-in API 有關係的程式碼,
是我太笨了嗎?

還是是屬於「Sun 沒有權限開放的程式碼」?

(BTW, 那幾個和 Java Applet 有關的檔案,我也都看不懂,想要 Movable JavaVM with Firefox,看來還是需要高手出馬)

(ps. 看頂尖高手寫的程式碼,真得會有自卑感,咳!)


__________h.s.

2007年4月8日 星期日

我該不會夢遊把您的私人訊息刪了吧!

我該不會夢遊把您的私人訊息刪了吧!我看著 MozTW 論壇 的私人訊息收件夾,並不斷的這麼想著!
今天,我去 Gmail 收信,發現 2007.04.07 也就是前天,我有一封私人訊息。我前往 MozTW 論壇 的私人訊息收件夾收信,結果我發現最新的一則訊息是 2007.01.26 收到的「已收信件」。於是我開始擔心了!會不會是我昨天太累,趴在電腦桌上睡覺時,忽然跳起來,夢遊

不會吧,我想。不過因為我確實有「夢遊」的前例,所以如果您於 2007.04.07 有發私人訊息給我的話,拜託,請再發給我一次 (表情符號: <O>),謝謝!

還有,如果您是主動刪除的話,請來信通知一下,謝謝囉!

Regards,
__________h.s.

2007年2月22日 星期四

Firefox Portable + JVM Movable 可行性分析

  • 聲明 1: 為何本文使用 JVM Movable 而非 Java Portable?因為 Java 本身是一個可移植 (Portable) 的語言,而不是指 SUN JRE(JVM)。
  • 聲明 2: Mozilla, Firefox 為 Mozilla Fund./Co. 的註冊商標;Firefox Portable, OpenOffice.org Portable, PortableApps 為 John T. Haller 的註冊商標;SUN, Java 為 SUN Co. 的註冊商標。謹此聲明。

在拜讀 某A 前輩的文章: OpenOffice.org Portable 非公式正體中文版: OO.o Portable 2.1 Pre-Release 的新功能 後,發現 JRE(JVM) 竟然是可攜帶的!驚喜之餘,聯想到了這篇文章: Portable Firefox問題 (請問可否不用在電腦安裝 java 而執行 java 元件呢?)。到底 Firefox Portable + JVM Movable 可不可行?

若是以前,我會回答很「官方」的答案: 不行。(參: Firefox Portable: Known Issues,因為要更動很多 registry) 。

當然,透過「暫時寫入、事後抹除」技巧,的確能模擬出 Sun JRE(JVM) 已經安裝過的狀態,但是: 風險過大,搞不好,可能影響到原有的 Sun JRE(JVM) ;而且,我們可能需要 admin 權限。然而對於許多 Firefox/Feuerfuchs Portable 使用者而言,是不可能有 admin 權限。

所以到目前為止 (2007/2/22),
「官方」的答案是: 不行。
但現在,我的答案好像不這麼肯定了。

那 OpenOffice.org Portable + JVM Movable 是怎麼做到的?在讀到該分消息,震驚之餘,我去下載了 OpenOffice.org Portable (Beta),閱讀其中程式碼,發現: 能這樣做,是因為
OpenOffice.org 設計「良好」,只要將 JRE(JVM) 放置的目錄提供給 OpenOffice.org,剩下的交給 OpenOffice.org 處理。

然而,Mozilla Firefox 卻不同!

Mozilla Firefox 使用的是 SUN JRE(JVM) 提供的 Java Plug-in。Mozilla Firefox 的工作僅止於找出 SUN Java Plug-in,剩下的,讓 SUN Java Plug-in 去弄。而 SUN Java Plug-in
似乎是利用 Registry 來尋找 JRE(JVM) 所放置的目錄。

這下問題,又回到原點了: Registry Hack!
有解決方法嗎?
目前,最有可能的方法是: 重新實做 Java Plug-in。
可能嗎?

很有可能,至少一開始,我是這樣認為的!

障礙列表:
  1. Mozilla Firefox 去找電腦中已經安裝的 Java Plug-in,造成衝突。
  2. 重新實做 Java Plug-in
其中第一點,很容易就可以克服: [MozillaZine: Plugin scanning]。只要把 plugin.scan.SunJRE 值設為 100000,如此一來 JRE(JVM) 至少要出到第 100000 版才有可能會產生衝突。然而第二點,就不是哪麼容易了。

先談談 Mozilla Firefox 的 JVM Framework。您可以在下面的列表找的相關資料:
  1. Open JVM Integration (Mozilla Project)
  2. OJI之介紹與實作 (.doc) by 陳正哲
再看看 SUN 對於 Open JVM Integration 的「看法」:
Since Netscape 7 has been widely adopted, we decided to stop building OJI plugin for Netscape 6.x in JDK release.
所以,顯然的,上面的兩篇有點舊,其使用的介面可能與 JVM 最新版本不太一樣。

再談談 SUN Java Plug-in 的相關資料:
  1. README: JDK Builds
  2. JDK 7 Documentation: Deployment: Java Plug-in
全都沒有講到和 Java Plug-in 怎麼和 JVM 運作(至少我都看不太出來)。
到目前為止,可以用的資料,好像只有「稍舊」的 OJI。

我又把腦筋動到 Java 的「開放原始碼」
而我從 OpenJDKMailing List Archive 中找到這一封信
信上說 Java Plug-in 的原始碼尚未於 OpenJDK 計畫中公佈,
但我也得知: 可以在 JDK 6 的原始碼中找到
Windows 版本的 Java Plug-in。
(但我不知道從何找起)
而這句話又讓我想起,README: JDK Builds 的一句話:
NOTE: The Java Plug-in product for Windows cannot be built from the Community Source Release.
看到之後,心就涼了一半。
只好期待 SUN 最後還是會把 Java Plug-in 加入到 OpenJDK 計畫中。

不過,除了 SUN 的 Java Plug-in 以外,我還看到了一個東西: gcjwebplugin。這個計畫目前已經被整並到 GNU Classpath 計畫。目標是製作一個 Java Plug-in。雖然我看不太懂程式碼,不過
好像和 JVM 的種類無關,也許可以從中取得靈感以及相關的介面。

如果有前輩,能重新實做 Java Plug-in 或者 SUN 釋出 Java Plug-in 再略加改寫 (改成以其他方式取得 JRE(JVM) 的位置) ,應該就可以達成 Firefox/Feuerfuchs Portable + JVM Movable。

__________h.s.

後記:
這個議題好像蠻常被提起,而我也蠻有興趣的 (雖然我不使用 Java Applet,而且目前沒有能力) ,所以略加紀錄。希望能供有興趣的前輩參考。

2007年2月15日 星期四

我的潛水宣言

這些日子以來,非常謝謝各位前輩的支持與照顧。 因為下個學期,我有兩個很重要的事件,使我可能無法空出很多時間於維護我寫得軟體上面。而下下學期,又因為「大學入學考試」的壓力,也可能無法投入過多時間於 Feuerfuchs Portable 還有 Feuerfuchs Addons Installer Class。

我大概會從這個星期五(2007/02/16),浮潛到明年的暑假吧(當然,運氣好的話,會提前結束)。期間,我應該不會再維護 Feuerfuchs Portable 還有 Feuerfuchs Addons Installer Class。當然,若是有重大事件,或者是 Feuerfuchs Portable 相關的討論,我偶爾會浮出水面,但是也僅只於「出一張嘴」而已,這點就先向大家道歉了。

以下是我打算在「潛水」之前做好的事:
  1. 改寫「Portable Firefox 使用、自訂與中文化」把他重新定向為「Firefox Portable 指南」。一方面事為了正名 XD ,另一方面想要把所有名詞更新到最新(eg. Portable Firefox -> Firefox Portable, Portable Firefox CE -> Feuerfuchs Portable) [STATE: 完成]
  2. 重新整理「[PFx] Feuerfuchs Portable Launcher (1.2.1.1) - 壓縮檔」 [STATE: 完成]
  3. 發佈「Feuerfuchs Addons Installer Class」 [STATE: 完成]
Regards,
__________h.s.

Feuerfuchs Addons Installer Class 完成

總算把所有程式碼完成了,而程式碼將在近期於 MozTW 討論版 公佈。

目前有的功能:
  • 讓想要打包 Firefox(R) PowerPack/LitePack/AddonsPack 的人,可以輕鬆的製作一個品質不錯的安裝程式
  • 不太好的多國語言支援
  • 內建 Firefox(R) 執行狀待偵測
  • 內建「個人設定檔」偵測
  • 內建「Firefox(R) 主程式」偵測
  • 含相依性處理設計
  • 可以任意群組部份附加元件
目前測試過的主程式為 Firefox(R) 2.0.0.1。
不果理論上 Firefox(R) 1.5 以上,甚至 ThunderBird(TM), Flock(TM) 都可能可以正常運作。

Regards,
__________h.s.

2007年2月13日 星期二

Feuerfuchs Addons Installer 預設的圖示

Feuerfuchs Addons Installer 預設的圖示,
延續 Feuerfuchs Portable 的圖示與風格,
使用了相當多互補色,
如下圖。





Regards,
__________h.s.

2007年1月31日 星期三

歡迎來到 hello, hobbyscripter's world

歡迎來到「hello, hobbyscritper's world」

這個 Blog 會不定期地放出以下我手上既有的專案的相關訊息。
Regards,
hs