努力過著不看電視的生活,不過,在台北這個地方想要不看電視活著,總是會經常破功—就算是上班沒有電視、回家沒有電視,去搭個大台北公車,還是會在公車上面看到 Bee TV。最近有兩則讓人實在受不了的廣告,又總是在公車的電視上放個不停。
閱讀〈類比〉全文
自從回頭接觸一下 Windows 上面的開發到底是怎麼回事,就三不五時接觸到各式各樣的靈異現象。比方說,在 Visual Studio 2005 的選單裡頭,有一個叫做「線上更新」的項目,點選之後,Windows 就會打開瀏覽器,連上 Windows Update 網站,並且告訴你…

「感謝您從我們的網站取得更新—若要使用此網站,您必須執行 Microsoft Internet Explorer 5 或更新的版本。」
—原來 IE7 是個比 IE5 還要來得古老的版本哇!如果您直接從「開始」選單中,找出 Windows Update 項目,Windows Update 是會順便幫你把 VS2005 升級到 SP1,但是 Visual Studio 選單裡頭的升級功能,卻是一點功用都沒有,奇哉,怪哉。而沒有用也就算了,又不是第一天遇到軟體出問題,但是出了問題,跳出來的畫面還偏要說,這是你用的瀏覽器有問題。不是微軟有問題,是用 IE7 去看需要 IE5 以上版本的網站的我有問題。
這滋味說來真是奇差無比。
閱讀〈Well, how do I…?〉全文
從 10.5 Leopard 開始,Mac OS X 開始支援 Objective-C 2.0 語言,其中一項賣點就是支援一套 Garbage Collection 系統。於是,以後寫 Obj-C 程式的時候,就不用注意每一個產生的物件到底是會 autorelease 還是要自己 release,不用注意是不是有哪些物件忘記 release,從此寫程式不用顧及記憶體的問題,世界從此又變得更為光明美好…
才怪。
這兩天的測試結果,大概發現了幾件事情:首先,雖然 Leopard 支援 GC,但是系統中大部份的應用程式,還是透過非 GC 的方式寫出來的,但是,就是有軟體是用 GC 狀態下寫的,例如 Xcode 3,在這類的軟體中,就會出現這樣的問題:在 Leopard 上面編成了使用 GC 的應用程式,也只能夠載入透過 10.5 SDK 編譯出來的各種 plugin,而如果 plugin 裡頭又用到了非 GC 的 Class,那麼,這個 plugin,就足以造成應用程式 crash…。
就拿 Xcode 3 來說好了。基本上,Xcode 3 也不能夠載入多少 plugin,但是我偏偏寫了一個可以讓 Xcode 3 載入的 plugin,就是前面說到的 ColorBy.ColorPicker 這個 Color Picker;而一般來說,寫程式好像也不太需要一天到晚挑顏色,但是我這個 Color Picker 就好死不死,就是打算寫給 Xcode 用的。而如果你妄想著這一個 Color Picker 還可以在 Tiger 上與 Leopard 上都可以使用,所以用 10.4u SDK 編,你可以在所有其他應用程式中看到你的 Color Picker,但,很抱歉,就是不會出現在 Xcode 3 裡頭。
至於在 Leopard 上面,可能在程式裡頭,用到什麼哪些沒有支援 GC 的東西呢?至少 IKImageFlowView 就不支援;換言之,如果你想要在 Color Picker 上面做出 Color Flow 效果,就等著在某些應用程式裡頭爆炸。而 Apple 官方也只有在 Finder 與 iTunes 裡頭用到 Cover Flow,也就是,官方也還只有在 Carbon 程式裡頭用 Cover Flow 啊…。
(順道一提。想來,Color Picker 也應該能夠拿來做一些有趣的壞事,在整個作業系統中,可以在所有應用程式裡頭都用到的東西,除了輸入法之外,就是 ColorPicker。)

下載 0.1 版:http://zonble.googlecode.com/files/colorBy.colorPicker.0.1.zip
.colorPicker 是副檔名,不過,軟體的全名就叫做 colorBy.colorPicker,意義是:「從 colorPicker 產生 color」。簡單講,這是一個給 Cocoa Developer 用的 Color Picker,幫你把你選到的顏色,轉換成 NSColor 程式碼。下載解壓之後,將 colorBy.colorPicker 放到自己目錄下的 ~/Library/ColorPickers 目錄,或是 /Library/ColorPickers 目錄;之後,只要在任何 Cocoa 軟體中,打開 Color Picker,就可以看到多出一個分頁。點選分頁即可使用。目前只有在 Leopard 上面試過,照理說 Tiger 也能用。
閱讀〈colorBy.colorPicker〉全文