上一篇文章中所說的 Hamster – 時間追蹤工具,只能在 Linux 上使用。再追 Hamster 的一個休眠問題時,無意中看到另外一個網站 RescueTime 所提供的服務。

有別於 Hamster,RescueTime 的設計是追蹤使用者當下使用的軟體,並紀錄使用期間。在網站上註冊帳號後,透過下載與執行一個客戶端軟體,RescueTime 可以追蹤你正在使用的軟體、閱覽的網站。然後你可對該行 為(使用軟體或閱覽網站) 進行標注,例如說只要我切換到 Word,便是在工作,若在瀏覽器切換到 Plurk.com 便是打混聊天。RescueTime 網站本身也提供了相當豐富的報名與追蹤系統,甚至可以自行定義預期目標,未能到達目標則寄出通知,相當有警示功能。

官方版軟體只支援 Microsoft Windows 與 MacOS。但是在 Ubuntu, Debian 上,Elliot Murphy 等人已實做出開源版本 – RescueTime Linux Uploader,這個版本會將你使用的中的視窗名稱等傳到 RescueTime 網站上,Firefox / Epiphany 的外掛模組也正在開發中。

不過對我而言,既使正在使用 Terminal 編譯程式或 Evolution 回覆信件,很多時候是作不同的專案,我不希望計時軟體只記為單一事項,因為有時用電子郵件寫報告也要花上半小時,全都統計在「撰寫郵件」類別,實在沒什麼道理。雖然 RescueTime 可以紀錄到切換應用軟體的時間,但實務上還是 Hamster 比較接近需求。

若你希望可以治療對執行力傷害最大的飆網注意力渙散症 (Internet Attention Deficit Disorder),可試著用 LeechBlockMeeTimer 來觀察與自我克制吧。

欲鍊神功並先自宮。別上網看我的網誌了,快工作吧 :p

References

最近開始參與一些產品、軟體開發計畫,也接手一些顧問服務。為了有效監控自己的工作時間跟確實計價,一直再找相關的時間追蹤工具。在 Gnome/GTK+ 環境下有 GTimLog, Gtimer 等,但總覺的他們的介面不夠便利。通常都必須拾起滑鼠,點選特定的 Task 後才能開始紀錄。這樣實在本末倒置,因為原始的期待是利用計時軟體監督自己的工作時間,提高工作效率。但是這些工具的使用卻造成每次切換工作都浪費幾秒,實在很不方便。而且紀錄的資料缺乏圖表、匯出功能,後續的整理也相當花費時間。

最近開始改用了 Gnome 2.24 中開始內建的 Hamster,完全符合我的需求。

hamster-menu

幾個特色

  • 工時可分為工作項目 (Tasks) 與分類 (Category)
  • 可用快速鍵切換工作項目 (軟體翻譯為 活動, activities)
  • 切換活動項目的輸入欄位可以自動完成! (可只打頭幾個字母就可列出可用項目與類別, 當然使用英文輸入效率較高)
  • 可為每項計時寫入備忘錄。(未來可以查詢該時段的實際工作內容,備忘錄亦有快速輸入法)。
  • 可依據電腦之閒置狀態自動停止計時。
  • 當下活動每進行特定時間,可自動提醒是否要切換。
  • 活動概覽中有漂亮的圖表列出「日」、「週」、「月」的工時紀錄,也會依照分類列出,以及每日的工作時間
圖檔來源來自 / Screenshots are from http://live.gnome.org/ProjectHamster

透過這個工具,可以追蹤分析自己每日進行工作切換的頻率,以及每件事項的花費時間。固定審閱可有效提高自己的工作效率。

你若使用 Debian Sid/Unstable, 會發現最近一版 (2.26.2) 開始,Hamster 無法偵測到電腦閒置,導致系統閒置時仍不停的紀錄時間。經查,是因為 Hamster 透過 Gnome-Screen Saver 查詢系統閒置時間,但是 Gome ScreenSaver 最近更改了 idle time 的偵測方式,改由 Gnome SessionManager 來監視閒置時間,Gome ScreenSaver 自己也不紀錄閒置時間了。

相關的問題與 patch 已經回報到 Debian BTSGnome Bugzilla.

過去一年多以來,幾位朋友都固定在週四進行聚會,我們稱為 Hacking Thursday,目的只是號招幾位喜歡動手寫程式一起來剪剪貼貼原始碼。雖說過程中未見產出甚麽偉大的軟體專案,但是在聚會的互動中,大夥都或多或少學到或分享了一些工作、生活上需要的經驗與知識。

