2014年12月23日星期二

The tetrahedron puzzle

大家都知道甚麼叫正四面體吧?


將一個正四面體切成兩半,交由別人重新拼合成正四面體,有幾難?


研究人工神經網絡的著名學者 Prof. Geoffrey Hinton 說,原來這是很難的,許多麻省理工的教授都搞唔!以下是其演講 "What's wrong with convolutional nets?"連結)的一部份 transcript(從 13:50 開始),相當惹笑。
Here's something you wouldn't believe. I take a simple object, like a tetrahedron. A tetrahedron is a pyramid with a triangular base. And I slice it with a plane. That's a flat thing ... I slice it with a plane. Uhm, so I get two pieces. And then I take an intelligent person, and I give him the two pieces, and I say "OK, make a tetrahedron." And I make sure he knows what a tetrahedron is. And he can't do it. Now I clearly ... now you don't believe that, presumably. It's just two pieces. Surely you can put it together to make a tetrahedron.

I present the experiment today to MIT professors. I got one sample thirty years ago, that's a professor called Carl Hewitt. He is very smart. I gave him the two pieces and ... he looked at them for a long time ... he didn't really play with them but looked at them for a long time, and determined whether he could write down a proof whether it's impossible. [laughter] So, his time to solve the puzzle is infinite. [laughter] OK?

Today I've been doing the experiment to MIT professors, and the number of minutes they take to solve the problem is about the number of years they've been in MIT. [laughter] Roughly speaking, it's definitely very ... the length of time is very positively correlated to how long they have been in MIT. [laughter]

So now I'm going to show you this puzzle, because it's extraodinary. It can't be so hard. It's completely trivial, and there's an obvious way to solve it that people don't figure out. They figure out in a few minutes, but, OK, here's the two pieces ...

(之後 Prof. Hinton 用了幾分鐘示範一些人解這個謎題時是多麼困難)

Why is this puzzle almost impossible? Why is it so hard? 'Cos it's a two-piece jigsaw puzzle. [laughter]

And the MIT professors, and ... oh, incidentally, I tried this on a Google vice president, just to reassure the MIT professors. I gave these two pieces to the Google vice president and said, "This is really a hard task. Can you make a tetrahedron?"
欲知 Google 的 VP 同 MIT professors 相比,結果如何,請看演講片段。

2014年11月30日星期日

雙英

「一個政府如果不站在人民這一邊,人民會把權力收回去」—— 蔡英文。

「公民提名會令政策向月入低於14K的基層市民傾斜,「宗教與體育界無經濟貢獻—— 梁振英。

2014年11月4日星期二

A sudden small outbreak of Umbrella Movement on Chinese Wikipedia

The statistics for the English entry "2014_Hong_Kong_protests" are nothing unusual. The entry was created on Sep 28. The number of daily page views peaked at 41,168 on Oct 2 and has been declining gradually since then. There were 3,706 views yesterday.

In contrast, the Chinese entry "雨傘革命" used to have about 300 views on every day since its creation, but on Oct 29, the figure suddenly quintupled and remained plateaued afterwards. The edit history shows that only ten to twenty edits were made on each day. So, this abrupt surge in page views is unlikely a result of an edit war.

Apparently, some Chinese community had suddenly picked up its interest in the Umbrella Movement, after the protest has lasted for a whole month. But exactly what stirred whose interests is up to everyone's guess.

2014年10月26日星期日

法家

真不明白那些權貴何以能夠臉不紅,眼不眨地說佔領行動「破壞法治」。他們口中所謂法治,根本不是法治,而是最極端的法家治術吧?佔領街頭就叫搞亂香港,那麼佔領香港,或佔據了香港行政首長的位置,壟斷了香港的政治、經濟權力,又叫甚麼?

2014年10月17日星期五

OCaml vs C++

人人皆說 functional programming (FP) 乃科學計算的未來,但夠快速的 FP 語言實在不多。以 quant 為例,那些用超級電腦計算期權價格的公司,現時仍是使用 C++ 居多。用 FP 語言的,主要用 Scala、OCaml 及 F#。Scala 要靠 JVM,而 F# 話就話 open-source,實際上仍要靠 Microsoft,兩個平台都對用家造成一些麻煩。OCaml 和 F# 都是 ML 的變種,但 OCaml 歷史非常悠久,自九十年代發展至今,已相當成熟。多處有報告說其表現與 C/C++ 不相伯仲,甚至猶有過之,令我很感興趣。前日從網上看到一篇比較 OCaml 與 C++ 表現的文章,就想在自己的機器上跑一下當中程式。

image source: www.ffconsultancy.com/ocaml/ray_tracer/index.html
 程式所做的,是 raytracing。比起那些 microbenchmarks,raytracing 總算是比較現實兼且 nontrivial 的任務。我用的電腦是今年年中買的 MacBook Air,Intel i7,8GB RAM。編譯器方面,ocamlopt 及 GNU g++ 都是用執筆時最新版本。ocamlopt 的 compiler options 與文章所載相同,g++ 則只用 -O3,沒有加上 -ffast-math 或 -funroll-all-loops。結果如下:



這個 raytracing 程式有點像那些搞碎形 (fractals) 的程式那樣,會先從一個球體中生出幾個球體,再逐層衍生出更多球體(見圖),然後計算光線。上表中最左一列的 level,就是指衍生了幾多層新球體。level 愈高,工作愈繁重。之後兩列是文章所附的 OCaml 及 C++ 程度編譯後運行所需秒數(愈細愈好)。將 C++ 的運行時間除以 OCaml 的運行時間,就得到右邊第一列的 ratio。

文章中,OCaml 與 C++ 之間互有勝負,但我這裏則除了 level 12 之外,都是 C++ 較快,不過整體來說,拿 OCaml 與 C++ 的速度,多數時候相差不夠 15%。這種程度的差距,往往隨編譯器版本而逆轉。故此我同意文章所說,兩者表現可視作相同,最少於 level 10 或以下如此。

這是相當了不起的。一直以來,不少人都相信,論執行速度的話,平均來說,用 C/C++ 所寫程式,除了僅次於用 Fortran (或 assembly language) 寫的以外,再無敵手,但正如本文文首所說,許多報告都說 OCaml 的表現與 C++ 不相伯仲(用 C++ 做科學計算的其中一個利器 FFTW library,更是用 OCaml 撰寫的)。由於 OCaml 較高階,程式遠較 C++ 的簡短,故此,使用 OCaml 應該更 productive。

之前粗略學過 Scala、Haskell 及 Julia,都是玩票性質,我覺得今次應該認真學一學 OCaml,並想一想將來會否將一部份工作改用它來做了。

不過話說回來,即使我認同 OCaml 的表現,仍是對於文章中做 benchmark 所耍的小手段感到不耐煩。

首先,不知作者有心抑或無意,於 Group 的 ctor 中 copy 了整個 std::list:

Group(Sphere b, Scenes c) : bound(b), child(c) {}

由於變數 c 實際上是用過就丟的 temporary variable,實在無必要 copy。若用 C++11 的話,只需將以上一行改為

Group(Sphere b, Scenes & c) : bound(b), child(move(c)) {}

或者若是 C++98,可寫為

Group(Sphere b, Scenes & c) : bound(b) {child.swap(c);}

這並非甚麼 premature optimization,我們本來就應該叫電腦別做多餘的事。經過以上改寫之後(只多了一個 & 符號及多了一個 move 或 swap),就有上表中以 move 標列的結果,當中可見從 level 10 開始,C++ 逐漸拋離 OCaml。

其次,文章作者說,他用的是最 "natural" 的 implementation。我覺得這實在不大對頭。若要說自然的話,程式中凡用到 std::list 的場合,都只是 push_back 以及用 iterator 從頭到尾 traverse 一次。這種情況,最自然的 implementation 並非用 std::list,而是用 std::vector。此外,文章中 C++ 的程式用了一個自製的三維向量 "Vec",但現在基本上人人都是用 Eigen3 (self-contained template headers, no BLAS needed) 或 armadillo (BLAS needed) 兩個程式庫的向量。考慮到該文章成文時,連 Eigen2 都未有,這倒是情有可原,但若用 Eigen3 的話,就可以省去文章中十幾行用來實作 Vec 結構及 unitise() 函數的程式。儘管結果仍比 OCaml 的程式長,但也沒有現在那麼誇張。OCaml 好像也有 dynamic array (DynArray ?),不知用 dynamic array 的話,相較又如何。

將 std::list 及 Vec 改為 std::vector 及 Eigen::Vector3d 之後,就有上表中用 "vectors" 標示的結果。當 level 較低的時候,由於 allocate 一枝 std::vector 比 allocate 一個 std::list 用上更多記憶體,故此所用時間可能較長。然而,level 高的時候,進出 std::vector 較快的優勢就變得明顯了。

最後,也是我最討厭的一點,就是文章作者避重就較,避談對 OCaml 不利的程況。FP 強調 immutable data,因此往往要抄寫更多記憶體。當記憶體用量夠大的時候,FP languages 的弱點就完全暴露了。文章只計算到 level 12,原因是作者的電腦不夠記憶體。這也許是事實,但若用擁有更多記憶體的電腦來跑程式的話,我們就會看到,Ocaml 的程式從 level 10 開始,表現下降得很可怕。上表中 level 14 那一行就展示得清楚。再者,FP 強調 immutable data,最大的優點是便利平行計算,可是從網上其他敘述所見,OCaml 似乎是不支援真正的平行計算的,而文章作者亦避談此缺失。

這並無改變我對OCaml 的興趣或評價,只不過這個 benchmark 再次提醒我,世上並無各方面都完美的程式語言。

2014年9月18日星期四

因愛之名

蘇格蘭今日即將全民投票,決定是否離開聯合王國,重新獨立。從新聞看統一派的標語,回想 1995 年加拿大魁北克省的獨立公投,再看中國殖民政府一向的言論,不難發現它們共通之處。



那就是,統派總喜歡強調「愛」。愛蘇格蘭,愛魁北克,愛國愛港。不過,儘管大家都主張統一,卻有點點分別 ── 前二者姑勿論真情假意,說的只是自己(我愛蘇格蘭,我愛魁北克),後者固然有掛著「愛」字頭的嘍囉(愛護××力量),背後的大老闆卻是命令別人來愛他(特首必須愛國愛港)。

2014年8月31日星期日

號外:亞洲電視將不獲續牌

【本報訊】深港特區政府今午宣布,亞洲電視的免費電視廣播牌照,將不獲續期。商務及經濟發展局局長卡片蘇表示,新牌照將授予誰家,會破天荒地由全體深港融合區市民一人一票選出。日前,經過詳細審查後,政府已從眾多申請者當中篩選出以下三家候選機構,供市民投票:
  1. 王征電視,
  2. 旺旺廣播有限公司,
  3. 中國中央電視台。
對於有市民質疑,何以香港電視的申請再次落空,卡片蘇表示,他不會評論個別個案,不過今次政府的安排,是歷史性的創舉,希望深港市民能求同存異,不要坐失良機。他嘆喟:「想點?有屎畀你就袋住先,唔係遲點連屎都無得你食!」

2014年8月21日星期四

對於那些玩冰桶的人,我只想說一句:正仆街

我膽小怕事,當人人都很正氣地瘋傳那些冰桶挑戰的新聞時,我要直到今天看見一位 motor neuron disease 患者的文章,才敢說出心底話。

我明白那批玩冰桶挑戰的人,有部份是真心想做善事的。(這類人是多數抑或少數,我就不清楚了。)

我也明白,就算我不認同別人籌款的手段,這個冰桶挑戰,也著實為一些慈善機構籌到一些善款。(可是成效有幾高,會不會大部份善款其實都是就算沒有冰桶挑戰,本來也會用來做別的善事,我就不知道了。)

然而,我情感上仍無法接受這種籌款方法。先不說將 ALS (motor neuron diseases 的一種) 的病徵稱為「漸凍人」根本就是不當的比喻,也 trivialise 了患者之苦,也不說淋一次冰水根本也不會令人感到「漸凍」。看著一班班人笑騎騎淋冰水,我真係覺得好仆街。

用一些裝置或實驗令人感受某些疾病的後果,並非新奇事(例如透過半透明膠片或霧化了的玻璃來感受白內障患者的視野)。然而,將患者的困難比擬成一種很 fashionable,很好玩,很 viral,笑騎騎地玩的遊戲?黐×線。

近日有幾位作者都不約而同地說,冰桶挑戰來到香港變了質,彷彿它本來就很正當似的。不是吧?它原本就是以做善事為理由,將別人的病況歪曲成一種遊戲。我有一位朋友去年因為 motor neuron disease 過身。你知不知道患者本身只能無奈地「獻世」,空有一身才能卻無從發揮,是多麼痛苦的事?(唔係人人都好似霍金咁「好彩」,病發咁多年後,仍可操作電腦,表達自己的意思。)你知否患者的家屬,要承受幾多精神與經濟壓力?你知否就算沒有證據顯示這種病會遺傳,患者的子女依然會恐懼?

而你班仆街,竟然喺班唔郁得嘅患者面前,笑騎騎咁自己淋冰水,「體驗」佢地嘅苦況?

如前述,我完全明白這種籌款活動有其正面意義,但既然大家咁有善心,相信都唔會介意我呢類維園阿伯好似癲狗咁吠你地啦。講完。請勿回應癲狗亂吠,即使閣下留言,我也不會回應。謝謝。

2014年8月18日星期一

吉卜力工作室場面設計手稿展

睇完,感覺好複雜。一方面,到底我應該為自己唔係行內人而感高興,抑或難過呢?借用一套唔係吉卜力作品嘅對白:


遺憾嘅係,我無實力可以講接住嘅台詞:


另一方面,我真係 literally 感動到想喊!

以前喺香港睇展覽,只試過一次有特殊感受,就係幾年前香港藝術館嘅法國印象派畫展。一些印象派開山祖師嘅真蹟,我唔係未睇過,只係之前睇箇D,都唔係我杯茶。我重記得有次喺另一個 art fair 睇畫,最令我驚喜嘅竟然唔係一眾已故大師嘅真蹟,而係某位新進歐洲印象派畫家嘅作品。然而,箇次藝術館嘅印象派畫展,有我最鍾意嘅 Monet 早期作品(渠晚期箇D,譬如非常出名嘅荷塘系列,我其實無乜感覺)。本來,從一D印刷較精美嘅粉紙書睇到,都已經喜歡到不得了,但直到見到真跡,先切身體驗到書本印得再靚,都無法完全再現原畫嘅精妙。箇一刻,真係好興奮。

