Archives

gravatar

Object-Oriented Programming

我是在寫 OO 嗎?我覺得不是。如果說只是把中文辭彙換成英文,文法還是中式,你會說我在講英文嗎?寫過 MFC 或是 Cocoa 的人都可以發現,MFC 使用的是 Document/View 架構,Cocoa 是 MVC(Model-View-Controller) 的架構。舉 Safai 為例,Safari 做的是 Controller 角色,負責視窗和各種按鈕間的動作,WebKit 做的是 Document (WebDocument) 和 View (WebHTMLView) 的工作,如此組合出一個完美組合的軟體,甚至在 Safari 裡面可以有各種的 Plugin,像是 QuickTime, MediaPlayer, Acrobat PDF Reader 等等。當 user 按下 Go back 按鈕,Safari 送出 message call 給 WebView 的 goBack 後,WebView 再由他內部的 backForwardList 去得到 backItem,再由 goToItem 去回到前一頁。應該不會有人覺得一件簡單的事情,怎麼要用到那麼多層的 class?(Safari -> WebView -> WebBackForwardList),怎麼不在 Safari 這邊解決掉就好了。反正 Safari 叫 WebView 到網址就載入那個網頁和 render 出來,WebView 只要負責畫網頁不就好了?如果像這樣子,class 之間的分工清楚,各司其職,才叫做 OO 的話,那不就變成每個要用 WebKit 做 Web Browser 的都要自己寫 BackForwardList?或許在非 GUI 的領域可能可以如此,但是在 GUI 裡面,我看到的不是 Document/View 就是 MVC。如果一件事情分三個人做,叫做累贅,那把他們合在一起好了。假使今天有人叫做 Adium 要用 WebView 來呈現 RichText 訊息,那大家看到的大概會是對話框裡面有個 Safari 而不是漂亮的 Conversation format。而且 WebKit 的 Reusability 應該等於 0,因為沒辦法直接用 WebKit 來變成 customized widget。而這樣的 OO 等於是廢物。
工作上,或許來說充其量,只不過是用 C++ 寫些很像物件的東西,使用一些包成物件的東西。但是對我來說,感覺就是根本不是 OOP。我只覺得我在寫 C。

gravatar

MS 設計 iPod 包裝

如果由 Microsoft 來設計 iPod 的包裝外觀的話,可能就會如同 這個影片:microsoft ipod packaging parod 所呈現的,充分展現出 MS 風格的包裝外觀和主義。

gravatar

陈水扁宣布“废统” 台湾股市下跌约300点

對岸新聞 陈水扁宣布“废统” 台湾股市下跌约300点。本文無關政治議題,純粹是笑話。一堆資訊公開透明,唯有某些人關起門來自己爽。哈!

gravatar

自以為聰明的台鐵跟中華電信

算你要防止大量訂票, 做了一堆保護措施, 但是搞得連正常使用者都更難使用, 這是哪門子的方法. 變成我可能自己來寫個 script 訂票反而比在網頁上用滑鼠按按點點還方便. 用 firefox 訂票, 漬漬, 這是什麼畫面.
I'm ordering ticket normally
連 IE… 要防止大量訂票的方法, 竟是定時更換 server side script 的名稱. 現在連 clear cache, reload 後, 一樣會 post 到錯誤的 server side script.
I'm ordering ticket normally, too
看來來寫個訂票 script 比較實在, 花這種鳥時間受罪, 台鐵真是會對待客戶.

gravatar

Safari2PNG

寫了一個 Safari 的 InputManager,用來把 Safari 的網頁直接存成圖檔。這個功能應該有類似的程式做過,像是 webkit2png.py、Paparazzi,不過這些都只能直接從指定的網址抓下來;SnapWeb 這個軟體則比較界面化的 WebKit,而且雖然可以在裡面操作然後抓圖,但是遇到較大的網頁可能會錯誤,或是剛好在 Safari 遇到的就無法立即使用,而且需要註冊。比較想做的是瀏覽時候,可能在某些需要登入或是 form POST 結果的網頁中把圖抓下來。因此最好在選單中有個選項可以使用,然後把正在觀看的網頁抓下來。
Safari2PNG
目前初步的結果已經有了,但是遇到不少問題,也解決了不少,剩下某些問題待解。抓下來的網頁內容圖片就像這樣子。

gravatar

KDE on MacOSX

KDE Qt/Mac 是利用 Qt/Mac 的版本,讓 KDE 能夠在 Mac OS X 使用 Aqua 的界面執行。雖然 fink 已經有 KDE,不過我想他是透過 KDE for X11 和 Qt/X11 來執行。但是有個問題還是存在,就是 Qt/Mac 對於中文輸入支援上還有問題,所以 KDE Qt/X11 和 KDE Qt/Mac 用起來的感覺應該差不多吧,只差在 widget 不一樣。

gravatar

GTalk in GMail

