2008年4月21日 星期一

Plan project yourself 自己企劃專案

最近看了code complete一書,這本書主要是在介紹一個完整的程式專案如何被規劃與設計最適合。某些概念我認為不一定只能在程式專案上,更可以應用到其他領域上。

接著就是介紹大概的流程與注意事項:

Step1: Problem Definition
問題應該以客戶(專案成品的使用者)的觀點來定義,也就是應該省略專有名詞,要假設是一個狀況外的人在看你的problem definition。所謂的problem definition應該只定義主要要解決的問題,不囊括所有小細節。

Step2: Requirements
這個專案有哪些需求?需求是很重要的一環,必須審慎評估。接下來的工作都以完成需求為主。因此可以列一張需求列表,以方便日後檢核。需求就必須要是具體點的事情,而並非抽象、籠統的。

Step3: Architecture
Architecture主要是針對程式的專案,因為一個程式的好壞,大都決定於它的架構。架構必須要讓自己覺得很合理、不累贅。我們用一個block代表一個或多個class,多個class形成一個子系統,子系統再形成架構。另外,必須要定義主要的核心架構。最重要的是,架構要能對應到需求表上(Require list)。

Step4: Construction
拿起你的教鞭,叫你底下的奴隸幫你工作,直到專案完成...

Step5: System Testing
系統測試,必須要將專案以合理的方式進行一系列的測試。如果這是程式專案,應該要以unit test測試每個function和class是否正常運作,當然這是另一個大工程,通常會有專人來做(測試工程師)。

基本上,我們也可以使用這些規則弄個自己的專案,譬如說旅遊專案、減重專案之類的,想必會比什麼都沒計畫更有效率。

image

2008年4月20日 星期日

台中二日遊 - Day 2

今天一早起來就開車晃到了自然科學博物館。由於植物園正在施工,於是到了科學館。台中的科博館真的很棒,每項展出品都可體會到館方的用心。


令我印象深刻的就是恐龍,恐龍好像很普通,但這裡特別的是恐龍模型會動,而且動的很逼真。讀電機的壞毛病,我腦袋裡馬上又開始模擬放在模型內的馬達,是怎樣接受指令控制模型的。我有拍一段短片,要抓空檔拍片真的很不容易,三不五時會有小鬼跑上前去...。我發現來參觀的大都是父母和小孩,現在的年輕人好像對科學越來越沒興趣了。


館內展出的東西實在很多,大概花了我兩個多鐘頭才看完,接著回到飯店退房,來到了石岡的綠色走廊。這裡是在九二一重建後的景點,感覺還不賴,有咖啡屋,有小橋,有流水,可惜沒有佳人。

在綠色走廊待了一下午,玩過射箭後就拾起背囊回家了。我想六月還會再過來,這次行程有點緊湊,沒太多時間走馬看花。希望下次能有機會更加認識台中。

2008年4月19日 星期六

台中二日遊 - Day 1

今天和家人來到台中旅遊,一路上開著我的小Ford,以110km/hr飆到了台中。一開始先去了算命聽說很準的廟算命,她說我一定要出國念書,我以後會是個遊子XD。還說我適合當高科技技術人才或老師。最神奇的地方在於,她認為我有佛緣,要信奉觀世音...她好像知道我是無神論者。總而言之,她大部分說的話,都有讓我驚訝到。雖然我認為算命是門統計學,不得不佩服她的預測功力。

緊接著就來到了海產店,我們沒有點很特別的菜,除了老闆招待的...螞蟻炒蛋。當吃下去的第一口,就覺得很酸,但也不難吃。我想口味淡的人會不敢吃這道菜。

 

再來到了著名的香蕉新樂園喝茶,裡面的裝潢是台灣的復古風,已經開業四年左右。一進門映入眼簾的是台灣的老街道,街道路沿擺著大餐桌,看來就像回到過去一樣。


差點忘了提門口的事,香蕉新樂園的門口很特別,有一節火車車廂,上面印著民國50~60年製造,雖然不知道這是不是仿製的,但很令人印象深刻。


接著就介紹內部裝潢吧。裡面的大廳就是台灣老街的模樣夾雜著琳瑯滿目的老式招牌,別有一番風味。


在店裡的不同角落,擺放著各式各樣古早的設備,譬如像牙醫設備、電影放映機等等,那種古典的精緻跟現代科技相較之下多了一分美感。


走著走著,還發現了戲院的售票口,售票口的後面放著早期的照片,我發現張艾嘉年輕時的照片,是一個美人胚子,旁邊放著劉德華的,想不到華仔當時就已經開始經營台灣市場了。