比起來,今次的感受,是感動。唔係!係「大感動」至啱,係因為可以一窺動畫製作如何從無到有的真實過程的一鱗半爪而感動!難得今次唔使老遠走到日本,就可以睇到吉卜力嘅原稿真蹟。重有兩個禮拜就完啦,未睇嘅讀者,請萬勿錯過

然而,請注意今次是「手稿展」,不是完成畫的展覽。要看完成畫的話,只要買張電影 Blu-Ray Disc 自行截圖就可以。是次展覽珍貴的地方,正正是它展出的並非完成稿,而是手稿。今次展出的許多手稿上,都滿是宮崎駿或高畑勳親手加註的細節,例如畫面分幾多個各自移動的層次,移動的方向與速度如何,光線又如何……等等。據展覽所指,高畑勳乃從《飄零燕》(1974) 開始發展這套稱為「場面設計系統」的概念(亦見《藝頻》報道)。我不知此概念是由高畑勳首創,抑或獨立發明。今日驟聽起來,其細節亦不算新鮮。我對動畫製作毫無認識,但記憶中,八十年代初的電腦遊戲也有類似概念,例如高畑勳稱為 "Book" 的東西,明顯對應 Apple II 那個年代的遊戲已有的 parallax layers。然而,從場內播放訪問高畑勳的片段可見,《飄零燕》之前的日本動畫,畫面的表現方式似乎是很死板的,所以高畑勳的發明,不啻是一種突破。

展覽中有部份手稿旁邊,會播放該場面的動畫片段,以便比較。其中,以《魔女宅急便》及《隔壁的山田君》兩段片最令我覺很厲害,前者那張用精細刻度來指示 "follow" 概念,約四尺乘五尺的超大手稿,並後者的手稿與那個怒海孤舟的完成片段比較,恕我言語貧乏,只能夠說:impressive。


高畑勳之所以創造這套「場面設計系統」,是為了令統籌製作更加容易,並增進團隊整體工作效率。無論製作流程如何順暢,原來要製作一套動畫,工作仍是極其繁重的。高畑勳說,製作《飄零燕》時,宮崎駿每週都要畫三百幅場面設計手稿!就算一星期無休工作七日好了,除一除,平均每日要畫四十三幅。若然每日畫八句鐘,就是每十一分鐘就要畫一幅。當然,《飄零燕》既是早期動畫,又是電視動畫,它的手稿細節絕對不及吉卜力的電影動畫手稿那麼豐富。可是,若讀者看過漫畫《爆漫》(Bakuman,又譯《食夢者》)的話,當知道就算是可以相當「求其」的漫畫初稿,要畫幾十頁也是很吃力的事。比起來,宮崎駿的電視動畫手稿較為精細,他不只要一日畫幾十幅,還要維持同一進度幾十週,與其說他是作畫天才,更應該說他毅力驚人。成功須苦幹,信焉。

博物館強調,今次海外展覽難得之處,是它多了兩套近期作品(《風起了》及《輝耀姬物語》)的手稿展出,不過若從動畫製作的角度來看,我並不覺得這有特別價值。比較吉卜力工作室各個年代的手稿,起初製作《飄零燕》時,手稿於製作的細部指示方面,仍有些簡陃,但從《風之谷》(1984) 到《風起了》(2013) 的場面設計,細節的豐富程度就沒有顯著分別。到了《輝耀姬物語》(2013) ,手稿中反而沒有附上多少製作指示,展覽說這是因為高畑勳想按實際需要而定,但這豈非違背了創造「場面設計系統」的原意,打倒昨日之我?

怎樣都好,無論作畫(雖然手稿不是完成畫,但吉卜力的手稿,每張仍相當精美)抑或場面設計細節,似乎以《千與千尋》(2001) 為高峰,場內展品亦以《千與千尋》手稿最多。整體來說,我已不算看得仔細了,但朝早十時許入場,出場時驚覺已是下午兩點半,竟然看了四個幾鐘頭。

若說是次展覽有甚麼遺憾的話,我想大致上有四點。首先是展覽始終缺乏手稿與完成品的比較。有些概念,不看完成品的話,光看文字說明還是難以明白,例如所謂 "Harmony",我仍不知是甚麼一回事,至於所謂雙重曝光,由於相機攝影也有類似概念,看完展覽後,我好像明白,又好像不明白。

其次是燈光。今次展出的又不是十六七世紀的油畫,我不明白何以博物館的燈光要弄得這麼暗,而且還要是黃燈。手稿雖非色彩繽紛,但仍是有顏色的。可以的話,應該避免搞出色差。

第三是,看別人的網誌,方知原來博物館精品店有完整的展覽圖錄(三百大洋,包含所有展出手稿,不是五十文錢那本小圖錄)發售。點解我睇唔到?係賣晒,抑或我發雞盲?嗚嗚。

最後是參觀者的質素,不過這個還是不提了。

2014年8月6日星期三

也談威尼斯(一)

早前《主場新聞》結業,我驀地想起威尼斯。巧合的是,本週《三師會》網站亦以威尼斯比擬香港。我應該是孤陋寡聞了,直至聽他們的節目,方知原來以前已有不少人用過這個比喻。再上網一查,果不其然,沈旭暉早於 2008 年已提出香港「威尼斯化」的疑慮,而單是 Google 搜尋結果的第一頁,已顯示另有幾人評論過這個困境。更有趣的是,到了 2010 年,沈旭暉甚至說香港「威尼斯化」已算正面,我們更大的危機,是香港「桑給巴爾化」

借鑒歷史,切忌引喻失義。例如吳祥輝的《芬蘭驚艷》,借芬蘭與蘇聯的關係來比喻台灣與中國。由於芬、台兩者都是小國受強鄰壓迫,加上以前亦沒有人如此比喻過中台關係,因此吳的觀點很值得大家思考。

然而小國受強鄰壓迫的情況,古往今來,世上比比皆是。以此作討論引子沒問題,可是若問芬蘭的經驗是否值得借鑒,有甚麼可供參考,就要看實際上台灣的處境與芬蘭當年相去多遠了,而一落到細節,吳祥輝的論述就顯得淺薄了。《芬蘭驚艷》一書還好,因為蘇聯之於芬蘭,與中國之於台灣,確有幾分相似。有時甚至是不大相似的情形,台灣發生之事也令我想起芬蘭歷史。(譬如之前的服貿爭議,就令我想起,簽下可能對台灣不利的條約的馬英九總統,究竟是如芬蘭前總統 Risto Ryti 一般忍辱負重,抑或是已被投降主義打敗,甚至是賣國賊,還是不過單純的無能?)

可是到了吳的兩本續作《驚歎愛爾蘭》與《驚喜挪威》,儘管依舊有些有趣和值得思考的觀點或概念(例如《驚喜挪威》書中所謂「國家記憶」),但除了愛爾蘭與挪威兩國都是小國有強鄰和曾被外族統治之外,其歷史可比現今台灣的地方,就顯得有點缺乏。究其原因,乃書中提及的,是愛爾蘭與挪威受外族統治的歷史,然而《芬蘭驚艷》一書提及的,卻是芬蘭受到蘇聯嚴重威脅。比較現狀,儘管中國宣稱台灣乃其自古以來神聖不可分割的領土,但實際上台灣到今時今日仍只是受中國威脅,而未曾被中國(「只有一個中國,就是中華人民共和國」)統治過半天,所以以愛爾蘭與挪威來觀台灣,總覺得有些偏差。

其實拿愛爾蘭來比喻香港,可能還要貼切。日佔時期,台灣人林獻堂曾經求教於梁啟超,問如何與日本周旋。梁啟超答曰:「三十年內,中國絕無能力可以救你們,最好效愛爾蘭人之抗英。在初期,愛爾蘭人如暴動,小則以員警,大則以軍隊,終被壓殺,無一倖免。後乃變計,勾結英朝野,漸得放鬆壓力,繼而獲得參政權,也就得與英人分庭抗禮了。」以昔日被英佔的愛爾蘭來比喻今日被中佔的香港,梁啟超的建議就是說港人應該非暴力抗爭了。當然,究竟此「非暴力抗爭」是「和平佔中」抑或「袋住先」,梁啟超係戴耀廷抑或係張融、姜融或X融,就是另一個故事了。

咦?做乜咁耐都未講到威尼斯?(明智警視:「金田一,你的毛病是前置作業太長。」)原因為何並唔重要,過去已過去,像粉筆字抹咗佢。無論如何,時間有限,下回再續。

2014年7月20日星期日

The King's Speech

每聞近日政情,總想起當年英國向納粹德國宣戰當日,佐治六世的全國演說中的幾句話:
"Over and over again we have tried to find a peaceful way out of the differences between ourselves and those who are now our enemies. But it has been in vain. We have been forced into a conflict. For we are called ... to meet the challenge of a principle which ... permits a state, in the selfish pursuit of power, to disregard its treaties and its solemn pledges ... . Such a principle, stripped of all its disguise, is surely the mere primitive doctrine that might is right."
所謂莊嚴承諾,是隨時都可以反臉不認人的。那些野蠻人,無論披上幾多文明的外衣,骨子裏信奉的,始終都是「強權就是公理」。

佐治六世的演說內容,相信不少讀者已經從電影 The King's Speech 之中聽過。我剛剛讀由 Mark Logue(當年為佐治六世治療口吃的 Lionel Logue 之孫) 與 Peter Conradi 合著同名書本,發現此演說原來有兩個有趣的細節。首先,即使是如此重要的講稿,原來也有錯漏。原稿中 'threat' 一詞打漏了字母 'h',變成 'treat',不過 Lionel Logue 於講稿中為國王記低應該停頓的地方時,已留意到並更正此錯處。

其次,原來 Logue 臨時改變了講稿中幾處用字(見附錄有間線的地方),將 'my government' 改成 'ourselves',於某處將 'it' 改成 'this principle',以及將 'summon' 改成 'call'。據書中所述,Logue 認為 'my government' 與 'summon' 比較難唸,故而更改。然而書中並無解釋何以 'it' 一個單音節的字,反而變為 'this principle' 這組有四個音節的詞語。我覺得,Logue 這樣一改,演辭實在比之前更明白,可是照道理,如此重要的演辭,必須經過政府同意,方能更改。看來 Lionel Logue 此人要不是當機立斷,膽識過人,就是當年的英國政府,並無強國的「人民喉舌」那麼僵化。

附錄:英王佐治六世演說全文,1939年9月3日下午六時正。
In this grave hour, perhaps the most fateful in our history, I send to every household of my peoples, both at home and overseas, this message, spoken as I were able to cross your threshold and speak to you myself.

For the second time in the lives of most of us we are at war. Over and over again we have tried to find a peaceful way out of the differences between ourselves and those who are now our enemies. But it has been in vain. We have been forced into a conflict. For we are called, with our allies, to meet the challenge of a principle which, if it were to prevail, would be fatal to any civilised order in the world.

It is the principle which permits a state, in the selfish pursuit of power, to disregard its treaties and its solemn pledges; which sanctions the use of force, or threat of force, against the sovereignty and independence of other states.

Such a principle, stripped of all its disguise, is surely the mere primitive doctrine that might is right; and if this principle were established throughout the world, the freedom of our own country and of the whole of the British Commonwealth of Nations would be in danger. But far more than this - the peoples of the world would be kept in the bondage of fear, and all hopes of settled peace and of security of justice and liberty among nations would be ended.

This is the ultimate issue which confronts us. For the sake of all that we ourselves hold dear, and of the world order and peace, it is unthinkable that we should refuse to meet the challenge.

It is to this high purpose that I now call my people at home and my peoples across the seas, who will make our cause their own. I ask them to stand calm, firm and united in this time of trial. The task will be hard. There may be dark days ahead, and war can no longer be confined to the battlefield. But we can only do the right as we see the right, and reverently commit our cause to God. If one and all we keep resolutely faithful to it, ready for whatever service or sacrifice it may demand, then, with God's help, we shall prevail. May He bless us and keep us all.

2014年6月21日星期六

6.22 民間全民投票

昨晚於網上投了票。我明白主辦者資源有限,且當務之急為應付中國的網絡攻擊。未能顧及其餘,可以諒解。然而相比往常的投票活動,今次實在有幾個亟待改善之處:
  1. 由於主辦者並非方案的提議人,他們應該要求三個方案的提議者提供網頁,解釋方案內涵,保證網頁內容不變,並於投票網頁附上解釋三個方案的網頁連結。現時,投票網站上解釋方案內容的網頁有附註謂「資料來源: 和平佔中網站」,但不清楚是由和平佔中網站提供資料,抑或是投票主辦者自行詮釋。網頁內容,應由和平佔中網站提供為宜。
  2. 本來就應該開設多個實體票站。電子投票縱然方便,卻排拒了不諳電子產品的選民。我知,資源有限資源有限資源有限吖嘛,但既然係全民投票,就應該盡力令所有人都可以參予。今次安排,我覺得於年齡階層上,會造成很大偏差。
  3. 即使是電子投票,今次的安排也強差人意。投票者必須用智能手機 app,或者可以發出短訊的手機。若我的手機是某些不便發短訊的 feature phone 或老人手機,投票就變得很困難。若能安排用固網電話投票,才算妥善。

又一個 benchmark

從別人的網誌看到一篇做 benchmarking 的論文:A Comparison of Programming Languages in Economics,其中有些令人驚奇的結果。

比較不同程式語言的執行效率,往往引起極大爭議。一來,作比較時,實際上比較的不單單是語言本身,還牽涉了 compiler 或者 interpreter,以及程式庫。二來,各種語言均有其獨特的 features。如何用不同語言來實作同一個算則才算公平,並無定論。幾年前 Google 有人寫了篇 Loop Recognition in C++/Java/Go/Scala,對所涉各種語言,都找來熟悉該語言的工程師,先用最自然的寫法來實作同一個算則,然後再優化程式。照道理這樣做已經很公道,可是還是有工程師事後表示,若早知程式是用來做 benchmarking 的話,寫法就會不同云云。可見無論是再公平的程序,亦說服不了所有人。

