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

Archive for the 'nil 無分類' Category

重新開始:ObjectiveFlickr 2.0 for Mac and iPhone

這件事情隔了好久,終於起了個頭。

ObjectiveFlickr 2.0 是一套 Objective-C 寫成的 Flickr API framework。如果你正計畫開發使用 Flickr API 的 Mac 或 iPhone 程式,ObjectiveFlickr 說不定可以幫上忙。

這是完全重寫過的版本。更重要的是:裡面有一套完整的 iPhone 照片上傳程式的範例。所以 ObjectiveFlickr 也可以當做 iPhone 程式開發的教材。同樣還附有 Mac 跟命令列工具的範例。

最早的 ObjectiveFlickr 是在 2006 年 9 月時開始寫的,2006 年年底時曾經全部重寫過一次。2007 年初開始穩定下來後,就一直沒再動過。但之後 OS X 10.5 出版,iPhone SDK 出現,原來設計框架的許多假設、使用的寫作風格、當初設想的應用方式,都發生了變化。原有的衣服不合身的,於是到了重新訂做一套的時候。

這是 open source 軟體,使用 MIT 授權條款發佈。

有興趣的朋友可以從 github 取得 ObjectiveFlickr 的程式碼。建議先讀過新版本的 README──這也是本次改版的重要特色之一喔。

http://githib.com/lukhnos/objectiveflickr

另外參閱:英文版的發佈說明 / announcement on Flickr group

丟書與電子書

看了這一篇文章:John Siracusa 談論電子書。文章很長,如果你還沒有分心過去看,以下是我的一些感想。

過去 15 年間因為不同的理由丟過兩次書籍雜誌,今年排定有新的一輪。我還沒想到明確的方法,請二手書店的人來收可能是其中之一。

有些書以為會收藏很久,或是用很久的。這一輪棄書準備丟掉很多字典。大學時代以前的英漢字典已經幾乎沒有參考價值。後來買的各種字典,不少也難逃過時的命運(例如:1990 年代中葉德語拼寫改革之前的學習用字典)。隨著字典編輯方法的升級(例如以語料為基礎的編纂方法,替代以有限數量菁英學者的產出),可以料見的是字典過時的速度也會變快。

電腦類型的書就不用說了。2004 年退伍的時候,去買了當時覺得很重要的書:Linux 入門指南(兩本)、FreeBSD 上手指引(一本)、PHP 與 MySQL 程式設計等等,甚至還買了當時流行的軟體重灌跟系統效能調教雜誌等等。這些書事實上連二手販賣的價值都沒有,擺在書架上非常礙眼(中文電腦書是所有中文書籍類型中最醜、最沒收藏價值的一類)只能打成紙漿。

後來技術書籍的解法之一是 Safari Bookshelf。嚴格說來 O’Reilly 的這個解決方案已經不能算是「書」了,但是所有裡面所用的詞彙和想像都圍繞在書的周邊。

然後最近也在認真考慮 Kindle。Kindle 對我來說的真正價值在於節省購買 hard cover 英文書籍的費用。買 hard cover 的誘因在於書本內容時新,而且比 paperback 早出。但是 hard cover 集所有書本的缺點於一身:昂貴、笨重、造成日後收藏與搬家的負擔(我很早就放棄了要當書本收藏者的人生目標)。而且不方便的事實是:雋永的書比例並不如想像的高。

(為了做研究的需要,或是因為對於知識領域的深度追求,那是另一回事。至於純粹的閱讀樂趣,我目前的感覺是:花幾百塊錢台幣去購買一次閱讀的體驗是值得的,但是並不代表那個體驗需要被再次經歷;另一方面,曾經有一次突然驚覺,有位小說家透過他筆下角色宣稱「我只讀已經死掉的人寫的東西」或許是有道理的)。

Siracusa的文章有一大部分(前 1/3)其實更像是在為「書」尋找一個更好的定義。音樂沒有這個問題:內容跟載體很早就是被區分開的。但是「書(寫?)」還擺脫不掉紙張的軀殼,連帶限制了(這是我的延伸解讀)我們對閱讀的想像。然而事實如同 Siracusa 說的,我們早已經在非紙張的閱讀媒介上花了無數時間。因此技術本身不是問題所在,圍繞在這一個行業/產業的本質性問題才是關鍵。