今天第一天的行程大概只有這樣,因為我們下午才到台中,時間並不多。回到了我們住的旅館,仁美商旅,讓我驚覺台幣2000多的價錢還真是物超所值。我們住的是四人房,裡面有兩房一廳。比較值得提的是衛浴設備,有按摩浴缸(但是水柱壞掉了...),還有桑拿烤箱。結果我洗澡足足花了一個多鐘頭。

2008年4月18日 星期五

Maze Generator 迷宮產生器

今天,終於...我把我的迷宮產生器演算法生出來了。迷宮產生器,是一個很有趣的東西,它可以動態產生蜿蜒曲折的迷宮。我的方法是將地圖分為2000個方陣,每個元素都記載著不同的資訊,譬如說是牆壁或草皮。然後由一個基準點開始"生長",地圖會以亂數自動找路,假如遇到牆壁就繼續挖,遇到道路則退回。如此可確保替圖上任一塊草皮一定會有路連接,而且僅有一條。

更詳盡的說明可以參考這個網頁,這網頁上還有java寫成的地圖產生器。
http://www.mazeworks.com/mazegen/mazetut/ - 原理
http://www.mazeworks.com/mazegen/index.htm - 產生器(要裝java runtime environment)

image

2008年4月17日 星期四

狂飆雪橇

http://linerider.com/這網站還蠻好玩的,住要是讓使用者在畫布上畫畫,設定一條軌道,讓小人駕著雪橇在上面滑行。整個遊戲是由Flash做成,所以不需要下載其它的東西。除了具有遊戲性外,也是一種繪畫的訓練。因為除了設定軌道外,也考驗著繪製背景的能力。

主要的軌道分為三種:

  1. 紅色:屬於加速用的軌道,雪橇在上面速度會加快。
  2. 藍色:一般軌道,沒有加減速的作用。
  3. 綠色:純粹佈景用的線條。

考慮了以上三種軌道後,還要注意重力,根據重力來安排軌道的位置,避免小人飛出去了。

 

image

2008年4月16日 星期三

淺顯易懂的DirectX教學網站(Directx tutorial)

DirectX是由Microsft提供的遊戲平台開發套件,它幫使用者們省去了不必要的底層操作,讓使用者可以專注於遊戲開發上。DirectX最主要的部分分成三塊:

  • DirecX Graphics:用來控制2D或3D圖形的繪畫介面。
  • DirectX Audio:各種音效及音樂的控制。
  • Direct Input:各種輸入裝置,像鍵盤、滑鼠、搖桿...等等。

這是一個位於德國的DirectX網站(英文內容),主要是教導DirectX Graphics的使用,教學文章的特色是簡潔有力,只點出重要的部分,避免讓讀者一頭霧水。我個人覺得還不錯,如果有c++基礎的話,很建議到這學學。

在開始玩DirectX前有些前置工作:

  1. 下載並安裝Visual studio 2008 express。(2005也可以)
  2. 下載並安裝DirectX SDK(開發套件),版本盡量別太新也別太舊,August的版本會比較好。
  3. 設定好vs2008的環境,將lib和include指向DirectX式當的安裝目錄。

接著就可以上教學網站開始挑燈夜戰XD

image

2008年4月15日 星期二

ADSL上下傳速度測試

今天看到了一則新聞,說Hinet會把用戶的頻寬降頻,還有網友出面宣稱自己被降頻了。我便臨時決定測量一下我自己的頻寬,本身是使用光世代的產品,理想下載速率12Mbps,後來實測的結果是10.234Mbps,感覺上我本身沒被降頻。

受限於線路品質以及距離的影響,我們必須知道,理想和現實總是有差別的。所以12M和10M之間的差距,我會認為是正常的誤差範圍。如果想對自己的網路頻寬做測試,可以到hinet提供的頁面,看看自己的頻寬有沒有達到標準。

http://www.hinet.net/support/testspeed.html

image

2008年4月14日 星期一

現實

今天我去看望了住院的外婆,雖然我們沒有太多的相處時間。也許社會就是這麼現實,隨著她的年紀越大,來探望她的人越少,也可能因為她已經身無分文了。我想她應該很感慨,她最疼愛的人反而對她不理不睬,特別是當自己畢生的積蓄被掏光的時候。這人不是別人,就是自己的親生兒子。