三來,許多時於網上見到的都是 micro-benchmarks,它們實作的,往往都是生安白造兼且過份簡單的算則,而非來自現實問題、難度適中的算則。今次這篇論文,和前述 Google 工程師所用的算則,皆有現實背景,既不太難,亦不太易,很適合 benchmarking 用。

我自己寫的程式通常都是做科學計算,用得較多的語言中,我最熟悉的是 Matlab 和 C++,其次是 Python 和 Java,再而是 R。印象中,若計算以矩陣為主(我指的是「矩陣」matrix,不是「陣列」array),則前四種語言的表現皆差不多一樣,原因是除了 C++(但 C++ 也可以)外,Matlab, Python 或 Java 基本上都只是呼叫 BLAS 程式庫。若程式的瓶頸並非矩陣計算,則各種語言分別很大。通常若執行一個 C++ 程式要花一個時間單位,那麼 Java 就要大約 2-3 倍時間,Matlab 不用 Mex 則 6-10倍,而 Python 則時快時慢,但粗略地說,和 Matlab 同級。R 則慢過蝸牛,若講求速度的話,完全不用考慮。

那今次這篇 benchmarking 論文的結果又如何?答案是仍是 C++ 最快。各實作程式所花的時間(以 C++ 為 1.0)如下:

C++ (1.00) < Fortran (1.07) < Matlab, Mex (1.29) < Python/Numba (1.57) < Java (2.10) < Julia (2.70) < Mathematica (3.83) < Pypy (45.16) < CPython (155.31)。

以 C++, Matlab 和 R 來說,結果和我的經驗相符。然而,Julia 和 Python 的表現卻令我意外。如本網誌舊文所說,Julia 這種語法和 Matlab 有點相似的新語言可視為 "a general purpose programming language with a bias towards scientific computing"。其設計者曾於公式網站上,吹噓 Julia 有接近 C++ 的速度,然而網站上的 benchmarks,都不是來自現實問題。因此,今次 Julia 的超卓表現,應有助其宣傳攻勢。

Python 則既慢得意外,也快得意外。PyPy 和 CPython 皆比 C++ 慢了接近兩個數量級,實在始料不及。與此同時,一個我以前未聽過的 Python package,叫 Numba,卻做出 1.57 這個難以置信的結果。若其他範疇的 Python/Numba 程式皆有此表現,何止 Julia 活不了,相信連 Java 及 C++ 皆可殺掉。

不過話說回來,這個 benchmark 未必公正。從它的源程式所見,瓶頸位似乎是二維陣列的 array access。然而用各語言實作時,作者似乎一律假設二維陣列為 column-major 的。這樣就對 Fortran, Matlab 和 Julia 有利,卻不利使用 row-major convention 的 C++ 與 Python 了。無論如何,benchmark 只能作參考,不能一概而論,但今次 Julia 和 Python/Numba 的表現均相當優秀,值得關注。

2014年6月18日星期三

中國央視的鍵盤戰士新聞

有線新聞報道,中國中央電視第一、四、十三頻道皆用了不少時間,報道日前於立法會大樓的示威,不過,為甚麼立法會大樓是下列截圖中的建築物?立法會新大樓都啟用了三年了,舊最高法院大樓亦早已交回法院使用。做新聞,引述外電很正常,但自己重新包裝播出前,起碼應該搞清楚基本事實吧。


話說回來,甚麼叫「衝擊」?我不是扮懵,而是真的不明白這些共產中文詞彙。示威就是「示威」;不准你進入,你偏要進去,就是「硬闖」;若造成許多不必要的破壞,就是「大肆破壞」。乜叉叫「衝擊」?若我去示威,踢倒路旁的垃圾桶,算不算「衝擊垃圾桶」?

2014年6月14日星期六

民許警治 Policing by consent

原文連結

按《資訊自由法》所釋文件

來自:內政部
牘歷:2012年12月10日發佈

25060

我們接獲以下按照《資訊自由法 2000》作出的要求:
請閣下清楚界定內政大臣所謂「民許警治」的意思;可能的話,並輔實例。
我們於2012年12月3日發放下列資料

內政大臣提及「民許警治」時,所指的是一套有悠久傳統的英國警治思想,通稱為「卑利的九條警治原則」。(譯註:卑利 Robert Peel, 1788-1850,曾任英國內政大臣。他在任其間,創立位於蘇格蘭場的倫敦警察廳,是現代英國警隊創始人。卸任後,卑利曾兩任英國首相,中環卑利街即以其命名。)然而,這套思想並無上溯至卑利的證據,它很可能是由倫敦警察廳兩位首任廳長(Charles Rowan 與 Richard Mayne;譯註:他們聯袂出任首任廳長)所擬。從1829年起,發給每名員警的《通例》中所載的原則為:

  1. 除了用兵力和嚴刑來鎮壓,預防犯罪與騷亂也是一個辦法。
  2. 要經常明白,警察履行職務的權力,繫於公眾對警隊的存在、行動、舉止,與警方取信於民、維持信任的能力之認可。
  3. 要經常明白,取信於民,維持公眾信任與認可,亦意味著為求大家守法,須促使公眾自願合作。
  4. 要經常明白,要民眾合作的難度,與為求達到警務目的而動用武力及強迫手段的必要性成正比。
  5. 要公眾青眼有加而不減,並非靠迎合公眾輿論,而是靠經常絕無偏私地維護法紀,完全不受政策左右,毫不考慮個別法律條文為義或不義,隨時為社會上任何人提供個別服務,伸出友誼之手,而不論財富或地位;隨時表現禮節與友善良好的幽默;隨時為保護生命而自我犧牲。
  6. 只有當勸喻、建議與警告仍不足以令公眾合作到一個地步,令公眾守法與恢復秩序時,方可使用武力,而且只能是在該場所實現治安目的所需的最低程度武力。
  7. 要時刻保持與公眾的關係,使「警為民,民為警」的歷史傳統保持現實。警隊只是民眾中唯一的受薪成員,全職履行每位公民都義不容辭,關乎社會福祉與存續的職責。
  8. 要經常明白,有需要嚴守警權,避免僭用或者令人覺得僭用了司法機關報應個人或國家的權力,或者以權威身份定罪與治罪的權力。
  9. 要經常明白,罪行與騷亂之缺少,而非對付它們的警方行動之顯眼,才是對警察效率的測驗。
Essentially, as explained by the notable police historian Charles Reith in his ‘New Study of Police History ‘in 1956, it was a philosophy of policing ‘unique in history and throughout the world because it derived not from fear but almost exclusively from public co-operation with the police, induced by them designedly by behaviour which secures and maintains for them the approval, respect and affection of the public’.(譯註:此段的長句太難譯。投降。)

留意它所指的警權,乃來自公眾共同認許,而非國家權力。此非由個人認許。沒有個別人士可以撤銷他或她對警方或者一條法例的認許。

2014年5月25日星期日

老貓再有燒鬚時

呼呼呼,想不到事隔一年,又有經濟學家懷疑 PK。

上回嘅主角,係哈佛大學兩位經濟學家(見舊文:老貓亦有燒鬚時),不過,畢達哥拉斯同伍晃榮話齋,個波係圓嘅,所以今勻嘅舞台,就移到歐洲嘞。

今回故事嘅主人翁,係法國社會科學高等研究院主任兼巴黎經濟學院教授 Thomas Piketty。一提呢個名字,相信各位同當年董太聽見「郭富城」嘅時候一樣,會忍唔住問:乜水來㗎?查實近排呢位 Piketty 教授都幾有名,原因係渠所寫嘅七百頁的學術論著 Capital in the Twenty-First Century(哈佛大學出版社出版,硬皮只售港幣約兩舊水,扺食夾大件),竟然榮登 Amazon 暢銷書榜首位

「吓?哈佛大學出版嘅學術書變成 … 暢~銷~書?唔係 va?」

嗱,中國殖民政府雖然成日話香港好國際化,而鬼佬間中應酬兩句 Nylonkong,香港人亦飄飄然,但查實睇下香港嘅暢銷書榜,甚至公共圖書館入D乜嘢書,就知港人眼光有幾窄。好似 Michael Sandel 箇本《正義:一場思辨之旅》中文版,在港尚算暢銷,但其銷量唔見得可以壓倒一般流行小說。相比之下,呢本 Capital in the Twenty-First Century 不但曾榮登暢銷書榜首位,就算係在下執筆時,渠依然居高不下,位列第四,連續佔據頭一百位兩個幾月。何況 Sandel 箇本小書只係齋吹水,但 Piketty 呢本七百頁嘅大部頭著作,就整理咗好多數據。外國人接納嚴肅書籍的程度,高出港人何止幾皮。

扯遠了。 Piketty 著作嘅主旨很簡單,就係唔受管制嘅資本主義,會不斷增大貧富差距。

貧者愈貧,富者愈富,牛頭角順嫂都識得講。「佔領華爾街」之後,貧富懸殊、「最有錢嘅 1%」已成為各國民間話題,此書投人民所好,暢銷並不出奇。然而此書並非齋吹水,而是運用數據和統計分析,去支持作者的論點,令此書於大受學界和政界矚目與好評:
  • 克拉克獎得主,兼美國前財長薩默斯 (Larry Summers) 表示,作者發掘各國大量歷史數據來確立一個事實,就是最富有的 1%、0.1% 或 0.01% 人口,其所佔財富比例,於過去幾十年來劇烈上升。姑勿論 Piketty 在書中提出的各項理論能否站得住腳,單憑確立前述事實,足以令 Piketty 獲諾貝爾獎。
  • 諾貝爾經濟學獎得主克魯明 (Paul Krugman) 於其長長的書評中,認為本書革新了大家對貧富不均的長期趨勢的認識。作者所用的經濟模型,將經濟增長與財富分布的分析整合在一起,簡直是鬼斧神工。
  • 另一名諾貝爾經濟學獎得主 Joseph Stiglitz 則認為,Piketty 提供的財富分布數據,有基礎貢獻。
  • 現任英國工黨黨魁文立彬(他畢業於倫敦政治經濟學院,曾任英國財政部經濟顧問局主席)表示,他才剛開始閱讀此書,可以說,作者頗能點出民眾的感受。
當然,並非所有人都服膺 Piketty 的主張,例如薩默斯就不贊成資本主義會導至貧富差距不斷增加的見解。英倫銀行前行長金默文勳爵亦認為,儘管近年貧富差距增大,但對比百幾二百年前,貧富差距實在是縮小了。《華盛頓郵報》更有一篇文章嘲諷大家對此書的讚詞。然而無論是贊成或是反對的一方,都對 Piketty 整合數據的能力給予極高評價 ……

直到英國《金融時報》記者 Chris Giles 撰文,質疑 Piketty 的數據來源和處理方法。

Giles 從 Piketty 教授提供的原始數據(Excel 試算表;話說回來,點解D經濟學家咁鍾意用Excel?用 R 那些「特定軟件」不行嗎?)發現,原來 Piketty 的鬼斧神工,有時抄錯了數字,有時用錯了公式,有時輸打贏要,甚至無中生有:
  • 抄錯數字。例如英國的數字,書中的結果與原始數據並不吻合。例如作者說近四十年來貧富差距不斷上升,但根據原始數據,其實是反覆下跌。
  • 用錯公式。例如作者計算全歐洲的財富不均程度時,作者只用各國結果簡單地平均,而不考慮各國人口差異。
  • 輸打贏要。這個不清楚 Giles 是何所指,但前述金默文的文章,亦有類似看法。金默文認為 Piketty 不應只注視近四十年來的貧富差距上升,而無視 1910-70 年間貧富差距不斷縮窄的事實。Piketty 認為 1910-70 其間變化為例外情況,但金默文並不贊同。
  • 無中生有。例如美國方面並無 1870 至 1960 年間財富分布的數據,但 Piketty 竟然可以在畫出這段期間的趨勢來。
事發之後,Piketty 教授很快就回應。他和上次 PK 的 哈佛大學的 Reinhart 與 Rogoff 教授一樣,都係唔認錯,不過其回應頗有陸捌玖(或近期張炳良)語言偽術之妙:
“I have no doubt that my historical data series can be improved and will be improved in the future ... but I would be very surprised if any of the substantive conclusion about the long-run evolution of wealth distributions was much affected by these improvements.”
幸運的是,比起上次哈佛大學的「Reinhart 與 Rogoff 兩教授 PK 事件」,今次各方評論似乎都未能斷定 Piketty 的統計錯誤是否會令其研究結果完全無效,所以這次暫時都只是「懷疑 PK 事件」,不過網上已有口痕友問,事件會否影響 Piketty 將來得到 Nobel Prize 的機會。

咁,呢單嘢究竟有乜啟示?答案又是:認錯,真係好難!不過今次各方評論都重提舊年 Reinhart 與 Rogoff 兩教授的 PK 事件,可見衰一次就被人一世記住,好可怕!有錯都係快D認比較好。

相關連結

2014年5月13日星期二

對聯

網友六十大壽,我身為塘邊鶴讀者,亦不妨祝福。心血來潮,就湊了一副對聯:
曆元更始,
花甲重周。
「花甲重周」是古語。古時,慶六十大壽就可以說「花甲方周/年周」,慶百廿就說「花甲重周/再周」。上述對聯用白話來說,意思就是「日曆(當然是農曆)過了六十年,又重新開始了,祝你再過六十年!」若要慶祝現在這個花甲,而非預祝下一次,以「方」代「重」即可。

對聯首句,為自家創作。我肚中墨水不多,能夠臨時對出這樣的東東,已覺滿意。然而此對聯仍未完美,例如「曆」對「花」就不算夾。未知大家有何好主意?
下聯:花甲方/年/重/再周
上聯=?

2014年4月30日星期三

公廁的信封底計算

大陸小童在港當街屙屎,引起中港罵戰。有大陸評論認為此非大陸人之錯,而是香港公廁太少。

幾年前北京奧運會,中共大搞形像工程,花大錢起公廁,據悉每五百米就有一間(BBC 引述大倫敦議會研究)。北京市政府則聲稱,以公廁數量而言,北京市乃世界第一。即管假設中共並無報大數,而且每所公廁都 functional。以此作準繩,香港情況又如何?

