2011年12月13日

時代雜誌選出 2011 年美國十大電視廣告

剛貼完「2011 年美國網站最有效的十個電視廣告」,時代雜誌就公佈了一堆十大,也有「十大電視廣告」,再來分享一下。

10. Citizens 銀行:停車場

英文標題:Parking Garage

五位美國的開國元老進不去自動取票的停車場,這時就懷念有人服務的好。 :)

讓我想起在美麗華碰到類似的事。



9. 微軟:Powerpoint

英文標題:Dog.ppt

小孩用 powerpoint 說服老爸老媽他要養隻狗,老爸想用同一招說服老媽他週末要去打高爾夫? :)



8. 職業美式足球聯盟:史上最棒的球迷

英文標題:Best Fans Ever

美國情境喜劇(sitcoms)裡的足球片段大會串,大概是許多老美的共同記憶。



7. 愛迪達:全入

英文標題:All in

滿天星的廣告。足球明星貝克漢 (David Beckham)、梅西 (Leo Messi)、NBA MVP 羅斯 (Derek Rose)、女子跳高選手 Blanka VlašićDJ Mehdi凱蒂‧佩芮 (Katy Perry),全心投入的人最美。



6. 克萊斯勒:底特律進口

英文標題:Imported from Detroit

Eminem 講述汽車城底特律的光榮歷史,挑動老美的愛國心。



5. Jim Beam 啤酒:大膽抉擇

英文標題:Bold Choices

威廉‧達福 (William Dafoe) 坐在故鄉 Wisconsin 州的 Appleton 小鎮,看著往密爾瓦基紐約的兩輛巴士,想著未來的可能性。離鄉打拼的人都有不小的共鳴吧!可惜他們沒有「向前行」可以當背景音樂。



4. 三星:4G 蜘蛛

英文標題:The 4G "Spider"

有人手機的螢幕保護畫面太逼真了。



3. 普利司通:回覆所有人

英文標題:Reply All

某人被同事整了。



2. 福斯汽車:原力

英文標題:The Force

小星戰迷,好配合的把拔!



1. Google:親愛的蘇菲

英文標題:Dear Sophie

Google 這則廣告又得第一了!連時代雜誌的編輯都說 "Damn you, Google. You did it to us again." 實在太催淚...

2011年12月11日

看廣告囉!

前陣子寫微中子,好像太嚴肅了,今天來分享輕鬆的好了:「2011 年美國網站最有效的十個電視廣告」。

這是 Ace Metrix 這家公司用他們家的 Ace Score 評分排出來的,在 11/9 公佈,應該只涵蓋 1 月到 10 月播出的廣告。我不懂電視廣告業,不知道這家公司的公信力如何,只是娛樂一下。

有效度和感動度好像有正相關,做父母的不要隨意點看第一名「親愛的蘇菲」,小心切洋蔥效應。

如果網路順暢的話,全部看完大約要花十分鐘。不要走開,來看精彩的廣告囉!

10. The Daily.com: 來看 Daily

英文標題:Meet the Daily
播出日期:2011/2/6

介紹 thedaily.com 新聞的平板電腦應用程式,在超級盃時播出,特效還不錯。

影片:上 Ace Metrix 的網站 點 "Next" 然後點 "Meet the Daily" 可以看到,我懶得去挖出來嵌入了。

9. Bing: Krochet 創辦人講他們的故事

英文標題:Krochet Kids Explain Their Story
播出日期:2011/9/12

Krochet Kids International 是會打毛線的大男生創辦的非營利組織,他們教烏干達婦女打毛線、織毛帽來脫離貧窮,每頂毛帽有織帽婦女的親筆簽名。片中有個人在車上搜尋 "clothing stores" 找到了他們的店,這是廣告 Bing 的本地搜尋吧。

很有創意的善行!



8. Bing: Bing 和鋼鐵擂台

英文標題:Bing and Real Steel
播出日期:2011/9/27

用鋼鐵擂台電影當主題展示 Bing 和 Facebook 的整合:在 Bing 的電影網頁看得到朋友的讚,也可以 po 到 facebook。

<a href='http://www.bing.com/videos/browse?mkt=en-us&vid=6b2e2117-209b-4b32-a357-8901354575c5&from=&src=FLPl:embed::uuids' target='_new' title='Now Showing: Bing and Real Steel' >Video: Now Showing: Bing and Real Steel</a>

7. Google: Frank 餐廳

