2013年1月31日

FIrefox 小秘笈:回復先前的瀏覽狀態

您知道當您重新啟動 Firefox 時,您可以打開先前關閉的所有視窗跟分頁嗎?Alison B.,我們的 Facebook 粉絲以及擁有十年資歷的 Firefox 長期愛好者,提供了這則小秘笈:

『要復原我關閉瀏覽器時的分頁,然後繼續沒做完的工作,我會到歷史選單,選擇「回復先前的瀏覽狀態」。』

謝啦 Alison,你的 Firefox 使用經驗讓其他人受益良多!這裡還有個小訣竅:如果您上一次關閉 Firefox 時,還有其他分頁或視窗開著的話,Firefox 預設的開始頁會出現一個「回復先前的瀏覽狀態」的按鈕,點一下那個按鈕,您先前關閉的分頁及視窗就會重新出現了。

點此閱讀「回復瀏覽狀態」功能的詳細說明;您也可以到這裡看更多的小秘訣

原文 / Firefox Tip – Restore Previous Session | The Den
授權 / 創用CC 姓名標示-相同方式分享-3.0

φ Linear 翻譯 - Irvin 編輯

2013年1月24日

什麼是網路 Cookie?

讓我們來談談小餅乾,那些熱熱的、剛出爐還有點黏糊糊的小點心,真是太美味了……等等,不是這種餅乾啦!今天讓我們來聊聊網際網路的「Cookie」。

很多網站都會把你的相關資訊,儲存在你電腦中稱為「Cookie」的文件檔案裡,下次你再度打開相同網站時,程式就會去讀取該文件以「想起」你。我們一直都很依賴 Cookie,例如當你開啟一個網站時,如果網頁已經記住並輸入好你的登入帳號,也是透過 Cookie 實現的。

也有些 Cookie 會記錄關於你更為詳細的訊息,或許是你的興趣、你的網路瀏覽習慣……等等,這意味這個網站可以提供給你更具針對性的內容—常常是廣告的形式呈現;還有一種 Cookie 名為第三方 Cookie(Third-party cookies)—被那些你不曾訪問過的網站用來跟蹤並收集關於你的資訊的 Cookie,有時這些資訊還會被販售。

有些 Cookie 在你關閉瀏覽器後就會停止追蹤,而有些則持續運作直到被你刪除時。一般來說 Cookie 不會對你的電腦造成傷害,不過人們有時會擔心它所帶來的隱私問題。

你可以刪除你所有的 Cookie,不過那可能意味著比較糟糕的網路衝浪體驗(你可能會被網站登出;某些網站、例如 Hotmail 可能不再那麼好用;而且購物網站的購物車可能會忘光了你的喜好)。有些 Cookie 可能不會讓你太在意,但也有些可能會讓你感覺到侵犯了個人隱私。

現在你更瞭解 Cookie,也知道它們的功用了,讓我們來聊聊你擁有的選擇。

Firefox 內建了一個近來被越來越多人關注的「不要跟蹤我」(Do Not Track,DNT)功能(選單→偏好設定→個人隱私→勾選「告訴網站我不想被追蹤」),它能明確告知網站(以及它們的廣告商與合作廠商)你不願意讓它們追蹤你的瀏覽行為。當然網站可以不尊重你的個人意願,不過那些願意遵循的網站,在你啟用這個選項後將會停止追蹤你。隨著越來越多人如此要求時,那些還不遵循的網站,將會體會到使用者表達的明確訊息的。

啟用「不要跟蹤我」將不會影響你登入網站、使用購物車……等等。

你也可以使用隱私瀏覽模式,它允許你瀏覽網路時,不在電腦中儲存任何瀏覽的網站與網頁的相關資訊(選單→工具→進入隱私瀏覽模式,目前正在 Aurora 測試階段的 Firefox 20 將更新為選單→檔案→新增隱私視窗),不過隱私瀏覽並不能讓你在網路上匿名。