根據政府資料,2011 年,食環署轄下公廁共有 851 個。

香港島與九龍人口約佔全港人口 47.5% (2008 年資料)。

假設公廁密度與人口密度大致成正比,香港島與九龍的公廁總數就大約有 404.225 個。

香港島與九龍的總面積約為 128 平方公里。

故此,每 128/404.225 = 0.3167 平方公里就有一個公廁。

取 0.3167 的平方根,我們粗略估計,香港島與九龍區每 562 米就有一個公廁。

這與實際情況當然有出入。公廁密度與人口密度未必成正比,香港公廁亦非位於一個個相鄰正方形格子的中心,香港島大部份地方更是人煙稀少,真正市區人口密度則超高。然而以上粗略估算,起碼顯示香港公廁密度,至少應該和北京聲稱的為同一個數量級。若說遊客不諳地理,不知公廁何在,還說得過去,但說香港缺少公廁,就站不住腳。

何況市區除了政府公廁,商場亦有廁所,而且外國遊客也沒有在港隨街屙屎。事實上,香港連狗隻大便,狗主也要先於地上鋪好報紙,然後包妥糞便,放入狗糞箱。港人與狗不得遺糞,大陸人則例外,這不叫「包容」,而是殖民者要求特權,歧視本地人。

我想起幾年前的九鐵故事 ── 「這裏是中國的地方!你管不着!」要是那時有人將片段放上 YouTube,肯定震驚全港。相比之下,今次事件只是小巫見大巫而已。

2014年4月19日星期六

乜春乜乸(二)

「主場新聞」昨日有文章題為《彭志銘講乜「春袋」?》,批評彭志銘以「䘒袋」作「春袋」本字不妥,我亦有同感。我初讀文章時的第一個想法,卻是「『春』的本字不就是『』嗎?」

廣東話並非百分百從中土漢語演變而來,有些廣東話極有可能是沒有傳統漢字本字的。既然稱卵或卵狀物為 ceon1 是廣東話,廣東人又造了「膥」字來表音,照道理該字就是 ceon1 的本字才對。然而作者說:
事實上,粵語很早便有用「春」字解作「卵」的記載。有「廣東徐霞客」美稱的清代士人屈大均,在康熙十七年(1678年)撰寫的《廣東新語》中,其《卷十一‧文語‧土言》便提到:

    廣州謂卵曰春,曰魚春,曰蝦春,曰鵝春,曰雞春、鴨春。
至此,作者的論點並不強。須知《廣東新語》乃人物及方物志,並非語言專著。屈氏提及魚春、蝦春等等時,有可能只着重廣東人如何講,而非廣東人如何寫。事實上,《廣東新語‧文語‧土語》亦提到「廣州謂新婦曰心抱」,可是「心抱」並非本字,「新婦」才是正寫。該詞的「抱」音乃從「婦」的古音而來(「古無輕脣音」理論),而「心」音乃「新」變讀,早已是學界共識。由此可見,儘管《廣東新語》很值得參考,我們卻不能拿它當正字書。

然而作者再翻書,卻真的翻出道理來:
另在《卷二十四‧蟲語‧蝦》則再次提到:

    一種名蝦春,粵方言,凡禽魚卵皆曰春,魚卵亦曰魚春子。唐時吳郡貢魚春子,即魚子也。
「唐時吳郡貢魚春子」?這是有趣的新聞呀。若然屬實,那就有兩個含義。第一,稱卵為 ceon1,根本並非廣東話,唐代揚州話也是這麼說。第二,即然唐代已以「春」作 ceon1,而 ceon1 又不是廣東話,那麼後來廣東人所造「膥」字,就不應視為本字了。

不過且慢,「唐時吳郡貢魚春子」一說何來?若然是屈大均耳聞,或出自接近屈氏那個年代(即清初)的文獻記載,那麼也有可能是文獻作者假借同音字,說服力大打折扣。

好在,網上不難找到此說出處。元人馬端臨編撰的《文獻通考‧正文‧卷二十二‧土貢考一》,就列出了「唐天下諸部每年常貢」當中,吳郡的貢品確有「春子五升」。春子是否就是魚卵?宋人范成大認為是。他於《吳郡志‧卷一‧土貢》當中說,唐代土貢有「魚春子」,而且「春子疑即魚子也」。儘管無肯定答案,但既然不同年代、不同地域的古人都以「春」作卵,我們也就不必多慮了。未有新資料之前,大可視「春」為 ceon1 的本字。

有論者(如陳雲)經常說粵語保存了中土雅言,我實在不大喜歡這種說法,一來覺得它過於自大,二來其「大中華膠」味道太重。然而不論「春」是否「雅」,這個早已於中土消失,但仍為粵語常用的口語詞,其根源竟可追溯至唐代那麼古,真是令人意外。

2014年4月16日星期三

書法的玄機

報載,日前民建聯辦籌款晚會,席間由中聯辦主任張曉明所書一幅「駿程萬里」,竟獲世茂房地產主席許榮茂以1380萬元投得。相比之下,早前公民黨拍賣中國著名畫家丁雄泉的畫作,亦只是籌得廿六萬。坊間多批評此乃赤裸裸的利益輸送(例如《都是那些日子》的網主Erynnyes君就寫得清楚明白),但很少人留意到這幅書法的玄機。


見上圖。這一幅「駿程萬里」,雖稱不上名家手筆,但「程、萬、里」三字尚算端正,何解「駿」字的馬部首會寫得如此歪斜?好明顯:
張曉明呢條盲丙,一開始就寫了別字:「浚」!直到發現時,索性補筆,連重新寫過都懶!
咁鬼求其嘅墨「補」,都賣到過千萬,所謂「眼前鬼卒皆為妖」,信焉。

2014年4月5日星期六

換幾隻字又是一條題目

小馬是中華民國總統,他透過海協會和海基會,與中華人民共和國簽訂《海峽兩岸服務貿易協議》(下稱「服貿」)。台灣民間有人認為不應通過協議,或至少應該將協議交由立法院逐條審查。這種主張的主因是甚麼?

A. 小馬可從長計議,與大陸磋商對台灣更有利的條款。
B. 小馬治下的庶民未能分享此協議所帶來的利益。
C. 中華人民共和國的動機或善意並未確定。
D. 小馬可先與其他法制更完善,更平等地對待台灣的國家先簽署自由貿易協議。

Inspired by 高登討論區



話說回來,儘管英文試卷中用上 "meeting" 一詞並沒有錯,但這種私人會面,稱為 "meetup" 較佳吧?"Meeting" 聽起來,總好像甚麼會議似的。

2014年3月22日星期六

服貿網摘

本想上網找些談服貿的文章看看,結果發現所看的幾乎都不是台灣人寫的 …… 看來是我腦筋出毛病了。台、港報章的新聞就略過不提了,以下另外幾篇較有意思的:
  • 服貿自救寶典(I) : 服貿協議將對誰有影響。鄭秀玲教授的懶人包,好歹也要看看吧。
  • 懶人包:那些服貿反對者(故意)忘記告訴你的事…。贊成服貿一方反駁鄭秀玲教授。
  • 用懶人包堆疊而成的公民意識。放在香港的話,不知會否被譏為離地、和理非非的犬儒,或者被 "plasticized",但我覺得讓頭腦冷靜一下是好的。
  • 蔡宗珍教授,《人權與正義》(從《玉門春風》網誌知道有此文章) 。文章談的並非贊成或反對服貿,而是從憲法觀點看服貿條文存查是否合乎程序公義,值得一讀。
  • 「如果你心裡也反對政府,做做樣子,放我過去吧。」我這個外人並無資格說三道四,但坦白說,聽到這句話,我覺得很不自在,也很迷惑。學生佔領立法院,可視作公民抗命,這個我沒有意見,但無論通過服貿會否影響台灣主權存亡,台灣都不是面臨美國人所謂「明顯而迫切的危險」(clear and present danger),而就算警察清場,也看不出會有流血鎮壓的可能。在此情況下,示威者與警方都只是各安其職,一邊公民抗命,一邊維持治安而已。慫恿警察「做做樣子」,不執行任務,其實等於慫恿警察放棄政治中立。我不清楚台灣的公務員傳統,但香港受英國公務員傳統熏陶,這方面是比較敏感的,而一想到佔領中環時,會不會有人這樣呼籲警察,或應不應如此呼籲,我就覺得很迷惑。(當然,這是無謂的擔心,因為我城的朝廷鷹犬,是絕不會聽從市民呼籲的,反而會拿「紀律部隊」、「社會安寧」、「維護法紀」等等來作擋箭牌。)
  • Taiwanese Occupy Legislature Over China Pact; The Diplomat. 這是一眾英語媒體報道中,寫得較深入的一篇,勝於路透社經濟學人衛報BBC外交政策雜誌CNN的報道,但相對網上大量的中文文章,仍有不足。讀這些報章的讀者留言時,倒偶有驚喜。例如有台灣讀者指中國對台灣有敵意,有個扮西人的五毛讀者就走出來辯護,大意是說現在已不是九十年代那個用導彈恐嚇台灣的年代了,現在中國只想和台灣經濟交流之類。誰知接著就有另一位台灣讀者引用台灣官方資料,說2012年中國瞄準台灣的導彈數目,比先前的1400支增加了200支,令我看得哈哈笑。那位五毛之後就支開話題,轉談其他了。
  • 环球时报:台“立法院”被攻占,不妨围观。中國的立場,當然也是必看。文章中有這麼一句:「《服贸协议》是两岸ECFA后续协议之一,它的总精神是两岸互利,但大陆方面开放的服务业项目要远多于台湾方面,大陆的让利不容否认 」當年和香港簽 CEPA,明明也是互惠互利,中共媒體卻形容為「中央送給香港的大禮」,而現在的 ECFA 卻說成「兩岸互利」,何解?無他,香港已成囊中物,但台灣仍需統戰也。然而,文章剛說完「兩岸互利」,就已經不甘心,忍不住要說「大陸的讓利不容否認」了。天下沒有白吃的午餐,當有一日這齣《浮士德》演到尾聲,恐怕台灣人就會聽到大陸恩主的名言 ── 「要不是有大陸照顧,你們台灣早就完蛋了。」
  • 丘亦生 - 「慘痛」的CEPA。溫故知新。
  • 給台灣的朋友:跟大陸談服貿有如跟騙子談合約。回心一想,上面那個反駁鄭秀玲的懶人包是有其道理的,但大前提是對手並非那個強大、缺乏法治精神兼無時無刻不想吃掉你的國家。

2014年3月21日星期五

網文偶讀之百年一遇

  1. R.J. Oosterbann, Frequency and regression analysis of hydrologic data (pdf) 
  2. Floods: Recurrence intervals and 100-year floods; USGS 
  3. 看香港如何防“水浸” 排水干渠系统200年一遇;北京晚報,2012年07月22日 
  4. 香港渠務署網頁
兩年前七月廿一日的北京暴雨,據說令全中國非常感動,各人為了賑災,有錢出錢,有妹捐妹。內地大部份的報章都稱此暴雨為「百年一遇」,局部地方的單日降雨量甚至是「五百年一遇」云云,惹來網民嘲弄,謂「在我短短的一生裡,百年一遇的洪水見過10次,千年一遇的地震見過2次,唯獨四年一遇的全民大選還沒遇見過」。這句譏諷話獲內地網民瘋傳之餘,報章亦有人指摘「官方」以「百年一遇」之說來推卸責任,例如《金羊網》就有篇專欄文章說:
筆者認為,說白了,無論是推出“40年一遇”、“60年一遇”、“61年一遇” 之說,還是拋出“百年一遇”、“接近五百年一遇”之論,無非就是想告訴大家︰這是老天爺的錯,要怪就怪老天爺去吧。

「百年一遇」的定義
「百年一遇」指的其實是自然現象的重現期 (return period)。「重現期」是大學專科(譬如水利工程學)術語,但它牽涉的統計概念只屬高中程度。簡單來說,若某自然現象 A,於某單位時間(譬如一日)內發生的機會率為 p,那麼其重現期(譬如以日數計),就是 1/p 個時間單位。

詳細一點來說,當我們談及重現期的時候,背後假設了 A 於每個單位時間內發生與否,皆為獨立事件,亦即是假設 A 是 i.i.d. Bernoulli(p),而所謂 A 的重現期,就是距離下一次觀察到 A 所需的平均時間。譬如我們以日為單位,現在是第一日的開首,而下一次要第 $T$ 日才觀察到 A,那麼 A 的重現期,以日數計就是 $E(T)$。很明顯:
  • 第一日就觀察到 A(亦即 T=1)的機會率為 $p$;
  • 第二日才觀察到 A(亦即 T=2)的機會率為 $qp$($q=1-p$);
  • 第三日才觀察到 A(亦即 T=3)的機會率為 $q^2p$;
  • 第 n 日才觀察到 A(亦即 T=n)的機會率為 $q^{n-1}p$;
  • 故此 $E(T) =  p + 2qp + 3q^2p + ... + nq^{n-1}p + ...$(練習)。若讀者念過大一統計學的話,當然知道 T 依隨的實乃參數為 p 的 geometric distribution。
「重現期」既是科學術語,有關現象的定義自然要準確。假若我說「雨是 7.5 日一遇」,是沒意思的。換作「天文台沙田氣象站的雨,是 7.5 日一遇」好一點,因為指明了事件發生的地方。換成「天文台沙田氣象站錄得 40 毫米以上的單日降雨量,乃 7.5 日一遇的事件」就更好,因為說明了談話者所關心的是多大的雨。

網民嘲諷中共「官方」稱這次事件乃百年一遇,然而我找過一些內地大報,如《人民日報》、《光明日報》與《中國日報》,若不計轉載內容,它們均無提過該暴雨為百年一遇,例如《中國日報》一篇報道就只是說這次是 the most devastating downpour in the Chinese capital for 61 years。中國氣象局、北京市氣象局及其轄下機構好像也沒有以「百年一遇」來形容該次暴雨。所以,公道一點地說,當時的「百年一遇」之說,並未得到中共中央或氣象部門認可。

