2008/4/29

cursor bug in FF

當我們在使用yui的dialog的時候,卻意外發現一個奇怪的問題,只有在Firefox才會發生,就是dialog裡面的input的cursor,在dialog放在一個iframe網頁上面的時候,即時用滑鼠點了一下input,但是cursor還是不會出現,經google後發現,這是firefox的一個bug,而且沒有一個適當的解決辦法。

Cursor disappears in Firefox這篇文章建議以調整 overflow 的style解決,我試過了沒有用。Infamous Firefox cursor bug - Info and possible workaroundsCursor (caret) sometimes fails to appear in input text fields這邊有人建議以 position:fixed 還有 overflow:auto; position:absolute的方式解決,但是dialog的位置就沒辦法任意地拖動了,目前的結論還是無解。

群 der Schwarm

水是萬物之母,地球上有2/3的地方是水,有4/5的地方是深海,另外又只有平方公里的海底地殼,人類曾經考察過。以往的科幻作品,多是往太空發展,描述太空中的其他高等智慧生物,或是人類前往另一個星系發展,這部作品卻往海水發展,內容不但引述了具體的事證,再加上作者個人的想像,成就了這部特別的作品。

有部描述海底未知生物的電影叫「無底洞The AbyssThe Abyss/無底洞」,電影的內容細節我記不得了。另外有一部電影,記得比較清楚,是Dustin Hoffman、Samuel Jackson主演的Sphere,一個特別的圓球,讓他們因著幻想成真的東西,而互相殘殺。

海水裡的東西,對我們來說,未知遠大於已知,「群」並沒有從外星生物下手,而是很特別地,將演化分成兩條大異其趣的進程,一種是人類,一樣的DNA產生不同的細胞與功能,每一個人各自獨立,另一種是單細胞生物(Yrr),DNA雖然類似但不一樣,另外他們有辨識彼此的獨特方法,為了求生存,他們必須要透過女王的協調,讓大家團結在一起抵禦外侮,他們的目標也是要消滅人類。

故事一開始是從甲烷冰水合物講起,為了解決石油能源危機,人類尋找替代能源方案,最後找到了甲烷冰,但在挖掘的過程中,卻發現了許多蟲子,後來才知道這些蟲子,是為了利用甲烷冰水合物的噴發,要讓整個大陸棚下陷,另外在賞鯨的聖地上,卻發現有鯨魚群聚攻擊遊艇,另外就是餐廳裡面,因為龍蝦帶來了液態毒物,滲透進入了下水道,影響了整個城市。

為了解決問題,美國派黎找了團隊,研究這項問題,原本團隊的目的是要跟這些未知的生物接觸,希望能要求他們和平共處,但後來,卻是黎一廂情願,決定要以散佈病毒的方式,讓這些單細胞生物,互相傳染疾病。

作者薛慶創造的Yrr,一開始看起來非常地厲害,因為要求生存,會想各種特別的辦法對付人類,而且看起來都像是了解人類的行為後,所對應產生的報復方法,包括以虎鯨等鯨魚直接攻擊、海嘯、以龍蝦木馬屠城、讓甲烷冰噴發等等途徑,但在故事的後面,Yrr的思考模式,變成了類似蜜蜂的方法,大家都以女王的思考為依歸,有異樣的個體就會被其他個體消滅。

約翰遜與安納瓦克提出的方法,讓Yrr女王辨識到了一個說要跟他結合的敵人,讓他學會尊重一個獨立的個體,進而學會尊重另一種生命體,因為了解人類而提出有效攻擊人類的方法,又因為不了解人類,想要把人類消滅,似乎是有點衝突。

書本前面一大半的部份,主角們從一無所知,到無能為力的狀態,一直再想辦法了解Yrr,最後才能產生對策,這整個過程雖然敘述有點冗長,但卻是能讓人想要把結局看完的一本好書。

der Schwarm 群(下)
[閱讀筆記簿]《群》

CEPA的開放態度

撇開政治與民族問題不談,CEPA(Closer Economic Partnership Arrangement)代表著香港與大陸之間的經濟開放互動,2004年的CEPA,帶來香港民生經濟的榮景,這個議題的答案在四年後的今天看來,應該能給予正面的肯定。最近看了謝金河先生的評論,他認為台灣將會遵循著香港的模式,有一波經濟復甦的榮景,我認同他的說法,所以也買了一點點的股票。

我根本不是經濟方面的專家,也不想對政治有太多評論。但我可以看到的結論是,開放的態度,活絡了經濟,帶來了更大的商機。這不就是自由軟體一貫的理念嗎?對不同於微軟策略的軟體產品來說,自由開放的態度,的確能讓軟體活得更健康而且更有價值,這是很多想要以小博大的軟體產品策略。

