2009年12月30日

開放源碼軟體不准為惡?

今天有條新聞的標題很有意思:


Google 的源碼代管服務 "Google Code" 的服務對象是開放源碼的軟體,在 Philosophy 頁裡的任務說明寫得很清楚:
Mission Statement
To support the open source community by providing a scalable, reliable, and fast collaborative development environment for open source software, docs, and standards that promotes best practices in open source software engineering.

問題是:在開放源碼軟體授權條款中加上一條「不得用此軟體作惡」,這個軟體還是不是開放源碼軟體?

這個問題可能要由律師回答,但我個人的看法是:加上這一條軟體就不再是開放源碼的了,見 Open Source Definition 的第六條,摘錄出來:
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
「授權條款不得限制任何人在特定領域使用該程式。」

作惡的領域也是個領域,依第六條的精神,開放源碼軟體不能要求使用者不可用它作邪惡的事。

如果採取 Open Source Definition 的定義,規定軟體不得用來作惡抵觸了這一條,因此軟體就不再算是開放源碼軟體。

代管非開放源碼軟體既然不是任務之一,Google 請加上不作惡條款的 JSMin-PHP 離開 Google Code,看來是合理的。

軟體創作者有權利為自己的軟體加上任何授權條款,別人沒什麼好干涉的。所以 JSMin-PHP 作者有天賦的權利,要求使用該軟體的人不得用它來作邪惡的事。不過話又說回來,如何界定什麼事是邪惡的?
  1. 用 ssh 和偷聽到的密碼進入他人的系統算不算作惡?
  2. ssh 進去後,偷系統裡的資料算不算作惡?
  3. 如果以上兩個行為是資訊兵在兩國交戰時入侵對方的系統,對自己的同胞算是作惡還是英勇戰績?對敵人來說呢?
或許這是為什麼法律條文中不會有邪惡這個字的原因。

自己的條款違反了開放源碼的定義,還要炒新聞謿諷代管服務,實在有點失格了。

2009年11月20日

Chrome OS 源碼釋出!

Google 官方部落格今天貼出了一篇文章 "Releasing the Chromium Open Source Project",也召開了一場有 webcast 的記者會,正式宣布 Chrome OS 的源碼開放了!


Chrome OS 的開放源碼專案叫做 Chromium OS,官方網站放在 chromium.org 上。

這應該連 Alpha 版都不能算吧?是 "Release early, release often" 原則下的結果。「及早釋出」這個原則對大型開放源碼專案很重要,尤其是 Chromium OS 這種要整合 kernel、xorg、clutter 等其他源碼的專案,更是如此。不然內部程式可能會越改離 kernel 或 clutter 這些上游(upstream)的最新源碼越遠,最後要和上游整合就會極為困難。

想嚐鮮的人,可以下載源碼,再用 image_to_usb.sh 裝到 USB 隨身碟,不用洗掉電腦裡的資料或作業系統就可以玩 Chromium OS 了;另外也可以把 image 裝到 VMWare 或 VirtualBox 裡玩。

記者會的展示機 Chromium OS 7 秒就開完機了,但是在我兩歲大的 EeePC 8G 上就要 23 秒,其中 11 秒在等 BIOS。

開完機就是登入畫面,可以用 gmail 帳號登入(不用打 @gmail.com,只要按 TAB 鍵 Chromium OS 就會補完順便把游標移到密碼欄)。

這個時候你需要網路連線,Chromium OS 才能知道你打的密碼對不對。如果 Chromium OS 還不支援你筆電的 WiFi 晶片,可以先插上有線網路登入一次,之後 Chromium OS 會在硬碟(或是隨身碟)裡存一份快取,再登入就不需要網路連線了。

登入後就會看到全螢幕的 Chrome 瀏覽器,我自己較常做的幾件事是:
  1. ctrl-t 開新分頁,在 Omnibox 打入網址或搜尋關鍵字,連去要看的網頁。
  2. 點螢幕左上角的圓形 icon 進入應用程式清單的畫面,再選個 icon 點下去,還是連去要看的網頁。


  3. ctrl-w 關分頁。
  4. ctrl-alt-t 打開熟悉的文字模式 command line terminal(打 exit 指令離開)。
像 Calculator 和 To-do list 這種小應用程式和一般網頁不太一樣,它們比較像 Gmail 裡的 chat window,只佔畫面的一小部分,從下方浮上來。但不一樣的是,不論你切換到哪個分頁,它會一直留在畫面上,方便你隨時使用。

Chromium OS 的授權條款BSD license,使用和 Chromium 一樣的 depot_tools 工具和 git 源碼管理系統,有興趣自己 build image 或開發 Chromium OS 程式的人可以照 Getting and Building a Chromium-Based OS 網頁上的說明做做看。

目前 Chromium OS 已經可以正常顯示中文網頁和 flash,在 EeePC 8G 上看 YouTube 相當順暢,可惜尚未支援中文輸入。Chromium OS 有一份文字輸入的設計文件,我摘錄幾個點出來:
  1. 使用的 input method framework 將會是 ibus。
  2. 正體中文的輸入法將會有倉頡、注音、酷音。
  3. 選字窗、設定介面、文字切換選單都會重做,以符合 Chromium OS 的使用者體驗。
  4. 設定會同步到雲端去,所以換一台 Chromium OS 登入也會有相同的輸入法設定。
會同步到雲端的當然不會只有輸入法的設定,基本上除了螢幕和鍵盤的實體參數可能因不同機器有所不同之外,大部分的設定都會在雲裡。

好了,記者會結束了,關機睡覺吧...

你如果已經裝好了 Chromium OS,你可能會發現:咦?沒有關機選單,要怎麼關機?

這提醒了我 14 年前看到的 SGI 工作站... 電源開關按鈕會啟動 shutdown 程序,所以可以直接按開關,為了這個還被老工程師罵過一次:「你怎麼連 sync; sync; shutdown -h now 都不知道?」這... |||

所以,我按下我的 EeePC 右上角的電源開關,Chromium OS 就關機了,對嘛!消費者用的電器就該這樣直覺。按開關打開,再按一次就會關掉。什麼叫做「要先選〔開始〕選單上的〔關機〕才可以關電」?太不人性化了。

關好機,睡覺去。

{更正:修正下載源碼的連結,原文中打錯 URL 真不好意思!}

2009年10月25日

聽 FBI 主任 Robert Mueller 演講筆記

Robert Mueller
最近住在美國加州的 Palo Alto。今天早上在收音機上聽到 FBI 主任 Robert Mueller 去舊金山 CommonWealth Club演講,大談網路犯罪和恐怖份子,30 分鐘講完後,還回答了 30 分鐘的問題。

