Firefox Developers Conference 2010

週末應 Mozilla Japan 之邀,飛去東京參加 Firefox Developers Conference 2010,以下摘要聽到新知和感想。

Browsing Without Borders – Jay Sullivan

Mozilla 作為一個非營利組織,其核心目標為:維護網路的自由、開放、與創新。藉由 Firefox,Mozilla 成功達成了階段性的目標。接下來呢?

Sullivan 介紹了目前 Internet 的發展的四個面向:Mobile、Cloud、Apps、Social。這四個面向均有其創新,但也有許多現有的商業模式會影響網路的自由、開放、與創新。

  • 在行動網路上,Mozilla 會開發手機版本的 Firefox,確保單一廠商不會像 2001 年那樣壟斷網路。Mozilla 會堅持網路中立性、尤其是反對現在在行動網路電信商已經實施的不中立資費方式
  • 在雲端應用上,Mozilla 會持續投資原來稱為 Weave 的瀏覽器同步技術,讓瀏覽器能輕易的在任何地方帶來個人化體驗;也利用 Weave 處理個人資料的模式來實做真正能保障個人隱私的雲端技術。
  • 在網路應用程式的層面,Mozilla 已經發表了 Open Web App 提議,用去中心式的架構散佈軟體,以及確保創新。
  • 在社群網絡的部份,Mozilla 會繼續開發讓使用者能夠方便分享資訊的產品,同時要強調使用者能夠保有對資料的最終控制權。

有句很重要的話就是,「Without product, we are just talking」。Mozilla 會繼續發展產品與技術(例如,讓 Firefox 的執行速度追上其他瀏覽器),用產品來彰顯其核心價值。

最後的 QA,有人問了 Firefox 為何沒有 iPhone 版的老問題。我問了 Mozilla 有沒有 Firefox OS 的構想。Sullivan 說內部有討論過,但是有些細節的問題:例如市場目前還是對 Andorid 比對 Chrome OS 有興趣、這麼大的計畫在 Mozilla 的資源分配、還有使用者的觀點等等。我想這未來應該有機會 follow up。

John Resig feat. Shibuya.js

John Resig 受 Javascript 開發同好組織 Shibuya.js 之邀再度訪問日本。這個 session 以 lightening talk 的方式進行,John 佔三個,其他時間由 Shibuya.js 發表,由 Resig 給 comment。

列出幾個我記得的:

  • John Resig 的三個 talk 分別是介紹 ECMAScript 5、Processing.js 1.0、和 jQuery Mobile。
  • @gyuque 用 AudioDataAPI 在 JavaScript 上實做了調變器(JS Modulator;調變就是數據機 MODEM 這個字的前兩個字母的縮寫),把數據資料轉換成聲音。在會場上播那個聲音(跟以前撥接的聲音一樣)的時候大家都笑了;最後他把聲音信號接進小時候玩的用錄音帶紀錄資訊的電腦,然後就把資料傳進去了!在投影片上看起來是 BASIC 的程式。不過現在還沒有 Device API 因此無法達成雙向通訊,所以這部份就待續。
  • @ku 寫了一個 iPhone 程式,把 WebView 接上了自己刻的 HTTP Server;該 Server 即為 Mobile Safari 的 JS Console(不過還不能抓到 Exception)。
  • 8-p.info 的 Kato-san,幫 Chrome 寫了 MozRepl,稱為 ChromeRepl。
  • @yksk 解釋他在 pixiv 的工作,用 LABjs 增加 Javascript 在網站上的載入效率;Pixiv 因為歷史共頁同時用了很多 lib,還需要下載很多 JSON。
  • @t_wada 介紹了一些 coding 的 best practice,尤其是 testing 上的。
  • @mesc 講了一些人們對 Node.js 的誤解
  • @_fp 是 NetFront 的工程人員,他介紹了 NetFront 的 Javascript 引擎。用 C 開發,目前在 x86 上的效率可以趕上 Firefox 2 (OS: 這樣就比 IE6 還快了…)
  • Yukoba 介紹了他的作品Orto-App -- 自己寫 Complier 處理 Java MIDP 程式,轉成用 JavaScript/canvas 或 ActionScript/Flash 執行。

感覺這些東西都好厲害呀… 都要有除了「寫 JavaScript」以外的知識才做的出來。要再努力一點才行。

其他議程

JetPack