Siracusa 的文章到後來變成了在敲邊鼓,認為 Apple 大有機會吃下這一個新興領域。他同時並不完全看好 Amazon。我自己的想法是:書本(或者是那個還沒找到更好名字的「那個東西」)的 “iPod Moment” 還沒來到。

但我其實是衷心希望這個 iPod Momenet 早一點降臨的。到那個時候,我就可以大聲說「我不讀書」,而意義就跟「我不再聽錄音帶上的音樂」是一樣的。

困擾人很久的旋律

我一直以為有一段旋律是 Aaron Copland 的作品,因為常常在聽到 Fanfare for the Common Man 時伴隨著聽到,或者是軍樂隊演奏之類的。總之困擾了我很久(因為聽了很多 30 秒試聽 clip 顯然不是 Copland 的作品)。

結果有一次坐車時台北愛樂電台正好在放,探詢之下才知道原來是 Vaughan Williams 的《英國民謠組曲》 (English Folk Song Suite) 中的第一部 “March: Seventeen Come Sunday” (星期天就要十七歲)。這是一首結構上由 A-B-C-B-A 組成的作品,由三個部分民謠 “Seventeen Come Sunday”, “Pretty Caroline” 以及 “Dives and Lazarus” 組成。除了是英格蘭傳統民謠外,也有宗教的主題在裡面。其中 “Pretty Caroline” 由木管演奏的旋律就是那困擾我的部份,久久不能忘懷。

因為顯然是某些儀式慶典上聽到的演出,才突然在想:不太知道這種國高中要開升旗朝會(還要像軍隊一樣行進看齊整隊立定稍息?要有主席司儀?到「司令台」上領獎?),朝會要有樂儀隊,還要演奏軍樂/進行曲的奇怪組合,到底是哪裡來的文化呢?我從來沒有在乎跟注意這些事,結果還是沒想到還是留下了一個困擾的線索;另一個學生時期早上常聽到的曲目竟然是史特拉汶斯基的《火鳥》組曲,不過這個很早就知道。

總之,果然不是 Copland 啊。不管是 Fanfare 或是好比像 Rodeo: Hoe-Down 的名曲,呈現的風景就是跟英格蘭不一樣。溫度也是很不一樣的。

並沒有很想努力表現自己的詞窮。重要的是解開了一個多年的疑惑。

一些關於之前注音轉拼音文章的問題

有朋友讀到我之前寫的這篇 blog,來信問了幾個問題。問題來自這幾個漢語拼音的例外規則:

  • (ㄐㄑㄒ)j→ji、q→qi、x→xi、
  • (ㄓㄔㄕㄖ)zh→zhi、ch→chi、sh→shi、r→ri、
  • (ㄗㄘㄙ)z→zi、c→ci、s→si、

轉錄如下:

q1;我不曉得說何時才會要多加i

q2;還有像是“去“這個拼音 如果打qyu就沒有 (其實智慧型你打q他就會寫出“去“這個字拉)但是我還是想問說正確的拼音要怎們打

q3;ㄩ→ü他正確是要打拿個字去拼阿 是yu嗎 因為我看你說mac系統會用v可視我打v沒有反應 然後我看你下面的特例 “雨“字打yu 然後我打“約“字是打yue是可以找到拉只是不知道對不對 不知道正確的要打啥才會找到可以舉例一下嗎

簡單回答如下,

第一個問題,關於有那些組合要補 “i”:嚴格說來只有「ㄓㄔㄕㄖㄗㄘㄙ」這七個。原因是他們其實本來照原理是應該要補上母音的,只是注音符號的規則讓他們可以獨立(一方面也是避免跟ㄐㄑㄒ + ㄧ撞到,但這就是麻煩的地方……)

第二個問題:「去」的漢語拼音是 “qu”。請注意 w 跟 y 不會在有其他聲母的時候出現,所以 qyu 是不正確的組合。至於打 q 直接出「去」是很多漢語拼音輸入法的 shortcut,但那並不是規則。

