- 最喜歡的(已修正)bug: Bug 531419 – qemu issue with non-virtio NICs receiving heavy traffic volumes
- 最喜歡的新功能:wireshark USB 封包擷取
2009年11月17日
Fedora 12 我最喜歡的 Bug 與新功能
2009年8月28日
Scott Tsai's Embedded Linux Tutorials
- How to Handle a Linux BSP: from u-boot to "Hello World!"
- Get a minimal Linux system capable of running a "Hello World" C application from the pack of software that your chip vendor calls their Linux "Board Support Package".
- Configure and build the u-boot bootloader, the Linux kernel, the busybox minimal application environment and getting dynamically linked applications working.
- Uses the qemu emulator to emulate an ARM hardware platform that loads all software over the network.
- Embedded Linux Application Debugging: gdbserver, duma, mtrace and oprofile
- Covers remote debugging, buffer overflow and memory leak detectors and the oprofile whole system profiler
- The "mtrace" mechanism covered is only present in glibc/eglibc and not uclibc or bionic though. Developers using Broadcom BSPs and Google Android should look to dmalloc.
- The Little Languages of Linux
- Covers basic shell scripting
- The Linux Initial Ram File System
- Bundle files and applications with the Linux kernel or do all early setup until the complicated storage device can be used.
- Covers building a initramfs image with devices nodes inside without root privileges.
目前的內容偏重『系統整合』而非程式開發,我還有一篇 GNU make 入門寫到一半。歡迎批評指教!
2009年5月28日
Born free: Open-source software in the recession (The Economist)
"Sales at Red Hat, the world’s biggest independent open-source firm with annual revenues of $653m, grew by 18% year-on-year in the first quarter. More and more firms, particularly in Europe, seem prepared to embrace open source (see chart). “Budgets are tight and we think that is good for open source,” said Jim Whitehurst, Red Hat’s boss, when announcing the results."