一些北京報紙,如《北京青年報》、《新京報》或《北京晨報》,倒報道過「百年一遇」一說,而且它們的消息來源皆為「北京市人民政府防汛抗旱指揮部副指揮潘安君」。據《北京晨報》報道:
市气候中心昨天公布的数据显示,比起21日历史罕见的大暴雨,自1951年有完整气象记录以来的京城历史上,单日降雨量排名“亚军”和“季军”的降雨日分别为1952年7月21日和1954年8月9日,但老天爷降下的雨水比起“冠军”却远远不及。
   昨天,市防汛抗旱指挥部副指挥、市水务局副局长潘安君通报了此次特大暴雨的四个“历史罕见”:降雨总量之多“历史罕见”,全市平均降雨量170毫米,城区平均降雨量215毫米,为新中国成立以来最大一次降雨过程,房山、城近郊区、平谷和顺义平均雨量均在200毫米以上,降雨量在100毫米以上的面积占本市总面积的86%以上;强降雨历时之长“历史罕见”,一直持续近16小时;局部雨强之大“历史罕见”,全市最大点房山区河北镇为460毫米,接近五百年一遇,城区最大点石景山模式口328毫米,达到百年一遇,……
從上述報道,可見:
  1. 潘安君只說過而北京當日的全市單日平均降雨量屬「新中國」成立以來之冠,並沒說此降雨量是「百年一遇」。
  2. 然而他確有聲稱「石景山模式口」當日雨量是「百年一遇」,更說「房山區河北鎮」的降雨量為「五百年一遇」。

如何估計重現期
前面提到一個現象的重現期,是距離它下次發生的平均時間。要估計這個期望值,從文獻所見,常用方法似有三種。

第一種是以簡單的相對頻數來計算事件發生的概率 p,從而推算重現期 $E(T)$。舉例說,若根據過往記錄,某 B 區於過去十年(n = 3652 日)當中,有 m = 13 日的單日降雨量超過 100 毫米,那麼,對於「B 區的單日降雨量達100 毫米以上」這個事件,我們所估計的 p 就是 $\frac{m}{n} = \frac{13}{3652} = 0.0036$,而此事件的重現期為 $E(T) = \frac1p = 281$ 日,或者 0.77 年。因此,若今天 B 區剛巧錄得 100 毫米以上的單日降雨量,我們可以稱這場雨為「0.77 年一遇」。

第二種方法是用有序統計 (order statistics)。假設我們將前例中 3652 個單日降雨量由大至小排列,發現當中排第 r = 13 的單日降雨量為 102 毫米,那麼,對於「B 區的單日降雨量達 102 毫米以上」這個事件,我們估計 $p = \frac{r}{n+1} = \frac{13}{3653}$(留意此處與第一種方法不同,分母為 n+1),而重現期為 $E(T) = \frac1p$,同樣大概是「0.77 年一遇」。

第三種方法是 distribution fitting,亦即是將過去的觀測記錄模配到理論上的統計分佈之中。若模配的是長期平均值的分佈的話(例如每年平均單日降雨量),由於大數定律,用 normal distribution 就可以了;若模配的是最大值的分佈的話(例如每年最高單日降雨量), 較常用的則有 Gumbel distribution 與 exponential distribution 兩種。如何將觀察資料模配到理論分佈之中,或者如何檢定模配的合適度,是大學統計學的內容,此處不贅。

假設我們手頭上只有某地過往 N 年的單日降雨量記錄,可以證明(練習),無論今日我們觀察到該地的單日降雨量為何,若用上述頭兩種方法,而且 Y>N+1,我們是絕無可能得出今日這場雨是「Y 年一遇」這個結論的。《北京晨報》說北京自 1951 年起有完整氣象記錄。其實中共建政後,北京於 1951 年建立第一所氣象站,當時是否已有「完整氣象記錄」,不得而知,但就算有,從 1951 年至 2012 年才不過 61 年,因此,若說北京雨災當日,「石景山模式口」的降雨量是「百年一遇」,甚至「房山區河北鎮」的降雨量為「五百年一遇」,是絕無根據的。

若用的是第三種方法,由於所用的分佈是伸延至無限大的連續曲線,無論如何大的降雨量,我們也的確可以估計出它的重現期。問題是,若降雨量像前述的北京暴雨那樣,完全高於過往最高記錄,則如此推算出來的重現期,實際上等於是用外插法 (extrapolation) 取得。用 normal values 來估計 extreme value distribution,或者借用近年新興的說法,以白天鵝來估計黑天鵝 (black swan),是任何受過良好基本統計訓練的大學生,都不會視為可靠的做法。

這不是說水利工程師不會用只得幾十或一百年的資料來估計「二百年一遇」事件的規模。事實上,以我們香港的渠務署為例,它對於市區排水幹渠系統(urban drainage trunk system,「幹渠」即是排駁大型集水區、防洪標準最高的渠道)與鄉郊的防洪堤堰 (flood protection bund) 的設計標準,是必須能應付「二百年一遇」的水浸。只是,工程師除了要對特定的重現期估計洪水或降雨規模之外,還要估計有關的信賴區間 (confidence interval)。更重要的,是渠務署會不時監察排水系統的表現,而不是紙上談兵。「重現期」是用來幫助工程師估計排水系統所需的設計參數,並非供官員於洪水雨災發生後用作遁辭。

2014年3月19日星期三

StackEdit: still no juice

曾有某作者謂,現今 computing 一詞,早已脫離當初 numerical computing 的含義。若你寫的程式主要是為了科學計算,已經算是少數民族;若你的目標平台並非超級電腦、GPU 或者 SETI@home 式的 distributed computing 架構,而只是家中一部爛鬼PC裏面只得一粒的CPU其中的一個core,感覺就更加寒酸,有口難言。

但係唔聲唔聲,問題唔會自動消失。好在平日寫程式,遇到的最大問題,只是寫 documentation。科學計算用的程式與其他程式不同,靠寫在程式檔案裏頭的 comments 去解釋算則,除非算則本身是幾句可以講完,否則基本上無可能看得明白,必須另外寫一篇 LaTeX 格式的文件才清楚。然而,儘管用 LaTeX 作基本排版是很容易的事情,但若要版面悅目好讀,就麻煩得多。要是有較大的圖表的話,排版就更考功夫,甚至難以控制。萬一要打中文,則更叫人頭痛。何況 markups 始終都不及 markdowns 簡潔,所以即使我已用了 LaTeX 這麼多年,仍是無時無刻不想跳船。

幾年前有了 MathOverflowMathematics Stack Exchange,終於嚐到 MathJax 的甜頭:毋須「特定軟件」,只需用 browser,即可混合 markdowns 和 LaTeX,輕輕鬆鬆打數式,兼且 what you see is what you get。(其實近廿年前也有類似產物,就是 IBM TechExplorer,可是這是 browser plugin,每一位文件讀者均要在電腦上安裝,因此於學界不算普及。TechExplorer 的顯示效果不錯;當然,現今的 MathJax 更理想。)然而 MO 與 MSE 是討論區,不是寫 documentation 用的網站。直至去年 StackEdit 面世,打開 Google Chrome browser 就可以用 MathJax 和 markdown 寫文件,出來的效果超漂亮,又可以和 Google Drive 或 Dropbox 同步,令我非常憧憬。

可惜,日前試將自己其中一份 documentation 改用 StackEdit 重寫,發現一個很大的問題,就是 StackEdit 的 table support 非常 buggy。原則上,markdowns 只支援極簡單的表格格式,但 StackEdit 自稱支援 HTML 表格,因此本應沒有問題。然而試用之後,我卻發現 StackEdit 連簡單的 <td colspan="2" align="center"> 都無法正確處理,複雜一點的列表就更不用說。

另外有兩個比較個人的問題。其一是我不喜歡 StackEdit 乃 online editor,萬一電腦斷線就不能用;其二是若 documentation 包含影像的話,就只能連結放在雲端硬碟上的影像。用家當然可以另行將影像檔案拷貝到自家電腦上,但由於連結的只能是雲端版本,自己留底就顯得有點甩頭甩骨。

以上兩點都令我感到很不自在,故此暫時仍得依賴 LaTeX 這艘難以駕馭的船。有時感覺很唏噓。十幾廿年來,科技不斷進步,但在自己的 niche,科技進步彷彿特別慢,連基礎問題都未能解決。

勿因蟲廢言(三)

基於莫名其妙的原因,昨日忽然有較多讀者閱讀本網誌上週的文章《勿因蟲廢言(二)》。即使此處並非人氣網站,文章刊登與瀏覽量高峰之間的時差,也從未達四日那麼長。無論原因為何,重讀舊文一遍之後,為免讀者誤會,且容我澄清一下。

是次 HKUPOP 「特首民望調查」,梁振英的平均得分低於 50。梁粉認為這個結果有誤導之嫌,並提出幾項論據,其中較注目的一項,指受訪者所打的 998 個分數中,有 91 個屬零分這個「極端分數」,拉低了平均分數。

我不認為這個論據成立,原因如下:

  1. 有時計算平均數,我們的確希望排除「極端」數值(離群值,outliers)的影響。然而所謂「極端」,指的不單是樣本數字的大小,還有該樣本數字出現的概率。換句話說,我們要排除的,是極端罕見而且又有極端數值的樣本的影響。舉例說,設想某個介乎 0 至 100 的數字 X,若出現 X=0 的概率為 0.49505,出現 X=100 的概率也是 0.49505,而出現 X=1, X=2, ... 以至 X=99 的概率,各為 0.0001。那麼,儘管 0 與 100 是 X 的可能數值中極小與極大的兩個,但它們才是正常的數字,絕不應排除。
  2. 我們並無先驗 (a priori) 理由認為「特首民望調查」中的 0 與 100 分份屬罕見。故此它們應視為正常樣本數字,而非離群值。
  3. 若論語意的話,由於問卷只解釋了 0, 50 與 100 三個分數的意義,所以受訪者揀這三個分數,比揀其他分數更正常。因此,0 和 100 更不應視為離群值。
  4. 何況是次 998 個分數中,接近 9%(91 個)是零分。有如此多零分,我們更有理由相信它們並非離群值,而且受訪者所打分數其實屬多峰分布 (multimodal distribution),而非類似鐘形曲線 (bell curve) 的單峰分布 (unimodal distribution)。
  5. 退一步說,就假設分數呈單峰分布,而 0 與 100 是離群值好了。由於有效分數只可介乎 0 與 100 之間,故此屬有界分布 (bounded domain distribution)。一般而言,相比無界分布,在有界分布中,離群值對平均數不會有嚴重影響。
  6. 實際上,今次樣本,在不加權的情況下,就算我們略去高低各一成樣本數字,而計算截尾平均 (trimmed mean),結果仍與簡單的樣本平均數無大分別,兼且仍低於 50 分。

由此可見,梁粉圍繞「極端數值」的論據並不成立。

梁粉的批評,有另一個毛病,就是無視了平均分應該加權計算這個事實。

由於社會因素(例如從日間到黃昏,留在家中的成年人,應以家庭主婦和長者佔多),用固網電話做民意調查,必然有某類人會較少受訪 (under-represented),而另一類人則訪問過多 (over-represented)。為了修正這個誤差,我們就要以受訪者的統計特徵(例如年齡、性別等等)來分組,將各組人佔受訪者總數比例,與人口普查所得的比例比較。若發現某組人於訪問中所佔比例太小,這一組樣本就要加重權數。這就是做民意調查時,受訪者經常會被問及年齡、性別等等個人資料的原因。

且不說今次調查中,打低於 50 分的受訪者,其實比打高於 50 分的還要多。就算給超過 50 分的受訪者真過半,若他們是 over-represented,一經加權修正,出來的結果也可能比 50 分低。

梁振英所得的平均分,加權後為 47.5(也就是 HKUPOP 公布的數字),未過 50,但此分數只是單點估計 (point estimate)。既是抽樣調查,就必然有統計誤差。如何分析這個統計誤差?有一篇由署名「陳電鋸」的大學博士生所寫網誌,就用了正統的 bootstrap method 來分析。結果顯示,即使考慮了統計誤差之後,我們仍有信心說,梁振英所得的加權平均分,明顯低於 50。

「輔仁媒體」刊登了另一篇反駁梁粉的文章。文章作者處理權數的方法並不妥當(概念上,權數應施加在樣本數字的出現頻率上,而非樣本數字本身;若果只是計算加權平均數這個單點估計,兩者效果並無分別,但若要做其他分析,就必須搞清楚概念),不過該文章也有有道理和有趣的地方,不妨一讀。

梁粉的另一項批評,是 HKUPOP 使用平均分不妥。這方面我是同意的,但我認為更根本的問題,並非在於「平均分」,而是曖昧不明的「分數」本身。

HKUPOP 的問卷只指明了 0-100 分這把量尺中其中三點(0、50 及 100)的意義,其他分數刻度的意思曖昧不明。儘管根據陳電鋸另一篇文章分析,多年來從 HKUPOP 調查計算所得的「特首民望」平均分數,與中大亞太研究所獨立調查所得大致吻合(不過他並無說清楚,其文章所指有很強相關的,究竟是兩個研究所的民望指數,還是兩組指數的升跌),然而,這頂多表示市民於大概同一時段內,心中所用的量尺大體一致,卻不能為升跌的幅度賦予任何意義。我們無從判斷,心中量尺刻度的意義,是否隨時而變。同是從 30 跌至 20,若於不同時間發生,意義是否一樣?即使現刻,我們亦無從判斷,能令民望從 47.5 升至 57.5 的政績,是否與能令民望從 47.5 跌至 37.5 的過失等量齊觀。

若然我們不能說明民望指數變幅的實際含義的話,「民望指數大跌」與「民望大跌」就難言是同一回事。若有不明就裏的受眾搞錯了,就算兩所研究機構並非存心誤導,伯仁也是為他們而死。

2014年3月15日星期六

勿因蟲廢言(二)

上週香港發生了兩單非常嚴重的事件,其一是警方竟然闖入區議會,抬走正在正常開會的區議員;其二是政府以一個極其荒謬的理由,要求明明應該只受《電訊條例》監管的「香港電視網絡」流動電視業務,亦要受《廣播條例》監管,令港視於正式開台之前,必須取得本地免費或收費電視節目服務牌照。