趁忘記之前把聽到的東西筆記一下。
  • 他自己也中過 phishing,以為真的是銀行寄來的 e-mail,糊裡糊塗連上了 e-mail 裡附的網址,還好在假的銀行網站上填密碼之前警覺到可能有問題,找他手下來查,把 phishing 的人抓了起來。不過從此他老婆就不准他用 online banking 了,哈哈哈!
    (註:釣魚的人誰不好釣,跑去釣 FBI 主任,我該說他活該嗎?)

  • 他說各公司和組織在建立網站的時候,一定要事先把保全(security)納入考慮,而不是事後再亡羊補牢。

  • 之前有個案子,是罪犯組織先從網路入侵銀行,盜取了提款卡上的密碼後,做了許多張偽卡,在 24 小時內,從全球各地數百個 ATM 提領了上百萬美金。

  • 九一一之後,美國愛國者法案(USA Patriot Act)通過了,FBI 歷經了組織重整,並且和美國的情報機構(CIANSA 等等)開始交換情報。FBI 一向負責的是美國境內的治安,CIA 是美國境外的情報蒐集;情報整合之後,對恐怖組織在境外和境內的活動有了比較完整的輪廓。
    (註:其實是對任何人在美國境內和境外的活動都很了解吧?)

  • FBI 的五個最優先的工作:(其實這個 FBI 網頁列得很清楚,但 FBI 主任被問到的時候背得出來耶!)
    1. 保護美國不受恐怖攻擊
    2. 保護美國對抗外國的情報工作和間諜活動
    3. 保護美國對抗基於網路的攻擊和高科技犯罪
    4. 在各層級查緝公共人物的貪污
    5. 保護公民權利

  • 有聽眾問:「美國有很多愛國的阿拉伯裔人民,FBI 有沒有這樣的成員?」Robert Mueller 的回答是:「美國是個移民國家,FBI 的成員應該要反映出來,但目前阿拉伯裔的人數還不夠。」

  • 有聽眾問:「與其要防範青少年駭客破進伺服器讀了我們的 e-mail,我們不是更應該擔心 FBI 偷看嗎?」(註:這不是當面嗆主任嗎?嗆得好!)
    Robert Mueller 的回答大致是這樣:「你其實真的要防範青少年駭客破進伺服器,很多人覺得他自己的機器裡沒什麼好偷的資料,就不想花力氣去保護;但是資訊就是力量(Information is power),你不知道罪犯拿到資訊後會做什麼事、産生什麼後果。相比起來,FBI 如果要看你線上的資料,必須先向法官申請搜索票,然後希望你的服務業者配合。」
    (註1:他講了幾種法官,但我沒聽懂。註2:真的有這麼克制自己?很難相信耶!看看 2001 年美國法務部幹的好事。)

  • 有聽眾問:「FBI 會聘厲害的駭客進 FBI 工作嗎?」(註:這讓我聯想到 Leonardo DiCaprio 和 Tom Hanks 演的 "Catch me if you can",中譯【神鬼交鋒】)
    Robert Mueller 回答是:「不會。」他又繼續講:「青少年駭進別人的系統,常常不知道自己在犯罪,被逮捕的時候一臉錯諤。關進去之後,就會留下犯罪紀錄,幾年之後出來,要找工作都變難了。」
先記到這裡,如果還有想到什麼再補記吧!

2009年10月21日

Stop making a fuss on things you don't know the context

OK, Chris Yeh of Yahoo! openly apologized about having "Hack Girls" in the Yahoo! Open Hack Day in Taiwan. I understand that there were waves of complaints in the English-speaking part of the world that drove Yahoo! to apologize. But since none of the English-speaking complainers were in the event, the complaints were based on pictures and/or a video that has been taken down.


If you are not there and haven't heard first-hand from any attendees, you are out of context and shouldn't make a fuss.

I myself wasn't there, so I'm not jumping into conclusions. Instead I'm trying to find out what attendees think.

ZDNet has a report on this, I'd suggest that you either read it if you know Chinese, or get it translated to your language.