英文標題:Google Chrome: Frank Restaurant
播出日期:2011/9/13

年輕的 Frank 夫妻倆開餐廳的故事。裡面用到 Google 的服務來寫營運計畫、做損益表、在地圖上登記自己的店、關注網路上的口碑 (word of mouth) 等等。



6. Google: Lady Gaga

英文標題:Google Chrome: Lady Gaga
播出日期:2011/5/21

這不用我多說了吧?Lady Gaga 用 web 發揮他的影響力,音樂和畫面配得實在太棒了,看粉絲們多 hi!



5. Disney.com: 擦洗餐具時記得關水

英文標題:Turn off That Water and Save
播出日期:2011/6/26

把浪費的水量圖形化,讓人容易理解,很直接。

影片:上 Ace Metrix 的網站 點 "Turn off That Water and Save" 可以看到。


4. Bing: 你總能改變某人的生活

英文標題:You Can Always Change a Person's Life
播出日期:2011/7/28

另一則講 Krochet Kids Interntional 的廣告,也是有一幕在手機上搜尋 "clothing stores"。



3. Google: 會越來越好

英文標題:It gets better
播出日期:2011/5/3

Dan Savage 成立 It Gets Better Project 的故事。這個網站希望人們不再歧視 LGBT、在學校也不再霸凌同學,還讓網友在它網站上宣誓加入和上傳支持的影片。



2. Google: The Johnny Cash Project

英文標題:Google Chrome: The Johnny Cash Project
播出日期:2011/9/12

Chris MilkAaron KoblinRick Rubin 三人創立 The Johnny Cash Project 紀念美國歌手強尼·凱許 (Johnny Cash) 的故事。電影【為你鍾情】講的就是強尼·凱許的一生。這個網站讓歌迷用自己的方式一格一格地塗鴉強尼·凱許的音樂影片,成為獨特的集體創作。



1. Google: 親愛的蘇菲

英文標題:Dear Sophie
播出日期:2011/5/3

老爸從女兒出生開始寫信給女兒,用到許多 Google 的服務來記錄女兒的成長過程:YouTube、Picasa web album、Google Maps。

之前就看過好幾次了,這次再看還是含淚~~~




2011年11月20日

微中子是超光速的 Tachyon 嗎?

我在「超光速粒子 即使證實 也難以撼動相對論」一文談了相對論可以允許超光速粒子(Tachyon)的存在,不過如果要不破壞因果律的話,需要其他新理論出現。

複習一下,相對論允許的 Tachyon,速率超過光速,質量是虛數。請不要立刻對這聽起來荒謬至極的東西嗤之以鼻,科學允許大膽假設,只是要非常小心地求證。

那麼,微中子有沒有可能是 Tachyon?有關微中子的飛行速率和質量的測量,我十幾年來斷斷續續有些關注,來簡單介紹一下目前我所了解的進展(懶人看結論)。

微中子速率測量

9/23 上報的 OPERA 實驗不是第一個測量微中子飛行速率的實驗,位於美國芝加哥近郊的費米實驗室,就把微中子射去明尼蘇達州 Soudan 廢礦坑的 MINOS 偵測器測量過,MINOS 的實驗物理學家在 2007 年發表了結果 [1]

2011年10月2日

超光速粒子 即使證實 也難以撼動相對論

這件新聞出來一個多禮拜了,這週忙到今天才終於有時間寫。

自從 BBC 報導了義大利 Gran Sasso 國家實驗室 OPERA 實驗測量到微中子速率超過光速的新聞後,台灣媒體也不落人後:

BBC:"Speed-of-light results under scrutiny at Cern"(光速結果在 CERN 接受詳查)
自由:「歐科學家實驗驚見// 微中子比光速快 挑戰相對論
聯合:「超光速微中子 動搖相對論
中時:「比光速更快微中子推翻相對論?
蘋果:「微中子比光快 推翻《相對論》

看來台灣的媒體都比 BBC 懂相對論?講到光速測量就一定要把相對論拿來挑戰、動搖、推翻?不能平平實實地報導科學家講的話?

重要的事先說:

  1. OPERA 的物理學家從未公開說過他們的結果可以挑戰相對論,在 CERN 的公開演講沒有,在論文裡也沒有。
  2. 超光速粒子的存在,就算證實了,也難以撼動相對論。引用 1976 年的論文 [1] 的開場白:"Tachyons are particles travelling faster than light. Contrary to the general belief their existence does not violate the theory of relativity, ..."(下略)。
    簡譯:「飛得比光快的粒子叫做 Tachyon,和一般人想法相反,Tachyon 的存在並不違反相對論...」