"Cloud computing—the delivery of processing power over the internet from vast warehouses of shared machines—will further blur the lines between proprietary and open-source software."
"If they are not careful, companies and consumers could get locked into a cloud even more tightly than into a piece of software. This is because data residing in the cloud can be hard to move to another service."
與嘉濠討論 Mercurial 筆記
1. Nested repositories (mercurial forests 、 git submodules、svn externals)
fcamel: 『我最近要把公司小組內用的 VCS 換用 Mercurial, 有幾個問題和你請教一下
我們目前程式不多, 我打算用一個 repository 含蓋全部,
但有可能會和別人合作, 到時會抽出其中一個 sub-project 和別人共用,
SVN 只要讓對方 checkout 子目錄就好,
但查了一下 mercurial 似乎沒內建類似功能,
只有看到這篇提到有 extension 有提供, 不知道效果如何
http://www.selenic.com/
不知道你有相關的經驗嗎? 你的建議是?』
Scottt:『 從單一 repository 中拆出子 project 在mercurial與git中都不方便。
建議:專案還小時,讓第二個 project 也checkout 第一個的全部 source code 。
中長期,尤其考慮到API修改、release 時程不同對等問題還是把 library 獨立成為自己的 repository較佳。
當有一個 library 有的三個使用者,或是 API穩定時就可以做了。
我之前一個專案有多個 repository 時,寫一小段 Makefile來協助 clone、tag、release等動作,相當順利。』
2. Work flow
fcamel:『我目前想的 work flow 如下 (兼顧自己暫時階段性工作和乾淨的官方 repository):
hg clone main my_dev
cd my_dev
# update, commit, update, commit, ...
hg diff -r BASE_REVISION > update.diff
# code review
cd ../main
hg patch ../my_dev/update.diff # write a clean and formal log
hg push
cd ..
rm -rf my_dev # drop unused clone and its messy logs.
我也會把 update.diff 上傳到 ReviewBoard, 這雙方方便寫評論,
之前我和同事試用過幾次 ReviewBoard,
雖然功能很陽春, 但單就 review 這件事來說滿好用的』
Scott:『『一般』
我需要改寫歷史的時候用 mercurial queues:
http://hgbook.red-bean.com/
我前一個開發超過兩年、
當時多數修改只有事後 code review,少數關鍵模組、
3. Source Code Layout
fcamel:『我們主要用 Java, 雜事用 Python, 我目前規劃是
# 假設根目錄是 hg
hg/python # 各個 module 開不同目錄, 另有 hg/python/lib 放 third-party modules
hg/java # 相當於 Eclipse 的 workspace 吧, 我們都用 Eclipse 寫 Java
有其它建議嗎?』
Scott:『強烈建議不要在最上層用程式語言分類。
我常用:
libfoobar/org.itrs/
libfoobar/client.py
等,把Python工具放到跟它有關的Java碼附近。 flat instead of nested.』
4. Mercurial server setup
fcamel:『暫定用 Apache + CGI 吧, 我想把 server 帳號密碼和 VCS 分開, 或是一般來說, 都是綁在一起, 比較省事?』
Scott:『我們可 commit 的 repository用 ssh public key authentication。
這樣developer來來去去,只要在 .ssh/authorized_keys 中加減一行即可。』
5. Merge tool
fcamel:『你慣用的 diff 軟體是?http://hgbook.red-bean.com/
Scott:『我也是看了 mercurial book之後用 kdiff3。 使用前要花一個小時讀他的 online help手冊,但之後進行複雜的 3-way merge分常有效率。 我之前跟晶片供應商、還有外國同事 merge code 時,非常喜歡kdiff3 可以 split diff hunk、『剩下差異全部選我的版本』 等功能。』
6. 其他建議
fcamel:『有其它用 Mercurial 的相關經驗可以分享嗎?』
Scott:『6-0. 兩個我用過的GUI:
http://bitbucket.org/
http://bitbucket.org/
6-1. Commit notification email 與 hgweb 介面早點設起來。
6-2. Release 流程,事前先跑過,不要凌晨有人打電話問你 "hg push"為何失敗、"hg tag"怎麼用。
6-3. 推新系統,永遠是訓練人最麻煩,可用『種子培訓』
今天我們還見面討論了一下:
- 嘉濠的筆記
- 我的筆記:
1. hgrc 重要:建議統一。mercurial類似 VIM 需要設定檔寫好才能用得順,這是個缺點。
2. kdifff3用法: 選擇 1.共同祖先2.我的版本3.別人的版本. 好用功能:split hunk、剩下全部選B版
3. mq: qinit my.patch、改code、qrefresh、qpop、qpush、qfinish
4. code review 是訓練新人學習的好方法,強制新手第一個月全部的收改都需要在 commit 前通過 review.
5. wiki: fcamel 在 ITRI 的 team 有6 個人在用
6. redmine: Ajax UI 寫的比 Trac 好,支援多個project,但一個專案多個 repository仍未解: http://www.redmine.org/issues/779
7. 用 Python 寫 test code 比用Java省時
8. 用Python也可以寫跟硬體溝通的程式:Scott在研究硬體規格階段喜歡用 Python寫硬體實驗碼。我用 Java 寫 Test Case 時常咒罵為什麼沒有更方便表示輸入資料的 liternal syntax。如要實作某種『簡陋的 domain specific language』 來表達輸入與輸出也是用 dynamic language比較容易。既有的 Python library也有助於快速寫出 test。
9. C 佔優勢的應用領域(fcamel:『為什麼不全部程式都用支援 garbage collection 的語言實作?』): 3D Game Engine、Driver(因為要跟 kernel 配合)、codec(Scott 認為未來可能被opencl或別的可利用 x86 SSE3 與 ARM neon指令的 library 取代)
10. 工作經驗分享: ClearCase 是Motorola的『企業標準版本管理系統』,我從來沒想過一套號稱成熟、貴得要死得軟體可以這麼難用!
11. The Myth of the Genius Programmer: "we discuss how to avoid this trap and gracefully exchange personal ego for personal growth and super-charged collaboration." 但 SVN 在數年之內就被 git 取代。
12. Scott 的個人設定檔集合:包括用 VIM 當 pager(search for MANPAGER、PAGER)
2009年5月19日
FreedomHEC Taipei 2009 開始報名
- 對象:Hardware工程師、Device Driver與Firmware工程師、Engineering Manager
- 內容:高密度學習、建立業界人脈與討論Linux驅動程式開發
- 地點:台北市松山區民生東路四段133號14樓創新廳
- 時間:2009年6月10~11號
- 費用:免費
2009年5月1日
FreedomHEC Taipei 2009 研討會
主題 Linux Device Drivers,免費(台灣納稅人透過資策會請客)
於2009年6/10 ~ 6/11在台北市松山區民生東路四段133號舉行。
議程暫定,還沒排滿,徵求演講者中,還沒開始報名。
今年會有 "Write a Real, Working Linux driver" 的 tutorial,由 Greg Kroah-Hartman 主講。他喜歡從頭寫個 USB 溫度計 Driver當例子,很多業界工程師應會有興趣。
另外 "Linux Device Drivers" 與lwn.net 的主要作者 Jonathan Corbet 也會來 :)我個人從 2001 年每週四必讀 lwn.net。
去年我看到國外資深 open source developer 要來台灣,特別跟公司請假參加。今年我變成有在幫忙籌劃,但辛苦的工作都還是資策會創新應用服務研究所的黃昭龍先生與 Novell 的 Brandon Philips 先生在作。
2009年4月19日
我的第一個 Patch (用冷門輸入法的代價)
- libtabe/doc/Changes.pre-0.1 (search for Scott Tsai)
- xcin-2.5.3.pre3/history/Changes-19991011
期間Linux下輸入法的實作換過多次,我偶而就會撞到bug:到2009年的今天,Fedora 11 Beta下的ibus-chewing『許氏鍵盤』又有bug時,我承認我有點沮喪。同一段程式我們到底想實作、除錯幾次?
2009年4月15日
2009年3月23日
The Changing U.S. - South Korean Alliance
"... the turbulence that afflicted the alliance in recent years has calmed down but the underlying issues have not been resolved. ...
... Much of the fault for the strain in the alliance has been laid at the feet of two former presidents, Roh Moo Hyun in Seoul and George W. Bush in Washington. Roh came to office in 2003 with an explicitly anti-American posture. Bush made little attempt to hide his contempt for Roh. ...
...President Lee evidently favors a stronger alliance with the US but lacks a national consensus behind him.... South Korea is now a highly divided society between pro-American conservatives and anti-American liberals.
Those Koreans who have resisted the transfer of wartime command of their forces, many of them in the older generation who remember American troops fighting for South Korea in the Korean War, fear that the transfer of operational control will lead the US eventually to abandon South Korea.
... the US has trimmed its forces in Korea to 28,500 from 37,000, and is consolidating them in posts south of Seoul from which they will support South Korea if needed. To keep US forces in Korea, Seoul is paying for 90 percent of the $2.5 billion cost of current construction at a post in Pyongtaek. Who will pay for the rest of the $13 billion in total costs is being negotiated."
2009年2月28日
工業技術研究社 2009 ~ 1992
匾額 |
| ![]() | ![]() | |||||
Personal Favorites |
| ![]() | ![]() | ![]() | ![]() | |||
2009 應屆高一 |
| |||||||
2009火鍋大會 |
| ![]() | ![]() | ![]() | ||||
媒體報導 |
|
| ||||||
2007 火鍋大會 |
| | ||||||
2006 招生 |
| | | |||||
2006 夏(馨怡的blog post ) |
| | | | ||||
2006 火鍋大會 |
| ![]() | ![]() | ![]() | ![]() | |||
2005 夏 |
| ![]() | ![]() | |||||
2005 火鍋大會 |
| ![]() | ![]() | ![]() | ![]() | ![]() | ||
2004 冬 |
| ![]() | ![]() | ![]() | ||||
2004 夏 |
| |||||||
2004 和春盃自走車大賽 |
| ![]() | ||||||
2003 火鍋大會 |
| ![]() | ![]() | |||||
2002 寒訓(The C Programming Language, Chapter 6) |
| | | |||||
2000 冬 |
| ![]() | ![]() | ![]() | ![]() | |||
2000 冬(2) |
| | | |||||
1996 冬 |
| ![]() | ![]() | ![]() | ||||
![]() | ![]() | ![]() | ||||||
1998 |
| ![]() | ![]() | |||||
circa 1992(?) |
| ![]() |
Edit 1: Add 1998 album. (2009 March 2nd)
Edit 2: Add 2009 hotpot photos from Lai. (2009 March 22nd)