GMail 已經整合了 GTalk,除了可以把 GTalk 的對話內容存到 GMail 裡面,方便儲存和尋找外,還可以在 GMail 裡面直接跟對方傳訊息。平常大都會用的是 Safari 或是 Opera, 可惜這兩者進到 GMail 裡面並不會有這樣的功能,雖然一開始用 Safari 在 GMail login 畫面有提到,可是進到裡面,還是跟傳統上沒什麼太大差別。直到在公司使用電腦,利用 Firefox 來讀 GMail 的信,才發現 GTalk 被整合進來了,而且進到 GMail 就會讓自己的 GTalk 帳號上線,並且可以與 contact 用戶直接傳訊。而且蠻簡單、方便的,把網頁瀏覽在 GMail 的地方,就能有打字、訊息過程的小格子,比起 MSN Messenger 真是簡樸多了,其實溝通時的功能也就是這樣而已。只是因為他是擺在 GMail 中,不像 MSN Messenger 收到訊息通知可以跳出視窗,可能使用上有些缺點。而簡單的說這也是一種 Web 版本的 GTalk 吧。圖中的是 Mac OS X 下的三種瀏覽器畫面,只有 Firefox 能順利使用。
GTalk in GMail

gravatar

富x邦金控網站被植入Rootkit !!

http://x-solve.com 上面的文章 公告(2006-0214):富x邦金控網站被植入Rootkit !! 還是沒事不要用 IE 到處亂逛比較好.

gravatar

好漂亮的數據

台鐵春節疏運的列車到站準點率是 94%,看到真是夠吐血,從來坐台鐵的火車大多數都沒有準點過,即使是非人潮擁擠時刻,而且大多數坐車時候誤點都是 10 分鐘以上。唯一準點的班次,就是從台北那幾站搭的列車,因為離發車地點近當然不太會誤點。再者車票上打的乘車時間是開車時間,所以應該是從台鐵網頁上的時刻表上到站時間作為基準,才算準點。但是即使是最佳狀況下,往往大都還是開車時間後才進站。而且列車的優先是自強>莒光>復興>…,在某些車站或區段時會有同向超車,讓經過該段的車次,時間相近且優先權高的列車先過。因此只要自強一誤點,後面的誤點只會更嚴重不會沒事。台鐵這種很漂亮的 94% 準點率不知道是怎麼得來的。

gravatar

Themes from Wordpress.com

Wordpress.com 的限制就是沒辦法讓使用者自行使用 themes,非得從他所提供的那些 themes 上去選擇。今天又看了一下,多了幾個新的 themes,套用看看試了幾個,不過喜歡的樣式那個卻沒有 search 功能 =_=#。有些在 preview 上有 calendar 的,真正弄上去卻沒有,可能有些 plugin 也是無法由使用者自行安裝使用的。

gravatar

JavaScript speed

JavaScript Speed Test 上測得的各家瀏覽器 JavaScript 效能。iBook 1.2GHz,Opera 8: 9.14sec, Safari: 10.85sec,Opera 9: 13.82sec, Firefox 1.5.1: 22.13sec。雖然是 JavaScript 的 benchmark,但是其中包含有 browser window 的產生、關閉、DOM 物件的建立、移動等等。

gravatar

Opera 9、Opera 8、Safari

Opera 對於 HTML/DOM/JavaScript 的支援還是比 Safari 完整,而 Opera 9 目前雖然是 beta,但是比 Opera 8 多了一些優點。比如說可以直接支援在 Opera 裡面看 HTML source 而非使用 TextEdit,這樣避免因為 TextEdit 的編碼設定與網頁編碼不同而無法開啟,也多了 syntax highlight;增加了 block content,支援把某些 URL 的內容過濾掉,像是廣告。而對於 HTTPS 連線的網頁,無論是有無 address bar,均會在視窗上多一行顯示 HTTPS 的網址和認證者名稱,避免有心人濫用沒有 address bar 和按鈕的彈出視窗進行私人資料竊取。當然因為可能還在 beta 階段,感覺瀏覽速度上比 Opera 8 有稍微慢,以及容易 crash,若能順便拿掉不需要使用的 mail、widget 功能來精簡,則是更棒。但是整體來說比起 Safari 算是有過無不及,除了中文字某些情況下難看點。Safari 同樣是很精簡、系統和UI整合得很好,但是其 single thread 的寫法似乎常常會出現某些問題。例如按右鍵或拉下功能表尚未選取選單項目,其實整個 safari 會停住,尤其正在顯示網頁過程特別明顯。甚至是在多個 tab 瀏覽時,當其中有的網頁 loading 變大時,對於其他網頁上的動作、下載呈現、 tab 上的切換常會有遲鈍感;甚至已經切換到其他 tab 後,又自己跳回剛才載入完成的頁面,造成不少 browsing experiences 上的困擾。

gravatar

移動烹調

Mobile Cooking 教人怎樣用手機來煮蛋, 沒試過可不可行, 看起來蠻有趣的. 不過文章提到的是他使用晚間免費區域撥打手機來煮;台灣的話, 三分鐘的時間所花的電話費可能比 7-11 的茶葉蛋還貴吧.