The Old Blog Archive (Traditional Chinese), 2004-2009

Archive for September, 2006

ObjectiveFlickr 框架完成

ObjectiveFlickr 的架構初步完成了,目前簡單寫了一篇英文 blog 記錄最近的變化。還有一大堆要做的documentation work,但至少已經可以check out出來用了。

另外就是真的得好好重整我的兩個 blog 所使用的 theme 了,not really suitable for showing code snippets…

詳情請參見本 blog 的英文版

結老(kiat-lāu)

一個神奇的詞。結老跟擺爛並不是同一回事,其中的奧妙(那種破百──有人說是破冬後──事情仍多事情又lâ-sái的狀態),只有親身經歷才能明白。欲辯已忘言。

ObjectiveFlickr 進度更新

這幾天繼續在改寫 ObjectiveFlickr 。幾個重要的變化:

  1. Source trunk大地震。許多檔案搬了家。新的 Xcode project file 可以一次 build 完 framework (yes! ObjectiveFlickr.framework is there!) 和 demo apps。編出來的 ObjectiveFlickr.framework 可以獨立放在 /Library/Frameworks 也可以嵌入你所寫的 app 中使用。
  2. Source code大地震。三個 class 全部重寫了一遍,主要是把 application context (API key, shared secret 及 auth token) 分成一類(連同 URL 生成),遞送 HTTP request 的工作再歸成一類(這次加入了 HTTP POST 支援了),另外 uploader 也寫得再清楚一點。
  3. 抽取 XML payload 資訊的功能,從這一版中被拿掉了。主要希望讓 request wrapper 能專心做 payload delivery,因此甚至連 Flickr error block 的解讀工作都不做了。研究了一下 BadgerFish 以及其他 XML-JSON 互轉的慣例,可能也要依樣畫葫蘆。
  4. 考慮了一圈,在目前這個層次上(「低階」的 API),一切都還是以 async 的方式撰寫。可能要到再往上一層的 API ,才會有 blocking call ,也就是做完一個 HTTP request 才做下一件事。大家都知道原因:在 GUI 程式裡寫 sync/blocking call 反而是比較困難的。
  5. 捏指一算,目前 Flickr API 竟然有 95 個 method !
  6. API method 多,傳回來的 XML payload 也是種類繁多。

總之,目前還需要再往上架一層,才可能看到更多簡單的 demo app 出現。目前是希望把 Flickr authentication 也做成一個 sheet package ,只要把 sheet window (註)調出來用就可以處理掉 Flickr 複雜的 authentication work 。不過這個部份的 abstraction and wrapping 遠比寫框架困難就是了。UI 真不是件容易的工作。

註:OS X 的 sheet window ,最近研究才知,並不是嚴格意義上的 modal window。因為 sheet 在 on focus 時,並不真的 block 住 parent window 的 run loop (event loop) …… OS X 的 run loop 架構,其實也挺亂七八糟的 -_-。

另一個相關的問題是

我們願意花多少錢來取得這種虛擬的實體感(註一),以及有多少人會願意誠實地付錢?

有時候會很希望看到有人利用Freakonomics的方法來考察iTunes Music Store或者就是paid legal music download in general。以至於推廣到e.g. Shareware buying, online software purchase等行為。

問題是一樣的:在有不投錢而取得東西,因此而被逮機會又微乎其微的情況下(如同Freakonomics裡那個靠榮譽制販賣bag的人),到底有多少人願意付錢取得東西?

不過,Freakonomics的案例,簡化掉了其中一個因素:交易摩擦。或者說是交易過程所需經過的「層層險阻」。販賣bagel的過程,只有投錢入箱和拿走bagel而已。但是買音樂就不是那麼簡單,要開帳號(還得在能開帳號的國家開)、要有信用卡、要能值得信任地付錢……