最近幾周,我們開始試著將聚會中的心得分享錄影上傳,或許有更多機會把一些有趣的開發想法分享給其他朋友知道。也歡迎有興趣的朋友,參加聚會,或透過電子郵件方式跟開發者聯絡。

這裡是過去三周的心得分享小短片 –

上週六下午,到了強者我朋友沈聖博的工作室拜訪,一方面聊了幾個與數位藝術相關的國外團體,一方面也聽李駿跟聖博分享一些創作的經驗。

上週四曾經聽過聖博展示過他為棉花糖樂團的專輯《小飛行》所開發的專屬互動酷卡軟體 (吉他手沈聖哲是他的弟弟),非常有趣的商業運用。這張專輯裡面附贈了一個特別的卡片,若拿到電腦前面,配合這個軟體與 WebCam,就可以顯示出互動式的 MTV 播放效果。

我最感興趣的是聖博應用了許多開放原碼軟體,像是 Processing, NyARToolkit for processing, MiniM, JMyronOpenCV 等等,目前聖博所釋出的平台是支援 Mac 與 Windows。更重要的是,聖博放出了所有的程式碼!原始碼與授權書說明都擺在供下載的壓縮檔中。

週末的時候,也跟他討了 Linux 版,稍微玩了一番,執行起來相當順利。若你想試試看,在 Debian 或 Ubuntu 中只需要

  • 安裝 OpenCV. 請用 apt-get or aptitude or synaptic 安裝 libcv1, libcvaux1.
  • 安裝 Java Runtime (sun-java6-jre)
  • 若你裝了 pulseaudio, 需暫時先停止. 軟體需要透過 OSS (Open Sound System) 存取音效系統

另外,由於 labeling process 時用的 threshold 是寫死的,因此可能會因為環境亮度的關係反應較差。你或可調整環境亮度或透過更改 Main.java 中的參數來調整。

身為一個熱愛使用各種開放原碼韌體的開發者,我一直很關注各種可以應用第三方韌體的網通硬體產品。若要說起非官方韌體,最早的開放原碼社群起源之一就是 Linksys 的 WRT54G 系列產品。若你也曾尋找類似的產品,你會知道 Linksys WRT54G 一直都是最多開放原碼韌體支援的平台,而且可以採購特定版號 (v2 到 v4) 間的產品,因為這幾款早期的產品,尚未受到後來產品縮減成本的壓力,記憶體與快閃記憶體等硬體資源較多,容易安裝功能強大但佔用較多記憶體的第三方韌體版本。

雖說這款產品已經在市場上流通相當久,其中原廠的早期硬體版本早以斷貨。但是在拍賣網站或中國市場依然可以找到大量的早期硬體版本,甚至是裸版,價格有點渾亂,從接近原廠售價到幾乎是 BOM 成本的價格都有,數量不限。若稍微仔細查看,會發現產品上面的序號欄位是空白的,甚至沒有原廠品牌。原來這是傳說中仿冒原廠電路板與外觀設計的山寨版路由器。

令人聯想的是,為甚麽一般的 SOHO 家用等級無線路由器產品,技術門檻顯然比手機低許多,但卻沒有演化出同山寨手機一樣的複雜多樣性市場,反而更多還持續行品牌仿冒、產品複製的山寨老路。

筆者想主要的因素恐怕是毛利率與網通單調產品的特性。網通產品同手機不同的是,消費者不因為不同的外觀,或功能性潮流更換設備,許多網通設備都是安裝之後,在硬體故障前都不會進行異動或升級,除非需要有納入新技術的需求,如轉換至 IPv6 或 802.11n 等,才會考量因相容性而進行產品升級。

即便廠商在有限的變化中極力追求產品差異化,設計不同的外型,或特殊的韌體功能,但是相對太多多樣性的產品,也會造成製造、庫存等運營成本提高,利潤跟銷售量不見得會因此提昇。最終,能夠影響銷售量的,還是端看行銷資源的投入多寡。

於是這些中國山寨網通設備製造廠商,除了為其他自有品牌商代工外,最有穩定的利潤莫過於重複製造一些具備固定市場的特定模組產品。這些設備的固定族群來自進階使用者與系統整合商。以 WRT54G 而言,網路上有許多開放原碼的韌體系統,包含了 OpenWRT, DD-WRT, HyberWRT (已停止維護) 等,都支援此硬體平台。因此進階使用者或小規模系統整合商,甚至是無線網路分享社群,都有機會客製化自己的功能,並可以調整一些在原廠韌體中不予開放的選項,適用於不同的需求與應用。
Continue reading

