運用 Web 技術打造電視遙控器的操作環境

當初我們決定要將 Firefox OS 應用到智慧電視 (Smart TV) 上時,第一個遇到的問題便是操作介面的不同。在一般的電視使用情境下,使用者通常不會有滑鼠或是觸碰螢幕,能拿來操作的是那少少幾個按鍵的電視遙控器 (好吧,其實現在電視遙控器上的按鍵還不少)。在將 Firefox OS 這樣一個 Web 平台作為手機作業系統時,開發 App 就像是在做手機版的網頁,兩者的操作並沒有什麼不同;但.....深入了解

在 Firefox 上建構 WebVR

近年來在資訊業最火熱的話題無疑就是虛擬實境 (Virtual Reality,VR) 了。除了 Oculus 推出 Oculus Rift 之外,其他如 HTC、Google、Samsung 等科技大廠亦各別推出自己的解決方案。VR 目前在遊戲、 電影、多媒體內容都有其龐大的市場需求。Mozilla 的工程師與設計師正著手將 VR 帶到 Open Web 之上,讓每個人都能透過瀏覽器輕鬆享受 VR.....深入了解

淺談 W3C Sensor API的發展

感測器元件是連接實體世界和數位世界的橋樑,將物理現象轉化為電子訊號帶入軟體的次元。感測器元件的存在更是人機互動體驗的必要條件,如利用加速規(accelerometer)、陀螺儀(gyroscope)等動作感測器把手機當方向盤的 REAL RACING賽車遊戲、 利用近距感測器(proximity sensor)當伏地挺身計數器的 Runtastic Fitness、或是利用振動馬達(vibrati.....深入了解

解析 XPCOM 物件的 Reference Count

在 Gecko 的實作裡,我們大量使用 smart pointer 作為指標傳遞間的媒介,而為了能完善的操作 reference count ,我們必須保證 reference count 的增減是 thread safe 的。若無法妥善處理 reference count 的增減而產生 race condition ,會造成至少以下兩個問題: 兩條以上的 thread 同時執行了 del.....深入了解

Mozilla 開發人員的強力小幫手 – Autolander

有在關注謀智台客的朋友們,應該都知道 Firefox OS (B2G) 是由 Gaia、Gecko、Gonk 所組成。透過『我也想成為 mozillian!教你如何貢獻到 mozilla code base』我們對如何貢獻到 Gecko 的部分有了一定程度的了解,正因為 B2G 的 Gecko 是放在 Mozilla 的 hg 伺服器 (https://hg.mozilla.org),而非 Git.....深入了解

WebAPP 之影像處理

在各大平台上的 App 商店裡,影像處理相關的應用程式總是在熱門排行榜上佔有一席之地,Web Platform 當然也不落人後的提供建構影像處理 APP 的相關功能。在這篇文章裡,我們將介紹如何利用 HTML5 的 [crayon-57e7d73229f26000421763-i/] API 來建構一個影像處理應用程式的架構,接著我們會介紹在 Web Platform 上有哪些工具可以用來.....深入了解

如何利用Firefox OS現有的Components打造自己的Web App

Web這幾年最夯的主題之一就是Web Components [1][3]。透過它,我們能使用其他人開發好的Widgests來提高開發效率,不過風險是目前有些瀏覽器支援並不完全或必須手動開啟支援[6],而我相信不久後所有瀏覽器就會完全支援囉[2]!   今天,小弟想跟各位簡介如何使用Firefox OS的Gaia Team所開發的gaia components [4][5],來.....深入了解

Mozilla 開源專案的守護神 – Treeherder

Treeherder 是一個彙集所有測試結果的地方,它將 CI (Continuous Integration) 的測試結果彙整起來變成一個精美的報表,好讓開發者可以直接透過網頁來查看各種測試項目的最新狀態或是錯誤訊息,甚至是幫你分析發生錯誤的測試項目是否是目前某些不穩定 Bug ( Intermittent failure ) 所引起的,然後幫你標上 Bug number。說起來 Treehe.....深入了解

看懂 XPCOM 的轉型函式

Photo credit: Who? Me? | Flickr - Photo Sharing! 在研讀 Gecko 的程式碼時,常常會看到 do_QueryInterface 與 do_GetInterface 的用法出現,另外還有一個比較少見的 do_QueryObject。這三個函式的主要用途都是對於一個物件請求另一個介面的物件。在介紹這三個函式之前,我們先介紹 QueryIn.....深入了解

XPConnect 遇到的小問題

在 XPCOM 的世界裡,透過 XPConnect 的幫忙,C 和 JavaScript 實作的元件可以互相地呼叫,因此我們可以自由選用合適的語言來開發各自的元件。 但是因為中間包了一層 wrapper,所以在某些特殊的情況下,程式的運作可能會不如你的預期:例如在 跨越語言的邊界 – 淺談 JS API 與 XPConnect 有提到,動態改變 object property 時只會改變到 wr.....深入了解