第三個問題:先談「ㄩ」獨立成音的時候,因為 y 規則,要變成 “yu”。至於拿 v 代替 ü 那是僅限於輸入法的替代方案。實際上唯一需要區分 u/ü 的只有 nu-/nü- 跟 lu-/lü- 這兩對而已。之所以 yu/yue 直接會對應到注音的「ㄩ」而不會跟「ㄨ」搞混,是因為「ㄩ」跟「ㄨ」的組合除了上述兩對外,其餘都是互斥的,所以不會混淆在一起。

書中藏寶:《平面設計:視覺比看看》

Alan Fetcher, Colin Forbes, Bob Gill是三位重要的英國設計師。他們組成的F/F/G工作室後來成為Pentagram。

他們三人寫過這一本原文已經絕版的Graphic Design: Visual Comparisons。中文版由吳承桓翻譯,左耳出版(2008)。一定要提的地方是:這本翻譯書幾乎忠實地復刻了原書的設計,而中文字體的選用,也讓書有一種從 70 年代跑出來的感覺。

摘錄兩個地方。一個是關於F/F/G (p. 102):

值得一提的是,F/F/G應該算是第一個擁有員工餐廳的設計公司。當我們在貝克街 (Baker Street) 正式成立工作室時,附近很難找到好的餐廳以解決每天用餐問題,所以我們決定請一位煮飯媽媽。[...] 因為這位媽媽手藝實在太好,後來連客戶也都慕名特別前來我們工作室用餐。[...]

還有就是我們明定的「夥伴關係遊戲規則」。當一起成立F/F/G工作室時,即使沒有什麼確定的原因,但我們知道這一定會成功。所以我們決定,必須要讓日後想結束夥伴關係的人很難離開。所以我們的規則是:要離開F/F/G的人不能拿到錢與公司股份,[...]。

[...] 另一項遊戲規則就是,即使其中一個夥伴沒有直接參與這個設計案,他的名字還是永遠會出現在F/F/G所有的作品集下。例如,即使我 [Bob Gill] 和Forbes幾乎沒有參與Fletcher所設計的倫敦公車海報 [...],但那還是合法屬於我的作品之一。

另外是關於譯本的製作 (p. 111):

在字體設定上,英文部分整體使用原書版權頁所標示的11/13 pt (11級字大小與13級字行距)Garamond字體,中文部分則使用具有飾線 (serif)、字體曲線與轉折風格相似於Garamond的明體。中文字級大小(8.75級)略小於英文,以求得兩種文字在視覺質量上的近似。[...]

另外,值得細數的是本書使用的中文走文方式:我們選擇這種「靠左對齊,並保持文字右側參差不齊 (flush left, ragged right)」的設定,而非一般中文常見的「左右齊行 (justified)」。[...] 因此,我們認為西方字體學理根據視覺 (optical) 原則去微調文字的觀念,可以應用到中文上;1946 年 Max Bill 在他撰寫的 “On Typography” 一文中,確認並使用的左右不齊行之走文方式(同時也成為瑞士國際風格的中心德目之一),對中文也有應用價值。所以,在本書的走文設定上,我們對空格過大的全型標點或筆劃少的中文字,以 kerning 去做字距調整,並對長篇文字以 ragging 方法針對文意作斷行。

書的正文(或「正圖」?no pun intended, heh)當然要看。上述屬於附錄的部分(不僅止於摘錄所及),算是書中藏寶。

寫程式跟做軟體

寫程式 (write a program) 跟做軟體 (develop software) 是兩個交疊但不同的概念,就好像寫作 (writing) 跟出版 (publishing) 的關係一樣。

如果我們願意承認,作者雖然是寫作的源頭(註1),但其實只是出版的一個環節,我們就能看出兩者的不同。書稿的完成只是出版的開始而已(註2),書稿要編輯、校對、排版,而這離最終產品「書」還很遙遠呢。隨便一想就有封面設計、介紹文字、印刷裝訂包裝發行,還有後面各種銷售的必要工作,例如被大書店或大通路婊。