台灣的媒體們,下次要寫科學新聞,下標題之前可以先問一下科學家嗎?不要再自己亂掰了!


超光速粒子(Tachyon)的存在真正影響到的,是因果律。簡單說,兩件互為因果的事件,比方說「王建民投出快速直球」是因,「打者擊到球」是果,在任何低於光速飛過的太空人來看,因都會在果之前發生,這是因為王建民投出的球速低於光速。(有沒有人覺得好可惜啊?)  XD

但是如果王建民能投出超光速的球,那以某種高速飛過的太空人就可能會看到打者先擊中球,王建民才把球投出。一旦不同的人看到的因和果的時間順序不同,會有很多怪事發生。

有關 Tachyon、因果律、電磁作用、相對論的研究非常多,有興趣的讀者可以先讀 Wikipedia 的 Tachyon 條目,不滿足的話還可以用 Google Scholar 搜尋 tachyon 找論文來讀。


這邊用相對論的方程式簡單介紹一下速率、能量和靜止質量之間的關係,沒興趣的讀者可以跳過。

根據相對論,一個能量為 \(E\)、動量為 \(p\)、靜止質量為 \( m_0 \) 的物質,速率 \(v\) 可以用下式計算出來:
$$\begin{equation}{v \over c} = {pc \over E} = {\sqrt{E^2 - m_0^2 c^4}\over E}\end{equation} \;\;\;\;\;\;\;\;\;\;\; (1)$$ 式子裡的 c 代表光速。

大家經常聽到的所謂「光速是不可超越的速率」,其實有個前題,叫做「質量大於零的物質」。根據 (1) 式,如果 \( m_0 > 0\),不論你加多少能量進去,\(v/c\) 永遠小於 1。我們目前為止看過的物質質量全都大於零,所以光速的確是物質無法到達或超越的速率障礙。

(1) 式另外還隱含了一個事實:速率要等於光速,其實很簡單,質量 = 0 就好了。光子的質量就是零。

有沒有質量 < 0 的物質?我不知道,也不理解質量小於零是怎樣的物質。不過如果相對論是對的,這種物質也到不了光速。

但如果有質量是虛數的物質(!),那 (1) 式右邊的分子就會大於分母,這種物質天生就是超光速的,能量再低也超光速。事實上,這種物質能量越低、速率越高,能量上升、速率反而會降下來。不斷提高能量,只是不斷接近光速,但能量再高也無法成為低於光速,這就是 Tachyon。

換句話說,相對論允許「天生就超光速的物質」存在,但不允許越過光速這條界線,也就是說,
  • 一般物質一開始就低於光速,能量再高也無法超過光速。
  • Tachyon 一開始就高於光速,能量再高也無法低過光速。
如果有實驗觀測到原本低於光速的物質、經過某種作用後高過光速,或是超光速變成低於光速,有了越界的證據,相對論才算受到挑戰。

至於 OPERA 實驗測量的微中子是不是 Tachyon?我下一篇文章會來聊聊。


參考文獻:
[1] Narlikar and Sudarshan, "Tachyons and Cosmology," Royal Astronomical Society, Monthly Notices, vol. 175, Apr. 1976, p. 105-116. (哈佛大學的掃描版)

【2011/10/08 編輯】:把數學式用 MathJax 重打讓更多瀏覽器看得到,s/Opera/OPERA/。
【2011/12/05 編輯】:我在《微中子是超光速的 Tachyon 嗎?》這篇裡把個人知道的微中子質量和速率的測量介紹了一下,加個連結。

2011年9月29日

悠遊卡改卡 當事人已不是駭客

最近悠遊卡被人破解加值的新聞(中時電子報自由時報聯合新聞網TVBS),各報標題均以「駭客」稱當事人,當事人似乎也以駭客自居。但對我來說,他已失去駭客的資格,成為了不折不扣的 Cracker。

駭客(Hacker)和 Cracker 的差別,就像星際大戰裡 Master Yoda 和 Darth Vader 的差別。



(照片取材自 Wikipedia 的 YodaDarth Vader 條目)


Yoda 熟悉絕地武士的絕學戰技,還具有洞察世事的透視力、悲天憫人的胸懷、和指點後人的熱忱,在他身上只感受得到正向的能量。

