Jollen's email: jollen # jollen.org

more: Jollen's Consulting | Jollen's Wiki | Jollen's Android Framework in a Nutshell

May 30, 2013

創業者也能扮演天使投資人

去年開始,我想在 Moko365 的基礎之上,以天使投資模式,從事一些專案開發工作,所以有一些朋友,以為我轉行做創投了。 但是天使投資對我來說,並不是投資行業,而是一種全新的創業形式。所以,我自已喜歡用 Startup 來對比天使投資(Angel investors)。

一個顛覆傳統的時代,是創業家的時代,現在就是一個傳統不斷被顛覆的時代,所以我相信,未來十年,甚至二十年的時間,創業家將不斷製造有用的創新產品或服務。而更彰顯這個時代特點的是軟體創新事業。如果你有一個想法,並且也有一筆很小的資金,你就可以很快推出軟體到市場上去測試顧客的反應。

於是,提供小額冒險資金的天使投資人,以及精實模式(Lean Startup)的概念,變成現在當紅顯學。所以,我的公司只要準備一筆小額的預算,就可以讓一個概念(Idea)付諸實行,或許是睹一把的心態,也或許是真正看好一個專案的潛力,但是本質上就是一個創業的行動。所以,天使投資對我來說,是一種創業的新模式,而不是創投行業。

許多人注意到這些不斷出現的新創公司,有它的獨特價值,所以願意透過小額投資的方式,去支持這些新創團隊。所以這有點像是掏金文化。小額出資者在創新軟體的世界,用力挖金礦,哪怕亂槍打鳥,壓對一個團隊,就像挖到黃金一樣,所有投資都能獲得巨大的回報。

近一年來,我也和許多創投或天使投資人接觸,個人非常認同天使投資人對新創企業的價值,在西方國家,有非常多成功的天使投資案;我發現,成功的天使投資人,他們和新創團隊站在一起,他們認為是和團隊共同在創業。這點非常的重要,把天使投資當做一個職業,把自已變成創業者之一,是天使投資者的精神。

天使投資者此刻是和創業團隊站在同一陣線,並且提供自已的人脈與經驗,這是天使投資的另一個精神,「扮演導師(Mentor)的角色」。我們會發現,有許多投資案,特別是在台灣,投資者(出資人、金主)與創業團隊,一開始就是一種對立的關係,並且在雙方利益談判上,互不相讓,這對軟體創業者來說,是一個不利的現象。所以雙方如果不能互讓一步,尋求合作、創造利益,金主就是在跟自已的錢過不去,創業家是和到手的機會過不去:變成二邊都是睹客,睹一把看看會不會中獎,公司會不會成功。

很令人興奮的事情在台灣發生了,過去台灣產業不具備天使投資環境,所以產業欠缺創造力,失去轉型能力;而現在,不斷有產業經驗豐富的天使投資者出現,並且積極尋找台灣與國外的投資對象。台灣政府對技術創業與新創事業,也提出了非常友善的政策。這或許能讓台灣從硬體製造的經濟,進入到軟體創新的經濟。

和天使合作

筆者在台灣接觸了許多天使投資人,或是天使投資團隊。我也在轉換自已的想法,以天使投資的角度,去看待自已未來的創業活動。同時,更希望未來能和更多的天使合作,並且也希望他們都能思考:天使投資也是自已在創業,是一種創業活動,而不是出資者。

軟體創業者在 Zero stage 時,找對天使投資者,會有很大的加分效果,因為等於你邀請了有影響力或豐富資源的伙伴,加入到創業團隊,成為創業者之一。浮士德的交易是將自已的靈魂交給魔鬼,以換取驚人的才華與能力,所以又叫魔鬼交易。

天使投資人與創業家並不是魔鬼交易的關係,所以創業家不是在把自已的靈魂出賣,換取資金與豐富的資源。所以在未來和天使們的合作過程中,我不會因為天使的個人喜好,去改變自已的信念,也不會動搖原有的核心價值,如果我是天使的身份,我也不希望創業團隊,因我的個人喜好,失去自已的靈魂。如果不是這樣的話,天使就是魔鬼,我就是和魔鬼在做交易了;並且,原本想當天使的我,也成為魔鬼了。

April 29, 2013

瀏覽器引擎的黃金時代開始:Blink 出現、三星來了

文/Jollen Chen(原文刊載於 CTimes 雜誌)

Google 在 2013 年的 4 月份發佈了一則消息:將開發新的瀏覽器引擎。這是瀏覽器界的大事,這代表著瀏覽器競賽已經進入了一個新的里程碑。這個新的瀏覽器引擎稱為 Blink,不過它並不是全新的開發專案,Blink 是 WebKit 的一個分支。目前,最新版本的 Chrome 瀏覽器已經改採 Blink 引擎。

Blink 直接採用 WebKit 的原始程式碼,並不是從新做起。這叫人好奇 Google 為何不繼續在 WebKit 引擎上開發,卻硬是將 WebKit 給「fork」了出來?這是瀏覽器引擎的競爭下,一個積怨已久的問題,簡單來說,這是一個商業策略,並不是單純的技術考量。今年二月份,Opera 宣佈每個月有超過 3 億使用者,在使用它們的瀏覽器,同時,Opera 也將開始貢獻 WebKit 專案。這個事件應該是 Google 決定開啟 Blink 計畫的主因之一。