最近遇到的悽慘例子是,在台北的計程車上聽到1976的《耳機裡的新浪潮》。結果找了幾家台北主流的唱片行,都說「我們不進他們的CD」。orz之一。然後上網查,發現要上網訂購。要上網訂購還要很多天後取貨,這也就算了,還要些註冊會員、回覆確認、blah blah blah……

在交易摩擦這麼大的情況下,我相信很多人會寧願選擇:1. 打開 P2P 軟體開始找,2. 花一點時間等待下載下來不知伊於胡底的音樂檔。或者願意忍受的話,3. 也可以去某些國家不知伊於胡底的音樂網站「試聽」……

In the end, 我既沒有買CD(因為我那時已離開台北),也沒有選擇 1. 2. 3. (因為我懶)。

我真正希望的是,點選 PayPal ,購買單單這一首歌,收到下載通知信下載(或者就直接下載),匯入 iTunes,結案。

所以問題在於,有行無市(註二)。

註一:其實在英文裡,virtual的確實意義是「實際上被當為真實的」(effective),所以virtual reality其實也是一種reality,是「被視為的」真實。不過再查字典,驚覺New Oxfoard American Dictionary竟然用這麼淺顯的話來解釋先前被英英字典解釋得很玄的virtual: “adjective; almost or nearly as described, but not completely or according to strict definition”…

註二:一直在想,有沒有可能用小額付款機制付錢給喜歡的artist,然後他們可以直接把打上了浮水印的作品(例如 mp3 檔?浮水印可以突顯這是personalized item/transaction)直接 mail 到信箱裡啊……

當CD封面可以在電腦裡翻的時候

我知道,我從此不會想再買任何一張實體CD了。

前不久,Apple發表新的iTunes 7。Steve Jobs說「這會改變你聽音樂的方式」。誠哉斯言。事實上iTunes 7的CD封面檢閱模式,可能是在為了OS X 10.5的CoreAnimation做準備(OmniGroup的OmniDazzle搶先學去)──當然,根據討論,很可能這只是個非常簡單的OpenGL view就能做出的效果,其中絕無任何高深之處。

但是,這麼簡單的一個UI上的變化,到底為何能發生這麼大的效用?在此之前,MP3 對我一直是很虛無的存在。不愛去大量下載、去「嘿嘿嘿」音樂,因為那樣弄下來的音樂,都很不真實、很不連貫。

用album art可能是有幫助的。事實上有些「嘿嘿嘿」網站,幫人把整套CD封面封底小冊,通通掃描起來,供人自行印製或存檔留念。但是那樣好像還是沒辦法解決MP3的不真實感。

iTunes 7的那個介面,卻補足了一個實體CD盒存在的理由:它們是拿來翻的。並且,這樣一個實體的存在,把CD中的音樂牽在一起,做為一種記憶的單元,畢竟我們還是熟悉「唱片」這種原型吧,即便是單曲也還是用一張兩張在量數的啊。

每每我拿到CD,首先要先剝去外頭紙盒,再來剝去側標。以往還會翻閱小冊內文,如今往往也省去此儀式。CD的存在就是為了在一堆CD中被人翻找。觸覺和視覺的聯覺如此重要。

而如今透過電腦繪圖,一張張的CD也可以被翻找。用視覺補償了觸感的不足──事實上,如果不久有人把Smackbook hack成可以拿來「翻」iTunes的CD櫃,那就更像可以摸的東西了。

CD如此,同樣的事情會不會發生在書本上?雖然閱讀的觸感與視覺聯覺更為重要,但如今的現實是有越來越多東西得在線上閱讀,紙本變成一種奢侈。而且不可否認,電子書架真的也越做越棒了。也許將來只會剩下長時間移動時,還會想讀紙本的東西。還有文學作品(雖然像詩這樣的文類,其實是非常、非常、非常適合拿來當RSS feed來讀的)。