在 Firefox 中有一個設定可以讓你清除最近的瀏覽歷史,這篇文章說明了你的瀏覽歷史中儲存了哪些資訊,也教你怎麼清除部分或全部的歷史紀錄;你也可以自行管理 Cookie(雖然這可能會影響到你使用的某些網站),想知道怎樣操作,請查閱 Cookie 說明文件

你還可以安裝許多與隱私及安全相關的 Firefox 擴充套件,來幫你管理 Cookie、控管哪些網站可以看到什麼資訊,請在此查看完整的隱私與安全類別擴充套件清單。(編按:例如「DoNotTrackMe」套件,可讓你方便針對個別網站設定 DNT 狀態)

既然你現在對網路上的 Cookie 瞭解的更多了,就請幫幫我的忙給自己一個獎勵,享受一下另一種 Cookie 吧—比較美味可口的那種!

原文 / What are Internet Cookies? | The Den
授權 / 創用CC 姓名標示-相同方式分享-3.0

φ 陳三 翻譯 - Irvin 編輯

2013年1月18日

Firefox 小秘笈:分頁快捷鍵

從點 A 到點 B,我們總在尋找捷徑,以期更快到達。譬如,可以使用鍵盤快捷鍵的時候,我們為什麼還要辛辛苦苦地使用滑鼠呢。

嗯,這個 Firefox 小秘笈是來自於 Firefox 貢獻者 Jorge V:「使用 ctrl+1、ctrl+2…等,可以切換到你的第一個、第二個分頁(Mac 平台上使用 cmd+1)」。

謝謝 Jorge,這真是個很棒的分頁小秘笈!

如果您覺得這篇小秘訣對您有幫助的話,請用下面的社群按鈕分享出去,讓其他人更了解 Firefox!您也可以到這裡看更多的小秘訣

原文 / Firefox Tips – Tab Short Cuts | The Den
授權 / 創用CC 姓名標示-非商業性-相同方式分享-3.0 與其後版本

φ 陳三 翻譯 - Irvin 編輯

2013年1月16日

還原 Firefox - 把你的 Firefox 砍掉重練

還記得那些讓你想要砍掉重練的狀況嗎?

在許多現實的情況裡,直接砍掉重頭開始是很有用的。以網頁瀏覽為例,隨著時間的推移,不管是有意或無意,您總會陸續的下載許多附加元件、安裝那些從不記得安裝過的工具列……等。這些都會減緩瀏覽速度,或是使瀏覽器當掉,造成一團混亂。

誰有那麼多美國時間來解決這堆鳥事呢?何況除錯過程通常枯燥乏味又令人沮喪,且往往解決不了問題。

Firefox 提供了一個全新的解決方案:就像是按下電子裝置上的 reset 按鈕一樣。事實上,它就是一顆重置按鈕。

請打開你的 Firefox 選單,然後選擇「說明」→「疑難排解資訊」, 點擊「恢復 Firefox 至出廠狀態」,在提示視窗中再次按下「恢復 Firefox 至出廠狀態」按鈕,以確認您的意願,然後只要等 Firefox 通知你重置已經完成後,再點一下「完成」即可。有沒有很酷?

當您重置 Firefox 後,您不必從頭練起。以下資訊將仍然保留在您的瀏覽器裡:

  • 書籤
  • 瀏覽歷史記錄
  • 密碼
  • Cookies(你重置前登入過的網站不會被登出)
  • Web 表單自動填寫資訊

而下列資料將自您的瀏覽器中清除:

  • 附加元件和佈景主題:雖然很有用,但有時他們就是導致問題的元兇。一個一個重新安裝就有機會找出罪魁禍首。但無論如何,你就是需要重新安裝它們。
  • 重置過程中將關閉所有開啟中的網站。在重置前把這些網站加入書籤,你就可以再回到這些網站。
  • 針對某些網站的特殊設定 、搜索引擎、個人字典、下載記錄、DOM 儲存空間、安全憑證設定、系統安全設定、下載行為、附加元件的 MIME 類型、工具列個人化設置和使用者風格等都不會被保存。