Apple 在 2005 年公佈了 WebKit 原始程式碼,接著受到多家瀏覽器開發商採用,其中一個便是 Chrome。經過多年發展,WebKit 變成一個好用現成的瀏覽器引擎。於是,Opera 也開始採用,並貢獻程式碼。這豈不是 WebKit 引擎的一大勝利。眼看第一階段的瀏覽器引擎大戰,將由 WebKit 引擎勝出,Google 大概不會坐視不管,特別是 WebKit 引擎已經有超過 40% 的市場份額了。

Blink 似乎是為了與 WebKit 有所區隔,或說是為了與 Apple 切割的一個策略產品。但是,制衡 WebKit 並不是 Google 官方的解釋。根據 Google 的說法,Chrome 與 WebKit 的 multi-process 架構不同,讓二者結合只會增加軟體的複雜度,於是 Blink 專案誕生。不過,最後 Google 又提到,多個瀏覽器引擎的存在,可以改善整個 open web ecosystem 的體質,讓它更健康。無論是明示或暗示,這意謂著 Blink 專案同時有著技術上,以及商業上的考量。

回到行動瀏覽器,Opera 擁有這個市場的最多份額。隨著 Google 發佈 Blink 計畫,Opera 很快的也宣佈轉進 Blink 引擎。不管是巧合,還是特意安排,這都是 Blink 計畫的一大勝利:Google 毫不費力,便取得了在行動瀏覽器引擎的重要位子。瀏覽器引擎大戰最精采的一刻還沒結束,幾乎在同一時間,Mozilla 與三星也發佈消息,宣佈在 ARM 平臺上,合作開發新一代的瀏覽器引擎,稱為 Servo。Servo 引擎的重點是具備支援多核心 (Multi-Core) 架構的能力,並且已釋出原始程式碼。

三星的行動裝置多核心處理器,具有相當高的工藝水準,它的多核心軟體研發方面,也是兵強馬壯,實力堅強。因此,Servo 計畫的未來性更加吸引人。以技術能量來論,三星與 Mozilla 的 Servo 引擎,實力不輸 Blink 引擎。筆者認為,Servo 引擎的關鍵在於,三星能不能利用它在行動裝置市場的領先地位,將 Servo 推上一把,使它與 Opera 抗衡。

至於 Apple,此時也不必要有什麼動作,因為 Safari 瀏覽器與 iPhone 裝置是密不可分的關係,Safari 使用的是 WebKit 引擎,而行動版 Safari 瀏覽器的成敗,完全取決於 iPhone 與 iPad 裝置的銷售量。總結來看,瀏覽器引擎大戰,是要繼續三分天下了, 競爭者變成 WebKit、Blink 與 Servo。此外,還有一個影響因素是 HTML5 標準,這又是另一個層面的問題了。最後,此刻最傷腦筋的,應該是微軟。

April 23, 2013

簡報:讓 HTML5 走進 IPTV Framework

Moko365 與 OESF 於 4/16 日舉辦一場有關 IPTV 的研討會,目的是探討 ITU-T 所制定的 H.762 標準。

H.762 技術採用部份 HTML5 標準,成為一個 IPTV 的互動多媒體環境。根據筆者近期的開發心得,H.762 對於 TV Apps 的開發仍有所不足,因此在這個演講裡,筆者分享了一些想法,並提出 H.762 的修正建議。這個修正建議,主要是希望能把 HTML5 技術帶入 IPTV Framework 裡。

對 IPTV 標準有興趣的朋友或廠商,歡迎多加交流。簡報網址如下:

HTML5 in IPTV Framework

March 1, 2013

SmartTV 與客廳:更大的 App 戰場、更多的商業模式