Darth Vader 本來是絕地武士 Anakin Skywalker,一樣熟悉絕地武士的絕學戰技,可是跨不過失去母親和摯愛的個人仇恨,墜入了黑暗界(the dark side),從此成為殺人無數的魔頭。

Hacker 和 Cracker 在技術能力上的差異也許不太大,但在心態上有極大的距離。Hacker 喜愛了解事物工作的原理和想出巧妙的新用途、並且樂於分享,如果在研究某個系統的運作後找到漏洞,不會用來損人或利己,而是通知事主補洞和/或發表。Cracker 主要目標在入侵,未必有打破沙鍋問到底的研究精神,漏洞不必是自己找到的,拿別人做好的入侵工具也可以,只要能入侵就好,而且入侵通常是為了損人或利己。

悠遊卡公司所使用的 Mifare 系統,過去幾年來已經有學界和開放原始碼界的駭客找出更改卡片上餘額的方法,也都發表了(如 Wired magazine 的報導),用 Google scholar 搜尋 "Mifare",第一頁 就好幾篇破解的研究論文。這次的當事人,拿了他人發表的技術文章,自己實做一遍,成功更改悠遊卡餘額,到此為止都還可以算是駭客在實驗室中的研究、練功行為。如果他找到不同的破解方法、發表出來,一定會受到駭客圈的高度肯定。把改變過的悠遊卡拿去捷運站讀餘額,也可以解釋為驗證破解是否成功。但是把增加餘額的悠遊卡拿去消費好幾次,不論金額是大是小,就是損了人利了己,就是越線了,就是 Cracker!

最後引用 "The Jargon File, version 4.4.8" 中的 Hacker 定義第一條作結。

Hacker:
1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. RFC1392, the Internet Users' Glossary, usefully amplifies this as: A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular.

駭客:
1. 享受探索系統細節和延伸系統能力的人,和大多數只想學會夠用功能的人相反。網際網路使用者名詞彙編(RFC1392)更進一步解釋:「因了解系統內部運作方式而喜悅的人,尤其是針對電腦和電腦網路的。」

STL vector 效率小記

懶人看結論

用 C++ 寫程式,會用到 vector 來儲存陣列。用過的人都知道,用法大約是

vector<string> foo;
foo.push_back("Hello");
foo.push_back("World");

要拿單筆資料時,可以用 foo[1] 拿到 string("World")。要 loop 過全部資料時,寫

for (vector<string>::iterator it = foo.begin(); it != foo.end(); ++it) {
  //  *it 是字串資料
}
如果只要讀資料不改資料,可以用 const_iterator 代替 iterator。

用 push_back() 新增資料的一個特性是:如果 vector 的容量不夠,會自動配置新的記憶體空間(預設是兩倍大)、把資料拷過去,再把新資料寫入。

記憶體配置是很耗時的,能免則免。如果事先不知道所需的儲存量,這樣依需要配空間做是維持 vector 用 O(1) 時間取得資料、又不會浪費太多空間的好方法。可是如果事先知道要存 65 筆資料,還反覆去要 4、8、16、32、64 筆的空間,最後又用 128 筆的空間來存 65 筆,既浪費時間、又浪費空間!

所以 vector class 提供了三種指定長度的方法:reserve()、resize() 和 constructor 引數:

vector<string> a;  // 長度為 0
a.reserve(65);  // 預留 65 個元素的位置,沒有初始化
vector<string> b;  // 長度為 0
b.resize(65);  // 預留 65 個元素的位置,呼叫 string 的 default constructor
vector<string> c(65);  // 長度為 65

用在空的 vector 上,對慣 C 的人來說,reserve() 類似 malloc(),resize() 類似 calloc()。如果是在 constructor 給長度就有點像 char* c[65]; 這樣的陣列宣告。不過 C++ 和 C 還是不一樣,這邊的主要差異是物件,和物件的 default constructor、assignment operator 的行為,對效率有些影響。

先講講這三種做法的原理。

預留 reserve()

每個 vector 都有兩個重要的數字:容量(capacity)和長度(size)。容量是這個 vector 擁有的空間,長度是實際儲存了元素的空間大小,其值等於陣列的終點減起點。capacity 不小於 size 是個不變條件。

reserve() 的目的是擴大容量,做完時,vector 的長度不變,capacity 只會長大不會縮小,資料所在位置可能會移動。