我們沒辦法要求每個人按照既定的社會期望活著,也不能武斷的說哪種行為才是對的。隨著價值觀的不同,每人反應出來的外在行為也不同,我也不覺得做了那些大家所公認的"壞事"會有什麼報應之類的。我想那些都只是人類為了約束個人的行為所編造的故事。總之,這世界是這樣,道德早已經不適用於約束現在的人類社會,要做些傷害其他人的事也不會被禁止,不過幹這些事的人,最後的結局都會很一致的,眾叛親離、終老一生。這在人類千變的機率世界裡,是不變的絕對結果。

2008年4月13日 星期日

裝在葡萄酒桶裡的大腦

妳是妳嗎?妳看到的是真的嗎?曾經聽過一個有趣的說法,這個世界根本是個幻影,妳不是妳,我不是我。所有的東西全部都由一個沉浸在葡萄酒桶裡的腦子幻想出來的。這聽起來很荒謬但也很有趣,不是嗎?

這理論說,我們根本沒有所謂的軀殼,亦沒有所謂的心智,都是由大腦,也就是母體想像出來的。這跟駭客任務不同,駭客任務認為每個人都有實際上的軀殼和意識,只是意識被箝制在一個虛擬的電腦世界中。這個理論是說,一切,所有的一切都是假的,包含妳現在看的文章。妳怎麼確定我是真的?妳怎麼確定你周遭的人是真的?他們會和妳互動,說不定也只是模擬出來的結果。妳會有妳自己的想法,也說不定只是"母體"模擬出來的結果。也許妳根本就不存在?也許這世界只是一個幌子?

這很有趣不是嗎?我們可能會懷疑別人的存在,卻從來不曾懷疑自己是否真實。這觀念徹底打破了佛洛伊德的本我理論。妳是否有過那種睡夢中的景象在現實生活中體現過呢?雖不能肯定,但又似曾相識的感覺?妳真的認為這一切都是"不可知"的第六感?又或許是"母體"將妳這個"子節點"轉換為休眠狀態時,幫妳添加的"夢境"。事實上母體早已經建構好妳夢境中的人事物,等著"模擬"妳離開休眠狀態時發現竟然有一模一樣的東西存在時的反應?

當然,這些理論我們不會相信,但我們無法說這理論一定不成立,就像人無法說上帝是否存在一樣。不是嗎?

image

100100110010110110 1101101010001 10001 10010101 文章發布模式啟動 011010001 等待受體反應 01011101100....

2008年4月12日 星期六

Ghost Keyboad

I recently found out a keyboard, name is K8000, disigned for cyber gaming. Although I seldom play the computer games, but this one really fantastic. The buttons on keyboard is all mechinecal structure, not the typically electronic, well, it means you can use them for a really long time.

It's not coming out yet, but I'm sure I'm going to get that if it's been released. The company who made this is Gigabyte, it's first time they focus on entertainment hardware. Except the mechanical buttons, there's another feature shocked me. It's GHOST engine, what does this work? It's a brand-new tech, let users to set up their macros without installing drivers. Another hack function is the audio on-board chip, the keyboard will play music. Don't doubt it, it really does. All these awesome stuffs must be going to kill my wallet.

 

image

2008年4月11日 星期五

IRC,和老外打屁用的協定

IRC,全名叫做Internet Relay Chat,這在國外是歷史悠久的一種通訊協定,主要是用來聊天溝通。深奧的東西不講,基本上你必須要裝軟體才能使用這套通訊協定,它可以和世界各地的人聊天,等於是一套聊天室協定。由於IRC的特性可以將聊天室一個一個串起來變成網域,一個IRC網路可以說非常的大,上面可能包含了各式各樣妳想的到的聊天頻道。

因為需要和其他開發人員溝通,我今天也搞了個IRC,IRC的軟體有很多,主要以mIRC為大宗。但由於他要收費,我發現mozilla也有推出叫chatzilla的IRC軟體,便改採用這討免費軟體了,可以直接透過firefox安裝,方便的很。但由於IRC是一套古老的通訊協定,要註冊那些比較不人性化,需要打指令。主要是先幫自己註冊個nickname,然後再指定email、密碼。假如你的帳號三個月沒用,是會被自動註銷的。註冊的文章可以參考freenode上的文章,freenode是國外一個大型的IRC網路。

在msn還沒興起前,irc可是上港有名聲,下港...後面忘了。現在IRC上的人不像以前那麼多,主要都是以linux玩家為主,每個人打字都是變態的快,我才打完一句,他們已經聊完一個topic了。總之,這裡是練英文和英打的好地方...現在的IRC功能越來越強大,有些還可以打遊戲,或是執行程式,由於我也剛踏入IRC的大門,對一切都還在陌生的摸索。

image