而且,另一個常常被人忽略的面向是:這些事情不是只有商業書籍如此,主要目的不在營利的學術書籍仍然是如此。事實上,不管作者有名無名、不管主題冷門熱門,不管出版社是大還是小,甚至助印結緣書也免不了這個過程(結緣書也不是說要放哪裡就能放哪裡的)。

作者跟編輯常常不是同一群人。但是很多時候寫程式的人也得擔負類同於「編輯」的工作,這可能是很多人痛苦的來源:很多人不喜歡,或者不見得適合當自己的編輯。反之亦然。

不過,不管哪一個角色的人,都應該去認識到這兩者的不同,進而減少不必要的期望跟落差(這一點對於軟體使用者或許也是適用的:我們很少因為書皮長得醜而怪作者爛,但是同樣的事情會發生在軟體上)。但也許這就是程式寫作者們的盲點:以為高科技可以幫我們解決問題。好比說,Google Code Hosting好像解決了程式寫完後如何妥善公開一事(對一些人來說,也許「做軟體」就到這邊為止)。事實上Google Code Hosting一類的高科技正是因為減少了尋找擺放位置跟擺放方式的摩擦 (friction),反而使得「做軟體」的本質更加急迫地顯明了:那個放上去之後的「怎麼辦」才是更麻煩的事情(註 3)。

從這點來說 programmer 跟 software developer 有著工作內容的不同,但後者涵蓋了前者。

 

註 1:事實上即使是這個說法還是過度簡化的,但暫且讓我們忘了「文本有兩種,一種有可讀性 (lisible),一種有可寫性 (scriptible)」這類的說法吧,巴董事長的理念並不包括「寫作要先不傷身體,再講求效果」。但是軟體必須 do no harm 啊。

註 2:這也是過度簡化的。如果我的學生時代有哪一句話有留下深刻的銘印,應該會是:「寫作的美德只有一種,就是重寫」。

註 3:高科技(例如 CMS, VCS, BBS, DOS 等)往往只是更突顯問題的本質,而不是解決本質……

名言錦句法……

網路上很多人以為,法國詩人韓波(Arthur Rimbaud, 1854-1891)說過以下名言:

The only unbearable thing is that nothing is unbearable.

但事實上呢,至少從《韓波全集》來看,怎麼找都找不到接近這句話的法文(但是韓波確實曾經說過昆德拉引述的「要絕對現代化」──il faut être absolument moderne)。

幾乎可以肯定此句「名言」出自 1995 年由 Agnieszka Holland 執導、Christopher Hampton 原著跟改編電影劇本的 Total Eclipse

最近這句話也因為某位大人物 (?) 而紅了起來:

I disapprove of what you say, but I will defend to the death your right to say it.

根據 Wikipedia ,此句的正確出處恐為 Evelyn Beatrice Hall

所以,爭論到底是伏爾泰、泰戈爾、爾尼斯托切格瓦拉,還是拉婓爾(怎麼又回到爾,我好不容易才耍賴跳過的……)講過這句話其實無關宏旨。重點是:如果你不曾讀過原文出處,也沒有百分之百把握引言正確性,那麼其實是很容易被錯誤的電影或課文所誤導的。

也正好證明了那句西諺不假:「錯誤的引用比無知更可怕」。嘿,如果你相信有這句西諺,你也中招了。

ㄜ與ㄝ都對應到漢語拼音 e 的問題

我在很久以前的一篇文章中,提到了注音跟漢語拼音的轉換規則。

不久前我收到這篇pingback,說我的說法是有問題的,其中有一些例外。

我想該文作者顯然認為 pinyin.cin 跟 bpmf.cin (原來為 phone.cin)的資料就一定準確。而諸如「誒」被標為「ㄝˋ」,因此注音符號跟漢語拼音並不存在一對一的對應關係。

回顧來說,我當時的文章在討論拿這兩個原始資料來驗證時,就應該加註這一句的:「根據這兩個 cin 檔來說……」。

