<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9056130247525443142</id><updated>2012-02-12T17:58:56.540+08:00</updated><category term='Architect'/><category term='Map'/><category term='Database'/><category term='Drawing'/><category term='Win32'/><category term='Software'/><category term='Info'/><category term='Book'/><category term='Java'/><category term='Log'/><category term='Movie'/><category term='Programming'/><category term='Funny'/><category term='Thought'/><category term='Job'/><title type='text'>wctang's old blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default?start-index=101&amp;max-results=100'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>128</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7341043414372320826</id><published>2006-12-24T14:41:00.000+08:00</published><updated>2006-12-24T14:42:04.862+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>鬼子来了</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1310518.jpg" title="鬼子来了"&gt;&lt;img src="http://www.douban.com/mpic/s1310518.jpg" class="poster-left" alt="鬼子来了"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1291858/"&gt;鬼子来了&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;雖然這片是黑白片，不過他是 2000 年的片子。不知道是不是因為黑白片的關係，不過在看的過程中我一直想到黑澤民的“七武士”。雖然這仍然是一部抗日的影片，不過敘事手法真的很不一樣，片中並沒有什麼中國方面的士兵，著眼的是鄉民，日軍和翻譯官，雖然日軍後來還是進行了屠村，可是諷刺的是，居然後來還是中國軍官的命令下，由日軍把鄉民給殺了。像是片中前清劊子手，說書的，都讓片子更加豐富。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://yanfeng.org/blog/135"&gt;姜文关于日本的十个为什么&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7341043414372320826?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7341043414372320826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7341043414372320826' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7341043414372320826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7341043414372320826'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/12/blog-post_24.html' title='鬼子来了'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6618005482359030638</id><published>2006-12-22T10:45:00.000+08:00</published><updated>2006-12-22T11:57:22.442+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>雄中一天不讀書</title><content type='html'>&lt;embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-1886673989954461699&amp;amp;hl=en"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wretch.cc/blog/flamingowei&amp;article_id=5208095"&gt;第五屆北京電影學院國際學生影展&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;雖然大家都有很瘋的時候，不過這個班真的是比較誇張，居然把毛主席掛出來了。&lt;br /&gt;&lt;blockquote&gt;台灣良港　首數高雄　巍峨黌舍　是我雄中...&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6618005482359030638?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6618005482359030638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6618005482359030638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6618005482359030638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6618005482359030638'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/12/blog-post_22.html' title='雄中一天不讀書'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-429119954942634054</id><published>2006-12-21T11:09:00.000+08:00</published><updated>2006-12-21T11:27:06.194+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>轉用 Google Reader</title><content type='html'>&lt;div style="float: right;"&gt;&lt;br /&gt;&lt;img src="http://www.bloglines.com/images/blogo225x50.gif" alt="bloglines" /&gt;&lt;br /&gt;&lt;img src="https://www.google.com/reader/static/logo.png" alt="Google Reader" /&gt;&lt;br /&gt;&lt;/div&gt;曾經&lt;a href="http://wctang.blogspot.com/2005/03/bloglines-email-subscriptions.html"&gt;提過&lt;/a&gt;我非常依賴 &lt;a href="http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt;，幾乎成為我所有資訊來源的集中處，但我最近決定要轉向 &lt;a href="http://www.google.com/reader"&gt;Google Reader&lt;/a&gt; 了。&lt;br /&gt;&lt;br /&gt;Bloglines 最近並沒有出什麼大問題 (但也沒什麼大改進)，所以轉換的動力是來自於 Google Reader 最近的大改版了。很久之前在 Google Reader 剛出來時曾經用過，只看了五分鐘就決定那是我用過最爛的 feed reader，是一個為了技術而技術的，又慢又難用的東西。而這一次的改版應該要算是完全另一個東西，至少在功能易用性上已經不輸 Bloglines 了，而且他還支援 Tag 的功能，算是比 Bloglines 再更進一步。不過光只是做到和 Bloglines 差不多還不能把人拉過來，主要還是 Bloglines 閱讀方式的問題。Bloglines 在打開 feeds 時就會把內文全部展開，而且立刻把所有的 title 設定為已讀，這讓人在閱讀時會造成很大的壓力，因為如果你沒讀完就不能把他關掉，不然後面的除非再去設定為未讀，否則也不知道怎麼再去讀了。這個問題實在造成很大的困擾，相信只要有在 Bloglines 上訂閱過像是 digg 或是 delicious 之類的高流量 feeds 就會感受到了。&lt;br /&gt;&lt;br /&gt;而這個問題在 Google Reader 上就不存在，反正就是像 Gmail 一樣，先把全部的 title 和一行 preview 給你看，看過什麼就是看過什麼，沒看完就等有時間再說，沒什麼有意思的就 Mark all as read，覺得有意思的就加上 star 以後再來整理 (不過這個行為我覺得會讓 star 累積到我沒力來整理)，在閱讀上壓力頓時減輕不少。&lt;br /&gt;&lt;br /&gt;不過，現在 Google Reader 還在 Lab 階段，的確有時會有不太穩定的情況，而且速度上感覺是比 Bloglines 稍慢點，但已經非常夠用了。話說回來，我覺得這次 Google Reader 的改版應該已經從 Bloglines 裡搶不少人了，等 Google Reader 再更完善 (現在 Google Reader 居然連 Search 都沒有，讓人難以相信)，我覺得 Bloglines 的地位就不保了。只可惜維持領先這麼久了，沒有一直進步果然很快就會被超越啊。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-429119954942634054?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/429119954942634054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=429119954942634054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/429119954942634054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/429119954942634054'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/12/google-reader.html' title='轉用 Google Reader'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-9034364860771866713</id><published>2006-12-20T10:17:00.000+08:00</published><updated>2006-12-20T10:22:07.672+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>RSS 訂閱行銷</title><content type='html'>&lt;a href="http://www.digitalwall.com/scripts/display.asp?UID=358"&gt;數位之牆-第四代網路行銷（上）RSS 訂閱行銷&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;要分析 RSS 使用者並不是困難的事，只要能提供每個使用者不同的 RSS address 就可以了，也可以讓使用者自行訂閱選擇其 RSS 的內容，這個不是困難的技術，也有看過技術類網站有用過個方法。這都是技術上能解決的問題，不過現成的平台好像沒看到有現成的功能的。&lt;br /&gt;&lt;br /&gt;而且用 RSS 來分析的效果會比用 email 還有效，因為 email client 可以擋住圖片的 link 讓寄 email 的人無法分析使用都是否有打開看到信，但是因為 RSS 一定得連回去抓資料，所以必然可以知道是否仍在訂閱，而使用者不想看的話也只要直接取消訂閱就好，不至於讓人反感。&lt;br /&gt;&lt;br /&gt;上面說的前提是使用會員制的情況，如果是說非會員而想分析行為的話，就連 email 也做不到吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-9034364860771866713?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/9034364860771866713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=9034364860771866713' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/9034364860771866713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/9034364860771866713'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/12/rss.html' title='RSS 訂閱行銷'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7203012758494853845</id><published>2006-12-19T01:06:00.000+08:00</published><updated>2006-12-19T12:37:20.221+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>無敵搞笑的短篇動畫</title><content type='html'>ギャグマンガ日和 無敵搞笑的短篇動畫&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=eZuu2XJH3yU"&gt;ギャグマンガ日和 第01話 シール／シール2 (貼紙)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=KmYrtnnsWJA"&gt;ギャグマンガ日和 第02話 煬帝怒る 国書編 (煬帝怒了前篇國書篇)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=zpQZBpvkj0o"&gt;ギャグマンガ日和 第03話 煬帝怒る 洛陽編 (煬帝怒了後篇洛陽篇)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=rf81iyCPtMI"&gt;ギャグマンガ日和 第04話 終末 (世界末日)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=jh4jrh_5nfE"&gt;ギャグマンガ日和 第05話 奥の細道 エピソードⅠ (奧之細道)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=UUzzvFD8oCg"&gt;ギャグマンガ日和 第06話 ハリスインパクト ビックリ大作戦 (哈里斯衝擊之大驚奇大作戰)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=SgUGURaboAs"&gt;ギャグマンガ日和 第07話 ハリスインパクト 乗り込み編 (哈里斯衝擊之大驚奇大進擊)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=Nm0H7ejT1ZE"&gt;ギャグマンガ日和 第08話 どっこいおむすび君／光速ライダーマッハ涼 (再見了 御飯糰君/光速騎士馬赫涼)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=oIGYaEi0l-s"&gt;ギャグマンガ日和 第09話 魔法少女誕生&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=SPmk2ajZe7k"&gt;ギャグマンガ日和 第10話 西遊記～旅の終わり～ (西遊記-旅途的終點)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=HMk5ZYbLS08"&gt;ギャグマンガ日和 第11話 死んだ私は太陽にほえる／アンラッキーフレンズ (死去的我向太陽怒吼 &amp; 我不幸的朋友們)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=en_hB3RV7-8"&gt;ギャグマンガ日和 第12話 名探偵っスか！うさみちゃん／名探偵だもの！うさみちゃん&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=HW2iux-_Flo"&gt;ギャグマンガ日和2 第01話 名探偵だぞえ！うさみちゃん (名偵探的幹活！兔美妹妹)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=wZd2VAIHgPo"&gt;ギャグマンガ日和2 第02話 来ないよ！家庭教師 (都不來！家庭教師)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=xA2Nbg2dkPE"&gt;ギャグマンガ日和2 第03話 聖徳太子の、楽しい木造建築 (聖德太子的快樂木造建築)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=7uEj-qjVZ4A"&gt;ギャグマンガ日和2 第04話 ネコちゃんの腹筋／５つ子大家族 (貓咪的腹肌/五胞胎大家族)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=k8OtU1BXopc"&gt;ギャグマンガ日和2 第05話 がんばれ浦島太郎 (加油 浦島太郎)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=aClDbbeaU1Q"&gt;ギャグマンガ日和2 第06話 ソードマスターヤマト (劍聖大和)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=s4XCWnq97Kg"&gt;ギャグマンガ日和2 第07話 五月雨をあつめて早し最上川&lt;/a&gt;&lt;br /&gt;ギャグマンガ日和2 第08話 明男／さよならおじいちゃん&lt;br /&gt;ギャグマンガ日和2 第09話 眼帯－真桃太郎－&lt;br /&gt;ギャグマンガ日和2 第10話 マンガ専門学校伝説 ハリケーン準&lt;br /&gt;ギャグマンガ日和2 第11話 黒登山&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=x6c23ACd-EA"&gt;ギャグマンガ日和2 第12話 ラヴ江 (LOVE江)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7203012758494853845?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7203012758494853845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7203012758494853845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7203012758494853845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7203012758494853845'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/12/blog-post_19.html' title='無敵搞笑的短篇動畫'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8304179128654257456</id><published>2006-12-12T20:28:00.000+08:00</published><updated>2006-12-12T20:30:38.707+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java SE 6 release</title><content type='html'>有沒有這麼快的？我 JSE 5 還沒用啊啊啊...&lt;br /&gt;&lt;br /&gt;看一下&lt;a href="http://java.sun.com/javase/6/features.jsp"&gt;新功能&lt;/a&gt;，最引人注意的應該是 Scripting Language Support 了，這個是由 Rhine 搬過來的，不僅僅是提供一個方便使用 script 的基礎，由 script 可以發展出更多自定 sub script 的做法 (例如 actionscript) 應該也會在 Java 上更普及吧。在一個商業系統的主要語言做入這個功能，真是讓人有很大的想像空間啊。&lt;br /&gt;&lt;br /&gt;Security API 把 CAPI 也加進來了，從此之後 Java 上 P11/CAPI 都可以用了，對像 Smart Card 之類的應用而言應該是越來越簡單了吧，不過這也代表之前所做的把 Java 連接至 P11/CAPI 的工夫大概就失去優勢了吧。 Web Services 也加上 XML digital signature services for secure web services ，嗯嗯，好像還把 Apache Derby 這個 Java database 也加進去了。好吧，在這個這麼強大的平台上，一般的系統廠好像就只剩下網頁好寫了吧…&lt;br /&gt;&lt;br /&gt;這裡是有人列的 &lt;a href="http://blogs.sun.com/dannycoward/entry/java_se_6_top_ten"&gt;Top 10 reason&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8304179128654257456?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8304179128654257456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8304179128654257456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8304179128654257456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8304179128654257456'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/12/java-se-6-release.html' title='Java SE 6 release'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7068512296541210524</id><published>2006-12-11T12:00:00.000+08:00</published><updated>2006-12-19T12:37:42.449+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>MS Paint God</title><content type='html'>歹年冬，厚瘋人...&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;embed src="http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=1728017&amp;amp;autoplay=false&amp;amp" quality="best" style="width: 473px; height: 345px;" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;這個故事告訴我們，如果有人說他用組語硬幹出個什麼大東西出來，不要立刻不相信他，說不定他馬上就把 code 給你看...&lt;br /&gt;&lt;br /&gt;(因為不想自動播放，請點一下空白處)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7068512296541210524?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7068512296541210524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7068512296541210524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7068512296541210524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7068512296541210524'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/12/ms-paint-god.html' title='MS Paint God'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5453389169973769671</id><published>2006-12-09T21:18:00.000+08:00</published><updated>2006-12-19T12:39:05.688+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Log'/><title type='text'>Blog 搬家</title><content type='html'>最近因為&lt;a href="http://blog.xdite.net/?p=221"&gt;天空樂多事件&lt;/a&gt;，一堆人在搬 blog。雖然這和我無關，但我本來用 Oddmuse 來架站的原因是因為可以同時用 Blog 和 Wiki 系統，但老實說 Wiki 的部分實在是少用的多，而自己架站實在是比較麻煩，而且架在自己機器上也是要一直管理很麻煩，還是找個方便的系統架 blog 好了，所以就順便跟著大家找找看什麼系統比較好。&lt;br /&gt;現在除了各大 BSP 外，比較多人用的就是 blogger (blogspot) 和 wordpress 兩個系統，雖然 wordpress 好像比較近來比較多人在用，但 blogger 有 ftp 發佈的功能，而且 blogger beta 的功能我看起來也夠了，再來 blogger 的後台應該沒人比他更大了。但缺點就是要放在 blogspot 上，網址就得改了 (除非是要租主機或是直接用自己機器，但這又比較麻煩了)。所以，目前就是把 blog 搬到 &lt;a href="http://wctang.blogspot.com"&gt;http://wctang.blogspot.com&lt;/a&gt; 了，之前的文章也大部分都搬過去了。而 RSS 就還是 &lt;a href="http://feeds.feedburner.com/wctang"&gt;http://feeds.feedburner.com/wctang&lt;/a&gt; 。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5453389169973769671?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5453389169973769671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5453389169973769671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5453389169973769671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5453389169973769671'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/12/blog.html' title='Blog 搬家'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-1358729401895718097</id><published>2006-12-09T19:49:00.000+08:00</published><updated>2006-12-19T12:32:48.799+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>熱血和夢想</title><content type='html'>不怕達不到夢想，只怕沒有夢想。&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/Wt8OgnuvR-M" width="425" height="350" type="application/x-shockwave-flash" wmode="transparent"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;有什麼想做的事嗎？我好像一直以來有什麼想做的就直接去做了，不過可能是太懶了，這種事不會太多也不會太困難，通常都是學個什麼東西之類的。到後來覺得，好像自己其實就是個沒什麼目標的人。&lt;br /&gt;&lt;br /&gt;把飯碗放下衝向夢想是很令人感動，但如果連向哪裡衝都不知道...&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://blog.roodo.com/rasheed/archives/2555755.html"&gt;就算是中年，還是要有熱血啊!&lt;/a&gt;]&lt;br /&gt;[&lt;a href="http://blog.pixnet.net/cwyuni/post/1256946"&gt;熱血這東西&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-1358729401895718097?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/1358729401895718097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=1358729401895718097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1358729401895718097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1358729401895718097'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/12/blog-post.html' title='熱血和夢想'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7823852025741443584</id><published>2006-10-02T19:52:00.000+08:00</published><updated>2006-12-09T19:48:31.717+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>Old Boy</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1317816.jpg" title="Old Boy"&gt;&lt;img src="http://www.douban.com/mpic/s1317816.jpg" class="poster-left" alt="Old Boy"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1308865/"&gt;Old Boy (原罪犯)&lt;/a&gt;&lt;br /&gt;又是在回高雄的車上看的片子。之前已經看過朴贊郁的&lt;a href="http://www.douban.com/subject/1412579/"&gt;친절한 금자씨 (親切的金子)&lt;/a&gt;，這部原罪犯是朴贊郁另一部以復仇為主題的片子。老實說，我不知道要怎麼形容這兩部片子，不過的確都拍得很有力道。雖然片子本是不是恐怖驚悚，不過裡面的幾個畫面真是有給他可怕到(雖然最後那一下也很猛，不過一定是假的，但那個生吞章魚實在是太真了，有噁心到…)。&lt;br /&gt;&lt;br /&gt;不過，還是覺得最後男主角的反應有點出乎意料，是啦，電影的前題不要太去質疑，就像我就不想知道為什麼看了錄影帶就會有女鬼從電視跑出來，但以一般人來看，這種事每天都在社會版看到，為了這種事來這麼一下真是讓人有點錯愕。不過，或許這就是為什麼是 Old Boy，這是一個男孩的故事，雖然他很猛可以吞章魚挖牙齒，不過他還是一個被關了 15 年的男孩子，不能接受自己做了這種不能接受的事，不能接受到不顧一切也要把事情掩蓋起來。或許從這個角度再來看一次，就更可以看得出來男主角的心情吧…&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.gameimp.com/archives/2006/01/05/627/"&gt;OX又怎樣？&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7823852025741443584?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7823852025741443584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7823852025741443584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7823852025741443584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7823852025741443584'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/10/old-boy-image-douban1412579s1422892-old.html' title='Old Boy'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5422312100776725953</id><published>2006-10-01T19:51:00.000+08:00</published><updated>2006-12-19T12:38:00.677+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>Kuso Wiki</title><content type='html'>雖然 wiki 比起 blog 比較少受到大家討論（有的話也主要集中在 wikipedia），不過仍然有一些有別於 wikipedia 這種大部頭的應用：&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://zh.uncyclopedia.info"&gt;偽基百科&lt;/a&gt;&lt;br /&gt;: 要惡搞就要大家一起來搞。雖然很明顯都是最近才開始發展的，不過反正惡搞嘛，就是要與時俱進，隨著時事要發展出新的惡搞。&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://youkai.wikia.com"&gt;妖怪百科&lt;br /&gt;&lt;/a&gt;: 由&lt;a href="http://guai.meome.net/blog/"&gt;妖怪煉成陣&lt;/a&gt;所主持的 wiki 。雖然很多內容也不算豐富，不過也只是剛開始而已，如果能吸引一些有共同興趣的人的話，相信也會越來越豐富的。&lt;br /&gt;&lt;br /&gt;好久沒有關心 &lt;a href="http://www.oddmuse.org"&gt;Oddmuse&lt;/a&gt; 的進展了，現在只是有時想到去更新一下 script 而已。不過我也不擔心，反正如果有人還有興趣搞這東西的話，自然就可以去更新之前的翻譯了，如果沒人有興趣，那也就不需要更新了 :)。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5422312100776725953?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5422312100776725953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5422312100776725953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5422312100776725953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5422312100776725953'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/10/kuso-wiki.html' title='Kuso Wiki'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5440039022817179116</id><published>2006-09-18T19:49:00.000+08:00</published><updated>2007-02-19T08:51:13.885+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>teddy/smoothteddy</title><content type='html'>&lt;a href="http://www-ui.is.s.u-tokyo.ac.jp/~takeo/teddy/teddy.htm"&gt;http://www-ui.is.s.u-tokyo.ac.jp/~takeo/teddy/teddy.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www-ui.is.s.u-tokyo.ac.jp/~takeo/java/smoothteddy/index.html"&gt;http://www-ui.is.s.u-tokyo.ac.jp/~takeo/java/smoothteddy/index.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lazyrussian.com/2006/09/15/freaky-friday-episode-3-teddy/"&gt;http://lazyrussian.com/2006/09/15/freaky-friday-episode-3-teddy/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;div align="center"&gt;&lt;embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=5053834549541822378"&gt; &lt;/embed&gt;&lt;/div&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;真是有意思，雖然實際上用起來不是很好控制，但還是玩得很高興 :)&lt;br /&gt;&lt;br /&gt;ps: 我只是看看熱鬧，要看&lt;a href="http://drakeguan.org/node/258"&gt;門道&lt;/a&gt;要找&lt;a href="http://mmdays.wordpress.com/2007/02/12/%e6%97%a5%e6%9c%acui%e4%b9%8b%e7%a5%9e-takeo-igarashi/"&gt;內行人&lt;/a&gt; :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5440039022817179116?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5440039022817179116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5440039022817179116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5440039022817179116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5440039022817179116'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/09/teddysmoothteddy.html' title='teddy/smoothteddy'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5215706694096976644</id><published>2006-09-16T19:48:00.000+08:00</published><updated>2006-12-19T12:39:26.425+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>搬家</title><content type='html'>搬家真的是很累人的事。雖然不是第一次搬地方，不過先前搬的經驗都是在很充足的時間，而且也不用去找房子。前一陣子搬就不一樣了，不只要去找房子，還要在一天之內把絕大多數的東西都搬完。雖然有找自助搬家的來，而且很新竹到桃園也不是太遠，但自從大學以來就沒把東西清回家，所以身邊的東西真的是超多的，尤其是書，也不是說我書很多，不過七八年沒把書運回家，免不了一堆八輩子都用不到的書還留在身邊，自然搬過來也是累死人了。&lt;br /&gt;&lt;br /&gt;新搬過來的房子是眷村改建的新社區，大概也只有在這種地方，社區辦的活動是請國劇團來演國劇，辦國劇的歌唱比賽，也只有這種地方會記得辦九三軍人節的 KTV 活動了。新是絕對不假的，好幾棟樓都是新完工，房東抽到了一間馬上就改一改把幾個房間都租出去，所以我是第一個使用這個房間的人了。雖然是新房子，還好也沒什麼問題，而且新房子有幾個好處，首先就是沒什麼螞蟻蟑螂的，不管吃剩的東西再怎麼亂放，也頂多是發霉，螞蟻蟑螂大概要個幾年的時間才入侵吧。再來就是現在新的大樓都有拉光纖，所以可以申請 FTTB 。不過老實說，工作變忙，也沒時間好好享用網路了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5215706694096976644?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5215706694096976644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5215706694096976644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5215706694096976644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5215706694096976644'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/09/blog-post.html' title='搬家'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8631057276538035954</id><published>2006-09-06T19:46:00.000+08:00</published><updated>2006-12-19T12:36:49.611+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Visual Studio 2005 - Find All References</title><content type='html'>Visual Studio 2005 比起 2003 用起來感覺好得多，雖然預設的快速鍵很怪，但只要把常用的自己定義就可以了。除了介面上的感覺外，一些編程的輔助工具也很不錯，像是 Code Definition Window 就很好，還有 Go to Definition, Go to Declaration, Find All References 等功能也好用得多，雖然比起 java 的 ide 還是有差距，不過語言上的差別是很難突破，只要能做到 highlight symbol 和 rename，就可以讓爽度大幅提升。&lt;br /&gt;&lt;br /&gt;但今天發現 "Find All References" 的一個大問題，詳請可以看 &lt;a href="http://www.eggheadcafe.com/aspnet_answers/vcide_general/Apr2006/post26433961.asp"&gt;IntelliNonsense - Find all references&lt;/a&gt;，簡單說就是 Find all references 會找不到 extern 方式的 reference ，這個 bug 就足以讓這個功能癈了，有這種 bug 就完全不能相信找出來的結果了。還好這個問題&lt;a href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=106473"&gt;己經修正了&lt;/a&gt;，應該在出 sp 時就會修正了吧。&lt;br /&gt;&lt;br /&gt;BTW, &lt;a href="http://www.wholetomato.com/"&gt;Visual Assist X&lt;/a&gt; 的 beta 版本也有同樣的功能，但沒有同樣的問題。Visual Assist X 居然有 rename 的功能，而且看來也將會有 &lt;a href="http://www.wholetomato.com/products/features/findReferences.html"&gt;highlight symbol&lt;/a&gt; 的功能，果然不愧為最強的 Visual Studio add-ins。&lt;br /&gt;&lt;br /&gt;BTW2, 原本 &lt;a href="http://msdn.microsoft.com/vstudio/express/"&gt;Visual Studio Express Edition&lt;/a&gt; 是不允許用 Add-in 的啊。其實也是有道理的，不然誰還要用要錢的版本呢。(雖然我是用公司的，也算是免錢啦…)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8631057276538035954?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8631057276538035954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8631057276538035954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8631057276538035954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8631057276538035954'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/09/visual-studio-2005-find-all-references.html' title='Visual Studio 2005 - Find All References'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7044353362628703918</id><published>2006-08-30T19:45:00.000+08:00</published><updated>2006-12-19T12:39:59.155+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><category scheme='http://www.blogger.com/atom/ns#' term='Job'/><title type='text'>換工作</title><content type='html'>嗯，上一篇都是快三個月前的事了。&lt;br /&gt;&lt;br /&gt;這段時間最重要的改變，就是換了工作，因為才剛進公司還搞不清楚狀況，所以應該會一段時間沒有酸公司的話了。換個工作真累，從一個己經熟悉的工作換到一個完全不了解的工作，老實說有時也會想，為什麼要做這麼累人的決定，還要面試，還要準備離職，還要搬家，還要重新學習一大塊東西。不過學新東西也是快樂的，只要不要太大的壓力堆在身上就好@@。&lt;br /&gt;&lt;br /&gt;新公司除了做的東西不同之外，另一個重要的不同點就是餐廳。有餐廳的公司真是不錯，而且有員工補助就更不錯了。雖然這個理由很小家子氣，不過對我而言則是省了不少麻煩，而且晚餐吃公司的，總是會不自覺的多待一會兒，雖然不見得是個健康的作息，但對公司應該也不算吃虧吧。&lt;br /&gt;&lt;br /&gt;想來我這幾年好像一直在換東西做，從研究所搞量子計算(或說被量子計算搞…)，學 Linux ，學 Java，學 PKI，到現在又是另一個東西了，好像我就是這種一頭熱的人，每個東西用力搞一陣子就會被我冷落，更早之前像是畫畫啦，還有前一陣子在玩紙模，總是因為一個新東西就會把舊的東西放下，雖然說學東西的時候我都是很認真的，雖然說做過的東西總是變成我的一部分，但是我的個性果然就不會成為某某達人吧。咦，這麼說來，寫 blog 這件事可能也會有同樣下場，畢竟最近更新的間隔越來越久了 :) 儘量不讓這種事發生吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7044353362628703918?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7044353362628703918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7044353362628703918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7044353362628703918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7044353362628703918'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/08/blog-post.html' title='換工作'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8907793354974533144</id><published>2006-05-22T19:44:00.000+08:00</published><updated>2006-12-19T12:40:33.477+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><category scheme='http://www.blogger.com/atom/ns#' term='Architect'/><category scheme='http://www.blogger.com/atom/ns#' term='Job'/><title type='text'>資深軟體工程師</title><content type='html'>在公司的會議上聽見這樣一段話：&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;''台灣的軟體市場太小，以公司的角度而言，以二、三倍的薪水去養一位資深軟體工程師是不划算的，畢竟要做的事並沒有這麼困難，一個月四萬多的工程師就很好用了，而資深軟體工程師的價值在這種情況下是難以顯現的。所以也難怪公司會以管理職為貴，而工程師會想轉型成管理職…''&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;希望我對這段話的理解沒有太大的偏差，至少我聽起來是這樣的意思。其實這段話並沒有很誇張，應該也反映了很多人的觀念，畢竟以管理職為尊是&lt;a href="http://wctang.blogspot.com/2006/03/blog-post.html"&gt;常聽到的想法&lt;/a&gt;。不過，在軟體開發上認為三個臭皮匠勝過一個諸葛亮，基本上是將軟體開發視為是生產線，是人多好辦事，是個勞力密集工業，而這種觀念也並不是太奇怪的理念，畢竟軟體黑手，軟體工廠也不是第一天聽到，甚至像 CMMI 之類的流程這麼流行也一定程度代表這種想法。觀念也沒有對錯，只是有怎樣的觀念就會得到怎麼的環境，留下怎樣的人才。&lt;br /&gt;&lt;br /&gt;或許人一天工作八小時，如果三個人就工作二十四小時，就算經驗有差別，但勤能補拙，多花點時間總是能補回來了，而且人多工時多，在管理上會比較好用。先假設這個想法是對的，但一個人的成本不只是薪水而已，尤其以本公司而言，薪水佔成本不到一半，所以這個論點應該要再仔細計算一下，多一個人應該不只是多花一分薪水。而且資深人才所能發揮的力量是否能到一般人才的數倍，或是能到數十倍，也是這個論點是否成立的關鍵因素。&lt;br /&gt;&lt;br /&gt;觀念沒有對錯，只是怎樣的觀念就會造就怎樣的環境，留下怎樣的人才。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8907793354974533144?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8907793354974533144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8907793354974533144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8907793354974533144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8907793354974533144'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/05/blog-post_22.html' title='資深軟體工程師'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7914128439124230708</id><published>2006-05-08T19:43:00.000+08:00</published><updated>2006-12-19T12:41:05.680+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architect'/><category scheme='http://www.blogger.com/atom/ns#' term='Job'/><title type='text'>四十工時神話</title><content type='html'>''四十工時'' 是 Extreme Programming 的一個重要的 rule，是不是精確的四十並不重要，因為有些人只能每週專注 35 小時，有些人可以 45 小時，但沒人可以長期每週專注 60 小時以上的。所以管理者不可以迷信長工時等於高效率。這點在 Peopleware 也有生動的敘述，你可以叫你的組員為了大我而暫時犧牲小我，但組員終會聽到身體和家庭的呼喚，而送出辭呈的。&lt;br /&gt;&lt;br /&gt;雖然我們公司完全沒有在推行 XP，但四十工時這點卻做得非常好。每個人每週必定都有也只有四十工時，不多不少，而且這個四十是每天八個小時，也是不多不少剛剛好。而大家也很安分的把每天和每個星期的工作內容記錄在工作週報上，當然也就是每天八小時，每週四十小時。要做到這點，必然要歸功於管理階層很恰當的分配每個人每天和每週每月的工作，視每個人能力的不同分配適量的工作，讓大家每天做八個小時，每週四十個小時，也不會有沒事做而打混的問題，也不會有事太多而加班的問題。大家因為四十工時的原因，所以每天上班都精神飽滿，也不會打瞌睡，也有時間從事休閒活動，和家人的關係也很好，也不會利用上班的時候打逼或是看A圖。對了，還有一個意外獲得的好處，因為每個人每週都是四十個小時，所以公司管錢的人發現意外的好計算，而且週報系統更是提供了豐富的成本計算和會計的功能，使得週報系統的價值倍受肯定，至於其他有關專案管理功能的缺乏也就不算是大問題了。這麼好的週報系統，值得每個人仔細的填寫，至於有人忘了填寫週報的那點小小的懲罰也就是必要之惡了。.....&lt;br /&gt;&lt;br /&gt;好了，不酸了。如果蒙著眼規定這種工時的計算法，那用這種工時計算出來的成本是要欺騙誰？如果無視於有些員工忙得加班做不完，有些員工閒著沒事做，而每個人都是每天八小時，每週四十工時，那用這種工時要如果來調查每個員工的 load ，如何協助專案管理？如果填寫工時要求要以小時為單位，卻沒有一個項目是所謂的 [&lt;a href="http://blog.csdn.net/gigix/archive/2006/01/14/579147.aspx"&gt;On Beach&lt;/a&gt;]，那這樣的工時怎麼可能是真實的？如果只是要給會計要計算成本，那寫個小程式把大家打混的工時去掉，再等比例換算就好了，這種程式一下子就寫出來了。工時就是要寫真的，根據其算出的數據才是有意義的，否則只是自欺欺人而已。&lt;br /&gt;&lt;br /&gt;ref: [&lt;a href="http://drake.csie.org/node/138"&gt;海灘上的思想&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7914128439124230708?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7914128439124230708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7914128439124230708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7914128439124230708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7914128439124230708'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/05/blog-post.html' title='四十工時神話'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5720827113038527239</id><published>2006-05-02T19:42:00.000+08:00</published><updated>2006-12-07T19:43:10.945+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>JAVA：你選的是一個夢還是真正效益？</title><content type='html'>[&lt;a href="http://www.taiwan.cnet.com/enterprise/technology/0,2000062852,20105943,00.htm"&gt;JAVA：你選的是一個夢還是真正效益？&lt;/a&gt;]&lt;br /&gt;&lt;blockquote&gt;是不是採用了JAVA的程式語言來進行程式開發，所開發出來的程式就真的可以實踐OO（物件導向程式設計），並且享有物件導向程式設計的優點呢？&lt;br /&gt;&lt;br /&gt;當我們選擇了一個語言，應該要問的是，我們是不是真的很了解這一個語言？我們是不是真的很清楚自己為了什麼選了這樣的語言來進行開發？有沒有發揮它的長處？&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;全然癈話的結論。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;只知道在JAVA嚴謹的定義下，光是物件、變數、方法（method）的宣告就搞得大家頭昏腦漲的。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;連基本語法都會被搞得頭昏腦漲，那還需要談到重用性、架構嗎？&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;物件導向（OO）是許多軟體設計及開發者的理想，......，在眾多的優點中，最引人入勝地是利用繼承、多型…等特性，讓已開發好的系統物件可以很彈性的被修改，並且被重複使用（reuse），以減少重複開發的成本。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;現在 OO 的發展重點早已不是在談論繼承，多型之類的語法特性，連單純 Design Pattern 也也難以說明設計軟體要考慮的問題。如果這些 OO 特性是重點，那為什麼不是 C++ 紅呢？為什麼不是 Delphi 紅呢？光是 garbage collection 這項特性就比哪個語言比較 OO 來得重要，更別提元件化開發，可測試性等等。&lt;br /&gt;&lt;br /&gt;不是說 OO 不重要，而是說 OO 已經是基本了，光說誰比較 OO 是沒太大意義的，即然文章是談論語言，談論編程，那就談點更深入的吧。&lt;br /&gt;&lt;br /&gt;(咦，我好像越來越憤世嫉俗了@@)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5720827113038527239?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5720827113038527239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5720827113038527239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5720827113038527239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5720827113038527239'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/05/java.html' title='JAVA：你選的是一個夢還是真正效益？'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4705091493451872881</id><published>2006-04-30T19:40:00.000+08:00</published><updated>2006-12-19T12:41:37.785+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>Peopleware (天才當家)</title><content type='html'>&lt;a href="http://findbook.tw/b/ISBN/9867964330"&gt;ISBN 9867964330&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;不知道要算我資訊缺乏還是書名實在下得太爛了，我在[[2005-11-26_Surfing|這篇]]提到 Peopleware 沒有翻譯，其實是有的，而且蠻久以前就出來了。說實在的，這種書名在現在茫茫管理書海中是誰也不會注意到的，而且也沒有翻譯出 Hardware/Software/Peopleware 這種趣味來。&lt;br /&gt;&lt;br /&gt;且不管書名如何，這本書真是不錯。還是一句話，''不管什麼問題，都是人的問題''。&lt;br /&gt;我想這本書不該被歸在管理書籍中，因為大概沒幾個管理人員會心悅誠服書中的說法，這比較像是一群工程師聚在一起在抱怨上層時所提出的夢想 :) 所以會看這種書的人大概就是 programmer ，用來心有戚戚焉的，高層沒時間看這種聞書，他們忙著看報紙和算錢呢 :)&lt;br /&gt;&lt;br /&gt;書中花了大量的篇幅討論工作環境，這個是一般管理書籍不會涉及的問題。噪音大家應該都感受得到，也很明顯，但每個人位置的坐法也很重要，我覺得每個人一個框框，然後大家排排坐是個很不好的方式，或許很公平，或許好抽換，好打掃，好巡邏，好...，不過，不好凝聚團隊。或許上班族都說最好不要在辨公室搞小團體，但寫程式就是要用小團體來搞，而且越凝結，越麻吉越好，沒可能整個公司(部門)是一個大團隊，這樣就是沒有團隊，也沒可能隨便找幾個人來就說是個團體，這樣也是沒有團隊。要麻吉的第一步，就是要吃在一起，混在一起，Game 在一起，debug 在一起，看片子在一起，所以要''坐在一起''。而這就是管理人員的惡夢，小團體對工作的分配很麻煩，對於位子的排定很麻煩，對於人員的招募很麻煩，反正就是在管理上很麻煩。隨意拆組團隊很方便管理，但對團體本身是致命的，而管理者通常只想到要如何管理好，反正隱含的效率殺傷力也不會出現在數字上 (只是不會增加而已)。&lt;br /&gt;&lt;br /&gt;當初公司在搬家時，說是要讓我們自己來規劃，心裡還覺得蠻不錯的，可以畫出一些區塊來，結果所謂的自己來規劃是一排一排一格一格都畫好了，大家自己選位子，然後辦個部門間的公司美化大賽，每個部門發個幾千塊意思意思。如果開一家軟體公司和開一家貿易公司沒有差別的話，那開軟體公司的就沒資格優惠減稅，沒資格自稱高科技。如果寫程式和寫公文沒有差別的話，那寫程式就沒資格談創意，沒資格賺大錢 :)&lt;br /&gt;&lt;br /&gt;本文就是個標準的示範，這本書只適合工程師拿來發牢騷用的，管理階層來看只是浪費你寶貴的時間 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4705091493451872881?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4705091493451872881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4705091493451872881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4705091493451872881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4705091493451872881'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/peopleware.html' title='Peopleware (天才當家)'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-3351479093365755976</id><published>2006-04-28T19:40:00.000+08:00</published><updated>2006-12-19T12:41:57.717+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>Google 在台大</title><content type='html'>雖然這已經不是新聞了，不過在看完李開復在台大的演講後 (清大交大也有去，好像工研院也有)：&lt;br /&gt;&lt;br /&gt;我相信，google 在台灣徵才會是個業界的大地震，先不論挖角的吸引力，至少會吸引大量的天才學生進入 google ，而不是到硬體廠寫 driver。&lt;br /&gt;&lt;br /&gt;google 真是可怕，用著可愛的笑臉說著純潔但可怕的話。有能力的人，又深以為自己做的事是正義的，這種人最可怕。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-3351479093365755976?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/3351479093365755976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=3351479093365755976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3351479093365755976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3351479093365755976'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/google.html' title='Google 在台大'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8010202397050494488</id><published>2006-04-25T19:28:00.000+08:00</published><updated>2006-12-09T03:14:03.397+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>The Three Burials of Melquiades Estrada</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1459243.jpg" title="The Three Burials of Melquiades Estrada"&gt;&lt;img src="http://www.douban.com/mpic/s1459243.jpg" class="poster-left" alt="The Three Burials of Melquiades Estrada"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1441778/"&gt;The Three Burials of Melquiades Estrada (舊地正法)&lt;/a&gt;&lt;br /&gt;很特別的片子，一種黑色幽默的感覺。或許劇中人物的行為太荒謬，反而不會去怪罪他們的行為。做錯事的人要認錯，要真心地認錯，可能是要經歷痛苦的贖罪才能真心悔過吧。雖然聽起來很嚴肅，但故事的說法很沉穩（不是沉悶），片子不搞笑但也不讓人沈重。&lt;br /&gt;&lt;br /&gt;照例，中文片名仍然很怪，雖然也不能說有什麼不妥，但就是和片子給人的感覺八竿子打不著(中文片名感覺就像什麼警匪英雄片)。或許我們已經習慣電影的名字要是個簡單有力的詞，寧可取個諧音有要找個有力的詞(布蘭妮要怎樣...)，是不是貼合劇情可能是最不重要的吧。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1312691.jpg" title="四月の物語"&gt;&lt;img src="http://www.douban.com/mpic/s1312691.jpg" class="poster-right" alt="四月の物語"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1292371/"&gt;四月の物語&lt;/a&gt;&lt;br /&gt;小品電影。&lt;br /&gt;&lt;br /&gt;或許是個純純的愛的故事，不過…&lt;br /&gt;&lt;br /&gt;那位學長感覺怪怪的，像是故意裝個樣子騙學妹的…&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1481011.jpg" title="十七歲的天空"&gt;&lt;img src="http://www.douban.com/mpic/s1481011.jpg" class="poster-left" alt="十七歲的天空"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1292339/"&gt;十七歲的天空&lt;/a&gt;&lt;br /&gt;表現得太刻意了，感覺大部分都是為搞笑而搞笑，但因為太刻意反而讓人笑不出來。或許演員很多是新人，表現得刻意比較能讓人看不出演技上的不足，但大部分的劇情都用刻意的方式推進就實在讓人很難笑了。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1459180.jpg" title="霍元甲"&gt;&lt;img src="http://www.douban.com/mpic/s1459180.jpg" class="poster-right" alt="霍元甲"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1441602/"&gt;霍元甲&lt;/a&gt;&lt;br /&gt;效果是不錯啦，但實在是太弱智了點。最後還要來個大家高喊自強不息，至少我是蠻想笑的啦@@&lt;br /&gt;題外話，中村獅童蠻適合劇中的角色的，叫他去演&lt;a href="http://wctang.blogspot.com/2005/09/blog-post_11.html"&gt;愛情文藝片&lt;/a&gt;實在很怪@@。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8010202397050494488?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8010202397050494488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8010202397050494488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8010202397050494488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8010202397050494488'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/three-burials-of-melquiades-estrada.html' title='The Three Burials of Melquiades Estrada'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-2195517244878396932</id><published>2006-04-24T17:24:00.000+08:00</published><updated>2006-12-19T12:42:35.002+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>google calendar</title><content type='html'>已經出來一陣子了，來談一談感想吧。&lt;br /&gt;&lt;br /&gt;雖然這東西出來給人的震憾不如 gmail, gmap 等，不過我覺得對於能接受使用 web app 的人來說，這會是僅次於 gmail 的重要服務。想想 outlook 的幾個功能，郵件有 gmail ，行事曆有 gcalendar，討論有 google newsgroup。我想一般的小公司就不用去買 outlook 了，反正 google 都給我們更好的選擇了。(當然，這種事還有管理上的因素，反正我也是說說罷了。)&lt;br /&gt;&lt;br /&gt;其實網路上的行事曆實在也有多了，除了老一輩的 yahoo 外，前一陣子結合 ajax 的行事曆服務也一下子冒出很多，像是 30box, Trumba等，不過 google calendar 看得出著重點不同，或許在一般功能上大家都差不多，但 google 著重的地方就是在社會性上，強調行事曆的分享，用 gmail 傳送邀請函，公開約會讓方便他人參加，&lt;a href="http://code.google.com/apis/gdata/calendar.html"&gt;公開 API&lt;/a&gt; 等等，對 Google 其他服務的重度使用者應該是蠻有利的。而使用標準 iCal 格式，就把原本多為 Apple 使用的行事曆格式讓大家更方便使用，相信以後 iCal 會有更廣泛的使用，像 [&lt;a href="http://www.google.com/calendar/feeds/9ocmfg4uetmte16q0iac7rdoj0@group.calendar.google.com/public/basic"&gt;上映電影&lt;/a&gt;] 和 [&lt;a href="http://www.google.com/calendar/feeds/7k8lu0h2abplp2osjfcuebc244@group.calendar.google.com/public/basic"&gt;劇場資訊&lt;/a&gt;] 就蠻有用的。&lt;br /&gt;&lt;br /&gt;但目前看來，google calendar 和 gmail 整合性度應該要可以更好的，雖然有用 [&lt;a href="http://blog.outer-court.com/archive/2006-04-14-n65.html"&gt;Greasemonkey&lt;/a&gt;] 來做某種程度的整合，但應該要 google 自己來做比較爽。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-2195517244878396932?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/2195517244878396932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=2195517244878396932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2195517244878396932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2195517244878396932'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/google-calendar.html' title='google calendar'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5433558257507929029</id><published>2006-04-15T17:22:00.000+08:00</published><updated>2006-12-19T12:42:50.386+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>軟體開發真是件困難的事啊</title><content type='html'>開發軟體的人不斷的抽象化，信仰著抽象化可以讓我們與底層隔離，信仰著抽象化可以讓我們平順地切換平台與實作，所以信仰著可以用物件，用標準，用庫，來隱藏底層骯髒污穢的細節，讓編程可以在用各種抽象來思考，但目標實在遙遠啊。&lt;br /&gt;&lt;br /&gt;看完了 [&lt;a href="http://jdj.sys-con.com/read/204688.htm"&gt;Deadlocks in J2EE&lt;/a&gt;]，馬上辨認出來前一陣子所解的一個難解的 Bug，其實就只是一個常見的 Deadlock 問題，但就算已經把這個問題總結得這麼好，卻也沒有太好的解法。最後提出的規則就是儘量了解底層，然後出了問題要能印出足夠的訊息來慢慢找出問題。我們要避免 Deadlock 的發生，總是無法根基於抽象的底層，必需要對底層的實作有相當程度的了解，一個看似美妙的 EJB 架構，當大家都在規範中行事，最後仍然會有難以除去的問題不經意冒出；在一種 Database 運作良好，在另一種就可能一開始就有問題。&lt;br /&gt;&lt;br /&gt;軟體開發具有天生的複雜度，將不同系統整合在一起複雜度更是難以避免，當我們越來越遠離底層，冷不防就有[&lt;a href="http://local.joelonsoftware.com/mediawiki/index.php/The_Joel_on_Software_Translation_Project:%E6%8A%BD%E8%B1%A1%E6%BB%B2%E6%BC%8F%E6%B3%95%E5%89%87"&gt;抽象滲漏法則&lt;/a&gt;]出來踢我們一腳，或許就如 jserv 在 [&lt;a href="http://blog.linux.org.tw/~jserv/archives/001583.html"&gt;初等概念&lt;/a&gt;]所說：「只有痛苦能把深度帶給我們」。&lt;br /&gt;&lt;br /&gt;引用賴明宗在&lt;a href="http://bbs.ee.ntu.edu.tw/boards/Programming/6/12.html"&gt;一個程式的誕生&lt;/a&gt;所說：&lt;br /&gt;&lt;blockquote&gt;一個程式的誕生，其中的過程遠比我寫出來的複雜千萬倍，假如你覺得學會 MFC的過程，有 365里路那麼長，是一件艱苦的事，那麼完成一個大型程式的困難，只怕你一輩子都走不到。而我又能說什麼呢？程式設計這條路上有太多殘酷、甚至黑暗的現實，我連告訴你的勇氣都沒有。&lt;br /&gt;&lt;br /&gt;然而那終究是我們遙遠的夢想。每一天思考、學習、探索的過程，都讓我們更高貴；一個又一個的程式，無論大小、無論成功或失敗，都包含著我們深切的期許與希望，還有那無數失眠的夜晚，以及桌旁堆積如山、不忍心丟掉的筆記與資料。&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5433558257507929029?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5433558257507929029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5433558257507929029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5433558257507929029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5433558257507929029'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/blog-post_15.html' title='軟體開發真是件困難的事啊'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4783923622582632832</id><published>2006-04-14T17:21:00.000+08:00</published><updated>2006-12-19T12:43:19.639+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java Service Provider</title><content type='html'>* &lt;a href="http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html#Service%20Provider"&gt;Service Provider&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://weblogs.java.net/blog/enicholas/archive/2006/04/creating_a_serv.html"&gt;creating a serv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;看來是類似&lt;a href="http://wctang.blogspot.com/2006/04/jar.html"&gt;這篇&lt;/a&gt;所使用的技巧。這個由 classpath/classloader 配合找尋 resource 的方式，真是 java 具有優勢的地方。雖說如果要大規模使用 IoC 架構，應該還是要使用 Spring/EJB3 之類的 Container 才夠強大，不過像 Service Provider 這種"類 IoC"的做法也有他好處所有，至少不用設定其他的東西，只要把 jar 放到正確的地方就 ok 這點，如果是自己系統中的功能擴充方式，算是個方便且標準的方式。&lt;br /&gt;&lt;br /&gt;雖然弄個 Service Provider 的名字，也就是列出全部有某個名稱的 resource 的應用罷了，不過如果能好好配合 classloader 等更加動態的執行模型，的確是讓功能元件化更加方便且穩定。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4783923622582632832?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4783923622582632832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4783923622582632832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4783923622582632832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4783923622582632832'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/java-service-provider.html' title='Java Service Provider'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5947586127306546966</id><published>2006-04-10T17:19:00.000+08:00</published><updated>2006-12-07T17:20:30.978+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>kbSizer</title><content type='html'>寫了個自己覺得蠻好用的小程式： &lt;a href="http://sourceforge.net/projects/kbsizer/"&gt;kbSizer&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5947586127306546966?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5947586127306546966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5947586127306546966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5947586127306546966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5947586127306546966'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/kbsizer.html' title='kbSizer'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-1614749418768383056</id><published>2006-04-07T17:16:00.000+08:00</published><updated>2006-12-07T17:18:40.950+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>A Conversation with Erich Gamma</title><content type='html'>与Erich Gamma的一次谈话&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://www.artima.com/lejava/articles/gammadp.html"&gt;How to Use Design Patterns&lt;/a&gt;, (&lt;a href="http://blog.csdn.net/lxwde/archive/2005/05/28/382819.aspx"&gt;如何使用设计模式&lt;/a&gt;)&lt;br /&gt;* &lt;a href="http://www.artima.com/lejava/articles/reuse.html"&gt;Erich Gamma on Flexibility and Reuse&lt;/a&gt;, (&lt;a href="http://blog.csdn.net/lxwde/archive/2005/06/06/388909.aspx"&gt;Erich Gamma讲述灵活性和重用&lt;/a&gt;)&lt;br /&gt;* &lt;a href="http://www.artima.com/lejava/articles/designprinciples.html"&gt;Design Principles from Design Patterns&lt;/a&gt;, (&lt;a href="http://blog.csdn.net/lxwde/archive/2006/01/07/572613.aspx"&gt;源自《设计模式》的设计原则&lt;/a&gt;)&lt;br /&gt;* &lt;a href="http://www.artima.com/lejava/articles/patterns_practice.html"&gt;Patterns and Practice&lt;/a&gt;, (&lt;a href="http://blog.csdn.net/lxwde/archive/2006/01/07/572624.aspx"&gt;模式与实践&lt;/a&gt;)&lt;br /&gt;* &lt;a href="http://www.artima.com/lejava/articles/eclipse_culture.html"&gt;Eclipse's Culture of Shipping&lt;/a&gt;, (&lt;a href="http://blog.csdn.net/lxwde/archive/2006/01/07/572634.aspx"&gt;Eclipse的发布传统&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-1614749418768383056?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/1614749418768383056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=1614749418768383056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1614749418768383056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1614749418768383056'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/conversation-with-erich-gamma.html' title='A Conversation with Erich Gamma'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-3140597055572467027</id><published>2006-04-06T17:15:00.000+08:00</published><updated>2006-12-19T12:43:55.762+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><category scheme='http://www.blogger.com/atom/ns#' term='Architect'/><title type='text'>反饋</title><content type='html'>[&lt;a href="http://www.blogjava.net/nuanfengls-118123/archive/2006/04/04/39145.html"&gt;看得见的魅力&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;這裡說的"看得見管理"，以我的想法應該類似所謂的&lt;a href="http://wctang.blogspot.com/2005/11/feedback.html"&gt;反饋&lt;/a&gt;的作用，以專案的層次來看，這種方法是個將進行很明顯地反饋給大家的方法，可能我這種說法和原本的著重點不同，但所要塑造的感覺我想應該是相差不遠的。&lt;a href="http://www.javaeye.com/topic/8355"&gt;這裡&lt;/a&gt;所營造的也是一個很類似的氣氛。&lt;br /&gt;&lt;br /&gt;或許是專案形態不同吧，公司裡的案子幾乎都是每個人單打獨鬥，而且彼此間交集的地方也不多，或許對公司而言這是個比較能充分利用人力的方式，但對在工作的人而言，就常常覺得寂寞，少了份工作的凝聚力。雖然我這麼說，不過就算是多人合作的專案，想要激發出大家的動力也是困難的，我想如果用上這種公開進度的方式，說不定大家就被壓得人心渙散了 @@&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-3140597055572467027?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/3140597055572467027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=3140597055572467027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3140597055572467027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3140597055572467027'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/blog-post_06.html' title='反饋'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-183112645542416965</id><published>2006-04-06T17:13:00.000+08:00</published><updated>2006-12-19T12:44:10.892+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>列出所有正在使用的 jar 檔及其版本</title><content type='html'>雖說是用一點取巧的方式（假設 jar 檔中有 META-INF 的目錄），但效果還不錯，畢竟一般用工具所包的 jar 都會有這個目錄。&lt;br /&gt;&lt;br /&gt;這個資訊很有用，尤其是對 classpath 不清楚或是環境很混亂的情況，在 log 中先輸出這個資訊對 debug 是很重要的資訊，以 java 的階層式 class loader 架構，說不定列出 jar 檔和你所想像的有很大的不同。另外還有 java 版本和 database connection 也很重要，最好也能顯示出來。&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;    ClassLoader cl = Thread.currentThread().getContextClassLoader();&lt;br /&gt;    Enumeration enume = cl.getResources( "META-INF" );&lt;br /&gt;    while (enume.hasMoreElements()) {&lt;br /&gt;        URL url = (URL) enume.nextElement();&lt;br /&gt;        URLConnection conn = url.openConnection();&lt;br /&gt;        if(conn instanceof JarURLConnection) {&lt;br /&gt;            JarURLConnection jarConnection = (JarURLConnection)conn;&lt;br /&gt;            Attributes attrs = jarConnection.getManifest().getMainAttributes();&lt;br /&gt;            String extName = attrs.getValue("Extension-Name");&lt;br /&gt;            String SpecVer = attrs.getValue("Specification-Version");&lt;br /&gt;            String ImplVer = attrs.getValue("Implementation-Version");&lt;br /&gt;            String jarfile = jarConnection.getJarFile().getName();&lt;br /&gt;            writer.write(extName + "," + jarfile + "," + SpecVer + "," + ImplVer);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;順著這個方法往下談，一般來說，要部署到客戶的程式最好是能整理成 jar 的包裝（並進一步包成 war 或 ear 的形式），而不要用一堆一堆的 class ，jar 有以用 manifest 來表現其版本， class 可不行，如果又去一個一個的換 class ，到最後客戶端的版本一定混亂到無法整理了。然後自己包 jar 檔最好也就是把名稱和版本放進 manifest 中，用標準的方法來包裝就會有標準的方法來支援。&lt;br /&gt;&lt;br /&gt;版本控制的細節真是無所不在，而這種訓練有素（的狗？）也正是專業的表現。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-183112645542416965?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/183112645542416965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=183112645542416965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/183112645542416965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/183112645542416965'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/jar.html' title='列出所有正在使用的 jar 檔及其版本'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6108843912828227234</id><published>2006-04-04T17:12:00.000+08:00</published><updated>2006-12-19T12:46:11.454+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Info'/><title type='text'>微軟終止Windows 98、Me技術支援</title><content type='html'>[&lt;a href="http://www.taiwan.cnet.com/news/software/0,2000064574,20105443,00.htm"&gt;微軟終止Windows 98、Me技術支援&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;以在企業中打混寫程式的角度來看，這真是個好消息。倒不是什麼病毒，蠕蟲，也不是什麼 bug 無法更新…&lt;br /&gt;&lt;br /&gt;而是從此之後，所有的客戶端都"應該"要是 Unicode enable 的了，從此之後，再也沒有理由不用 utf-8 而用 ms950/big5 等。&lt;br /&gt;不能處理 unicode 的人，去吃屎~~&lt;br /&gt;&lt;br /&gt;(唔…說不定又是虛晃一招，雖然叫微軟，但這件事你要硬起來啊…)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6108843912828227234?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6108843912828227234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6108843912828227234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6108843912828227234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6108843912828227234'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/windows-98me.html' title='微軟終止Windows 98、Me技術支援'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-1925175527939826723</id><published>2006-04-04T17:10:00.000+08:00</published><updated>2006-12-19T12:44:44.146+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Log'/><title type='text'>Lightbox JS 2</title><content type='html'>[&lt;a href="http://www.huddletogether.com/projects/lightbox2/"&gt;Lightbox JS 2&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;真是非常炫的 js 特效，完全符合我在&lt;a href="http://wctang.blogspot.com/2005/08/dpsyntaxhighlighter.html"&gt;之前&lt;/a&gt;提到的，不增加 server 負擔為原則，而且加程式又容易 :)&lt;br /&gt;在測試時又發現，douban 的電影海報有大張版的，又更加強效果了。&lt;br /&gt;&lt;br /&gt;本來 douban 海報的連接是連至 douban 對該電影的介紹頁，但為了這個炫麗的效果，就對不起 douban 了 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-1925175527939826723?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/1925175527939826723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=1925175527939826723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1925175527939826723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1925175527939826723'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/lightbox-js-2.html' title='Lightbox JS 2'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5946482239152998192</id><published>2006-04-02T17:09:00.000+08:00</published><updated>2006-12-19T12:44:57.126+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Log'/><title type='text'>新網址</title><content type='html'>這幾天接到之前 wctang.idv.tw 的網址已經過期，意思就是叫我要再繳錢才能用。雖然這個網址還算且有有代表性，在 google 上的資料也存在好一陣子，但不知為什麼就是不太喜歡，所以後來就又有了個 org 的網址。&lt;br /&gt;&lt;br /&gt;不過當收到這個訊息後，我又仔細想想 foxcastle.org 這個網址，好像是要做大事業的感覺，說實話這麼久了也只有個人用而己，用這種網址實在有點怪怪的。後來參考一下網路上一些比較熱門的網址，覺得 .info 似乎是蠻適合的，所以到網路上搜尋了一下，嗯 [&lt;a href="http://www.domainsite.com/"&gt;domainsite&lt;/a&gt;] 的 .info 一年只要 $1.99 ，又可以用 paypal 來付錢，一點都不麻煩，所以順手就搬家了。&lt;br /&gt;&lt;br /&gt;反正我的 rss 是用 feedburner ，之前的網址一時間也還沒過期，就直接全部都轉過來了，反正會來這裡的人也不多 :)。新網址 &lt;a href="http://wctang.info/"&gt;http://wctang.info/&lt;/a&gt;, &lt;a href="http://wctang.info/blog"&gt;http://wctang.info/blog&lt;/a&gt;, &lt;a href="http://wctang.info/wiki"&gt;http://wctang.info/wiki&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5946482239152998192?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5946482239152998192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5946482239152998192' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5946482239152998192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5946482239152998192'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/blog-post.html' title='新網址'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7933762564100210632</id><published>2006-04-02T17:08:00.000+08:00</published><updated>2006-12-07T17:09:15.371+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Map'/><title type='text'>google map &amp; urmap api</title><content type='html'>為了公司的某個案子，玩了一下 [&lt;a href="http://local.google.com/"&gt;google map&lt;/a&gt;] (現在好像要叫 google local @@) 和 [&lt;a href="http://www.urmap.com"&gt;urmap&lt;/a&gt;] 的 api : &lt;br /&gt;&lt;br /&gt;&lt;a href="http://wctang.info/formosoft-hospitals.html"&gt;http://wctang.info/formosoft-hospitals.html&lt;/a&gt; (標記點是衛生署立醫院)&lt;br /&gt;&lt;br /&gt;雖說 urmap 做得還不錯，感覺還蠻算那麼回事，而且也推出了 api ，不過就如&lt;a href="http://server.everfine.com.tw/blog/archives/2006/04/ecciegoogle_map.html"&gt;這篇&lt;/a&gt;所說的，實在太像 google map api 了，大致上就只是經緯互換，zoom 大小相反，其他的物件和 function 名稱大致都相同。不過，只要沒有侵權的話，我倒不覺得這很差勁，說實話，如果有個好的範例可以參考，總比自己亂寫弄出個難用的東西來得好，而且寫 function 也方便。不過，不要只是會抄，還要能發展新的功能，都己經少了一大段開發的時間，多點時間應該能花在發揮自己的功能 (以 api 來看，還是比 google 功能少一點)。&lt;br /&gt;&lt;br /&gt;還有一點，urmap 不能從地圖上反查經緯度，要 link 到某個地點還要編出某個 key 來連接。喂喂，這就太小氣了吧，要學 google 就學得徹底點，有這個功能可以讓我們寫這種應用的人省下多少工夫啊…。&lt;br /&gt;&lt;br /&gt;BTW, urmap 的 api 授權碼好像沒什麼用，意思是不申請也沒關係的（至少目前）。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7933762564100210632?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7933762564100210632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7933762564100210632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7933762564100210632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7933762564100210632'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/04/google-map-urmap-api.html' title='google map &amp; urmap api'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6707680570843223193</id><published>2006-03-25T17:06:00.000+08:00</published><updated>2006-12-19T12:45:32.376+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>安裝 viewvc</title><content type='html'>&lt;a href="http://www.viewvc.org/"&gt;viewvc&lt;/a&gt; 是可以瀏覽 cvs 和 svn 的 respository 的 web 工具， powered by python 。基本上只要抓最新的 Snapshots 下來，執行 viewvc-install ，再改一下設定檔就沒問題了。但和同為 python 連結 subversion 有相同的方法，都必需安裝 python subversion binding 才行，這個是由 subversion 所維護的。以 freebsd 上的安裝，是以用 subversion 的 source ，執行以下命令...&lt;br /&gt;&lt;blockquote&gt;./configure&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;make swig-py&lt;br /&gt;make install-swig-py&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;然後要在 /usr/local/lib/python2.x/site-packages 下建兩個 link 到 /usr/local/lib/svn-python/ 的 svn 和 libsvn 。&lt;br /&gt;測試在 python 中輸入 import svn.repos ，如果沒有錯誤就沒問題了。&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://mailman.lyra.org/pipermail/viewcvs/2004q1/002569.html"&gt;1&lt;/a&gt;][&lt;a href="http://svn.haxx.se/dev/archive-2003-03/0135.shtml"&gt;2&lt;/a&gt;][&lt;a href="http://mailman.lyra.org/pipermail/viewcvs/2004q4/003154.html"&gt;3&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6707680570843223193?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6707680570843223193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6707680570843223193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6707680570843223193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6707680570843223193'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/viewvc.html' title='安裝 viewvc'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-1053016301375600692</id><published>2006-03-25T17:05:00.000+08:00</published><updated>2006-12-19T12:45:40.009+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>win32 string table resource.</title><content type='html'>不知道因為什麼原因，STRINGTABLE 的 resources 設計的有點複雜。雖然了解以後也還算合理，但一開始不了解時會完全不知道問題出在哪裡。&lt;a href="http://blogs.msdn.com/oldnewthing/archive/2004/01/30/65013.aspx"&gt;這篇&lt;/a&gt;講得很清楚了，而且大致上搜尋了一下，好像也只有 The Old New Thing 有講清楚，其他的好像都是隨口丟出個解法，也沒有徹底解決。&lt;br /&gt;&lt;br /&gt;一般來說，要 load resource 中的 string 用 LoadString 就行了。但如果要依不同的語系來 load string 的話，就必需用到 FindStringResourceEx/LoadResource/LockResource 等等，而用了這些函式就要自己從 resource 中 parse 出所要的字串。而 STRINGTABLE 的結構是，依編號每 16 個一組 (0-15, 16-31..)，在 FindStringResourceEx 中的 name 要傳入的是第幾組，而後一次會 load 整組的 data 出來。一組 16 個 string 的排列方式是 counted UNICODE strings, 而非 null-terminated strings。&lt;br /&gt;&lt;br /&gt;下面這兩個函式就是總結：&lt;br /&gt;&lt;pre name="code" class="cpp"&gt;&lt;br /&gt;LPCWSTR FindStringResourceEx(HINSTANCE hinst, UINT uId, UINT langId) {&lt;br /&gt; LPCWSTR pwsz = NULL;&lt;br /&gt; HRSRC hrsrc = FindResourceEx(hinst, RT_STRING, MAKEINTRESOURCE(uId/16 + 1), langId);&lt;br /&gt; if (hrsrc) {&lt;br /&gt;  HGLOBAL hglob = LoadResource(hinst, hrsrc);&lt;br /&gt;  if (hglob) {&lt;br /&gt;   pwsz = reinterpret_cast&lt;LPCWSTR&gt;(LockResource(hglob));&lt;br /&gt;   if (pwsz) {&lt;br /&gt;    for (UINT i = 0; i &lt; (uId &amp; 15); i++) {&lt;br /&gt;     pwsz += 1 + (UINT)*pwsz;&lt;br /&gt;    }&lt;br /&gt;    UnlockResource(pwsz);&lt;br /&gt;   }&lt;br /&gt;   FreeResource(hglob);&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; return pwsz;&lt;br /&gt;}&lt;br /&gt;LPWSTR AllocStringFromResourceEx(HINSTANCE hinst, UINT uId, UINT langId) {&lt;br /&gt; LPCWSTR pwszRes = FindStringResourceEx(hinst, uId, langId);&lt;br /&gt; if (!pwszRes) pwszRes = L"";&lt;br /&gt; LPWSTR pwsz = new WCHAR[(UINT)*pwszRes+1];&lt;br /&gt; if (pwsz) {&lt;br /&gt;  pwsz[(UINT)*pwszRes] = L'\0';&lt;br /&gt;  CopyMemory(pwsz, pwszRes+1,*pwszRes * sizeof(WCHAR));&lt;br /&gt; }&lt;br /&gt; return pwsz;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;AllocStringFromResourceEx  回傳的字串要 delete[] .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-1053016301375600692?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/1053016301375600692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=1053016301375600692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1053016301375600692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1053016301375600692'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/win32-string-table-resource.html' title='win32 string table resource.'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8214720534962173043</id><published>2006-03-17T17:03:00.000+08:00</published><updated>2006-12-19T12:46:34.353+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Info'/><title type='text'>The 16th Annual Jolt Product Excellence Award Winners</title><content type='html'>&lt;a href="http://www.sdmagazine.com/jolts/2006index.html"&gt;The 16th Annual Jolt Product Excellence Award Winners&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;有別於&lt;a href="http://wctang.blogspot.com/2005/03/jolt-awards-2005.html"&gt;去年&lt;/a&gt; Java 的突出，今年明顯的就是微軟的出頭了。尤其是 Visual Studio 2005, SQL Server 2005 和 .NET Framework 2.0 的出線，證明微軟前一陣子推出的一系列 .NET 2.0 相關工具的更新是受到肯定的。以我用 Visual Studio 2005 ，我也覺得比起 Visual Studio.NET 2003 好用得多。從名單中還看到 Rails 的名字，得到 Web Development Tools，也反映了現在 Rails 的火紅。不過雖然從國外的資訊來看 Rails 是如日中天，但我身邊卻完全沒有聽到這個名詞，就像 ajax 的情況，雖然在喜歡新鮮的工程師中有些波瀾，但要進入企業中卻還要很長的路要走。&lt;br /&gt;&lt;br /&gt;再看看圖書相關獎項，出線的書好像都還沒聽到過，可能是最近都沒有注意這些資訊。不過看名字都蠻有意思的，像 Prefactoring, Why Programs Fail, The Art of Project Management，先去 emule 下來看看…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8214720534962173043?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8214720534962173043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8214720534962173043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8214720534962173043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8214720534962173043'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/16th-annual-jolt-product-excellence.html' title='The 16th Annual Jolt Product Excellence Award Winners'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6251477554163128771</id><published>2006-03-15T17:02:00.000+08:00</published><updated>2006-12-19T12:46:48.928+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><category scheme='http://www.blogger.com/atom/ns#' term='Architect'/><title type='text'>一輩子當工程師</title><content type='html'>今天接到一個賣保險的電話，很不情願的被抓著哈啦了好久。照例也是要恭維一下什麼科技新貴之類的(天知道)。只不過，當她推導出我是 RD 時，她就說“難道你認為做工程師可以做一輩子嗎？總要為之後多想想吧”之類的話。&lt;br /&gt;&lt;br /&gt;當場我是敷衍過去，可是我心裡想著，“我就是想做一輩子的工程師，嘸你是要安抓？”。像這類的話真的是隨處都會聽到，尤其是長輩的勉勵，長官的慰勉，同事的閒聊，網路上的鄉民，反正像“難道你想寫一輩子程式嗎？”，“工程師是吃年輕飯啦”，“寫程式沒前途，目標要放在管理職”，“不要到了三四十歲還是個小工程師”之類的，以不同的方式出現，但都直指工程師不是個長久之計，幹久了要想辦法混個小主管，專案經理之類的，不然就是算是沒什麼前途的人生，收入也好不到哪裡去。&lt;br /&gt;&lt;br /&gt;我是不知道其他種類的工程師的工程情況，應該也是有非常苦悶無趣賣時間的，但至少我不認為我的目標要放在管理職，主管等等。管理是很深的藝術，沒有一點天分是做不來的，至少我相信我是做不來的，但至少寫程式也是很深的藝術，也不是隨隨便便就做得來的。我想可能是我的寫程式定義和別人不同吧，其他的人可能覺得寫程式寫得久了，總是要變成動口不動手，只要畫出一堆莫測高深的流程圖、ER圖、UML圖、類別圖，寫一堆 SA, SD，規格書，再來就叫底下的人去工作就行了，甚至很多寫了很久程式的人也是打從心底這麼想的。&lt;br /&gt;&lt;br /&gt;為什麼這些年敏捷開發過程這麼受到重視？“形式影響內容,語言影響思想”，“魔鬼總在細節中”，你所用的工具會影響你的思考，你的編程水準影響你的設計，你的版本控制機制、錯誤追蹤系統、資料備份機制、每日建構系統、工程師所用的 IDE、 FrameWork 、單元測試機制、自動測試流程、提供的 api 、提供的文件、新舊版本的相容性…，每個細節都影響你產品的品質。不要把工程師想簡單了，如果你寫程式沒有考慮這些事，就是把寫程式這件事想得太單純了。不是工程師做不久，而是該做的事沒去做而已。&lt;br /&gt;&lt;br /&gt;ref: [&lt;a href="http://blog.ijliao.info/archives/2006/03/23/2163/"&gt;師程工 vs. Sales&lt;/a&gt;], &lt;br /&gt;[&lt;a href="http://www.blogjava.net/robbin/archive/2006/04/02/38751.html"&gt;第七口口水－程序员到30岁就要转行？&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6251477554163128771?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6251477554163128771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6251477554163128771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6251477554163128771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6251477554163128771'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/blog-post.html' title='一輩子當工程師'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-9094226734449035910</id><published>2006-03-13T16:56:00.000+08:00</published><updated>2006-12-07T16:59:33.526+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>A History of Violence, 忍, The Constant Gardener</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1436668.jpg" title="A History of Violence"&gt;&lt;img src="http://www.douban.com/mpic/s1436668.jpg" class="poster-left" alt="A History of Violence"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1422917/"&gt;A History of Violence (暴力效應)&lt;/a&gt;&lt;br /&gt;其實是覺得劇情不算很有意思，也不算很有懸疑，也沒有太暴力，最後也看不出發生了什麼效應。就一個蠻單純的架構反覆來回，雖然拍得還不至於覺得沉悶，但也不覺得好看就是。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1441691.jpg" title="忍"&gt;&lt;img src="http://www.douban.com/mpic/s1441691.jpg" class="poster-right" alt="忍"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1427947/"&gt;忍&lt;/a&gt;&lt;br /&gt;德川統一天下之後，因為害怕戰時所訓練出的忍者，而想要清除這群可以動搖事局的人。德川主導卍谷和鍔隱兩個忍者村彼此外出戰爭。當然這種片一定要兩方的頭頭相愛才行啦...@@&lt;br /&gt;&lt;br /&gt;相當有日本味的一片，連結局也很有日本味。裡面的忍術幾乎都在其他地方看過，像"無限住人"，"獸兵衛忍風帖"，和"火影忍者"等等。不過男女主角有點太普通了，在每個都怪得有很特色的忍者內，兩位頭頭也太正常了吧，就用一招就吃定底下的眾忍者們，其他的時間就當花瓶就好。雖說中國古代的武俠有些功夫也蠻扯的，不過至少也是拳打腳踢，舞刀弄鎗的，加上一點內功什麼的，都還可以想像，不過日本的忍者就更扯了，尤其是瞳術，最好是可以這麼強啦，矓的"破幻之瞳"一次必殺一個(片中只幹了一個，難說沒有什麼"真．破幻之瞳"的鬼東西)，而弦之介的瞳術更應該算是裡面最強的招數了。不過照理說瞳術不是不看就沒事了嗎？弦之介那招（和火影忍者中卡卡西的新寫輪眼）就不管看不看都發動的，這樣就設定得太強了。&lt;br /&gt;&lt;br /&gt;不過說忍者，還是"火影忍者"把忍者說的最生動。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1465015.jpg" title="The Constant Gardener"&gt;&lt;img src="http://www.douban.com/mpic/s1465015.jpg" class="poster-left" alt="The Constant Gardener"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1419856/"&gt;The Constant Gardener (疑雲殺機)&lt;/a&gt;&lt;br /&gt;台灣的片商真的很喜歡取一些"菜市場名"的片名，聽這個片名就讓人不覺得想看了。Rachel Weisz得到今年的奧斯卡女配角，不過就以她的劇分怎麼能算是女配角，雖說男主角的劇份還是比較重，但整片是以她為中心，應該要算女主角吧。其實一開始女主角蠻討人厭的，娶到這種女人應該讓人坐立難安吧，不過後來隨著劇情就慢慢扭轉，對女主角的觀感也會改變的。&lt;br /&gt;&lt;br /&gt;片中討論大藥廠在非洲用援助的名義試驗新藥，和反抗者的對抗。片中的愛滋病和多重抗體肺結核在國家地理頻道也討論過，兩者的結合是非常有效的殺人方式，當然也就有很大的商機，也難怪片中用肺結核疫苗來做為背景。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-9094226734449035910?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/9094226734449035910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=9094226734449035910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/9094226734449035910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/9094226734449035910'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/history-of-violence.html' title='A History of Violence, 忍, The Constant Gardener'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8990323059366144885</id><published>2006-03-10T16:55:00.000+08:00</published><updated>2006-12-19T12:47:10.459+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>C 槽 10 G</title><content type='html'>為了要裝 visual studio 2005, 又不想移除原本的 vs.net 2003 和 vs 6, 結果就讓我的 "C 槽 10 G" 理論當場破功。為了要從 C 壓榨出多些空間來，我先用 &lt;a href="http://windirstat.sourceforge.net/"&gt;windirstat&lt;/a&gt; 看看有什麼可以殺的，輕輕鬆鬆就發現一堆 .msi 被偷偷藏在程式目錄中，像 jdk, acrobat 等等，都是毫不手軟的把整個安裝程式就放著不刪除，然後還有些超大的 log 檔也可以刪除。然後把一些程式的 Help 檔移到別的地方或刪除。&lt;br /&gt;&lt;br /&gt;除此之外，在 windows 下的 $NtServicePackUninstall$ 和 "$NTUninstall*" 都可以刪除，但 "$hf_mig$" 不可以刪。&lt;br /&gt;這樣，就整整挖出 2 G 多了，看來我的 "C 槽 10 G" 理論還可以維持一段時間。&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www3.telus.net/dandemar/spack.htm"&gt;Save Space&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8990323059366144885?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8990323059366144885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8990323059366144885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8990323059366144885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8990323059366144885'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/c-10-g.html' title='C 槽 10 G'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-2822355107328969179</id><published>2006-03-07T16:51:00.000+08:00</published><updated>2006-12-07T18:01:17.684+08:00</updated><title type='text'>generate html link by XSLT</title><content type='html'>有例子有真相&lt;br /&gt;* context.xml&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&lt;?xml version="1.0"?&gt;&lt;br /&gt;&lt;?xml-stylesheet type="text/xsl" href="xslt.xsl"?&gt;&lt;br /&gt;&lt;systemconfigs&gt;&lt;br /&gt; &lt;system id="0" name="id0" url="http://localhost/1"/&gt;&lt;br /&gt; &lt;system id="1" name="id1" url="http://localhost/2"/&gt;&lt;br /&gt;&lt;/systemconfigs&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;* xslt.xsl&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;&lt;br /&gt;&lt;xsl:output method="html"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template match="/"&gt;&lt;br /&gt;&lt; html &gt;&lt;br /&gt;&lt; body &gt;&lt;br /&gt;&lt; ul &gt;&lt;br /&gt; &lt;xsl:apply-templates select="links/link"/&gt;&lt;br /&gt;&lt; /ul &gt;&lt;br /&gt;&lt; /body &gt;&lt;br /&gt;&lt; /html &gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template match="links/link"&gt;&lt;br /&gt;&lt; li &gt;&lt;br /&gt;&lt;a&gt;&lt;xsl:attribute name="href"&gt;&lt;xsl:value-of select="@url"/&gt;&lt;/xsl:attribute&gt;&lt;br /&gt; &lt;xsl:value-of select="@url"/&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;* more easy xslt:&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;&lt;br /&gt;&lt;xsl:output method="html"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template match="/"&gt;&lt;br /&gt;&lt; html &gt;&lt;br /&gt;&lt; body &gt;&lt;br /&gt;&lt; ul &gt;&lt;br /&gt; &lt;xsl:apply-templates select="links/link"/&gt;&lt;br /&gt;&lt; /ul &gt;&lt;br /&gt;&lt; /body &gt;&lt;br /&gt;&lt; /html &gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;xsl:template match="link"&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;a href="{@url}"&gt;&lt;xsl:value-of select="@url"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/xsl:template&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xsl:stylesheet&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-2822355107328969179?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/2822355107328969179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=2822355107328969179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2822355107328969179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2822355107328969179'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/generate-html-link-by-xslt.html' title='generate html link by XSLT'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6436230554727724653</id><published>2006-03-03T16:50:00.000+08:00</published><updated>2006-12-19T12:47:27.933+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Info'/><title type='text'>2005 Turing Award - Peter Naur</title><content type='html'>&lt;blockquote&gt;The award is for Naur's pioneering work on defining the Algol 60 programming language. Algol 60 is the model for many later programming languages, including those that are indispensable software engineering tools today.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Dr. Naur was editor in 1960 of the hugely influential "Report on the Algorithmic Language Algol 60." He is recognized for the report's elegance, uniformity and coherence, and credited as an important contributor to the language's power and simplicity. The report made pioneering use of what later became known as Backus-Naur Form (BNF) to define the syntax of programs. BNF is now the standard way to define a computer language. Naur is also cited for his contribution to compiler design and to the art and practice of computer programming.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://campus.acm.org/public/pressroom/press_releases/3_2006/turing_3_01_2006.cfm"&gt;http://campus.acm.org/public/pressroom/press_releases/3_2006/turing_3_01_2006.cfm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://solidot.org/article.php/20060303094643969"&gt;http://solidot.org/article.php/20060303094643969&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6436230554727724653?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6436230554727724653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6436230554727724653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6436230554727724653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6436230554727724653'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/2005-turing-award-peter-naur.html' title='2005 Turing Award - Peter Naur'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6530175740111298584</id><published>2006-03-01T16:38:00.000+08:00</published><updated>2006-12-07T16:48:45.695+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>Crash, Serenity, Brokeback Mountain...</title><content type='html'>最近看的一堆片子，一起列出來吧…&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1434454.jpg" title="Crash"&gt;&lt;img src="http://www.douban.com/mpic/s1434454.jpg" class="poster-left" alt="Crash"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1388216/"&gt;Crash (衝擊效應)&lt;/a&gt;&lt;br /&gt;這片其實已經看過好一陣子了，不過那時看得有點漫不經心，看完就覺得應該要再看一次的。最近奧斯卡提名很紅，如果真的得獎再來看一次吧 :)&lt;br /&gt;&lt;br /&gt;主題是種族的問題，由數個劇情緒同時進行，而且每個劇情緒也彼此相關而連結。像是種族、宗教之類的話題都是很深刻的，動不動就是見血，其實我想現在的情況應該不會這麼血淋淋的，不過這種問題大概永遠也解決不了，人們就算不提，也只是被藏在心裡罷了。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1456597.jpg" title="Serenity"&gt;&lt;img src="http://www.douban.com/mpic/s1456597.jpg" class="poster-right" alt="Serenity"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1309068/"&gt;Serenity (衝出寧靜號)&lt;/a&gt;&lt;br /&gt;唔唔，其實我還蠻喜歡這種片的，就像 biohazard 每集我都看得很高興 :)&lt;br /&gt;&lt;br /&gt;果然剽悍女主角比較好看，看女孩子舞刀弄鎗就是多一分美感。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1431042.jpg" title="電車男"&gt;&lt;img src="http://www.douban.com/mpic/s1431042.jpg" class="poster-left" alt="電車男"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1418179/"&gt;電車男&lt;/a&gt;&lt;br /&gt;雖然就同類型的電影而言，還是比不上野蠻女友來得有趣，不過主角的特性還是多了分親切感。不過說實在的，男主角演得也太矬了一點，這樣追得到這種美女只能是上天保佑吧。&lt;br /&gt;&lt;br /&gt;不過，從影片中得知，就算再怎麼幫忙，買電腦還是要買的人來做決定，幫忙的人只能分析好壞而已，所以叫我幫忙買電腦時不要再說我幫你選一台了…@@&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1435916.jpg" title="Lord of War"&gt;&lt;img src="http://www.douban.com/mpic/s1435916.jpg" class="poster-right" alt="Lord of War"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1419936/"&gt;Lord of War (戰爭之王)&lt;/a&gt;&lt;br /&gt;片頭還蠻有趣的，內容也還算特別，但總是覺得少了點什麼。雖然說故事的方式比較輕鬆，反之對這個嚴肅的主題就少著墨，以個人角度來詮訴這個龐大的主題，對主題的談論就不足了。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1326054.jpg" title="可可西里"&gt;&lt;img src="http://www.douban.com/mpic/s1326054.jpg" class="poster-left" alt="可可西里"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1308857/"&gt;可可西里&lt;/a&gt;&lt;br /&gt;殘酷的大自然，和殘酷的人類。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1483773.jpg" title="Brokeback Mountain"&gt;&lt;img src="http://www.douban.com/mpic/s1483773.jpg" class="poster-right" alt="Brokeback Mountain"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1418834/"&gt;Brokeback Mountain (斷背山)&lt;/a&gt;&lt;br /&gt;現在還不知道有沒有得獎。&lt;br /&gt;&lt;br /&gt;其實我並不是很喜歡，但看得出來導演的功力，很多鏡頭，象徵都很能抓住觀眾的眼光，果然，李安變成名符其實的大導。不過可能是題材不夠吸引我吧，共鳴較少。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1442196.jpg" title="Memoirs of a Geisha"&gt;&lt;img src="http://www.douban.com/mpic/s1442196.jpg" class="poster-left" alt="Memoirs of a Geisha"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1309059/"&gt;Memoirs of a Geisha (藝伎回憶錄)&lt;/a&gt;&lt;br /&gt;一句話，不好看。（不過小女孩很可愛）&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1434383.jpg" title="The 40 Year-Old Virgin"&gt;&lt;img src="http://www.douban.com/mpic/s1434383.jpg" class="poster-right" alt="The 40 Year-Old Virgin"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1419935/"&gt;The 40 Year-Old Virgin (40處男)&lt;/a&gt;&lt;br /&gt;輕鬆歡樂片，非常適合車上看 :)&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1446017.jpg" title="生きる"&gt;&lt;img src="http://www.douban.com/mpic/s1446017.jpg" class="poster-left" alt="生きる"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1293847/"&gt;生きる (生之慾)&lt;/a&gt;&lt;br /&gt;雖然老片有點沉悶，而且片長有點太長，但劇情是很深刻的。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1455097.jpg" title="Munich"&gt;&lt;img src="http://www.douban.com/mpic/s1455097.jpg" alt="Munich"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1438338/"&gt;Munich (慕尼黑)&lt;/a&gt; &lt;a rel="lightbox" href="http://www.douban.com/lpic/s1435573.jpg" title="Jarhead"&gt;&lt;img src="http://www.douban.com/mpic/s1435573.jpg" alt="Jarhead"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1424218/"&gt;Jarhead (鍋蓋頭)&lt;/a&gt; &lt;a rel="lightbox" href="http://www.douban.com/lpic/s1446913.jpg" title="Rent"&gt;&lt;img src="http://www.douban.com/mpic/s1446913.jpg" alt="Rent"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1422912/"&gt;Rent (吉屋出租)&lt;/a&gt; &lt;a rel="lightbox" href="http://www.douban.com/lpic/s1465015.jpg" title="The Constant Gardener"&gt;&lt;img src="http://www.douban.com/mpic/s1465015.jpg" alt="The Constant Gardener"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1419856/"&gt;The Constant Gardener (疑雲殺機)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;有時間再寫吧…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6530175740111298584?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6530175740111298584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6530175740111298584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6530175740111298584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6530175740111298584'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/crash-serenity-brokeback-mountain.html' title='Crash, Serenity, Brokeback Mountain...'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-879556586722542994</id><published>2006-03-01T16:35:00.000+08:00</published><updated>2006-12-19T12:47:43.464+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>Quantum Physics Double Slit Experiment</title><content type='html'>&lt;a href="http://video.google.com/videoplay?docid=-4237751840526284618"&gt;Quantum Physics Double Slit Experiment&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;以後如果別人要叫我介紹量子效應是什麼，我就叫他來看這段影片就好了。不過這段影片的重點放在波粒二象性，不過實在說明得很正確又仔細，在我的印象中，至少在高中沒有哪個老師可以把波粒二象性說清楚的。更難得的是把量子效應中 "Super position", "Posibility", "Observation" 等神奇之處強調出來，而且也說得很正確而且有趣。&lt;br /&gt;&lt;br /&gt;用影片來教學果然有他的用處，剛好也讓我體驗到 Google video 的好處。因為我對 Google 有信心，所以就不用擔心還要想辦法自己存一份了。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.flickr.com/38/106337259_2e90c20e42.jpg"/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-879556586722542994?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/879556586722542994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=879556586722542994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/879556586722542994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/879556586722542994'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/03/quantum-physics-double-slit-experiment.html' title='Quantum Physics Double Slit Experiment'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6281181124729944837</id><published>2006-01-13T16:34:00.000+08:00</published><updated>2006-12-19T12:48:03.436+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>The power of default value</title><content type='html'>雖然敝部門一直自稱為專業廠商而不是系統整合廠，但我們的工作卻絕大部分做的還是整合的工作，只不過整合的主要是我們的產品。這大概是做企業軟體的宿命，在開發系統時就要時時考慮到產品到異質系統的整合能力。&lt;br /&gt;&lt;br /&gt;最近在一個很緊急的情況下，必需去將我們的系統整合到別人的系統裡，偏偏遇到的系統又都是之前沒整合過的（Linux + PHP + Java + Sybase）。在真正去整合前還笨笨的以為 PHP 還蠻能跨平台的，所以選擇了一個做法就在 Windows 下就做了，結果突然發現雖然 PHP 的確可以跨平台，但前提是底下的平台已被建立完成，但系統是別人的，我們又不一定可以幫他們去建立平台。雖然我之前算是有小玩一下 Linux 系統，但畢竟還是太淺了，在急迫而且是不熟悉的系統還是沒什麼太多的用途。所以我們只好在更緊急的情況下去改變做法，雖然後來的結果是還蠻順利的，但過程中的心理壓力是很大的。&lt;br /&gt;&lt;br /&gt;以後要記在心裡，做人不能太天真，魔鬼總在細節裡。還有就是預設值的力量，當在選擇技術時，除非不得已儘量不要選擇非預設功能的解法，否則就要考慮到很多不同的情況。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6281181124729944837?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6281181124729944837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6281181124729944837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6281181124729944837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6281181124729944837'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/01/power-of-default-value.html' title='The power of default value'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-1667410190653656353</id><published>2006-01-08T02:01:00.000+08:00</published><updated>2006-12-07T02:09:28.504+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>Anacondas, 엽기적인 그녀, 黑社會, Tokyo GodFathers</title><content type='html'>雖然又是回高雄，可是忘了帶 nb 電源，所以只好看車上的電影，看得很暈…@@&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1430140.jpg" title="Anacondas"&gt;&lt;img src="http://www.douban.com/mpic/s1430140.jpg" class="poster-left" alt="Anacondas"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1308784/"&gt;Anacondas (大蟒蛇：血蘭花)&lt;/a&gt;&lt;br /&gt;看得很想吐，不過是因為車子冷氣太弱的關係。其實應該算是還行啦，蟒蛇把人吃了，人把蟒蛇殺了…&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1311650.jpg" title="엽기적인 그녀"&gt;&lt;img src="http://www.douban.com/mpic/s1311650.jpg" class="poster-right" alt="엽기적인 그녀"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1292286/"&gt;엽기적인 그녀 (我的野蠻女友)&lt;/a&gt;&lt;br /&gt;因為實在沒其他的好看，所以又再看了一次。&lt;br /&gt;&lt;br /&gt;當然，看了這麼多次，劇情已不再新鮮，但還是很好看的片（不過中間一些段落有點讓人想跳過去…）。不過，當初看全智賢是很漂亮的，不過後來看到韓國跑出的美女也是真多。當初看的感想，我們的第一次的親密接觸被拍成什麼樣子了…&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1462976.jpg" title="黑社會"&gt;&lt;img src="http://www.douban.com/mpic/s1462976.jpg" class="poster-left" alt="黑社會"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1309220/"&gt;黑社會&lt;/a&gt;&lt;br /&gt;很有味道的電影。&lt;br /&gt;&lt;br /&gt;雖然杜琪峰的電影我看過的並不是都有好感（大事件，向左走向右走我都覺得蠻差的），不過像暗戰就不錯，而這個黑社會也很不錯。比起像無間道比較現代化的黑道，黑社會裡就是比較傳統的，重視義理宗教的黑道（雖然行為還是沒什麼道義就是了）。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1318028.jpg" title="Tokyo GodFathers"&gt;&lt;img src="http://www.douban.com/mpic/s1318028.jpg" class="poster-right" alt="Tokyo GodFathers"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1310177/"&gt;Tokyo GodFathers (東京教父)&lt;/a&gt;&lt;br /&gt;千年女優的監督的新作品。雖然算是比較卡通的表現，但裡面的笑點安排還不錯，比一些專搞黑暗的動畫輕鬆多了。不過我覺得還是千年女優比較好看，音樂也比較好…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-1667410190653656353?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/1667410190653656353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=1667410190653656353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1667410190653656353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1667410190653656353'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/01/anacondas-tokyo-godfathers.html' title='Anacondas, 엽기적인 그녀, 黑社會, Tokyo GodFathers'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-88637079733982905</id><published>2006-01-08T01:59:00.000+08:00</published><updated>2006-12-19T12:48:29.694+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>時間的投資</title><content type='html'>近一年來，我才意識到這個世界的運作，是以資金來進行的。好像從小就被教導要用功念書才有好工作，要辛苦存錢、節省支出才會富有，還有股票是個賭博的地方，好孩子不要去了解。很長一段時間都是認為股市是個零和遊戲，好孩子要認真工作創造價值，為此還和唸管學院的朋友辯論了好久。反正，我終於知道連國家法律都是站在有錢人的一方，公司不是屬於為它流血流汗的人，而是屬於他的股東和出資者。其實我本來就知道我是個蠻左派的人，沒想到還只是個無知又天真的左派。不過這也沒什麼，我還是很天真的，不過是多了解點現實的運作方式罷了。&lt;br /&gt;&lt;br /&gt;在這些邪惡的賺錢書裡，一本特別有名的就是"窮爸爸，富爸爸"，其實就是寫來給無知的人看的，看看那些噁心骯髒的有錢人是怎麼賺噁心骯髒的錢的。一個重要的觀念，就是要堅持投資，以投資為第一順位，如果你為了某個月要買個什麼玩意兒就中斷了你的投資，甚至把之前的投資都花了進去，那你永遠都只會在老鼠賽跑而上不了高速公路。其實仔細想想，對個人的投資也是一樣，一方面就像個養成遊戲似的，讓遊戲裡的人常去唸書，最後就會變個學者（當然也沒這麼容易啦，學術的路也是很黑暗的），常去打鐵，最後就變個鐵匠之類的。所以我們只要常看程式，就會變個程式超人，常看漫書就會變個御宅族，常坐在空地前看小女孩玩耍，就會變成戀童癖之類的。這種投資的方式應該是"時間x能力=效果"，再拉一條線從效果反饋到能力上，有種投資複利的效果。雖然每個人的總時間都是相同的，但花在某件事上的時間卻必然有多有少，所以花時間多的人就有利，而能力強的人也有利，能力不強，只要花更多時間，自然能力就強，也就越來越有利。有人或許覺得這個過程中錢重不重要呢？我覺得不重要，尤其是這個免費資訊多到氾濫的時代，在你怨嘆沒錢投資自己的時候，卻不知少的只是沒把時間投進去。&lt;br /&gt;&lt;br /&gt;把這個堅持投資和投資自己連起來，就是堅持投資自己，也就是，不管是工作忙或不忙，先把想做的事做完再去做應該要做的事，堅持一段時間後自然就不用花太多時間在應該要做的事，而有更多的時間來做想做的事（當然這指的是工作的事，不然就算漫畫電影看得更多也只是在御宅度上昇級罷了）。工作忙，只要喊一聲”只要有心，人人都是XX”，自然就有可以解決了@@。話說回來，我爸說的"不管工作怎麼忙，每天想的第一件事情就是運動"應該也是同樣的道理，所以我爸也有他的投資哲學，只不過不是錢上的就是了:)&lt;br /&gt;&lt;br /&gt;不過，再想想，如果想做的事壓根就和工作的事無關的話，好像這招就沒用了…。唉，做不是興趣的工作真辛苦。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pjhuang.net/2006/01/2006new-year-resolution.html"&gt;上班族投資理財-永遠餘額都在減少的帳戶&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-88637079733982905?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/88637079733982905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=88637079733982905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/88637079733982905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/88637079733982905'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2006/01/blog-post.html' title='時間的投資'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8188175858426523760</id><published>2005-12-26T01:50:00.000+08:00</published><updated>2006-12-07T01:57:37.151+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>Fahrenheit 9/11, 如果．愛, Hable con ella</title><content type='html'>原因和上個星期一樣，又看了一堆電影…&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1373738.jpg" title="Fahrenheit 9/11"&gt;&lt;img src="http://www.douban.com/mpic/s1373738.jpg" class="poster-left" alt="Fahrenheit 9/11"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1308774/"&gt;Fahrenheit 9/11 (華氏911)&lt;/a&gt;&lt;br /&gt;其實不是第一次看了。其實看看人家國家的政爭，其實我們電視上很多政客的作為都是小鼻子小眼睛的（只不過一大部分也要歸咎於短視的媒體）。美國居然有主要在討論和平話題的社區讀書會，果然兩個國家人民的深度是有很大的差別的。&lt;br /&gt;&lt;br /&gt;導演找資料的工夫一流，而且也把資料呈現得很好。不過後來感覺有點長…@@&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1457273.jpg" title="如果．愛"&gt;&lt;img src="http://www.douban.com/mpic/s1457273.jpg" class="poster-right" alt="如果．愛"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1418070/"&gt;如果．愛 (Perhaps Love)&lt;/a&gt;&lt;br /&gt;比想像中好很多。其實我對歌舞片不是太有好感（主要原因應該是迪士尼的歌舞動畫片的關係），原本看預告片，主要是以幾個主角做號召。其實這個的手法是不俗的，片中劇和片子本身不斷的交錯，雖然不是新玩意，但我覺得運用的還不錯。雖然有三個男的，但演得最好的是周迅。"閔大人"的劇份只算個串場的，雖然劇份少，不過運用的也很不錯，反而有點睛的效果。&lt;br /&gt;&lt;br /&gt;不過，說要奧斯卡最佳外語就有點勉強了，畢竟是"歌"舞片，只有一個人能唱怎麼行？只有咱們的歌神能唱出他的心情，其他人都只能用演的（不過武哥哥也是從"溫柔超人"後又開唱了，就不要太苛求了吧），我想主要是少了女聲的問題，讓歌少了點吸引力。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1311493.jpg" title="Hable con ella"&gt;&lt;img src="http://www.douban.com/mpic/s1311493.jpg" class="poster-left" alt="Hable con ella"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1292211/"&gt;Hable con ella (Talk To Her, 悄悄告訴她)&lt;/a&gt;&lt;br /&gt;金球獎最佳外語片獎&lt;br /&gt;又是一個爛中文片名，什麼悄悄告訴她，和內容一點關係都沒有。&lt;br /&gt;歐洲片都蠻大方露的，很多裸露鏡頭。看完後的感想就是，人真是個複雜的東西啊…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8188175858426523760?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8188175858426523760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8188175858426523760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8188175858426523760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8188175858426523760'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/12/fahrenheit-911-911-perhaps-love-hable.html' title='Fahrenheit 9/11, 如果．愛, Hable con ella'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-1837018765832373420</id><published>2005-12-18T01:40:00.000+08:00</published><updated>2006-12-07T01:48:56.800+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>Flight Plan, Saving Face, King Kong, Batman Begins</title><content type='html'>每次回高雄，就會在車上看一堆電影…&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1436065.jpg" title="Flight Plan"&gt;&lt;img src="http://www.douban.com/mpic/s1436065.jpg" class="poster-left" alt="Flight Plan"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1419934/"&gt;Flight Plan (空中危機)&lt;/a&gt;&lt;br /&gt;真的是標準的好萊塢片。雖然好像很多人說劇情有些地方不太合理，但我是覺得不用想太多，反正商業片嘛，而且再怎麼不合理也不會比金剛來得不合理 :)&lt;br /&gt;我看這種片子其實一向不想猜兇手是誰（或結局是什麼），就像看柯南我也不猜兇手是誰（雖然大部分蠻好猜的），不過，這個謎局太早出現了，本來還有”一點點”特別的片子，之後就”完全”沒啥意思了。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1913432.jpg" title="Saving Face"&gt;&lt;img src="http://www.douban.com/mpic/s1913432.jpg" class="poster-right" alt="Saving Face"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1421278/"&gt;面子 (Saving Face)&lt;/a&gt;&lt;br /&gt;電影介紹是和"囍宴”對比。不過，雖然還不錯，不過就是因為和囍宴有點太類似了，走不太出這個格局。還是算不錯的片子，但囍宴更棒就是了。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1463610.jpg" title="King Kong"&gt;&lt;img src="http://www.douban.com/mpic/s1463610.jpg" class="poster-left" alt="King Kong"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1309043/"&gt;King Kong (金剛)&lt;/a&gt;&lt;br /&gt;&lt;img src="http://static.flickr.com/38/74837952_97c7f1b3dc.jpg"/&gt;&lt;br /&gt;令人驚訝的特效。片子很長，看來 Peter Jackson 拍長片拍習慣了。是蠻值得一看的，至少特效真的很驚人，不過要看的話就去電影院看吧，因為劇情你都知道了。&lt;br /&gt;片子處理金剛被補和金剛被殺的手法都不錯，不那麼悲傷。但我想問的，後來那些土著跑哪去了＠＠&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forum.pcdvd.com.tw/showthread.php?t=574377"&gt;三隻金剛排排站──淺談 1933、1976 及 2005 年版《King Kong》&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1364863.jpg" title="Batman Begins"&gt;&lt;img src="http://www.douban.com/mpic/s1364863.jpg" class="poster-left" alt="Batman Begins"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1309069/"&gt;Batman Begins (蝙輻俠：開戰時刻)&lt;/a&gt;&lt;br /&gt;劇情我覺得蠻爛的（蝙輻俠的劇情都蠻爛的），雖然 Christian Bale 很帥。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-1837018765832373420?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/1837018765832373420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=1837018765832373420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1837018765832373420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1837018765832373420'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/12/flight-plan-saving-face-king-kong.html' title='Flight Plan, Saving Face, King Kong, Batman Begins'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-3997060012157246720</id><published>2005-11-26T01:35:00.000+08:00</published><updated>2006-12-19T12:48:45.521+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architect'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>管理人員書單</title><content type='html'>說 Fog Creek 可能沒什麼人有印象，說 Joel 可能很多人也想不起來，那說 &lt;a href="http://www.joelonsoftware.com/"&gt;Joel on Software&lt;/a&gt; [&lt;a href="http://chinesetrad.joelonsoftware.com/"&gt;1&lt;/a&gt;]  應該就很多人知道了。 Fog Creek 就是 Joel 所在的公司。&lt;br /&gt;&lt;br /&gt;在 Joel &lt;a href="http://www.joelonsoftware.com/items/2005/11/22.html"&gt;談到&lt;/a&gt;他們公司的&lt;a href="http://www.joelonsoftware.com/articles/FogCreekMBA.html"&gt;軟體管理人員訓練課程&lt;/a&gt;中提出的一份&lt;a href="http://www.joelonsoftware.com/articles/FogCreekMBACurriculum.html"&gt;書單&lt;/a&gt;，其中還出現不少偏技術層面的書，也顯示出做軟體這一行，不管是哪個階層都要有和其他領域不一樣的想法（其實應該說每一行都有其獨到之處，而要管理就要對被管理的對象有深入的了解，當然，''所有的問題到頭來都是人的問題''，所以解決人的問題是管理的共通目的吧）。&lt;br /&gt;&lt;br /&gt;外國書的封面真的都花花綠綠的。雖然說他這樣列表應該是沒有強調優先順序，但是第一本出現的還是有其指標意義，第一本就是 &lt;a href="http://www.amazon.com/gp/product/0201835959/102-5844418-7050512"&gt;The Mythical Man-Month&lt;/a&gt;，可見得這本書的經典地位。接下來瞄一下還有什麼…&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/0471117099/102-5844418-7050512"&gt;Applied Cryptography&lt;/a&gt; 這本給沒什麼基礎的人看應該太難了點吧， Joel 的要求真高。&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/1558605347/102-5844418-7050512"&gt;Philip and Alex's Guide to Web Publishing&lt;/a&gt;，這本很久以前就在天瓏看過，封本看不出來是電腦書（可能內容也不是吧@@）。不過這類的書能冒出頭來應該是大不易吧，而且評價真的很高。&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/0471358460/102-5844418-7050512"&gt;Testing Computer Software&lt;/a&gt;，Wiley 的電腦書太多了，而且都長一個樣，說實在不知道那本才值得讀，像這樣被別人推薦一下應該比較會被注意到吧。不過書單中專講軟體測試的好像只有這一本，應該是還不錯的書。&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/0596004486/102-5844418-7050512"&gt;Version Control with Subversion&lt;/a&gt;，版本控制是一定跑不掉要了解的，只是看選那一本書而已。選 Subversion 也是符合現在的趨勢所向。之前在 [[2005-11-04_Software]] 就有提到小海龜有後來居上的氣勢，不管從哪個小地方來看都是如此。&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/020161622X/102-5844418-7050512"&gt;The Pragmatic Programmer&lt;/a&gt;，前一陣子很紅的一本書，強調軟體的工匠精神。這本不只管理人要看，做編程苦力的人更要看。可惜台灣沒有翻譯。&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/0066620732/102-5844418-7050512"&gt;Just for Fun&lt;/a&gt;，內容就像是故事書一樣，看看就罷。不過好像是 Open Source 的 Bible 似的，每個人都要看看才行，而且還要常掛在嘴上講 :)。台灣老早就有翻譯囉。&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/0932633439/102-5844418-7050512"&gt;Peopleware&lt;/a&gt;，要說人就說人。這本書說到了很多開發人員身邊的事，像工時，工作環境的話題。反正''不管什麼問題，都是人的問題'' :)（這話也是本書作者 Tom Demarco 說的）。可惜也沒有翻譯。&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/013143635X/102-5844418-7050512"&gt;Death March&lt;/a&gt;，這本也是常聽別人提到，是討論專案開發的控制。他書單裡蠻多是有關這一類的書，看來 Joel 是非常強調管理人員帶團隊的技巧（管理人員不管團隊要管什麼？嗯…，管錢吧 :)）。&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/0932633013/102-5844418-7050512"&gt;Secrets of Consulting&lt;/a&gt;，又一本 Demarco 的書。這本書我覺得寫法得太''隨性''了一點，可能要突顯咨詢這工作的隨性吧 :) 。有中文版哦。&lt;br /&gt;* &lt;a href="http://www.amazon.com/gp/product/0393325350/102-5844418-7050512"&gt;A Random Walk Down Wall Street&lt;/a&gt;，呃，單純講股票的書。管理人一定要多才多藝啊 :) 。&lt;br /&gt;&lt;br /&gt;還有很多，唔…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-3997060012157246720?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/3997060012157246720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=3997060012157246720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3997060012157246720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3997060012157246720'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/11/blog-post_26.html' title='管理人員書單'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8628299728130352374</id><published>2005-11-21T01:32:00.000+08:00</published><updated>2006-12-19T12:49:29.152+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>automatic backup data with rar and cron in windows.</title><content type='html'>先把東西找到， &lt;br /&gt;* &lt;a href="http://www.rarlab.com/"&gt;WinRAR&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www.kalab.com/freeware/cron/cron.htm"&gt;crons&lt;/a&gt; (drop in d:\program\crons)&lt;br /&gt;&lt;br /&gt;過程&lt;br /&gt;* 安裝 WinRAR&lt;br /&gt;* 寫個 d:\program\crons\crontab&lt;br /&gt;&lt;pre name="code"&gt;# &lt;Minute&gt; &lt;Hour&gt; &lt;Day&gt; &lt;Month&gt; &lt;Day of Week&gt; &lt;Command line&gt;&lt;br /&gt;&lt;br /&gt;0 5,13 * * 1-6 d:\program\crons\backup-dif.bat&lt;br /&gt;0 13   * * 0   d:\program\crons\backup-dif.bat&lt;br /&gt;0 5    * * 0   d:\program\crons\backup-all.bat&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;在每週日的晚上做完整備份，其他就半天做一次差異備份&lt;br /&gt;&lt;br /&gt;* 寫個 d:\program\crons\install.bat&lt;br /&gt;&lt;pre name="code"&gt;&lt;br /&gt;copy crontab "%windir%\SYSTEM32"&lt;br /&gt;crons /install&lt;br /&gt;crons /start&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;就只是安裝 cron 而已&lt;br /&gt;&lt;br /&gt;* backup-all.bat &lt;br /&gt;&lt;pre name="code"&gt;&lt;br /&gt;"c:\Program Files\WinRAR\WinRAR.exe" a -agYYYYMMDDHHMM-{all} -ms -ep2 -ibck -inul -t -ac d:\_backup\backup- @D:\_backup\backup.lst&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;backup-dif.bat &lt;br /&gt;&lt;pre name="code"&gt;&lt;br /&gt;"c:\Program Files\WinRAR\WinRAR.exe" a -agYYYYMMDDHHMM-{dif} -ms -ep2 -ibck -inul -t -ao -ac d:\_backup\backup- @D:\_backup\backup.lst&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;除了輸出檔名不同外，主要就是 -ao 和 -ac 這個項目，利用 windows 檔案的 archive 屬性，這個屬性在檔案新增或修改後都會轉為 on，而 -ac 是清除這個屬性， -ao 是只處理具有這個屬性的檔案，用這個屬性來做差異備分的功能（所以這個方法只在 windows 下能用，在 linux 下用時間來判斷是比較好的，在 windows 下不用時間判斷的原因是 windows 的 console 太差了…）。backup.lst 是要備分的檔案或是目錄的路徑。&lt;br /&gt;&lt;br /&gt;這樣就行了。&lt;br /&gt;&lt;br /&gt;接下來就是研究看看怎麼把檔案自動傳到別的地方了 (Gmail ?)...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8628299728130352374?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8628299728130352374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8628299728130352374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8628299728130352374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8628299728130352374'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/11/automatic-backup-data-with-rar-and-cron.html' title='automatic backup data with rar and cron in windows.'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6202472614344709602</id><published>2005-11-13T01:30:00.000+08:00</published><updated>2006-12-19T12:49:45.161+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><category scheme='http://www.blogger.com/atom/ns#' term='Architect'/><title type='text'>Feedback</title><content type='html'>在 XP 中，很重要的一個特性的就重視反饋。 XP 中很多實踐所要強調的，就是要能快速的反饋，立刻的反饋，並重視系統的反饋。像是短週期開發，就在進行一小步後，馬上就先讓客戶體驗看看，並立刻提出反饋。測試先行更是明顯，在以分為單位的開發過程讓你的系統立該給你反饋，客戶駐點，持續整合，搭擋編程… 無一不是重視反饋下所產生的行為。&lt;br /&gt;&lt;br /&gt;而以 Blog 而言，除了個人可以方便的公開發展言論（這個以前的個人電子報，個人新聞台也做得到），而且可以擁有個人的私空間外，另一個重要的發展也是讓人可以彼此間進行互動，立即且有效。（仔細想來，BBS 上的個人版好像符合大部分的特性，如果先天上的技術的限制外，我想每一個大型的 BBS 都可以視為一個 BSP ，我想無名的 blog 也是因為這個特性所以發展快速。不過 BBS 因為快發快回也比較容易吵架就是了…）&lt;br /&gt;&lt;br /&gt;我想公司也是一樣。一個能重視反饋的公司才能讓這個系統建全的發展。管理層的決策是否聽取被管理層的意見，或是被管理層有沒有給管理層意見（不論正負面）。或是員工所提出來的意見是否得到重視，是否都能有所回應，甚至是這個系統有沒有讓人提出意見的管道，也都是這個系統是否建全的重要關鍵。&lt;br /&gt;&lt;br /&gt;當然，如果從自身做起的話，就是對身邊的人所提的意見也要多提一些反饋，像是同事在開會中請大家提出意見，或是在網路上看到別人的文章，能儘可能的發表自己的看法，表達支持，或是提出問題。不過自己就是個超沉默的人，至少在文字上要積極一點… @@&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6202472614344709602?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6202472614344709602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6202472614344709602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6202472614344709602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6202472614344709602'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/11/feedback.html' title='Feedback'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4846788524346993855</id><published>2005-11-09T01:30:00.000+08:00</published><updated>2006-12-19T12:49:58.412+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>小明</title><content type='html'>不知道有多少人看過"世紀末軟體革命"這本書，這本書出了兩個版本，主要是討論在物件的各種議題，我手上還有第一版，但第二版好像是借人了一直都找不到了。&lt;br /&gt;&lt;br /&gt;這本書的作者是賀元，劉燈，和賴明宗。前兩個人都是小有名氣，尤其是賀元的資迅人，剛開始時還小有影響力，可惜後來沒有繼續下去。但這三個人我對賴明宗的印象最深，而他在網路上常用的名稱是小明。這本書大概是我高中時看到的，我看到時就已經是第二版了，第一版是後來弄到手的。在我高中時，大概是剛剛有能力看一些"快快樂樂學xx"之外的書，這書對有有很大的震憾，三個人都只是比我年級稍長而已，可是居然有這麼大的差距。(當然到了大學後更知道，這種人多到不必覺得奇怪。) 尤其是當我知道他遠不是人們口中的名校，而且連大學都沒法畢業時，也是個活生生的例子說我們這種名校畢業的實在沒什麼好說嘴的，只是比較能適應這種教育環境而已。&lt;br /&gt;&lt;br /&gt;在大學時代看到他在一些小小地下 BBS 出沒，也常常留意這個人物，可是後來就消失了。為什麼會對他印象這麼深呢，我覺得是他的文字包含著對軟體的熱情，讓人覺得他是真的喜歡軟體的人，而不只是從事這個工作而已。&lt;br /&gt;&lt;br /&gt;今天在逛 ptt ，發現一個版的版主，從幾句文字就讓人有不俗的感覺，後來多看了幾篇就確定這個人了的身分了。算是在沒什麼有趣的工作中一點讓人高興的發現吧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4846788524346993855?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4846788524346993855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4846788524346993855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4846788524346993855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4846788524346993855'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/11/blog-post.html' title='小明'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-2851378740849649110</id><published>2005-11-08T01:27:00.000+08:00</published><updated>2006-12-19T12:50:15.291+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Info'/><title type='text'>Free 開發工具</title><content type='html'>最近各大原本要錢的開發工具都出了 free 的版本，收集一下：&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://www.oracle.com/technology/products/database/xe/index.html"&gt;Oracle Database 10g Express Edition&lt;/a&gt; &lt;br /&gt;* &lt;a href="http://msdn.microsoft.com/vstudio/express/"&gt;Visual Studio Express&lt;/a&gt; (free for 1 year)&lt;br /&gt;* &lt;a href="http://msdn.microsoft.com/vstudio/express/"&gt;SQL Server Express Editions&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www.borland.com/downloads/download_jbuilder.html"&gt;JBuilder Foundation edition&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;應該還有其他的吧。其中以 Oracle 最讓人意外，畢竟原本以為 Oracle 是個高高在上的帝王，沒想到居然被 MySQL 逼到這個程度。反正這對我們是好事。&lt;br /&gt;&lt;br /&gt;不過， Microsoft 也是小氣了點， Visual Studio Express 還有個一年的期限，雖然我想一年也夠了，但讓人的感覺就差了一點。Visual C++ Express 預設安裝下只有附 標準 c++ 的 library ，也就是不能寫 windows 的程式，如果只是練習 c++ 的話倒不失為一個純粹好用的環境。如果還是要用來寫 windows 程式的話，&lt;a href="http://lab.msdn.microsoft.com/express/visualc/usingpsdk/default.aspx"&gt;配合 Microsoft Platform SDK&lt;/a&gt; 就行了，反正都是免費的。&lt;br /&gt;&lt;br /&gt;BTW, JBuilder 的衰退速度也是真快，二年前大家想到寫 Java 就找個"免錢"的 JBuilder 來用，現在連公司也不買了，全都是用 Eclipse (or netbean...)。所以，與其讓 Open Source 起來另起爐灶，先讓公司的產品開放出來佔住市場可能是個更有效的方法。&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;* &lt;a href="http://www-306.ibm.com/software/webservers/appserv/community/"&gt;WebSphere Community Edition&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.blogjava.net/steady/archive/2005/11/16/20000.html"&gt;Borland?Borland!&lt;/a&gt;]&lt;br /&gt;[&lt;a href="http://www.blogjava.net/briansun/archive/2005/09/02/11844.html"&gt;也谈天下归一&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;可憐的 JBuilder，曾經是第一的領導者…不過，Borland 也不是第一次這樣放棄舊東西了，OWL, Borland C++, 現在加上一個 JBuilder，不知道是不是放棄得太快？&lt;br /&gt;&lt;br /&gt;update: M$ 回應大家要求，在 2006-04-19 後，所有的 express editions 都永久免費使用。對初學者和學生真是個好消息 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-2851378740849649110?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/2851378740849649110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=2851378740849649110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2851378740849649110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2851378740849649110'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/11/free.html' title='Free 開發工具'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4991997017172460776</id><published>2005-11-06T01:25:00.000+08:00</published><updated>2006-12-07T01:27:02.346+08:00</updated><title type='text'>Design Principles</title><content type='html'>* Open Close Principle (OCP)&lt;br /&gt;* Liskov Substitution Principle (LSP)&lt;br /&gt;* Design by Contract&lt;br /&gt;* Dependency Inversion Principle (DIP)&lt;br /&gt;* Law of Demeter (LoD)&lt;br /&gt;* Interface Segrgation Principle (ISP)&lt;br /&gt;* Reuse/Release Equivalency Principle (REP)&lt;br /&gt;* The Common Reuse Principle (CRP)&lt;br /&gt;* Common Closure Principle (CCP)&lt;br /&gt;* Acyclic Dependencies Principles (ADP)&lt;br /&gt;* Stable Dependencies Principle (SDP)&lt;br /&gt;* Stable Abstractions Principle (SAP)&lt;br /&gt;* ...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.artima.com/forums/flat.jsp?forum=276&amp;thread=134747"&gt;Design Patterns versus Design Principles&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.PDF"&gt;Principles_and_Patterns.PDF&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4991997017172460776?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4991997017172460776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4991997017172460776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4991997017172460776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4991997017172460776'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/11/design-principles.html' title='Design Principles'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7807521092170283149</id><published>2005-11-04T01:24:00.000+08:00</published><updated>2006-12-19T12:50:31.684+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>WinMerge</title><content type='html'>&lt;a href="http://winmerge.sourceforge.net/"&gt;http://winmerge.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;雖然畫面有點花花綠綠，不太高明的配色，但是能和藍綠小海龜 (TortoiseSVN,TortoiseCVS) 配合得很好，光這點就夠了。我對 GPL 的 library 沒有好感，但對 GPL 的工具就很有信心，雖然只試用了十分鐘，但應該就會變成我的常用工具吧。(有種 FileZilla 的感覺…)&lt;br /&gt;&lt;br /&gt;話說 SVN/CVS 藍綠兩隻小海龜，雖然綠色因為出道較早，而且使用廣泛，所以應該是比較好的選擇，但藍色小海龜因為改革了綠色小海龜幾個重要的不足之處，而且繼承了開放的血統，所以越來越有後來居上的氣勢，尤其是最近幾個大案子都轉交給藍色小海龜來當家 (&lt;a href="http://slashdotcn.org/article.php/20050505142801327"&gt;KDE&lt;/a&gt;, &lt;a href="http://slashdotcn.org/article.php/20051026041141833"&gt;GCC&lt;/a&gt;)，看來藍色接手的氣氛是越來越濃厚了…&lt;br /&gt;(政治味十足的結論…@@)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7807521092170283149?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7807521092170283149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7807521092170283149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7807521092170283149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7807521092170283149'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/11/winmerge.html' title='WinMerge'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6672937041361006477</id><published>2005-10-25T01:23:00.000+08:00</published><updated>2006-12-19T12:50:58.220+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Win32'/><title type='text'>匯入pfx會找不到key造成無法展期</title><content type='html'>在進行展期時，首要條件是要先能找到要被展期的那張憑證。&lt;br /&gt;觀查 xenroll 的行為和系統內部的 cert store ，可以發現由 xenroll 所產生的 certificate reqeust ，會在 CURRENT_USER/REQUEST 的 cert store 中找到一個自簽憑證。又因為由 xenroll 自己產生 csr 再接收的憑證是可以展期，而 pfx 匯入的憑證是無法展期的，'''猜測'''是因為 xenroll 的行為是在產生 csr 時，會在系統內先存一張自簽憑證，等由 ca 回傳後，再連結原本的 private key 並存放至適當的 cert store 中，而原本放在 CURRENT_USER/REQUEST 中的自簽憑證並不會刪除。而展期也是相同的動作，所以如果在 CURRENT_USER/REQUEST 中沒有相對應的記錄的話，就會出現找不到 private key 的問題了。&lt;br /&gt;&lt;br /&gt;之前的解法是不使用 xenroll ，而直接在系統的 My cert store 中找對應的憑證和 private key 並進行連結。前提是必需系統已匯入要被展期的憑證 (這樣才找得到 private key)，而更新至 smart card 的動作還需要其他的手續 (辨識憑證和 private key 的 csp 和 container ，提示使用者插入 smart card 並進行更新。)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6672937041361006477?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6672937041361006477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6672937041361006477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6672937041361006477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6672937041361006477'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/10/pfxkey.html' title='匯入pfx會找不到key造成無法展期'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4396383841820229248</id><published>2005-10-11T01:20:00.000+08:00</published><updated>2006-12-07T01:22:47.407+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>Cinderella Man</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1630860.jpg" title="Cinderella Man"&gt;&lt;img src="http://www.douban.com/mpic/s1630860.jpg" class="poster-left" alt="Cinderella Man"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1418519/"&gt;Cinderella Man (最後一擊)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;沒什麼意思的中譯名，最多只能表示出這是一部拳擊片。&lt;br /&gt;&lt;br /&gt;雖然說是美麗境界的導演和主角，但主題不是說這麼特別，所以整部片給的人的感動並不這麼強烈，不過這大概也因為我不是生活在那個環境的原因。片中的經濟大蕭條到是也讓人印象深刻，大概我的有生之年世界都是不斷的發展，所以沒有辦法發出那種 "good old day" 的感嘆。&lt;br /&gt;&lt;br /&gt;Russell Crowe 還是不負期望，仍然把角色演得傳神，不過這角色本來就是他的 style ，所以給人的衝擊沒這麼大。而 Renée Zellweger 到是演得不錯。&lt;br /&gt;這一片還有一個讓我印象深刻的地方，就是他展現出來的拳擊場真的有像漫畫中那種氣勢，反而在電視上真的拳擊就什麼感覺了 (所以我是看不懂拳擊的)。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.flickr.com/26/51401722_a2a0f1559c.jpg"/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4396383841820229248?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4396383841820229248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4396383841820229248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4396383841820229248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4396383841820229248'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/10/cinderella-man.html' title='Cinderella Man'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4094517594842598757</id><published>2005-10-11T01:17:00.000+08:00</published><updated>2006-12-07T18:34:21.264+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>各種 database 對於長字串的測試</title><content type='html'>* 測試字串長度 : 13745 characters, 開頭為 "中文碁(方方土)" 之後為英數字&lt;br /&gt;&lt;br /&gt;hsql&lt;br /&gt;* 測試版本 : 1.8.0&lt;br /&gt;* JDBC : 1.8.0&lt;br /&gt;* 型態 : LONGVARCHAR&lt;br /&gt;* 新增資料 : 可使用 setString 和 setCharacterStream&lt;br /&gt;* 取出資料 : 使用 getString&lt;br /&gt;* unicode : 沒問題&lt;br /&gt;&lt;br /&gt;DB2&lt;br /&gt;* 測試版本 : 7&lt;br /&gt;* JDBC : ?&lt;br /&gt;* 型態 : LONG VARCHAR&lt;br /&gt;* 新增資料 : 可使用 setString 和 setCharacterStream&lt;br /&gt;* 取出資料 : 使用 getString&lt;br /&gt;* unicode : unicode 支援以 database 為單位, 如果建立 database 時沒有使用 unicode 的話，之後使用字串則 "碁" "方方土" 都會變成 ?&lt;br /&gt;&lt;br /&gt;MSSql server&lt;br /&gt;* 測試版本 : 8&lt;br /&gt;* JDBC : jtds 1.1&lt;br /&gt;* 型態 : text&lt;br /&gt;* 新增資料 : 可使用 setString 和 setCharacterStream&lt;br /&gt;* 取出資料 : 使用 getString&lt;br /&gt;* unicode : 沒問題&lt;br /&gt;&lt;br /&gt;MySql&lt;br /&gt;* 測試版本 : 4.1&lt;br /&gt;* JDBC : mysql-connector-java-3.1.10&lt;br /&gt;* 型態 : text&lt;br /&gt;* 新增資料 : 可使用 setString。如使用 setCharacterStream ，雖然不會有錯誤訊息，但如果字串內含中文時，在取出字串時會發生長度不一致的問題。&lt;br /&gt;* 取出資料 : 使用 getString&lt;br /&gt;* unicode : unicode 支援以 table 為單位，在新增 table 時需指定 character set utf8，在 connection string 中需多加上 ?useUnicode=true&amp;characterEncoding=utf-8 才可以正常使用中文。&lt;br /&gt;&lt;br /&gt;Oracle&lt;br /&gt;* 測試版本 : 8.1&lt;br /&gt;* JDBC : mysql-connector-java-3.1.10&lt;br /&gt;* 型態 : LONG&lt;br /&gt;* 新增資料 : 字串長度在 4000 以下時可用 setString , 在 4000 以上時必需用 setCharacterString&lt;br /&gt;* 取出資料 : 使用 getString&lt;br /&gt;* unicode : unicode 支援以 database 為單位。&lt;br /&gt;* 型態 : BLOB ( LONG 在 Oracle 較新版本中不建議使用，需改用 Blob 或 Clob ，但在 8.1 中無法成功使用 Clob )&lt;br /&gt;* 新增資料 : 必需使用以下步驟&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;            conn.setAutoCommit(false);&lt;br /&gt;            PreparedStatement stmt = conn.prepareStatement("insert into TESTBLOB (id, LONGVARCHARDATA) values(?, empty_blob())");&lt;br /&gt;            stmt.setInt(1, 0);&lt;br /&gt;            stmt.execute();&lt;br /&gt;            stmt.close();&lt;br /&gt;            &lt;br /&gt;            stmt = conn.prepareStatement("select LONGVARCHARDATA from TESTBLOB where id = ? for update nowait");&lt;br /&gt;            stmt.setInt(1, 0);&lt;br /&gt;            ResultSet rs = stmt.executeQuery();&lt;br /&gt;            rs.next();&lt;br /&gt;            Blob blob = rs.getBlob("LONGVARCHARDATA");&lt;br /&gt;            OutputStream os = ((oracle.sql.BLOB)blob).getBinaryOutputStream();&lt;br /&gt;            CopyUtils.copy(data.getBytes(CharsetNames.UTF8), os);&lt;br /&gt;            os.close();&lt;br /&gt;            conn.commit();&lt;br /&gt;            conn.setAutoCommit(true);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;* 取出資料 : 必需使用以下步驟&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;            stmt = conn.prepareStatement("select * from TESTBLOB");&lt;br /&gt;            rs = stmt.executeQuery();&lt;br /&gt;            rs.next();&lt;br /&gt;            blob = rs.getBlob("LONGVARCHARDATA");&lt;br /&gt;            &lt;br /&gt;            InputStream is = blob.getBinaryStream();&lt;br /&gt;            String res = new String(StreamUtils.toByteArray(is), CharsetNames.UTF8);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;* unicode : unicode 支援以 database 為單位。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;結論：似乎沒有完美的解法，都必需判斷 database 的種類來決定用法。&lt;br /&gt;&lt;br /&gt;測試程式：&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;package test.jdbc;&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.InputStream;&lt;br /&gt;import java.io.OutputStream;&lt;br /&gt;import java.io.StringReader;&lt;br /&gt;import java.sql.Blob;&lt;br /&gt;import java.sql.Connection;&lt;br /&gt;import java.sql.DriverManager;&lt;br /&gt;import java.sql.PreparedStatement;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;&lt;br /&gt;import junit.framework.TestCase;&lt;br /&gt;&lt;br /&gt;import com.formosoft.util.CharsetNames;&lt;br /&gt;import com.formosoft.util.io.CopyUtils;&lt;br /&gt;import com.formosoft.util.io.StreamUtils;&lt;br /&gt;&lt;br /&gt;public class BlobTest extends TestCase {&lt;br /&gt;    static String data = &lt;br /&gt;            "中文碁堃a12312312312a" + &lt;br /&gt;            "xxxx.....";&lt;br /&gt;&lt;br /&gt;    static {&lt;br /&gt;        System.out.println(data.substring(0, 10) + " : " + data.length());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    void executeSql(Connection conn, String sql) throws SQLException {&lt;br /&gt;        PreparedStatement stmt = conn.prepareStatement(sql);&lt;br /&gt;        stmt.execute();&lt;br /&gt;        stmt.close();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    void doQueryStringTest(Connection conn) throws SQLException, IOException {&lt;br /&gt;        PreparedStatement stmt = null;&lt;br /&gt;        String dbname = conn.getMetaData().getDatabaseProductName();&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            stmt = conn.prepareStatement("select * from TESTBLOB");&lt;br /&gt;            ResultSet rs = stmt.executeQuery();&lt;br /&gt;            rs.next();&lt;br /&gt;            String res = rs.getString("LONGVARCHARDATA");&lt;br /&gt;&lt;br /&gt;            System.out.println(dbname + " : " + res.substring(0, 10) + " : " + res.length() );&lt;br /&gt;            assertEquals(data.length(), res.length());&lt;br /&gt;            assertEquals(data, res);&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        } finally {&lt;br /&gt;            stmt.close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    void doInsertStringTest(Connection conn) throws SQLException, IOException {&lt;br /&gt;        PreparedStatement stmt = null;&lt;br /&gt;        try {&lt;br /&gt;            stmt = conn.prepareStatement("insert into TESTBLOB (id, LONGVARCHARDATA) values(?, ?)");&lt;br /&gt;            for (int i = 0; i &lt; 10; i++) {&lt;br /&gt;                stmt.setInt(1, i);&lt;br /&gt;                stmt.setString(2, data);&lt;br /&gt;                stmt.executeUpdate();&lt;br /&gt;            }&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        } finally {&lt;br /&gt;            stmt.close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    void doInsertCharacterStreamTest(Connection conn) throws SQLException, IOException {&lt;br /&gt;        PreparedStatement stmt = null;&lt;br /&gt;        try {&lt;br /&gt;            stmt = conn.prepareStatement("insert into TESTBLOB (id, LONGVARCHARDATA) values(?, ?)");&lt;br /&gt;            for (int i = 0; i &lt; 10; i++) {&lt;br /&gt;                stmt.setInt(1, i);&lt;br /&gt;                stmt.setCharacterStream(2, new StringReader(data), data.length());&lt;br /&gt;                stmt.executeUpdate();&lt;br /&gt;            }&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        } finally {&lt;br /&gt;            stmt.close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    public void testStringHsql() throws Exception {&lt;br /&gt;        Class.forName("org.hsqldb.jdbcDriver");&lt;br /&gt;        Connection conn = null;&lt;br /&gt;        try {&lt;br /&gt;            conn = DriverManager.getConnection("jdbc:hsqldb:mem:test");&lt;br /&gt;            executeSql(conn,&lt;br /&gt;                    "create table TESTBLOB(id int PRIMARY KEY, VARCHARDATA VARCHAR(10), LONGVARCHARDATA LONGVARCHAR, LONGVARCHARDATA2 LONGVARCHAR)");&lt;br /&gt;            &lt;br /&gt;            doInsertStringTest(conn);&lt;br /&gt;            doQueryStringTest(conn);&lt;br /&gt;        } finally {&lt;br /&gt;            if (conn != null) {&lt;br /&gt;                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;                conn.close();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void testStringDb2() throws Exception {&lt;br /&gt;        Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");&lt;br /&gt;        Connection conn = null;&lt;br /&gt;        try {&lt;br /&gt;            conn = DriverManager.getConnection("jdbc:db2://sphinxtest/TCBCMS", "CMS", "CMS");&lt;br /&gt;            executeSql(conn,&lt;br /&gt;                    "create table TESTBLOB(id int PRIMARY KEY NOT NULL, VARCHARDATA VARCHAR(10), LONGVARCHARDATA LONG VARCHAR, LONGVARCHARDATA2 LONG VARCHAR)");&lt;br /&gt;            &lt;br /&gt;            doInsertStringTest(conn);&lt;br /&gt;            doQueryStringTest(conn);&lt;br /&gt;&lt;br /&gt;        } finally {&lt;br /&gt;            if (conn != null) {&lt;br /&gt;                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;                conn.close();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void testStringMSSql() throws Exception {&lt;br /&gt;        Class.forName("net.sourceforge.jtds.jdbc.Driver");&lt;br /&gt;        Connection conn = null;&lt;br /&gt;        try {&lt;br /&gt;            conn = DriverManager.getConnection("jdbc:jtds:sqlserver://sphinxtest/Test_CA", "ca2admin", "ca2admin");&lt;br /&gt;            executeSql(conn, "create table TESTBLOB(id int PRIMARY KEY, VARCHARDATA VARCHAR(10), LONGVARCHARDATA text)");&lt;br /&gt;            &lt;br /&gt;            doInsertStringTest(conn);&lt;br /&gt;            doQueryStringTest(conn);&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            System.out.println(e.getMessage());&lt;br /&gt;        } finally {&lt;br /&gt;            if (conn != null) {&lt;br /&gt;                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;                conn.close();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public void testStringMySql() throws Exception {&lt;br /&gt;        Class.forName("com.mysql.jdbc.Driver");&lt;br /&gt;        Connection conn = null;&lt;br /&gt;        try {&lt;br /&gt;            conn = DriverManager.getConnection("jdbc:mysql://sp-server/test?useUnicode=true&amp;characterEncoding=utf-8", "mysqltest", "mysqltest");&lt;br /&gt;            executeSql(conn, "create table TESTBLOB(id int PRIMARY KEY, VARCHARDATA VARCHAR(10), LONGVARCHARDATA TEXT) character set utf8");&lt;br /&gt;            &lt;br /&gt;            doInsertStringTest(conn);&lt;br /&gt;            doQueryStringTest(conn);&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            System.out.println(e.getMessage());&lt;br /&gt;        } finally {&lt;br /&gt;            if (conn != null) {&lt;br /&gt;                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;                conn.close();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    public void testCharacterStreamHsql() throws Exception {&lt;br /&gt;        Class.forName("org.hsqldb.jdbcDriver");&lt;br /&gt;        Connection conn = null;&lt;br /&gt;        try {&lt;br /&gt;            conn = DriverManager.getConnection("jdbc:hsqldb:mem:test");&lt;br /&gt;            executeSql(conn,&lt;br /&gt;                    "create table TESTBLOB(id int PRIMARY KEY, VARCHARDATA VARCHAR(10), LONGVARCHARDATA LONGVARCHAR, LONGVARCHARDATA2 LONGVARCHAR)");&lt;br /&gt;            &lt;br /&gt;            doInsertCharacterStreamTest(conn);&lt;br /&gt;            doQueryStringTest(conn);&lt;br /&gt;        } finally {&lt;br /&gt;            if (conn != null) {&lt;br /&gt;                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;                conn.close();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void testCharacterStreamDb2() throws Exception {&lt;br /&gt;        Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");&lt;br /&gt;        Connection conn = null;&lt;br /&gt;        try {&lt;br /&gt;            conn = DriverManager.getConnection("jdbc:db2://sphinxtest/TCBCMS", "CMS", "CMS");&lt;br /&gt;            executeSql(conn,&lt;br /&gt;                    "create table TESTBLOB(id int PRIMARY KEY NOT NULL, VARCHARDATA VARCHAR(10), LONGVARCHARDATA LONG VARCHAR, LONGVARCHARDATA2 LONG VARCHAR)");&lt;br /&gt;            &lt;br /&gt;            doInsertCharacterStreamTest(conn);&lt;br /&gt;            doQueryStringTest(conn);&lt;br /&gt;&lt;br /&gt;        } finally {&lt;br /&gt;            if (conn != null) {&lt;br /&gt;                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;                conn.close();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void testCharacterStreamMSSql() throws Exception {&lt;br /&gt;        Class.forName("net.sourceforge.jtds.jdbc.Driver");&lt;br /&gt;        Connection conn = null;&lt;br /&gt;        try {&lt;br /&gt;            conn = DriverManager.getConnection("jdbc:jtds:sqlserver://sphinxtest/Test_CA", "ca2admin", "ca2admin");&lt;br /&gt;            executeSql(conn, "create table TESTBLOB(id int PRIMARY KEY, VARCHARDATA VARCHAR(10), LONGVARCHARDATA text)");&lt;br /&gt;            &lt;br /&gt;            doInsertCharacterStreamTest(conn);&lt;br /&gt;            doQueryStringTest(conn);&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            System.out.println(e.getMessage());&lt;br /&gt;        } finally {&lt;br /&gt;            if (conn != null) {&lt;br /&gt;                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;                conn.close();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;//    public void testCharacterStreamMySql() throws Exception {&lt;br /&gt;//        Class.forName("com.mysql.jdbc.Driver");&lt;br /&gt;//        Connection conn = null;&lt;br /&gt;//        try {&lt;br /&gt;//            conn = DriverManager.getConnection("jdbc:mysql://sp-server/test?useUnicode=true&amp;characterEncoding=utf-8", "mysqltest", "mysqltest");&lt;br /&gt;//            executeSql(conn, "create table TESTBLOB(id int PRIMARY KEY, VARCHARDATA VARCHAR(10), LONGVARCHARDATA TEXT) character set utf8");&lt;br /&gt;//            &lt;br /&gt;//            doInsertCharacterStreamTest(conn);&lt;br /&gt;//            doQueryStringTest(conn);&lt;br /&gt;//        } catch (Exception e) {&lt;br /&gt;//            System.out.println(e.getMessage());&lt;br /&gt;//        } finally {&lt;br /&gt;//            if (conn != null) {&lt;br /&gt;//                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;//                conn.close();&lt;br /&gt;//            }&lt;br /&gt;//        }&lt;br /&gt;//    }&lt;br /&gt;    &lt;br /&gt;    public void testCharacterStreamOracleLong() throws Exception {&lt;br /&gt;        Class.forName("oracle.jdbc.OracleDriver");&lt;br /&gt;        Connection conn = null;&lt;br /&gt;        try {&lt;br /&gt;            conn = DriverManager.getConnection("jdbc:oracle:thin:@sp-server:1521:spserver", "BSP_FACT2", "123123");&lt;br /&gt;            executeSql(conn, "create table TESTBLOB(id int PRIMARY KEY, VARCHARDATA VARCHAR2(10), LONGVARCHARDATA LONG)");&lt;br /&gt;            &lt;br /&gt;            doInsertCharacterStreamTest(conn);&lt;br /&gt;            doQueryStringTest(conn);&lt;br /&gt;        } finally {&lt;br /&gt;            if (conn != null) {&lt;br /&gt;                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;                conn.close();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void testOracleClob() throws Exception {&lt;br /&gt;        Class.forName("oracle.jdbc.OracleDriver");&lt;br /&gt;        Connection conn = null;&lt;br /&gt;        try {&lt;br /&gt;            conn = DriverManager.getConnection("jdbc:oracle:thin:@sp-server:1521:spserver", "BSP_FACT2", "123123");&lt;br /&gt;            executeSql(conn, "create table TESTBLOB(id int PRIMARY KEY, VARCHARDATA VARCHAR2(10), LONGVARCHARDATA BLOB)");&lt;br /&gt;            &lt;br /&gt;            conn.setAutoCommit(false);&lt;br /&gt;            PreparedStatement stmt = conn.prepareStatement("insert into TESTBLOB (id, LONGVARCHARDATA) values(?, empty_blob())");&lt;br /&gt;            stmt.setInt(1, 0);&lt;br /&gt;            stmt.execute();&lt;br /&gt;            stmt.close();&lt;br /&gt;            &lt;br /&gt;            stmt = conn.prepareStatement("select LONGVARCHARDATA from TESTBLOB where id = ? for update nowait");&lt;br /&gt;            stmt.setInt(1, 0);&lt;br /&gt;            ResultSet rs = stmt.executeQuery();&lt;br /&gt;            rs.next();&lt;br /&gt;            Blob blob = rs.getBlob("LONGVARCHARDATA");&lt;br /&gt;            OutputStream os = ((oracle.sql.BLOB)blob).getBinaryOutputStream();&lt;br /&gt;            CopyUtils.copy(data.getBytes(CharsetNames.UTF8), os);&lt;br /&gt;            os.close();&lt;br /&gt;            conn.commit();&lt;br /&gt;            conn.setAutoCommit(true);&lt;br /&gt;            &lt;br /&gt;            stmt = conn.prepareStatement("select * from TESTBLOB");&lt;br /&gt;            rs = stmt.executeQuery();&lt;br /&gt;            rs.next();&lt;br /&gt;            blob = rs.getBlob("LONGVARCHARDATA");&lt;br /&gt;            &lt;br /&gt;            InputStream is = blob.getBinaryStream();&lt;br /&gt;            String res = new String(StreamUtils.toByteArray(is), CharsetNames.UTF8);&lt;br /&gt;            assertEquals(res.length(), data.length());&lt;br /&gt;            assertEquals(res, data);&lt;br /&gt;        } finally {&lt;br /&gt;            if (conn != null) {&lt;br /&gt;                executeSql(conn, "drop table TESTBLOB");&lt;br /&gt;                conn.close();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4094517594842598757?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4094517594842598757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4094517594842598757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4094517594842598757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4094517594842598757'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/10/database.html' title='各種 database 對於長字串的測試'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-3497509182613254796</id><published>2005-09-25T00:19:00.000+08:00</published><updated>2006-12-09T03:15:59.908+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>La Marche de l'empereur</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1436142.jpg" title="La Marche de l'empereur"&gt;&lt;img src="http://www.douban.com/mpic/s1436142.jpg" class="poster-left" alt="La Marche de l'empereur"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1420021/"&gt;La Marche de l'empereur (企鵝寶貝)&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;''大人有兩面''&lt;br /&gt;&lt;br /&gt;''白色是他們滿載的肚子回來了''&lt;br /&gt;&lt;br /&gt;''黑色是肚子空空地出去覓食''&lt;br /&gt;&lt;br /&gt;''我們，背後跟前面一樣，都是灰色的''&lt;br /&gt;&lt;br /&gt;''肚子總是餓的…''&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;原本聽說是比較偏記錄片的形式，但因為音樂對劇情的加強，所以並不枯燥。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-3497509182613254796?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/3497509182613254796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=3497509182613254796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3497509182613254796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3497509182613254796'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/09/la-marche-de-lempereur.html' title='La Marche de l&apos;empereur'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8484180544048541525</id><published>2005-09-12T00:13:00.000+08:00</published><updated>2006-12-09T03:17:21.345+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>Sin City</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1326079.jpg" title="Sin City"&gt;&lt;img src="http://www.douban.com/mpic/s1326079.jpg" class="poster-left" alt="Sin City"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1309027/"&gt;Sin City (萬惡城市)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;以劇情來說，是個很血腥很暴力很黑暗的片子，以演員來說，聽說片中非常多大牌 (雖然我叫得出名字的只有布魯斯威利)，但這些都不重要。&lt;br /&gt;&lt;br /&gt;全片以"近"黑白的方式呈現，把美式漫畫的感覺非常充分的表現出來，而且不只是畫面是漫畫的表現，連分鏡方式，劇情的進行，動作的呈現都非常有美式漫畫的感覺，應該叫他是用電影方式來呈現的漫畫才對 :) 。很有特色的電影，而且光以劇情來說也讓人看得很過癮。&lt;br /&gt;&lt;br /&gt;另一件另人驚訝的是，居然是輔導級的，裡面那種槍殺砍殺虐殺的方式，很多恐怖片驚悚片都不夠看，大概是裡面見"紅"不多吧 (難不成電影分級是用程式判斷有多少紅色來分的嗎？)&lt;br /&gt;&lt;a rel="lightbox" href="http://static.flickr.com/26/42631926_a91e6fb2d5.jpg"&gt;&lt;img src="http://static.flickr.com/26/42631926_a91e6fb2d5.jpg"/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8484180544048541525?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8484180544048541525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8484180544048541525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8484180544048541525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8484180544048541525'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/09/sin-city.html' title='Sin City'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4051916678342516877</id><published>2005-09-11T00:08:00.000+08:00</published><updated>2006-12-09T09:25:42.032+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>いま、会いにゆきます</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1400422.jpg" title="いま、会いにゆきます"&gt;&lt;img src="http://www.douban.com/mpic/s1400422.jpg" class="poster-left" alt="いま、会いにゆきます"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1395080/"&gt;いま、会いにゆきます (現在，很想見你)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;光看劇情介紹，會讓我想到以前看的一片不是很好的"&lt;a href="http://www.douban.com/subject/1308720/"&gt;黃泉がえり&lt;/a&gt; (黃泉路，黃泉歸來)"，剛好兩片都是竹內結子主演。不過雖然劇情有點類似，都是有關死者歸來，但"黃"是比較著重在死者歸來這件事上，討論這件事對生者的影響，而"現"是比較著重男女主角的愛情。&lt;br /&gt;&lt;br /&gt;劇情故事其實不是重點，說故事的方式才是重點。說實話，我覺得黃泉路的結局處理得不是很好（讓人覺得在打歌似的@@），而"現”雖然前面大部分的劇情會讓人哭得稀哩嘩啦(我是沒哭啦)，但最後的結局卻可以巧妙的轉變成溫暖的感覺，至少應該會帶著笑容看到結束吧。導演土井裕泰，把這名字記起來…&lt;br /&gt;&lt;br /&gt;還好有人在旁邊翻譯，所以一些沒打字幕的文字也可以知道到底寫什麼，雖然對劇情沒有影響，但感覺就是不一樣…。女主角很漂亮，演得也很好，不過男主角真的蠻矬的，應該是故意找的吧。不過雖說男的矬，女的美，不過他們&lt;a href="http://www.atmovies.com.tw/news/news.asp?action=f&amp;news_no=43884"&gt;己經結婚了&lt;/a&gt;…＠＠  (小聲說：真是可惜了…)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4051916678342516877?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4051916678342516877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4051916678342516877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4051916678342516877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4051916678342516877'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/09/blog-post_11.html' title='いま、会いにゆきます'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-2044806481668975165</id><published>2005-09-05T00:07:00.000+08:00</published><updated>2006-12-19T13:01:44.915+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>十年鑄一劍</title><content type='html'>十年前，我終於有了自已的一台電腦（嚴格說是和我哥共用），那已經是一台 486 了，所以我並沒有那種用錄音帶來存資料的經驗。學編程是在有電腦之前，所以當我會寫（用筆）一些小小程式時，我卻連電腦都不曾碰過，但總的來說，有自己的電腦終究還是必需的，所以也算是一個新的開始。&lt;br /&gt;&lt;br /&gt;所以，也十年了。&lt;a href="http://www.norvig.com/21-days.html"&gt;有人說&lt;/a&gt;學一個專門技術至少要有十年的時間，所以我也把我這十年的時間花進去了，而且我也是在用這項手藝作為主要的經濟來源，但我仍不覺得算是了解編程這件事。我感覺這段時間一直都在一些表面上學習著，大學的成績不算好，研究所所學也不甚興趣，感覺像是一個老舊的瑞士刀，雖用途廣泛，卻不甚鋒利。&lt;br /&gt;&lt;br /&gt;還好，雖然自覺鑄劍不太成功，但總歸還是可以繼續鑄練下去。雖然不算是光芒畢露的絕世名劍，但總還算是可上場揮舞的傢伙。我想下一個十年，我應該還是會繼續鑄劍下去吧…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-2044806481668975165?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/2044806481668975165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=2044806481668975165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2044806481668975165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2044806481668975165'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/09/blog-post.html' title='十年鑄一劍'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-2102385785900062373</id><published>2005-09-02T00:03:00.000+08:00</published><updated>2006-12-19T13:01:35.276+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><category scheme='http://www.blogger.com/atom/ns#' term='Job'/><title type='text'>志不在此，何必強求</title><content type='html'>&lt;a href="http://dreamhead.blogbus.com/logs/2005/08/1404444.html"&gt;http://dreamhead.blogbus.com/logs/2005/08/1404444.html&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;只是大家的兴趣不在于此，工作嘛，何必如此辛苦。人家的努力方向并不在这，比人家水平高一些也就没什么值得骄傲的，因为大多数人不会介意刘翔跑得比自己快。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;這話說得也沒錯啦，就像在說給我聽似的。&lt;br /&gt;&lt;br /&gt;當我努力看了一本又一本技術書籍，一篇又一篇技術文件，每天規律地看技術討論，在家沒事就會復習一下以前看的東西，但耳邊的話題卻都是到哪裡玩，到哪裡吃，胖了幾公斤，哪輛車比較好，順便再告訴我一聲，"這個很難，大概要做很久，還是用原來的好了"。再不然就是說什麼我很厲害，有什麼問題問我比較快…&lt;br /&gt;&lt;br /&gt;然後我來想，大家志不在此，何必強求…&lt;br /&gt;&lt;br /&gt;嗯，我的確很在意別人比我強（可惜比我強的人太多太多了…），但卻不太在意我比別人胖（在意也沒用啦 @@，不過還是要減的啦…）。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jerry_cheng.blogs.com/view_points/2005/08/post_3.html"&gt;多一點任性的自愛&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-2102385785900062373?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/2102385785900062373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=2102385785900062373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2102385785900062373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2102385785900062373'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/09/httpdreamhead.html' title='志不在此，何必強求'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7942942672584497552</id><published>2005-09-02T00:02:00.000+08:00</published><updated>2006-12-07T00:02:57.724+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Map'/><title type='text'>本地 google</title><content type='html'>&lt;a href="http://bendi.google.com"&gt;http://bendi.google.com&lt;/a&gt; 本地搜索&lt;br /&gt;&lt;br /&gt;Google 果然對於中國市場是下了重手，不過不知道為什麼要獨立於 map.google.com 而對中文另外弄個網址來放? 日本地圖就是直接放在 map.google.com 上的。不過，google 還是厲害的，一些比較大的城市的地圖都蠻詳細的，看起來比較重要的地標好像都有標出來…。而且這個網站一出現就是商業味十足…&lt;br /&gt;&lt;br /&gt;BTW，台灣果然不是中國的一部分 :) 這裡是看不到台灣的地圖的…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7942942672584497552?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7942942672584497552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7942942672584497552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7942942672584497552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7942942672584497552'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/09/google.html' title='本地 google'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-3012745799542324285</id><published>2005-08-31T23:58:00.000+08:00</published><updated>2006-12-19T13:01:21.207+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Log'/><title type='text'>dp.SyntaxHighlighter</title><content type='html'>&lt;a href="http://dreamprojections.com/syntaxhighlighter/Default.aspx"&gt;dp.SyntaxHighlighter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;javascript 的程式碼美化工具，還算簡單好用。我覺得比起一些在 server 端處理的工具來得好，一來不花 server 資源，二來 client 不支援 css or javascript 頂多只是沒效果而已，程式不會變亂。不過沒有 Java ，所以就用 javascript 來代替… (奇怪，連 Delphi 都有 @@) &lt;br /&gt;&lt;br /&gt;現在不管多加什麼功能，一切都以不增加 server 負擔為原則，所以多用 javascript 就沒錯了，尤其是像 delicious, douban 這種 scriptlet ，再加上多用 flickr ，真是把本身 server 的流量降到最低 :)&lt;br /&gt;&lt;br /&gt;JAVA&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class VAServlet extends CommonServlet {&lt;br /&gt;    private static Logger logger = Logger.getLogger(VAServlet.class);&lt;br /&gt;&lt;br /&gt;    protected Logger getLogger() {&lt;br /&gt;        return logger;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;XML&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;br /&gt;&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" &lt;br /&gt;                         "http://java.sun.com/dtd/web-app_2_3.dtd"&gt;&lt;br /&gt;&lt;web-app&gt;&lt;br /&gt; &lt;servlet&gt;&lt;br /&gt;  &lt;servlet-name&gt;AcceptPKCS72&lt;/servlet-name&gt;&lt;br /&gt;  &lt;servlet-class&gt;com.formosoft.ra.taica2.AcceptPKCS7&lt;/servlet-class&gt;&lt;br /&gt;  &lt;init-param&gt;&lt;br /&gt;   &lt;param-name&gt;DBPass&lt;/param-name&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;SQL&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;select * from account where accountid = 1;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-3012745799542324285?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/3012745799542324285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=3012745799542324285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3012745799542324285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3012745799542324285'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/08/dpsyntaxhighlighter.html' title='dp.SyntaxHighlighter'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-2441807935369995458</id><published>2005-08-22T23:57:00.000+08:00</published><updated>2006-12-19T13:00:56.977+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Info'/><title type='text'>Quake 3 Arena source code release</title><content type='html'>在&lt;a href="http://wctang.blogspot.com/2005/08/doom.html"&gt;這篇&lt;/a&gt;提到 Q3 快 Open 了。&lt;br /&gt;&lt;br /&gt;它前幾天 &lt;a href="http://planetquake3.net/download.php?op=fileid&amp;lid=2214"&gt;Open 了&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;而且，它只有 5.46 MB ，天啊…，寫程式真是越寫越沒信心…。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-2441807935369995458?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/2441807935369995458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=2441807935369995458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2441807935369995458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2441807935369995458'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/08/quake-3-arena-source-code-release.html' title='Quake 3 Arena source code release'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-2669669399019343660</id><published>2005-08-17T23:56:00.000+08:00</published><updated>2006-12-19T13:00:46.477+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Log'/><title type='text'>feedburner</title><content type='html'>所有的 feed 改到 feedburner  &lt;br /&gt;&lt;br /&gt;雖然我也把所有 action=journal 的 request 導到 &lt;a href="http://feeds.feedburner.com/wctang"&gt;http://feeds.feedburner.com/wctang&lt;/a&gt; ，不過最好還是改一下 feed 的位置。&lt;br /&gt;&lt;br /&gt;如果 feed 有爛掉的情況就通知我一下。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-2669669399019343660?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/2669669399019343660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=2669669399019343660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2669669399019343660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2669669399019343660'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/08/feedburner.html' title='feedburner'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7082523859053485891</id><published>2005-08-15T23:45:00.000+08:00</published><updated>2006-12-19T13:00:32.948+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>戲棚下站久就是你的</title><content type='html'>"戲棚下站久就是你的"，這句話不太適用我們這一行，至少在技術上不適用。&lt;br /&gt;&lt;br /&gt;就算不懂 COM ，你一樣可以用寫 ATL 寫 Control 。就算不種 SDK ，你一樣可以用 BCB 寫 Windows 程式。就算不懂 Http ，還是可以寫 JSP/PHP/ASP 。就算不懂 OO ，沒看過 Design Pattern ，還是可以 Copy/Past 來寫 Java 。就算不懂 Phong Shading, Z-Buffer ，還是可以用 GL/D3D/Java3D 來寫 3D ...&lt;br /&gt;&lt;br /&gt;但這些"坎兒"如果沒有跨過，就沒有辦法真正的了解到底在做什麼，到底在解決什麼問題。這些並不是經驗可以補足的，有時經驗只是讓偏見更加強。沒有認真面對這些挑戰，就只能一直在外圍摸摸碰碰，看不到宗廟之美、百官之富，跨過了這些困難，就是完全不同的景色。但人非萬能，就算是天才也只能專精，找到自己的領域，然後努力跨過這些困難吧。&lt;br /&gt;&lt;br /&gt;怪了，我怎麼會寫這種勵志的東西呢，共勉之吧 @@&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7082523859053485891?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7082523859053485891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7082523859053485891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7082523859053485891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7082523859053485891'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/08/blog-post.html' title='戲棚下站久就是你的'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-1603385805235169068</id><published>2005-08-15T23:44:00.000+08:00</published><updated>2006-12-06T23:45:10.419+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Maven</title><content type='html'>之前對它的印象不太好，好像是因為速度太慢，它自行維護 repository ，預設路徑和我的習慣不同等原因，不過主要的原因還是我不熟悉它的運作方法。&lt;br /&gt;&lt;br /&gt;不過最近再試用，卻又感覺這些缺點好像又都沒什麼問題了，速度明顯變快而到了可以接受的程度，而 repository 不讓他維護自己其實也是在維護一份，還不如有個公定的放法，以免每個人的位置都不同；而預設路徑的問題其實都是可以修改的，不知道是它的文件比較完整了還是如何，覺得現在看它好像一切設計的也都蠻有道理的。雖然 ant 在 1.6 以後也加強了一些功能，但總的來說還是 Maven 的作法比較適合公司的 Project 管理。不過現在好像正在 Maven1 和 Maven2 的交換之際，而且好像還不太相容，呼呼，果然還是有點麻煩的…@@&lt;br /&gt;&lt;br /&gt;以後應該會慢慢的把建構系統換成 Maven 了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-1603385805235169068?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/1603385805235169068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=1603385805235169068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1603385805235169068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1603385805235169068'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/08/maven.html' title='Maven'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-350534992246675438</id><published>2005-08-14T23:37:00.000+08:00</published><updated>2006-12-19T13:00:11.101+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>DOOM启世录</title><content type='html'>&lt;a rel="lightbox" href="http://douban.com/lpic/s1115610.jpg"&gt;&lt;img src="http://douban.com/mpic/s1115610.jpg"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1152971/"&gt;DOOM启世录&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;書名是簡體的，因為我就是看簡體的。原書是 [&lt;a href="http://www.randomhouse.com/catalog/display.pperl?isbn=9780375505249"&gt;Masters of Doom&lt;/a&gt;] 。&lt;br /&gt;&lt;br /&gt;一本充滿美國精神的英雄故事。說的是 id software 這個作風特立獨行的公司的開創過程。雖然出場人物也不算少，但主角還是 &lt;a href="http://en.wikipedia.org/wiki/John_Carmack"&gt;John Carmack&lt;/a&gt; 和 &lt;a href="http://en.wikipedia.org/wiki/John_Romero"&gt;John Romero&lt;/a&gt;，兩個 John 。Carmack 的確是讓人從心裡佩服的 Hacker ，而 Romero 也是讓人從心裡惋惜的人物。 Carmack 的確是個奇怪的人，雖然他仍是在市場打滾的人，但骨子裡還是個單打獨鬥的 Hacker ，而他將公司的核心資產 Open Source 的態度 (Quick 3 就&lt;a href="http://www.gamespy.com/articles/641/641662p1.html"&gt;快要 Open&lt;/a&gt;了)，他對夢想的專注，不愧是被人稱為天才的人物。但如果沒有 Romero ， Carmack 應該會一直會在地下當 Hacker 吧。說實話，雖然像我這種技術人員，對於經營管理總是會有點不屑，但事實上，夠格的技術人不少（當然像 Carmack 這種水準的也不多啦…），但夠格的經營管理人才卻難找。雖然 Romero 後來變得太過自負而被打落舞台，但在 id 開始之際，如果沒有他，就算 Carmack 再強也沒能力成立公司，更別說是賺大錢了。但不管怎麼說，沒有夢是無法成功的， id 本身就是個夢的實現。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/thumb/4/44/John_carmack.jpg/180px-John_carmack.jpg"/&gt; Carmack 真是蠻帥的…&lt;br /&gt;&lt;img src="http://media.gamespy.com/columns/image/article/641/641662/john-carmack-on-next-gen-consoles-and-game-development-20050812082344609.jpg"/&gt; 說不定要帥才會變強 @@ 真糟，我沒希望了…&lt;br /&gt;&lt;br /&gt;最後說一下翻譯。說實話，如果看簡體不反感的而且習慣的話，看簡體的譯本應該還是比看原文的快得多（尤其是這種小說類的）。而且，我想像如果是有繁體譯者的話，應該會隨便找個人來譯吧，反而不如簡體譯本會找個真正熟悉內容的譯者，不論其翻譯功力如何，至少熱情和內容掌握就好得多。&lt;br /&gt;&lt;br /&gt;看得很高興 :) 似乎還有很多可以說的，先留著發酵一下吧…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-350534992246675438?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/350534992246675438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=350534992246675438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/350534992246675438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/350534992246675438'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/08/doom.html' title='DOOM启世录'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5009700490517943128</id><published>2005-07-06T20:31:00.000+08:00</published><updated>2006-12-09T09:30:26.126+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Map'/><title type='text'>Google Earth</title><content type='html'>該怎麼說呢， Google 真是 killer application 的常客啊。雖然這玩意兒在 NASA World Wind 己經有類似的成果了，不過 Google 的版本不僅更好用，快速，而且還可看到除了美國以外的地方，更別提他還想提供搜尋餐廳之類的功能了。雖然 NASA World Wind 在美國有更多樣的地圖，而且還可以看到一些歷史事件的地球外觀，但這種功能就只是給研究用的，一般人光看 google 在跳轉地點時的動畫效果就被吸引過去了。&lt;br /&gt;&lt;br /&gt;之前在&lt;a href="http://wctang.blogspot.com/2005/02/blog.html"&gt;這篇&lt;/a&gt;提到用一堆有的沒的方式來找出你網站位置。好了，現在都不用了，請安裝 google earth ，用 placemark 標出你的位罝，在 palcemark 上選 direction from this ，就可以看到應該在 ICBM 中填什麼了。 GeoURL 也提供了&lt;a href="http://www.ldodds.com/projects/witw/"&gt;工具&lt;/a&gt;來把你的 tag 標到 google map 上 (感謝 google map api 開放)。我想馬上就會有一堆 blog map 是用 google map 來做了。(馬上來一個 &lt;a href="http://www.flashanywhere.net/map.cfm"&gt;http://www.flashanywhere.net/map.cfm&lt;/a&gt; )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5009700490517943128?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5009700490517943128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5009700490517943128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5009700490517943128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5009700490517943128'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/07/google-earth.html' title='Google Earth'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6491984968154270484</id><published>2005-06-30T20:29:00.000+08:00</published><updated>2006-12-19T13:00:01.721+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>量子電腦？</title><content type='html'>今天聽了一個沒什麼意思的 PKI 研討會，不過 PKI 沒什麼好說的，但是在講 RSA 時提到了量子電腦出來了之後，現在的密碼學就會崩潰。畢竟我還是搞了兩年的量子計算，提到量子電腦也讓我回想了一下論文的種種（痛苦@@），所以我想也來談談量子電腦…&lt;br /&gt;&lt;br /&gt;有人是用&lt;a href="http://www.moneydj.com/z/glossary/glexp_4497.asp.htm"&gt;這種&lt;/a&gt;觀點來看理解量子電腦，雖然量子效應的確快要影響到未來的矽晶元件，但這是個要解決的問題，而一般提到的量子電腦指的是利用量子效應的特性來做計算的功能。&lt;br /&gt;&lt;br /&gt;說實話，關於量子電腦&lt;a href="http://pub.iams.sinica.edu.tw/lib/jlting/qc.html"&gt;這篇&lt;/a&gt;已經把基本都講得差不多了，所以我講的就只是一般摘要和補充吧。&lt;br /&gt;&lt;br /&gt;量子效應是當物質非常小的時候會出現的一些特殊效應，在計算的層次上最好用的就是量子的平行性，其他的特性目前還沒看到在計算上有什麼特別的用處。這就說明了，量子電腦並不是對所有的問題都可以有明顯的加快的功能，主要是在平行運算的範疇，而且事實上目前能找出來的演算法也沒幾個，不過質因數分解的確是個非常好的示範，尤其是當有一大塊的密碼學是以其為根基。再來，雖然量子電腦好像被說得蠻厲害的，不過量子運算的極限還是無法解 NP Complete 的問題，所以世界上還有非常非常多的問題還是沒有好解法，就算真的有量子電腦實作出來。而且就算真的有量子電腦，也不可能出現在一般人桌上，量子電腦只有對少數特別的問題有好處，一般的計算是沒什麼好處的。&lt;br /&gt;&lt;br /&gt;而且，實用的量子電腦真的能出現嗎？我是抱悲觀的態度。前一陣子有新聞提到 IBM 作出小規模的量子計算（因數分解 15 :)），但大規模的計算的難度可不是像把 CPU 的電晶體加倍一樣，所以矽晶的下一步絕不是量子，而且下二步我想量子電腦也還沒出現…@@&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6491984968154270484?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6491984968154270484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6491984968154270484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6491984968154270484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6491984968154270484'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/06/blog-post.html' title='量子電腦？'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-2503349686543911543</id><published>2005-06-27T20:27:00.000+08:00</published><updated>2006-12-19T12:59:47.766+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Log'/><title type='text'>豆瓣 douban</title><content type='html'>其實也是蠻早就知道這個網站了，也就只是先註冊帳號試試看。其實最先看到的是 &lt;a href="http://bookswelike.net/"&gt;books we like&lt;/a&gt; ，當時看到就覺得這是個非常好的應用，不過 books we like 是英文的，介面倒不是問題，主要還是沒什麼中文書。&lt;a href="http://douban.com/"&gt;豆瓣&lt;/a&gt;上面就主要是中文書了，不過那時好像試用後發現不能自行新增書籍，所以就先放下了，不過現在已經可以讓使用者自行新增了，而且網站感覺也漸漸聚集了人氣，應該可以持續存在好一段時間吧 :) 。反正我網頁右側也沒放什麼東西，就放一些書啊電影的當作裝飾吧…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-2503349686543911543?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/2503349686543911543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=2503349686543911543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2503349686543911543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2503349686543911543'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/06/douban.html' title='豆瓣 douban'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8208938985265449000</id><published>2005-06-24T20:26:00.000+08:00</published><updated>2006-12-06T20:27:16.558+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Map'/><title type='text'>Google map</title><content type='html'>Google map 終於可以看到美國以外的地方了… :) 在衛星圖上指出自己住的地方真是個有趣的經驗&lt;br /&gt;* &lt;a href="http://maps.google.com/maps?ll=24.789394,121.009834&amp;spn=0.007843,0.010664&amp;t=k"&gt;http://maps.google.com/maps?ll=24.789394,121.009834&amp;spn=0.007843,0.010664&amp;t=k&lt;/a&gt; 新竹房間 (中間那個蠻大的方格狀區塊是園區門口變電所，北邊單獨一棟就是了)&lt;br /&gt;* &lt;a href="http://maps.google.com/maps?ll=24.773988,121.006454&amp;spn=0.007843,0.010664&amp;t=k"&gt;http://maps.google.com/maps?ll=24.773988,121.006454&amp;spn=0.007843,0.010664&amp;t=k&lt;/a&gt; 公司 (反正就是中間的某一家)&lt;br /&gt;* &lt;a href="http://maps.google.com/maps?ll=25.020880,121.522543&amp;spn=0.007843,0.010664&amp;t=k"&gt;http://maps.google.com/maps?ll=25.020880,121.522543&amp;spn=0.007843,0.010664&amp;t=k&lt;/a&gt; 胖貓房間 (台北真是個密集的地方)&lt;br /&gt;&lt;br /&gt;可惜現在高雄現在還沒有辦法看得很清楚…&lt;br /&gt;&lt;br /&gt;BTW，我不知道在哪裡聽到過，總統府是禁止空照圖和飛機穿越的，可是…&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maps.google.com/maps?ll=25.039591,121.512212&amp;spn=0.007843,0.010450&amp;t=k"&gt;http://maps.google.com/maps?ll=25.039591,121.512212&amp;spn=0.007843,0.010450&amp;t=k&lt;/a&gt; 總統府&lt;br /&gt;&lt;br /&gt;不知道是因為外國的衛星管不了還是這種程度的解析度其實沒差… @@&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;* &lt;a href="http://www.urmap.com/SearchEngine/"&gt;http://www.urmap.com/SearchEngine/&lt;/a&gt; UrMap ，這才是愛台灣啦 :) 介面非常類似 Google map , 雖只有台灣的部分，但做的程度夠詳細（至少看得到高雄的家了），功能也不錯。不過好像還不能經緯地位，所以不像 google 可以做地標連結 (沒仔細試...)，不過我想很快就有了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8208938985265449000?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8208938985265449000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8208938985265449000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8208938985265449000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8208938985265449000'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/06/google-map.html' title='Google map'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4947917695667723981</id><published>2005-06-23T20:25:00.000+08:00</published><updated>2006-12-19T12:59:25.866+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Linkist聯絡家</title><content type='html'>忘了是多久前在這個人脈網站上註冊的，最近常有人在寄信邀請加入人脈，不過，邀請我的人都是我連聽也沒聽過的人 :(。也許是我的個性就是不適合和陌生的人來往吧，我總是覺得在名單上放個連聽也沒聽過的人是件非常怪的事，就像我的 msn 是把全部名單都展開也不會出現捲軸的。反正我到現在為止我上這個網站上還是一個朋友也沒有。&lt;br /&gt;&lt;br /&gt;這個網站不知是因為定位的關係還是只是人還不多，反正感覺比之前看過的類似網站來的有條理，也比較不會有混亂的感覺 (在 friendster 上就有一堆卡通人物…)。在中文的相似網站中，它應該是目前最有前景的一個。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4947917695667723981?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4947917695667723981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4947917695667723981' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4947917695667723981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4947917695667723981'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/06/linkist.html' title='Linkist聯絡家'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-3211765498557104901</id><published>2005-06-06T20:21:00.000+08:00</published><updated>2006-12-06T20:24:17.717+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>Hide and Seek</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1354336.jpg" title="Hide and Seek"&gt;&lt;img src="http://www.douban.com/mpic/s1354336.jpg" class="poster-left" alt="Hide and Seek"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1308995/"&gt;Hide and Seek (捉迷藏)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;內有劇情，這是知道結局就可以不用看的片，請止步…&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;說實話，蠻老套的劇情。像這種東西，用膝蓋想也知道最後不會是一隻鬼跑出來，如果最後是個陌生人的話那也是很遜，這樣就變成"兇手就在我們這些人之中"的金田一劇情了。接下來就每一個人試試看答案就立刻出來了，這種雙重人格的劇情也是蠻老套的，所以很好猜。把兇手變成只是一個殺人魔少了點內心掙扎的感覺，沒什麼說服力。大致上就是拿來打發時間用的…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-3211765498557104901?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/3211765498557104901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=3211765498557104901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3211765498557104901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3211765498557104901'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/06/hide-and-seek.html' title='Hide and Seek'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-612641337453044120</id><published>2005-05-20T20:19:00.000+08:00</published><updated>2006-12-06T20:20:21.963+08:00</updated><title type='text'>Wiki 研習作業</title><content type='html'>這個是從 &lt;a href="http://www.oddmuse.org"&gt;Oddmuse&lt;/a&gt; 的引用連結看到的…&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ms1.ltes.ilc.edu.tw/modules/newbb/viewtopic.php?topic_id=26&amp;forum=6&amp;post_id=84"&gt;http://ms1.ltes.ilc.edu.tw/modules/newbb/viewtopic.php?topic_id=26&amp;forum=6&amp;post_id=84&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;剛看到我還以為是哪個國小老師居然會教小學生這種東東，不過好像是教師的研習作業，真可惜… @@&lt;br /&gt;&lt;br /&gt;不過，作業的答案統計一下， mediawiki 有三個 (wikipedia 不算是 wiki 系統的名稱)， kwiki 兩個， oddmuse 居然也有三個，不過應該是後面的人抄前面的人吧 :) 不過我想也是因為 oddmuse 的(官方)中文文件比較多一點吧(不過，好久沒更新了，有點對不起 Alex Schröder @@)。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-612641337453044120?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/612641337453044120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=612641337453044120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/612641337453044120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/612641337453044120'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/05/wiki.html' title='Wiki 研習作業'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-966451655555317454</id><published>2005-05-19T20:17:00.000+08:00</published><updated>2006-12-06T20:18:58.284+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>hsqldb - .lck</title><content type='html'>&lt;a href="http://hsqldb.sourceforge.net/"&gt;hsqldb&lt;/a&gt; 是個非常好用的工具，尤其是在 database 相關測試的時候。&lt;br /&gt;&lt;br /&gt;之前在使用的時候，在啟動的時候常常有事沒事就遇到這個 exception:&lt;br /&gt;&lt;blockquote&gt;java.sql.SQLException: The database is already in use by another process: org.hsqldb.persist.NIOLockFile@ffb01c86[file =D:\devel\test-hsql\testdb.lck, exists=true, locked=false, valid=false, fl =null]: java.lang.Exception: checkHeartbeat(): lock file [D:\devel\test-hsql\testdb.lck] is presumably locked by another process.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;之前一直不知道為什麼會有這樣的 exception ，明明是剛重新啟動的，為什麼會說有其它的 process 呢？而且過了一會兒就又可以成功啟動了。反正看訊息也知道把 .lck 砍了就會正常了。&lt;br /&gt;&lt;br /&gt;但最近的 1.8 版卻讓我之前的測試方式一直失敗，用 ant 塞資料進去，每次結束後資料庫內就空空如也…&lt;br /&gt;&lt;br /&gt;看了&lt;a href="http://raibledesigns.com/page/rd?anchor=upgrading_to_spring_1_2"&gt;這篇&lt;/a&gt;和&lt;a href="http://blog.taragana.com/index.php/archive/how-to-close-all-connections-in-hsqldb-to-prevent-a-locking-defect/ "&gt;這篇&lt;/a&gt;終於了解問題所在。其實不管用任何 dbms ，只要關閉 db 就要下 shutdown 的 sql  指令，只是一般來說 db 和自己的程式是不在一起，程式結束也不能將 db 給關了，但在 hsql 時，程式結束，關掉 jvm 前就要下 shutdown ， hsql 才會乖乖的將 memory 中的資料寫回 file 並清除 lock 。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-966451655555317454?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/966451655555317454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=966451655555317454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/966451655555317454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/966451655555317454'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/05/hsqldb-lck.html' title='hsqldb - .lck'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6960847460165514123</id><published>2005-04-19T20:10:00.000+08:00</published><updated>2006-12-19T12:59:06.630+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>java Date, Calendar, DateFormat</title><content type='html'>java.util.Date 就是用來表示某個時間點，內部是以一個 long 儲存，精度是 millisecond，表示自 GMT 1970-01-01 00:00:00 起經過的毫秒數，因為 long 是可以有正負號的，所以之前的目期就以負號表示，java 的 long 可用以表示前後約 290000000 年的時間。&lt;br /&gt;&lt;br /&gt;jdk 1.0 時，因為未考慮到世界各國時間的差異，所以都是以 Date 來表示和處理時間的問題，如可用 year, month, date 來建立一個 Date 物件，或是對某個時間點取出其年月日的資料，這些資料基本上都預設以 GMT 為基準。但考慮到世界各國的時區，曆法，和對時間的各種不同的表示法，所以從 jdk1.1 之後，對於時間處理就主要分成 Date, Calendar, DateFormat 三組 class 來處理，並需要配合 Locale 和 TimeZone。Date 單純用來表示某一時間點，而 Calendar 用來處理不同的曆法的問題， DateFormat 則處理不同時間的表法，原本 Date 的相關函式就全被標為 deprecated 了。&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Date&lt;/h4&gt;&lt;br /&gt;Date 是一個 wrapper class，目的只是存放其中 long 表示的時間值， new Date() 就是建立一個表示當下時間的 Date 物件，而取當下時間的 long 數值可以用 System.currentTimeMillis()。Date 其他大概就剩時間比較的功能了。&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Calendar&lt;/h4&gt;&lt;br /&gt;如果要取某個時間的年月日，先要知道是以什麼曆法來計算。 Java 用 Calendar 來處理曆法問題， Calendar 是 abstract class ，所以 java 預設定了 GregorianCalendar 這個 class，用以處理 Gregorian 曆法，而這也是一般計算西元的曆法，當用 Calendar.getInstance() 時預設就是回傳這個 class。也有其他的曆法，如 &lt;a href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/ChineseCalendar.html"&gt;http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/ChineseCalendar.html&lt;/a&gt; 和 &lt;a href="http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/HebrewCalendar.html"&gt;http://icu.sourceforge.net/apiref/icu4j/com/ibm/icu/util/HebrewCalendar.html&lt;/a&gt; 等。&lt;br /&gt;getInstance() 也可以 Locale 和 TimeZone 當參數傳入，則回傳以不同 TimeZone 為計算基準的 GregorianCalendar (Locale 是用在和計算星期相關的地方) 。&lt;br /&gt;基本上 Calendar 的用法就是取得一個 Calendar 的物件，設定給它時間，再取出其對應的年月日。 &lt;br /&gt;&lt;br /&gt;Calendar 沒有 getYear() 這一類的函式，因為每個不同的曆法就有不同的計算項目 (如農曆有節氣之類的東西，也有什麼子丑寅卯之類的計時方式)，所以只有 get() 的函式，而要再傳入要取得的項目，如 get(Calendar.YEAR), get(Calendar.DAY_OF_MONTH) 之類的。(值得注意的是，月份是以 0 起算的，所以 3 是四月)。&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;        Calendar calendar = Calendar.getInstance();&lt;br /&gt;        Date d = new Date();&lt;br /&gt;        calendar.setTime(d);&lt;br /&gt;        System.out.println("Year: " + calendar.get(Calendar.YEAR));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;另一個 Calendar 的用法就是要產生代表某年月日的 Date 物件，用法就是取得 Calendar ，設定年月日資料，再 getTime 取得 Date 。&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;        Calendar calendar = Calendar.getInstance();&lt;br /&gt;        calendar.set(2005, 3, 10, 0, 0, 0);&lt;br /&gt;        System.out.println(calendar.getTime());&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;使用 calendar 的 serialize 功能時常會遇到一個問題，就是 calendar 在 serialize 時是"不"會把物件內部的時間也存起來的，也就是說，當你 serialize calendar 再 deserialize 回來，其所表示的時間會被歸零。Calendar 內部雖然放了一個 Date，但它不是用來表示時間的，而是用來表示曆法的，所以要存放時間還是要用 Date 才是正解。&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;DateFormat&lt;/h4&gt;&lt;br /&gt;DateFormat 則是用來處理時間表示法，這個是最複雜的部分。DateFormat 仍然是個 abstract class ，預設我們會用 SimpleDateFormat 這個 class 。簡單的說， DateFormat 就是用來定義某種時間的表示法，可以用來將時間 print 出來，如下用法，&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;        DateFormat dateformat = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");&lt;br /&gt;        Date d = new Date();&lt;br /&gt;        System.out.println(dateformat.format(d));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;而 DateFormat 和 Calendar, Locale 有關， DateFormat 用 Calendar 來計算要顯示的數字，而用 Locale 來決定要顯示的各種語文不同的表示法，如&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;        Date d = new Date();&lt;br /&gt;        DateFormat dateformat;&lt;br /&gt;        dateformat = DateFormat.getDateInstance(DateFormat.FULL, Locale.ENGLISH);&lt;br /&gt;        System.out.println(dateformat.format(d));&lt;br /&gt;        dateformat = DateFormat.getDateInstance(DateFormat.FULL, Locale.JAPANESE);&lt;br /&gt;        System.out.println(dateformat.format(d));&lt;br /&gt;        dateformat = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINESE);&lt;br /&gt;        System.out.println(dateformat.format(d));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;當然，DateFormat 也可以將文字的時間表示法轉回 Date 物件，但要注意這個動作很容易會有問題 (因為時間格式本來就很複雜):&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;        Date d;&lt;br /&gt;        DateFormat dateformat;&lt;br /&gt;        dateformat = new SimpleDateFormat("EEEE-MMMM-dd-yyyy-HH-mm-ss");&lt;br /&gt;        d = dateformat.parse("星期二-四月-19-2005-18-25-17");&lt;br /&gt;        System.out.println(d);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;還有一件很重要的事， DateFormat 不是 Thread Safe 的，所以在 multithread 的情況下不可以在多個 thread 共用同一個 DateFormat 。如果有這個需求的話，可以參考 &lt;a href="http://jakarta.apache.org/commons/lang/"&gt;jakarta commons-lang&lt;/a&gt; 的  &lt;a href="http://jakarta.apache.org/commons/lang/apidocs/org/apache/commons/lang/time/FastDateFormat.html"&gt;FastDateFormat&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;另外 java.sql.Date, java.sql.Time, java.sql.Timestamp 也和 Date 有關，基本上這都是 Date ，只是加上和 Datebase 相關的功能，所以程式上的用法也和 Date 相同。&lt;br /&gt;&lt;br /&gt;基本上，程式中在設計 API 傳遞時間時，只需要用 java.util.Date 就行了 (如果可能和其他語言如 C 相通的話，不如直接用 long 表示時間)，會用到 Calendar 和 DateFormat 只有在輸入輸出時用到。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6960847460165514123?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6960847460165514123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6960847460165514123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6960847460165514123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6960847460165514123'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/04/java-date-calendar-dateformat.html' title='java Date, Calendar, DateFormat'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-3112065111299911396</id><published>2005-04-15T20:08:00.000+08:00</published><updated>2006-12-06T20:09:43.217+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drawing'/><title type='text'>Bell Dandy</title><content type='html'>&lt;a rel="lightbox" href="http://photos6.flickr.com/9458249_e0b6266010.jpg"&gt;&lt;img src="http://photos6.flickr.com/9458249_e0b6266010_m.jpg"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;這種單純只是模仿的畫只能算是練習技巧罷了。不過如果要畫漫畫式的畫的話，線條的筆觸是很重要的（上墨線），的確是要多練才行。這種線條感也是純用電腦比較難做得好的工作。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-3112065111299911396?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/3112065111299911396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=3112065111299911396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3112065111299911396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3112065111299911396'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/04/bell-dandy.html' title='Bell Dandy'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8179567823269714846</id><published>2005-04-15T20:06:00.000+08:00</published><updated>2006-12-19T12:58:52.654+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><category scheme='http://www.blogger.com/atom/ns#' term='Job'/><title type='text'>developer-centric</title><content type='html'>* &lt;a href="http://baby.homeip.net/patrick/archives/2005/04/developercentri.php"&gt;http://baby.homeip.net/patrick/archives/2005/04/developercentri.php&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www3.uuzone.com/blog/mao/10600.htm"&gt;http://www3.uuzone.com/blog/mao/10600.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;雖然這種話從我這種寫程式的人口中說出來蠻沒說服力的，不過， Patrick 的話真是說到我心坎裡了。&lt;br /&gt;&lt;br /&gt;不是我認為管理，業務，應酬這些事不重要，這些事通常都能掌握我們這種小軟體公司的生死（沒案子大家都得喝西北風），可是太過重視這些事也一定不是生存之道。不知道其他的公司情況如何，但就像我們公司在做類似要不要推動 CMMI 認證這種重要決定的時候，我們這些實際要做事的人一個都沒被問到（如果有問的話，應該會問到我才對…＠＠），決定公司走向的會議（產品規畫，新產品研發）也沒有技術人員參與，進去的都是上面的大頭，業務，經理，PM 等等。我知道一般人看來，寫程式寫著寫著就應該”晉昇”管理層次，所以寫程式的人在公司就沒什麼地位了，而能決策的人都好久沒碰技術了。&lt;br /&gt;&lt;br /&gt;(''以下是對公司的抱怨，不用看'')&lt;br /&gt;&lt;br /&gt;我們公司每個星期都要寫週報，報告一個星期來做了些什麼。好吧，為了管理方便我們得寫，但週報詳細得是以小時做單位的，我每個星期都在煩惱我上網了三個小時，看了三個小時的技術討論要怎麼寫。這個週報系統還是我們自行開發的，由財務的頭頭來提出需求，為得是要控管公司的成本。嘿嘿，我每個星期都得把做事的一個小時灌成四個小時（我相信大家都是這麼做的），我就不信這種成本是可信的。而且，一個部門如果全部都準時填寫的話，就會有小小一筆獎金，好個連坐法啊，害得我們忘了寫的人要請大家喝飲料＠＠（為了這種事真不值，如果說為了 check in 的程式過不了 test 來請我都願意）。&lt;br /&gt;&lt;br /&gt;你想說這麼重要的工時系統一定很有用囉，不不，他的功能就只是算成本而已，不能幫助專案開發，不能幫助 PM 管理時程（所以我們還常常為不同的 PM 寫不同的工時表…），不能做 bug tracking ，不能不能，都不能，就是用來算成本，但是沒人說不寫，因為這位財務頭頭在公司的地位可大了去了。&lt;br /&gt;&lt;br /&gt;(''抱怨結束'')&lt;br /&gt;&lt;br /&gt;好吧，或許如 Patrick 所說，該準備履歷換公司了…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8179567823269714846?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8179567823269714846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8179567823269714846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8179567823269714846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8179567823269714846'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/04/httpbaby.html' title='developer-centric'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7413182617718677670</id><published>2005-03-28T20:06:00.000+08:00</published><updated>2006-12-06T20:06:43.284+08:00</updated><title type='text'>Dell Axim X50v</title><content type='html'>真的要好好抱怨一下，台灣做的 PDA ，在台灣居然買不到…&lt;br /&gt;&lt;br /&gt;每個人看到我買 PDA ，幾乎第一個問題都是，我買這東西是要用來幹嘛…@@ (第二個問題是花多少錢)。說實在的，除了心裡爽之外，剩下的回答大概是，要用了才知道能拿來幹嘛吧。&lt;br /&gt;&lt;br /&gt;當然，心裡的確有想著一些用途，像是無線上網啊，隨身資料同步啊，看電子書啊，行事曆啊，管帳啊，打電動啊(玩模擬器很好用)，不過沒車就用不著 GPS 了。還能幹嘛呢？繼續摸索吧。PDA 的感覺和 NB 的感覺很不一樣，雖然之前買 NB 的時候也特別挑一個能讓我有意願帶著走的，可是實際上就算你有意願帶著走，也不一定能把他打開來用。用 PDA 的感覺大概是，你越依賴它，它對你就越有用，不然就真的只是爽度提昇罷了。&lt;br /&gt;&lt;br /&gt;其實也沒什麼大道理啦，像我這麼一直尋求能把事情自動化處理而懶得記事情的人，應該是很適合來用 PDA 吧，而且我也不介意帶著這說說大不小的玩意兒到處走。接下來就要看，我能多依賴它了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7413182617718677670?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7413182617718677670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7413182617718677670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7413182617718677670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7413182617718677670'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/dell-axim-x50v.html' title='Dell Axim X50v'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7812341964120200007</id><published>2005-03-28T20:04:00.000+08:00</published><updated>2006-12-06T20:05:43.285+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drawing'/><title type='text'>Gandalf</title><content type='html'>&lt;a rel="lightbox" href="http://photos8.flickr.com/7653665_4284818059.jpg"&gt;&lt;img src="http://photos8.flickr.com/7653665_4284818059_m.jpg"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;某天晚上和坐在電腦前和朋友聊天，手裡拿著滑鼠就一直移來移去，就出來了。是用 Gimp 畫的，少數直接在電腦上畫的作品。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7812341964120200007?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7812341964120200007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7812341964120200007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7812341964120200007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7812341964120200007'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/gandalf.html' title='Gandalf'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-3770462558316788037</id><published>2005-03-25T20:00:00.000+08:00</published><updated>2006-12-06T20:01:46.963+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drawing'/><title type='text'>畫</title><content type='html'>&lt;a rel="lightbox" href="http://photos5.flickr.com/7028244_d306141bce.jpg"&gt;&lt;img src="http://photos5.flickr.com/7028244_d306141bce_m.jpg"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;再來一張。&lt;br /&gt;&lt;br /&gt;這張就感覺就差了一點，很生硬的感覺… :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-3770462558316788037?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/3770462558316788037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=3770462558316788037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3770462558316788037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3770462558316788037'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/blog-post_25.html' title='畫'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-698415355390824804</id><published>2005-03-25T19:54:00.000+08:00</published><updated>2006-12-19T12:58:17.078+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>Transparent Screens</title><content type='html'>&lt;a rel="lightbox" href="http://photos7.flickr.com/7350188_f00832699c.jpg"&gt;&lt;img src="http://photos7.flickr.com/7350188_f00832699c_m.jpg"/&gt;&lt;/a&gt; &lt;a rel="lightbox" href="http://photos5.flickr.com/7235381_f6d709c00f.jpg"&gt;&lt;img src="http://photos5.flickr.com/7235381_f6d709c00f_m.jpg"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/groups/transparentscreens/pool/"&gt;http://www.flickr.com/groups/transparentscreens/pool/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;雖然知道就是這麼一回事，但是看到他們做出來的照片還是覺得很有趣。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-698415355390824804?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/698415355390824804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=698415355390824804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/698415355390824804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/698415355390824804'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/transparent-screens.html' title='Transparent Screens'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6447038317175955533</id><published>2005-03-23T19:50:00.000+08:00</published><updated>2006-12-06T19:52:12.557+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drawing'/><title type='text'>畫</title><content type='html'>&lt;a rel="lightbox" href="http://photos5.flickr.com/7028242_a5609e89a9.jpg"&gt;&lt;img src="http://photos5.flickr.com/7028242_a5609e89a9_m.jpg"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;現在好像變成每日一圖了…:) 不過也沒剩幾張了。&lt;br /&gt;&lt;br /&gt;這個也是照著畫冊上的圖畫的，這位是羅德斯島戰記的蒂德莉特。&lt;br /&gt;羅德斯島戰記 OVA 真是經典，結城信輝的人物設定真是高水準…&lt;br /&gt;&lt;br /&gt;雖然手上有 VCD ，但等 DVD 出來還是要去買一套的…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6447038317175955533?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6447038317175955533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6447038317175955533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6447038317175955533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6447038317175955533'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/blog-post_23.html' title='畫'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-1629409786036121453</id><published>2005-03-22T19:47:00.000+08:00</published><updated>2006-12-06T19:49:24.905+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drawing'/><title type='text'>畫</title><content type='html'>&lt;a rel="lightbox" href="http://photos4.flickr.com/7028241_725a8c8924.jpg"&gt;&lt;img src="http://photos4.flickr.com/7028241_725a8c8924_m.jpg"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;這個好像是照著某本畫冊畫的，應該是用色鉛筆吧…。&lt;br /&gt;&lt;br /&gt;一直很遺憾畫彩色只會用色鉛筆…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-1629409786036121453?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/1629409786036121453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=1629409786036121453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1629409786036121453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1629409786036121453'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/blog-post_22.html' title='畫'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4118797530895266907</id><published>2005-03-21T19:44:00.000+08:00</published><updated>2006-12-06T19:47:06.038+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drawing'/><title type='text'>畫</title><content type='html'>&lt;a rel="lightbox" href="http://photos1.flickr.com/2223618_99f3979d3d.jpg"&gt;&lt;img src="http://photos1.flickr.com/2223618_99f3979d3d_m.jpg"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;六七年前畫的吧，是為了幫某人追女友時獻寶用的，所以現在只剩下電子檔了…&lt;br /&gt;&lt;br /&gt;不過，字是那位某人寫的…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4118797530895266907?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4118797530895266907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4118797530895266907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4118797530895266907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4118797530895266907'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/blog-post_21.html' title='畫'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6385174456666979994</id><published>2005-03-21T19:42:00.000+08:00</published><updated>2006-12-19T12:57:34.411+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Info'/><title type='text'>Jolt Awards 2005</title><content type='html'>&lt;a href="http://www.acm.org/awards/taward.html"&gt;Turing Award&lt;/a&gt; 被譽為軟體界的諾貝爾獎，而 Jolt Awards 則被譽為"軟體界的奧斯卡獎"，可見 Jolt Award 所受到的重視。而 &lt;a href="http://www.sdmagazine.com/pressroom/jolt_winners_2005.pdf"&gt;Jolt Awards 2005&lt;/a&gt; 已經出爐。&lt;br /&gt;&lt;br /&gt;其實一年很快的， Jolt 2004 中一些有趣的書還沒看過（有看的都是有中譯…@@），像 ''The Art of UNIX Programming'' ， ''About Face 2.0'' 等等… (事實上再之前的也沒看幾本…)，現在 2005 又多了好幾本書。不過 ''Head First Design Patterns'' 居然得到 Jolt Winner ，想必這本書對 Design Pattern 這個舊話題一定有不錯的詮釋。&lt;br /&gt;&lt;br /&gt;Subversion 也得獎了，希望讓大家對他也有多一點認識。其他如 Eclipse 3.0, Hibernate 2.1，也都不讓人意外。不過雖然 CaliberRM 也得獎，不過他也是貴了點。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6385174456666979994?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6385174456666979994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6385174456666979994' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6385174456666979994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6385174456666979994'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/jolt-awards-2005.html' title='Jolt Awards 2005'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6929371072834747180</id><published>2005-03-18T19:38:00.000+08:00</published><updated>2006-12-06T19:40:36.156+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Multithread library</title><content type='html'>今天在測試 zlib 時，在 link static library 時，一直出現 &lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;MSVCRT.lib(MSVCR71.dll) : error LNK2005: _malloc 已經定義於 LIBC.lib(malloc.obj)&lt;br /&gt;MSVCRT.lib(MSVCR71.dll) : error LNK2005: _free 已經定義於 LIBC.lib(free.obj)&lt;br /&gt;....&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;之類的 bug ，根據 error message 來調整一直沒辦法解決。後來發現是 compile zlib.lib 時所用的 runtime 程式庫是 Multithread dll (/MD) ，在主程式用的是 single thread (/ML) 。所以只要調整成一致就可以解決了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6929371072834747180?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6929371072834747180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6929371072834747180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6929371072834747180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6929371072834747180'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/multithread-library.html' title='Multithread library'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-2833314612724230397</id><published>2005-03-16T19:36:00.000+08:00</published><updated>2006-12-19T12:57:23.809+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Bloglines Email Subscriptions</title><content type='html'>Bloglines 早已成為我的（和很多人的）主要資訊來源了。&lt;br /&gt;直到現在為止，我還沒有這麼如些依靠這麼一個網路服務（如果不算 Google 的話）。&lt;br /&gt;不過，這情況也是因為 RSS 已經非常的流行的原因，否則以閱讀 RSS 為主 bloglines 也不會這麼好用。&lt;br /&gt;&lt;br /&gt;但我一直覺得，電子報這東西是食之無味，棄之可惜的東西，有時候就會冒出點值得一讀的東西，但是大部分的時候都是像垃圾信一樣的地位，連把信打開都覺得噁心…&lt;br /&gt;&lt;br /&gt;今天我才突然發現 Blogline 有這個功能，讓電子報這類的服務也可以用 blogline 來閱讀。真是太好了，本來我還多註冊了一個 gmail 想要專門用來訂電子報的，現在也完全不用了。&lt;br /&gt;&lt;br /&gt;不過，也隱約有點擔心，現在 blogline 已經對我造成鎖定效應了，如果哪一天他墮落了怎麼辦＠＠，尤其是在他被 Ask Jeeves 買了之後…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-2833314612724230397?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/2833314612724230397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=2833314612724230397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2833314612724230397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/2833314612724230397'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/bloglines-email-subscriptions.html' title='Bloglines Email Subscriptions'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-6905718948174617908</id><published>2005-03-11T19:35:00.000+08:00</published><updated>2006-12-19T12:57:04.708+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>藥師佛曼荼羅</title><content type='html'>&lt;a href="http://www.ackland.org/art/exhibitions/buddhistart/construction.htm"&gt;http://www.ackland.org/art/exhibitions/buddhistart/construction.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;在 2001 年 2 月 26 日，由 Ven. Tenzin Thutop 和 the Ven. Tenzin Deshek 這兩位來自西藏和尼泊爾的喇嘛，在紐約 Ackland 的 Yager 亞洲藝術展覽館，用砂建立了一幅 5 又 1/2 英呎的藥師佛曼荼羅圖。於三月 21 日完成，並展出至六月 8 日。並於當天...&lt;br /&gt;&lt;br /&gt;能不能放下執念，就看修行如何…&lt;br /&gt;&lt;br /&gt;不過，他們也不是第一個做這種事的人。 &lt;br /&gt;&lt;a href="http://www.artnetwork.com/Mandala/"&gt;http://www.artnetwork.com/Mandala/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ci.fullerton.ca.us/museum/archive/mandala.html"&gt;http://www.ci.fullerton.ca.us/museum/archive/mandala.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(這大概是喇嘛的一種修練吧…)&lt;br /&gt;&lt;br /&gt;這裡還有一些關於曼荼羅的&lt;a href="http://www.exoticindiaart.com/article/mandala/"&gt;介紹&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-6905718948174617908?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/6905718948174617908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=6905718948174617908' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6905718948174617908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/6905718948174617908'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/blog-post.html' title='藥師佛曼荼羅'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-770121192404813240</id><published>2005-03-09T19:33:00.000+08:00</published><updated>2006-12-19T12:57:00.437+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thought'/><title type='text'>人力自動化</title><content type='html'>我是非常被動而且健忘的。不管做什麼事，最好都是有個人來提醒我；如果沒有人來提醒我，那最好也要電腦能來提醒我。像是資料收集這一方面，我真的覺得 RSS 真是我的救星，如果要我常常去某些網站看看有沒有更新的內容，我一定會懶的。所以人就是這樣，像 Google 快訊也是很不錯的工具，雖然沒有 RSS 來得有系統。&lt;br /&gt;&lt;br /&gt;又像在工作上，我是很認同公司要把我們每天的工時記錄下來，雖然有點在監視的味道，可是的確這是一個掌握成本的手段。但為什麼這種資訊不能從其他的地方自動去收集呢？像 issue-tracking 系統就是個好地方，如果能讓大家順著一定的流程而只需做最少的事，才會符合人性嘛…居然還有 PM 自己維護自己 Project 的工時記錄，而且又是叫 Programmer 再去寫一份給他的工時 -_-。自動化要付出代價，不論是用電腦來自動化或是用人來自動化，沒有自動化是不可能把事情做好的，只不過人力自動化是既花長期成本又容易出錯的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-770121192404813240?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/770121192404813240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=770121192404813240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/770121192404813240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/770121192404813240'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/rss-google-rss-issue-tracking-pm.html' title='人力自動化'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-8087994817038940724</id><published>2005-03-07T13:53:00.000+08:00</published><updated>2006-12-06T13:56:40.359+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Job'/><title type='text'>CMMI</title><content type='html'>其實大家平常就知道，又要馬兒好，又要馬兒不吃草是一廂情願的想法，可是的確事實上還是常常會提出這種要求。&lt;br /&gt;&lt;br /&gt;前一陣子不知道政府官員是吃錯了什麼藥，說以後要接政府的標案的軟體廠一定要具有 CMMI 的資格。那好吧，所以過一陣子，敝公司也得搭上這班車。不知道那些高層知不知道要過 CMMI 是要花錢的，雖說如果政府真的花大錢在這上面，我也是覺得是一浪費的行為…&lt;br /&gt;&lt;br /&gt;再說敝公司的 CMMI ，導火線是招了一位先前執行過 CMMI 的新進同事（不過資歷比我久），所以就由他來帶領公司走向 CMMI 之路，當場省下一筆 consulting 的費用。而上頭的想法是，「我們不要因為要過 CMMI 而過 CMMI ，重要的是要在過程中改善公司的體質…」，多棒的一句話，然後 CMMI 計畫人員除上面那位，還有就是兩個部門的經理和兩個菜鳥（包括我），真是令人感動的流淚，這麼看得起我們菜鳥，我們的工作還是一個不少，兩位經理也是忙得不得了，然後要求我們一個星期提出計畫，二個月進行研究，一年試行，計畫明年通過 CMMI …。我想說，如果真的重視公司體質的提升的話，有時間來和我們一起開個會吧，不要一天到晚看報紙了…@@&lt;br /&gt;&lt;br /&gt;我知道，很多公司是用半年的時間拿到 CMMI Level 2 的，我們計畫用一年多的時間來進行的確是不趕的。或者說，這匹馬平時也就沒什麼事可幹，那讓他自己去學跳舞，就算沒人教，只要時間長也就也會了…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-8087994817038940724?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/8087994817038940724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=8087994817038940724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8087994817038940724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/8087994817038940724'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/03/cmmi.html' title='CMMI'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4490136203941180098</id><published>2005-02-28T13:43:00.000+08:00</published><updated>2006-12-06T13:52:05.730+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Movie'/><title type='text'>天下無賊, 奪魂鋸</title><content type='html'>&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1309359.jpg" title="天下無賊"&gt;&lt;img src="http://www.douban.com/mpic/s1309359.jpg" class="poster-left" alt="天下無賊"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1291550/"&gt;天下無賊&lt;/a&gt;&lt;br /&gt;蠻不錯的，雖然片中的廣告實在太多了。and, 大陸的演員實在厲害，他們那種口音，那種文句，光聽對話就覺得有戲味。&lt;br /&gt;&lt;br /&gt;&lt;a rel="lightbox" href="http://www.douban.com/lpic/s1458187.jpg" title="Saw"&gt;&lt;img src="http://www.douban.com/mpic/s1458187.jpg" class="poster-right" alt="Saw"/&gt;&lt;/a&gt; &lt;a href="http://www.douban.com/subject/1417598/"&gt;Saw (奪魂鋸)&lt;/a&gt;&lt;br /&gt;感覺現在的驚悚片，最好能加點意外的結局和壞人勝利，會比較讓人有驚豔的感覺，情結是不是真的合理，反而不是很重要的。不過，這個片名好像不算很貼切，畢竟只是把小鋸子@@，而且，他們拿到槍，為什麼不把鎖打掉呢？啊…合不合理不重要，情節氣氛就夠讓人回味了，就是&lt;a href="http://www.douban.com/subject/1300300/"&gt;絕命終結站&lt;/a&gt;的感覺。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4490136203941180098?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4490136203941180098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4490136203941180098' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4490136203941180098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4490136203941180098'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/02/blog-post_28.html' title='天下無賊, 奪魂鋸'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7499050092922980465</id><published>2005-02-24T13:38:00.000+08:00</published><updated>2006-12-06T13:42:38.302+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architect'/><title type='text'>StarTeam</title><content type='html'>* StarTeam 包括 Version Control, build management, issue tracking 等功能。&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Version Control&lt;/h4&gt;&lt;br /&gt;* StarTeam 可管理的物件有: File, Change Request, Requirement, Task, Topic, Audit, 都可以進行版本管理，其中 File 和 Change Request 還可進行分支管理&lt;br /&gt;* StarTeam 使用 Project, View, Folder 來管理物件&lt;br /&gt;&lt;br /&gt;* Project&lt;br /&gt;** Project 是完整的管理單位。Project 可建立多個 View ，而每個 View 都可看到不同的 Folder 。&lt;br /&gt;&lt;br /&gt;* View&lt;br /&gt;** View 的主要功能是在管理分支，也可以用來管理不同的用戶可看到不同的東西，但以權限來區分更有效&lt;br /&gt;** StarTeam 的 View 具階層架構，對應於 CVS 的分支也可以有階層架構&lt;br /&gt;** View 有 Branch View 和 Reference View ， Branch View 是把文件複製分開管理，而 Reference View 則是仍是看到同一分文件。&lt;br /&gt;** StarTeam 可以定義 Label ，而 Label 是定義由 File 和 View 共同定義的，同一個 file 在不同的 View 中有不同 Label 的命名空間。&lt;br /&gt;** Label 有 View Label 和 Revision Label。&lt;br /&gt;** 具有 Promotion Label，是 Label 的 Label ，如定義為 Build, Release 等 Promotion，可指向不同的 Revision Label 。&lt;br /&gt;&lt;br /&gt;* compare with CVS&lt;br /&gt;** cvs 無法實現太複雜的權限，有時需配合作業系統的權限設定。 !StarTeam 自行管理權限設定。&lt;br /&gt;** CVS 在檔案更名和移動上有限制，而 !StarTeam 可自由在 View 上進行 (but 這些動作沒有版本記錄)，Repository 的結構和 View 的結構可以完全不同。&lt;br /&gt;** !StarTeam 有完整 IDE 整合 (我只試用 eclispe，非常完整)，但 CVS 也有很多 GUI 的工具可使用，甚至一些 IDE (如 eclispe) 的整合程度不遜於 !StarTeam 。&lt;br /&gt;** CVS 的分支用 tag 來管理，StarTeam 的分支是另一份文件。&lt;br /&gt;** CVs 以 TAG 來進行 分支，定義版本，管理分支階層 等功能，而 !StarTeam 則依靠 View 的強大功能來進行。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.worldhello.net/doc/cvs_vs_starteam/index.html"&gt;http://www.worldhello.net/doc/cvs_vs_starteam/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;issue tracking&lt;/h4&gt;&lt;br /&gt;* StarTeam 的 issue tracking 是以 Change Request 來進行。&lt;br /&gt;* Change Request 可以定義版本，所以可以依版本來回溯這個 issue 的變化。&lt;br /&gt;* Change Request 可以和 File 的 check in 做配合，即在 Check in 時指明是根據哪個 Change Request 所做的修改，並可順便修改 Change Request 的狀態。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.worldhello.net/doc/bug_tracking/index.html"&gt;http://www.worldhello.net/doc/bug_tracking/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;感想&lt;/h4&gt;&lt;br /&gt;* StarTeam 雖然有圖形介面，但不會比 CVS 容易使用 (如果用到很多功能的話) ，如果只有簡單功能的話， CVS 也不會比較難用 (如果有好的 tool 的話)&lt;br /&gt;* bug tracking 的整合不錯，但仍然有點複雜，而且因為程式的操作的流程都已經過設計，反而沒有自行操作的空間。&lt;br /&gt;* bug tracking 好像沒什麼統計的功能。&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;替代方案&lt;/h4&gt;&lt;br /&gt;* CVS + &lt;a href="http://www.cvstrac.org/"&gt;CVSTrac&lt;/a&gt; = Version Control + Issue Tracking + Wiki&lt;br /&gt;* &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; + &lt;a href="http://projects.edgewall.com/trac"&gt;Trac&lt;/a&gt; = Verstion Control + Issue Tracking + Wiki&lt;br /&gt;* &lt;a href="http://cruisecontrol.sourceforge.net/"&gt;CruiseControl&lt;/a&gt; = continuous build system&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7499050092922980465?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7499050092922980465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7499050092922980465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7499050092922980465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7499050092922980465'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/02/starteam.html' title='StarTeam'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-4951737751423634941</id><published>2005-02-21T13:22:00.000+08:00</published><updated>2006-12-07T18:44:03.063+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Calling conventions</title><content type='html'>&lt;a href="http://www.unixwiz.net/techtips/win32-callconv.html"&gt;http://www.unixwiz.net/techtips/win32-callconv.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* 在 windows 中常用的幾個 calling conventions:&lt;br /&gt;** __cdecl : 標準的 c 的 calling convention&lt;br /&gt;&lt;pre name="code" class="Cpp"&gt;&lt;br /&gt;    /* example of __cdecl */&lt;br /&gt;    push arg1&lt;br /&gt;    push arg2&lt;br /&gt;    push arg3&lt;br /&gt;    call function&lt;br /&gt;    add  sp,12        // effectively "pop; pop; pop"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;** __stdcall = WINAPI = Pascal : win32 api 的標準 calling convention&lt;br /&gt;&lt;pre name="code" class="Cpp"&gt;&lt;br /&gt;    /* example of __stdcall */&lt;br /&gt;    push arg1&lt;br /&gt;    push arg2&lt;br /&gt;    push arg3&lt;br /&gt;    call function&lt;br /&gt;    // no stack cleanup - callee does this&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;** 所以不定參數呼叫只可能用在 __cdecl ，因為只有 caller 才知道參數的大小。&lt;br /&gt;&lt;br /&gt;* ms 為了避免用到不正確的 calling convention ，所以將 calling convention 和 函式名稱編碼在一起，稱為 decorated name：&lt;br /&gt;&lt;table border="2"&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;void __cdecl    foo(void); &lt;/td&gt;&lt;td&gt; _foo &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt; void __cdecl    foo(int a, int b); &lt;/td&gt;&lt;td&gt; _foo &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt; void __stdcall  foo(void); &lt;/td&gt;&lt;td&gt; _foo@0 &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt; void __stdcall  foo(int a); &lt;/td&gt;&lt;td&gt; _foo@4 &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt; void __stdcall  foo(int a, int b); &lt;/td&gt;&lt;td&gt; _foo@8 &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt; void __fastcall foo(int a, int b); &lt;/td&gt;&lt;td&gt; @foo@8 &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;** linker 因此不會連結到不正確的 calling convention 的函式。&lt;br /&gt;&lt;br /&gt;* 一些注意事項：&lt;br /&gt;** main() &amp; wmain() 必為 __cdecl&lt;br /&gt;** WinMain() 必為 __stdcall &lt;br /&gt;** 不定參數的函式必為 __cdecl&lt;br /&gt;** 如果是把 function pointer 當參數的話，必需要連 calling convention 也相同才行。&lt;br /&gt;&lt;br /&gt;* 建立大系統時的建議&lt;br /&gt;** library 的 header 中在每一處都要明確指出 calling convention，不可以依賴預設值。&lt;br /&gt;** 利用 preprocessor 來跨非 windows 的平台，如 portable.h&lt;br /&gt;&lt;pre name="code" class="Cpp"&gt;&lt;br /&gt;    #ifndef _WIN32&lt;br /&gt;    #  define __cdecl    /* nothing */&lt;br /&gt;    #  define __stdcall  /* nothing */&lt;br /&gt;    #  define __fastcall /* nothing */&lt;br /&gt;    #endif /* _WIN32 */&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;* The history of calling conventions, &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2004/01/02/47184.aspx"&gt;part 1&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2004/01/07/48303.aspx"&gt;part 2&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2004/01/08/48616.aspx"&gt;part 3&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2004/01/13/58199.aspx"&gt;part 4: ia64&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2004/01/09/49028.aspx"&gt;Why do member functions need to be "static" to be used as a callback?&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2004/01/15/58973.aspx"&gt;What can go wrong when you mismatch the calling convention?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-4951737751423634941?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/4951737751423634941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=4951737751423634941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4951737751423634941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/4951737751423634941'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/02/calling-conventions.html' title='Calling conventions'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-7389155020293880749</id><published>2005-02-19T13:20:00.000+08:00</published><updated>2006-12-19T12:56:23.287+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Info'/><title type='text'>手機直撥分機的方法</title><content type='html'>若您欲撥的電話號碼為0221234567，分機號碼為1234，&lt;br /&gt;則可直接撥：0221234567X1234，即可直接將電話轉至該分機。&lt;br /&gt;&lt;br /&gt;X : 依手機而有所不同&lt;br /&gt;* NOKIA&lt;br /&gt;** X = p （快速按＊見3次就會出現）&lt;br /&gt;* Motorola&lt;br /&gt;** X = 小方格 （按住 * 1-2秒）&lt;br /&gt;* Ericsson&lt;br /&gt;** X = p （按住 * 1-2秒）&lt;br /&gt;* Siemens&lt;br /&gt;** X = P （按住 * 1-2秒）&lt;br /&gt;* Panasonic&lt;br /&gt;** X = P （按住 0 1-2秒）&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;這算什麼，生活小常識吧。主要是可以把分機存在通訊錄裡，也不用再用手按分機號碼了…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-7389155020293880749?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/7389155020293880749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=7389155020293880749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7389155020293880749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/7389155020293880749'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/02/blog-post_19.html' title='手機直撥分機的方法'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-1683120377989415498</id><published>2005-02-18T13:15:00.000+08:00</published><updated>2006-12-07T18:44:59.791+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Map'/><title type='text'>在 blog 上標出位置</title><content type='html'>&lt;a href="http://www.maporama.com/share/"&gt;http://www.maporama.com/share/&lt;/a&gt; 超強的網路地圖，雖然是英文的…&lt;br /&gt;&lt;br /&gt;但實際上，還是先用 papago 找出經緯度: E121:00:36,N24:47:19&lt;br /&gt;&lt;br /&gt;再用 &lt;a href="http://gis.thl.ncku.edu.tw/coordtrans/coordtrans.aspx"&gt;http://gis.thl.ncku.edu.tw/coordtrans/coordtrans.aspx&lt;/a&gt; 轉換座標系統&lt;br /&gt;&lt;br /&gt;* TWD67經緯度坐標值　 : 121:00:06.46379, 24:47:25.33936 (121.00179549852,24.7903720448505)&lt;br /&gt;* TWD67二度分帶坐標值 : 250181.545, 2742568.603&lt;br /&gt;* TWD97(WGS84)經緯度坐標值: 121:00:36.00000, 24:47:19.00000 (121.01,24.7886111111111)&lt;br /&gt;* TWD97二度分帶坐標值 : 251011.120, 2742364.117&lt;br /&gt;&lt;br /&gt;在 header 中加入 meta : &lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&lt; meta name="ICBM" content="24.4719, 121.0036" /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;* &lt;a href="http://www.map.com.tw/GPSQuery.asp"&gt;http://www.map.com.tw/GPSQuery.asp&lt;/a&gt; - 用 GPS 定位找地圖&lt;br /&gt;* &lt;a href="http://jidanni.org/geo/taiwan_datums/"&gt;http://jidanni.org/geo/taiwan_datums/&lt;/a&gt; - 這些東西實在太複雜了&lt;br /&gt;* &lt;a href="http://ngis.moea.gov.tw/website/ngis/run.htm"&gt;http://ngis.moea.gov.tw/website/ngis/run.htm&lt;/a&gt; 國土資訊系統&lt;br /&gt;* &lt;a href="http://sanwangx.brain-c.com/geo/"&gt;http://sanwangx.brain-c.com/geo/&lt;/a&gt; Taiwan Blogger Map&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-1683120377989415498?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/1683120377989415498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=1683120377989415498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1683120377989415498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/1683120377989415498'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/02/blog.html' title='在 blog 上標出位置'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-5260577062792925309</id><published>2005-02-17T10:34:00.000+08:00</published><updated>2006-12-06T10:35:28.432+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architect'/><title type='text'>Second System Effect</title><content type='html'>Brooks 在 "人月神話" 的第五章提出 Second System Effect :&lt;br /&gt;&lt;br /&gt;在設計第一個系統時，通常知道自己不夠了解，所以就事事小心。&lt;br /&gt;但在第二個系統時，因為有了第一次的經驗，而且對系統也十分了解，也從第一個系統得到很多回饋，所以就會對第二個系統躍躍欲試，而傾向於 "過度設計" (over design) 。第二個系統會把第一系統小心捨去的功能加入，一不小心就會因為複雜度的躍昇而造成過度的設計。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://c2.com/cgi/wiki?SecondSystemEffect"&gt;http://c2.com/cgi/wiki?SecondSystemEffect&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-5260577062792925309?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/5260577062792925309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=5260577062792925309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5260577062792925309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/5260577062792925309'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/02/second-system-effect.html' title='Second System Effect'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9056130247525443142.post-3622790539115783750</id><published>2005-02-16T22:29:00.000+08:00</published><updated>2006-12-06T10:34:03.160+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architect'/><title type='text'>Agile Processes &amp; eXtreme Programming</title><content type='html'>&lt;h4&gt;敏捷宣言 - Agile Manifesto&lt;/h4&gt;&lt;br /&gt;We are uncovering better ways of developing software by doing it and helping others do it.&lt;br /&gt;&lt;br /&gt;Through this work we have come to value:&lt;br /&gt;* Individuals and interactions over processes and tools 個人及互動重於程序及工具&lt;br /&gt;* Working software over comprehensive documentation 可運行的軟體重於完整的文件&lt;br /&gt;* Customer collaboration over contract negotiation 客戶的合作重於合約的協商&lt;br /&gt;* Responding to change over following a plan  回應變動重於遵循計畫&lt;br /&gt;&lt;br /&gt;That is, while there is value in the items on the right, we value the items on the left more. &lt;br /&gt;&lt;br /&gt;&lt;h4&gt;極限編程 - eXtream Programming (XP)&lt;/h4&gt;&lt;br /&gt;XP 是一種 Agile Processes ，代表一種軟體開發的方法論，算是在眾多 Agile 的方法論中比較受到重視的。以極限編程所提出來方法來看，很容易讓人覺得這是一種顛覆傳統的，不穩重，不嚴僅，過度簡化的軟體開發方法。其所提出的方法有:&lt;br /&gt;&lt;br /&gt;* 系統隱喻&lt;br /&gt; 在尚不知系統細節，只知道大致架構(隱喻)的情況下，就先開始發展系統。&lt;br /&gt;* 簡單設計&lt;br /&gt; 為當下而設計，不為明日而設計。採用最簡單而能符合眼前需求的設計，而不是為了未來所需的功能。&lt;br /&gt;* 測試先行&lt;br /&gt; 在寫一段程式之前，先寫用來測試這段程式的測試程式。&lt;br /&gt;* 持續整合&lt;br /&gt; 每隔幾小時就進行整合及測試。&lt;br /&gt;* 程式共享&lt;br /&gt; 每個人都有責任也有權力維護系統中所有的程式。&lt;br /&gt;* 頻繁改版&lt;br /&gt; 儘快讓系統上線，以每日到數月的週期推出新版。&lt;br /&gt;* 程式重整&lt;br /&gt; 持續不斷的對系統做重整的動作。&lt;br /&gt;* 搭檔編程 pair programming&lt;br /&gt; 所有的程式都是由兩兩一組的程式師，共用一台機器寫出來的。一個寫、一個思考，並時常交換。&lt;br /&gt;* 四十工時&lt;br /&gt; 每週最多工作四十小時。&lt;br /&gt;* 客戶駐點&lt;br /&gt; 客戶必須有人和開發團隊一起，隨時回答開發其間可能遇到的問題。&lt;br /&gt;* 編程標準&lt;br /&gt; 整個團隊遵守同樣的標準來寫程式。&lt;br /&gt;&lt;br /&gt;為什麼要叫 extreme 呢？其意義在於，XP 強調一些其所認為有益的做法，並將這些做法發揮到極致。&lt;br /&gt;* 如果 code review 是有益的，我們就隨時做 code review -&gt; 搭檔編程&lt;br /&gt;* 如果測試是有益的，我們就每幾分鐘就做測試 -&gt; 測試先行，持續整合&lt;br /&gt;* 如果設計是有益的，我們就每天都做設計 -&gt; 系統重整&lt;br /&gt;* 如果簡潔是有益的，我們就儘可能的維持簡潔 -&gt; 簡單設計&lt;br /&gt;* 如果架構是重要的，我們就要常常去改進架構 -&gt; 系統隱喻&lt;br /&gt;* 如果短的開發週期是比長開發週期容易掌握，我們就讓開發週期短到以幾分鐘幾小時來計算。&lt;br /&gt;&lt;br /&gt;最重要的是，這些觀念是要互相補足的。&lt;br /&gt;* 如果你頻繁改版，並常做重整，而且客戶駐點可以隨時發現並解決細節問題，或許就可以只憑隱喻就開始開發系統。&lt;br /&gt;* 如果你常做測試，並持續整合，或許就可以頻繁改版&lt;br /&gt;* 如果你的架構清楚，常做重整，並且總是有人和你一起做設計的話，你或許就有信心做簡單的設計。&lt;br /&gt;* 如果你的設計夠簡單，並且有人幫你想怎麼寫測試程式，或許你就可以寫出大量的測試程式。&lt;br /&gt;* 如果團隊的程式共享，並有共同的編程標準，也有人和你一起思考，而且原本的設計也夠簡單，那你或許就有勇氣時常做重整的動作。&lt;br /&gt;* 如果團隊有共同的編程標準，並且設計簡單，大家都能了解，對於系統的架構也都清楚，那或許隨時都能找到人和你一起寫程式。&lt;br /&gt;* 如果你們有大量的測試程式，並且常做整合，而且又用相同的編程標準，那或許你們就敢修改彼此的程式。&lt;br /&gt;* 如果你們在整合前都有足夠的測試，並且前不久才做過整合，那或許常做整合就不會花太久的時間。&lt;br /&gt;&lt;br /&gt;我們可以注意到，幾乎所有的好處都需要有大量的測試做為基礎。&lt;br /&gt;&lt;br /&gt;而有一種單獨將測試拿出來討論的開發方式，叫 Test-Driven Development (TDD)，是強調以測試先行的觀念，以測試為基礎來進行設計和編程，也就是在設計之前就先開始編寫測試程式，並用測試為基礎來進行設計和編程。&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;* &lt;a href="http://c2.com/cgi/wiki?AgileProcesses"&gt;http://c2.com/cgi/wiki?AgileProcesses&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://c2.com/cgi/wiki?ExtremeProgramming"&gt;http://c2.com/cgi/wiki?ExtremeProgramming&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://c2.com/cgi/wiki?TestDrivenDevelopment"&gt;http://c2.com/cgi/wiki?TestDrivenDevelopment&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www.extremeprogramming.org/"&gt;http://www.extremeprogramming.org/&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www.xprogramming.com/"&gt;http://www.xprogramming.com/&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www.agilealliance.com/home"&gt;http://www.agilealliance.com/home&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9056130247525443142-3622790539115783750?l=wctang-old.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wctang-old.blogspot.com/feeds/3622790539115783750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9056130247525443142&amp;postID=3622790539115783750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3622790539115783750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9056130247525443142/posts/default/3622790539115783750'/><link rel='alternate' type='text/html' href='http://wctang-old.blogspot.com/2005/02/agile-processes-extreme-programming.html' title='Agile Processes &amp; eXtreme Programming'/><author><name>wctang</name><uri>http://www.blogger.com/profile/10033562809026869571</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm1.static.flickr.com/219/buddyicons/81718017@N00.jpg'/></author><thr:total>0</thr:total></entry></feed>