文/Jollen Chen(原文刊載於 WIRED.tw

今年(2013)是電視大戰的一年,不過身為軟體人與創業者,更關心的是另一個角度的問題:電視大戰,將會演變為客廳大戰,軟體與網路創業家們,你們是催手。

電視將不再只是電視機,從只是看電視頻道,到能連接網路;這樣的電視機就叫做 IPTV 或 SmartTV。 它正在走手機過去的發展道路。過去手機,從單純的通話功能,演變成現在的 SmartPhone。

IPTV 與 SmartTV 以模糊概念來說,都是「可以連到網路」的電視。不過就定義來看,這分屬於二種不同的產品概念。傳統的電視採用類比訊號方式傳送節目,而 IPTV 則是以數位方式傳送節目。所以,IPTV 就是我們經常聽到的數位電視。IPTV 透過數位機上盒(Set-top-box)來接收節目。Set-top-box 將接受到的數位內容,以 HDMI 輸出方式顯示在電視機上。

SmartTV 則是另一個概念。SmartTV 也稱做 Connected TV,即連網電視。SmartTV 本身內建一個作業系統(OS),這讓電視機本身很像是一台電腦。就像 SmartPhone 也內建作業系統,本身就是一台小型電腦一樣。根據 Wikpedia 上的定義,SmartTV 等於 SmartPhone。從這個角度來看,SmartTV 無疑是 SmartPhone 的延伸。

透過 IPTV 無法觀看網路電視(例如:PPS.TV),因為機上盒可能不支持。但透過 SmartTV,只要安裝 PPS.TV 的 App,就可以連上網路看影片。這個情境又表達了 IPTV 與 SmartTV 的另外一個差異:SmartTV 有 SDK,可以撰寫 App,也可以安裝 App。Set-top-box 可不一定能辦到這件事。這意謂著「TV App programming」的時代悄然而至。

TV App 會是引燃客廳大戰的火苗。從產業觀點,電視已經不再只是單純的硬體製造業,也不單單只是供應鍊的問題。新的電視產業,會很像是這五年的 SmartPhone 產業,也有 App、也有社群、也有服務等等。台灣的硬體產業,勢必要儘快從這個新的角度去看 SmartTV,而不是在過去的製造與成本問題來看這個新機會。

另一方面,TV App 的開發,也多了另一個選擇,它就是 HTML5。簡單說,電視內建一個瀏覽器(TV Browser)來執行 HTML5 App,並存取網路服務。以 HTML5 來開發 TV App 或 TV Service,雖然說這不一定是強制的標準,但可能是最能創造商業價值的標準。

科技業的遊戲規則,有一個硬道理:標準本身好不好,技術含量高不高,都不重要。重要的是,標準能不能產出商業價值。這點在軟體的遊戲圏裡,更是攻不可破的道理。因此,ITU Telecommunication 標準組織,便制定了 H.760 系列的標準供電視行業使用。

以 H.762 來說,這是一個多媒體互動 App 的標準,而 H.762 便是採用了 HTML5 技術。 ITU Telecommunication 過去所制定的 H.264 標準,現在也成為重要的影音編解碼標準。簡單易懂的說法是,H.762 是 TV App 的國際標準。TV 也開始重視 App 開發了。

過去在手機 App 與網路奮戰的創業家們,SmartTV 來臨了,這不是一個新的戰場,而是我們所熟悉的 App 與網路的老戰場。SmartTV 讓軟體創業家的戰場更大了些。過去做好的一些準備,或許在未來的 SmartTV 行業就可以開始收割了。

SmartPhone 有了 SDK 後,手機大戰開始。SmartTV 也有 SDK,可以安裝 App。一家人坐在客廳沙發上,將不只是對著 SmartTV 看節目。人類的客廳與居家生活形態也將產生很大的變化。SDK 與開發者,又將成為客廳大戰的催手。創業家也將在客廳裡,創造出更多的商業模式。

February 4, 2013

[教育訓練紀錄] 關於 SurfaceFlinger::createSurface() 的 DisplayID

近期為幾家科技廠進行 Android 的企業內訓,課程主題著重於 Framework 層。最近的內訓主題是 Android Graphics 系統。今天 (2/4) 在講解 SurfaceFlinger Server 建立 Surface 時,提到這個方法:

1287 sp<ISurface> SurfaceFlinger::createSurface(
1288         ISurfaceComposerClient::surface_data_t* params,
1289         const String8& name,
1290         const sp<Client>& client,
1291         DisplayID d, uint32_t w, uint32_t h, PixelFormat format,
1292         uint32_t flags)

其中 DisplayID 參數的部份,代表 Screen。這部份可以參照 /system/lib/egl/egl.cfg 設定檔,例如,以下的設定:

0 1 qcom

第一個數字代表 Display,第二個數字代表 Implementation,最後的字串為 TAG,用來與 HGL 程式庫匹配。上述設定指定 Display 設定為 0,代表 Default (LCD),有些 Android 系統可為 1,代表 HDMI。

此外,Display 參數在實例化 Layer 時也會用到:

1303     //LOGD("createSurface for pid %d (%d x %d)", pid, w, h);
1304     sp<Layer> normalLayer;
1305     switch (flags & eFXSurfaceMask) {
1306         case eFXSurfaceNormal:
1307             normalLayer = createNormalSurface(client, d, w, h, flags, format);
1308             layer = normalLayer;
1309             break;
1310         case eFXSurfaceBlur:
1311             // for now we treat Blur as Dim, until we can implement it
1312             // efficiently.
1313         case eFXSurfaceDim:                                                
1314             layer = createDimSurface(client, d, w, h, flags);
1315             break;
1316         case eFXSurfaceScreenshot:
1317             layer = createScreenshotSurface(client, d, w, h, flags);
1318             break;
1319     }

在實例化 Layer 時,可指定 Layer 的 Display。附帶一提,Android 的 Surface 分為四大類,一般 App 使用的是 Normal Surface,其它還有 Blur Surface、Dim Surface 與 Screenshot Surface。Dim Surface 是支援 Android Power Management (Wakelock) 的特殊 Surface。

[Top] Copyright (C) 2006,2010,2011 www.jollen.org.
All rights reserved. All contents are licensed under Creative Commons License.