以香港跟台灣這種彈丸之地,天然資源不豐的地點來說,對應於一個資源不豐厚的軟體開發團隊,或許兩者都應該以開放的態度,面對自己的商品,期望能帶來更大的經濟效益。為了賺錢,大家都是機會主義者,哪裡有機會,就會往哪裡鑽,錢就會往哪裡跑,除了營造一個吸金的環境外,還有別的方法嗎?

以下是網路上有關CEPA的文章,按照時間順序排列:

兩岸簽訂CEPA須有前題 2004/1/9
經濟回春看今年? 2004/2/28
面對國家第27集
CEPA對台灣的影響 2004/4/27
CEPA的影響
CEPA:香港與長三角合作更緊密 2004/1/15
香港專家:CEPA存有風險 且等於矮化台灣 2005/4/28
中國將進一步充實與香港CEPA內容 2006/6/20
台商掀起赴港上市熱潮 2007年4月號
唐英年:CEPA是內地與香港雙贏的安排 2007/6/22
CEPA推動香港經濟高速增長,今後重點是服務貿易 2007/6/25
從台灣看香港 蕭萬長:CEPA是歷史轉捩點 2007/6/26
CEPA加持,經濟回溫 香港,猛掏陸客荷包 2007/6/28
CEPA為香港創意工業帶來商機 2007/8/30
08年營建資產類股~受惠兩岸關係解凍,投資價值提升 2008
壓抑10年 金融股長期價值爆發 今周刊 2008/01/24 第579期
中國商務部摸底CEPA,香港商求國民待遇 2008/4/11

Tomcat 5.5.26 6.x的 cookie problem

最近原本程式在Tomcat 5.5.25可以運作正常的Cookie,最近在Tomcat 5.5.26上測試卻發現出了問題,原因在我們在Cookie的數值上,是以Base64編碼,然而base64的編碼結果會在最後面產生多個 = 字元,這個等號,在Tomcat 5.5.26取得cookie value時,被視為cookie規格中的等號。

舉例來說 cookie1=value= ,應該取到有個cookie1,數值為value=,但在Tomcat5.5.26上卻是,有個cookie1,數值為value。在Cookie V0的規格中,他告訴我們cookie裡面的資料必須要自己用URL style %XX 的方式編碼。

我懶得再用java.net.URLEncoder去轉換,直接replace所有的 = 為 $,取到cookie資料時再把 $ replace 成 = 就可以解決了。

至於 V1 的cookie,應該是不要用,相容性可能會有點問題。

New: Tomcat 5.5. 26 - cookie with colon in name is parsed incorrectly
Cookies behave differently between Tomcat 5.5.25 and Tomcat 5.5.26
Cookies are broken in 6.0.16?

2008/4/22

用支援UTF-8 BOM的Reader解決proxool設定檔UTF-8 with BOM的問題

在使用 proxool 的時候,如果用JAXPConfigurator來啟動proxool,通常會用 JAXPConfigurator.configure(new InputStreamReader(proxoolInputStream), false); 這種寫法,但是java.io.InputStreamReader在遇到UTF-8 with BOM的檔案編碼格式的設定檔時,就會產生問題。

在遇到BOM(byte-order mark)的時候,通常都是找個支援修改檔案編碼的Editor來處理,例如我們常用的Emeditor或是EditPlus(參考網站 BOM (Byte Order Mark) 的問題BOM BOM BOMUTF-8),我們的作法,原本就是採Emeditor來使用,但是程式交出去的時候,就常常會遇到客戶直接使用Windows預設的文字編輯器notepad來編輯proxool.xml設定檔的狀況,導致程式在啟動DB Connection Pool就會出問題。

ROME實作了com.sun.syndication.io.XmlReader這個類別,在文件一開始就提到,"It looks for the UTF-8 BOM first.",另外這個類別又是extend java.io.Reader,這就省事多了,因為JAXPConfigurator.configure正好是需要一個java.io.Reader,所以只要把 JAXPConfigurator.configure(new java.io.InputStreamReader(proxoolInputStream), false); 這種寫法,改為 JAXPConfigurator.configure(new com.sun.syndication.io.XmlReader(proxoolInputStream), false); 就可以讓proxool設定檔也相容於惱人的BOM問題。

不想使用ROME的話,也可以使用UnicodeReader and UnicodeInputStream提供的程式。

2008/4/3

延伸VMWare的硬碟

使用VMWare,作業系統裝完才發現硬碟不夠用了,RDPSoftware這個網站提供了Virtual DiskFactory,可以延伸VMWare一開始所配置的硬碟空間,在延伸實體硬碟大小後,執行該VM後就能看到硬碟多了未配置的空間,再安裝Partition Magic就能順利地放大硬碟空間大小,繼續工作。