Beyond the report, I've chatted with some attendees, including one female developer (let's call her X) and a friend of another female developer (let's call her Y). But let's establish some facts first.

First of all, it was only a 3 minute dance to entertain the developers in an otherwise exhausting 24 hour hacking event. It was not an all night dance party.

Second, some bloggers think these girls are strippers. No, that's totally wrong. They are girls that are good at dancing and are invited to exhibitions, trade shows or other events to dance with clothes ON to attract customers. Strip dancing is illegal in Taiwan according to this Q&A page of Hsinchu District Prosecutor Office. If having dance girls in technology events gives you a bitter taste in your mouth, don't blame it on Yahoo!. That practice has been there for for than 5 years.

Third, it has been dubbed "lap dancing", but is it really that intimate? I can't tell from the pictures on Simon Willison's blog. It seems the dance girls touched developer's shoulders with their hands. But there were no other apparent physical contacts. Does this constitute lap dancing? I'm not sure.

Now on to my attendee friends. My summary of the responses to the 3 minute dance are as follows.
  • X, being in the Open Hack Day for both 2008 and 2009, complained about 2 things last year on her blog (in Chinese):
    1. the loud music distracted her and her team from coding;
    2. the dance girls pulled attendees to stage, interfering with developers' hacking work.
    She did not write about the dancing itself, and hasn't written any blog about the event this year.
  • Y's friend said Y didn't care.
  • A male friend wrote on his plurk microblog that he enjoyed the Open Hack Day event overall, but felt uncomfortable in those few dancing minutes. He also thought that dance girls pulling attendees to stage is over the line.
  • Several others view that "it was a distraction", pointing to the loud music, but not the dance because
    • some of them were trying to keep coding;
    • the rest didn't bother to watch.
  • Some didn't even bother to comment on it, instead complained that some teams came with a half-baked project and the competition wasn't fair.

Today, finally there is an English blog entry by a male attendee. Similarly, he complains about the distraction, not the dancing.

So far I haven't seen a single participant, male or female, feel offended by the dance.

So, no matter who you are, which philosophy you believe in, or how many subscribers your blog enjoys, stop making a fuss unless you were in the event, or until an attendee writes that he/she is offended by such an arrangement.

2009年10月13日

資料在雲端蒸發,怎麼辦?

最近有個連續劇般的新聞,我看了幾天...

10/10 Engadget 報導:"T-Mobile: we probably lost all your Sidekick data"。啥?T-Mobile 把手機客戶的聯絡人、照片的資料搞丟了?

10/11 ZD Net 文章:"The T-Mobile-Microsoft Sidekick data disaster: Poor IT management going mainstream"。「T-Mobile 微軟的資料災難:差勁的 IT 管理進入主流」,這種話都出來了,挨踢也是應該的。

10/12 The Inquirer 報導:"Danger no backups"。不論是外包給別人去升級 SAN 也好、是微軟和 Danger 系統整合有問題也好,資料還真的沒有備份?!

第一次看到這個新聞的時候,我還真不敢相信,所以才多看了幾天。

資料中心裡的客戶個人資料竟然沒有備份?

這樣也可以出來做生意?

我本來覺得歐巴馬上任不到一年獲諾貝爾和平獎一定是本月最離譜事件了,沒想到馬上被這件事追過!


網路上有關這個事件的部落格也是隨手找就一大堆,有人說這是雲端運算目前為止最大的災難,有人說這是無能的人經營的傳統資料中心,和新興的雲端運算無關

這個事件,算不算雲端運算的災難?


我所認同的「雲端運算」是「應用程式和資料都放在遠端伺服器,用任何可上網設備均可取用」的運算模式,不是任何單一技術或單一廠商,和資料中心傳不傳統、網管厲不厲害也沒有關連。

所以,不要牽拖,這就是雲端運算的大災難!

雲端運算不安全?

這個例子說明了,再先進的技術,在無能的營運或管理者的手上,都可能出問題!(唉喲,害我又想起張國龍教授當年批評核四安全性的說法...)

這個單一事件,不會阻止、但可能會減緩雲端運算模式的普及。因為:
  • 你的銀行外洩了所有信用卡客戶的資料,你會說整個信用卡的消費模式就此垮台嗎?
  • 還是你會說,這家銀行太爛了,趕快把卡剪了,換用另外一家的?
你也許要記住這次出包的雲端服務公司,以後在選擇服務業者時,考慮一下要不要選這家。


那麼,作為一個雲端消費者,要如何保護自己的資料?

依我看,有兩件事可以做:
  1. 自己的資料自己救!把所有上傳到 flickr/picasaweb 的照片、上傳到 YouTube/Vimeo 的影片,在 Pixnet/無名/Blogger 寫的部落格文章、在 Google docs 裡作的文件、用 Google Sites 做的網頁... 通通拷貝一份在家裡。

  2. 慎選雲端服務商。以後選擇只會更多,每個人因為穩定性、移植性、方便性、同儕推薦等等各種原因會選擇不同的服務商,但為了你辛辛苦苦寫的文章或難得拍到的小孩照片不要人間蒸發,千萬別漏了考慮「資料安全性」。

1.自己的資料自己救

這說來容易,做來難。不是空間的問題,一顆硬碟 1 TB 的時代,買個外接碟就能裝進幾百小時的影片、或一二十萬張照片、或幾十萬份文件,容量真的不是問題;問題是在維護上。

天下沒有不散的筵席,更沒有不壞的硬碟。

出去旅遊拍的照片和小孩幼稚園畢業典禮的影片,一旦失去就再也回不來了,小心的人都會自己備份;管理日漸成長的檔案和備份的最簡單方法,大概叫做「買兩顆硬碟回來對拷」吧!不過要有心理準備,這種事不太好請學長幫你做(你確定學長不會看到不該看的?),金錢和時間是要自己花的。而且有些東西是直接在雲端平台產生的(如這篇部落格),要如何備一份在家裡?這是另外一個課題,改天再來寫一篇。

不過,話說回來,連小心的一般使用者都會備份資料了,堂堂的手機廠商和配合廠商(好大的一間公司喔)竟然會沒有備份?我二個禮拜前才在台大教了 distributed file systemsGFS 的課,連大學生都大約知道容錯的分散式檔案系統是怎麼回事了,這些大公司是在用二十年前的技術存資料嗎?

2.慎選雲端服務商

如果在金錢或時間上有困難,實在沒辦法自己備份怎麼辦?只好仔細選家服務商,然後祈禱不會所選非人啦。

怎麼看一家雲端服務商的資料安全性好不好?
  1. 歷史記錄:以前有沒有掉過資料?掉了有沒有找回來?花多長時間?資料是否外洩過?
  2. 資料保全技術:它用什麼技術保全你的資料?有沒有容錯機制所以不怕單一硬碟的損壞?有沒有異地備援所以不怕單一資料中心發生火災?
  3. 人員素質和制度流程:它的工程師和 IT 網管的素質如何?有沒有完善制度和流程以避免人為疏失?
第一點在網路上搜尋或打聽,多少可以知道一些。

第二點比較困難取得,服務商不見得會揭露這些技術細節,但我認為雲端運算要漸趨成熟的話,這些是雲端服務商應該要揭露的內容。目前一般的做法是提供「服務等級同意書」(service level agreement),但就像安裝軟體大概超過 99% 的人都是 Next > Next > Next,雲端服務的 SLA 那頁應該也是沒看就「我同意」了吧?有心的人不妨注意一下 SLA。

第三點的話,每一家要嘛不說,要嘛一定是自吹自擂,這時候口碑就很重要了,尤其是在行家之間的口碑。


你可以反問:「我存錢到銀行都沒過問銀行是如何保全它金庫裡的錢了,存資料到雲端難道比存錢還要更小心?」

當然!

錢失去了,再賺就有,何況銀行被搶了,你還是可以憑存褶去領錢,如果把銀行擠兌倒了,還有存款保險寥表心意的理賠,要到的每一塊錢,都和你存進去的錢有一樣的效用。可是,你在金字塔前騎駱駝的照片萬一不見了,難道要摸神燈請燈神幫你變回來?業者最多只能賠你錢,但你寧願賠錢的狀況不要發生吧?

在雲端產業和法律配套還沒成熟的今天,業者必未會主動揭露資料保全的方式,所以,還是多搜尋多打聽吧!口碑很重要的,不是你身邊非行家的同學、同事、同鄉、同胞的口碑,而是網路上行家的口碑。

誰是行家?那就要由你來發現了。希望你不會和這幾十萬個 Sidekick 的客戶一樣,資料掉了還救不回來,也希望你永遠不會問我標題上的問題。


2009年10月11日

陳水扁去美國軍事法庭狀告美國的判決:駁回

在美國軍事法庭日誌 10-026 號記載了陳水扁去告美國的案子的處理結果,順手轉貼並翻譯一下。我不是法律專業,用詞如有錯誤請專家指正。

Misc. No. 10-8003. Chen Shui-Bian, Petitioner v. United States, Respondent. Notice is hereby given that a petition for extraordinary relief in the nature of a writ of mandamus was filed by mail under Rule 27(a) on September 21, 2009, and placed on the docket this 6th day of October, 2009. On consideration thereof, it is ordered that said petition is hereby dismissed for lack of jurisdiction.
雜項 10-8003 號,請願人:陳水扁,被告:美國。
在此公告,要求本庭依法履行書面命令以破例釋放請願人的請願書,已於 2009 年 9 月 21 日依法規 27(a) 以郵件寄達本庭,並於 2009 年 10 月 6 日進入備審案件目錄表。在審慎考慮之後,本庭命令,因缺乏法律管轄權而駁回該請願書。


這裡面有些我不太確定譯得對不對的文字,條列如下:

extraordinary: 破例的

relief: 釋放

writ: 書面命令

mandamus: 依法應履行的執務

dismiss: 駁回

歐巴馬獲諾貝爾和平獎:文字記錄

這兩天最大的意外新聞,應該就是美國總統歐巴馬才上任九個多月就獲得諾貝爾和平獎這件事吧!各國媒體充斥著各種解讀和猜測,我不是國際關係專家,不想解讀,只想把諾貝爾基金會的公開文字轉貼和翻譯出來,留個文字記錄。

正式的 citation

"for his extraordinary efforts to strengthen international diplomacy and cooperation between peoples"
「因為他在強化國際外交和民族之間的合作上異於常人的努力」


記者會的宣佈

The Norwegian Nobel Committee has decided that the Nobel Peace Prize for 2009 is to be awarded to President Barack Obama for his extraordinary efforts to strengthen international diplomacy and cooperation between peoples. The Committee has attached special importance to Obama's vision of and work for a world without nuclear weapons.
挪威諾貝爾委員會業已決定將 2009 年諾貝爾和平獎頒給歐巴馬總統,以表揚他在國際外交和民族之間的合作上異於常人的努力。委員會尤其重視歐巴馬對於無核武世界的願景和工作。


Obama has as President created a new climate in international politics. Multilateral diplomacy has regained a central position, with emphasis on the role that the United Nations and other international institutions can play. Dialogue and negotiations are preferred as instruments for resolving even the most difficult international conflicts. The vision of a world free from nuclear arms has powerfully stimulated disarmament and arms control negotiations. Thanks to Obama's initiative, the USA is now playing a more constructive role in meeting the great climatic challenges the world is confronting. Democracy and human rights are to be strengthened.
身為總統,歐巴馬創造了國際政治的新氣氛。多方外交重新取得中心地位,並且強調聯合國和其他國際組織所能扮演的角色,即使是最艱難的國際衝突,對話和談判也成為解決問題的優先手段。無核武世界的願景已經有效地激發了裁減核武和控制核武的談判,幸虧歐巴馬的主動,在全世界面對巨大氣候變遷的時刻,美國現在扮演了更有建設性的角色。民主和人權則有待加強。


Only very rarely has a person to the same extent as Obama captured the world's attention and given its people hope for a better future. His diplomacy is founded in the concept that those who are to lead the world must do so on the basis of values and attitudes that are shared by the majority of the world's population.
很少有人能像歐巴馬一樣引起全球關注並同時給予人民美好未來的憧憬,他的外交政策根植在一個觀念之上,就是:要領導世界的人一定要以全世界多數人的共同價值和觀點為基準。


For 108 years, the Norwegian Nobel Committee has sought to stimulate precisely that international policy and those attitudes for which Obama is now the world's leading spokesman. The Committee endorses Obama's appeal that "Now is the time for all of us to take our share of responsibility for a global response to global challenges.
108 年來,挪威諾貝爾委員會不斷試圖鼓勵的,就是這樣的國際政治和由歐巴馬領先全世界展現出來的這種態度。委員會支持歐巴馬發出的呼籲:「現在是我們全體共同肩負起對全球性挑戰作出全球性回應的責任的時候了。」


Oslo, October 9, 2009
2009 年 10 月 9 日於奧斯陸

2009年9月7日

噗浪你到底在搞什麼鬼!?

噗浪有隱私嗎?

今天噗浪上的一個話題是正妹牆帶來的隱私權可能被侵犯的問題,讓我來從個人的觀點表達一下想法。

正妹牆


正妹牆是什麼?它是一個網站,幹什麼用的?用說的不如用看的。



這這這... 真是宅男的福音啊!

還可以選任何一個正妹的照片點進去看喔!


進去之後,就是有關這位正妹的資訊啦!最上面是這位正妹最近的噗,再來這塊是她的照片、之前的照片、更舊的照片、等等等。(第一次做馬賽克,技術不佳請見諒。)

往下捲,捲過正妹過去所有的照片之後,出現了她的朋友的牆,有 plurk ID、Karma 和照片。



再往下捲,看到她的粉絲的牆,一樣有 plurk ID、Karma 和照片。



OK,正妹牆就是這樣。

問題 1:過去的照片

正妹牆很厲害,可以把正妹以前的照片找出來顯示,這是怎麼做到的?其實,這些圖檔的網址清一色是

http://avatars.plurk.com/nnnnnn-bigmm.jpg

的形式。換句話說,當正妹因為心情好還是什麼原因換照片的時候,噗浪並不是拿新的圖檔蓋掉舊的,而是產生一個新的圖檔的網址給正妹的首頁用(換個 mm 的數字),舊的仍然留在系統裡,網址不變。

「正妹牆」的作者發現了這個事實,更進一步發現了照片網址的規律,因而找出了正妹過去所用過的所有照片,顯示在有關那位正妹的網頁上。

已經有人抗議:我換掉的照片,你為什麼還顯示出來?!

這裡有個問題:換掉照片之後,舊照片算什麼?

是「舊的作廢」、還是「舊的歸檔」、還是別的?

噗浪的上傳照片頁是這樣寫的(點擊圖片字可以看得比較清楚):



"Upload new picture to replace the current one."


如果你問我,我會說,這裡很清楚地說了,「上傳新的照片取代現在的。」

問題來了!

噗浪在系統中沒有真的用「取代」的動作!而是用「新加照片」+「更新照片網址」的動作,嚴格說來不算取代;但因為噗浪沒有提供連往舊照片的連結,表面上看起來和「取代」有一樣的效果。

可是這有一個漏洞:假設我發現了這位正妹的噗浪首頁,覺得她的照片很棒,在我的部落格裡大大讚揚一番還放個連結,這是完全合情合理合法的行為啊!她有一天換了照片,也不會通知我。但因為噗浪保留了舊網址,所以到我部落格的人都會看到她的舊照片!

從這個角度看,噗浪現在「新加照片」+「更新照片網址」的作法,並沒有達成「取代」的功能,這違反了上傳照片頁的說明文字。

從功能上來說,使用者的認知是「舊照片被新照片換掉了」,可以合理推論「舊照片已不存在於網路上」;就像「我把硬碟裡的檔案砍掉了」可以合理推論「檔案已不存在於硬碟裡」,但是熟悉去年灌 C 事件的人都知道,熟系統的人在一定狀況下是可以把砍掉的檔案撈回來的,但是做得到不代表應該去做。在噗浪上,使用者已經藉由「上傳新照片」表明了「取代舊照片」的意圖,系統應該尊重使用者的意志,用任何技術或方法撈出舊照片都應該視為違反使用者意圖的行為。

在我上面貼的正妹的歴史照片中,可以看到第八張是她和某個男生的合照,其實往下捲有更多和他的各種合照,甚至有些親密動作,她現在拿掉了這些照片換成獨照,你覺得是為什麼?把舊照翻出來顯示,會不會有可能是在傷口上灑鹽?

所以我覺得,雖然噗浪的設計有我講的漏洞,但是正妹牆這樣在事後利用這個漏洞把所有舊照片翻出來顯示的作法,於情於理都是不妥的。

問題 2:顯示朋友和粉絲的資料


在正妹牆的正妹個人頁上,朋友和粉絲的資料都會顯示出來,但是在正妹的噗浪頁上,未必是設定成公開的。這位就是這樣:



看不到朋友的照片,也看不到粉絲的照片,不過有個 Show all fans 的連結耶!點下去,



什麼!粉絲就列出來了!在帳號設定的 "Privacy" 分頁裡設「Allow only my friends to view my plurks.」不准有粉絲的設定是設心酸的嗎?

順便一提,噗浪不提供介面讓正妹隱藏朋友的照片,但是,這是 web!會設 CSS 就能玩很多花樣,只要把 id="dash-friends-pics" 這個 div 捏成一個點、或是丟到外面很遠的地方,就看不到了。

好,回到正題。正妹牆把正妹的朋友和粉絲通通列出來了,有沒有問題?

在技術上,正妹牆作者並沒有黑掉噗浪的系統,只是載入正妹的噗浪頁,頁裡的 Javascript 裡就有
var FRIENDS = {"4059169": {"display_name": "馬賽克", "uid": 4059169, "nick_name": "馬賽克", "has_profile_image": 1, "location": "Tainan, Taiwan", "avatar": "28", "full_name": "馬賽克馬賽克", "gender": 1, "timezone": null, "id": 4059169, "karma": 70.87}, ...};

var FANS = {"4190724": {"display_name": "馬賽賽", "uid": 4190724, "nick_name": "馬賽賽", "has_profile_image": 1, "location": "Taipei, Taiwan", "avatar": "20", "full_name": "馬賽賽", "gender": 1, "timezone": null, "id": 4190724, "karma": 65.83}, ...};

如果你看得懂一點 Javascript,你就知道,

這就是正妹朋友和粉絲的基本資料啊!

正妹牆所做的,就「只是」把這些資料顯示出來。

這個問題有兩個層面。

1. 噗浪為什麼要把這些資料用 Javascript 的形式塞在正妹的頁面裡?


現在噗浪的設計是:一定會顯示朋友、粉絲則依隱私設定決定要不要顯示,所以要把朋友的清單傳給瀏覽器顯示;估且不論這種設計的效率問題(我的頁面的 27920 bytes 中有 6541 bytes 是朋友和粉絲的資料,但只顯示 140 個朋友中的 8 個和 216 個粉絲中的 8 個!),光說這個不用認證就把資料通通送出來的做法,我就無法苟同!

如果是我來設計這個頁面,我會用一個 Ajax 去向伺服器要朋友清單的前 8 筆顯示出來,如果使用者點了 "Show all friends",再用 Ajax 去要更多資料來顯示。

粉絲的顯示可以用一樣的 Ajax,只是換個資料,伺服器端會看正妹要不要公開粉絲,要才給資料出來,不要的話就回一個「恕不提供」。

這樣很難嗎?

順便再講一個問題... 有沒有人和我一樣,覺得要保護的是朋友,不是粉絲?應該要可以設定不顯示朋友才對吧?

2. 正妹牆可以把這些資料顯示出來嗎?


技術上,正妹牆只是把已經存在的資訊,用視覺的方式呈現出來。

對使用者而言,問題是在粉絲的部分沒有尊重使用者個人的隱私設定(雖然噗浪自己也提供了 Show all fans 的連結),使用者心裡自然不是滋味。但噗浪沒提供 API,正妹牆也只能從 fan_holder 這個 div 的內容去猜,有點苦手,但是做得到。

朋友部分,噗浪沒有提供隱藏的介面,所以一般人都是公開的,但也有人用 CSS 把朋友清單藏起來了,用瀏覽器看不到,他花了心血去隱藏朋友清單,顯然真的不想給別人看,但是網頁原始的 HTML 檔裡明明就有!結果就是,人看不到的朋友清單,用程式去看網頁就明明白白。

要用程式判斷使用者有沒有隱藏朋友清單有技術上的難度。最簡單的解決方式,還是請噗浪提供 API,讓外部程式可以依循。在 API 出現之前,恐怕是沒有「顯示願意公開的朋友清單但不顯示不想公開的朋友清單」的好方法。

這個部分,可能要請正妹牆的作者權衡一下,把「資訊存取的便利」和「個人隱私的意願」放在天平的兩端秤一秤,是要放棄便利性(通通不顯示朋友)、還是要顯示朋友但因為無法判斷意願而可能不尊重某些人的意願?


總之...

這些問題,我認為在正妹牆身上的少,在噗浪身上的多;也因為正妹牆,才曝露出來,原來噗浪有這麼多問題:沒有 API、把朋友和粉絲資料放在網頁中、未使用固定網址放照片!

噗浪你到底在搞什麼鬼!?

2009年8月9日

五大行星

近年來五個主要的瀏覽器 IE、Firefox、Safari、Opera、Chrome,Logo 都是圓的,為什麼呢?

我百思不得其解,直到在 CNet 的這篇報導裡看到下面這個圖,終於恍然大悟!


這分明是五大行星嘛!

IE 那個環,有像土星吧?

Firefox 的顏色是藍星和木星的結合,因為土星和木星是五大行星裡最大的兩顆,Firefox 順理成章就佔木星缺啦!

紅紅的 Opera,火星非他莫屬。

原意像是在藍藍的大海中用羅盤導航的 Safari,既然連大海都出來了,就不用客氣了吧?水星就是他了!

剩下一顆金星,就塞給 Chrome「鉻」吧!誰叫他名字裡帶金!(咦?)

對照表來一下:

  木 土 金 火 水


話說五大行星簡稱五行,   (大誤)
水火金木土,相生相剋,
誰剋誰,有興趣的人自己去查吧! XD

2009年6月3日

Google 推出新 Android 軟體:Places Directory

Android 市集上最近有了新貨:Google Places Directory,這是 Google 台北辦公室的工程師開發出來的軟體,可以幫你找到附近的有趣地點(point of interest),怎樣的有趣地點呢?



(有中文喔!)

目前有小吃、簡餐、餐廳、停車場、加油站、便利商店、購物、電影院、飯店、銀行郵局、醫院、景點這十二類。

來吃個簡餐好了。



看到了嗎?有店名、距離(怎麼是用英哩啊?)、方向(就是那個小紅箭頭)。G1 有電子羅盤,搭配 GPS 定位,它就知道每家店和你的相對位置和方向啦!喜歡的話,轉一轉 G1 看小紅箭頭跳圓舞曲吧!

有一家有評論,還是五顆星!點進去看看。



這叫不叫一目瞭然?

先看看別人的評論再決定要不要去這家,畫面上顯示的是每篇評論的前一百多個字,要看全文的話,你猜怎麼弄?

對啊,點在評論文上就會開啟瀏覽器連到愛評網上的評論全文了,通常也會有不少照片。如果人在國外,會連到其他的當地網站。

看完回到 Places Directory,想打電話訂位的話,按 Dial 就可以了。

想看看地圖這家店在哪裡,按 Map 鈕看看。



那要怎麼去呢?按一下中間的 "The place is here"。



再來選 "Directions to this address"。你也可以選別的,像局部放大、把目前位置設過去、把這家店的電話地址加到聯絡簿裡,去吃完還要去別的地方續攤?沒問題,也可以把店當起點找路。



再來要設路線的起點,預設是目前的位置,按右下角的 "Route" 就開始規劃路線了。



路線出來了。

啊照片沒照好,下面兩個按鈕白掉了。左下角是 "Edit",按了就回到前一個畫面;右下角是 "Show map",兩個按鈕之間是 "Distance ... 0.9 km"、"Est. drive ... 3 min",市區道路加紅綠燈,900 公尺要開 3 分鐘的車,大概差不多吧!

想看看路線圖,按右下角的 "Show map" 按鈕就可以了。



看到路線圖了,轉彎的地方都有標誌,如果按下去,



就會告訴你 "Turn right at 百忍街"(不該是講「在百忍街右轉嗎?中文化還沒做完!)。

好了,我可以去吃了!900 公尺,走路好了,不然開車還要找停車位。如果 Places Directory 可以幫我找店附近的停車位就更好了!

下次出國或出去玩的時候,帶著這隻手機,就不怕吃到地雷餐廳了!

2009年5月18日

徐薇誤人子弟之《金鋼狼》

昨天禮拜天,難得帶了全家大小去看電影「星際爭霸戰」。


下午從美麗華出來的路上,打開收音機,就聽到聲音甜美的徐薇老師正在和老麥討論「星際爭霸戰」和「金鋼狼」 這兩部電影,算是半個 trekkie 的我,當然想聽聽老麥怎麼談「星際爭霸戰」囉!無奈聽沒多久話題就轉到了金鋼狼。

這畢竟是徐薇老師的英文教學節目,說到金鋼狼,怎麼可以不趁機教一下他的英文 "wolverine" 這個字呢?

這時不可思議的事情發生了!

也許是我正在開車,有點幻聽...

但是,我真的聽到徐薇老師以她慣有的甜美嗓音,說出以下這段話:

金鋼狼的英文名字,是片商為了 X-men 電影,創造出來的字喔!

(啥!?)

狼,我們都知道,是 W - O - L - F
金鋼狼有點不一樣喔,是 W - O - L - V - E - R - I - N - E

(唸得真清楚!感覺上還特別強調了 V 這個字,但是... 這不就是... )

這個字唸成  /ˌwulvəˈraɪn/

等一下!

 /ˌwulvəˈraɪn/ ?

新創的字??

徐薇老師,我可以理解妳不看 NCAA 籃球,

沒聽過密西根大學九零年代初大名鼎鼎的新生校隊五虎將 The Fab Five

也沒注意到後來引起渲然大波的密西根大學籃球醜聞的新聞,

所以不知道,

在球場上,密西根大學就是 University of Michigan Wolverines

但是,但是...

上節目之前,不能先查一下字典嗎?

忘了帶字典,總可以借電台的電腦查一下 Google 字典吧?

不用五秒鐘,就能查到 wolverine 的定義和發音了,我來剪貼一下:



   在英文 > 中文(繁體)字典中找到。 

wolverine  [美國] [ˌwulvəˈrin] [英國] [ˌwulvəˈriːn]

  • 名詞

    1. 【動】狼獾;貂熊
    2. 狼獾皮;貂熊裘
    3. 【美】【俚】( W -)密西根州人的別稱

相關詞組

  • Wolverine State 
    【俚】狼獾州(美國密西根州別名,另一別名為大湖州 Great lakes State )

網頁翻譯

Wolverine

  1. 金剛狼《X戰警》XMen中的金剛狼是休傑克曼在美國電影的首次露面之後接著一連串拍了《X戰警2ent.sina.com.cn 相關搜尋
  2. 渥弗林... Sterops 施泰羅, sunree 山瑞, Suunto 松拓, Tecnica 泰尼卡, Tophik 拓步,www.top222.com 相關搜尋
  3. 金鋼狼1X戰警金鋼狼電影正式上映時間 Ans2009年4月29日星期三早場2由變種人組成的秘密軍事www.marieclaire.com.tw 相關搜尋

wolverine

  1. 狐狼... 乒乓球知識, 膠皮, 乒乓球品牌, 配件類, 網球配件, 其它用品, Reebok 銳步, Ninkewww.lingdu.cn 相關搜尋
  2. 狼獾... 這個比喻有點低估了自己建議以凶猛的狼獾Wolverine作為國家的新象徵以灰熊與狼獾blog.51.ca 相關搜尋

網路上的定義

    • Michigander: a native or resident of Michigan 
    • glutton: musteline mammal of northern Eurasia 
    • stocky shaggy-coated North American carnivorous mammal 








徐薇老師,不論妳說 wolverine 是狼獾、還是貂熊,我都沒有意見。

妳要怎麼和老麥講電影裡休.傑克曼的角色和這兩種動物有什麼關係,我也不管,

可是...

當英文老師的人,唸錯發音,還瞎掰詞的出處,

真的可以嗎?

聽了妳的廣播的人,明天找外國朋友一起去看金鋼狼,

說:"let's see the movie  /ˌwulvəˈraɪn/",

被外國朋友譏笑連發音都發錯,

從此抬不起頭來,也沒有關係嗎?

除了誤人子弟,我還能說什麼?

喔,我還能說:

為什麼這樣的人,錢賺得比我多那麼多啊!

2009年5月2日

COSCUP 2009 起跑囉!

啥?你不知道 COSCUP 是什麼?

COSCUP = Conference for Open Source Coders, Users and Promoters = 開源人年會,是台灣開放原始碼社群一年一度的大聚會。

當年 COSCUP 之所以會開始舉辦,是因為有幾位好朋友看到軟體自由協會(SLAT)舉辦的 ICOS 2006 研討會,滾在地上大叫「這不是 ICOS!這不是 ICOS!」。對 ICOS 和其前身 Open Source Workshop 有高度使命感的乃特大,找了 Pofeng、KC 和我在台大附近的魯米爺咖啡談了談填補這個社群研討會空缺的可能性,就在二個月內,乃特大奔波、Pofeng 慷慨解囊、KC 和我跑腿,就促成了在台大體育館舉辦的 COSCUP 2006(又叫做「真.ICOS2006」)。

COSCUP 2006 來了近兩百人,給了我們很大的鼓舞;2007 年,我們決定再給 SLAT 和 ICOS 一次機會,正式向 SLAT 提案讓 COSCUP 和 ICOS 辦聯合研討會,COSCUP 辦社群的議程,ICOS 辦產官學研的議程,場務和財務則由 ICOS 的團隊打理。不料 SLAT 搞出一連串的小動作,造成會後乃特大和 SLAT 決裂

到了 2008 年,乃特大和我決定要擴大參與,廣邀台灣各地社群一同來舉辦 COSCUP,讓 COSCUP 不但是為了社群而辦,更是由社群來辦,成為真正屬於社群的研討會。KaLug、Study Area、Zuso、Tossug、MozTW、TWJUG 都響應了。這次的研討會很成功,在 238 席的台大應用力學研究所國際會議廳舉辦的 COSCUP 2008,竟然還有社群朋友報不到名!而且在乃特大的廣為奔走之下、配合內容紮實的 Call for Sponsorship,拉到了破記錄的廠商贊助金額,看看 COSCUP 2008 閃閃發光的贊助廠商名單:Device 2.0 、 Mozilla Corporation 、 痞客邦 、 Google 、 Novell 、 巴哈姆特 、 Handlino 、 Asus 、 Microsoft 、 Aiink 、 暨大資管 、 Fon 、 Yahoo 奇摩,真是賞心悅目啊!

不過籌備人和廠商都變多,聯繫工作也跟著增加,沒想到又碰到幾個籌備人出了些狀況(如我自己必須在會前出國工作和渡假一個多月),也許有些社群朋友注意到了,籌備團隊中的幾個人在會後有些摩擦,這是美中不足之處;我只希望大家能忘掉這些小小的不愉快,把 COSCUP 延續下去。

辛苦三屆的乃特大今年要休息了,由我來接棒當總召集人。很高興的是,許多好朋友一句話就出來幫忙了!lman 、 Thinker 、 Fred 、 Jouston 、 Ijs 、 Layla 、 BlueT 、 柏強 、...,真是感恩!接棒的我們已經開始籌備的前期工作,像 Call for Sponsorship、暫訂的議程方向和經費預估都有了、場地也訂到了、也從 2008 帳房 IK 的手上拿到了去年省下來的款項,在景氣寒冬的今年,這筆結餘款真的是雪中送炭啊!我在此向乃特大和 IK 致上最大的謝意,也為之前因為急著付場地訂金而在程序上有所疏失向兩位致歉,如果在這過程中造成兩位在心理上有任何不舒服,請多多包涵。

無論如何,即使起跑有點不順,COSCUP 2009 還是上跑道了!期待今年的 COSCUP 又會是一場快快樂樂的大拜拜,讓大家來看看老朋友、交交新朋友、順便學點新玩意!
  • 時間:2009 年 8 月 15 日 - 16 日
  • 地點:台灣大學 應用力學所 國際會議廳
    (對!沒錯!就是去年一樣的場地)
看到這裡的你,難道不想幫忙 COSCUP 2009 嗎?你可以:
  • 報好康!你認識某金主、或是某公司的某經理,可能會贊助 COSCUP?立刻報給籌備團隊!信箱:〔研討會縮寫〕@googlegroups.com。
  • 傳千里!COSCUP 開放報名的那天,用力給他宣傳下去,讓更多人知道 COSCUP、想去 COSCUP、報名 COSCUP!
  • 甲級動員!揪團一起去參加 COSCUP。
我們八月見!

2009年4月16日

Google Code 正體中文版上線了

〔宣告:作者寫這篇時任職於 Google,下筆時不可避免有 Google 的角度,但所寫文字不代表 Google 官方的觀點。〕

如果你今天連上 Google Code,在網頁最下方,應該會看到這行文字:


Google Code offered in: English - Español - 日本語 - Português - Pусский - 中文(简体) - 中文(繁體)

比以前多了一個「中文(繁體)」選項,選下去!





吔!Google Code 有正體中文版了!

中文版包括哪些開發者工具呢?點選網頁下方的「網站目錄」連結看看吧!




有 Android、Chromium(Google Chrome 的開放原始碼專案)、Google 應用服務引擎、 Gears、Protocol Buffers、Google Web 工具組這些開放原始碼專案的文件,和 Google Data API、Gmail Atom 資訊提供("feed")、Google 帳戶驗證 API、Google AdSense API、Google AJAX API、Google Analytics、Google 圖表 API、Google Finance API、Google 地球 API、YouTube 資料 API 等等應用程式介面的文件,我眼花了!一共有 66 個給開發者用的產品,每項的介紹頁都已經中文化了。

Google 的服務一向是先推 beta 版,再依使用者的回報來修改,Google Code 文件服務也不例外。
  • 有些中文翻譯可能有 bug,歡迎回報。
  • 網頁右上角有一行小字:「英文版或許有比此中譯版新的內容」,是的,中文版還沒跟上英文版的進度,所以有些較深入的文件還沒有中文版。
不過以 Google 的 API 和開放原始碼專案的更新速度,文件的翻譯版,不論是日文、俄文、西班牙文、還是中文,要追英文版恐怕不容易,所以先求有、再求好,先走廣、再走深,希望讓開發者對各種工具有個概略的認識,在開發網路應用時,知道有哪些工具可以用來加速開發的時程、或提高自己的應用在使用者心中的價值。

正體中文只有台灣、香港、澳門在使用,人口加起來約三千萬人,佔全球 0.5%。對 Google 來說,願意花資源提供正體中文的 Google Code 網站,可見 Google 對使用這個文字的開發者的重視程度。對 Google 來說,有流量才會繼續投入、提供更多 Google API 和開放原始碼的中文文件。希望大家多多愛用這個服務囉!

2009年2月24日

從星期五先生和六先生筆戰領悟的《寫格四心得》

今天不知道忘了吃哪個藥,竟然不睡覺看前一陣子星期五先生六先生在網路上筆戰的事,還看得津津有味。

我什麼蔥都不是,當然不能論斷這裡面的是非,只是藉個人部落格的小小一角寫點心得,寫著寫著,歸納出四點來,就當作是自我約束、自我期許、自我警惕。以後如果我犯了任何一點,還請好友直接指出來。


一、橋接及時和正確的資訊可以造就滿意的讀者

自古以來,搬有運無一直是商人致富的關鍵,搬運的不只是有形的貨品,還有無形的不透明資訊。為什麼以前一個磁盤在歐洲可以賣天價?因為那時歐洲人不會做磁器,只好任由商人說他在遙遠的中國多難買到,又以多大的力氣才能完整不破地運到歐洲,喜愛磁器的歐洲人只好任商人開價。

在現代社會中,有些人搬運的就是無形的資訊。他們把網路科技最前端的最新資訊用容易為路人理解的白話文介紹給大眾,照理說,需要這種資訊的人應該願意付出合理的費用來獲取這樣的資訊,不過這種舊時代的商業模式在網路上成功的不多,專門提供 Linux 相關新知的 Linux Weekly News 可算一例。

對我來說,Linux Weekly News、TechCrunchEngadget 這類科技部落格/新聞網站代表的是讓我一直追著最新資訊跑的馬車,如果我不想落後太多,我就會是他們的讀者。

沒有什麼一手管道的讀者,需要這樣的產品來橋接和一手資訊之間的落差。而經過長時間的淬練,讀者會逐漸相信這些網站寫的新聞、閱讀他們的評論和吸收他們的觀點,成為滿意而忠實的客戶。

從網站端來講,在享受把觀點灌輸給讀者的特權的同時,相對義務是傳播正確的資訊和新聞,至少不有意造假或無端造謠:任何事後發現假造或不正確的資訊,都不可以是這些網站造成的,而是消息來源本身的捏造或錯誤。

這是塑造這種網站的專業性和可信度必需要達到的基本要求。

有些部落客不只是橋接資訊,還能創造第一手資訊,也適用相同的基本要求。


二、美食評論家不必煮得出一桌好菜

這個道理其實很多人都知道,聽說有些老饕也會自嘲空有一張嘴,進得餐廳進不得廚房,但這是否會影響他寫出來的食評的票房?未必。

因為他比我這種舌頭大老粗強的,就是他的一張嘴和那張嘴裡的舌頭,他能嘗出我嘗不出的細微滋味,講出我講不出的功夫師承,比出我比不出的各家大廚特色, 品出我品不出的搭菜絕配紅酒,他會不會煮又有什麼關係?我從他的食評中得到閱讀的快感,還可以依樣畫葫蘆地規劃下次情人節的餐廳和菜色,讓我除了用味覺滿足我的情人節女伴之外,還能把他的評論搬出來,說得頭頭是道,唬得她一楞一楞的,我情人節的快樂度還不破表?

這樣的評論文章對我而言,只要經得起情人節考驗,就已經極有價值,即使是付費閱讀(如:買載有他專欄的雜誌)我也可能會掏出錢來,至於他自己會不會煮?我才不管!

所以寫網站評論的部落客不必向任何人證明他有打造網站的技術實力,但要展現他的知識和眼光。


三、知之為知之,不知為不知,是知也

「知」只是一個字,郤是個複雜的問題。管理者要「知人」,才能適才適所,蕭何知韓信就是個著名的例子;軍師和專業幕僚要「知勢」,才能提出有效的策略建議,比如像孔明那個需要東風才會成功的連環計;決策者要「知己知彼」,才能百戰不殆,孫子都有教。

而「自知」就是每個人需要自備的能力。

「我不懂」、「不知道」這種話,有些人就是說不出口,好像一講出來自己在他人面前就矮了半截。記得我在唸高中到大學畢業這段時間,自認唸了評價很好的學校,成績也還可以,在功課方面是絕對不認輸的。不懂?怎麼可能,那個詞不在我的字典裡!也因此在年少輕狂的時代有過幾次不懂裝懂的經驗,還好沒有被當場戳破。

這到我讀博士班時有了 180 度的轉變。

那時我在中研院當個小小的研究助理,聽 seminar 時在場的大多是在我眼中已經「修成正果」的博士後或研究員(笑)。做量子場論研究的人給演講,三分鐘內交代完研究動機就跳入方程式的叢林裡,哇!我這隻小白免怎能不迷路?但是又不敢發問,怕被人笑連這個也不懂,一場又一場的 seminar 就這樣過去了,好像只記得了一堆研究動機...

直到有一天,有一位從以色列來做量子場論的博士後,在 seminar 中操著夾雜英語的猶太國語、在眾目睽睽、包括他的老闆也在場的情況下,問出了:「窩哺懂,窩哺懂,Why does XXX imply YYY?」我才赫然發現,說「我不懂」不是件可恥的事,即使是在自己的老闆和眾人面前。

因為沒有人什麼都懂。

所以有事不懂是正常,重點是要誠實。

  • 誠實地面對自己:知道自己的知識到哪裡、能力是什麼。
  • 誠實地面對老闆:這就是目前的我,要如何用我,是老闆的能力,要如何發揮和提升自己,是我的能力。在職場,能持續增加經驗值和戰鬥力,並且讓老闆看到自己在他的栽培下越來越成材(好狗腿?其實是一種 manage my manager),比一開始吹噓自己的能力,後來ㄅㄧㄚˋ ㄎ尢 好得太多了。
  • 誠實地面對網民:自己不是萬事通,有錯就認,不服就論,論輸就改,不懂就問。在網路上,錯誤的判斷或預測何曾少過?只要誠實面對,沒有什麼大不了。
所以,擅評不擅煮的美食家,還是不要逞強開班教四天煮出四顆星級烹飪比較好。


四、為文而文會降低信譽

六先生似乎相當自豪他每天一篇部落格的生產力,但我看到這個做法除了欽佩他的毅力之外,心中立刻響起警鐘!

即使是寫每日連載的小說,也多半是蘊釀了許久,先寫了一些存稿,才能開始連載,而且當天的章節恐怕常是幾天前寫好的。即使是這樣寫出來的文章,金庸也不滿意,後來才會有修改小說的大事。

部落格是個人的創作發表,沒有人逼作者每天要交卷。在白天另有工作的生活中,硬要每日一文,而且還是當天寫當天出版,難免在沒新聞題材或是新想法還沒成形時,只好為賦新詞強說愁;或是在新聞題材比較複雜時,為了趕當天上架只得囫圇吞棗。

西方俗諺說 "One apple a day keeps doctors away",我說 "One blog a day keeps credits away"。

2009年1月23日

Britannica 2.0? Surely you're joking, Mr. Jorge Cauz!

Britannica's president Jorge Cauz announced that Britannica is going to allow edits submitted online according to this news report by Stephen Hutcheon. He even dubbed this "Britannica 2.0" in the title.

Or is it?

I take it that this "2.0" is in line with the spirit of "Web 2.0," and I immediately went to Britannica Online to check it out, only to find disappointments.

Web 2.0 is not only about user-generated content, it also inherits the open access from the web in general, or "web 1.0" if you want. When I see a link to a wikipedia page on a search result page of any search engine, I know I can read the contents without paying a dime, and there won't be pop-up ads that blocks my way to the article and the knowledge carried by it.

Britannica Online is everything but free and open access.

The first test - on not-so-new terms

As a not-statistically-significant-yet-interesting test of its freshness, I searched the WiFi privacy protocol "WEP" which is almost obsolete now. Guess what? No, Britannica Online doesn't have it.



By the way, Mr. Cauz, please make your web site compatible with Firefox. All I can see on Firefox is a misplaced ad that blocks the error messages. I have to switch to Safari to get the above page.

The second test - on not-recommended-by-experts terms

My second test is "Lorenzo's oil" which is a formula of oil mixtures discovered by Lorenzo Odone's father, who is not a doctor nor a researcher in any pharmaceutical companies. It's effectiveness on delaying the onset of ALD (adrenoleukodystrophy) is controversial and it is not recommended by the medical academy or approved by FDA as a treatment. It would be a signal that Britannica Online's editors and experts are too arrogant if they don't describe the oil and the controversy. To my pleasant surprise, they do have this entry.

However, I still can't read it. The noble Britannica said I was attempting to read a premium topic and I had to activate a free trial to read it.



Oh... here we go again, free trials. When I forget to cancel it before the trial period is over, you'll start charging my credit card. No, thank you very much. I'm not interested. I'll get information on wikipedia.

I know Britannica has a big cost in paying experts to write the articles. But why should I or any internet user care? Unless I can't find quality and free content elsewhere, I don't see a reason to pay.

The contributor's qualification

Okay, this is not exactly a "qualification", but how about this:
"Would-be editors on the Britannica site will have to register using their real names and addresses before they are allowed to modify or write their own articles."
Give me a break. If I write anything for Britannica, what matters is not who I am, but the correctness and quality of what I write. Maybe this is a way to get the copyright issues straight, or an anti-DoS measure to prevent over-run of Britannica's reviewers. But it also creates an entry barrier. I'm not going into the decades-old debate of anonymity vs real name on the internet, but the size and quality of wikipedia proves there is a market for anonymity.

Google ranks wikipedia the highest - duh

Another funny thing is about Google's ranking of wikipedia entries vs. Britannica articles, and I quote:
"If I were to be the CEO of Google or the founders of Google I would be very [displeased] that the best search engine in the world continues to provide as a first link, Wikipedia," he said."Is this the best they can do? Is this the best that [their] algorithm can do?"
Get over it, Mr. Cauz. If you don't know how PageRank works, hire a decent SEO consultant. You have cut your premier contents away from the web collective by requiring a login. Any reasonable search engine robot can't crawl pass that. So your premier contents are not in any search engine's index. Besides, not many people are willing to link to a page requiring a login from their blog entries or news articles. So your premier contents don't get much incoming links and score poorly in PageRank or any algorithm that takes into account the link structure of the web.

Anything worth visiting?

Britannica Online doesn't have enough coverage to keep up with internet age, is picky on the browser, charges reader for "premium" topics, requires real name and address for contributors. What good is a web site with all these characteristics?

Wake up, Mr. Cauz. This is not how internet and search engines work.

2009年1月3日

How to verify the integrity of downloaded files on a Mac

I classify files available for download on the internet as the following:

  • Respectable providers ship download files with signatures;
  • Less respectable providers ship with checksums;
  • Unrespectable providers ship only the download file.
The difference is mainly the following: a checksum allows you to verify that the download file hasn't been altered unexpectedly by someone you may not know. A signature allows you to verify the above plus that the file was signed by a certain someone, usually the creator of the file you downloaded. It may be advisable that you use the signature whenever there is one associated with a download file

The most popular way of digitally signing a file is using a private key in the realm of the web of trust. To get started, you can use the GNU Privacy Guard free software. If you don't have it on your Mac, you can install the Mac version. I've downloaded the dmg of version 1.4.8 and it worked like a charm.

After installing the GNU Privacy Guard, a command "gpg" is available to you in /usr/local/bin as well as some other utility programs. You can open a terminal and use
 $ gpg --verify foo.tar.gz.sig
to verify that the file foo.tar.gz matches with the signature file foo.tar.gz.sig. You can verify multiple files at once by
 $ gpg --verify-files *.sig
to verify the integrity of files. Read the manual ("man gpg") for more details.

Oops, an error!

If you see a message like
 gpg: Signature made Wed Dec 13 05:02:10 2006 CST using DSA key ID 64EA74AB
gpg: Can't check signature: public key not found
from "gpg --verify", it means that the public key of the signer is not in your GPG keyring. Just load the public key of the signer to your keyring and off you go. The following is how I do it, your mileage may vary.

The longer route:
  1. Go to http://pgp.mit.edu/, a popular public key server.
  2. Type the key ID in the search box. Remember to add "0x" in front of the 8-character hex key ID. For the example above, I typed "0x64EA74AB".
  3. If all goes well, you'll see a search result page listing one or more keys. Click on the key ID that matches to your input. Other keys belong to people that "vouch" for the key you searched.
  4. The key server should then show you the public key of the key ID. Copy and paste the plain texts between "-----BEGIN PGP PUBLIC KEY BLOCK-----" and "-----END PGP PUBLIC KEY BLOCK-----" to a file on your computer, with these 2 lines included. Let's call the file "foo.txt".
  5. Now import this key into your GPG keyring:
     $ gpg --import foo.txt
The shorter route: The 5 steps outlined above can be done in one command:
 $ gpg --recv-keys 0x64EA74AB
Now you have the public key of the signer in your keyring, you can verify the files signed by him/her using "gpg --verify".

在 Mac OS X 10.5 上安裝 Python 3.0

Python 3.0 在 2008/12/3 發佈,雖然 MacPorts 已經收錄,但 MacPython/Leopard 還在 2.5,要等到 Apple 收進 Mac OS X 裡恐怕還要等好一陣子,所以想嘗鮮又不熟 MacPorts 的人(是說我自己),就要自己裝了。

在 Mac OS X 上安裝 Python 3.0 沒什麼難的,只要依 ijliao 所說:「真男人用 tarball 手動安裝程式」就一切搞定。不過 Python 3.0 在語法、物件、函式庫上都有新東西,想要熟悉它,用互動環境邊打邊學是一定要的,那就絕對要裝讓你可以用上下左右鍵叫回程式敍述東改西改的 readline 函式庫,不然你會 copy & paste 到瘋掉。

安裝 readline 函式庫

Readline 函式庫可以在 ftp://ftp.cwru.edu/pub/bash/ 找到,我用的是 5.2 版,可以下載 readline-5.2.tar.gzreadline-5.2-patches 目錄中所有的補丁。在著手安裝之前,你也許應該確認一下這些檔案的完整性

安裝方式很簡單。假設你已經把檔案下載放在你的桌面,先開啟終端機(Terminal),再依以下指令操作即可。
$ cd ~/3party  # 或任何你喜歡的目錄
$ tar zxvf ~/Desktop/readline-5.2.tar.gz
$ cd readline-5.2
$ cat ~/Desktop/readline52-0?? | patch -p 0
$ ./configure
$ make
$ sudo make install
這就完成了,會把兩個函式庫 libreadline 和 libhistory 裝到 /usr/local/lib 目錄去,每個函式庫都有四個不同副檔名的檔: .a、.dylib、.5.dylib、.5.2.dylib,其中 .dylib 和 .5.dylib 是指到 .5.2.dylib 的 symlink。

安裝 Python 3.0

Readline 裝好後,下載 Python 3.0 的原始碼 tarball 安裝就 OK 啦!
$ tar zxvf ~/Desktop/Python-3.0.tgz
$ cd Python-3.0
$ ./configure --enable-framework
$ make
$ sudo make frameworkinstall
$ cd /Library/Frameworks/Python.framework/Versions/
$ sudo rm Current
$ sudo ln -s 2.4 Current
最後這幾步是因為用 frameworkinstall 才會把 Python 3.0 裝進系統的 Python.framework 目錄,但會把預設 python 改成 3.0,為了不干擾系統其他 python scripts 的運作,要再把預設改回成 2.4。

請享用你的 Python 3.0 吧!