<?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-1256426437019636951</id><updated>2011-11-27T16:19:38.898-08:00</updated><category term='CCC'/><category term='碎念'/><category term='ajax'/><title type='text'>黑夜出沒 喵尾巴</title><subtitle type='html'>絮語而已－－*</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>64</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5955139925473323394</id><published>2009-09-13T17:19:00.001-07:00</published><updated>2009-09-13T17:35:30.908-07:00</updated><title type='text'>窮人的KTV的懶人作者</title><content type='html'>&lt;a href="http://catstail1104.blogspot.com/2008/07/igoogle-ktv.html"&gt;窮人的KTV&lt;/a&gt;做好之後，就有一些零零星星的問題，最嚴重的就是有時搜尋欄位在disable 後不能變回來，不過由於作者實在是個性疏懶到一個沒斬節，所以一直放著沒去修改。最近幾天發現這個情況越來越嚴重，等於是不能用了才修正，要用的人請refresh 一下...(還有人咩...?)&lt;br /&gt;&lt;br /&gt;話說不只是窮人ktv，連部落格草都長了，到底這陣子在忙什麼真是自已也說不出個所以然啊XDD，暑假咻地一下子過去了，新學期馬上又要開始，一切的事情都在往前推進當中，只有我沒有這種真實感的樣子，科科。(突然畫面轉到打副本時都滅團了，牧師我魔量還是滿的狀態...)&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/1256426437019636951-5955139925473323394?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5955139925473323394/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5955139925473323394' title='4 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5955139925473323394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5955139925473323394'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2009/09/ktv.html' title='窮人的KTV的懶人作者'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-2567202876581491608</id><published>2009-04-25T06:12:00.000-07:00</published><updated>2009-05-10T00:13:31.588-07:00</updated><title type='text'>新朋友</title><content type='html'>最近在試用eclipse + Mingw + CppUnit 來開發C++ &lt;br /&gt;目的是希望在windows 平台上寫在linux 也能順利編譯的code &lt;br /&gt;而初步的測試則是希望在windows 上就可以做&lt;br /&gt;一定有人會問說為何不直接灌linux 的PC來做這件事&lt;br /&gt;我也只能說因為我懶惰...XD (用linux 就不能寫得累了順手玩玩魔獸了吧...)&lt;br /&gt;&lt;br /&gt;另一方面，也很想由這次嘗試看能否將visual studio 凍起來&lt;br /&gt;畢竟不是做win32 的programming, 而且visual studio 實在問題有點多&lt;br /&gt;(當然也不是說這樣的組合就一定沒有問題，所以也是抱著試試看的心情)&lt;br /&gt;&lt;br /&gt;姑且不論在什麼平台上開發&lt;br /&gt;再度使用Eclipse 對於我真是有種回到故鄉的感覺，真是個好用的編輯器啊~:D&lt;br /&gt;對於無法像靠VIM就可以存活的強者一樣的開發人員來說，這麼nice 的IDE是好是壞還真的很難說XD&lt;br /&gt;&lt;br /&gt;一切都是嶄新的經驗，待續:D&lt;br /&gt;&lt;br /&gt;2009/05/11 補&lt;br /&gt;&lt;br /&gt;結果馬上遇到system programming 相關的需求...咳咳&lt;br /&gt;windows 和linux  在OS的design 上天生就有很大的不同&lt;br /&gt;那就來結交ubuntu 這位大紅人囉 \^0^/&lt;br /&gt;你郝哇XDD~~&lt;br /&gt;&lt;br /&gt;雖然我向來和linux 不熟&lt;br /&gt;但是想到可能和當紅炸子雞ubuntu 有近距離接觸，仍然讓我十分的興奮(羞)&lt;br /&gt;應該能合作愉快吧:D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-2567202876581491608?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/2567202876581491608/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=2567202876581491608' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2567202876581491608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2567202876581491608'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2009/04/blog-post.html' title='新朋友'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-8593832310410174421</id><published>2009-03-22T19:50:00.000-07:00</published><updated>2009-03-22T20:15:45.239-07:00</updated><title type='text'>樂趣</title><content type='html'>最近回歸到幾近純學生的生活&lt;br /&gt;覺得非常的開心&lt;br /&gt;之前在半工半讀的時候，腦子裏常常會浮現電視冠軍裏的「速戰」&lt;br /&gt;比方說，在30分鐘內誰能削最多的白蘿蔔? 誰能在最短的時間內做完50份壽司之類的畫面?(選手在此時通常是面部神經緊繃的狀態)&lt;br /&gt;舉例來說，讀論文的時候，常常是對著電腦右下角的鐘計時&lt;br /&gt;心裡一邊murmur:&lt;br /&gt;30分鐘內，我讀了幾頁&lt;br /&gt;那這一篇要花多少時間才能讀完?&lt;br /&gt;有沒有更快的方法?&lt;br /&gt;感覺有點像是speed date, 在有限的時間內想要儘可能了解一陌生人，星座?血型?興趣?職業?...總之我一直對speed date 抱持懷疑的態度，總覺透過得這樣的方式唯一能了解的只是自己的主觀，不過好像一直在做類似的事情啊XD&lt;br /&gt;雖然我也明白效率的管理對於現代人來說是一件不可或缺的事，持續不斷的用比較聰明的方法，用更少的時間解決同樣的事情，是生活進步的動力之一。但是似乎有些事情是不能以這種ASAP準則處理的。比方說閱讀一本有趣但是艱澀的書，或是去了解一個不直觀或困難的研究問題，這種過程有點像是在和一個個性古怪但是內涵豐富的傢伙打交道，當你給他時間，慢慢的了解他之後，他會給你更多。這也是一種「慢熟」的樂趣?:D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-8593832310410174421?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/8593832310410174421/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=8593832310410174421' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8593832310410174421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8593832310410174421'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2009/03/blog-post.html' title='樂趣'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-9048082900888032164</id><published>2009-02-06T17:39:00.000-08:00</published><updated>2009-02-06T18:03:33.408-08:00</updated><title type='text'>購物前，多想兩分鐘!!</title><content type='html'>前陣子過年，趁著這麼機會把喵的家好好的打掃了一次&lt;br /&gt;之前幾年的大掃除都很阿Q的混過去，難得這次下決心要做這件事 XD&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;(1)是真的需要還是想要 ?&lt;br /&gt;(2)價值價格比是否划算 ?&lt;br /&gt;(3)有沒有更便宜的替代方案 ?&lt;br /&gt;&lt;br /&gt;東西的金額越高，批判的嚴格度越高，思考期也越長。希望能終結喵尾巴的揮霍人生XDDDD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-9048082900888032164?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/9048082900888032164/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=9048082900888032164' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/9048082900888032164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/9048082900888032164'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2009/02/blog-post.html' title='購物前，多想兩分鐘!!'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3563130356480100420</id><published>2008-12-31T17:18:00.000-08:00</published><updated>2009-01-05T15:50:10.263-08:00</updated><title type='text'>新起點</title><content type='html'>&lt;div&gt;2009年來了&lt;/div&gt;&lt;br /&gt;&lt;div&gt;今年下定的決心是，認真做研究，至少在博班這個階段可以有一篇可以自High 的論文&lt;/div&gt;&lt;br /&gt;&lt;div&gt;(啊以前是在混的喔? 毆...)　&lt;/div&gt;&lt;br /&gt;&lt;div&gt;不過不知道能不能堅持到底啊?(懷疑)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;脫離熟悉的環境與氛圍真的不太習慣耶!&lt;/div&gt;&lt;br /&gt;&lt;div&gt;吃午餐的時候，看不到那些走在東區的亮麗OL與型男真的是有點失落(喂!這是重點嗎XDDD)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;幾乎是用小跑步過馬路的生活步調，也讓我好懷念(怎麼都是一些小事?)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;還有舊公司的同事，嗯真的想念你們(我在會Sosauce 上陰魂不散的 XDD)&lt;/div&gt;&lt;br /&gt;～～～～～～～～～～～～～&lt;br /&gt;&lt;div&gt; &lt;/div&gt;開車時聽到一首歌&lt;br /&gt;&lt;br /&gt;縱貫線的亡命之徒，聽說因為張震嶽嫌MTV拍太土要重拍，所以目前沒有MTV，在Youtube上只找得到這個&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6tDgLhQOqVg&amp;amp;hl=zh_TW&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/6tDgLhQOqVg&amp;amp;hl=zh_TW&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;出發啦 不要問那路在哪?　迎風向前 是唯一的方法&lt;/blockquote&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/1256426437019636951-3563130356480100420?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3563130356480100420/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3563130356480100420' title='4 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3563130356480100420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3563130356480100420'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/12/blog-post_31.html' title='新起點'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-7495938296535847803</id><published>2008-12-09T16:23:00.000-08:00</published><updated>2008-12-09T16:41:40.119-08:00</updated><title type='text'>盲劍客之敵人在那裏</title><content type='html'>咳咳....&lt;br /&gt;最近又在和C++的memory leak 打架&lt;br /&gt;雖然有偵測工具的幫忙，但是仍然陷於一種完全慘敗的狀況 - 工具並沒有成功的告訴我 leak 在那裏。看著演算法明明對記憶體卻一路狂飆的感覺真是氣到爆表、慘到爆燈。&lt;br /&gt;&lt;br /&gt;好吧，陷入愁雲慘霧沒有幫助，只好用最傳統的二元搜尋法看看到底是那裏作怪。&lt;br /&gt;Mark掉一部份的code, 讓另一部份recursive 做下去，然後不斷縮小範圍，並且觀察每一段code與爆走記憶體間的causal relation。這個過程相當的慘烈.有誰知道更好的方法，請告訴我 Orz&lt;br /&gt;最後終於找到一個物件  stringstream。&lt;br /&gt;&lt;br /&gt;還有一篇文章&lt;br /&gt;http://untidy.net/blog/2006/08/21/visual-c-2005-stringstream-leak/&lt;br /&gt;&lt;br /&gt;這玩意看起來無辜到不行，簡直就像一般偵探小說裏的兇手一樣，一開始看起來絕不可能是犯人，卻兇狠的幹下了幾起兇殺案。碰到這種bug 只能自認倒楣，我大約花了六個小時在這詭異的東西上面。天呀.. 六個小時，可以把一部日劇看一半了。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;我投降了，下回要改用managed C++ &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-7495938296535847803?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/7495938296535847803/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=7495938296535847803' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7495938296535847803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7495938296535847803'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/12/blog-post.html' title='盲劍客之敵人在那裏'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5290167826014239238</id><published>2008-11-10T16:11:00.000-08:00</published><updated>2008-11-10T16:51:15.060-08:00</updated><title type='text'>Thanks</title><content type='html'>最近忙翻了，然後這裡草已經很長了....&lt;br /&gt;&lt;br /&gt;在忙啥？&lt;br /&gt;這學期是「深刻的內省」的一學期，所以時間大部份是花在「演內心戲」XDDDXDDD.&lt;br /&gt;做為一個阿宅又開始演起內心戲，簡直是怪上加怪，對最近關心我的長輩和朋友們要說一聲感恩了m(_ _)m&lt;br /&gt;&lt;br /&gt;老實說我是一個非常幸運的人&lt;br /&gt;從畢業後進入職場、結婚、工作到回學校半工半讀，都能夠任性的照自己的意願過自已的生活&lt;br /&gt;選取要做的事情也一律都以「好玩」或「有趣」為前提，不怎麼鳥其它的條件。&lt;br /&gt;(我果然不是五四那時的知青，一點憂國憂民的態度都沒有XD)&lt;br /&gt;有時看看女兒的童話故事書，裏面有提到螞蟻和蟋蟀之類的小動物的那種&lt;br /&gt;大意是說螞蟻每天很努力工作，所以可以活過冬天(繼續來年努力的工作)；蟀蟀每天都在夜唱KTV，所以天氣變冷沒有得吃就掛了。&lt;br /&gt;&lt;br /&gt;腦子裏想的竟然是...&lt;strong&gt;&lt;strong&gt;哇塞螞蟻好可憐&lt;/strong&gt;&lt;/strong&gt;....(爆)&lt;br /&gt;&lt;br /&gt;當下是有點小小的罪惡感, Again, 太不知青了(當然對於蟋蟀的觀點不能讓我女兒知道，等她長大再自已慢慢體會XDDD)&lt;br /&gt;不過要造成這樣不負責任的阿宅人生，也要對週遭的人說聲Thanks...&lt;br /&gt;給我很大的自由度做可以讓我自已覺得快樂的事&lt;br /&gt;雖然說人生不如意事十之八九，這機率實在讓人很灰心&lt;br /&gt;但是如果連剩下的十之一二都無法掌握，那實在是太可惜了&lt;br /&gt;&lt;span style="color:#00cccc;"&gt;假設明天地球要爆炸了，那今天汲汲營營的一切不都變成很笨了嗎 &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;(好像有點離題)&lt;/span&gt;&lt;br /&gt;時間會流逝、環境會變，只有快樂才是真的&lt;br /&gt;&lt;br /&gt;在說什麼咧，果然還是在演內心戲呀!!XD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-5290167826014239238?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5290167826014239238/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5290167826014239238' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5290167826014239238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5290167826014239238'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/11/thanks.html' title='Thanks'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-2602995913950095138</id><published>2008-09-14T16:17:00.000-07:00</published><updated>2008-09-15T06:43:48.454-07:00</updated><title type='text'>難道果真是自虐狂???? (純綷碎唸而已)</title><content type='html'>今天開學&lt;br /&gt;&lt;br /&gt;本學期第一天上課。繼上學期的血腥的ACP, 上上學期艱苦的DIS 後，真的到學期開頭除了興奮之外，還有一種懼怕爆肝的翻騰感在胃裏攪動。&lt;br /&gt;&lt;br /&gt;對於30代的兼職學生而言，熱情與理想不如20代的應屆學生，連體力都差了一大截，當很多事情不巧撞在一起的時候，會有一種想乾脆裝死的衝動。比方期末考前公司也要出release build, 或者剛好小朋友在你最需要時間的時候也需要你的照顧。這時的問題不是 to be or not to be...? 而是，to be "what"? 敬業的員工? 認真的學生? 慈愛的老媽? 左腦一面k書求qualify 能過右腦一面幻想著失業或是女兒將來變成太妹的情節時常上演。&lt;br /&gt;大部份的時候可以好好的想成這是上天的磨鍊：多少學長姐不也是這樣過來的嗎? 或者另外的某某某在國外也可以一面帶小孩一面拿到phd degree. 但是內心裏的掙扎總有一點。家庭工作和學業我都愛，這是問題的constraint ,只能在有限的solution space 裏找最佳解，這就是活生生OR的實戰應用。所以有人說 OR 很難很難，的確實際經過方能體會箇中滋味。解了這樣的題目可能人生的問題也解了不少? 或者有些時候，最佳解近在眼前，只是已經疲乏或是情緒化到無法跨出最後的那一步的境界，只能說一整個恐怖。&lt;br /&gt;&lt;br /&gt;唸博班漫漫長路偶而也會讓人暈眩；博班的研究通常要持續4-9年；在這麼長的時間裏會一直不停自我詰問倒底研究能不能開花結果 ? 或更實際一點投出去的paper 是否能順利被接受? 我覺得自己比較幸運的是，喜歡手上的研究主題，所以至少能夠自High；但是常常也怕要是這結果真的只能自High，那這些年的努力又是怎麼個結局?&lt;br /&gt;&lt;br /&gt;那麼到底是為了什麼堅持下去? 難道我是天生的自(被)虐狂嗎? 還是心理有缺陷的怪咖啊?綜藝節目裏男女糾察隊時有個搞笑角色連自已虐待狂還是被虐狂都搞不清楚；我可不想在這麼不清不楚的情況在一面痛苦一面快樂，有夠有病的。&lt;br /&gt;&lt;br /&gt;那試著想想有什麼開心的地方吧...回顧兩年前剛進學校的我，和現在應該是差了很多了。以外表來說，臉上的皺紋多了一點，同時對一些知識的理解也同時進步了一些。有一些沒有在大學及研究所學好的基礎科目也終於痛下決心好好的學習。說真的在修課做project 或是做研究的時候，也是蠻有樂趣的，比方說想出一個有效率的實作方式解題；或者是將一些演算法拿來解實際應用時真是無比歡樂，甚至創造應用更是一種至high 無上的境界。希望這種 natural high的精神可以一直延續下去… Please~~~! Natural high 真是無敵呀! Natural high rules! 不過說到底這種經由創作而來的快感也是來自於被逼到角落的激發，沒有壓力無從拼命，自然不會有擠出好物的一天，人呀人，真矛盾。所以還是個被虐待狂嗎?也許吧。&lt;br /&gt;&lt;br /&gt;或許這種在痛苦中求快樂的歷程，要一直持續到畢業，可能到時又進入了一個新的境界，那時候的level 又不是個自虐狂或被虐狂可以描述的了 哼哼哼...&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/1256426437019636951-2602995913950095138?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/2602995913950095138/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=2602995913950095138' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2602995913950095138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2602995913950095138'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/09/blog-post.html' title='難道果真是自虐狂???? (純綷碎唸而已)'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-6597990888520126855</id><published>2008-09-12T00:32:00.001-07:00</published><updated>2008-09-12T01:39:57.609-07:00</updated><title type='text'>你是胖子嗎？給我跑快一點XDDDD</title><content type='html'>測試工具碎碎念 - &lt;a href="http://selenium-grid.openqa.org/"&gt;selenium grid&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;隨著功能與defect 的增加，還有時間的流逝，手上web test跑完一遍的時間已經要超過一個小時啦XDDD.　這還是效率高的firefox 3, 換成ie 6的話更是直逼兩小時大關。這一來真是糟糕啊，假想出完build 要知道重要的流程在所有支援的瀏覽器跑得怎樣，四個瀏覽器就要5~6小時去了。那出build 那天，&lt;span style="font-size:130%;color:#ff0000;"&gt;&lt;strong&gt;我不是就要加班了嗎@@.....&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;除了治本，將test case 朝著行雲流水之必殺一筆劃(幻想中是有這種流程，走一遍可以測很多重要的功能，十分有效率)邁進；另一方面，加速執行速度也是另一個可以考慮的方向。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;於是基於不想加班的信念，開始試用selenium grid. 它是架構在selenium core, selenium remote control 之上的專案，可以將你的測試程式分成好幾個instance 在跑。假想有兩台營幕，一台看本機跑firefox 3 on mac, 另一看remote跑ie 6 on windows, 真是一整個暢快呀！ 不過既然selenium grid 是一種分散的架構，testcase　和之前集中在一台跑的寫法當然有一點不一樣。比方講最簡單的，它一定是個多執行緒(多行程)的東西，然後selenium grid 跟據load balance 加上你指定的configuration把它dispatch 到適當的cell 執行。 &lt;strong&gt;這時你的程式就要自已要維持它的thread safe (或 process safe) 。&lt;/strong&gt;舉例而言，之前我用singleton維護的一個東東，換成在grid 上跑之後就用Threadlocal來存(之類)，或以更上層的邏輯而言，有那種同時刪除或修改同一個東西的可能時，請避開，除非你是故意要測。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;selenium自已是推薦用它的TestNG annotation來做testcase 的configuration來達成Threadsafe。&lt;br /&gt;&lt;br /&gt;當然這個就見仁見智看要不要用。不過因為它的annotaion 和JUnit的衝得嚴重，加上我自己的testcase 其實用programming的方式可以輕易的避開這問題，所以就沒有用啦。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;selenium grid 還十分貼心的將環境的設定設成抽離出瀏覽器的種類，比如你可以將 Mac OSX Tiger+ Safari 設成 Safari-Tiger(叢林裏的老虎，聽來好威) 然後 Windows + Safari 設成 Safari-Windows (叢林裏的一扇窗?....這...) 。這是因為，在不同作業系統上，即使是同一種瀏覽器，在處理javascript 及css render 上還是會不同(吐血...)，所以這樣的抽離可以在環境的設定上更有彈性，是值得大大鼓勵的。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;總之希望下次出build的時候可以靠它準時走人啦XDDDD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-6597990888520126855?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/6597990888520126855/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=6597990888520126855' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/6597990888520126855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/6597990888520126855'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/09/xdddd.html' title='你是胖子嗎？給我跑快一點XDDDD'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3670617172626285289</id><published>2008-08-26T23:48:00.000-07:00</published><updated>2008-08-26T23:58:24.758-07:00</updated><title type='text'>二三瑣事</title><content type='html'>(1)QA是軟體的後娘&lt;br /&gt;要說PG是軟體的親媽，那QA就是這傢伙的後娘。&lt;br /&gt;比如說，親媽在小孩可以處理正常資料就很開心的當兒，後娘則要板起臉來搞一堆正常人不會想到的測資來挑三撿四的說這個不行那個也不行，可能還要再跺跺腳來增加一點氣勢之類?　不過老話一句，對程式仁慈，就是對自己殘忍。你不能確保User 都是正常人，這年頭，太正常才不正常吧?(離題了嗎…)&lt;br /&gt;&lt;br /&gt;(2)長期放任體脂肪不管，它會爆炸&lt;br /&gt;嗯，身體已經有2/5 是脂肪組成的了。運動完就大吃的話情況會惡化不會變好。&lt;br /&gt;&lt;br /&gt;(3) 貓兒也會憂鬱，憂鬱了會生病、生病了沒有健保&lt;br /&gt;太忙了放著不管的結果，以後每天要擠出至少15分鐘來陪貓&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-3670617172626285289?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3670617172626285289/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3670617172626285289' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3670617172626285289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3670617172626285289'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/08/blog-post_26.html' title='二三瑣事'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-1505550128029383368</id><published>2008-08-21T21:16:00.000-07:00</published><updated>2008-08-21T22:33:15.831-07:00</updated><title type='text'>原來 Byzantine Failure 真的很可怕!!!</title><content type='html'>老人聚餐  - 史上最脫線記錄!!!&lt;br /&gt;&lt;br /&gt;上上學期的分散式系統教了一個重要的概念 Byzantine Failure&lt;br /&gt;就是一個分散式系統中，如果有 1/3 以上的node 被人攻破或自已爛掉，很抱歉，這個系統的訊息不管如何交換，都無法保證所有的node都做成正確一致的決定。當時還在想&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;那個系統這麼弱&lt;/span&gt;啊，被攻破1/3 機率&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;太低&lt;/span&gt;了吧… 哼哼...&lt;br /&gt;&lt;br /&gt;把鏡頭拉回現實世界，昨天有四個老人(E, T, P, 我)一起出去吃飯，主約人是喵尾巴，聚餐當日的早上由 gtalk 收到以下數條訊息：&lt;br /&gt;&lt;br /&gt;T: 哈囉....! &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;今天&lt;/span&gt;怎麼約呀?&lt;br /&gt;E: 在XX餐廳吃飯好嗎?&lt;br /&gt;&lt;br /&gt;赫然在桌子前石化… 完蛋完蛋，竟然把時間記錯成&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;一星期之後&lt;/span&gt;了，並且要命的是，我和P確確實實講的是下週的日期，只好硬著頭皮打電話給P...噢… 好險，如果我沒有上線、E和T沒有好心的提醒我而是在背後譙的話，那確實以後別想再約別人出來了XDDD，還好4個node 裏只有一個爛掉啊(就是我) 沒有過1/3，OKOK, 約得成，馬上改時間！&lt;br /&gt;&lt;br /&gt;最後(T, P, 我)好不容易聚到了目的的附近捷運站(敦化忠孝站)，等著在餐廳與E會合，結果三人之中只有細心的P有上網大致查過餐廳在那裏，但是這個地點和提議者E的提供的資訊不相同，剛好在敦化南路的不同邊。最後我們決定相信E的資訊，從忠孝敦化往&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;復興捷運站&lt;/span&gt;出發。不過，當我們到達復興站的時候，E竟然來電請大家再往&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;國父紀念館&lt;/span&gt;的方向走..................三人當場崩潰。這個case 是，4個node 有3 個fail，只有一個正常的node，最後系統當然爛去了。&lt;span style="color: rgb(0, 0, 0);"&gt;好像在演出忠孝東路走九遍，而且是在超炎熱的夏季！！！&lt;/span&gt;雖然順路買到了吊鐘燒，不過心裏還是有種茫茫然的感覺。最後四人眾終於最後憑著非常淺薄的記憶力走到傳說中的餐廳…也算是功德圓滿啦^0^&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ORgBiswUMg4/SK5OlCDoJXI/AAAAAAAAAJk/ySFnR0Ndrx4/s1600-h/%E5%9C%96%E7%89%871.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 428px; height: 84px;" src="http://1.bp.blogspot.com/_ORgBiswUMg4/SK5OlCDoJXI/AAAAAAAAAJk/ySFnR0Ndrx4/s320/%E5%9C%96%E7%89%871.png" alt="" id="BLOGGER_PHOTO_ID_5237209814792676722" border="0" /&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;br /&gt;還是很愉快的吃了一頓晚餐，而且大家也交換了一些有趣的生活資訊，回家馬上打開T提供的爆笑影片&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/T__BsFTRUNw&amp;amp;hl=zh_TW&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/T__BsFTRUNw&amp;amp;hl=zh_TW&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;(說真的，當馬利歐出現的時候，我真的崩潰了)&lt;br /&gt;沒想到陣內智則除了是藤原紀香的老公之外，也是個很厲害的諧星呀～&lt;br /&gt;&lt;br /&gt;還有另一個心得就是&lt;br /&gt;真的真的要相信處女座的同伴　...這樣即使在Byzantine Failure 的情況下，系統還是有很大的機率可以存活低！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-1505550128029383368?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/1505550128029383368/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=1505550128029383368' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/1505550128029383368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/1505550128029383368'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/08/byzantine-failure.html' title='原來 Byzantine Failure 真的很可怕!!!'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORgBiswUMg4/SK5OlCDoJXI/AAAAAAAAAJk/ySFnR0Ndrx4/s72-c/%E5%9C%96%E7%89%871.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-8380411040812819813</id><published>2008-08-18T05:35:00.000-07:00</published><updated>2008-08-18T06:13:01.885-07:00</updated><title type='text'>即使本人是左圖的肥貓，也可以化身成巧克力辣妹.......Sosauce Mesa is super fun!!!!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORgBiswUMg4/SKlvXOS67nI/AAAAAAAAAI0/lFuAnf6CjRw/s1600-h/tail.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_ORgBiswUMg4/SKlvXOS67nI/AAAAAAAAAI0/lFuAnf6CjRw/s320/tail.jpg" alt="" id="BLOGGER_PHOTO_ID_5235838486560042610" border="0" /&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;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;這是喵尾巴在 Sosauce Mesa 的分身...&lt;br /&gt;&lt;br /&gt;Sosauce Mesa 又是什麼東東呢?&lt;br /&gt;簡而言之是一個web-based 的虛擬世界交友平台&lt;br /&gt;在這個虛擬世界中，你可以化身成金髮壁眼的帥哥或是巧克力辣妹。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;還可以精心佈置屬於自已的窩，我有一個民族風的床，一個大地球 - 上面載滿了我在Sosauce 另外一個叫Travel 的 App 所留下的旅遊足跡。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORgBiswUMg4/SKlwyKD0GGI/AAAAAAAAAI8/JRKmr6sK3jo/s1600-h/room.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_ORgBiswUMg4/SKlwyKD0GGI/AAAAAAAAAI8/JRKmr6sK3jo/s320/room.jpg" alt="" id="BLOGGER_PHOTO_ID_5235840048791033954" border="0" /&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;br /&gt;&lt;br /&gt;&lt;br /&gt;家中的肥貓亂入 ? 海報的內容可以由Sosauce/Photo 裏的影像匯入喔，海報下面有一顆足球，聽說控球得宜會有無雙模式 - &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;火球 !!&lt;/span&gt;&lt;/span&gt; 不過我從來沒有踢出來過...Orz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ORgBiswUMg4/SKlywD0jm1I/AAAAAAAAAJU/G0jbO6N3fVY/s1600-h/room2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_ORgBiswUMg4/SKlywD0jm1I/AAAAAAAAAJU/G0jbO6N3fVY/s320/room2.jpg" alt="" id="BLOGGER_PHOTO_ID_5235842211779943250" border="0" /&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;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;當然這麼屌的家一定要有訪客，不然真是猶如錦衣夜行呀! 開 party 囉 !!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORgBiswUMg4/SKlzb-EHXOI/AAAAAAAAAJc/abeUKGH6Imk/s1600-h/party.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_ORgBiswUMg4/SKlzb-EHXOI/AAAAAAAAAJc/abeUKGH6Imk/s320/party.jpg" alt="" id="BLOGGER_PHOTO_ID_5235842966148832482" border="0" /&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;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;嗯，大家一起閒扯蛋~ 真是和樂融融 ^^&lt;br /&gt;有那一個社群網站可以讓你佈置好自已的家，穿上喜歡的衣服、挑選眼睛的顏色，換個金髮來交朋友呢 ?  go : &lt;a href="http://www.sosauce.com/"&gt;www.sosauce.com &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-8380411040812819813?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/8380411040812819813/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=8380411040812819813' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8380411040812819813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8380411040812819813'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/08/sosauce-mesa-is-super-fun.html' title='即使本人是左圖的肥貓，也可以化身成巧克力辣妹.......Sosauce Mesa is super fun!!!!'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORgBiswUMg4/SKlvXOS67nI/AAAAAAAAAI0/lFuAnf6CjRw/s72-c/tail.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-2909408183315336919</id><published>2008-08-14T17:14:00.000-07:00</published><updated>2008-08-14T17:53:20.593-07:00</updated><title type='text'>乾坤大挪移第七重 ........................(之我還沒練到)</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Warning: 本篇部份為幻想文&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;最近公司在出release build. 幾乎是每日一build來的。&lt;br /&gt;在以前的公司， daily build 的經驗非常之少，現在這個團隊真的了不起哩!&lt;br /&gt;&lt;br /&gt;不過令我個人非常苦惱的事情是，這幾個build 測得可說是2266。甚至有很嚴重的情況是說：同事玩到的blocking defect，我還不知道那個功能在那邊................實在是很囧. 一開始其實不很明白為何會出這樣的狀況，很迷惑。但是後來和朋友討論的後，發現源頭是因為我對規格不是很了解的關係。目前的做法是，出build 的時候，我就來個反向工程，把介面上的異動想回規格再測它。那如果沒有留意到的小更動，自然也就不會測到。&lt;br /&gt;&lt;br /&gt;仔細想想這樣會爆也合理(?) 如果是XP 裏的iteration plan 是要連qa 一起進去的，sa 一邊講規格，qa一邊想怎麼怎麼可以搞爆這個規格。(當然programmer 也會做大概的design + analysis) 更極端的例子是，有些團隊的qa也是programmer，她們隨團隊一起開發，並且在開發的過程中隨時提出邪惡的點子來惡整這個軟體。如此一來，高風險的功能早就在開發的中間就千錘百鍊了，也不用到出build 之後再來找qa 在另一個小房間測它。&lt;br /&gt;&lt;br /&gt;這種做法的好處是很有效率。比方說我今天來寫個核心引擎是要來index 全文，要能撐得住terra byte 的文件量，在某種機器上的response time 回應必需在0.5 sec以內。那最好的方式就是在決定用那一種底層架構的時候，qa 就一起對開發中的半成品做一些極端的折磨。如此一來在開發之初就可以確知可行性為何，架構是否健康。不用等介面(html? webservice? interface?)都寫好了再找qa 進來，此時發現不行再來更動，所花的時間成本就高了。&lt;br /&gt;&lt;br /&gt;那麼，理(幻)想中的qa 要有什麼功能呢?&lt;br /&gt;&lt;br /&gt;(1)在訂規格的時候了解規格&lt;br /&gt;&lt;br /&gt;(2)對軟體邪惡&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(俗話說，對程式仁慈，就是對自己殘忍)&lt;/span&gt; (&lt;--那來的俗話?)&lt;br /&gt;&lt;br /&gt;(3)在開發過程中了解程式架構 &lt;span style="color: rgb(255, 0, 0);"&gt;(一知半解)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(4) 其它操作測試工具的技能 &lt;span style="color: rgb(255, 0, 0);"&gt;(目前我可能在這裏)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;下個build 來試驗一下，直接從源頭(規格) 找麻煩，並且保持邪惡的心態(?爆)來Q，希望能真正做到品質保證啦XDDDDD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-2909408183315336919?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/2909408183315336919/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=2909408183315336919' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2909408183315336919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2909408183315336919'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/08/blog-post.html' title='乾坤大挪移第七重 ........................(之我還沒練到)'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-6474303709231335256</id><published>2008-07-25T04:03:00.000-07:00</published><updated>2008-12-09T00:18:19.514-08:00</updated><title type='text'>iGoogle 小工具 - 窮人的KTV</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORgBiswUMg4/SIq7Lhi9gZI/AAAAAAAAAIs/f0KLogq0P2c/s1600-h/KTV.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_ORgBiswUMg4/SIq7Lhi9gZI/AAAAAAAAAIs/f0KLogq0P2c/s320/KTV.png" alt="" id="BLOGGER_PHOTO_ID_5227196124174844306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;最近超想唱歌，可是又對KTV 的環境實在有點感冒&lt;br /&gt;總覺得唱完出來一身都是股以煙味為主食物為輔的噁爛味道&lt;br /&gt;為了過過唱歌的乾癮，就狂上Youtube聽歌練唱&lt;br /&gt;唱久了仍然覺得，每次唱新歌就要重新搜尋切換頁面有夠麻煩的&lt;br /&gt;於是忽自已寫了一個可以連續撥放選定歌曲的小工具&lt;br /&gt;&lt;br /&gt;名之曰：&lt;blockquote style="font-weight: bold;"&gt;窮人的KTV&lt;/blockquote&gt;.......................&lt;br /&gt;&lt;br /&gt;好像很衰的名子厚？&lt;br /&gt;這是反應用它來唱歌不花半毛十分的省錢　(另一意可解為它真的很陽春的實際狀況)&lt;br /&gt;不過，麻雀雖小五臟俱全　除了可以連選連放，也可以在撥放當中再點歌，清除已點歌曲(這個目前還有點bug)，當然也有咖歌功能　總之就是一個為了解KTV 癮的偽物&lt;br /&gt;目前介面十分的醜，而且稍稍有心就可以玩爛它，不過爛掉也不過就是自已client side 爛去，重新refresh 一下即可。作者已經忙到快被鬼抓走了，等那天有閒的時候再來改進吧^^;&lt;br /&gt;圖中是裝好後的screen shot。由於尚未發佈，所以只能用 url 直接新增在 iGoogle介面 http://gadgetshopping.googlecode.com/&lt;br /&gt;svn/trunk/poorManKTV/poormanktv.xml&lt;br /&gt;&lt;br /&gt;(可直接以url 新增的小工具則是可&lt;a href="http://www.google.com.tw/ig/directory?q=google+my+gadgets+&amp;amp;hl=zh-TW&amp;amp;root=%2Fig&amp;amp;dpos=top&amp;amp;cat=tools&amp;amp;start=14&amp;amp;url=www.google.com/ig/modules/developer.xml"&gt;由此&lt;/a&gt;安裝 )&lt;br /&gt;&lt;br /&gt;有興趣的人可以試用喔 ~&lt;br /&gt;&lt;br /&gt;喔 PS 可以由搜尋字的預設值知道我最喜歡的歌手是誰 :P&lt;br /&gt;&lt;br /&gt;2008/08/01 補&lt;br /&gt;&lt;br /&gt;匯整眾親友試用過的意見後，修了一些 defect ，版面也重調了&lt;br /&gt;一開始由於自己的螢幕解析度比較高(1440*960)，開發出來的小工具在1024*768下竟然會被切成一半...真是太淒慘了，唱歌字幕只有一半?這是不被允許的!!&lt;br /&gt;還有一些不會trigger end event, 或不容許embed 的video, 會造成連播功能爛掉。為了阻止這個慘劇，加了強迫 cut 歌鍵。(這一版暫停也不會cut 歌了，這個特異功能讓許多人迷惑，拿掉)&lt;br /&gt;還有播放器也調成在tray的上方。&lt;br /&gt;&lt;br /&gt;還有一些改進如搜尋結果排序順序、版面太醜等再陸續調整。&lt;br /&gt;&lt;br /&gt;阿貴小姐抱怨沒有echo.... 嗯可能在空曠的房間唱會有機會....&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/1256426437019636951-6474303709231335256?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/6474303709231335256/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=6474303709231335256' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/6474303709231335256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/6474303709231335256'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/07/igoogle-ktv.html' title='iGoogle 小工具 - 窮人的KTV'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORgBiswUMg4/SIq7Lhi9gZI/AAAAAAAAAIs/f0KLogq0P2c/s72-c/KTV.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-514039659793151329</id><published>2008-07-12T02:55:00.000-07:00</published><updated>2008-07-12T03:00:33.596-07:00</updated><title type='text'>用YOUTUBE 來練唱</title><content type='html'>最近突然超想唱歌的　於是常常上Youtube 聽歌　準備有人邀我去KTV時能展現亮麗的歌喉～&lt;br /&gt;&lt;br /&gt;無意間聽到這一條研究所時最喜歡的歌曲　真懷念～&lt;br /&gt;&lt;br /&gt;歷久彌新&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Fjm99zfydaM&amp;hl=zh_TW&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Fjm99zfydaM&amp;hl=zh_TW&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;PS. 王菲隱退太可惜了&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-514039659793151329?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/514039659793151329/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=514039659793151329' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/514039659793151329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/514039659793151329'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/07/youtube.html' title='用YOUTUBE 來練唱'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5471915859236324504</id><published>2008-07-02T02:37:00.000-07:00</published><updated>2008-07-02T04:17:20.152-07:00</updated><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;「我來不及的程度…」&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;「時間就像XX，擠一擠就有」(XX 被我消音了，對原文有興趣的人可以搜尋 "斯林巴地曝露格")&lt;br /&gt;&lt;br /&gt;也算是一句勵志的名言啦 不過以目前的情況來說，常常是對著擠到不能再擠的行事曆發愁啊…&lt;br /&gt;&lt;br /&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;&lt;br /&gt;也許是需要休息一下的時候了 Zzz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-5471915859236324504?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5471915859236324504/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5471915859236324504' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5471915859236324504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5471915859236324504'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/07/blog-post.html' title='研究像花朵'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3924741536196528292</id><published>2008-06-25T07:42:00.000-07:00</published><updated>2008-06-25T08:02:26.840-07:00</updated><title type='text'>學期結束　暑假開始！</title><content type='html'>又是一個學期結束了&lt;br /&gt;這個學期收獲很多&lt;br /&gt;高等網路、高等(一流)程式設計、還修改了一篇論文,(...算是高等論文撰寫吧？)&lt;br /&gt;&lt;br /&gt;中間最辛苦的是一流程式設計，因為演算法和C++/C coding 技巧不熟&lt;br /&gt;所以真的是被強者同學電好玩的&lt;br /&gt;不過沒有這堂課，也就不會買書來K, 找習題來練，雖然期末還是血淋淋的，但是自己是覺得沒有白費&lt;br /&gt;要感謝費加洛大叔幫忙監督每日一練習、星砂姐的仗義救援還有牡犡助教的熱心相助～&lt;br /&gt;&lt;br /&gt;高網則是涵蓋範圍十分廣，從queueing theory 到mathmatical programming…　收獲真的不少，每個作業都在想破頭後帶來進步...大學同窗小莉在我的msn掛上「徵求queueing theory 高手相助」時第一時間跳出來，真是感動啊～～　&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/1256426437019636951-3924741536196528292?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3924741536196528292/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3924741536196528292' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3924741536196528292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3924741536196528292'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/06/blog-post_25.html' title='學期結束　暑假開始！'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-4156363268707738780</id><published>2008-06-12T08:13:00.000-07:00</published><updated>2008-06-12T16:56:59.562-07:00</updated><title type='text'>親子瘋狂愛～不要傷害</title><content type='html'>最近真的受不了油價狂漲，狠下心多reserve 一點時間在通勤上，坐公車上班上學。&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;&lt;br /&gt;看到這裡，喵我很有點了悟因果關係的那種fu (&lt;-你再鬼扯蛋沒關係= =)&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;&lt;br /&gt;總之，養小孩不是養寵物　貓太寵都會騎到人頭上去(&lt;--切身之痛)　更何況是聰明伶俐加小奸詐的小朋友？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-4156363268707738780?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/4156363268707738780/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=4156363268707738780' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4156363268707738780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4156363268707738780'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/06/blog-post_12.html' title='親子瘋狂愛～不要傷害'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-8770489470482584837</id><published>2008-06-09T16:45:00.000-07:00</published><updated>2008-06-09T17:08:38.730-07:00</updated><title type='text'>你被大寫了，喵人！</title><content type='html'>這裡荒廢了一段好長的時間啊～～&lt;br /&gt;再回來看只差沒有長出草來了　(然後這個題目是什麼鬼？)&lt;br /&gt;&lt;br /&gt;最近正身處在期末地獄中，除了二科期末考之外，還要把一篇論文改出來投回去，真的還蠻苦的Orz 更慘的是，越是苦越會搞一堆阿哩不達的失誤來煩死自己，要命要命～&lt;br /&gt;&lt;br /&gt;前幾天把改好的論文寄給Tony老師，結果不多久收到了一封回信....&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Please CAREFULLY think about how to answer the comments marked red&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;各位看倌，看到了嗎? CAREFULLY 竟然是大寫耶，媽呀，一向溫文儒雅的Tony老師只要稍稍出手，當學生的就蠻有寒意...&lt;br /&gt;當然我對於趕出來的東西是還蠻心虛的，所以就在幻想老師是在怎樣的情境下回這封信的哩...當老師按下cap lock 的時候的心情是怎樣的哩?越想越覺得發毛，於是請教了也是長輩的費加洛&lt;br /&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;喵尾巴: 我覺得大寫應該還好吧? 至少比 bold 加 underline 好一點 (&lt;--自我安慰中)&lt;br /&gt;費加洛: 可是資訊人比較喜歡用純文字吧？&lt;br /&gt;喵尾巴: (驚)那你是告訴我這已經是很糟的狀況了喔？&lt;br /&gt;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;&lt;br /&gt;很好，確定狀況真的蠻慘的...我竟然被資訊人大寫了...有點像是以前打WOW的血領主時被怪物盯上的感覺，只可惜不能用任何速鍵解除這樣的狀況.然後我竟然還有時間在這裡寫blog ...嗯...Orz &lt;br /&gt;&lt;br /&gt;好吧，Tony老師，我會好好努力的！！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-8770489470482584837?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/8770489470482584837/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=8770489470482584837' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8770489470482584837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8770489470482584837'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/06/blog-post.html' title='你被大寫了，喵人！'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-6099034626627050682</id><published>2008-05-05T03:53:00.000-07:00</published><updated>2008-05-05T08:49:07.218-07:00</updated><title type='text'>Firefox 3 和 selenium 相親相愛</title><content type='html'>FF3 的 beta 版出來了 &lt;br /&gt;render 畫面的速度和FF2比起來果然差有夠多，就是快！&lt;br /&gt;&lt;br /&gt;不過，新瀏覽器出場的當兒，也是web engineer 剉咧等的時刻&lt;br /&gt;考慮既有產品的css, js 是否相容的工作不在話下&lt;br /&gt;如何做自動測試也是一門學問&lt;br /&gt;&lt;br /&gt;目前使用的工具是selenium &lt;br /&gt;現在來看看selenium 和 FF3 如何相親相愛&lt;br /&gt;以測試的結果來看&lt;br /&gt;(1) selenium 對FF2 的特別支援，比如說以*firefox, *chrome 模式configure 都是不work 的&lt;br /&gt;所以只好回到將FF3當作一般的「其它」瀏覽器,以*custom 的方式configure selenium，不過以這樣的方式進行測試的話，網頁中就不能包含domain name 不相同的其它站的元素，例如中間有個frame 指向它站的某方，這是不行的。&lt;br /&gt;&lt;br /&gt;(2) 另外，multiWindow 的模式也不適用，所以要是產品裏有一些對frame 的操作，比如說top.location.href= ... 這種的也會導致測試失敗，真的是重要的case 的話要考慮翻修一下&lt;br /&gt;&lt;br /&gt;除了以上兩點，run起來還蠻順的, 不過當然希望selenium 能進化，真正擁抱firefox3 ^^;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-6099034626627050682?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/6099034626627050682/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=6099034626627050682' title='4 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/6099034626627050682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/6099034626627050682'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/05/firefox-3-selenium.html' title='Firefox 3 和 selenium 相親相愛'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3020444065217544481</id><published>2008-04-24T16:43:00.000-07:00</published><updated>2008-04-27T23:05:13.722-07:00</updated><title type='text'>有一篇文章寫得真好!</title><content type='html'>關於OOA的&lt;br /&gt;果然薑是老的辣!&lt;br /&gt;&lt;a href="http://veggie-ec.blogspot.com/2008/03/blog-post_25.html"&gt;推&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;有某位硬派的老師說SA用txt檔就可以搞定了&lt;br /&gt;我想說我們用jpg 檔(&lt;--數位相機拍白板)就搞定了 更酷&lt;br /&gt;&lt;br /&gt;20080428補充&lt;br /&gt;&lt;br /&gt;嗯後來看看只有5行的文字不太能表達我要說的是什麼(太混了吧你!!!)，來補一下 &lt;br /&gt;&lt;br /&gt;回憶起在四年前的這個月份，喵尾巴參與了一個大專案&lt;br /&gt;當時它因為發標不順利，開始執行的時間已經比預期 delay 了三個月&lt;br /&gt;但是上包商還是十分有種(拍拍手了不起)的承諾業主會如期交付 噹噹~~~ SA/SD文件&lt;br /&gt;當時我們一天工作平均14~16個小時，可說在各系統(包括自己的)的責任都混沌不明的狀態下趕出一本厚達兩百多頁的報告&lt;br /&gt;用的是神兵利器 rational rose (這玩意神到你裝起來用筆電都會軋軋叫)&lt;br /&gt;&lt;br /&gt;不過，在這樣混沌的情況下 &lt;br /&gt;應該是先搞清楚你的子系統有些什麼樣的責任 &lt;br /&gt;要和其它系統如何介接，這時候怎麼會輪得到rose 這種東西出場?&lt;br /&gt;錄音機、白版和筆記本加上充份的溝通(工程師 &lt;--&gt; PM&lt;--&gt; 使用者)才是王道啊&lt;br /&gt;但是當年也是在交付時限的壓力下，十分神勇的用rose 搞了一些自已都不相信的鬼圖出來 &lt;br /&gt;啥咪use case, 繼承，啥咪design pattern 其實一筆一劃都是心虛啊，user 和其它client 怎麼用系統都不知道這些設計怎麼驗證。充其量只能說：「我們盡力滿足上包商的要求」，而不是「我們盡力做了系統分析設計」我記得當時真的很希望沒有人會認真看這東東：因為這種文件最厲害的地方是，即使它圖文並茂，頁數超多，你看很久，死了許多腦細胞還是不會了解它在幹麻(因為連原作者都淪陷了嘛啊哈哈~)。 &lt;br /&gt;&lt;br /&gt;我要說的是 &lt;br /&gt;不是UML不好 而是 「不是有 UML 畫出來的圖就好」&lt;br /&gt;UML 在大系統中的確是可以幫助不同團隊間的溝通，但是個人認為它是輔助了解的工具，而不是SA/SD最終產物。系統分析設計做得好，的確用文字描述也可以達到溝通的效果，只不過沒有圖表那麼賞心悦目罷了；個人覺得，純文字的部份才是決定SA工作品質的關鍵，因為靠它才能見真章啊。到現在為止，我一直在猜，如果把那十幾個系統的系統文件濃縮成每系統三頁的文字檔，審查的人一定能一眼看出我們在鬼扯蛋，而不是對著那厚厚的文件山翻兩個月後挑些不關痛癢的偽審查意見回來。(嘿嘿結果那系統後來在實作階段，開會還是都在吵一些分析時就應該釐清的重點)&lt;br /&gt;&lt;br /&gt;嗯回到上面推的文章，它把怎麼做一個OOA model, 怎麼驗證一個 OOA model 都講得很清楚。那是做「真的」SA的具體方法中的一種。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-3020444065217544481?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3020444065217544481/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3020444065217544481' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3020444065217544481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3020444065217544481'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/04/blog-post_24.html' title='有一篇文章寫得真好!'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3191119185181075480</id><published>2008-04-23T05:11:00.000-07:00</published><updated>2008-04-23T05:24:18.409-07:00</updated><title type='text'>噢～沮喪斃了</title><content type='html'>最近幾天十分的苦惱　&lt;br /&gt;原因是來自一個審查論文的工作&lt;br /&gt;這篇被交到我手上的論文，說真的只能用淒慘兩字來形容&lt;br /&gt;從立論、建立模型的方法、到拼字、文法都非常有問題，有問題到真的會想敲敲這作者的頭，問他一聲你還好嗎?&lt;br /&gt;要把這篇鬼東西看完，簡直是精神上的酷刑，看了兩頁之後，連再拿起這玩意的勇氣都沒有&lt;br /&gt;tony 老師說要儘量審，儘量看懂&lt;br /&gt;哎我明白這是對投稿者的誠意，也是一個學術工作者敬業的表現&lt;br /&gt;但是哎喲喂，我真想逃跑　&lt;br /&gt;星期天我在百般無奈與無名大火燒起的情形下在這裏留了一篇發洩文，大意是說這篇文章有多差，還有我有多火大之類的&lt;br /&gt;不過後來覺得不能隨便拿情緒丟大家所以就把那篇刪了&lt;br /&gt;可是…可是…　&lt;br /&gt;我真的不甘願把時間花在這種沒事找事的爛東西上&lt;br /&gt;我還有其它更多更該作的事啊...多寫幾個自動測試　多練一下演算法　陪女兒玩一下　都比這個有意義得多　這篇文章的學術貢獻是零，然後還連帶害reviewer 的產能降低　該死的…還有比這更笨的事嗎？　&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/1256426437019636951-3191119185181075480?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3191119185181075480/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3191119185181075480' title='5 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3191119185181075480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3191119185181075480'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/04/blog-post_23.html' title='噢～沮喪斃了'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-7176475921264367882</id><published>2008-04-06T02:49:00.001-07:00</published><updated>2008-06-15T20:06:41.502-07:00</updated><title type='text'>高網reading assignment 心得～</title><content type='html'>這學期修了一科高等網路，這門課蠻精采的，因為老師的學問十分淵博，而且也有王牌貝爾實驗室的實務經驗，所以也能夠透過一些實際上的例子，讓我們將複雜的網路理論、統計及數學和實務上要處理的問題連在一起。&lt;br /&gt;&lt;br /&gt;不過像老師是這樣的強者，也是有一些令人傷腦筋的地方，比方說對強者而言，一些基礎的數學與統計是必備知識，上星期出了一篇reading assignment, 喵尾巴一看之下險些沒有昏倒，超多統計和積分的符號，不出幾秒就把acrobat關了，怕影響消化(當時在吃晚飯)，並且一面心想強者和弱者真的是差太多了~ &lt;br /&gt;&lt;br /&gt;不過這篇論文被擺了幾天之後，心裡還是隱隱覺得不安，想說難得修了高網，怎可輕易放過level up 的好機會? 所以再拿起來看，順便複習一些基礎的數學：&lt;br /&gt;這篇文章要解的題目是，假設對於網路 QoS 的要求的Criteria 為end to end delay 對於某一延遲時間t(i.g., 5 sec) 的overdue probability(p) 的話；我們要如何將這樣的要求，allocate 在單一的network component 上? 而不用每一種可能的end to end path都做monitor ? &lt;br /&gt;在這篇文章裏提到的數學武器有下列數種：&lt;br /&gt;(0) 一個path 上關於end to end 的measure 由path 上element 貢獻所得&lt;br /&gt;&lt;br /&gt;(1) &lt;strong&gt;Convolution&lt;/strong&gt;&lt;br /&gt;Convolution，這篇論文章的應用是：當有兩個random variable合成的時候，它們的probability distributed function (pdf)會形成何種分布? 答案即是此兩個變數的pdf 的Convolution. &lt;br /&gt;單純用這個方法，配合(0)的定義，解得的解為: &lt;br /&gt;每一個element 的delay 為t/k, 而每個element 的overdue probability 為 1- (1-p)^k。這樣的解簡單，但是太過保守。&lt;br /&gt;&lt;br /&gt;(2) &lt;strong&gt;Laplace transform &lt;/strong&gt;是?&lt;br /&gt;在通信領域中，是指將時間域中的函數轉換成在頻率域中的函數。在時間域中的捲積等於在頻率域中的乘積，可以簡化計算。在這篇文章中是應用重點。(其實是蠻古遠的記憶了，好像大二工程數學有教過嘿，不過全忘光光~)&lt;br /&gt;本篇論文利用queue theory 的model，將interarrival time distribution 及 service time distribution作Laplace  transform 之後，會很漂亮(神秘)的得到一個element 上waiting time pdf下限。這時卷積又可以派得上用場，大意是說函數下限的捲積是函數捲積的下限。利用對這個下限值的限制可以反推重要的參數，如，utilization. &lt;br /&gt;&lt;br /&gt;(3) &lt;strong&gt;Markov inequality &lt;/strong&gt;&lt;br /&gt;Markov's inequality gives an upper bound for the probability that a non-negative function of a random variable is greater than or equal to some positive constant (– from wikipedia) &lt;br /&gt;它的form 為： &lt;br /&gt;Pr(|X|&gt;=a) &lt;= E(|X|)/a &lt;br /&gt;就是說，如果知道一個random variable 的Mean值，就可以用上面的式子求取這個random variable 大於某正數的機率. 可以直接套來解這個問題。所得的參數為每個element 上的mean delay.&lt;br /&gt;&lt;br /&gt;(4) &lt;strong&gt;Chebychev inequality&lt;/strong&gt;&lt;br /&gt;In probability theory, Chebyshev's inequality (also known as Tchebysheff's inequality, Chebyshev's theorem, or the Bienaymé-Chebyshev inequality), named after Pafnuty Chebyshev but first formulated by his friend and colleague Irénée-Jules Bienaymé[1], states that in any data sample or probability distribution, nearly all the values are close to the mean value, and provides a quantitative description of "nearly all" and "close to". (- from wikipedia) (寫到這裏不禁慶幸網路可以讓我們與世界接軌~)&lt;br /&gt;它的form 可以表示如下：&lt;br /&gt;P[X-E(X)&gt;=t] &lt;= 1/(1 + t2/Var(X)) 這是one side 的Chebychev inequality, 就是說如果t &gt; E(X)的話可以這樣用。(t &lt; E(X)的話稍稍做點變化就可以算了。) 如果知道一個random variable 的mean和variance 就可以用上式求取此數大於某值的機率。也可以直接應用來解題。 &lt;br /&gt;&lt;br /&gt;(5)&lt;strong&gt; Normal distribution&lt;/strong&gt;&lt;br /&gt;如果有k個random variable, 其分佈為normal distribution, 它們線性組合出的數的probability distribution function也為normal distribution. 可以直接套用解題。&lt;br /&gt;由以上五種方法看來，可知要解這個問題，統計的觀念必須要好一點才行…拿出課本K吧!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-7176475921264367882?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/7176475921264367882/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=7176475921264367882' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7176475921264367882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7176475921264367882'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/04/reading-assignment.html' title='高網reading assignment 心得～'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-4971252777948382103</id><published>2008-03-13T06:01:00.000-07:00</published><updated>2008-03-14T02:12:44.399-07:00</updated><title type='text'>Embrace change, embrace test automation</title><content type='html'>做研究没頭緒，來聊聊新的興趣~&lt;br /&gt;&lt;br /&gt;最近常常很高興的和別人說&lt;br /&gt;「你知道嗎?我轉QA了，在做自動測試喔~」 &lt;br /&gt;最通常的反應是：&lt;br /&gt;「你用rational嗎? 還是 mercury?」&lt;br /&gt;次常的反應是： &lt;br /&gt;「UI一直變動，不是自動測試改起來很痛苦嗎?」&lt;br /&gt;&lt;br /&gt;(還有人覺得很奇怪，啊網頁測試不就點來點去而已…(我踢~~~))&lt;br /&gt;&lt;br /&gt;其實對於自動測試的偏執，有大部份的緣由是來自對Iterative 開發的相信。Iterative 開發解答了需求變更的及降低技術風險的問題，但的確帶來新的疑問&lt;br /&gt;&lt;br /&gt;「那測試呢?」&lt;br /&gt;&lt;br /&gt;如果你是用人工測試，很好，每次新的release 出來，不但要測試新功能，舊功能也要一併測- 加新功能的時候應該沒有一個工程師敢掛保證舊功能不會掛吧? (好吧，至少我不敢…) ，如果你對外宣稱要支援IE6.0, IE7.0, FF2.0，還有safari...喔喔，那變成所有功能要測四次，因為很讓人沒力的是，每種瀏覽器run 起javascript 和css就是同中求異，異中求同，除了乖乖測之外也沒有其它的方法呀~ 全部都用人工，這太慘了(也太累(笨?)了)。&lt;br /&gt;&lt;br /&gt;所以自動測試(for acceptance test)對於長期的、Iterative 的開發是必要的。市面上的工具也蠻多，不過我依照個人的偏好，選了selenium當我的戰友。雖然說是偏好，但其實是有幾個重要的理由。個人(真的是個人)覺得，一個好的，用來做　acceptance 的自動測試工具應該要有下列特點： &lt;br /&gt;&lt;br /&gt;(1)Ease of Use&lt;br /&gt;通常測試人員花比較少的時間碰code，所以他們對頁面的dom結構不會太熟，此時可能需要一些工具的幫忙，如firefox 的dom inspector, XPather,甚至是可以錄製的工具試錄一小段，幫助測試人員降低一些門檻  &lt;br /&gt;(2)Compatible &lt;br /&gt;Must be compatible with browsers you want your software to support. Crystal Clear.&lt;br /&gt;(3)Programmable&lt;br /&gt;因為你的要測的軟體會變(而且有可能是大變)。所以你的腳本一定要能夠跟著改(而且要用十分少的時間成本跟上)。而改…如果指的是重新再錄一次，那也不必了，因為每個Iteration都有可能改，可能你錄完都到下一個Iteration去了，來不及測試是也。一個有效、能跟上軟體進化的測試腳本，應該是高度模組化的東西，當程式的某一個模組改了，你對應相對的模組即可跟上去。所以，個人的感覺是這些腳本要像程式一樣，可以refactor，可以有架構，也就是說，它要能用programming 的方式drive. &lt;br /&gt;&lt;br /&gt;第三點也同時帶出一個新問題，那如果要測試的軟體本身就沒有架構(所謂前端的架構)可言，怎麼辦?其實我也不知道，因為沒有經驗過。不過以本人的直覺來看，應該會測不下去吧，至少是蠻痛苦的或會沒有效率。&lt;br /&gt;&lt;br /&gt;目前也只是個開頭，不知道以這樣的測試方法來做能否真的有好的助益(早期發現大bug 啦…提高品質啦…等等)，需要後續的努力和驗證才能見分曉囉。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-4971252777948382103?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/4971252777948382103/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=4971252777948382103' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4971252777948382103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4971252777948382103'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/03/embrace-change-embrace-test-automation.html' title='Embrace change, embrace test automation'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5795638616728352691</id><published>2008-03-10T18:44:00.000-07:00</published><updated>2008-04-07T17:46:24.466-07:00</updated><title type='text'>騎在銀龍的背上</title><content type='html'>&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4RfDBu9FbKY&amp;hl=zh_TW"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4RfDBu9FbKY&amp;hl=zh_TW" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;這首騎在銀龍的背上實在蠻熱血的，適合士氣委靡不振的研究生提振精神用:P&lt;br /&gt;大意是說，雖然我現在像小雞一樣弱，但是總有一天我會變強，騎在銀龍的背上，穿越一切的迷惘和困惑。&lt;br /&gt;&lt;br /&gt;歌詞翻譯可以看&lt;a href="http://mymedia.yam.com/m/403400"&gt;這裡&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-5795638616728352691?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5795638616728352691/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5795638616728352691' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5795638616728352691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5795638616728352691'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/03/blog-post_10.html' title='騎在銀龍的背上'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-6828164003784168616</id><published>2008-03-09T16:59:00.000-07:00</published><updated>2008-03-09T17:18:54.547-07:00</updated><title type='text'>論文論文你要何處去...</title><content type='html'>最近論文已經進行到跑真實資料的階段了；&lt;br /&gt;任務即是從一堆的移動軌跡資料中找出「共同的」移動軌跡；希望用在有sensor network的賣場中分析hotspot等等資訊. 但是…現在sensor network 在國內的賣場中仍然是雷聲大雨點小的狀態；所以轉進求取其它的真實資料做分析；詭異的是；原本預期的應該不一定對「其它」的資料有意義，所以還要為了這個資料說說故事。&lt;br /&gt;&lt;br /&gt;偏偏說一個 domain 的故事，從來不是件容易的事。 除非在該領域裏已經有足夠的浸潤，否則你對一件事觀察的角度失準與深度不夠是正常，畢竟不是精通 Tigerology (唬爛學)的人，足以寫出玄幻或奇想風格的文章，真困難。&lt;br /&gt;&lt;br /&gt;星期五聽了一個 Tigerology 黑暗爪牙的演講，其實在台下都要爆走了，不過外在則是空靈的眼神逃避演講者的目光。希望之後我去某某研討會時，不要在台下看到類似的眼睛。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-6828164003784168616?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/6828164003784168616/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=6828164003784168616' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/6828164003784168616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/6828164003784168616'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/03/blog-post_09.html' title='論文論文你要何處去...'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-316124823028284115</id><published>2008-03-05T16:07:00.000-08:00</published><updated>2008-03-05T16:16:27.820-08:00</updated><title type='text'>自動測試竟然讓我眼盲了</title><content type='html'>年初的工作轉成QA之後，非常的興奮。最大的原因是可以投時間玩webapp的自動測試，超開心的。&lt;br /&gt;花了約莫三星期的時間後，終於deploy 自動測試在新的build 上了。當然也捉到了一些bug，蠻有成就感。不過… &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;color:red"&gt;竟然在首頁的CSS Bug 被我忽略了 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;這種只依賴自動測試的睜眼瞎測試法十分危險，因為 layout 沒有半法自動測，即使CSS bug 導致頁面面目全非，只要DOM結構沒壞測試還是過得了啊啊啊… 目前所知的解法也只能用眼睛看了。&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/1256426437019636951-316124823028284115?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/316124823028284115/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=316124823028284115' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/316124823028284115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/316124823028284115'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/03/blog-post.html' title='自動測試竟然讓我眼盲了'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-2798730953203516412</id><published>2008-02-06T20:46:00.000-08:00</published><updated>2008-02-07T04:34:54.187-08:00</updated><title type='text'>P2PTrade - 自由交易的P2P 平台</title><content type='html'>分散式系統的期末計劃，是一個based on P2P 架構的交易平台； &lt;br /&gt;使用者可以在平台上利用Instant Message System 進行溝通，並且以物易物；靈感的源起是一個朋友弄了一個類似的應用在集中式的網站上，但隨即就發現了集中式的架構會有 scalability的問題；剛好這學期修了分散式系統，覺得分散式的架構也許更適合，所以在期末報告時試著implement.&lt;br /&gt;&lt;br /&gt;但是分散式的架構畢竟比較複雜，需要一些特別的技法拆招，主要要解的問題有以下幾點：&lt;br /&gt;(1) 分散的transaction: 在集中式的系統中，solution 已經很成熟；在P2P 的架構下還是MADAMADA，我們實作 lock 與 two phase commit 的機制來解這個問題；&lt;br /&gt;(2) 交易安全: 資料完全性(Data Integrity)和不可否認性(None-repudiation): 我們採用 PKI 架構解決這個問題；&lt;br /&gt;(3) Location Transparency: 這個真的不知道怎麼翻中文，意思是這個application不管你是在那個位置、有沒有固定 、public IP 都可以使用，這則是套了JXTA 這個framework去解。 &lt;br /&gt;&lt;br /&gt;實際上做起來，比想的要累很多 @@，主要是因為套jxta 這套功能強大，但是文件稀少的framework，讓我們在 trouble shooting 上花了不少時間。不過還是覺得這套framework 有它的獨到之處，值得。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-2798730953203516412?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/2798730953203516412/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=2798730953203516412' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2798730953203516412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2798730953203516412'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2008/02/p2ptrade-p2p.html' title='P2PTrade - 自由交易的P2P 平台'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3588357341409487321</id><published>2007-12-29T19:33:00.000-08:00</published><updated>2007-12-30T00:52:22.445-08:00</updated><title type='text'>華麗的腐朽與堅固的破爛</title><content type='html'>題目有點怪，但其實是常常在做的選擇題&lt;br /&gt;比如說在求學的時候&lt;br /&gt;教學內容超過所能負載的quota時, 基於不太靈光的腦袋及有限的能力&lt;br /&gt;有兩個選項在面前出現：&lt;br /&gt;(A)把考試的重要性降低，努力去增強該領域的實力&lt;br /&gt;或者&lt;br /&gt;(B)選擇對考試方針最佳化，衝高分數；&lt;br /&gt;當然有一種是完全不在意的放棄，那就不在討論的內容之內了&lt;br /&gt;選擇 (B)的人往往是由於一些外在的因素，比如申請國外學校時，成績好比較吃香等等；而選擇(A) 的人可能是想要對自已有個交代。也許在「自已想知道」和「老師覺得重要」的範圍交集不大的時候，在分數上就沒那麼漂亮了。&lt;br /&gt;&lt;br /&gt;入社會之後，也有類似的選項&lt;br /&gt;比如做到一個專案，你可以(A)用一些「專案小技巧生存術」搞出一個不太能用的系統收到高額利潤；也可以(B)稍微誠意一點，自已不賺那麼多，可是做出的系統對客戶有貢獻。嗯，不過選(A)或選(B)常常是身不由己，這點做過專案的人應該會知道。&lt;br /&gt;&lt;br /&gt;當然同樣的選項也會出現在研究單位&lt;br /&gt;(A) 要做當然做最好的，對於爛爛的conference 不在意&lt;br /&gt;(B) 衝點數，對於一些明顯的爛地方不在意&lt;br /&gt;嗯…感覺上要選(A) 還需要一點勇氣，那種被罵「笨蛋」也毫不在意的勇氣&lt;br /&gt;&lt;br /&gt;在(A) 與 (B) 之間做出明確的選擇，真的不太容易，一方面想要對得起自已，另一方面又想在體制裏獲得好處的想法真是矛盾啊…不過，最差最差的底限是不要一面罵體制笨，一面又想撈，那是最笨的(怎麼…會有一種穿心的感覺 @@)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-3588357341409487321?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3588357341409487321/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3588357341409487321' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3588357341409487321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3588357341409487321'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/12/blog-post.html' title='華麗的腐朽與堅固的破爛'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-8910258479814196578</id><published>2007-12-12T06:22:00.000-08:00</published><updated>2007-12-12T06:38:27.465-08:00</updated><title type='text'>好書推 - 窮人也可以建出具有 scalability 的網站 !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.com/Building-Scalable-Web-Sites-applications/dp/0596102356/ref=pd_bbs_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1197469434&amp;amp;sr=8-1"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://ecx.images-amazon.com/images/I/51T4N9YGE9L._AA240_.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;這本building scalable web sites 是一手打造 flickr 的 Cal Henderson 以建立 flickr 的經驗寫出的。如果你沒有預算購買昂貴的軟體和硬體，只能靠clustering PC 和apache, mysql 等open source 的軟體打造你的網站，你該怎麼做呢 …? 這本書包括軟工面的開發流程、到技術面的cluster PC, 與 web server, DB 如何部署都有涵蓋，是一本十分不錯的入門(概念)書籍。最重要的是，裏面所述全部based on 真實的第一手開發經驗，十分能貼近網站開發者所面臨的問題。(與心理的感受 :P)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-8910258479814196578?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/8910258479814196578/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=8910258479814196578' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8910258479814196578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8910258479814196578'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/12/scalability.html' title='好書推 - 窮人也可以建出具有 scalability 的網站 !'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-2654449515842397562</id><published>2007-12-05T22:49:00.001-08:00</published><updated>2007-12-05T22:51:46.919-08:00</updated><title type='text'>Lucene rules!</title><content type='html'>時代果然在進步~ lucene的index directory 已經進化成了thread safe, 不，更正確的說應該是process safe 的東西了。&lt;br /&gt;好物!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-2654449515842397562?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/2654449515842397562/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=2654449515842397562' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2654449515842397562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2654449515842397562'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/12/lucene-rules.html' title='Lucene rules!'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-8738378386947553691</id><published>2007-10-31T23:46:00.000-07:00</published><updated>2007-10-31T23:55:21.696-07:00</updated><title type='text'>冬眠之神和lucene 的合體~~</title><content type='html'>我們用Hibernate 管理資料Persist到資料庫的工作；我們用 Lucene 來建立全文檢索的index 讓大家來進行複雜的搜尋。有沒有想過，當這兩種動作合為一體的時候有多麼好用?當你新增、刪除、改一個 entity的時候，可以不用再煩惱資料庫和Index間的sync問題；當使用者進行全文檢索的時候，不用再手撈一份資料庫的資料?&lt;br /&gt;&lt;br /&gt;Hibernate-search 就是這麼好用的工具，programmer 只要用annotation設定要建全文索引的index ，並且在hibernate的設定檔設定好建索引的實體目錄、還有insert/update/delete的listener (一般使用hibernate 內建的就夠了) 讚喔 ~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-8738378386947553691?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/8738378386947553691/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=8738378386947553691' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8738378386947553691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8738378386947553691'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/10/lucene.html' title='冬眠之神和lucene 的合體~~'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3028577141727357456</id><published>2007-10-09T20:43:00.000-07:00</published><updated>2007-10-10T01:04:27.349-07:00</updated><title type='text'>JXTA 殺人事件</title><content type='html'>為了準備這學期分散式系統的作業，最近在study JXTA這個peer 2 peer的套件;本來是為了貪圖開發上的便利(say, JAVA)，選擇這個套件做為開發的基礎，但是遇到許多想不到的困難…有點暈倒。&lt;br /&gt;首先，JXTA的開發者資源不是很多，雖然tutorial code和programming guide 都有，但討論的群組不是很熱烈。一旦有困難，真的會無語問蒼天…&lt;br /&gt;第二，如果你抱著「求人不如求已」的心態，下載了它的source code 來研究，會發現「咦?是安怎連compile 都有問題啊?」然後翻翻討論區，會有一篇十分隱秘的文章叫你去download nightly build. 當你照作之後，終於理智斷線在trace 的時候，行號和source code 對不起來的那一瞬間…(等於，前面做的全是白工…)，真的configuration management 做得有夠隨便="=, 該檢討一下了。&lt;br /&gt;罵歸罵啦，其實JXTA也有它的優點。如果看過其它的p2p套件，就會知道JXTA的2.5 版其實在物件的架構上十分優美，開發者可以很清楚的從high level的模型對應到API 的使用，這是不得不讚揚一下的地方。不過，你要不是它社群裏的insider, 開發時要準備一公升的血吐一吐…不然就是回歸2.4版那種醜醜的，但相對較穩定的版本…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-3028577141727357456?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3028577141727357456/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3028577141727357456' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3028577141727357456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3028577141727357456'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/10/jxta.html' title='JXTA 殺人事件'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-1754759056543049751</id><published>2007-09-30T22:57:00.000-07:00</published><updated>2008-01-03T05:11:45.015-08:00</updated><title type='text'>這位 this, 你是那來的?</title><content type='html'>javascript的this是一個十分動態的東西，要小心的使用&lt;br /&gt;例如：&lt;br /&gt;&lt;br /&gt;function foo(){&lt;br /&gt;this.varA = "haha";&lt;br /&gt;function bar(){&lt;br /&gt;alert(this.varA);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var myFoo = new foo();&lt;br /&gt;然後 html 裏讓一個 div onclick之後觸發 foo.bar()....：&lt;br /&gt;&lt;div onclick="myFoo.bar()"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;如果真的click 下去，alert 出來不會是"haha"會是undefined，神奇吧。原因是當下的this已經不是我們預想的foo，而是div啦…&lt;br /&gt;這種事真的蠻討厭的。一不小心就會忘記，不然就是要變成…&lt;br /&gt;&lt;br /&gt;function foo(){&lt;br /&gt;this.varA = "haha";&lt;br /&gt;var me = this;&lt;br /&gt;function bar(){&lt;br /&gt;alert(me.varA);&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/1256426437019636951-1754759056543049751?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/1754759056543049751/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=1754759056543049751' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/1754759056543049751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/1754759056543049751'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/09/this.html' title='這位 this, 你是那來的?'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3947821687863282424</id><published>2007-09-13T21:02:00.000-07:00</published><updated>2007-09-13T21:17:19.869-07:00</updated><title type='text'>偵測memory leak</title><content type='html'>完全靠人腦偵測memory leak 是一種非人的行為，絕對會起笑&lt;br /&gt;這次要和legacy code 的memory leak 打架，眼看著工作管理員上的記憶體使用量直衝雲霄，實在是給它有點沒力。&lt;br /&gt;找到了 &lt;a href="http://www.codeproject.com/tools/visualleakdetector.asp"&gt;Visual Leak Detector&lt;/a&gt; ，同樣的，安裝和食用都很方便，照它的readme 裝好以debug 模式編譯，再用啟動debug；跑完後會出一份很清楚的報表，包括那裏leak, stack trace等等，很方便。&lt;br /&gt;&lt;br /&gt;PS 以上是使用Visual C++ 6.0&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-3947821687863282424?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3947821687863282424/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3947821687863282424' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3947821687863282424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3947821687863282424'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/09/memory-leak.html' title='偵測memory leak'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-7141765255521878164</id><published>2007-09-03T02:46:00.000-07:00</published><updated>2007-09-03T02:56:08.351-07:00</updated><title type='text'>iWoz 的演講</title><content type='html'>今天和同事去聽iWoz 的演講，在去之前就很興奮了&lt;br /&gt;畢竟很難得能看到一個天才型的工程師，基本上是抱著哈利波特剛進入霍格華茲的心情去到現場的&lt;br /&gt;Woz 是一個科技魔人，對於技術和創新有著異於常人的熱情。和呆伯特裏對工程師的描述差不多&lt;br /&gt;&lt;br /&gt;印象最深刻的是，有一位聽眾問了一個很浪漫的問題：&lt;br /&gt;&lt;br /&gt;「如果讓你的人生重來一次，你會改變那一些重大的決定 ?」&lt;br /&gt;&lt;br /&gt;答案則工程師到不行…&lt;br /&gt;&lt;br /&gt;「我設計apple  2 的時候 我會把浮點運算加進去…blabla....」&lt;br /&gt;&lt;br /&gt;不過，沒有這種狂熱，也沒有現在的iWoz 吧!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-7141765255521878164?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/7141765255521878164/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=7141765255521878164' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7141765255521878164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7141765255521878164'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/09/iwoz.html' title='iWoz 的演講'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-1446742353648284275</id><published>2007-08-28T08:46:00.000-07:00</published><updated>2007-09-02T18:20:19.952-07:00</updated><title type='text'>javascript &amp; HTML - 近日小記</title><content type='html'>(1) 傳值、傳址鬼打牆&lt;br /&gt;在重新開始復習C++的傳值、傳址的當兒，沒想到也在js 裏遇到這種問題&lt;br /&gt;&lt;br /&gt;code長這樣：&lt;br /&gt;&lt;br /&gt;for (var i=0; i&lt; max; i++){&lt;br /&gt;elements[i].onclick = function(){&lt;br /&gt;alert(i);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;那當你點下element[0]的時候，到底會alert啥咪?答案是 ... max。而且不管click element[1], element[2]...答案都相同！因為匿名function註冊的寫法是傳址的效果。&lt;br /&gt;&lt;br /&gt;寫成這樣：&lt;br /&gt;function clickHandle(i){&lt;br /&gt;elements[i].onclick = alert(i);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;for (var i=0; i&lt; max; i++){&lt;br /&gt;clickHandle(i);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;就會沒事，因為傳進function裏的值是類似傳值的效果…鬼打牆的數小時....&lt;br /&gt;&lt;br /&gt;(2) textarea 包textarea ....&lt;br /&gt;是不行的，我可能是公司裏最後一個知道的人Orz.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-1446742353648284275?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/1446742353648284275/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=1446742353648284275' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/1446742353648284275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/1446742353648284275'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/08/javascript-html.html' title='javascript &amp; HTML - 近日小記'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-624347660485903538</id><published>2007-08-17T21:30:00.000-07:00</published><updated>2008-12-09T00:18:19.986-08:00</updated><title type='text'>iGoogle  - Google Gadget -關於小工具的二三事~</title><content type='html'>前陣子看到iGoogle 在徵選google gadget，試圖炒熱小工具的開發，讓我也好奇的看了看小工具到底為何物。&lt;br /&gt;&lt;br /&gt;小工具需要三種角色合作：&lt;br /&gt;(1)平台及規範&lt;br /&gt;(2)小工具開發者及網路資源&lt;br /&gt;(3)終端使用者&lt;br /&gt;&lt;br /&gt;(1)中的平台負責parse合於小工具規範實作出的小工具，忠實的將小工具呈現在終端使用者的入口網頁上，它可以不用知道小工具的全部內容及邏輯，小工具和平台的溝通全透過規範中訂定的方法。(特別提一下：技術上的層面而言，分為inline , html,及 url，後兩者是透過iframe include的，看起來沒問題；而inline則是產生直接內嵌在平台中的html裏的code&lt;--不知這種的有沒有安全性的問題哩…從它的規格裏看不太出來~ )&lt;br /&gt;(2) 小工具開發者遵循規範開發自已的小工具，並且把它放在網際網路上&lt;br /&gt;(3) 終端使用者從任何的管道知道(2)開發出的好用的小工具，再在平台上自訂自已喜愛的小工具；&lt;br /&gt;&lt;br /&gt;基本上google 自已也提供了一些好用的library ，讓小工具可以很快的做出炫技效果，如拖拉等等… 總而言之蠻有趣的&lt;br /&gt;&lt;br /&gt;喵媽自已也寫了一個參加徵選，雖然比較於其它javascript 魔人來說很遜色，不過倒底也是自已會愛用的東西，來野人獻曝一下~&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ORgBiswUMg4/RsZ8EiY7bdI/AAAAAAAAABc/TPJldH5k6uo/s1600-h/thum.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_ORgBiswUMg4/RsZ8EiY7bdI/AAAAAAAAABc/TPJldH5k6uo/s320/thum.PNG" alt="" id="BLOGGER_PHOTO_ID_5099900045436349906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;http://gadgetshopping.googlecode.com/&lt;br /&gt;svn/trunk/shoppingwindow/testEbay.xml&lt;br /&gt;&lt;br /&gt;這是個ebay的shopping cart，可以自訂關鍵字跨國搜尋，並將有興趣的item放到shopping cart裏。其實如果做yahoo拍或露天拍應該更實用，但是它沒有公開的api，喵媽又懶得手趴html code，作罷，拿ebay來展示一下概念就是。&lt;br /&gt;親朋好友們有興趣加一下囉，並且請不吝提供意見喔~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-624347660485903538?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/624347660485903538/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=624347660485903538' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/624347660485903538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/624347660485903538'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/08/igoogle-google-gadget.html' title='iGoogle  - Google Gadget -關於小工具的二三事~'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ORgBiswUMg4/RsZ8EiY7bdI/AAAAAAAAABc/TPJldH5k6uo/s72-c/thum.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5410340482052640700</id><published>2007-08-09T19:20:00.000-07:00</published><updated>2007-08-10T09:14:52.008-07:00</updated><title type='text'>Test driven development with C++</title><content type='html'>比想像中難一點，可能是被eclipse寵壞了吧…　&lt;br /&gt;Test driven的精神在於測試先行，搭配"frequent" refactoring，慢慢隨各種use case 的增加讓整個系統一點一點長大。&lt;br /&gt;&lt;br /&gt;首先找測試工具：　&lt;br /&gt;cppunit - 以VC 6.0編好即可配合開發，在安裝和食用上十分方便；不過要命的是，C++裏testcase都要靠main跑；所以要配合撰寫不同的build流程，開發時build testcase 的main, production時build真的main (如果有的話)&lt;br /&gt;&lt;br /&gt;第二 - frequent refactor：　&lt;br /&gt;用了tomato配合VC 6.0 開發，不過由於C++語法較強大(複雜)的關係吧，refactor的功能十分有限，頂多換換名字、抽一抽method ，其它還是要手動來，真累。&lt;br /&gt;&lt;br /&gt;還有一些東西待摸索，希望快點適應C++的開發&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-5410340482052640700?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5410340482052640700/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5410340482052640700' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5410340482052640700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5410340482052640700'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/08/test-driven-development-with-c.html' title='Test driven development with C++'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-8194632585970847043</id><published>2007-08-01T16:48:00.000-07:00</published><updated>2007-08-01T17:15:16.202-07:00</updated><title type='text'>這不是很簡單嗎 ?....Auto Complete.....@@</title><content type='html'>Auto Complete - 在 text input  打字，系統幫忙(以 ajax) 從系統撈資料補字的功能。&lt;br /&gt;現在在各大網站上都十分常見，最近我們也要自已開發一個。&lt;br /&gt;&lt;br /&gt;乍聽之下，會覺得… "不是很簡單嗎"? 只要在text input bind keyup 事件，就可以在key up 的同時，送出 ajax call 去後端撈資料，送回來後畫在一個黏在text input  下面的div 裏  - 結束。&lt;br /&gt;&lt;br /&gt;不過，實作之後，發現總是有怪怪的現象，比如，回應速度不均 - 網路delay jitter 有差；或者補的字和你打的字無關 - &lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;A&lt;/span&gt;&lt;/span&gt;jax (Asynchronous)  不同步的回應。等等小細節，卻會讓auto complete這個功能變得十分難用。到了一種沒有比有好的悲慘地步。&lt;br /&gt;&lt;br /&gt;後來採用 &lt;a href="http://script.aculo.us/"&gt;scriptaculous&lt;/a&gt;這個js 的套件來幫忙，總算順多了。仔細來看看這個套件怎麼做的? -  其實也很簡單，就是每隔固定的時間，比如0.5 秒之類的，先比對text input 裏的資料有沒有改動，有則去後端撈資料，沒有則不做事；並且，猜測它應該有處理不同步回應的問題，因為記下了「上一個 query」，也可以判斷拿到手的非同步回應是不是過時的。&lt;br /&gt;&lt;br /&gt;嗯，總之，寫這種 ajax 的東西，絕對要考慮網路延遲和非同步的問題，這是和以往做 server side 技術不同的地方。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-8194632585970847043?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/8194632585970847043/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=8194632585970847043' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8194632585970847043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8194632585970847043'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/08/auto-complete.html' title='這不是很簡單嗎 ?....Auto Complete.....@@'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-8877767684283576940</id><published>2007-07-16T18:14:00.000-07:00</published><updated>2007-07-16T18:33:00.185-07:00</updated><title type='text'>拖拖拉拉的google map</title><content type='html'>Google Map最近在亞洲的地圖資料有了長足的進步(前陣子幾乎是一片空白的狀態)，很多和台灣島民日常生活相關的應用終於也可以架在上面玩一玩了。&lt;br /&gt;&lt;br /&gt;除了地圖資料外，Google Map 2 的API也越來越成熟囉!  加入了很多新的功能。比如你可以把一個marker 以拖拉的方式在地圖上移動，((這可是一些drag and drop maniac 夢中的功能~))並且事件的註冊模型也很漂亮，每個 marker都可以註冊自已對事件的handle。msn map可要加油些囉 !&lt;br /&gt;&lt;br /&gt;不過，Google的地圖還是有點「工程師」…這點msn map可是大大的贏。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-8877767684283576940?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/8877767684283576940/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=8877767684283576940' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8877767684283576940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/8877767684283576940'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/07/google-map.html' title='拖拖拉拉的google map'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-4091376947155034722</id><published>2007-07-05T18:05:00.000-07:00</published><updated>2007-07-05T18:55:48.577-07:00</updated><title type='text'>build請你不要fail~ - selenium</title><content type='html'>如果你採用的是最夯的iterative 開發生命週期，&lt;br /&gt;那專案經理最大的惡夢之一很有可能就是一個iteration結束後，build 卻因為重大的defect而不能用。((這真是慘，如果你的build是星期五出的，很有可能星期六日還要來加班 …所以建議大家把出build 時間挪到星期四或星期一= =+))&lt;br /&gt;iteratively  開發最大的特點在於，需求是一直一直往上加的。但是，你開發了新的功能，或修了 舊的defect，測試卻是需要測試「所有的」功能。因為沒有人敢保證在加新功能的時候，對於舊功能是毫髮無傷的。所以，測試人員的工作只會隨著功能的增加而越來越繁重。如果這個系統十分大，用人工來執行測試到最後真的會測到哭出來。所以，自動測試是iteratively開發的王道。&lt;br /&gt;&lt;br /&gt;回到web2.0的應用系統，如果我們想要做網頁程式的自動測試，就需要有一個工具可以來模擬測試人員在測試網頁時的行為，並能夠進行驗證，最最重要的是，它的錄製、修改成本絕對不能太高 &lt;span style="font-weight: bold;"&gt;- &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;因為我們要接受一件事實，世界上沒有不變的需求((而且通常是變很大)); 如果每一次的改變，都必需大費週章重新錄製角本，那可能會比人工測試還要慘歐 ~&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;最近亂逛又看到 &lt;a href="http://www.openqa.org/selenium/"&gt;selenium&lt;/a&gt; 這個工具，覺得十分的不錯。除了它可以鬆錄製測試角本(有&lt;a href="http://www.openqa.org/selenium-ide/"&gt;selenium IDE&lt;/a&gt;, 是FF的plugin)之外，因為它的指令十分簡單，所以修改看來也不是個問題。&lt;br /&gt;&lt;br /&gt;讓我印象最深刻的是，它的selector 十分活，你可以指定 element id, XPath(找&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1192"&gt;XPath&lt;/a&gt;), 或是用 document.getElementById...這種寫法來取得要click, focus (有許多 command供君選擇)的元件，也可以assert裏面的值。還可以將錄好的角本轉成java unit test整合於 CI(Continuous Integration)上面十分方便。在 firefox 錄好的角本，動動手腳一樣可以在 IE跑，所以也可以跨瀏覽器測試。&lt;br /&gt;不過，有一些功能，像上傳檔案，就沒法子測。(原因尚未參透); 而FF不支援的modal dialog 也無法在FF 錄製，要另外再寫囉。&lt;br /&gt;&lt;br /&gt;不過這樣的自動測試面臨的另一個問題是，流程上該怎麼安排? 你需要一個乾淨的資料庫，從頭開始insert資料、驗証資料，還是你只想確保頁面不爛，功能可看 ? 或你有更大的野心  - 把頁面的整合測試納入 CI管控 ? 不同的practice提供的保證不一樣，所付出的成本也不同，只能說看情況選擇最適合自已的囉 ~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-4091376947155034722?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/4091376947155034722/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=4091376947155034722' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4091376947155034722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4091376947155034722'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/07/buildfail-selenium.html' title='build請你不要fail~ - selenium'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5959300090357352014</id><published>2007-06-23T10:22:00.000-07:00</published><updated>2007-06-23T20:54:58.864-07:00</updated><title type='text'>超瞎消費事件</title><content type='html'>不知道是商家把消費者當丁丁，還是本人有歐巴桑的偏執狂?&lt;br /&gt;&lt;br /&gt;Case 1 MXD's hair XX店&lt;br /&gt;&lt;br /&gt;大熱天想把頭髮剪短圖個涼快的喵 vs 染髮魔人設計師&lt;br /&gt;&lt;br /&gt;喵：我想剪短&lt;br /&gt;設計師：不行!你的頭髮不適合剪短&lt;br /&gt;喵：那打薄應該OK吧?&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;所以白白花了7百多大洋，三星期後再去別的地方剪了一次))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Case 2 新X三越 地下美食街&lt;br /&gt;&lt;br /&gt;黃金鼠點了玉子鰻魚飯，&lt;br /&gt;&lt;br /&gt;那是一種以鰻魚為主，和蛋一起弄成像親子飯的東西，為了讓大家容易了解，找了下圖做為圖示。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://9.blog.xuite.net/9/c/b/5/12225547/blog_15586/txt/8103201/27.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 259px; height: 171px;" src="http://9.blog.xuite.net/9/c/b/5/12225547/blog_15586/txt/8103201/27.jpg" alt="" border="0" /&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;br /&gt;&lt;br /&gt;之後…阿姨做了一件令人匪夷所思的事......&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:180%;" &gt;&gt;&gt;竟然從隔壁的簡餐店拿了 菜脯蛋 ，放在鰻魚飯裏&lt;&lt;&lt;/span&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/1256426437019636951-5959300090357352014?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5959300090357352014/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5959300090357352014' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5959300090357352014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5959300090357352014'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/06/blog-post_23.html' title='超瞎消費事件'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-7061997448929000073</id><published>2007-06-12T08:58:00.000-07:00</published><updated>2007-06-12T17:38:14.727-07:00</updated><title type='text'>大變～</title><content type='html'>歷經了充滿驚嚇的一天&lt;br /&gt;&lt;br /&gt;學到的經驗是…　&lt;br /&gt;(1) 資料庫的權限管理是重要的；&lt;br /&gt;(2) CI(Continuous Integration) Site 和Production Site放在同一台機器十分危險&lt;br /&gt;(3) 重要的資料要備份&lt;br /&gt;(4) 在CI正在Running 的時候，得意洋洋的Check-in和測試整體設定相關而未經驗證的script將可能導致另人吐血的　囧境&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/1256426437019636951-7061997448929000073?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/7061997448929000073/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=7061997448929000073' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7061997448929000073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7061997448929000073'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/06/blog-post.html' title='大變～'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-4829616996486364220</id><published>2007-06-05T16:20:00.000-07:00</published><updated>2008-12-09T00:18:20.236-08:00</updated><title type='text'>HyperGraph</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ORgBiswUMg4/RmuyYk2Q1zI/AAAAAAAAAAw/7PvEnLqO-a0/s1600-h/demo2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 306px; height: 227px;" src="http://4.bp.blogspot.com/_ORgBiswUMg4/RmuyYk2Q1zI/AAAAAAAAAAw/7PvEnLqO-a0/s320/demo2.JPG" alt="" id="BLOGGER_PHOTO_ID_5074345540440872754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;學校的data mining 專案裏希望能用Association Rule建起關鍵詞與關鍵詞間的"Concept Space"&lt;br /&gt;簡單來說就是詞與詞間的相關度啦；如果一次看一堆詞就是個Graph的資料結構&lt;br /&gt;不過點子好也要有個夠炫的presentation layer ～&lt;br /&gt;&lt;br /&gt;這裡有個好工具可以把抽象的"Concept Space"視覺化&lt;br /&gt;&lt;br /&gt;http://hypergraph.sourceforge.net/&lt;br /&gt;&lt;br /&gt;聽說這個套件的演算法 - 魚眼顯示來的 已經被Patent起來啦&lt;br /&gt;在商業上受到什麼限制還要再查(好像是賣到美國就不行的樣@@, 因為是美國專利)&lt;br /&gt;&lt;br /&gt;使用方法很簡單，只照它的DTD規範定義的語法做好XML餵給它就OK了，彈性很大，在這個專案裏是做成Applet, 可以設定style 及link 等等，由此可以進一步和頁面的javascript 打交道，十分好用～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-4829616996486364220?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/4829616996486364220/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=4829616996486364220' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4829616996486364220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4829616996486364220'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/06/hypergraph.html' title='HyperGraph'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ORgBiswUMg4/RmuyYk2Q1zI/AAAAAAAAAAw/7PvEnLqO-a0/s72-c/demo2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-7669725753630539118</id><published>2007-05-13T00:44:00.000-07:00</published><updated>2007-05-13T02:00:19.059-07:00</updated><title type='text'>神奇的 Maven</title><content type='html'>雖然之前做過一陣子的軟體流程改善，但自從進入校園以後，對於軟體開發應用工具的涉獵持續了約莫一年的空白狀態。&lt;br /&gt;日前因為公司同事的input, 看到了Maven這個工具，真的有些驚豔之感!&lt;br /&gt;&lt;br /&gt;簡而言之，它是Apache 的Open Source 專案拿來管理專案的軟體。由於Apache開發的專案算是規模不小，加上要統合分散於世界各地的自由軟體開發人員並非易事，累積在專案管理上的Know how自是不含糊。由這些Know how集成所誕生的軟體就是Maven。&lt;br /&gt;&lt;br /&gt;到底 Maven有什麼特別的地方呢? 先來看看沒有 Maven 之前我們是怎麼做事的…&lt;br /&gt;如果你用過 Ant，那你一定不陌生其中的運作流程，它可以compile, test, deploy專案，以及幫忙做其它拉拉雜雜的事。Ant當時之所以成為一顆閃亮的星星，是因為它把在作業系統上一的些操作抽象化出來：比如拷貝、刪除檔案、下javac compile， 在Junit 的framework下跑testcase 等等，變成單單靠設定XML檔加上超級簡單的指令 - ant (或再加上task)即可運作得清潔溜溜。&lt;br /&gt;&lt;br /&gt;Maven之所以令人驚豔之處則是，它抽象化了專案開發中更高階的邏輯，你需要做的事情是，設定3rd Party或其它內部專案與你的專案的相依性及一些必要的屬性; 加上指定 test, compile, package, install等等"Phase"裏應該做的事之後，即可簡單俐落的運作。(上述阿里阿咂在Maven的術語中叫做&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Project Object Management&lt;/span&gt;. 是Maven的&lt;span style="color: rgb(204, 102, 204); font-weight: bold;"&gt;Heart and Soul~&lt;/span&gt;(笑))。如果還有其它配合的工具：比如Archiva, Continuum...等等，即可以做到真正自動化的Repository Management及持續性整合(Continuous Integration)&lt;br /&gt;&lt;br /&gt;好吧，說完好話之後，也要反過來看看，Maven的一些缺點：&lt;br /&gt;&lt;br /&gt;(1) 要理解它所抽象化出來的專案開發邏輯，有一定的門檻&lt;br /&gt;(2) 許多配合的應用工具，甚至都沒有到1.0版XD&lt;br /&gt;(3) 它的設定蠻煩的&lt;br /&gt;&lt;br /&gt;要用Maven管理專案的時候，要想好你的專案需要的是什麼?要怎麼規劃最適合團隊的流程?這是最重要的地方。這也是將問題(1) 打通之後才能做得好的事。&lt;br /&gt;(2), (3) 則是要靠人的測試了，有時(2)會反過來影響流程的設計, (畢竟穩定的開發工具才是開發團隊之福。)而(3)...久久才設定一次，雖然那一次足以&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;令人吐血&lt;/span&gt;，不過設定得好的話，大家都會用得笑哈哈~(不過私以為應該可以寫一個wizard讓設定這碼子事變簡單些)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;不過雖然說了一缸子的Maven好，要補上一點，敝人還是堅持，能用shell簡單做的事，不輕易用Ant, 能用Ant簡單做的事，不輕易用Maven。這是懶人的偏見和堅持，沒有什麼理論基礎就是了&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-7669725753630539118?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/7669725753630539118/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=7669725753630539118' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7669725753630539118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7669725753630539118'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/05/maven.html' title='神奇的 Maven'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-4170077252711327766</id><published>2007-05-02T21:55:00.000-07:00</published><updated>2007-05-02T22:07:22.400-07:00</updated><title type='text'>悶…</title><content type='html'>nickname of cat tail on msn: "願你日子久久長長 所有困難迎刃而解"&lt;br /&gt;&lt;br /&gt;case 1:&lt;br /&gt;友L: 這是寫給你女兒的話?&lt;br /&gt;cat tail: 不是，是WOW 德來尼npc的口頭禪&lt;br /&gt;友L: .............................&lt;br /&gt;cat tail:期末到了不能打很悶，以資緬懷&lt;br /&gt;友L: .............................&lt;br /&gt;&lt;br /&gt;case 2:&lt;br /&gt;友I: 這暱稱聽起來怨氣好重…&lt;br /&gt;cat tail: 啥  這是充滿祝福的德來尼語啊…&lt;br /&gt;友I: 我還以為你在以反諷法緬懷你的前老闆&lt;br /&gt;cat tail:(^^!)..........&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-4170077252711327766?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/4170077252711327766/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=4170077252711327766' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4170077252711327766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4170077252711327766'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/05/blog-post.html' title='悶…'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5173486677524099861</id><published>2007-04-21T22:55:00.000-07:00</published><updated>2007-04-21T22:58:18.428-07:00</updated><title type='text'>找sample code</title><content type='html'>神秘的API讓人不知所措時，找 sample code 是最快的方法&lt;br /&gt;&lt;br /&gt;之前都去 &lt;a href="http://www.koders.com/"&gt;這裏&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;不知 google 推的 &lt;a href="/codesearch?hl=zh-TW"&gt;Google 程式碼搜尋&lt;/a&gt;  效果如何?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-5173486677524099861?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5173486677524099861/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5173486677524099861' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5173486677524099861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5173486677524099861'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/04/sample-code.html' title='找sample code'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5471647240461828764</id><published>2007-04-16T06:28:00.000-07:00</published><updated>2007-04-16T06:30:04.046-07:00</updated><title type='text'>Something about OSX</title><content type='html'>OSX 與 楚詞 的關係? &lt;a href="http://osxchat.blogspot.com/2005/03/long-long-long-is-too-long.html"&gt;看這裏&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/1256426437019636951-5471647240461828764?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5471647240461828764/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5471647240461828764' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5471647240461828764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5471647240461828764'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/04/something-about-osx.html' title='Something about OSX'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-7954408547933658119</id><published>2007-04-08T21:14:00.000-07:00</published><updated>2007-04-08T21:31:56.339-07:00</updated><title type='text'>小感觸</title><content type='html'>http://www.wretch.cc/blog/myotubular&amp;category_id=333463&lt;br /&gt;&lt;br /&gt;看到這一個Blog,  突然想到電影 The hours 裏的一個場景&lt;br /&gt;&lt;br /&gt;女作家吳爾夫和她的先生對坐在火爐旁&lt;br /&gt;她的先生滿懷疑問的問她：&lt;br /&gt;「親愛的，為什麼妳的書中總有人會死?」&lt;br /&gt;女作家想了很久，回答道：&lt;br /&gt;「因為死去的人能教活的人認識生命的價值」&lt;br /&gt;&lt;br /&gt;PS. 一部好片子&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://us.movies1.yimg.com/movies.yahoo.com/images/hv/photo/movie_pix/paramount_pictures/the_hours/_group_photos/julianne_moore3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 270px; height: 381px;" src="http://us.movies1.yimg.com/movies.yahoo.com/images/hv/photo/movie_pix/paramount_pictures/the_hours/_group_photos/julianne_moore3.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-7954408547933658119?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/7954408547933658119/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=7954408547933658119' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7954408547933658119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7954408547933658119'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/04/blog-post.html' title='小感觸'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5258480923714911824</id><published>2007-04-05T07:45:00.000-07:00</published><updated>2007-04-16T07:13:13.715-07:00</updated><title type='text'>881 Vaio~</title><content type='html'>用了三年半的Vaio終於退休了&lt;br /&gt;上週因為在喵家的爭執中被當成炮灰摔落後，就一直怪怪的&lt;br /&gt;不但骨架歪歪的，PCMCIA介面也讀不到東西@@&lt;br /&gt;但畢竟不愧是Vaio，還是可以拿來coding 沒問題&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;(1) tipo無頭公案之神通on site,&lt;br /&gt;(2) 熱血之CMMI level 3 assessment,&lt;br /&gt;(3) ICM專案之新竹走透透與土城驚魂記,&lt;br /&gt;(4) 溫馨的坐月子中心的死礦冒險&lt;br /&gt;(5) 一整個意外的博班入學&lt;br /&gt;(6) 操死人不償命中央社專案&lt;br /&gt;&lt;br /&gt;想起來這三年半真是做了不少事，也經歷了人生很大的轉折&lt;br /&gt;要謝謝Vaio的一路相伴…　&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/1256426437019636951-5258480923714911824?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5258480923714911824/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5258480923714911824' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5258480923714911824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5258480923714911824'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/04/881-vaio.html' title='881 Vaio~'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-4803312122227750873</id><published>2007-03-08T20:58:00.000-08:00</published><updated>2007-03-08T21:10:54.262-08:00</updated><title type='text'>Hacking msn MAP api 之 我不要 zoom-in!!</title><content type='html'>手上的AP架在msn map api 上頭&lt;br /&gt;開發的過程中不得已要和一些細微的地方打架&lt;br /&gt;比如...zoom-in, 我們希望zoom-in level是fix 的&lt;br /&gt;但是無法控制map一碰到dbclick或滑鼠捲動就自動zoom-in的衝動 囧&lt;br /&gt;&lt;br /&gt;MSN map api無法讓你有地方將zoom-in 取消&lt;br /&gt;怎麼半?打開map api的source code後&lt;br /&gt;發現註冊在double click和wheel的事件也是private method.&lt;br /&gt;亦即在外頭無法detach event ...&lt;br /&gt;修改它的source code又怕違法&lt;br /&gt;&lt;br /&gt;最後想出一個 怪招&lt;br /&gt;確定它的event handle model是bubble up之後&lt;br /&gt;將map div 下的子節點全load 出來，註冊double click及wheel事件為canclebubble=true....&lt;br /&gt;&lt;br /&gt;這個解法是絕對依賴msn api吐出的dom 結構&lt;br /&gt;一旦改版很有可能就不work了，或是會影響到其它的功能也未可知&lt;br /&gt;不過有價值的部份是canclebubble up也可以拿來這樣用。雖然acess 不到map 內部的private method. 但是仍然可由這種方法讓它不執行....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-4803312122227750873?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/4803312122227750873/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=4803312122227750873' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4803312122227750873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4803312122227750873'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/03/hacking-msn-map-api.html' title='Hacking msn MAP api 之 我不要 zoom-in!!'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5568711208186812933</id><published>2007-03-08T02:00:00.000-08:00</published><updated>2007-03-08T02:11:35.184-08:00</updated><title type='text'>資安小記</title><content type='html'>趁著回公司做教育訓練的機會，把資安課本又走了一遍&lt;br /&gt;對於Certification Authority(CA)在PKI中的角色又有了新的認識囉…(可喜可賀)&lt;br /&gt;PKI裏，需要 CA(Certification Authority), Certificate signed from CA, Software and protocol.&lt;br /&gt;CA 除了扮演Certificate 發行者的角色外，更重要的是，由於在行政上會對持有Certificate 的個體進行查核，所以對於「有品牌」的CA 簽過的Certificate , 我們持相信的態度。&lt;br /&gt;windows 裏內建一些CA 大家的certificate，用來驗証這些我們平常透過網路與它人交換的簽章&lt;br /&gt;除此之外，你也可以去「相信」其它CA：只要你匯入它們的憑証即可&lt;br /&gt;&lt;a href="http://users.skynet.be/pascalbotte/art/clientcertconf.htm#MUTAUTH"&gt;這裡&lt;/a&gt;　可以體驗mutual authentication using SSL under PKI 的 everything (當然，相當程度的簡化...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-5568711208186812933?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5568711208186812933/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5568711208186812933' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5568711208186812933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5568711208186812933'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/03/blog-post.html' title='資安小記'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3621766108152639724</id><published>2007-03-02T08:28:00.000-08:00</published><updated>2007-04-16T07:16:10.176-07:00</updated><title type='text'>Hibernate 的 Enum...</title><content type='html'>列舉..在此不贅述, 不過如果想用Type Safe 的方式把列舉物件用Hibernate 存起來&lt;br /&gt;在3.0可有了新花樣&lt;br /&gt;由於彈性不夠，PersistantEnum 已被打入冷宮&lt;br /&gt;新歡為 UserType&lt;br /&gt;實作UserType 只要定義好列舉物件與實際被Persist 的值(如：1, 2, 3 或 "cat", "dog"...之類)的關係&lt;br /&gt;就可以開工了&lt;br /&gt;&lt;a href="http://www.hibernate.org/288.html"&gt;UserType for persisting Typesafe Enumerations&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-3621766108152639724?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3621766108152639724/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3621766108152639724' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3621766108152639724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3621766108152639724'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/03/hibernate-enum.html' title='Hibernate 的 Enum...'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-617757804728280195</id><published>2007-02-09T16:51:00.001-08:00</published><updated>2007-02-16T14:14:41.703-08:00</updated><title type='text'>java script 裏 model與view 分離的實現</title><content type='html'>&lt;a href="http://trimpath.com/project/wiki/JavaScriptTemplates"&gt;http://trimpath.com/project/wiki/JavaScriptTemplates&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(實作的時候發現在JSP裏竟然不work?&lt;br /&gt;No no....&lt;br /&gt;在控制字串前加個跳脫符號就行囉~ Ex: \${a.b})&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-617757804728280195?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/617757804728280195/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=617757804728280195' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/617757804728280195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/617757804728280195'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/02/java-script-modelview.html' title='java script 裏 model與view 分離的實現'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-682780775350854904</id><published>2007-02-06T01:33:00.000-08:00</published><updated>2007-02-06T01:40:18.067-08:00</updated><title type='text'>好書推</title><content type='html'>本來瞧不太起它的封面(設計得有點大陸廉價書的味道)，&lt;br /&gt;一翻之下發現的確是好書&lt;br /&gt;&lt;br /&gt;介紹在這裏&lt;br /&gt;&lt;a href="http://webnews.giga.net.tw/article//tw.bbs.soc.hsinchu/75904"&gt;http://webnews.giga.net.tw/article//tw.bbs.soc.hsinchu/75904&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;這裏是試讀版&lt;br /&gt;&lt;a href="http://www.learntus.com.tw/download/expr_in_sw_dev--read_n_buy.pdf"&gt;http://www.learntus.com.tw/download/expr_in_sw_dev--read_n_buy.pdf&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/1256426437019636951-682780775350854904?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/682780775350854904/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=682780775350854904' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/682780775350854904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/682780775350854904'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/02/blog-post_06.html' title='好書推'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-9075111477499535490</id><published>2007-02-05T21:23:00.000-08:00</published><updated>2007-02-05T21:49:47.185-08:00</updated><title type='text'>Information Security Note</title><content type='html'>上學期資安課程的整理&lt;br /&gt;&lt;br /&gt;略過加密演算法過於理論的部份，來看看一個資安系統在技術上可能牽涉的範疇有那些?&lt;br /&gt;(1) &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;Firewall&lt;/strong&gt;&lt;/span&gt;: packing filtering, &lt;a href="http://en.wikipedia.org/wiki/Stateful_firewall"&gt;stateful inspection&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Application_Layer_Gateway"&gt;application-level gateway&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/Circuit-Level_Gateway"&gt;circuit-gateway&lt;/a&gt;.&lt;br /&gt;(2) Encryption, decryption and authentication based on IP Level: &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;IPSec&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;(3) Encryption, decryption:(provides confidentaility)&lt;br /&gt;symmetric cipher,such as &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;DES, AES&lt;/strong&gt;&lt;/span&gt;;&lt;br /&gt;public key based cipher, such as &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;RSA, eclipse&lt;/strong&gt;&lt;/span&gt;.&lt;br /&gt;(4) &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;Message Authentication&lt;/strong&gt;&lt;/span&gt;:(provides authentication)&lt;br /&gt;MAC, hashcode.&lt;br /&gt;(5) &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;Digital Signature&lt;/strong&gt;&lt;/span&gt;:(provides non-repudiation)&lt;br /&gt;RSA+hashcode, DSA...&lt;br /&gt;(6) &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;Key Distribution Center&lt;/strong&gt;&lt;/span&gt;.(KDC)&lt;br /&gt;the architecture of distributing keys. The key distributed must be genuine.&lt;br /&gt;&lt;br /&gt;期未報告是一個web based secure purchase system. 包含幾個模組&lt;br /&gt;(1) key management&lt;br /&gt;(2) digital signature&lt;br /&gt;(3) encryption and decryption&lt;br /&gt;&lt;br /&gt;Key points:&lt;br /&gt;&lt;span style="color:#009900;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#009900;"&gt;Symmetric cipher performs much better than public key based cipher! &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#009900;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;&lt;strong&gt;Due to we cannot transmit private key over network, (2)&amp;amp;(3) is done by Applet&lt;/strong&gt;&lt;/span&gt;.(only (1) is done by the web server component, because only public keys are managed by server.)&lt;br /&gt;&lt;br /&gt;If we want to do mutual authentication, it probably can be done by the existing mechanism built in ap server. (ie. tomcat)&lt;br /&gt;&lt;br /&gt;Implementation:&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/tw/library/l-security.html"&gt;JCE &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-9075111477499535490?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/9075111477499535490/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=9075111477499535490' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/9075111477499535490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/9075111477499535490'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/02/information-security-note.html' title='Information Security Note'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-7365604910377663867</id><published>2007-01-30T08:05:00.000-08:00</published><updated>2007-02-05T21:22:35.952-08:00</updated><title type='text'>K論文之自言自語</title><content type='html'>&lt;strong&gt;&lt;span style="color:#009900;"&gt;CHARM&lt;/span&gt;&lt;/strong&gt;: frequent item sets&lt;br /&gt;&lt;span style="color:#009900;"&gt;&lt;strong&gt;PrefixSpan&lt;/strong&gt;&lt;/span&gt;:frequent sequence&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#009900;"&gt;CloSpan&lt;/span&gt;&lt;/strong&gt;:Closed frequent sequence&lt;br /&gt;&lt;span style="color:#009900;"&gt;&lt;strong&gt;BIDE&lt;/strong&gt;&lt;/span&gt;:Closed frequent sequence with more efficeint pruning method.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;mining frequent sequences  vs. mining frequent item sets&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;frequent sequence mining has to take ordering of items into consideration. It's more comlicated than frequent item sets mining&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;PrefixSpan vs. CloSpan&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;With similar data structure, which is prefix search tree, expands the frequent sequence along the prefix tree.&lt;br /&gt;&lt;span style="color:#009900;"&gt;&lt;strong&gt;BUT! CloSpan mines only "Closed" sequence, which means no super sequence with same support.&lt;/strong&gt;&lt;/span&gt; Based on this characteristic,  Clospan can prun the search tree more efficiently than prefixspan. (i.e. s1 c s2, and with the same size of projected database, means the subtree of s1 and s2 is exactly same.)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;CloSpan vs. BIDE&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Both use prefix search tree. But BIDE needs no candicate and filtering process. It uses forward extension event checking and  backward extension event checking  to exam if a sequence is closed. And uses backscan, a more aggressive pruning method than clospan, to prun the search tree.&lt;br /&gt;why we say backscan is more aggressive? because it needs not to exam the previous mined sequence. Intead, it exams only within current projected database.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-7365604910377663867?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/7365604910377663867/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=7365604910377663867' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7365604910377663867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7365604910377663867'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/01/clospan-1.html' title='K論文之自言自語'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-7221796490872765105</id><published>2007-01-29T07:45:00.000-08:00</published><updated>2007-01-29T07:56:30.619-08:00</updated><title type='text'>js 之邊走邊接case</title><content type='html'>javascript 這種語言真的超活&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;var obj = new Object();&lt;br /&gt;obj[methodname] = function mymethod(){;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;然後...&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;obj.methodname();&lt;/span&gt;&lt;br /&gt;等同於執行 mymethod(這樣也行=口=)&lt;br /&gt;你可以把function由此法&lt;span style="color:#ff0000;"&gt;動態的&lt;/span&gt;attach到任一物件上。&lt;br /&gt;&lt;br /&gt;這個寫法用來實作事件的註冊超級乾淨&lt;br /&gt;因為有種情形是，你希望你的物件在某種情況下，例如 新增、刪除、修改&lt;br /&gt;能做一些事，來反應物件的改變，但是這些事是啥事則希望能夠&lt;span style="color:#ff0000;"&gt;動態&lt;/span&gt;指定&lt;br /&gt;&lt;br /&gt;這時code 的長像就像這樣&lt;br /&gt;function myobj(){&lt;br /&gt;    var myobjhandler  = new Object();&lt;br /&gt;   this.registerEvent =  function(event, handle){&lt;br /&gt;       myobjhandler[event] = handle;&lt;br /&gt;  }&lt;br /&gt;  ...........&lt;br /&gt;  this.fireevent = function (){&lt;br /&gt;     myobjhandler.event();&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/1256426437019636951-7221796490872765105?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/7221796490872765105/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=7221796490872765105' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7221796490872765105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/7221796490872765105'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/01/js-case.html' title='js 之邊走邊接case'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3941810739833026398</id><published>2007-01-26T08:40:00.000-08:00</published><updated>2008-12-09T00:18:20.557-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='碎念'/><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;&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;a href="http://1.bp.blogspot.com/_ORgBiswUMg4/RboyULaAWxI/AAAAAAAAAAY/wFltjAEWQxw/s1600-h/ew050224018.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5024383656525847314" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_ORgBiswUMg4/RboyULaAWxI/AAAAAAAAAAY/wFltjAEWQxw/s320/ew050224018.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-3941810739833026398?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3941810739833026398/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3941810739833026398' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3941810739833026398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3941810739833026398'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/01/blog-post_5477.html' title='要常常記得的事'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ORgBiswUMg4/RboyULaAWxI/AAAAAAAAAAY/wFltjAEWQxw/s72-c/ew050224018.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-3545244670454546229</id><published>2007-01-24T21:52:00.000-08:00</published><updated>2007-01-24T22:05:50.418-08:00</updated><title type='text'>嬰兒的野心</title><content type='html'>小嬰兒也有野心嗎?&lt;br /&gt;有的有的! (手)&lt;br /&gt;(1) 大家都愛我&lt;br /&gt;(2) 常常帶我出去玩&lt;br /&gt;(3) 把我舉高高，這樣才能看到大家&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/1256426437019636951-3545244670454546229?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/3545244670454546229/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=3545244670454546229' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3545244670454546229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/3545244670454546229'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/01/blog-post_24.html' title='嬰兒的野心'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-4339691961560253421</id><published>2007-01-24T18:08:00.000-08:00</published><updated>2007-01-24T19:30:14.380-08:00</updated><title type='text'>Java Script 的你與我</title><content type='html'>目前手上的AP有個迷人(磨人)的特性，就是&lt;br /&gt;Js有邏輯, 而html的頁面操作是與Js的邏輯是相關的&lt;br /&gt;大家討論後，為了把物件的責任切清楚，設計上用了很多callback&lt;br /&gt;怎麼說?&lt;br /&gt;就是在html裏埋了一些 js 的 function&lt;br /&gt;function updateHtml(){&lt;br /&gt;//去和Dom打架&lt;br /&gt;}&lt;br /&gt;然後把這個function註冊到後端物件去跑...&lt;br /&gt;比如&lt;br /&gt;function runUpdateHtml(callback){&lt;br /&gt;//先和邏輯打架&lt;br /&gt;callback(); //再更新頁面&lt;br /&gt;}&lt;br /&gt;這麼一來html端的邏輯和後端的邏輯就可以切得比較乾淨了^0^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-4339691961560253421?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/4339691961560253421/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=4339691961560253421' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4339691961560253421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/4339691961560253421'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/01/java-script.html' title='Java Script 的你與我'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-2281819376853817923</id><published>2007-01-24T07:37:00.000-08:00</published><updated>2007-01-24T07:53:52.322-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CCC'/><title type='text'>socket socket socket</title><content type='html'>最近的網路作業要寫一個Instant Messaging Server&lt;br /&gt;其中令人頭大的一點，就是要做容錯處理&lt;br /&gt;當Client 連上來立即斷線，或呆呆的啥都不幹時&lt;br /&gt;Server 要把它們踹開，服務其它嗷嗷待哺的Clients&lt;br /&gt;&lt;br /&gt;經過詢問Guru 後&lt;br /&gt;決定三種解法&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;將socket 讀取變成　Non-blocking mode (via fcntl)&lt;/strong&gt;&lt;br /&gt;int flags = fcntl(*new_con, F_GETFL, 0);&lt;br /&gt;fcntl(*new_con, F_SETFL, flagsO_NONBLOCK);&lt;br /&gt;再搭配計時器&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;設定socket 的recieve timeout &lt;/strong&gt;&lt;br /&gt;setsockopt(servSockFD,SOL_SOCKET,SO_RCVTIMEO,&amp;timeval,sizeof(timeoutVal));&lt;br /&gt;動都不動... =口=&lt;br /&gt;&lt;br /&gt;經過Guru開釋，發現以下資訊&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;SO_RCVTIMEO and SO_SNDTIMEO&lt;br /&gt;Specify the sending or receiving timeouts until reporting an&lt;br /&gt;error. They are fixed to a protocol specific setting in Linux&lt;br /&gt;and cannot be read or written. Their functionality can be emu-&lt;br /&gt;lated using alarm(2) or setitimer(2).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;總之就是咧　linux 不給改socket 的 SO_RCVTIMEO, 建議自已用select 做polling...當下決定棄城而逃&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Blocking mode 的讀取配合另開thread 的計時器&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;OK, 這純粹是因為Blocking mode效能優於Non-blocking mode, 所以只是想想，倒沒有真的實作。&lt;br /&gt;&lt;br /&gt;最後尾巴是理所當然、偷懶的用了第一種解法，不過怎麼看 select + polling 才是王道!改天應該要來研究一下&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-2281819376853817923?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/2281819376853817923/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=2281819376853817923' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2281819376853817923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/2281819376853817923'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/01/socket-socket-socket.html' title='socket socket socket'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1256426437019636951.post-5781220238527748866</id><published>2007-01-24T06:50:00.000-08:00</published><updated>2007-01-24T20:27:58.940-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>ajax 同步選項</title><content type='html'>在Ajax 的實作裏，異步一直是吸引人的特點&lt;br /&gt;但有的時候，同步的操作在維護整體邏輯的正確性上比較容易&lt;br /&gt;&lt;br /&gt;If your application needs to be compatible only with IE ...&lt;br /&gt;Ajax call的同步模式，可以使用&lt;br /&gt;req.open("GET", url,&lt;strong&gt;false&lt;/strong&gt;);&lt;br /&gt;&lt;br /&gt;不過有個傷腦筋的問題，false 的選項在Firefox裏是不支援的！&lt;br /&gt;而且，另一個隱微但傷腦筋的地方是&lt;br /&gt;&lt;strong&gt;在callback 裏被調整的變數直到下一個"新的" function call之前，都不會更新&lt;/strong&gt;&lt;br /&gt;所以目前的解法是&lt;br /&gt;在callback把一缸子要一起解決的邏輯給run完(就當成是一個transaction一般看待)！&lt;br /&gt;好吧...既然AP附在瀏覽器上　就也只好在屋簷下低頭&lt;br /&gt;不過還是覺得Ajax 雖然開放了異步的便利性，但還是應該提供傳統的同步實作啊啊啊....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1256426437019636951-5781220238527748866?l=catstail1104.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catstail1104.blogspot.com/feeds/5781220238527748866/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1256426437019636951&amp;postID=5781220238527748866' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5781220238527748866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1256426437019636951/posts/default/5781220238527748866'/><link rel='alternate' type='text/html' href='http://catstail1104.blogspot.com/2007/01/ajax.html' title='ajax 同步選項'/><author><name>喵尾巴</name><uri>http://www.blogger.com/profile/11739723407043955468</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_ORgBiswUMg4/SWB4wjopQgI/AAAAAAAAAM4/kbxXi0OnM6Q/S220/2459335565_b7626da8c9.jpg'/></author><thr:total>0</thr:total></entry></feed>