reserve(N) 的做法很簡單:

  1. 如果 N <= 容量,不做事結束。
  2. 配置大小為 N 的空間,
  3. 把資料拷過去,
  4. 歸還原來的儲存空間,
  5. 更新陣列的起點、終點、容量。

因為 vector 一開始是空的,立刻預留顯然比填了資料後才預留省了拷資料的時間。

調整長度 resize()

調整長度目的是改變 vector 的長度,如果變小就擦掉尾巴的資料,如果變大就補零。更精確一點說,擦尾時會呼叫元素物件的 destructor,補零是補元素類型的 default constructor 產生的物件。補零如果會超過容量,會先預留空間,就是上面說的〔配置新空間、拷資料、歸還舊空間、更新陣列位置〕整個程序走一遍。

resize() 結束時,vector 的長度會改變為指定的大小,capacity 則視需要調整,確保不小於 size,資料所在位置可能會移動。

resize() 除了新長度 N 之外,還可以接受第二個引數,就是新元素的值,如果沒給就會用 default constructor 生一個來用。

在 constructor 指定長度

在 constructor 指定長度 N 的結果是一個容量和長度均為 N 的 vector,因為長度為 N,代表 N 個元素有資料,這資料就是元素類型的 default constructor 生出來的,或是用 vector constructor 的第二個引數給的物件。

這個 constructor 的做法也很簡單:

  1. 配置大小為 N 的空間,
  2. 設定陣列的起點、終點、容量,
  3. 把相同的值填入 N 個元素的位置。

效率

使用 vector 要注意的效率問題大致有兩點:
  1. 不做不必要的記憶體重配置:少依賴 push_back() 的自動記憶體配置,能自己要記憶體的就自己要,善用 reserve()、resize() 或 constructor 引數。
  2. 不做不必要的物件拷貝。比方說,要延長或建立一個 vector、但各個元素的值不同,不要用會填值的 resize() 或 constructor 引數,而是用 reserve() 再把物件一個一個 push_back() 進去。另外要注意的是,reserve() 要來的空間切不可用 operator[] 填值,除非元素是 POD。見下節。

少用 operator[]

既然寫了 vector,順便提一下 operator[]。一旦有個 vector<string> foo,可能會想用
foo[3] = "movie";
這種寫法,但要小心,這可能會 Segmentation Fault!
  • 第一,operator[] 不做邊界檢查,foo vector 的容量可能不到 4,foo[3] 就越界了。
  • 第二,foo vector 就算容量夠,但長度可能不到 4,foo[3] 是未初始化的記憶體,拿來當成 string 物件,就爆了,更不用說還要呼叫它的 assignment operator。但如果元素類別是 int、double、pointer 這類 POD(Plain Old Data),assignment 是用 memory copy 實作的,倒是不會出問題。

如果確定 vector 的各個位置都有物件了,但不確定 index 會不會越界(也許 index 是別人傳來的),除了自己檢查邊界外,也可以考慮用 at() 方法:

string that = foo.at(an_index);
foo.at(an_index) = "movie";
at() 會做邊界檢查,越界時會丟出 out_of_range 異常,比較容易 debug,必要時也可以把這個異常接住來處理。


2011年9月28日

重溫 Alice Cooper 的 Poison

前幾天在網路收音機上聽到 Alice Cooper 的 Poison,讓我一下回憶湧現...

台灣唱歌的好像一定要很純情或很傷情,這種描述慾念深到骨子裡的重搖滾,在台灣歌壇真的不容易聽到。忍不住把歌詞亂譯了,野人獻曝一下。

Your cruel device
Your blood like ice
One look could kill
My pain, your thrill

I wanna love you but I better not touch (Don't touch)
I wanna hold you but my senses tell me to stop
I wanna kiss you but I want it too much (Too much)
I wanna taste you but your lips are venomous poison

you're poison running through my veins
you're poison
I don't want to break these chains

Your mouth, so hot
Your web, I'm caught
Your skin, so wet
Black lace on sweat

I hear you calling and it's needles and pins (And pins)
I want to hurt you just to hear you screaming my name
Don't want to touch you but you're under my skin (Deep in)
I want to kiss you but your lips are venomous poison

你手段 殘酷
你冷血 如冰
看一眼 能殺人
我痛苦 你興奮

想要愛你 但我最好別碰
想要抱你 但理智叫我住手
想要親你 但我快忍不住了
想要嚐你 但你的唇是毒藥

你是流過我全身血脈的毒藥
你是毒藥
我不想掙脫這些鎖鍊

你的嘴 熾熱
你的網 捕我
你的膚 溼潤
黑蕾絲 香汗

聽你呼喚我 像是針在刺
想要傷害你 只為聽你喊我的名
不願撫摸你 但你已深入我身
好想要親你 但你的唇是毒藥

翻來覆去,好想、可是不該,再想、仍是不敢,連傷人的想法都出現了、最後還是退縮,完全是宅男碰到辣妹的心情啊!

拜網路之賜,現在不但可以在 YouTube 上找到原曲,Wikipedia 上列出的各種版本也找了不少。有這麼多不同流派的唱法,而且都還不錯,列出來方便以後回來聽。  :)


