跳到主要內容

發表文章

關於Agile Software Development

最近鳥毅的twitter多了一位訂閱者,原來是高手 ihower ,看到他寫 採用敏捷方法的軟體開發合約該怎麼簽? ,就想到最近遇到的狀況。 由於前兩年換部門,因此coding的機會少很多,已經不太需要寫code,大部份都在做網管工作。最近前部門接到一個公家機關的案子,主要是整合現有系統,因為是專業領域,所以敝公司從打敗現有的資訊公司得標。 但其實此單位在招標書就寫著不合理的期程,把不甚明確的規格和很短的deadline寫在裏面。前部門的優秀長官也在苦思如何應對,找了一間號稱使用 XP 的優秀資訊公司商討合作可能性。 鳥毅與該資訊公司代表稍微聊了一下,大致上知道他們都是有不短的coding經驗,再找幾個年輕人訓練來做專案。 本來想建議優秀長官也使用 Agile Software Development ,但他表示由於時程太趕,光是訪談->需求分析->coding,就沒多少時間,不太可能像 XP 一個phase一個phase地做,必須採用Waterfall方式。其實優秀長官有點誤會 XP 的意思,快速開發並快速地將需求變化回饋到code裏,才是 XP 所追求的目標。 鳥毅對其他敏捷開發方法論並不瞭解,只知道 XP 的開發方式。不過 XP 所提倡的Test First等等觀念,幾乎都已被廣為使用,唯一被視為難做到的就是Pair Programming。連優秀資訊公司都 錯誤地 表示人的成本太高,所以做不到Pair Programming。事實上,根據 ingramchen 的親身見證,Pair Programming會產生1+1>2的效果,只是對coding的人很累,因為完全不能打混呀... ihower 有寫一系列「實戰敏捷開發 Practices of an Agile Developer 」,裏頭有不少新的Agile觀念與做法,讓在下獲益良多呀! P.S. 在下從國中學寫Apple Basic開始,過了十幾年看到 XP 才赫然有種相見恨晚的感覺,應該是每天埋首coding的人才比較容易喜歡 Agile Software Development 吧?

OpenSolaris吃的RAM

原本早就要玩OpenSolaris 0811版,拖到今天才有時間裝,果然是有RAM盡量用的最好典範,比Vista/Windows 7還猛。 Update:可能我沒說清楚,這是剛開完機,什麼都還沒跑的狀況... 請玩過OpenSolaris和FreeBSD/Linux/OSX/Windows 7/Vista再來刮我的鬍子,謝謝。 最後Update:這篇只是貼個紀念,沒想到一直有人留言,我又沒評論好壞呀! OpenSolaris用很多RAM並不是沒裝好,而是用在Cache,在Cache什麼呢?檔案呀!因為ZFS會在背景偷偷地搬檔案,確保檔案沒有損壞,這是Sun的工程師說的,不是我個人的看法。

Java的bzip2函式庫

前幾年以Java寫Mail Server上log檔的判斷程式,原本是gzip格式,後來FreeBSD改成bzip2,因此必須找個bzip2的library。 找到 bzip2 library from Apache Ant ,去修改原本的程式卻不work,一直說檔案應該是'h'開頭卻得到'B',bzip2檔案格式明明是BZ開頭呀?再深入去找到 這 才知道Ant的這個library只寫了一半,必須自己處理前兩個byte。所以讀的時候要處理成: try { InputStream is = new FileInputStream(infile); is.read(); is.read(); BufferedReader br = new BufferedReader(new InputStreamReader(new CBZip2InputStream(is))); 真是太鳥了呀...

Lazybuntu已支援AMD64版

Lazybuntu 的開發者之一雨蒼昨天留言給我,才知道 Lazybuntu 已經支援AMD64版了,是很想試試,但我該裝的全都裝了呀....等我下次再裝Ubuntu amd64時一定會試試,感謝雨蒼提供的訊息與他的努力。

OpenWebMail中文檔名附件問題

最近鳥事很多,加上放假都去看車,所以沒有更新Blog。(對,我懶:P) OpenWebMail自從2.53版後UTF-8做得相當好,但是在IE卻會發生中文檔名附件無法下載;用Big5介面則無此問題,但這樣實在太鳥了,尤其是敝公司有幾位員工名字有unicode字元,這樣就不能正常顯示,決定動手去硬改完全不懂的Openwebmail Perl程式碼。 把openwebmail-viewatt.pl改掉,在269列前,加上 } elsif ( $ENV{'HTTP_USER_AGENT'}=~/MSIE/ or $ENV{'HTTP_USER_AGENT'}=~/Chrome/ ) { my $filename_encoded = uri_escape($filename); $attheader.=qq|Content-Disposition: attachment; filename="$filename_encoded"\n|; 最前面也要加上 use URI::Escape; 由於小弟手賤,把所有員工的openwebmailrc都改成utf-8,就不管以上hack在big5是否正常了:P (會變亂碼,但仍然可以下載...) Update :做成patch file,如下: --- openwebmail-viewatt.pl 2009-01-06 16:48:24.000000000 +0800 +++ /usr/local/www/cgi-bin/openwebmail/openwebmail-viewatt.pl 2009-01-06 16:14:24.000000000 +0800 @@ -4,6 +4,8 @@ # use vars qw($SCRIPT_DIR); +use URI::Escape; + if ( $0 =~ m!^(\S*)/[\w\d\-\.]+\.pl! ) { local $1; $SCRIPT_DIR=$1 } if ($SCRIPT_DIR eq '' && open(F, '/etc/openwebmail_path.conf')) { $_= ; close(F); if ( $_=~/^(\S*)/...

HTML Tidy Eclipse中文處理

最近有訂閱在下的巴布/Twitter的朋友,應該知道小弟這幾天想把企業內部的IE only網頁改成標準符合W3C語法,並將舊的big5網頁改為utf-8。除了難搞的IE DHTML和標準DOM差很多之外,早期全大寫的html tag在Aptana看到實在很不順眼,還有屬性內容沒有加上"或',就興起找工具來處理的念頭。 最有名的工具當然就是 HTML Tidy ,中文預設輸出成unicode表示法,但還是可以加上 -utf8 的參數強制輸出成 utf-8。 Aptana 1.2.0版之後內建很類似 HTML Tidy Eclipse Plug-in 的HTML Tidy功能,居然也有相同的Bug:設定成utf-8後中文輸出亂碼。 由於 HTML Tidy Eclipse Plug-in 使用 JTidy 這個2001年之後沒動過的project,於是就從這裏下手。(警告:以下hack非常dirty,而且只在utf-8編碼系統有效,只在Ubuntu上成功,Win32無效) 下載 jtidy-04aug2000r7-dev.zip 解開後, 在jtidy-04aug2000r7-dev/src/org/w3c/tidy/Configuration.java第471列,把int result = ASCII; 改成 int result = UTF8; 另外Aptana版的HTML Tidy不能關掉generator訊息,因此我把 Lexer.java第522列的addGenerator(Node root)裏的內容直接改成 return true; 在編輯時會有enum是keyword的錯誤訊息,所以再改Configuration.java第126~129頁的enum變數名稱為enu。 接下來在jtidy-04aug2000r7-dev目錄下輸入 ant 命令就會在build目錄下產生Tidy.jar。 把新做的Tidy.jar覆蓋aptana/plugins/com.aptana.ide.libraries_1.2.1.18697 (隨著版次數字會變)下的Tidy.jar即可。( 這裏 放一份我做的) 在Win32下要改編碼建議用ConvertZ,在Linux當然就用iconv,轉碼為UTF-8後就直接用Aptana編輯,Run HTML Tidy後若...