2009 年 3 月 31 日

苦集滅道

好像很久沒有寫歌了?

下載(MP3 格式,約 4MB)

閱讀〈苦集滅道〉全文


2009 年 3 月 21 日

敬愛、親愛

零星接觸過的南亞音樂當中,不乏伊斯蘭題材的作品。

其中最享有盛名的,莫過於之前因《貧民百萬富翁》配樂而為奧斯卡所肯定的 A.R Rahman-老實說,《貧民百萬富翁》的音樂與 A.R Rahman 的其他作品比較,實在沒有比較出色,他真正的經典作品,該是讓他首受到西方注意的Dil Se一劇中的兩首歌曲-Dil se re,還有在真實行進的火車上大跳歌舞的Chaiya Chaiya(不管什麼時候重看這段電影片段總還是讓人瞠目結舌)。

而像 Chaiya Chaiya 這樣的作品在主題上,不單是對於男女情愛的歌頌,也同時表現虔誠的伊斯蘭信仰-有次 A.R Rahman 受訪時,就說 Chaiya Chaiya 其實想要表達的是阿拉之愛,但另一方面,愛情與宗教本來就是合一的題材:所有的愛,除了真主之外,還有什麼其他的源頭嗎?男女之間的純淨神聖之愛,也全都來自於真主的創造呵!

閱讀〈敬愛、親愛〉全文


2009 年 3 月 18 日

iPhone 3.0 的 In-App Commerce

在蘋果宣布的 iPhone 3.0 的一堆功能中,In-App Commerce 可說是影響軟體交易模式最大的一項-簡單來說,目前想要(用官方管道)取得應用程式,就是透過 iTunes 或是 iPhone 上的 AppStore 軟體,在軟體商店中瀏覽,如果看說明覺得滿意,就輸入密碼刷卡下載;而加入了 In-App Commerce 之後,接下來在一套軟體中,還可以針對某一項另外收費。蘋果自己展示的用途,是接下來 iPhone 版本的《模擬市民》遊戲中,可以針對某項特殊的虛擬寶物收費(聽起來就像是之前 Idol Master在幹的事情)。

閱讀〈iPhone 3.0 的 In-App Commerce〉全文


2009 年 3 月 4 日

Bunt

一年多前我寫了一個小工具,叫做 colorBy.colorPicker,這個工具的目的在於解決在開發 Cocoa 應用程式的時候,撰寫跟色彩有關的程式的麻煩-比方說,當你需要一個 NSColor 物件的時候,你都必須要花點時間,把你看到的一組顏色,換算成對應到 HSBA 或 RGBA 的小數。不過,今天回頭看這個程式,在設計上有幾個問題-

一、在這個程式寫出來到現在,這段時間裡,Mac Developer 又多了一種跟色彩有關的物件要處理,叫做 UIColor,因為 UIKit 出來了嘛…。

二、原本的程式是寫成 Mac OS X 的系統 Color Picker,之所以寫成 Color Picker,原本是以為這樣就可以在各種文書編輯軟體裡頭-BBEdit 啦、TextMate 啦還是 SubEthaEdit,都可以叫出這個工具,因為大概只有 Color Picker 與輸入法可以算是平台上所有應用程式都可以用的外掛工具(plugin)。

但經過一年多再回來看,這種考量其實完全沒有必要,所有的開發工作往往都是在 Xcode 完成,而麻煩的地方就在,Xcode 裡頭實在找不到什麼地方可以把系統 Color Picker 叫出來。

因為這兩個原因,前兩天決定把這個工具整個重寫一次。新版的名稱叫做 Bunt,專案放在 GitHub 上:http://wiki.github.com/zonble/bunt,您可以直接取得程式碼自行編譯。簡單來說,差別在於-

一、Bunt 現在是獨立的 Cocoa 應用程式,而不再是系統 Color Picker,在啟動之後,就會出現在畫面右上角,需要的時候,用切換應用程式的方式切換過去就可以了。

二、除了原本就支援的 NSColor、Quartz Drawing 的 ColorRef 外,加入了產生 UIColor 與 OpenGL 的顏色的功能。

歡迎取用。


2009 年 3 月 1 日

UIKit 的鬼設計

弄清楚程式語言只是開發軟體的第一步,在程式語言之後,你需要習慣這個平台上已經有了那些既有的慣例,而既有的慣例除了寫作風格之外,還要適應原廠的 Bug 及其莫名其妙的設計。像 UIKit 這套 Framework 有些地方實在是設計得莫名其妙,而且是讓你在工作的時候忍不住想要罵人的那種。

比方說,不管你寫什麼程式,你都有極大的機率會用到問人家好不好,要不要繼續的對話框,像是 Javascript 的 alert() 或 .Net Framework 裡頭的 Message.Show(),這種對話框幾乎都是在你呼叫了 function 之後,就把到底按了哪個按鈕回傳給你。UIKit 偏偏就不是這樣設計,在呼叫了 UIAlertView 之後,偏偏要用 delegate method (或是所謂的 callback)的方式回傳。

閱讀〈UIKit 的鬼設計〉全文


Powered by WordPress 3.0.1, ideas and cares.

Weizhong Yang (a.k.a zonble)

Email:

Email:

AIM: zonble@mac.com