2007年7月25日 星期三

解決 Ubuntu 上 Google BrowserSync 等套件的使用問題

Ubuntu 上的 firefox 每次只要一昇級,包括 Google BrowserSync 在內的幾個 extension 就不能用了,其餘有受到影響的套件至少包括了 ColorZillaGmail Manager 。症狀就如下圖所示。
問題發生後,Google Browser Sync 立刻連按都不能按。如果按照 Windows 邏輯進行刪除重灌的話,也沒有用。Gmail Manager 則是原先設定的帳號全部消失,想再重新設定,卻會發生不能儲存的情況。Orz ......

經過一番研究,最後終於了解到,原來 firefox 有一些附帶的 library 在 Ubuntu 的安裝中,是有問題的。最近這幾次的更新,Ubuntu 的 release team 似乎也沒有解決這個問題,於是有些人的 extension 由好變壞,或是壞的始終如一 ......

解決方案有二:

置換這些有問題的 library
1. 到 www.mozilla.com 去下載正式的 firefox 套件,大家是用繁中的 firefox 要稍稍注意一下,別下錯了。
2. 把下載好的套件解壓到 /tmp 或其他目錄。
3. 將 firefox/libxpcom* 等 library 複製到 firefox 的安裝目錄,sudo cp /tmp/firefox/libxpcom* /usr/lib/firefox/。
4. 在工具 > 附加元件中將 Google BrowserSync,Gmail Manager,ColorZilla 等套件停用。網路上有些人說必需要移除重新安裝,不過我的經驗是只要停用就可以了。
5. 關掉 firefox 後重新起動。
6. 將上述附加元件重新啟用。
7. 再次重新起動 firefox。

改用自行安裝的 firefox
其實 firefox 用自行安裝的,也不失為一個徹底的解決方案。事實上在 ColorZilla 的首頁,他們根本就建議直接用這個方法。在我的看法中,由於 firefox 本身也具有很好的自動 update 機制,使用 Ubuntu 的更新似乎效用有限。因此,我個人也是推薦採用此一方案。

1. 到 www.mozilla.com 去下載正式的 firefox 套件,在此假設下載後的檔案是在 /tmp,檔名為firefox-2.0.0.5.tar.gz。
2. 將 firefox 解到 /usr/local 下面,sudo tar zxvf /tmp/firefox-2.0.0.5.tar.gz。
3. 符合 *nix 習慣,將執行檔 link 到 /usr/local/bin,sudo ln -s /usr/local/firefox/firefox* /usr/local/bin
4. 將檔案權限稍作設定,以便利之後的程式更新。sudo chown -R :admin /usr/local/firefox,sudo chmod -R g+w /usr/local/firefox
5. 如果 firefox 目前是開著,建議先關掉。
5. 移除系統內原先安裝的 firefox,sudo apt-get remove firefox
6. 重新設定 firefox 在應用程式功能表中的執行路徑和圖示。程式執行路徑在/usr/local/bin/firefox,圖示則是在/usr/local/firefox 下面,有 4 個圖示可資選擇。

重新安裝後,各個附加元件也無需重新安裝,可以直接使用,不用擔心。

2007年7月9日 星期一

WTP 的中文注意事項

tomcat 5 的中文處理方式有一個比較 Tricky 的地方,post 跟 get 處理時的作法不盡相同。

get 因為被視為 URI 的一環,在處理上與 post (資料 的一環)有不同的作法,在某一個程度上是可以令人理解的。不過,在實際應用上,許多 ajax 的 framework 大量的利用 get 的作法執行 client / server 間的溝通。因此,tomcat 這樣的設定,實務上,的確在許多的場合製造了困擾。

在一般的 tomcat 5 的 installation,我們可以直接修改 conf/server.xml 中的 Connector,為它添加上 URIEncoding="UTF-8" 這樣的一個 attribute。(要修改哪個 Connector 視實際應用而定)但是在 WTP 中,問題又更為複雜。

WTP 在設定上,雖然需要指定 tomcat 5.5 的安裝路徑。但在執行時 WTP 卻會依 eclipse 中的設定,自行產生 server.xml context.xml 等等各式的設定檔,所以追著 WTP 的路徑,去 ~/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf/server.xml 中修改設定,是沒有用的。我們要作的是,要找出 WTP 產生這些設定檔的來源。

我一開始認為,這可能是利用 UI 管理介面可以設定的事,不過找了好一陣子,實在是找不到。這下可十分另人緊張,所幸,在我把一些
WTP 相關的目錄都稍稍 review 了一下之後,終於確認我們要修改的設定檔是在 Configuration Path 下的 conf/server.xml。Configuration Path 只要雙擊 Server view 中的 tomcat 後便會展開。