上一篇文章中所說的 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 中的參數來調整。

X200 入手之後,基於某種固執的看法,不裝 X86_64 (amd64) 而裝了 IA32 (x86) 版本的 Debian sid,且為了擴增的 4G 記憶體,換裝了啟用 PAE2.6.28 核心。

雖說 2.6.28 中,已經納入了 GEM Memory Manager for GPU memory,不過由於啟用 PAE 後,記憶體傳址的相容性問題,造成 GEM 被關閉,無法使用。若此時執行 glxgears,系統會同你抱怨 ‘Failed to initialize GEM.  Falling back to classic.’

我所使用的 Thinkpad X200 上所使用的顯示晶片組是 Intel GM45 (4500MHD),用 lspci 顯示的訊息是

00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07) (prog-if 00 [VGA controller])

照理若因為無法啟用 GEM 而造成無法利用 EXA 加速的話,Xorg 的 Intel 驅動程式會改用 XAA,不過實際上似乎是完全只用軟體作描繪,因此速度奇慢無比。除了一般的桌面軟體反應緩慢外,時常使用 Firefox 瀏覽網頁時,Xorg 會吃滿 CPU 資源。甚至,開啟某些含有大量表格的網頁時,Firefox 甚至會停止反應好幾分鐘。

為了改善顯示效果,我試著升級了 Xorg (1:7.4+1), xserver-xorg-video-intel (2:2.7.0-1), libdrm2 (2.4.9-1), libdrm-intel1 (2.4.9-1) 等軟體套件。同時為了可以充分利用記憶體,於是裝了 linux-image-2.6.29-1-amd64 核心,但系統部份 (userland) 依然沿用 IA32,重新開機後一般的應用程式執行上沒有太大問題。

改用了新的核心後,預設使用 EXA 效率上比錯用 PAE 核心的狀況好很多。有些人測試 UXA 說有些問題,但是我改用 UXA 後,特別是 compiz 的速度改善相當多,用 compiz benchmark 大約是 144 fps. 使用 Firefox 時網頁繪製的速度也快多了,Xorg 相對的只佔用少量的運算資源。順道測試了 KMS 的效果,很遺憾的結果是開機後一片漆黑,只好暫時打消玩弄超絢麗 Plymonth 的念頭。

你若也想測試一下新的驅動程式,目前在 Debian Sid 中,都可以找到上述的軟體版本。剩下的只是稍加修改一下系統設定,主要是 /etc/X11/xorg.conf 中的 Device 一節,如使用 UXA 則改為

Section "Device"
... omitted ...
Option          "AccelMethod"   "UXA"
... omitted ...
EndSection

若用 EXA 則是

Section "Device"
... omitted ...
Option          "AccelMethod"   "EXA"
# Option          "MigrationHeuristic" "greedy"
... omitted ...
EndSection

其中 MigrationHeuristic 之設定據聞在舊版 Intel 驅動程式中可以加速顯示速度 (但也可能引起其他問題),你可以依照自己的版本增改。由於搭配的驅動程式版本、設定眾多,且不同的搭配,所造成的優劣各有不同,並沒有一個最佳的設定,因此在此不多加說明我個人的測試。在 Phoronix 上的 Does A Greedy Intel Driver Improve Performance? 做了相當詳盡的全方面測試,若可參考文中的數據。你若使用不同的顯示卡,而想嘗試 EXA 的效能,請參考 Intel Graphics DriverExa Status 一文來了解你的顯示卡支援程度。

在測試過程中,我也修改了其他的設定,主要是為了同步垂直掃描頻率的問題。可以利用 DriConf 更改了同步垂直掃描頻率 (vblank_mode) 的設定,我的系統預設設定是開啟的,這種狀態下啟動 glxgears 後,系統會出現 ‘Running synchronized to the vertical refresh.  The framerate should be approximately the same as the monitor refresh rate.’ 只會得到 60fps,必須關掉後才能得到數據。此外,我也更改了 Compiz 中的 sync_to_vblank 設定,可以在 CompizConfig Settings Manager 的 /General/Display Settings 設定。

整個效能測試過程中,我用到了幾個測試工具,包含了

  • sysprof 可以用來觀察設定前後,Xorg 與 Firefox 的資源佔用比例。
  • x11prefgtkpref 來測試 2D 的繪圖效能。
  • Compiz Benchmark (包含在 compiz-fusion-plugins-extra 中),用以測試 3D 的繪圖效能。
  • PeaceKeeper 用來測試 Firefox 的顯示效能。

若想進一步了解本文中大量使用的縮寫意義,請參考 Pavel RoitbergEXA, UXA, DRI, GEM, TTM 一文。

去年年中試用過 Adobe AIR for Linux beta 後,從去年年底 Adobe 發行1.0 正式 版,一直都沒有安裝新版。剛剛又再度試玩一下,比較有趣的是,Adobe AIR 跟系統本身的軟體套件管理系統高度整合,例如你裝了一個新的 Adobe AIR 軟體時,他會自動封裝並安裝成 dpkg ,於是你若使用一般的套件軟體管理工具如 aptitude / synaptic 也可以移除 Adobe AIR 軟體。

之前提到的 Adobe AIR XIM 問題已經修正 (當初回報的論壇文章已經被刪掉 ?!),至少在 twhirl 下可以正常輸入中文,不過一併測試了 Balsamiq Studios 的好用軟體打樣工具 Balsamiq Mockup,結果發現這個工具還是無法接受 scim 的中文輸入,真可惜,只好繼續用英文設計版面。相較於其他的軟體版面打樣軟體,Balsamiq Mockup 算是最直覺簡單的一套,而且隨便拉一拉做出來的成果還算美觀,有手繪筆記的風格。在 Mockups To Go 上,還有不少人分享設計樣板可供參考。

若是想嘗試更多的 Adobe AIR 軟體,Adobe 建了一個 Marketplace,可以直接下載安裝不同的軟體,許多軟體都是免費授權使用的。