Rex's presentation on OpenWRT case studies 這是連續第三年上台在 COSCUP 分享 OpenWRT 相關的經驗,前兩年談得是基本的使用、或是稍微進階一點修改韌體給一兩百人的研討會使用,稍微還帶到一點技術。

今年的分享,試著想要切合研討會的「Open source friendly hardware platform」的連續議程的主題,切成兩部份,一部分是 OpenWRT 偏商業應用與分析,分析過去一年來在網通市場的生態系統中,不同層面的廠商各用了甚麽樣的策略與方法去應用 OpenWRT 這套開源的系統,並且對業務與市場可以有甚麽樣的幫助。第二部份,則請在網通代工廠工作的 macpaul ,分享從網通廠工程師的角度,以 OpenWRT 做開發的實務整合經驗與效能結果。

我的簡報可於下載,macpaul 的部份可於觀看。全程演講之錄影也已經上線。有任何問題,歡迎與我聯絡,或留言於此。更歡迎在網通產業的前輩給予指教,特別是國內網通廠或 SoC 晶片廠對 OpenWRT 的態度與看法。

This is my third time to share my experience on OpenWRT project at COSCUP. The last two year I have shared the basic usage and software framework of OpenWRT, and also my experience to customize the OpenWRT firmware for open source conferences for allowing more then 100 people get connected with wifi in single room.

This year, I like to line up with the track ‘Open source friendly hardware’. So with another speaker Macpaul, we split the talk into two parts. The first part is presented by me, talked about how the industry use OpenWRT in their products, and how OpenWRT can do in the ecosystem. I tried to analysis how the strategies work on the business and marketing. The second part is presented by mapcual, as a OEM vendor engineer, macpaul shared his experience on day-on-day router firmware development, and the performance of the OpenWRT software stack.

At the beginning of this conference,  we were thinking about invite the core developers of OpenWRT project. But due to the limit of the event funding, the team can not afforded the ticket and hotel for trip of speaker. Hope, next year we will have opportunity to invite the core developers from the other country.

Photo is taken by Jim Grisanzio, The best photo of my talk I can find on Internet. Thanks! Jim.

如果你也常常使用 Thunderbird / Icedove 作為電子郵件書寫工具,並時常需要與外國朋友聯絡,大概也會碰到跟我一樣的問題。就是回信的時候,在信件引言開頭所寫得誰誰誰在何時何刻寫了甚麽,你若使用中文語系環境,這些日期跟提醒文字都會變成中文。

跟同語系的朋友聯絡倒是沒有問題,問題在於非中文語系對他們而言,這些無法顯示的字眼實在非常困擾,而且也略顯不禮貌。最好是能夠改成英文系顯示。這項需求的設定已經被收錄在 mozillaZine 與 ThunderBird 的技巧說明網站。

調整的方式非常容易,你可以在 user.js 中加入以下設定,就可以客製化回信時所使用的引言標頭。

// http://www.mozilla.org/support/thunderbird/tips#beh_replyheader
// http://kb.mozillazine.org/Reply_header_settings

user_pref("mailnews.reply_header_locale", "en-US");

// Change the reply header
// 0 - No Reply-Text
// 1 - "[Author] wrote:"
// 2 - "On [date] [author] wrote:"
// 3 - User-defined reply header. Use the prefs below in conjunction with this:
user_pref("mailnews.reply_header_type", 3);

// If you set 3 for the pref above then you may set the following prefs.
user_pref("mailnews.reply_header_authorwrote", "%s wrote");
user_pref("mailnews.reply_header_ondate", "on %s");
user_pref("mailnews.reply_header_separator", " ");
user_pref("mailnews.reply_header_colon", ":");
// The end result will be [authorwrote][separator][ondate][colon]

其中,mailnews.reply_header_locale 可用於設定你要使用的日期格式。若你發現更改 reply_header_locale 了之後,日期沒有變成應該要出現的英文日期,反而是亂碼的中文的話。你大概是碰到跟 Ubuntu 上的 #157638 一樣的問題,意即你的系統缺乏了相對應的語系資料 (locale data),請確認你的系統中生成了如 en_US 等語系資料檔案。如不確定,可於系統上執行 “sudo dpkg-reconfigure locales” 來進行設定。

最糟的情況,你可以透過環境參數的設定,更改 LC_TIME 為 en_US 或 C,這樣日期字串就會自動轉為英文語系。LC_TIME 的設定方法適用於大部分軟體。

這是一則 tip.

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