跳到主要內容

發表文章

目前顯示的是 1月, 2009的文章

關於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*)/