下午的沒有很認真聽跟做筆記 :(。有一些介紹性的演講,講 JetPack SDK 的寫作,展示一些 API (可以換 personas 的圖片、在 Paranoma 上顯示數字等等)。最後 Lightening Talk 之前有個論壇型式的議程,討論 HTML5 的影響。

Lightening Talk 我上去介紹了 Mozilla Taiwan。

懇親會

其實就是 Party 啦!有酒、Buffet 啥的。同時舉辦 Lightening Talk (Part II)和抽獎。Lightening Talk 時有一位熱血 developer 展示了把 accerometer API 接上了 AudioDataAPI,結果電腦就變成拿起來搖音波就會改變的東西 😛

在 Mozilla 總部負責 Release Engineering 的 John O’Duinn 和 Mitcho 表演了同步口譯 Lightening Talk!講題是 RE 蓋了多大的機房(Mac Mini 機房,因為 Mac Mini 是唯一能在同一種硬體上執行所有支援的 OS 的機器)只是為了要加快每個 commit 被完整跑完測試的時間(測試越快就越能繼續 commit 下個修改,開發速度就越快)。其中手機機房更是驚人 -- 基本上是個四面都是金屬,屏蔽外界訊號的房間,裡面用木架布鞋櫃放一台一台的手機(要屏蔽的原因是因為訊號的變化會導致手機把運算轉向到其他服務,讓軟體效能測試無法正確進行)。

抽獎的時候送了一些 T-shirt、外套、大獎是小隻 FoxKeh。更後面的獎是三個 Firefox 滑鼠墊,瀧田(代表理事,Mozilla Japan 的頭)說要請 John Resig 簽名的時候大家都 high 起來了。最後抽獎方式是和 Resig 剪刀石頭布XD

活動的其他

回來 Bob 才說,他們辦活動都會準備同步口譯,日翻英、英翻日。像我在台上的時候下面大部分的人就都戴耳機這樣。另外,參加人數大約近 300 人,年紀最小的也有對技術有興趣的中學生。感覺東京的 Web Developer 很多呀 …… 不過他們有點太害羞了,在懇親會的時候有段時間竟然是我和 John Resig 和兩個口譯在聊天,哈哈。John Resig 滿有趣的,最後在休息室準備離開之前,還戴了 Foxmosa 耳朵抱著 Foxkeh 拍了這張很萌(?)的照片:

John Resig featuring Foxkeh and Foxmosa ears

當面也討論了有沒有機會請他來台灣的事宜。他希望亞洲這邊能喬好,讓他能夠飛一趟就能巡迴演講到所有地方。這就要各地 Mozilla 社群、或是 jQuery 社群的幫忙了(台灣有人願意喊聲接辦活動嗎?)

東京其他

除了活動,我還去了新宿、歌舞伎町、明治神宮和台場的未來科學博物館。星期五的新宿都是一群一群找居酒屋、剛下班的上班族。明治神宮星期天有很多帶小朋友去過七五三節的家長,小朋友都穿的很正式的樣子。台場的未來科學博物館有一些特別的東西,其中一個是用黑白彈珠演示網路的封包傳遞。不過我時間沒量好,在台場超匆忙的,只逛了博物館就離開了。

東京是個只要知道地鐵跟 JR 怎麼坐就可以到處去的地方,但是有一次遇到被售票機吃錢,不說英文的站務員就不幫我忙了(後來不知為何錢又回來了倒是)。松山到羽田真的很方便,來回都可以坐捷運/電車到機場。不過羽田機場因為國際航廈新開幕,很多本地人去逛街,回台北的晚上整個就是滿的,我 check-in 之後趕緊逃到關外去。

Google App Account as OpenID

Scroll down for English.

這是我今天在高雄 MozTW 連續聚的講題:Google Apps 帳號 OpenID 化,或是說,用 Google Apps 把網域升級成 OpenID 帳號提供者。

同時提供英文版投影片


This is my talk in MozTW gathering at Kaohsiung today: Google Apps Account as OpenID, or, OpenID-ize your domain with Google Apps.

Slides are also available in zh-TW.

To Mozilla HQ: It’s about time to launch a Firefox OS Project

I’ve talked about Firefox OS during several offline occasion; some people find the concept hard to understand, some, agreed with me, suggested that I should put everything together in written so people at large would know about it. Here are the reasons why I believe Mozilla should start working on an operating system based on Firefox.

1. To enrich the add-on ecosystem

Before Apple’s iTunes Apps Store for iPhone, and iPod or iPad later, Mozilla Add-ons was one of the largest collections of web software. The add-ons does from simply help people to access content to development tools. However, after 5 years of introduction of Firefox and it’s extension framework, people find it hard to formulate a business model with it – Mozilla try to cope the problem with donation system incorporated within the add-on site, however, with the proven model from the competitors, developers had shift their focus to these new platforms. Echofon, once called TwitterFox, would not be able to deliver a paid “pro” version successfully if it had not reach other platforms.

By developing an Firefox OS, Mozilla could make proof to developers in the ecosystem that Firefox is more than a browser, and their hard work is more than browser add-ons. I am not saying turning Firefox into an OS would immediately make add-ons development profitable – however, it might not never be if there is no OS.

2. To provide an alternative browser OS

When I talked about Firefox OS, people often compare my imaginary OS with Chrome OS. It’s comparable, yet, the Google’s approach might not be the best way. For instance, Google intend to copy Apple’s business model, creating an centralized Chrome Web Store, defeat the purpose that web should be a platform without a controlling vendor.

Should Mozilla had working on a Firefox OS, it not only provide an alternative to Chrome OS, but it also give users valuable choices on browser OS front. Alternative is not about playing the RMS card – that every software should have a libre alternative – instead, the existence of the strong enough alternative is the key to drive innovation.

(Don’t believe me? Think about IE6.)

3. To deliver better user experience in Firefox

The recent development of Firefox 4 bring exciting UI changes that align with many modern browsers, like Application Tabs or TabCandy, later known as Panorama, which enables user new innovate ways to organize information and works.

These powerful features, nevertheless, doesn’t work within an application as tiny as a browser sometimes. Before Panorama, I usually group my works in different browser windows, so I could switch between them on Windows taskbar. After trying Panorama, along with Application Tab, I don’t think it works as well as Exposé in Mac OS X, or even what I did. For example, app tabs are always visible no matter what Panorama work space you selected, yet in Panorama view app tabs actually belongs to a group – this results confusion. What’s worse, click in any app tab in another work group immediately brings you to that group, with no fast way to switching back.

Another example would be the UI change decision about bringing tabs on top of the toolbar. I agreed with the decision to bring tabs to top; but when I pressed F11 to make my Firefox window go full screen, I found the close window button (the X) was not on the top-right corner of the screen (which, according to Fitt’s law, is a hot spot for cursor aiming, and, according to the logic of Windows OS, should be always the place to close a maximized window).

These examples might be just tiny issues that come with a beta version of Firefox; I believe most of them will be fixed by talent people at Mozilla before the final version releases. Nonetheless, these are the evidence that how messy it would be to ask an browser within an operating system to manage it’s own tasks – We should definitely work on these user experience innovation, however a Firefox browser will always be a constraint for these interaction innovations – A Firefox OS will not. By developing a Firefox OS with these innovations, Mozilla will certainly have a better chance to polish them before they were brought to the browser.

Ever since Windows 95, binding between tasks in browser window and tasks in client applications has always been a key issue. Windows 7 introduced jump list; IE9 users will be able to pin websites on their Windows task bar. A Firefox OS will help Mozilla developers come up with even better interaction, instead of endlessly implement what Windows, or other OS APIs enables applications (browsers) to do.

4. To defend the Open Web

Mozilla is a foundation with limited resource. Everything it does has to be somehow connect to its mission. A Firefox OS project will undeniably connect to the cause. Here is one of the reasons why: Today, users prefer mobile apps than [mobile] web.

I twitted the link sometimes ago. The sad inconvenient truth is, if people access information mainly from apps but not the through the browser, the browser itself will be irrelevant. Eventually, the web itself will be irrelevant, along with the promises of the Open Web that Mozilla holds true. Yet, this is exactly what is happening right now on the mobile front.

(Stilling thinking about bring a full Firefox to iOS is important? IMO it brings more buzz than piratical use.)

Firefox OS has the potential to become not just browser OS for web platform but also a truly open platform. Think about a slightly exaggerated future, where desktops, OSes, and applications on it seize to exist. People would access information on the Internet without going through the Web (and HTTP) but using devices and site-specific applications using socket connections. In that future, there are better be a vendor that continue express interests of openness through technologies and end-user products, and let that vendor be Mozilla, even though the Web as we know it seize to exist. Firefox OS could be that end-user product, just like Firefox 1.0 did to the web almost 6 years ago. Firefox OS could ultimately transform itself beyond browser, or browser OS, but first Mozilla need to make a browser OS.

Thus, to Mozilla HQ: It’s about time to launch a Firefox OS Project.