謀智菜逼八談 XPCOM 實務入門

前言 關於 XPCOM,請參考 MDN 上 XPCOM 的簡介。MDN 上關於 XPCOM 的教學,有部分實作上的細節已經過時了。此外,MDN 上的教學偏向使用 XPCOM 編寫 gecko 的擴充元件,身為 Mozilla 菜逼八軟體工程師要學的當然是給 gecko 內部使用的 XPCOM!因此在編寫上會有些微不同的地方。這篇文章將修改 gecko 附帶的 XPCOM 範例,並將其加入 nec.....深入了解

Where am I?-Part III-用 Geolocation API 以及 Offline Storage 實現導航與離線儲存

之前在 Eric [1] 與 Owen 的文章 [2] 已經介紹了如何使用 Geolocation API [3] 開發地圖應用,在這篇文章中我們要進一步介紹如何用 Geolocation API 實現導航。另外考慮到定位服務需要一定的時間才能完成,為了避免使用者每次開啟 App 時候都要花時間重新尋找所在位置,因此我們要利用離線儲存的函式庫 --  localForage [4] 來紀錄使用.....深入了解

Where am I?-Part II-在 Google Maps 標記地圖資訊

在看過  Part I 部分,相信大部分人都可以了解如何完成一個 Firefox OS 地圖應用程式。在了解了地圖的基本應用之後,我也想要做一個簡單的程式。我想要完成一個可以在地圖上呈現更多資訊的地圖應用程式。除了顯示個人地理位置資訊,可以把我們感興趣的地圖資訊也呈現出來。 我們生活中常用的就是交通的資訊,以一個台北市民來說,可以使用微笑單車是很方便的事。不過在騎單車前可以了解目前附近單車的.....深入了解

Where am I?-Part I-使用 Google Maps 地圖快速簡單查看你的位置

地理位置(Geolocation)的應用相信大家每天會使用到,早上查看上班前的交通狀況,傍晚打開手機 app 查詢附近的餐廳,上菜後照相打卡,看看週末旅行的城市天氣如何,或是用運動 app 記錄自己慢跑的速度,路線。在這篇短文,筆者將介紹如何在 Firefox OS 上,使用 Google maps 來查看目前的位置當作個簡單的開始,接下來由其他的高手朋友來作更多進階的應用。 &nb.....深入了解

利用 adb 和 gdb 來 debug Firefox OS (B2G)

Debugging 絕對是每個 programmer 不得不面對的痛。有句俗話說 To err is human; to debug, divine. 當我們遇到一個 B2G 上的 bug,卻不清楚原因的時候,該怎麼辦呢?本文將介紹一些筆者日常工作中,對 B2G 的 Gecko C 部份常用的除錯方法。 adb logcat 如果你是個 C 開發者,不管是不是習慣使用先進的 deb.....深入了解

使用 Github 開發我的第一個網頁應用程式 (Web App)

網頁應用(Web App) 網頁或網站設計是門很容易上手,但卻很難精通的領域。特別是近年來網頁相關技術隨著 HTML5、Node.js、Cordova 等的發展,網頁可適用的邊界進入了爆炸性擴展的階段。在諸多網頁技術所涵蓋的新疆界中,網頁應用(Web App)可以說是一個稍稍有別於傳統網頁設計的嶄新領域。之所以將網頁應用劃分為網頁相關技術的「嶄新領域」,可以由下面幾點察知: 1. 從使.....深入了解

自己的瀏覽器自己改 (Part I) -利用Firefox Addon SDK開發簡單的附加元件

Firefox 最受歡迎的特色之一就是量多而且質精的附加元件 (Add-on),在 Firefox Add-ons 網站 [1] 您可以找到各式各樣的附加元件滿足您的各種上網需求。在這篇文章中我們將會介紹如何利用 Firefox Add-on SDK [2] 來撰寫簡單的附加元件。我們會教您如何利用附加元件來改變網頁的外觀與行為,即使不是自己架設的網站,我們也能隨心所欲的改善它們的使用經驗。 準.....深入了解

淺談 System Message

相信各位使用手機或多或少都有收過 SMS 簡訊或是定時鬧鈴等種種來自系統本身的通知,而在 Firefox OS 中,這些功能都可透過所謂的 system message 機制來達成,即便是在相關 app 尚未開啟的情況下。 簡而言之,system message 是為了處理一些必須要由 Gecko 來掌控並提供給相關 Gaia app 的訊息而衍伸出來的機制。在某些情況下,相關的 app 可.....深入了解

Gecko 內的死亡之握-kungFuDeathGrip

在看 gecko 的 code 時無意間發現了這個神奇的區域變數:[crayon-59502058b9fe5872118068-i/] ,乍看之下這個奇怪的區域變數在 function 內就只有被宣告,並且沒有被使用到,那麼到底為什麼要有這個變數的存在呢?為了更進一步了解這個變數的由來,我們先來看看 [crayon-59502058b9fec718666242-i/]  字面上的意義,直接翻譯成中.....深入了解