朋友的介紹下,知道了法國的 /tmp/lab 正在籌辦 Wireless Battle Mesh 2009。身為一個 OpenWRT 使用者,以及 802.11 Wireless Mesh Networks 的技術評估人員,一直都持續私下地嘗試不同的 Wireless Mesh Network 通訊協定的不同組合,希望能夠找到一組技術本質上最適宜 Urban Wireless Network 使用的方案。除了開放原碼的協定外,也有機會測試一些台灣廠商所自行開發的私有協定。

l1000459-small

Source: http://n0rg.org/wbm2009

不過礙於資源與時間的限制,只能作一些業餘程度的實驗,還沒有機會可以設定起不同的協定做效能評比。很高興可以聽到在法國巴黎,有一群人,實際的選用了三種不同的 Mesh Network 路由協定 OLSR, BatmanBABEL,並為三種不同的協定各自設定了 25 個節點進行測試。

其中 OLSR 與 BABEL 都是 Layer 3 mesh protocol,算是單純的 IP-based mesh routing protocol。在這個活動之前,我並不知道關於 BABEL 這個協定的資訊,據聞是巴黎第六大學 (Universite Pierre et Marie Curie, ‘Universite Paris 6’) 的 Juliusz Chroboczek 所開發,比較大的特色是 BABEL 可以同時支援 IPv4/IPv6 dual stack, 不像目前有些 Mesh Protocol 都僅能單獨支援 IPv4 或 IPv6。無法同時支援兩種 IP 協定。如 Batman 在 batman-adv 版本中才支援 IPv6, OLSR 則只能單獨支援 IPv6.

Source: http://n0rg.org/wbm2009

你若曾經研究過幾種不同的 Mesh Network Protocols,應該會知道由於協定的差異與不同演算法實做,常常造成 CPU、記憶體的耗損上有極大的差異,進而影響網路的延展性。另外,由於路由協定考慮的變數不同,有的協定容易造成非常容易斷線的狀態,或者由於考慮變因太多,使的路由的收斂時間變長,甚至因為路由中的黑洞問題,造成路由無窮迴圈。又或者,控制網路的封包過大、過多,結果造成網路上被控制封包佔據,傳輸效能不彰的現象。

即便上述許多現象可以透過演算的方式測試,但是更多時候,若能夠實際的架設一個實驗網絡,是最能夠進行效能校調,以及務實的進行效能評比的了。而 Wireless Battle Mesh 2009 的目的就是如此,為了能夠測試每一種協定的差異,公平的使用同一套 Linux 套件系統(BSP) OpenWRT 與同樣等級的硬體平台。

Source: http://n0rg.org/wbm2009

Wireless Battle Mesh 2009 Wiki 上的說明提到,本次測試使用的硬體有 FON Fonera, Linksys WRT54GL, Linksys WRT54GS v4, ASUS WL-HDD25 等。根據小道消息,Batman Adv 的效果比 OLSR 與 BABEL 都好一點,儘管這跟我期待的結果一樣,不過還沒看到數據之前,我自己也還無法信服阿。更多關於 Wireless Battle Mesh 2009 的圖片與影像紀錄可以於找到。

類似的無線測試計畫,我還注意到柏林自由大學 (Freie Universität Berlin)Distributed Embedded Systems (DES) testbed,目前建制了七十個節點,最終希望建制到一百個點。多種開放原碼的路由協定也都會被置入此測試平台中,目前利用此測試平台所研究的十六篇論文都已經發表在網站上。從DES Testbed 的相關研究一頁,我們看到有許多大學也曾經或正在設置過類似的研究平台。如 Leipzig Wireless Mesh Testbed, USCB MeshNet, UMIC-Mesh.net, 韓國 WiSEMesh(Wireless Scalable and Efficient Mesh network) 等。

其中部份大學的研發動力,也演化成社區的自治無線網路基礎,變成一個更廣大的使用者族群。或是像 MIT 的 Roofnet,脫離學術網路變成獨立的商業公司 Meraki Networks, 將技術商業化到全世界市場,算是相當成功的轉型案例。

另外一個我特別注意的測試系統是 ORBIT Lab (Open-Access Research Testbed for Next-Generation Wireless Networks),這個系統有趣的是除了設定 20×20 的測試節點陣列,使用者可以利用終端端設定每一個節點要載入測試的作業系統磁碟檔案,也可以透過 API 控制、查詢每個節點的狀況。是我目前見到最先進的測試環境了,先前曾經找過國內的大學、研究機構,都還沒看到有機構投資這樣的測試環境。不愧是美國國家科學基金會花了五百四十五萬美金分四年所投資的 Networking Research Testbeds (NRT) 研究計畫阿。