因此,當下一次你的 Firefox 似乎變得緩慢或當掉時,試試看恢復 Firefox 至出廠狀態吧!

深入瞭解 Firefox 的重置功能,我們相信你將會發現它真的很有用,而且會更加希望在其他狀況下也能有顆還原按鈕:例如剛結束一場失敗的約會、或者寄出一封不該寄出的郵件之後……

原文 / Reset Your Firefox | The Den
授權 / 創用 CC 姓名標示-相同方式分享-3.0

φ kcliu 翻譯 - Irvin 編輯

2013年1月11日

5 分鐘檢查你的 Firefox 外掛程式

你有 5 分鐘時間嗎?你可能正在等待咖啡師為你調製一杯特製咖啡,這時,你可以點擊瀏覽器上的一些按鈕,來提升你的 Web 體驗。例如,你可以檢查你的外掛程式(Plug-in)。外掛程式通常是獨立於 Firefox 之外,由第三方廠商開發,常用於播放影片、動畫和遊戲上。

打開「工具」→「附加元件」,然後選擇「外掛程式」標籤,滾動滑鼠看看清單。對大部分人來說,真正有用的是 Flash 與 Silverlight(如果你還有看見 「Mozilla Default Plug-in」,你也需要它)。除非你真的確定你需要,否則停用掉清單中任何其餘外掛程式。這或許能提昇 Firefox 效能,也會讓你更加安全。之後如果你發現自己需要某個外掛程式時,你可以隨時重新啟用它。

現在,重新啟動 Firefox,這些外掛程式就會從你的瀏覽器上卸載。

外掛程式通常不會自動更新,另一個檢查外掛程式的辦法,是開啟 Mozilla 網站 外掛程式更新檢查 頁面。它會告訴你是否有外掛程式過時,增加你遭受安全威脅的風險。你可以透過這個頁面,更新那些你決定留用的外掛程式。

好了!僅僅 5 分鐘,你就做了個瀏覽器大掃除,也讓你的網路生活更加安全。如何,感覺很好,不是嗎?

原文 / Check Your Firefox Plug-Ins in 5 Minutes | The Den
授權 / 創用CC 姓名標示-相同方式分享-3.0

φ 陈三 翻譯 - Irvin 編輯

2013年1月9日