儘管香港淪為中國殖民地以後,情況一直變壞,市民也一直說「低處未算低」,然而今次這兩宗事件,卻是香港正式告別英治年代政治格局的里程碑。舊日講求公務員政治中立,和講究規章制度的精神,今日已完完全全淪為「親疏有別」、「法律因人而異」的人治局面。兩天前於電視上聽見中國總理李克強說「中國是法治國家,不論是誰,不論職位高低,法律面前人人平等」,我聽了只得冷笑。黨大於法的國家一邊自詡法治,一邊摧殘其殖民地原有的法治制度;自稱「人民民主專政」,卻擁有永遠執政黨的野蠻人,大言不慚,指點有半熟代議政制的文明人何謂民主,何謂法治,何謂普選……甚麼叫「匪夷所思」,香港歷史就是最佳註腳。

比起上述兩宗嚴重事件,今日我於「主場新聞」看到的鬧劇就顯得非常次要,然而此事上我總算有一些實質的東西可以說,故此不妨一談。鬧劇的起因,又是「梁粉」批鬥鍾庭耀。詳情請閱以下兩篇立場迥異的網絡文章:
公說公有道,婆說婆有理?
「梁粉」批評如下:
依據港大最新的民調,以100分為滿分,特首僅獲47.5平均分,當然就被評為不合格了。然而,只要打開原始資料,就會發現998個評分者中,原來有多達615人、即逾6成人均給予特首50或以上的合格分數,其中更有29人給予100分;僅有383人給予50以下的評分。那麼,為何特首的評分又會不合格呢?最大的問題在於有91人個受訪者給予0分,就是這些極端評分,令特首的平均分大幅度拉低。
「主場」及香港大學民意研究計劃研究經理李偉健則反駁:
 評論指有91個0分樣本「拉低」平均分,沒有提到29個100分樣本同時會「拉高」平均分。港大民意計劃研究經理李偉健向《主場新聞》解釋,民望調查詢問受訪者給予官員0分至100分的評分,相信受訪者誠實回答,無論樣本是0分或是100分,都應納入計算,除非是101分,在數值範圍之外才會剔走。

李偉健強調,歷來民望調查同樣沿用這方法,公布按評分計算算術平均值(Arithmetic Mean),「沒有篩走特別低、特別高的評分。」
開門見山。我認為「梁粉」的批評有其道理,但其為己方所作辯解,一樣有問題。另一邊廂,「港大民研」的統計方法也有毛病。

Lies, damned lies, and 梁粉's statistics
統計數字不會說謊,它有的只是統計偏差。說謊的,是運用它的人。"Lies, damned lies, and statistics" 這句名言,就是用來諷刺那些蓄意運用統計數字來製造假像的人。前述「梁粉」的批評,正好拿來作「統計語言偽術」的最佳範例。

從「特首民望調查」所得到的 998 個有效評分,平均分為 47.4(「港大民研」公布數字為 47.5,略有不同,這是因為他們按受訪者的統計特徵作加權平均),低於 50,但實際上 998 個分數當中,有 615 個為 50 分以上……至此,梁粉都沒有說錯。然而,他們沒說的是:
998 個分數當中,也有 663 個為 50 分以下。
感覺混淆嗎?或者這樣說吧,998 個分數當中,有 383 個低於 50 分,280 個等於 50 分,335 個高於 50 分。分數的分布如下:

從 0 到 100,共有一百零一個整數,而 50 正好居中。梁粉試圖以「50 分以上」這個標準來描繪一個梁振英有超過六成人支持的景象,可是據他們的邏輯,我們同樣可以說,以「50 分以下」這個標準來判斷的話,有超過六成人(而且這個「超過六成」的人數比起梁粉的「超過六成」更多)反對梁振英!

我不明白一眾梁粉何以如此介懷 47.5 這個只略低於 50 的數字。若是選舉的話,兩三個百分點也許是勝負關鍵,可是像印象分這種雖非玄學,卻也「不算精密科學」的東西,47.5 和 50,實在沒有分別。換了我是梁振英,看到如此數字,高興還來不及呢。

離群值與平均數
梁粉指出,998 個分數當中,有 91 個是 0 分,這些極端評分拉低了整體的平均數。這是正確的。「主場」卻反駁梁粉,說他們沒提及樣本當中亦有 29 個 100 分,會有拉高平均分的相反效果,也同樣正確,亦再一次顯示梁粉玩弄輸打贏要的統計語言偽術。

然而,撇除梁粉的拙劣技倆不談,若樣本中可能有不少「離群值」(outliers) 的話,到底我們應該如何估計統計母體的平均數?

港大民研的李偉健指「無論樣本是0分或是100分,都應納入計算」。就一般統計調查來說,這是過時的做法(但此處有一個 catch,要押後談)。現代統計學認為「穩陣」(robust) 的做法,本網誌之前的書評其實已經提過,就是利用截尾平均 (trimmed mean),也就是先截去最高和最低的 5-10% 數據,然後才計算平均數。

可是我們幾乎可以斷言,在「特首民望調查」中,無論用普通的算術平均,抑或用截尾平均,都不會有大分別。原因是一般來說,離群值最有殺傷力的情況,是母體數字本身為「無界」(unbounded) 的時候。是項調查當中,有效的評分本身有界(只可介乎零至一百),離群值的影響通常不會太壞,故此梁粉的批評,抓不到統計學的重點。

實際上,若截去今次樣本當中,高低各一成的數據的話,得出來(未經加權)的截尾平均為 48.1,與樣本平均數 47.4 相去不遠。

尺度不同,分數如何換算?
這倒不是說「特首民望調查」無問題。印象中,港大民研所做的民意調查,大部份(例如立法會選舉的選前調查和 exit polls)都很紮實。然而此項「特首民望調查」,卻非常礙眼。我很想問鍾庭耀一句:
How on earth is this rating meaningful? 
單單叫受訪者為梁振英打個分數,已經很有問題。問卷只提過零分(「絕對唔支持」)、五十分(「一半半」)與一百分(「絕對支持」)的意義,中間的尺度 (scale),人人卻不同細分。你我各給六十分,意思未必相同。你的分數如何換算成我的,完全木宰羊。現時港大民研的做法,實際上假設了所有人的評分尺度均一。由此引起的模型風險 (model risk),無法評估。舉個例說,若你看到梁振英的「民望指數」比上月高,你可能以為他真的愈來愈受市民歡迎,但實情可能是他的民望無變,只是今個月的受訪者的評分尺度較寬鬆,對無甚特別感覺的官員,也傾向打一個高分而已。

就算是奧運體操項目,評分有較多稍為客觀的細項憑依(動作要求、難度、時限等等),仍不時惹人爭議,各人對特首表現的評分尺度,又怎可能大致一樣?

不知尺度,何論變化?
好了,就假設香港有一個平均的評分尺度吧。套用經濟語言來說,就當人人都用一個一致「市場評分尺度」好了,但為何我們可以計算平均分?平均數並不一定是有意義的。一半人給零分,另一半給一百分,借用時下流行語來說,是社會撕裂的狀況;所有人都打五十分,卻更似人人認命。兩種情況截然不同,平均分都是五十分,那麼五十分究竟是甚麼意思?

以上例子當然太極端,極端到與雷鼎鳴對堅尼系數的批評如出一轍。假若港大民研只是拿這個平均分來判斷粗略民情的話,上一段的批評是不適用的。問題是,港大民研對待這個平均數時,彷彿其精密數值或它幾個百分點的變化,有甚麼微言大義似的。然而,即使香港有一個「市場評分尺度」,我們仍不知道這個尺度是甚麼樣子。同樣是跌十分,從一百跌至九十分,是否跟六十跌至五十,或十跌至零同樣大鑊?木宰羊。五十分所代表的「一半半」,和「及格」是同樣意思嗎?木宰羊。不及格的話,甚麼分數才算民怨沸騰,很想梁振英辭職?木宰羊。

不知背後的評分尺度的話,再精密的數字都是沒用的。弄得好像很精密,反而令人誤以為該數字很科學,其細微變化很有意義。

離群值真是離群值嗎?
前面說過,以普通的算術平均來估計母體平均數,乃過時做法。諷刺的是:
  • 對「特首民望調查」來說,由於整把由零至一百分的量尺中,只有零、五十及一百有清晰意義,所以這三個分數,比其他分數可靠。
  • 故此,吊詭地,0 和 100 兩個離群值,反而不應剔除。
  • 結果梁粉針對離群值的批評,意外地不適用。
  • 若硬要計算平均數,普通的算術平均,此處亦反而比截尾平均更恰當。
然而這不表示港大民研的做法正確。正正因為他們採用了語意不明的尺度,才造成這許多奇怪狀況。

結語一:less is more
如前述,港大民研的民意調查,一般都很紮實,但這項「特首民望調查」,用粵語來說的話,真係「畀位人插」。"Less is more" 這句說話聽來陳套,但此處適用。奉勸 Robert Chung,還是乾脆將問卷問題改成簡簡單單的「你想唔想梁振英繼續執政」之類好了,不要再搞那些懶細緻的評分吧。

結語二:廢話去死,自由萬歲
最後且談文字,不談統計。梁粉謂:
港大民意研究計劃的民調早陣子引起連串質疑,未知是否有見及此,今次港大再度公布特首評分時,民意網站已出現所謂的「原始資料」,雖然相關檔案的格式要以特定軟件才能打開,但內裡所刊載的正正是評分分布數字。
這不是廢話嗎?有甚麼檔案是任何軟件都可以打開的呢?何況所謂「特定軟件」和檔案格式,也不過是統計佬慣用的 SPSS 與它的 sav 格式吧。不想付鈔的朋友,可用免費的自由軟件 R 打開有關檔案。

相關網頁
伸延閱讀
  • 電鋸,你玩統計,統計玩你:「問題根本不在於 0 和 100 等等 outliers ,而是佔人口比重較多的組群對梁振英評分較低。

2014年3月8日星期六

Patema Inverted

無論是那處的影、視、動、漫,有新意之作近年都買少見少。網上這一套四集,每集長五、六分鐘的 Patema Inverted: Beginning of the Day,是動畫電影 Patema Inverted 的前奏。看頭兩集時,還不覺得怎樣,以為不過是常見那種「人類劫後重生」故事的風格和設定。直至第三集末段,才驚覺完全不是那一回事。電影去年十一月已於日本上畫,期待有日可於本地放映。





2014年3月6日星期四

歧視

今日讀報,有這麼一個段落:
來自北京的陸先生與陳先生同遊香港,……他(註:陳先生)又迅即向記者大吐苦水,指來港遭到不公平待遇,曾以普通話向港人問路,不少人卻裝聾扮啞拒絕回答,直至後來,他以英文問路,才有人肯回答。「這分明就是歧視啊,心裏會有壓力,下次來港前會有顧慮。」
我真的不明白,何以大陸人每有不快遭遇,總是認為自己遭歧視?做遊客的,出發前不會稍讀有關目的地的基本資料的嗎?香港的主要語言為粵語和英語,路人不懂普通話,根本是平常事。你遊魁北克,用普通話問路,沒人理睬,後來改以英語問路,總算有人肯回答,難道這又是歧視嗎?

我並非路癡,卻是那種「自己懂得走,但不懂得解釋如何走」的人。就算有人用粵語問路,我都是盡量迴避的,免得點錯路,更何況我的普通話只是「有限公司」?現在每逢有人以普通話問路,我都是回一句 "I don't speak your language" 了事的。至於回答的語氣如何,之前會否加個 "Sorry",就要視乎對方發問時,有否用「請問」開頭,而我可以非常肯定地說,要加這個 "Sorry" 的場合,不到十分之一。

2014年3月5日星期三

勿因蟲廢言

張 has a point
恒基地產副主席李家傑,昨日大力批評港大民調的「特首民望調查」,共產黨報章及土共聞聲而動,紛紛幫忙叫罵,霎時將今年「驚蟄」提早了兩日。

這些「小爬蟲」(小爬蟲黃定光語)的評論,大部份都不值一哂,然而「梁粉」張志剛的批評,卻有一點道理。按AM730報道,他說:
 「如果問聽日投票,投梁振英定係唔投梁振英嘅話,你就只可以將個結果解讀為『如果聽日投票,梁振英可以攞到幾多票』,唔可以當作係施政支持度,而且如果講投票選舉嘅話,一定要列明對手。」
香港人根本就不能(或未能) 選舉行政長官,因此以這種「假想得票率」(鍾庭耀語)來估計任何其他數字,都必然有所歪曲。況且,如張志剛所說,就算要估計選舉得票率,也應該指明對手。若將「梁振英對余若薇」換成「梁振英對曾德成」,結果就恐怕有天淵之別。

鍾 knows what he is talking about
鍾庭耀如何擬出現在的問卷?按香港大學民意研究計劃網站的說明:
「港督或特首民望」調查一直沿用的提問方式為「而家想請你用0-100分評價你對港督/特首某某某既支持程度,0分代表絕對唔支持,100分代表絕對支持,50分代表一半半,你會俾幾多分港督/特首某某某呢?」及「假設明天選舉特首,而你又有權投票,你會唔會選某某某做特首?」。
而按鍾庭耀於2003-6-12的解釋:
筆者在12年前引入0至100的評分標準,是經過一番考究和深思。該等基準,在民主社會時有用之,但不算普遍。西方社會慣用百分率顯示政治領袖的「認許率」或「支持率」,提問方法大抵可以分成兩大類: 

(1) 你是否認許某某處理其崗位(如總統、首相等)的工作? 

(2) 如果明天進行選舉,你會否投票支持某某? 

一般而論,答案只分正反兩面,再加「不知道」。所謂「正反兩面」,可能是採用二分或四等法。二分法的答案可以是「認許」、「不認許」;「滿意」、「不滿意」;「是」、「否」;「會」、「不會」等;而四等法的答案可以有「很滿意」、「頗滿意」、「頗不滿」、「很不滿」;「肯定會」、「可能會」;「可能不會」、「肯定不會」等。 

西方社會涉及0至100評分調查的對象,大多數不是選舉出來的政治人物,或者只是醞釀參選的人物。提問者通常會要求被訪者想像一個攝氏溫度計,0度表示冰冷,100度表示沸騰,50度表示不冷不熱,然後要求被訪者打分形容其對某人的感覺。顯而易見,這種方法毋須被訪者想像任何選舉處境,或與其他人物比較。 

