Posts RSS Comments RSS  

Archive for February, 2007

Google Docs…

搞笑

不過覺得話中有玄機,於是下載了最新版的WebKit,唔,Google Docs真的可以用了耶。「傻乏力」終於也有變聰明而且不乏力的時候。

Update: 該圖竟然是英文版訊息的忠實翻譯,如下:

Please note that it is a violation of intergalactic law to use this parameter under false pretenses, so don’t let us catch you at it.

And, it won’t work very well — really.

最近遇到的各種疑難雜症

以前遇到各種程式的bug,只會想到要找人抱怨一下。後來把「要去file一張bug report」加到了to-do list上(雖然是 “long time ago, in a to-do list far, far away…”),最近桌面竟然長出了個叫 bug-report 的檔案夾,裡面檔案越來越多。

趁還記得的時候寫幾個最近遇到的疑難雜症,大多數都已經有了 workaround ,但要確實 reproduce 又要花時間寫 demo case ,總之先記下幾筆,留待火星近地點適合火箭發射時(?)再來一一file吧:

  • Cocoa: 在一個non-screen graphics context裡再開一個non-screen graphics context (e.g. 針對某NSImage object做lockFocus)可能會把堆疊上前一個graphics context的transform matrix搞爛掉。理論上應該可以再開一個thread來處理,但目前發現情況更糟,新thread開的graphics context似乎更爛。
  • IE 6 + prototype.js: Sortables依附的parent element,如果沒有明確設定position: relative,那些Sortables會被「釘」在該parent element上,於是該parent element捲動時,那些Sortable都像是吃了position:fixed的符咒,浮在固定位置上(唔,「浮在」跟「固定位置」好像是oxymoron)。
  • Firefox: 在某些還很難找出reproduce方式的情況下,text field的游標會不見。解決辦法:外面再包個div,設overflow: auto。據說是1.5時代的bug,但2.0偶爾還是會冒出來(確實成因和reproduce方法不詳)。
  • 最新發現,Safari 只要用了「一個」 non-opaque element 就會拖累整頁速度。先前的發現在此

猜燈謎與輸入法(馬賽克版)

Continue Reading »

在 PowerPC Mac 上拉火車頭要注意

鐵道迷都愛火車頭,不過最近一版的Locomotive (Jan 2007 bundle),卻驚傳裡面的雜種狗(mongrel)在 PowerPC Mac 上不會叫了,無論按多少次 CMD-R ,時刻表上的班車就是不會從指定的港口(port ??)開出來。奇怪的是 Intel Mac 無此現象。

這問題剛出現時,一度傳出的解決方法是…… 「請 PowerPC 使用者改用來踢 (lighttpd)」…… -_- 後來終於有人發現,原來是雜種狗的寶石項圈爛掉了,請隨便在火車頭的列車表上選一班次,按 CMD-T 進 Terminal 後,下達以下指令:

gem update mongrel

然後重新啟動火車頭,狗兒就會在 PowerPC 上回神了。

唔,雖然嚴格說來,來踢的速度比較快說……

據作者Raaum說,應該不久後就會有新的 bundle 了。

台北市,你怎麼了

唔,身為從小就在台北市過年,近十年來始終住在同一區的人,我可以說今年的過年是十年來噪音最多、鞭砲聲持續時間最久(農曆年初一到初三時,到半夜兩點還有人放砲)的一年。

台北怎麼了?

當代好命名之充要條件:SEO

hlb說的沒錯,「取名字,就要先SEO」,有好SEO則有好名字。

說來Pixnet最近在徵求中文名字,hlb呢,竟然也就直接幫它取了名──倒不是說hlb也跑去投了稿,而是通常被寫進了hlb blog裡的關鍵字嘛,嗯,你知道我知道你一定不會不知道我的意思的。:)

我跟大家一樣,第一個想到的就是「法鵝大站」,名實相符,也不錯啊。

倒是說正經的,我覺得如今要取一個中文站名,又像 Pixnet 這樣的規模(Pixnet的英文名字倒是挺不錯的),起碼有以下幾項得第一個排除掉:

  • 不要叫「○○網」
  • 更不能叫「○客」或「○○客」
  • 諧音其實不是最重要的,微軟當初應該沒人想稱自己為「麥克羅梭弗特公司」吧?
  • 追求美型的、古典味的、小說人物般的人名就可以免了。其實只有一個原則:你不會拿來用在自己小孩身上的命名法,就不要用在品牌名上

當然,這些都是就正道上的命名法而論的。如果是脫逸這些範疇,就無所謂了,例如拿調味料來命名就是……

除舊…