事實上,在「正規」的 Mandarin 系統中,ㄜ跟ㄝ是互斥的,而且ㄝ一定跟隨著ㄧ。就如同ㄐ跟ㄓ是互斥的道理一樣(ㄐ跟ㄓ後面不可能接相同的組合)。這也就是為什麼當初漢語拼音的設計者用同樣的拉丁字母 e 來代表這兩個音:因為用注音符號寫成的ㄝ這個音素只可能出現在ㄩㄝ跟ㄧㄝ的場合。也就是說 ue 跟 ie 中的 e 只可能轉換為ㄝ,而其他時候都只會是ㄜ。這是 Mandarin 語音系統的規律。漢語拼音的設計者同注音符號的設計者,這些學者們,當然是認識到了這個規律、服從了這個規律的支配,並且最大程度地掌握了這個規律所起到的作用,從而派生出了一個教學及語用上不會造成歧異的系統。

如果拿 pinyin.cin / phone.cin 的幾個例外來說這套轉換規則只有 “99.519%” 場合正確,那可能是對中文輸入法的資料可靠性有很大的誤會。:)

IMK-Tiger: 將 IMK 寫成的輸入法移植回 OS X Tiger 的輔助元件

這一陣子在 open source 這一塊的工作,主要是在為 OpenVanilla 0.9 做準備。目前這個名為 Oranje 的 branch 已經初步可以運作了,恢復到差不多 OV 0.6 時代的功能。

我們這一次決定打掉 OV 0.7 的 CocoaVanilla ,決定改用 IMK (InputMethodKit) 重寫 loader。IMK 應該是業界 OS-level 最棒的輸入法架構,而確實目前改用 IMK 重寫的部份,就比先前 CocoaVanilla 省下了超過一半以上的程式碼。

但是… OS X 10.4 Tiger 的使用者怎麼辦?

IMK-Tiger 是我們提出的解法。我們直接在 OS X Tiger 上架構一個 InputMethodKit 模擬層,對原本 IMK-based 的 input method server 來說,幾乎是透明的。也就是說,我們藉由這個 emu layer ,可以達到使用同一份 code base ,就可以產製出 OS X Leopard 跟 Tiger 都能使用的輸入法元件了。

IMK-Tiger 放在 Google Code Hosting 上。zonble 寫了完整的中文介紹。英文的 announcement 發表在 OV 討論區

分與至

原本以為春分秋分跟夏至冬至在外語是很難的字,結果英文的「分」是 equinox,「至」是 solstice。Equi- 是相同的意思 (例如 equivalent),nox 是夜晚(例如夜曲或夜景叫 nocturne),sols- 是太陽(例如 solar),-stice 是停止(例如停戰是 armistice)。

很多年前大概因為這樣的機會,發現原來字根這麼奧妙。

我曾經在一個會議場合被一位顯然熱愛東亞文化的白人問:為什麼「你們」的公司都喜歡取洋名。言下之意好像是說「我們」的公司名稱一定非得要是什麼拼音轉寫之類的。

我倒反而覺得商品命名這種事情應該符合某種世界性市場性1。Panasonic, Acer, Lenovo 都是這樣的例子。他老兄不知道是不是某種(事實上也是他的同胞發明的)所謂文學院念的XX研究讀太多了,對於他人使用歐語字根一事很有意見咧(況且,許多此類廠牌,到了別的語言中,或也有其他轉化為其他語言涵意的別種商標名,何必以文害義?)。這件事情倒是驗證了一個觀察:否定他人自主的選擇還自以為在主持(文化?政治?歷史的?)正義的人,說不定就是最不正義的呢2

因為今天是秋分而也很久沒有寫 blog 了,充數一筆。

註 1: 可能我最近《壹週刊》看多了,每每看到「XX 性」(xx-bility),就很想造句一則 (à 給我報報ienne)…… (以下省略一百字)

註 2: 這種鳥蛋的事情最近就有一則,還發生在 Ruby on Rails 身上。請參考這裡這裡,還有這裡。我這麼說啦,這種操作手法叫做沒骨頭又不專業。有人抗議也不聽聽人家怎麼說,24 小時內就把 framework 當中一個每個人都在用的元件隨便 deprecate 掉然後又直接搬走,然後一邊跟所有 open source developer 宣告不要碰這個東西,一邊又跟抗議的人教誨:你要珍惜你得來不易的自由。Wow, 我從來不知道自由是這樣被尊重的,還是說你的自由比我更自由,還要我們立正站好乖乖學習?

Next »