不過,這種提問方式得出來的數字,往往不能直接轉化成為選民基礎的強弱,對預測選舉結果的作用不大。民主社會習慣以選票較高下,選舉期間如是,民意角力也如是。因此,西方社會的民意指標主要採用二分法來量度領導人的「假想得票率」,或「工作表現認可率」,類溫度計的數字則屬次要。西方社會稱民意調查為「opinion poll」,就蘊藏了民意公決的概念。 

香港的民主進程只屬初階,除了從地區直選出來的立法議員外,用「假設得票」的問題來量度民望,對被訪者而言,似乎沒有太大意義。因此,筆者在12年前便採納了0至100分的標準,作為主流測試方法。不過,時至今日,「問責」觀念高唱入雲,巿民的民主訴求逐漸熾熱,民望指標亦要相應調整。更何況,部份官員已學會偷換概念,把40多分的支持度評分說成是獲得四成多的支持比率,還說這樣的民望可以媲美世界各國。這些言論,或許能淡化巿民的不滿,但是本身有違科學精神,對民意不公,對社會無益。
由此可見,鍾庭耀本人是很清楚其問卷是有甚麼潛在流弊的,他也是經過深思熟慮後,才將問卷設計成現在這個樣子。你可以不同意他的見解(我就不同意),但他足足十年前已公開解釋其問卷設計,而這是可供公開學術辯論的。將他的調查形容為對民意的「操控」(李家傑語),絕不公允。

Approval ratings
話雖如此,我也一向不大滿意鍾的「特首民望調查」(他將支持率與反率對的差額,用一個自創兼懶學術的詞語「民望淨值」來包裝,就更叫人眼冤了)。要採用他口中所謂「二分法」抑或「類溫度計的數字」(0至100分),只屬旁支末節。最根本的問題,是他究竟想量度甚麼?

既然這是一項「特首民望調查」,想量度的,當然是市民有多想行政長官下台了。港大問卷的兩條問題當中,張志剛已指出第二條問題的弊端。至於第一條問題,它用的是甚麼字眼?
「而家想請你用0-100分評價你對港督/特首某某某既支持程度,0分代表絕對唔支持,100分代表絕對支持,50分代表一半半,你會俾幾多分港督/特首某某某呢?」
這個「支持」 是甚麼意思?是滿意的意思?是我會以實際行動幫助他(例如加入「愛字頭」的鋤奸隊,或盡可能在共幹面前替他美言幾句)?還是不管我有多(不)滿意,我都贊成他繼續坐在他的位子上?用語言來表達思想,很難完全精確,但是「支持」這個詞語,意思卻未免太過模糊。

如鍾庭耀所說,有些外國的民意調查,會用上'approve'(鍾庭耀譯作「認許」)這個字眼。例如美國的市場調查一哥蓋洛普,就有每週追蹤調查,問:
Do you approve or disapprove of the way Barack Obama is handling his job as president?
亦有一些調查,用的字眼為「滿意」。例如英國的老字號市場研究公司 Ipsos MORI 的問卷,就會問:
How satisfied or dissatisfied are you with the way David Cameron is running the country /doing his job as Prime Minister?
留意問卷問的並非國民有多滿意首相的政績,而是問他們有幾滿意首相的施政。這兩者差之毫釐,謬以千里。問政績的話,遇著時勢艱難,官員難有作為,政績很差,但國民可能諒解,滿意其施政,認為官員已盡力扭轉乾坤,只是形勢比人強。就好像第二次世界大戰後期的北非戰場,德國的隆美爾元帥頻頻吃敗仗,但不少軍事史家反而對這個階段的他,有很高評價一樣。

我們不想問卷問題太長,但受訪者又未必了解「政績」與「施政」的分別,故此我還是覺得蓋洛普的問法較好。然而直接挪用又有點不妥,皆因 'approve' 一詞,隱含說話者有權干預的意思,但現今體制下,特首並非民選,立法會又有非民選的功能組別,兼投票時有分組點票,要說港人 'approve' 特首施政,真是無從談起。其實要量度官員的民望,我們可以單純了解市民有幾想換人。要避開張志剛所指出的困難(假設明日有選舉,亦要指明對手),我們其實不必扯甚麼「明天有(假)選舉」,只需簡簡單單地將問題更改如下:
你贊唔贊成梁振英繼續施政?
當然,文字還可以斟酌(後記:「你想唔想梁振英繼續執政」或者更佳),但我想說的是,鍾庭耀問卷的毛病,更深層反映的其實是語文問題。

2014年3月1日星期六

冰滑橋搖 ── 中學物理課本錯誤兩則

我念中學那個年代,各校物理課多採用外國教科書(實際上本地出版的,當時好像只有中大楊綱凱教授所編那本)。這些課本對現實世界的現象,時有錯誤解釋,我也是後來看其他書籍,才發現原來這些解釋是錯的。針對這些錯誤的批評,有一些流傳得比較快和廣,令相關錯誤很快從教科書消失。例如我那個年代的課本,許多都用 Bernoulli's principle 來解釋「用風筒打斜吹向乒乓球,但乒乓球在空中固定不倒」這個實驗 (Youtube),但後來人們知道這是誤解,正確的解釋應該是 Coandă effect 加上 Magnus effect,而這兩種效應的成因,其實超出了中學物理學的範圍。故此,儘管這個乒乓球實驗很有趣,但根本就不應拿來做課堂例子。(芸芸物理學原則中,Bernoulli's principle 也可能是最常被中學課本濫用的一個,但這是另話。)


然而也有一些錯誤,是流傳至今的。日前上網,發現兩個我念中學時所讀到的物理解釋原來又是錯的時候,心裏依然很驚訝。

為何人們可以溜冰?

Robert Rosenberg, Why is Ice Slippery? Physics Today, December 2005, pp.50-55.

水(及一些其他物質)受壓時,熔點會降低,這個現象稱為 pressure melting。以往課本多以此來解釋何以人們可以溜冰:溜冰的冰刀壓著冰面,令冰塊溶化,潤滑冰面,減低摩擦力。也有一些課本以摩擦生熱 (frictional heating) 來解釋冰面水分。

可惜,根據不同物理學家所做實驗,人們發現 pressure melting 這個解釋完全是錯的 ── 冰刀的壓力的確會降低冰塊的熔點,但憑常人的重量,施加在冰面的壓力,最多只可降低冰塊的熔點三、四度。當冰面接近零度時,以 pressure melting 來解釋冰面滑溜,乍聽還有理,但問題是,實際上冰面容許人們溜冰的溫度,可以低至零下三十五度,此時冰刀的壓力,卻不足以令冰面溶解。

其實物理學界對於冰面為何滑溜到可以溜冰,至今仍未有定論。暫時最令人信服的解釋,並非摩擦生熱,而是一種稱為 premelting 的原理,其大意是,結晶體即使低於熔點,結晶面仍可存在準液態薄膜。連學者都仍未了解的事情,其真正的物理解釋當然也超出中學範疇。實際上,單是要證實冰面上有薄薄的水膜(而不論此水膜是否容許溜冰的關鍵),竟然也要出動到核磁共振儀器!

Tacoma Narrows Bridge 塌橋事故

K. Yusuf Billah and Robert H. Scanian, Resonance, Tacoma Narrows bridge failure, and undergraduate physics textbooks, American Journal of Physics, 59(2):118-124, 1991.

當一個可以振動的系統遇到週期性的外力,而施力頻率接近系統的自然振動頻率時,就會發生大幅振動現象,稱為共振 (resonance)。我那個年代的中學教科書(甚至大學教科書),不少都以共振來說明一些塌橋事故,或者以共振來解釋士兵走過吊橋時,為何不能步操,必須打亂步伐。事實上,過往確曾有大量士兵過橋時,發生塌橋事故,其中傷亡最嚴重的,當數 1850 年法國 Angers 懸索橋斷裂意外。當時有一營士兵正在過橋,儘管他們事先已知道要打亂步伐,但士兵為了在大橋搖幌時平衡身體,反而不自覺地令步伐一致。當大橋從懸索開始斷裂時,有 483 名士兵在橋上,最後有 226 人死亡。

1850 年連攝影都未普及,更遑論攝錄機。中學教科書引述得最多的,並非 Angers 大橋斷裂事故,而是有聲有畫,1940 年末在美國發生的 Tacoma Narrows Bridge 塌橋事故。




這宗極富戲劇性的經典意外中,無人傷亡,唯一死者,是被主人遺留在車上,名為 Tubby 的犬隻。(Tubby 的狗種為 Cocker Spaniel。香港將此狗種譯作「曲架犬」,巧合地與此塌橋事故語帶相關。)好些教科書都將這次意外形容為風與橋的共振,卻無解釋當時風力何以帶週期性。後來有人提出,並不是風力帶週期性,而是風吹過橋體時,造成稱為「Kármán 渦流街」(Kármán vortex street) 的週期現象。
然而有趣的是,且不說這個由渦流引起的震動 (vortex-induced vibration) 技術上算不算共振,原來早已有人驗證過這種震動並不會危害大橋。話說當 Tacoma 峽灣橋通車後不久,人們已發現大橋會隨風上下起伏。由於搖動幅度頗大,有人甚至報稱橋面隆起至看不見前車,而時人將此橋戲稱為 "Galloping Gertie"。親歷其境的過客當中,有一位華盛頓大學教授 Burt Farquharson。他事後利用風洞實驗,證明這種上下搖幌是安全的。而且,出事當日,大橋乃左右扭動至斷裂,搖幌模式與平日不同。

那究竟是甚麼機制導至大橋倒塌?這要到 1991 年,前述普林斯頓大學與約翰霍金斯大學兩位工程學者的論文出版後,才有公認的解答。事件的元凶,是一種稱為 aeroelastic flutter 的現象。大體來說,當風吹過橋體時,會造成一些小旋渦,令橋面扭動。許多時,這種擺動就像鐘擺般,會慢慢停下來(即 "damping",「阻尼」)。然而,若風速、橋面闊度與扭動的頻率皆符合特定條件的話,橋面扭動時形成的攻角,又會造成更多旋渦,而這些旋渦又令橋面扭動得更厲害,直至大橋斷裂。留意這種現象並非共振(事件中,施加在橋體的外力並無週期性),而是渦流與橋身擺動形成的正反饋 (positive feedback)。



究竟我們在中學(或大學時),還學了幾多錯誤的物理解釋?

2014年2月21日星期五

電視汁撈飯兩則

午餐:陳鈺芸送飯
昨日在茶餐廳,電視正播映亞視的娛樂對談節目(見 18:30)。張家輝話齋:「×你個街,亞視來嘅喂!」誰料有驚喜。節目當中,受訪者毫不造作,落落大方的態度,令我覺得她完全沒被娛樂圈這個大染缸污染。當然,一時印象不能作準,但我的印象就是如此。


自有線年代(強調:只是有線年代!)的黃翠如之後,已很久沒見過這種「未被污染」的藝人了。上網略查,這位陳鈺芸小姐,入行經已幾年。她至今仍能保持自我,更顯得難能可貴。陳原來也是摘過金牌的跆拳道運動員,她依然活躍於賽場呢。可惜看其簡歷,入行幾年,星運似是平平。儘管人格與歌藝或演技無關,星途亦講際遇,但祝她好運,並祝她繼續處淤泥而不染。

晚餐:敗家仔菊花殘腦羹
回家吃晚飯,無綫正在播一套叫《守業者》的新劇。以無劇來說,劇情老套到嘔是一定的了,看完這一集,印象也沒變,不過感覺這套劇也有優點:劇本以外的製作很認真,演員很落力(尤其是麥長青),劇情的基本設定(養蠶和絲綢業)亦算有趣,這方面的資料搜集也很充足,而劇集主題歌的曲和詞都不錯,馬浚偉也唱得不過不失。然而……



片集中段,竟然出現主角哼《帝女花》的情節!

此劇背景設定為國民黨剛剛完成北伐,唐滌生先生的《帝女花》卻要到 1957 年才面世!大部份港人如我均非粵劇迷,但《帝女花》此經典中的經典,就連現今的香港高中生,都差不多人人識哼一兩句。連此香港瑰寶是戰後作品這個常識都無,還敢稱「守業者」?真是諷刺。

維基百科,原來唐滌生之前,另一位劇作家梁金棠先生已於 1934 年編過一套同名粵劇,可是唐劇並非從梁劇改寫,而是參考了清人黃燮清所編的同名崑劇,故此馬浚偉所哼那首曲調完全和唐氏《帝女花》一樣的粵曲,不可能是梁氏《帝女花》,更不可能是曲風完全不同的崑劇。況且國民黨完成北伐,距離梁氏《帝女花》面世仍有六年,就算馬浚偉要哼梁金棠的《帝女花》,亦一樣是「粵劇變穿越劇」。

順帶一提,原來「帝女花」 也是菊花的別稱,可見於清代李汝珍的小說《鏡花緣》。這是今次撈電視汁之後,上網撈資料意外撈到的冷知識。

2014年2月20日星期四

往日中國,今日香港

往日中國人穿衣,只有藍、綠、灰、黑的「人民裝」四種選擇。現在再沒有人想回到那種單調乏味的日子了。


今日香港大街,快要只得清一色的藥房、金舖、化妝品店和連鎖店。少數商家發中國旅客財,受苦的卻是一般香港市民。


子曰:己所不欲,勿施於人。

要不是香港照顧你們強國的旅遊需要,你們就完蛋了。


昨日的文章漏掉了是重要的數字 ── 中國。原來……
  • 2013 年,香港有 54.3 百萬人次的旅客入境 (source: 香港旅遊發展局),其中 75.5% 為強國人;
  • 2012 年,中國大陸有 27.2 百萬人次的旅客入境 (source: 中國國家統計局; Internet Explorer only),只是訪港旅客數字的一半!
要不是香港照顧你們強國的旅遊需要,你們就完蛋了。



後記:MAY (Mutually Assured Yun-dan-ation)