有一次看到朋友整理出即將丟棄的舊書,對某本 Benetton Colors 雜誌一句評論:「謝天謝地,我再不也覺得這有什麼好興奮的了 」。

難得因為開始放很長的年假,今年終於有機會蘊釀幫家裡一同整理出清的動力,許多東西是上一次搬家時就該早早出清的東西。最近的體悟是,有些人適合收藏,有些人適合只留少少東西在身邊。至於軟體儲存媒介(卡帶,5.25″ floppy, 3.5″ floppy, Betamax, VHS, VCD)隨著科技推陳出新以及網路有得下載這兩件事,似乎越來越沒有留在身邊的價值。

除此之外,今年也突然在想,有些所謂的「收藏」,有著身份不明的來源,似乎是連公開展示的價值都沒有了。有些則是隨著讀取設備的破損而跟著消逝。另外則是三個覺悟:對於電腦類的舊書,圖書館都有可能收藏;以及,電腦硬體的大量生產與軟體的大量複製,尤甚於汽車家電與報紙雜誌;最後是virtualization讓擁有實體設備變得不再有必要。

於是就在剛剛,清出了 5.25″ 磁片上存的 Lotus 1-2-3,Windows 1.01 一套,GEM,Windows 3.0 資策會版中文套件,震漢中文系統。留下「漢卡」時代的倉頡使用手冊充作歷史文件(哪日或許要撰寫輸入法相關文章時,會用到也未可知?)。至於以前用 OAMate 苦心編排、當時怎麼看怎麼覺得(充滿了一種納魯西斯的攬鏡自誇)美的噴墨 print-out ,只能說,這真的是我們的90年代啊。

Enough is enough, 我要換信用卡銀行了

幾個月前中國信託弄了個 Verified by Visa 的烏龍:中國信託和 Verified by Visa 停止了合作後,卻沒有通知持卡人(至少我沒有被通知道)。我傻傻地以為 Verified by Visa 仍有效,結果在某次線上付款時,輸入三次「正確」的密碼後,visa 卡被鎖住。打電話給客服,經過長達一小時的拉扯,客服終於說:「…… 其實是因為我們已經跟 Verified by Vsa 停止合作了,我們不能幫您重是 VbV 的密碼,您要不要考慮申請其他銀行的Visa卡?。」

Ok, 我不知道事情後續發展如何,也不知道中國信託是否恢復了 VbV (why should I need to find it out myself?)。於是我的 visa card 從此無法在任何需要 VbV 的 payment gateway 使用。

我還有一張 MasterCard 。最近發現 MasterCard 在台灣也開始需要過一道 MasterCard SecureCode 的機制。每次我過這機制,都有個按鈕叫「暫不註冊」,也就是不 enroll SecureCode,繼續直接完成付款手續。

結果今天跟我說,「您的寬限次數已過,請註冊 SecureCode」。

唔。

德政

Objective-C 有一個相當特別、被某藍同學稱為「德政」的設計:

送 message 給 nil ,就會得到nil

相較於其他語言(C++對null pointer call member function會爆炸、很多語言則會哇哇叫),Objective-C 的設計相當有意思。這個決定──”method returns nil when the receiver is nil”──隱含的意思是,「沒有例外事件」(no exception thrown),也就是Objective-C會沉默地忽略丟東西給nil所發生的事。

這樣有什麼好處呢?簡言之,就是節省了大量錯誤檢查所需的程式碼。而且,如果程式安排得宜,例如 C 依靠 B 的結果,B 依靠 A 的結果,那麼只要 A 這一步得到 nil 、B C 兩步的程式碼就一路等於變成了 no op,什麼事情都不會發生。只要最後再檢查 C 這一步的結果是否為 nil ,就知道 A B C 三步是否一次執行完畢。

唯一要注意的,那就是相較於 std c lib,printf(”%s”, NULL) 會看到 “(null)”,NSLog(nil) 或 NSLog([nil description])是什麼都看不到的。所以當 stderr 上面一片寂靜時,大概就得猜想是不是 A B C 一路 nop 到底了。

我目前唯一用到(也不得不用)exception handling的地方,只有檢查remote object是否還存在。如果丟了message給某個remote object,結果catch到奇怪的exception,就表示remote object已經不在了,要重新跟remote process要它對外販售的物件(vended object)。OS X 10.5的新輸入法架構,也相當依賴這一件事情的正確性。

AsiaBSDCon 2007, 3/8-11 東京開摧

原岡善行兄傳來的消息:AsiaBSDCon 2007(亞洲BSD會議)將於今年 3/8 (Thu) - 3/11 (Sun) 於東京大學舉行。今年的議程已經公布,報名從 2/12 開始。

大會網址在這裡(正體中文)、這裡(日文)這裡(英文)。

Next »