一、Alice Cooper 1989 年硬式搖滾原曲。

詞很內縮,曲很外放,配樂節奏就是爽快!

(對了,外套下好酷的 T-shirt!)








二、德國 Groove Coverage 2004 年的電子音樂版本。

不知道是怎樣的音樂環境,會讓這個團為這首曲子做了 21 種混音版?





三、澳洲〔外太空來的吸血僵屍〕 (Bloodsucking Zombies from Outer Space) 2005 年的版本。

之前沒聽過這個團,團名有夠 kuso。曲子前面聽起來和 Alice Cooper 的版本沒太大差別,副歌一進來我就笑得跌倒了!  XD




四、芬蘭女歌手 Tarja Turunen 2007 年的交響重金屬版本。

第一次聽到女主唱的交響重金屬,熱血啊!雖然她的音色太美太婉約了點,少了些重金屬橫衝直撞的感覺,但還是很想找她這張專輯來聽。





五、美國〔乾草種子迪西〕 (Hayseed Dixie) 2007 年的藍草版本。

實在太歡樂了!馬上想找身邊的女生勾起手來跳圈圈舞。  :)



六、德國的 DJ Gollum 在 2010 年混音的版本。

魔戒裡的咕嚕也來當 DJ 啦? XD    德國人好像真的很愛玩電子音樂!



七、2011 年 2 月福斯在以色列的 Passat 廣告

無人能敵的男主角哼唱的就是 Poison 的旋律配上自己的歌詞,最後當然要搞笑一下。



註:Poison 的官方 MV 有兩個版本,正常版的在 YouTube 上都是 240p 的,畫質太差不想貼;一刀未剪版的清楚很多、聲音也優,可是因為某種原因我不能貼,有慧根的人自己去找吧!  XDDD


2011年2月27日

雲端!雲端!多少文章假汝之名而行

〈利益揭露:作者寫作此文時在 Google 服務,但內容是個人的觀點,和公司的政策、觀點無關。〉

一兩個月前網路上不少人在傳閱李家同教授的文章:《原來,我早就在「雲端」》,不少人做了自己的評論,更多人全文引用,不過原文看來是被聯合報歸檔到付費使用者才能看的區域了,謝謝 @Sars 提供了教授文集中的文章連結

前一陣子又看到網友在傳這個教授演講的短片:


教授學識令人景仰,但顯然網路和媒體上眾多不求甚解寫出來的文字,讓教授誤解了雲端運算的真義。這種為了趕稿或銷量而囫圇吞棗寫出來的媒體文章,實在令人不敢恭維。

兔年開春,一元復始,萬象更新。看來,心中構思多時的雲端運算文章,該開始動筆了。

到底什麼是雲端運算?

講到雲端運算,有人說它是新技術、有人說它是老觀念;有人著重資料中心、有人著重行動裝置;有人強調「虛擬化」、有人強調「隨租即用」。

我個人的看法很簡單:

能用 Web 介面提供服務給海量使用者的運算方式,就是雲端運算。

依我的觀察和理解,絕大多數有關雲端運算的技術,都可以從這個運算方式衍生出來、或是因這個需求發展出來。

對一般使用者而言,雲端運算和 1990 年代末期開始築夢的 "Application Service Provider"(ASP)沒有什麼差別,同樣是讓應用程式執行在 Web 的遠端,使用者只需要瀏覽器就可以操作。更遠一點講,和 client-server 架構也很像,差別只是從 ftp、gopher、news、HTTP 等等每個服務協定都有一個 client,簡化到一個瀏覽器通吃大多數協定。(以後如果聊到 mobile clients 再談分合問題。)