所以,請不要用李伯伯式的口吻說,現在的年輕人都不看書。他們也許螢幕上已經看得太多(更何況,要知道什麼是《悲慘世界》,google不就好了嗎?),想要在坐捷運的時候,享受城市的風景與空氣,去感受那些不會也不想被OpenGL取代的實體世界。

至少我是這麼覺得的。

(update: 結果發現一年前寫過這篇,orz)

來函轉載:OV Podcast, semantic web, 按tab賺錢

單中杰指出上一次OV/ilyastorming podcast中一個討論的盲點:

現場錄音中好像沒有提到 Semantic Web, 讓我有點驚訝。

討論 Semantic Web 常提到的一個問題是,如何讓大眾能夠且願意把自己的創作標上機器可讀的標籤,讓搜尋引擎把資訊整合起來,以便我找「位於捷運站一公里以內、有寫過輸入法的人推薦的、並且有賣兩百元以下素食主餐的聚會場所」等。有沒有辦法把輸入法改裝成為標籤的通路呢?

也就是說,以「加快打字速度」為號召,引誘使用者多跟電腦說明一下自己在做什麼事。最簡單的例子,就是把注音輸入法的詞彙與通訊錄的姓名整合起來,輸入人名加詞的時候順便輸入地址電話,以後打「某人的地址是」之後按 Tab 就跳出地址來,或是打「某人家從捷運」之後按 Tab 就跳出「某站二號出口右轉……即到」。有人 IM 給我「請趕快來這裡」,我回電「好,騎車預計」按 Tab 跳出「12 分鐘抵達」。有人 email 問我白菜怎麼賣,我回答「一把」按 Tab……。最終的目的當然是一個人坐在電腦前面只要一直按 Tab 就有錢賺。

另有相關:Remembrance Agent(中譯建議:「記念杯」)

My footnote: 其實我們那天後來有聊到「一直按 tab 就可以寫完整篇論文」(這是貫串 OV agent 的主題之一,經常被提到)──如同我們聊到聊天機器人可以幫你解決食衣住行育樂的各種問題那般。我是比較喜歡這組杯子啦……

Thanks, Ken.

HappyDesigner 十月聚會

HappyDesigner十月要辦聚會。聚會主題,如果要我來講,叫 “How Not to Get Things Done”。

五月份聚會的時候,大家在達利咖啡現場烹煮高橋流投影片。這一次聚會,地點在竹東的Opcafé,參加聚會的朋友,請準備一道妳想跟大家分享的菜──這是比喻──亦即,妳怎麼管理時間,怎麼「搞定事情」(getting things done),或者妳和許多人一樣,喜歡把事情拖拖拖拖拖到最後一刻,然後神奇地完成一切……

時間是10月1日。給台北的朋友:我有四個人的單程 quota …

經過商量,本次聚會不做投影片,回歸本初的說故事時間。:)

告訴hlb妳會準備什麼樣的菜到聚會上。

ObjectiveFlickr增加上傳功能



ObjectiveFlickr with Uploading Feature

Originally uploaded by lukhnos.

在試了一個週末後,終於發現先前沒好好研讀HTTP spec,是會得到報應的。+_+

總之,ObjectiveFlickr 現在有了 FlickrUploader 這個 class ,也多了 FlickrUploaderDelegate 這個 informal protocol ,只要叫某個 uploader 的 instance 開始上傳,上傳狀態就會源源不斷地傳回 delegate ,直到完成為止。

進一步的 demo ,請見最新版的 ObjectiveFlickrDemo 。Once again, the source can be found at Google code hosting. :)

ObjectiveFlickr in Progress

週末繼續幫 ObjectiveFlickr 增添了一些功能,但是 Flickr upload API 好像這陣子有些問題。觀察中。

「三八」

我一直不知道該怎麼翻譯「三八」比較好。Campy似乎還不錯,尤其是男人三八的時候。可是如果直男也三八起來,怎麼辦?

(For that matter, 女生三八,好像講campy也怪怪的)

Next »