2006年11月18日星期六

UTF-8 Traditional-Simplified Chinese conversion (3) - 繁簡互轉 (三)

Mark 似乎對這支程式有興趣。

既然這樣,我就把程式丟出來好了。請把檔案抓回去,改檔名成 cgi,然後按照檔案裡面的說明安裝。

請享用:

zh_XX.UTF-8.txt

2006年11月13日星期一

UTF-8 Traditional-Simplified Chinese conversion (cont.) - 繁簡互轉 (續)

上次 提到利用 mod_rewrite 搭配 mod_proxy 的設定,在完全不碰原網站的程式和資料的情況下,達到 server-side 的繁簡互轉。這樣的設定雖然簡便,但是有不小的缺點。

假設繁體中文原網站 A1,簡體中文分身網站 A2,轉碼程式放在 B。整個資料傳遞的流程會變成:

  1. 使用者對網站 A2 發出查詢

  2. 網站 A2 將此查詢用 mod_proxy 轉給一支放在網站 B 的轉碼程式

  3. 網站 B 收到查詢以後,模擬原使用者的行為,對網站 A1 發出一個相同的查詢,拿到原本使用者會取得的頁面資料

  4. 此轉碼程式將頁面的繁體中文轉為簡體中文

  5. 把轉碼的結果傳回給網站 A2

  6. 網站 A2 把頁面傳回給使用者


因此原本的一個查詢,實際上將產生兩個(轉碼程式放在不同網站)甚至三個(轉碼程式放在同一網站)的資料查詢量,另外由於 cookie 沒辦法傳遞到轉碼程式發出的查詢中,所以顯示的資料可能有誤。

因此,今天嘗試了另一種解法:使用 mod_filter。它可以在整個流程的最後,等所有的資料都處理完,準備要把結果傳回給使用者之前,呼叫另一支程式來處理即將要輸出的結果。因此轉碼的動作可以在一個查詢裡面完成。至於原本的轉碼程式,只要稍做修改,把原有吃 CGI 的參數,改成吃 STDIN 即可。

因此現在的 Leeym's Blog 簡體中文版 就是套用這個系統啦~~~

2006年11月12日星期日

LiveHTTPHeaders version 0.13.1 is available!

LiveHTTPHeaders version 0.13.1 is available!

千呼萬喚使出來,livehttpheaders 終於出了相容於 Firefox 2.0 的 0.13.1 版。想不到這一陣子估狗上搜尋 livehttpheaders firefox 2.0,排行第一的竟然就是我之前提到的那篇 (Unofficial) livehttpheaders 0.12.1 for Firefox 2.0

後來仔細翻了翻,發現像這樣的還不只我一個,例如 ,還有 都做了一樣的事情。

無論如何,官方版總算是正式發行了,所以這些非官方版就可以功成身退啦。

2006年11月11日星期六

PHP: XML to JSON v2 轉換程式 (xml2json)

Tsung 那裡看到了一篇 PHP: XML to JSON 轉換程式(xml2json),簡單的 XML 還正常,但是在一些比較複雜的情況下,就會出現有問題的輸出格式。

這個週末花了一點時間了解 JSON 的格式,然後改寫了 Tsung 的 xml2json,讓它也正確的處理陣列,以及屬性 (attribute)、 文字 (text),還有子元素 (element)交互出現的情形。寫好的程式放在 Tsung 的網站上,請到 這裡 下載。

2006年11月6日星期一

UTF-8 Traditional-Simplified Chinese conversion - 繁簡互轉

下午看到 simon 提到 台灣Adsense小組回覆現在投放廣告在繁中網站是違反規定,所以我就先把 AdSense for content 給拿掉了。

後來想了想,既然已經是 UTF-8 了,所謂的繁體中文和簡體中文,就應該只是字元對應的問題而非編碼的問題,例如 這樣 => 这样、或者 網頁 => 网页,於是就去 Unicode.org 找了一份對照表,寫了一個轉換的工具,然後利用 mod_rewrite 即時轉換:

這樣轉換的好處是完全不用修改原始網站的東西,包括內容、程式和模版,唯一更動的設定是新增一個 DNS entry,並且在 apache 的設定檔裡面設定這個網址的轉址路徑,剩下的工作就交給轉換工具來執行。

因為簡體中文版存在的目的只是為了瀏覽,所以只支援 GET 而不支援 POST。還有,這是中文字一對一的轉換,所以短期內不會出現詞彙的轉換功能,例如把雷射印表機換成激光打印機這種。

本篇是 Server-side 的繁簡互轉,如果想嘗試 Client-side 的繁簡互轉請參考 Mark 的 "在 UTF8 編碼下的網頁簡繁互轉"

2006年11月5日星期日

Major League Baseball (MLB) Top Plays

這個週末,把以前抓的美國大聯盟的精彩好球整理一下,弄了一個 MLB Top Plays,然後花了一點時間套上標籤雲,掛上 RSS,看起來還不錯。

目前收錄的精彩好球大約是 2005 年暑假開始到現在的,有空的話再把以前的精彩好球都補上。

2006年11月1日星期三

(Inofficial) livehttpheaders 0.12.1 for Firefox 2.0

自從升級到 Firefox 2.0 之後,部分 plugins 就不能用了。而 livehttpheaders 就是其中之一。

這個 plugin 對於網站開發者而言非常實用,可以有效的檢查瀏覽器和伺服器之間的溝通行為。只是作者不知道是不是沒空還是懶得理會 livehttpheaders,一直到現在都沒有更新。既然這樣,那就自己動手吧。參考 livehttpheaders 的 Source Code 這一頁,在自己的開發目錄下執行:(密碼是 guest)

cvs -d :pserver:guest@mozdev.org:/cvs login
cvs -d :pserver:guest@mozdev.org:/cvs co livehttpheaders


我就拿到了一份 livehttpheaders 的原始碼。

看了一下原始碼,似乎沒有什麼特定版本的限制問題,於是就更新了 src/install.jssrc/install.rdf 這兩個檔案,把版本升級成 0.12.1 並且支援 2.0+:

Index: src/install.js
==============================================================
RCS file: /cvs/livehttpheaders/src/install.js,v
retrieving revision 1.12
diff -u -r1.12 install.js
--- src/install.js 16 Feb 2006 14:40:19 -0000 1.12
+++ src/install.js 1 Nov 2006 23:09:19 -0000
@@ -1,7 +1,7 @@
const X_MSG = "Install Live HTTP Header";
const X_NAME = "/livehttpheaders";
const X_NAME_COM = "/livehttpheaders_com";
-const X_VER = "0.12";
+const X_VER = "0.12.1";
const X_JAR_FILE = "livehttpheaders.jar";
const X_COM_FILE = "nsHeaderInfo.js";

Index: src/install.rdf
==============================================================
RCS file: /cvs/livehttpheaders/src/install.rdf,v
retrieving revision 1.6
diff -u -r1.6 install.rdf
--- src/install.rdf 16 Feb 2006 17:05:00 -0000 1.6
+++ src/install.rdf 1 Nov 2006 23:09:20 -0000
@@ -13,7 +13,7 @@
<Description>
<em>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em>
<em>0.8</em>
- <em>1.5+</em>
+ <em>2.0+</em>
</Description>
</em>


於是乎就產生了非正式版的 (inofficial) livehttpheaders 0.12.1 for Firefox 2.0