因為很多媒體講到雲端都強調「以 Web 和瀏覽器做為使用介面」這個 ASP 時代就開始講的老觀念,造成了這個誤解。

那 2007 年開始出現的「雲端運算」只是新瓶裝舊酒的騙錢口號?

當然不是。

我拿當年電燈發展的歷史來打個比方也許會容易了解一點。讀者如果熟悉這個歷史和對比,可以跳到雲端運算在技術上的革新一節。

電燈發展簡史

(參考資料:Wikipedia。)

古早的年代,人們用油燈來照明。後來伏特發明了電池,開始有人發明電器,最有名的當然是愛迪生和電燈的故事(註:電燈可不是愛迪生發明的,下文會再提到)。在 1880 年以前,要用電燈的家庭或公共場所,除了要安裝電燈之外,還要安裝足夠的電池或發電機。不同人做的電燈,需要的電源不同。


伏特的電池 "The Voltaic Pile"

最早的電燈不是愛迪生發明的,但為什麼一般人講到電燈只記得他?主要原因是愛迪生是真正讓電燈普及而進入家庭的人。這有幾個因素:

  • 他發明的燈泡比前人的耐用,讓「換燈泡」不會比「換燈油」麻煩。
  • 他發明的燈泡需要的電流比較低,使得「用單一發電機驅動多個電燈」成為可能,降低使用電燈所需分攤的發電成本。
  • 他還設計了相應的發電機和供電線路,把「供電」的電池或發電機和「用電」的電燈分開,讓用電的人不用買也不用懂電池或發電機。日後「插座」和「插頭」成為人人都能懂的用電介面。

這些因素加起來,使得電燈離開了實驗室而商業化,進一步成為普及的照明工具,也使得愛迪生和電燈在大眾的印象中永遠連結起來。(也難怪有些美國人認為 Bill Gates 發明了 Internet。)

這還促成了用電介面的統一:愛迪生的公司在 1882 年首度提供 110 V 直流電給紐約曼哈頓的 59 個顧客,日後 110 V 還成為美國用電的標準,不管是什麼電器,都用這個電壓工作。

愛迪生的輸電網路另外還帶來了「租用」的觀念,需要用電的人不再需要自備發電機,只要按用量付費就好了。



後來愛迪生特斯拉在 1880 年代末期展開了《電流大戰》,愛迪生的發電站輸出的是直流電,特斯拉開發出來的是交流電,直流交流之爭持續了好幾年,最後特斯拉的交流電全面勝利。

可是對於用電者來說,直流交流有什麼差別?反正電燈插上去都會亮!

交流電之所以能擊敗直流電,關鍵在於規模經濟帶來的低廉成本:因為輸送效率的因素,直流電必須每幾個街口就要有個發電站,不然成本會太高;反之,交流電輕易升壓、降壓的能力,可以用高電壓和低電流來降低輸送過程的損耗,因此發電的地方和用電的地方可以相距數十甚至上百公里,這樣就能在水壩之類的偏遠地方建造巨大的發電廠,讓單一發電廠供給整個城市甚至更大範圍的用電,達到經濟規模,降低平均成本。


德國 Koepchenwerk 發電廠

雲端運算在技術上的革新

需要不同協定、不同近端軟體的 client-server 時期,就像是需要自備發電機的年代,電器和電源要搭配使用。

ASP 時期,不管是什麼應用程式,用瀏覽器和 HTTP 單一協定就可以操作,「透過網路租用軟體」的觀念也在這個時期開始出現。然而,ASP 時期就像是直流電年代,一個直流電的發電站只能供電給 2 公里之內的顧客,一台 Web server 也只能服務為數有限的使用者。

雲端運算時期,協定仍然是 HTTP,近端 client 仍然是瀏覽器,使用者感覺不到和 ASP 的差別,但是在資料中心執行的 Web application 可以服務一個城市、一個國家、甚至更大範圍的使用者,就像是以發電廠為主要電力來源的交流電年代。

製造發電機、供電給幾十戶人家的技術,和建造發電廠、供電給幾百萬戶家庭的技術,讀者覺得一樣嗎?

建造發電廠所需的技術不再只是發電機的技術,還包括電力傳輸、負載調配、不斷電檢測維修等等的技術。同樣的,雲端運算不只是起一個 web server 而已,還包括流量調配、海量資料的提供/儲存/管理/處理/檢索、服務不中斷的檢測維修、阻斷攻擊的防禦等等技術。唯有雲端運算的技術成熟,才能讓一個 web application 服務幾千萬、甚至上億位的使用者,這不是一個實驗室中一兩台伺服器做得到的事。