躲在 Firefox 18 裡的神奇離子猴 (@@")

今日(2013/1/8)稍早釋出的 Firefox 18 中搭載了 IonMonkey,我們最新的 JavaScript JIT 編譯器。它的效能跟架構都大幅進步,對一個為期一年且高度專注的專案來說,我們帶著超級興奮的心情看著它終於順利誕生!

先前的 SpiderMonkey 已經是個有點年紀的JIT編譯器了,一路走來,我們一直缺少一個重要的元件,一個通常在其他典型的編譯器,例如 Java 或 C++ 上都能看到的元件。我們舊的 TraceMonkey* 跟稍微新一點的 JägerMonkey,都是以直接轉譯的方式將 JavaScript 轉成機器碼,一路到底,沒有中間的步驟,因此編譯器無法後退一步,對編譯的結果進行分析,來進行最佳化。

IonMonkey 提供全新的架構,讓我們達到這個目的,它有三個步驟:

  1. 把 JavaScript 轉譯成 IR(中介碼,intermediate representation)。
  2. 用各種演算法對 IR 作最佳化。
  3. 再把 IR 轉譯成機器碼。

除了效能跟可維護性讓我們興奮,這也讓未來對 JavaScript 編譯器的研究更加容易。現在只要隨時寫個最佳化演算法,置入 Pipeline 中,馬上就可以看到結果如何!

效能測試

那究竟 IonMonkey 增加了多少效能指標呢?IonMonkey 以長時間執行的應用程式為主要目標(執行極短時間的應用程式將會切回 JägerMonkey 處理),我在執行 Windows 7 Pro 的 Mac Pro 上進行了 Kraken 以及 Google V8 測試。

Kraken 測試上,Firefox 17 為 2602ms、Firefox 18 為 1921ms,大約增進了 26% 的效能。在以下圖表中轉換成每分鐘執行次數,越高表示效能越好:

Google V8 測試上,Firefox 15 得到 8474 分、Firefox 17 得到 9511 分、Firefox 18 得到 10118 分,約比 Firefox 17 快了 7%,比 Firefox 15 快了 20%。

前面還有漫漫長路:未來幾個月,隨著新的帥氣架構到位,我們將繼續調整它,看看在其他指標跟市面中的應用程式上的執行狀況如何。

團隊

對我們來說 IonMonkey 最酷的地方就是:它是個極度群策群力的結晶!2011 年 6 月我們擬了個稍具細節的計畫,並推估約需一年的時間來完成。我們從 Andrew Drake、 Ryan Pearl、 Andy Scheff 與 Hannes Verschore 四位實習生開始,他們各自負責實作出 IonMonkey 架構中的關鍵元件,他們所撰寫的程式碼片段仍然留存在最後的程式庫中!

2011 年 8 月底我們逐漸組成全職團隊,包含 Jan de Mooij、Nicolas Pierron、Marty Rosenberg、Sean Stangl、Kannan Vijayan 跟我(David Anderson)自己(喔!忘了補上 SpiderMonkey 的成員 Chris Leary 以及 2012 年的夏季實習生 Eric Faus)。在過去一年中,我們專注在持續開發 IonMonkey、建構整個架構、確保設計跟程式品質上達到我們能達到的最佳水準,同時持續提昇 JavaScript 效能。

當大家有共同目標,一同讓這個案子成功,實在是一件非常有成就感的事!我由衷感謝每位參與其中的同伴!

技術

接下來在 JavaScript Blog 中,我們將陸續介紹 IonMonkey 的主要元件及其運作原理,我將會特別強調目前 IonMonkey 中使用的最佳化技術:

  • Loop-Invariant Code Motion (LICM),用來盡可能將程序移出迴圈外。
  • Sparse Global Value Numbering (GVN),一個強大的冗餘程式移除器。
  • Linear Scan Register Allocation (LSRA),在 HotSpot JVM 與近來的 LLVM 中使用的一種暫存器配置(register allocation)演算法。
  • Dead Code Elimination (DCE),用來移除執行不到的程序。
  • Range Analysis,減少邊界檢查(bounds checks)。

其中特別要提的是,IonMonkey 已經在我們所有的一級平台上運作(譯註:一級平台包含 Android Linux/ARMv7 與 ARMv6 (gcc)、Linux/x86 與 x86-64 (gcc)、OS X/x86 與 x86-64 (clang)、 Windows/x86 (msvc),各級平台詳見此)。IonMonkey 編譯器的抽象架構,僅需要最低程度的程式移植就能在不同 CPU 上運作。這代表著 IonMonkey 編譯器大部分的程式可以直接於 x86、x86-64、以及 ARM(大部分的手機及平板所使用)上執行。大部分情況下,只有核心的組譯器介面界面得是不同的。因為大部分 CPU 的程式集都不同,ARM 又跟 x86 完全不一樣,所以我們特別驕傲能夠有這樣的成果!

何時與何地?

IonMonkey 在 Firefox 18 桌面版與 Android 版上都已經預設啟用。

* 備註:TraceMonkey 的確擁有中介層,只是它非常侷限。最佳化必須即時執行,且資料結構無法應付編譯之後的最佳化(after-the-fact optimizations)。

原文 / IonMonkey in Firefox 18 | JavaScript
授權 / 創用 CC 姓名標示-相同方式分享-3.0

φ Robert Wang 翻譯 - petercpg、Irvin 編輯