上文數字有誤,原來 27.2 百萬人次並不包括港、澳、台「同胞」,而按中國與香港官方資料,真正的數字如下 ── 2012 年:
  • 中國大陸有 132.4 百萬人次旅客入境。
  • 大陸人有 83.18 百萬人次出境。
  • 香港有 48.6 百萬人次旅客入境。
  • 香港人有 85.3 百萬人次出境。
  • 大陸人有 34.9 百萬人次來香港。
  • 陸、港雙方均沒公布香港人到大陸的次數。由於香港統計處只公布從各口岸出境人次,因此只知此數字介乎 71.8 百萬(總出境人次減去從機場、港口管制站及港澳客輪碼頭出境人次)與 79.8 百萬(總出境人次減去從港澳客輪碼頭出境人次)之間。
若按照「要不是某某照顧你們的需要,你們就完蛋了 」 的「邏輯」,無論是「中國人滾出香港」抑或「香港人滾出中國」,對方都是要完蛋的,真是 Mutually Assured Yun-dan-ation 呀,太好了,marvellous!

2014年2月19日星期三

驅蝗是如何「逼/迫」出來的

除非特別注明,以下是 2013 年全年一些國家或地區所接待的旅客數字(以百萬人次計):
英、日、台三地旅客總數,都不及香港多。若以旅客人次除以土地面積,問題最嚴重的是澳門,星加坡與香港則相若,屈居其次。(後記:然而旅遊業乃澳門經濟命脈,其產出佔 GDP 四成,澳門人不得不張就;相比之下,香港旅遊業則只佔 GDP 的 4% 左右,就算加上零售業的部份份額,恐怕仍不是很高 4.5%,官方更承認自由行的份額只有 1.3%。另一方面,到訪星加坡的旅客中,只有 16% 是強國人,訪港旅客卻有 75.5% 是強國人。)
伸延閱讀:

2014年2月15日星期六

釋名

懲罰男人的港元消耗節日,是為懲人元消節

2014年2月13日星期四

電腦 CPU 上面的 thermal sensor 未必非常準確,但是身處香港,CPU 兩個核心只得攝氏七度和四度,真是只有於寒冬才看得到的奇景。


Updated on 2014-02-15: 再創新低,砌機以來首次見零下溫度!

2014年2月12日星期三

求教

1. Windows update

我的電腦仍然用 Windows XP。最近一次 windows update,防火牆告之如下訊息:


微軟的 KB2898855 條目語焉不詳,卻指向另一篇編號 MS14-009 的 Microsoft Security Bulletin。通告內容和以往的大同小異,都是「若用家訪問某些做了手腳的網站,攻擊者就可以取得用戶電腦的管理權限」之類,無甚特別。問題是,為何此 security update 要連結蘋果日報網站?就算該網站真的被人做了手腳,微軟亦無理由拿用家的電腦來做實驗。又抑或微軟會出賣用戶的資料給壹傳媒?這又很難想象,特別是如此大模廝樣,真是匪夷所思。這究竟是怎麼一回事?

2. Linux laptop

最近想買部唔好太貴的一手 laptop 用來裝 Linux。我只試過在桌上型電腦裝 Linux,而且最近一次還是 Redhat 仍未推出稱為 Fedora 的版本的時候(即係起碼十年前啦)。於 laptop 電腦裝 Linux 就毫無經驗,感覺好冒險。不知大家有無好介紹?價錢希望在 $9000 樓下,螢幕 14 吋或以上,必須易於換電池或有 external battery pack,可以兩舊電就捱到八粒鐘(以一般上網及 programming 計)。(話時話,其實家下的 laptop 有幾多有 external battery pack 嘅呢?)CPU 同 harddisk 都無乜所謂,唔好太差就得,但係 graphics 就最好至少有 Intel HD Graphics 4000 (若是 integrated graphics) 或 Nvidia (若是獨立的 graphics chip)。Model 唔好太舊就 OK。

昨日逛街見到聯想的 E431,八千文左右,個樣 OK,不過在網上找到一個 Ubuntu 用家的 review,似乎唔多老黎。E431 的 trackpad 又好像有一個嶄新(即係未經時間考驗)的設計,好多人鬧。一些 Linux 網站雖然有 hardware compatibility list,但其所列的電腦,香港未必有貨,而且有關的 comments 或 reviews 又往往太簡略,例如只有 minor problems 之類,讀後很不放心。

2014年2月11日星期二

未富先驕

難道富了就可以驕傲?真是典型的強國人想法。

2014年1月30日星期四

送蛇迎馬

除夕還不必避忌,不妨輕鬆一下:



同場加映:土耳其總理本星期日的全息投影演說片段,非常 Star Wars(讀者可由 0:50 開始看)。希望陸捌玖唔好學,免市民眼冤。

2014年1月26日星期日

Hong Kong Food Song


外人讚香港飲食,身為香港人當然高興,不過我覺得任何地方的小吃都是好吃的。至於較平民化的食店,則感覺一年不如一年。以茶餐廳為例,與往昔於門外張貼「冷氣開放」告示的冰室年代相比,無論氣氛、侍應的功架與食物水準,現今的茶餐廳都望塵莫及。其他食店亦有類似情況,譬如元朗的老店「好到底麵家」,我上次去已經是好幾年前了。當時它的雲吞麵(餛飩麵),仍是小小的雲吞加少少的麵,保留舊香港那種有閒階級光顧的雲吞麵店的樣色,可是味道不大對頭,湯有點澀,雲吞亦不夠鮮,不知是否我當日剛巧走霉運。該店似乎仍健在,或許某日再去試試吧。

數月前薄扶林大學對面的莎厘娜餐廳 (Czarina Restaurant) 結業的消息,獲不少網民轉載。我以往都只是吃她的 set dinner,反而未真正試過她的俄國菜。我也懷念莎厘娜,不過我更懷緬在她附近,位於石棠嘴的「印尼餐廳」。以往每逢我想獨進晚餐,兼好好放鬆一下的話,都是到印尼餐廳的。後來有次到薄大找書,黃昏時滿懷高興想重臨舊地,該處卻變成另一間舖頭了。

2014年1月21日星期二

無罪罷免

馬傑偉談移民台灣,想起高官常常吹噓香港如何國際化,但我覺得大部份港人(包括我自己)其實只是井底之蛙,對香港以外的地方,既不瞭解,也漠不關心。台灣跟香港近在咫尺,但港人對於台灣,除了羨慕台灣有民主政治之外,很少可以說出其政治或法制,還有甚麼值得借鏡的地方。

近日偶然看到台灣有平民組織聯署罷免吳育昇的消息,起初相當納悶,後來卻吃了一驚。

吳育昇是立法委員。是次聯署,罷免者所持理由是吳「曲從馬意、違反民意」。且不說事情來龍去脈,也不論(更沒資格評論)誰對誰錯。此事最有趣的,是平民竟然可以憑「違反民意」這個理由來罷免議員這一點。

一般民主國家,法律上容許罷免國會議員的理由,若不計健康原因,通常要不是議員干犯刑事罪行,就是議員行為不檢,嚴重到近乎犯罪的程度。民主大國美國如此,就連不民主的香港亦如是。港人的認知之中,若要懲罰違反民意的議員,方法只有兩個,就是以輿論壓力逼使議員辭職(通常此辦法只適用於有政黨的議員,獨立議員很可能不為所動),或者於下次選舉,令該議員落選。單憑「違反民意」就可以罷免現任議員,聽起來真是民主程度爆燈,too good to be true。

然而,查中華民國司法院大法官的解釋,這種做法原來是真是可行的:
罷免權乃人民參政權之一種,憲法第一百三十三條規定被選舉人得由原選舉區依法罷免之。則國民大會代表及立法委員因行使職權所為言論及表決,自應對其原選舉區之選舉人負政治上責任。從而國民大會代表及立法委員經國內選舉區選出者,其原選舉區選舉人得以國民大會代表及立法委員所為言論及表決不當為理由,依法罷免之……
不知今次罷免案能否成事,但我著實上了一課。

2014年1月20日星期一

「年青」與「年輕」

今年梁振英的施政報告封面行文差劣,有目共睹,此處也不多說了。意想不到的,是它引出一番關於「年青」與「年輕」的討論。詳情不贅,各位可參看以下文章:
  1. 鄧小樺:文盲的施政報告
  2. 王偉雄:「年青」和「年輕」
  3. 趙善軒:梁振英、鄧小樺,誰是文盲?─年青絕非錯字
  4. 鄧小樺:休班語言警察感受
  5. 佟傑:乾脆的威化是「年輕」還是「年青」?
長話短說。趙善軒查了《清史稿》有「年青貌秀」一語,便說『足見「年青」一詞非新近創詞』,並不妥當。一來孤證不立,說不定《清史稿》的作者剛巧寫了別字,二來《清史稿》乃於民國初期編撰,是相對地較新的典籍。

從我翻書所見,「年青」確非新詞。明末清初小說《玉支璣》與《幻中真》,已用上了「年青人秀」與「年青俊雅」兩組形容詞。往後其他清代小說,「年青」一詞更不鮮見。

至於「年輕」,如趙善軒一文所說,可見於《三國演義》。從我手邊能翻到的資料,最早也只可追溯它到《三國演義》與《水滸傳》,算是比「年青」出現得早。

王偉雄與趙善軒二人均認為「年青」 與「年輕」二詞含義不同。趙善軒援引《三國演義》「年輕識淺」與《清史稿》另一個例子,說此詞有貶義云云。這實在難以苟同。舉個例說,「年輕貌美」是清代小說的常用詞,難道年輕貌美又有貶義?另一個例子,《水滸傳》第四十四回也有一句「奴家年輕,如何敢受禮」,但不敢受禮也只是古代長幼有序的緣故,句中「年輕」一詞只屬中性。再說,若「年輕」帶貶義的話,「年少」豈非更差?不是說「年少無知」嗎?可是也有「英雄出少年」呀!趙善軒的推論,其實是將特定情形,錯誤引申為一般道理。

王偉雄認為「年輕」只是相對「年老」而言,七八十歲的老人可稱呼三四十歲的人為「年輕人」,但「年青」則是絕對的,「介乎少年和中年之間」。我不知道王偉雄寫出他的意見時,心中所想的是何種語文(中華民國的國語?中共以天朝心態力推的所謂「現代規範漢語」?抑或港人習用的傳統中文? ),然而從我手邊可翻到的明、清小說例子,完全看不出二者有何分別。

王偉雄提及「年」與「年」的分別時,原文其實用上了年青人」和「年輕人」二詞,這就不止是比較「年」與「年了。「年青人」一詞,可見於清代小說《泣紅亭》當中「年青人不懂事」一句。此詞於明、清小說當中,實在並不多見。相比之下,使用「年輕人」一詞的小說例子,卻比比皆是。王文中說他向來只寫「年青人」,不寫「年輕人」。由於我不知他對「中文」的定義,不敢說他錯,但他的偏好,顯然並非舊體中文的常例。

總括來說:
  • 「年青」與「年輕」二詞自明代已有,沿用至今。從明清各小說例子看來,兩者意思並無大分別。
  • 「年輕人」乃傳統詞彙,沿用至今。
  • 「年青人」一詞有零散古例,但不常見,很難說它是傳統用語。
其實我並不介意別人說「年青人」,這至少比起那些甚麼「應對」、「衝擊(獎牌)」或「加大力度」 順耳得多了,不過既然有人講開,就不妨咬文嚼字一下。

2014年1月5日星期日

生意興隆通四海,財源茂盛達三江

舊文提到我親眼見過有人將「生意興隆通四海,財源廣進達三江」這副對聯左右掉轉。孰料昨午到某間新開張的茶餐廳吃飯,又遇上同樣情況。

本對聯一句以上聲作結,一句以平聲收尾,當然是平聲那句在後,方合平仄。就算不論平仄,「財源廣進達三江,生意興隆通四海」讀起來,也顯然不及「生意興隆通四海,財源廣進達三江」悅耳,更何況對聯兩句首字有「生財」之意,連這樣都搞錯,真是無話可說。

話說回來,我記得小時候,此對聯都是寫成「生意興隆通四海,財源『茂盛』達三江」的。上網略查,發現的確如此。它可見於清末小說《劉公案‧雙龍傳》第二回,當中說嘉慶皇爺到了京城東面四十里外的通州一間飯館:
那旁懸著一張挑山,畫的是「劉海戲金蟾」,兩旁配著一副對,上聯是「生意興隆通四海」;下聯配「財源茂盛達三江」。
(挑山即是由一副對聯夾著的大畫。)近年對聯中的「財源茂盛」訛為「財源廣進」,大概是受到四字揮春祝福語「財源廣進」的影響吧。

此對聯提到四海三江。三江為何,網上有多種說法。根據台灣教育部《重編國語辭典修訂本》「三江」一條,三江可以是
  1. 江蘇、江西、安徽三省的合稱。
  2. 四川省岷江、涪江、沱江的合稱。
  3. 廣西省黔江、鬱江、桂江的合稱。
  4. 浙江省吳江、錢塘江、浦陽江的合稱。
然而查「三江七澤」及「三江五湖」兩條,「三江」也可以是江河湖泊的泛稱。由於「四海」明顯泛指四方,我相信對聯中「三江」也不過是種寓意,而非真實地方。

後記 (2016-02-04):年近歲晚,本文點擊數字急升。重讀舊文,感覺或許說得不夠清楚。簡言之,「生意興隆通四海」為上聯,應放在右邊;「財源茂盛達三江」乃下聯,放左邊。不少人受到四字揮春「財源廣進」的影響,將下聯寫成「財源『廣進』達三江」,若不算錯,仍不夠正宗。 傳統上,此對聯並無橫批。若要於頂頭加四字橫批,書寫方向亦是由右至左,方為正宗。

2014年1月4日星期六

為了出唱片,你可以去到幾盡?

於某網誌看到作者有如下感觸:
香港樂壇的MV拍得很小學雞(相對於外國或korea K pop, 甚至台灣), ... 我記得lady gaga在一個訪問說, 她直至已很紅的時候, 還是將所有收入放在製作上, 舞台、舞衣..... 台灣好像也有一個, 花光錢出第一張唱片, 但忘了名字(是不是陳綺貞?). 香港哪個歌手有這種勇氣?
有的。此君就是大名鼎鼎的夏金城。他的《馬小靈》,迄今仍是本地 cult 歌之最:



為了出唱片,你可以去到幾盡?