換句話說,雲端運算雖然強調 Web 簡單的瀏覽器介面、普及的 HTTP 80 port、隨之而來的多元終端設備(電腦、手機、平板、電視...)、還有行動上網的便利性,但技術重點不在 Web,那是 ASP 時代的重點,而是如何處理簡單和普及所帶來的爆炸性流量和海量資料。反過來說,如果雲端運算技術沒有到位,那些搜尋引擎、Web mail、入口網站、社交網站等等網路應用就服務不了那麼多使用者,使用者想用的時候可能要漫長地等待、甚至連不上,愛用的人就不會那麼多,Web 就不會像今天這麼普及。因此可以說 Web 和雲端運算是相輔相成的。

小結

直流電在市場上存在了近十年,在特斯拉的交流電技術問市之後,愛迪生還憑藉已經建立的權威地位和商業規模四處打擊交流電,但是終究不敵交流電因規模化帶來的成本優勢和其他好處,最後還是擁抱了交流電的技術。ASP 觀念也存在了近十年,在規模化和分散式運算技術逐漸成熟後,雲端運算這個詞才出現。換句話說:

雲端運算是 Web 普及和規模化的自然結果。

雲端運算這個名詞雖然是 2007 年才正式出場的,但其相關技術早在十幾年前就開始發芽,甚至可以回溯到網格運算和更早的分散式運算的技術。Yahoo! 的入口網站、微軟的 Hotmail、Google 的搜尋引擎、Amazon 等等,都有自家的規模化技術。「雲端運算」只是把各公司長期發展出來的規模化技術,用一個新名詞來統稱。

雲端運算不是不確定的未來式,而是長期的現在進行式。

那為什麼雲端運算的技術到這幾年才廣受重視?雲端運算的技術有哪些?如果有時間我再來寫點個人的想法。

後記:感謝 @Sars 提供李家同教授文集的網址,更新文章中的連結。


附註:照片版權宣告:

  1. 伏特電池照片版權屬 I, GuidoB 所有,CC-by-sa。
  2. 電燈泡照片版權屬 Phrontis 所有,CC-by-sa。
  3. 發電機照片版權屬 Gbleem 所有,CC-by-sa。
  4. 發電廠照片版權屬 Markus Schweiss 所有,CC-by-sa。
點擊照片都會回到照片在 Wikimedia Commons 的網頁。

2011年1月11日

Tossug 社群尾牙 2011

今天是 2011/1/11,五 1 連珠的日子,當然是要大吃大喝一頓!Tossug 的幾位好朋友在彭園湘菜館吃尾牙,看到 $4、Thinker、David、Yurenju、Taiten、Sinsun、Freedom 都來了,好高興!尤其是 Freedom 遠從新竹過來,好感動。

(我真的好容易快樂啊)

就叫了一瓶高粱。

(好久沒喝了呀)

隨便聊,聽到好多業界的趣事。

據說最近因為某系統在 CES 出現,好多公司的好些 project 都被 can 了,敬被 can 的 project 喝一杯!

Yurenju 還隨手就拿出他公司之前被 can 掉的一款手機給大家把玩。 XD

Freedom 講到他上班的工研院有半導體、化工、測量等等的研究,Thinker 覺得工研院做太多領域、力量分散,我覺得這不是工研院的問題,整個台灣做的領域都太分散。Thinker 頗不以為然:「全台灣不是都集中到一個領域,叫做 Android?」馬上喝一杯!

Sinsun 要開始接案做 Soho 了,Taiten 看來有不少接案的功力可以傳授,敬接案喝一杯!

David 說他在大公司待這麼些時間,越來越覺得技術能力重要性不如溝通能力,Taiten 就接話了:「$4,我說的沒錯吧?打唬爛的功力才重要!」敬打唬爛喝一杯!

聊到如何在 e-mail、facebook、twitter、plurk 泛濫的年代保持專注力,某人說在公司都不開 e-mail 不接電話的,除非來電顯示是樓下的妹妹。這怎能不喝一杯!

倒底喝了幾杯,我也數不清了,敬數不清再一杯!

現在起 Tossug 的主持人就是 $4 了,好朋友們要繼續支持啊!有題目的來演講、想交朋友的來聊天、要學新知的來聽分享喔!

每週二見!