顯示具有 95361045 賴政宏 標籤的文章。 顯示所有文章
顯示具有 95361045 賴政宏 標籤的文章。 顯示所有文章

2008年12月26日 星期五

HW 17

平時成績結算:

期中平時成績

平均:92

期末平時成績

     A B C
Week 12  6  6 3 => 75分

Week 13  8  1 4 => 78分

Week 14 11 2 0 => 97分

Week 15 14 0 1 => 100分

Week 16 13 3 0 => 96分
平均:89

自評報告與自評成績:

我給自己打9

  我平常上課都沒有遲到早退,上課的時候也都有在聽老師說話。老師上課教過的程式我回去也都有實作出來,平時作業也都有認真寫,沒有缺交。不過有時候上課的時候,我會不小心小打瞌睡一下下,因為下午第一節剛吃完飯,學校又沒有午休時間,不管是上什麼課我都會打瞌睡......

  我覺得我已經做得不錯了,不過應該還有進步的空間,所以我給我自己打9分。

期末心得:

  很快的這個學期就這樣過去了,感覺距離把BCB用到神乎其技的境界還有很長的一段距離,不過至少我有慢慢的在往那個方向前進了。我還記得我之所以會選這堂課的原因,去年因為和黃世育老師的"WEB程式設計"衝到,所以就沒有選這門課了。之後我就直接選下學期的"互動媒體處理專題",結果在BCB整個觀念(物件、屬性等等)都搞不清楚的情況下,我覺得學起來真的很累,最後期末的分數也是6X分過的。所以我就決定這學期要來把這門算是先修的科目補起來。

  確實還是從基礎的開始學比較好,有比較扎實的感覺。雖然老師在BCB部分教的內容並不算很多,但是基本上的概念是差不多都了解了。剩下的就要靠我們自己定一個目標,然後再從達到那個目標過程中,發現問題,進而學習更多的東西。我覺得這應該就是期末專案的目的吧,這樣學起來大家應該會比較有動力,因為畢竟是自己想要去解決的問題,就會比較想知道答案。期末專案自己定一個題目,然後去實作出來的這方法我覺得很不錯。

  還有我覺得下學期(明年)的"互動媒體處理專題"這門課開不起來真得很可惜,這樣會連3年級遊戲設計的那門課也不開了。 我覺得很多人選課的方式都只是看課程名稱,當然包括我有時候也會這樣。當看到2門課要做選擇的時候,會很直接的就去選課程名稱看起來比較有趣、比較簡單的。其實說真的,還是要先了解課程內容到底在教什麼,然後再做選擇會比較好。
C++ Builder 專案成果報告:

  好快就到了學期末,總覺得時間不夠用呀!因為還有其它科目也要做報告什麼的,1個月的時間感覺有點短呢。

一剛開始的期末專案

中間的Check Point

因為避免版面太長,一些之前在Check Point就有的功能,我就先不把每個功能都貼圖上來了。因為按鈕已經弄到1X個,如果每個按鈕都貼的話,我怕會弄得太長......

首先是程式的介面:


  這個是到目前我設計的樣子,我知道他真的......沒有很好,可能我真的沒有什麼創意吧。跟一剛開始的樣子差不多,不過我把底色換成了黑色,然後多加了一些按鈕而已。不過卻真的達到了我當初設計的樣子,我在計劃書裡面用小畫家畫出來的就出不多是這個樣子......

接下來是一個一個按鈕的介紹,先說明在Check Point裡面就有提到的功能好了。

互補色:老師在上課教的,就是用255分別去減去目前R、G、B的值,然後輸出的圖片就是互補色了。

轉灰階:也是老師在上課教的,將目前R、G、B的值加起來,然後除以3,再把算出來的值分別放回R、G、B的陣列裡面,輸出之後就是一張灰階的圖片了。

浮水印:還是老師在上課教的,簡單的概念是將2張的片的R、G、B值加起來除以2。不過我多加了浮水印圖片為白色的部分就不作處理,還有我設定原圖:浮水印圖片為4:1,這樣浮水印看起來就會比較淡。

上下、左右翻轉:從這邊開始都是我自己想出來的,我只是想說先從簡單的開始,所以這個功能主要在輸出圖片的迴圈上動手腳而已,把圖片的高度or寬度減掉目前的 i or j,就可以控制要怎麼翻轉了。

取出R、G、B的值:這個是我想到在輸出的時候,既然可以控制要輸出的R、G、B值,那如果我只輸出單一值,把另外2個顏色設為0的話...... 就變成我目前這個按鈕的效果了,圖片會只顯示單一種顏色的深淺,可以看出在一張圖裡面RGB 3種顏色用的是多少。

圖片增亮:這是當時只做一半的功能,還有變暗還沒做。不過現在我做出2種方式變亮,2種方式變暗,在下面有比較詳細的解釋我用得方法。

  首先在Check Point之後較大的突破,就是我可以開一個新的視窗,用來顯示原本的圖片和處理過後的圖片,新的視窗大小我設定最大可以到1027*768,如果超過的話也是會出現捲軸,要用拉的方式來顯示整張圖。

  上面就是就是用新的Form來顯示原始圖片的貼圖,不過可能這張圖片本來就不大,所以感覺不出差異性。如果是大張一點圖片的話,像是800*600,那在原本程式上就要用捲軸拉來拉去的看,不過點下這個按鈕之後,就可以在比較大的新視窗看了。
  這是使用圖片增亮1和2處理過後的對照圖,圖片增亮1的做法是,我把圖片上RGB的值全部都加上50,超過255的就直接設為255,這種做法好像也會讓圖片的對比有稍微降低的感覺。圖片增亮2則是把全部的RGB值都直接乘以2,超過255也是設為255。這兩種作法運算出來的圖片,感覺上有很明顯的差異。

圖片變暗的按鈕也是有1和2,處理的方式和圖片增亮是差不多。1的方法是將圖片上RGB的值全部減去50,2的方法則是除以2。輸出的圖片也可以看得出是有不一樣的。
另一個新增的功能是馬賽克,這個靈感來源是......三年級的"影像處理"那門課。因為課本在前面有介紹到類似的影像處理,所以我就想說要用BCB來寫寫看,真的很成功地寫出來了!
  我的方法是在輸出的函數那邊動了一些手腳,我把要輸出的陣列位置改變。RMatrix[i/9*9][j/9*9],這是在紅色值輸出的程式碼片段(綠色和藍色也是一樣的方法),我利用Int的特性,0~8除以9都還是0,並不會有小數點產生。所以(0,0)~(8,8)的位置再經過運算之後,都還是會顯示(0,0)那個位置的值,看起來就會是一個9x9單一顏色的小格子。

另一個按鈕的靈感也是我在影像處理那門課想到的,就是模糊化。我把一個點和周圍的點加起來取平均,我的程式裡面是將一個點的RGB值,和它周圍的624個點加起來,然後除以625。每個點都運算過一次再輸出,就會有模糊化(朦朧美)的效果了。


上面那張圖片就是按下模糊化處理之後的結果喔!

  再來的按鈕則是抄襲別人的XD,其實只是功能上抄襲啦!程式還是我自己打得,因為和翻轉的功能相似,所以很快就做出來了。這個按鈕就是180度的旋轉,只要把輸出時設定成從原本圖片的最尾巴開始印,就可以有180度旋轉的效果了。



但是在90度的旋轉上會出現長寬不同而再造成的錯誤,這部份我有想了蠻多的方法,不過目前還沒有做出來......

最後則是想不到要做什麼,所以我做了跳出警告視窗的功能。按下"請勿觸摸"的按鈕後會跳出一個......"施工中"的警告視窗。


以上就是我程式的所有功能了,但是在計劃書裡面還有很多功能都還沒有做出來。

˙圖片向上下或是左右延伸。
˙自由調整浮水印的位置。
˙減少或是增加對比效果。
˙剪刀石頭布那種小遊戲.......
˙Debug
  我發現圖片的延伸或是縮小其實沒有那麼容易,如果要從迴圈和每個像素來下手寫程式的話,倍數的延伸或縮小我還想的到,但是當不是倍數的時候就很難處理了。不知道BCB裡面有沒有可以直接改變圖片大小的函數或類似的功能。

  自由調整浮水印的位置本來是想要學老師,用滑鼠來指定位置,不過後來因為在玩開新視窗的功能,這部分就來不及把它做出來了。

  後面那些對比、小遊戲等等,也都是因為時間上的關係.......。不過Debug卻是有做很多的,但是好像永遠也Debug不完。目前我還有一個地方不知道怎麼修正,就是當我讀取一張圖片然後按下任何一個影像處理的按鈕之後,再開啟第2張大小不同的圖片,再做一次影像處理的動作,就會發現輸出的影像大小是有問題的。目前我還找不到這個問題要怎麼來解決......

最後附上我的程式下載點,我放在ss24上面:


最後跟大家說:新年快樂呀~

2008年12月24日 星期三

Linux 傳奇 讀書心得報告

  關於Linux傳奇這本書,在學校的圖書館真的是有夠難借到的。我在一個多月以前就已經按預約了,原本是預計上星期五可以拿到書的,沒想到借走Linux傳奇這本書的人,寧願逾期被罰錢也不還書,害我到今天星期三還是沒有拿到書......

  不過在上圖書館查詢的時候,剛好看到另外一本Linux傳奇,之前在"上架移送中"的狀態已經變成可以借閱了。所以我就只好趁著沒有課的空堂時間,能看多少算多少吧!再加上我之前也有先在網路上找一些這本書的資訊,和其他人看過這本書的心得,我想我應該也多少能寫出一些心得吧!

  在繼Apple的Mac電腦之後,這次老師讓我們去看的是Linux作業系統。我之前只知道Linux是北邊不知道什麼國家的大學生+很多電腦程式高手,一起做出來的一種作業系統,不過其它的就什麼都不知道了。但是在大概看過這本書之後,就有比之前更了解Linux這個東西了。

  這本書可以說是Linux誕生的故事了吧,在中間說到很多的人物,還有一些故事、源由等等。然後在比較後面章節就有提到一些軟體市場上的情況、Linux造成的影響和未來發展的趨勢等等。

  雖然書上把Linux寫得有多好多好,什麼微軟都會怕之類的,其實我覺得根本就沒有這麼誇張。就台灣來說,大部分的人都還是依然使用著微軟的作業系統。而且現在也很少單獨在賣作業系統的,都是買電腦的時候就直接附送Windows XP或是Vista之類的。雖然大公司好像就必須跟微軟購買作業系統的使用權限,不過也沒聽說過台灣的公司去購買微軟以外的作業系統呀...... 當然這只是在台灣的部分,可能其它地方像是歐洲什麼的,就有比較多人使用其它的作業系統了吧。

  但是在台灣"一般人"根本不會去使用Linux作業系統,平常也可能只有在架網站的主機時,才會有一些是使用Linux作業系統的。家用電腦不要說Linux了,就連Apple的作業系統也是蠻少人用的。

  對我來說,一個原因是已經使用微軟的作業系統太久了,換另一個的時候會很不習慣。另一個則是Apple在價格是比較偏高的,所以雖然它的評價不錯,但是我就不會考慮去使用。再加上市面上目前大多數的軟體也是只能在微軟作業系統上使用而已,相容性的問題也讓目前其它的作業系統還是沒辦法打敗微軟的作業系統。不過最後我再強調,以上都只是我對台灣情況目前的感覺而已,也有可能在其它地區的情況就不一樣了吧。

  不過我覺得厲害的並不是Linux這個作業系統,而是它被發展出來的方法。現在越來越多資訊產品"免費化"了。很多都是開放原始碼,讓大家一起自由的開發程式。這對於幾乎什麼都要收費的微軟公司來說,確實是一個很大的威脅存在。再加上越來越多的軟體都開始有在改善對Linux或是Apple電腦上的相容性問題了,所以微軟未來確實會有許多強勁的對手來開始跟他搶客戶了吧!

  舉一個目前我碰到Linux的實際例子,在這學期開始做專研的時候,因為我們這組要做的是網頁的東西,所以會用到伺服器。在詢問系上有沒有伺服器可以放我們網站的過程中,我才知道原來學校系上的伺服器,幾乎都是使用Linux系統的,因為聽說用Linux作業系統的伺服器會比微軟的作業系統還要來的穩定。

  但是我們就因為這樣而碰到問題,因為我們想用微軟的ASP.NET來做網頁,但是卻發現當檔案放在Linux的伺服器上時,並沒有辦法正常的執行。也就是說微軟做的東西,在Linux作業系統上是不能用的!

  微軟做出來的東西,只有在他們自己的作業系統上可以用而已,真的是OOXX。害我們本來再考慮是不是要用另一個軟體(PHP)來設計網頁,在聽老師的建議之後,決定用老師在辦公室的電腦來當作Sever。最後希望專研夠順利的做出來呀!但目前為止我們這組根本就沒有什麼進度......

2008年12月11日 星期四

C++ Builder 專案 - Check Point

  從2個星期之前寫完期末BCB專案到現在,我的進度真的是很慢呢!我發現到期末時可能會來不及,沒辦法做出計劃書裡面全部的東西。我的期末專案是要寫出一個可以對BMP圖檔做影像處理的程式,先來說一下目前我BCB程式的進度吧~


  這個是我目前BCB程式寫出來的介面,感覺非常的......單調。大概說明一下功能,左邊的框框是要放讀取進來的圖片,而右邊的框框則是放處理過後的圖片。下面的按鈕就是不同的影像處理功能,按下去就會將圖片做處理,然後顯示在右邊的框框。在最下方有一個進度條,在做影像處理時,進度條可以讓使用者知道目前程式的處理進度。在進度條的左上方,我有用一個Label來顯示目前圖片的路徑。



  先來介紹第一個按鈕的功能,就是老師在上課時教過的互補色啦!在將圖片開起之後,就可以點下面的按鈕了,上面那張圖是按下互補色之後的結果。用255分別減掉目前R、G、B的值,算出來後的結果顯示出來就是互補色啦~


  接下來下面的按鈕就是將彩色圖片轉成灰階圖片,這個老師在上課時也有教過囉,上面那張圖就是按下去之後顯示的結果。大概的概念就是將R、G、B的值加起來,然後除以3,再將結果放回原本的R、G、B陣列裡面,輸出之後的圖片就變成灰階的圖片了。


  再來是浮水印功能的按鈕,這邊我用了2個按鈕,一個是先開啟浮水印的圖案,另一個是將浮水印圖案加到原本開啟的圖片上面。不過目前只能把浮水印加在左上角而已,因為那樣成是比較容易寫...... 不知道在期末的時候,來不來得及再把這部分改好一點。


  再來以下的按鈕功能老師就沒有教過了,上面那個圖片是按下左右翻轉後,圖片會左右交換過來。看上面的貼圖就可以看出來了,翻轉後原始圖片和新圖片是左右對稱的。


  在左右翻轉之後,我又想到可以用類似的方法做出上下翻轉的效果。上面那張圖片就是按下上下翻轉之後的結果。其實這2種功能都只是在For迴圈裡面改一下東西而已,並沒有甚麼特別的演算法。

  接下來的3個按鈕一起說明好了,因為其實是一樣的功能。上面三個處理過後的圖片,很明顯的就是紅綠藍三個顏色。這3個按鈕是分別取出原始圖片的RGB值,然後單獨將R或G或B的值直接顯示在新圖片上。


  最後一個按鈕的功能是把圖片變得亮一點,從上面的圖面可以看出,好像變得有點白白的。我的做法是將RGB的值分別加上50,然後顯示出來,所以圖片看起來應該就會變得比較偏亮一些。當然有增亮就會有讓圖片變暗一些的功能了,不過目前那個按鈕還沒有實作出來,所以就沒有貼圖了。

  大家可能會在上面的按鈕中看到一個"馬賽克",那個按鈕目前的功能也還沒有實裝,我還在想要怎麼讓它輸出時會變的有馬賽克的效果,期末時應該也是做得出來的。

  目前的進度大概就是這些功能,接下來除了還要繼續再增加新的按鈕功能之外,我也在想到底要怎麼做版面的設計,因為按鈕快要不夠放了...... 不過我目前還沒有頭緒,不知道最後會做成什麼樣子。

  接下來要說的就是我目前所碰到的問題,其實這個程式有非常多的Bug,用一用很容易就當掉了,有很多的限制都沒有設定好,所以常常會有錯誤發生。最直接發生的問題就是,當在按下開啟圖片時,會出現資料夾的視窗讓使用者選擇要開啟的圖片,但是當這個時候按下取消時,鄭個程式就會發生錯誤了。

  我先列出一些目前有想到的問題,其實問題還真的多到記不起來= =

問題:

  1.程式碼太長如何換行?

  2.若是開啟圖片時按取消會發生錯誤 (12/18已解決)

  3.開啟JPG圖檔無法進行影像處理(BMP才行)

  4.如何再開啟圖片前,設定按鈕為無法點選的狀態? (12/18已解決)

  5.如何將處理過後的圖片儲存? (12/18已解決)

  6.圖片路徑不能為中文名稱

  7.當浮水印圖片大小大於原本圖片時,會發生嚴重錯誤

  8.太多了,還沒想出來......

  進度報告就先到這邊吧!未來只剩下2個星期的時間,有的課又要做報告,又要準備期末考的,不知道有沒有時間來把BCB程式趕完呢......

2008年12月4日 星期四

Apple store 體驗 - 完全不同的電腦系統

  一走進Apple的門市,很容易發現裡面全都是單一色系的佈置。店裡的顏色給人感覺很乾淨、很高雅,而且它的商品幾乎都有一個共同的特性,就是電池都擁有很高的續航力!很符合現在消費者的需求。

  我有試玩了一下Apple電腦的展示機,顏色是白色的,看起來很舒服,對它的第一印象算不錯!店員有介紹一個新功能,他將兩台電腦做連結,左右兩邊的視窗可以互相移動,讓人覺得很新鮮也很有趣。不過vista好像也有這個功能,不曉得是誰先研發出來的。

  Apple電腦它的目錄選單標示在螢幕的左方(應該是可以依照使用者喜好自己調整的),而且顯示的圖形清晰、螢幕也很大,視訊的畫面也很清楚。不過我不太喜歡店員在旁邊走來走去,還會去注意你的一舉一動,感覺很不舒服,好像深怕你把產品給用壞,所以變得不敢去亂碰。不過想一想,也許有可能是店員正在等著我們有問題要問他也說不定......

  在看過跟玩過Apple的麥塔金電腦後,真的覺得和平常用的電腦很不一樣。目前麥金塔只有Apple有在做,所以相較於一般的筆記型電腦,Apple的電腦給人一種高質感的感覺。

  接下來切入主題,談談作業系統的部份。因為有一個同學他剛好有Apple的筆記型電腦,我就大概問了他一些問題,他說其實他用Apple的作業系統其實也沒有用很久,他在裡面又安裝了Windows的作業系統。主要是因為在目前市面上的很多軟體都不支援Apple的作業系統,所以不管它作業系統做得有多好、多人性化,其他軟體無法在作業系統上使用就沒有意義了。我同學在切換到Mac作業系統上網時,在使用學習分享系統那邊就出了一些問題,登入後沒辦法進入要評分的那個網頁,可能是瀏覽器的一些設定不太一樣,整個感覺就很不方便。

  在台灣,Apple作業系統的使用率和微軟的Windows真的差很多,我想無法普及的主要原因,大概就是很多軟體在Apple的作業系統上都無法正常執行吧。有點像是微軟最新推的Vista一樣,不管它作業系統寫得有多好,只要相容性低,就很難被大家接受。不過聽說在最近Vista的更新中,已經有大大的解決相容度的問題了。也有一種說法是,在未來會演變成Windows Vista和微軟預計開發的下一個作業系統Windows 7去競爭,不知道Apple的作業系統會不會成為第三個競爭對手呢!

  Apple似乎很清楚的知道,不論是年輕人或是其他年齡層的消費群眾實質所要的需求是什麼!Apple很努力的將功能強化並整合其他可能,消費者要的不過是速度快、功能實用方便,並可將單一商品作多樣結合、產品的重量要輕、續航力要夠久、操作可不用看任何的繁複的說明書皆可輕鬆上手、質感要好、穩定性要佳,而這些特性apple不但做到了,而且還緊緊抓住了消費者所要追求的。

  他們的產品,能在短短幾年內深受消費者的喜愛,我想在消費市場的調查中,Apple所下的功夫絕對比其他人還要多,也必定比其他廠商要來的仔細和貼心,創造不再是3c的生冷機械。取而代之的是隨身攜帶的品味和質感3C。這樣的市場創新,更是眾多家廠商競相模仿的對象之一。

2008年11月27日 星期四

C++ Builder 專案計畫書


這是從開學到第12週,我的BCB程式目前畫面做到這樣。

目前的功能如下:

˙讀取一張BMP或是JPG格式的圖檔,並顯示在畫面左邊的地方。(JPG圖片無法做影像處理)
˙可以算出圖片的互補色,然後顯示在右邊。
˙可以將原本的圖片轉為灰階圖片,顯示在右邊。
˙開啟印蓋上浮水印的圖片,並將浮水印蓋在原始圖片左上方。
˙在下方有一個程式執行時的進度條。
˙進度條的上方有目前原始圖片的路徑。
˙隱藏原始圖片的按鈕,按下去後原本的圖片會隱藏起來。(好像沒有什麼特別的作用...)

期末的專案我想用目前的程式繼續做下去,一個一個功能慢慢加進去,想做出基本影像處理的軟體。不過目前還不確定會有哪些功能,也不知道自己能做到什麼程度。

預計加進去的功能:(目前比較有可能做出來的)

˙分別取出圖片的RGB值,看使用者想要哪一種,並顯示在右上方的框框。
˙圖片上下或是左右翻轉。
˙圖片向上下或是左右延伸。
˙將圖片轉亮或是轉暗。
˙將圖片模糊化,會有朦朧美效果的那種模糊化。
˙自由調整浮水印的位置。
˙減少或是增加對比效果。
˙剪刀石頭布那種小遊戲.......
˙Debug
˙想到其它的影像處理再慢慢新增...
沒有預計加進去的功能:(目前非常不可能做出來的)
  媲美Photoimpact的多種影像處理功能,甚至在photoimpact12之上。絕對有實力與photoimpact13競爭的影像處理軟體。最完美的程式最佳化,讓您低配備的電腦也能把影像處理得嚇嚇叫。當您在按下影像處理的按鈕時,馬上就能體會到無與倫比影像處理速度。最新的超省時、又不失真的影像處理技術,通通都在這裡。
未來可能的樣子:


目前只能想到未來只是多一堆按鈕而已= =

版面設計不知道怎麼用呀...........


老師,計畫書到底要怎麼寫啊.......?

2008年11月20日 星期四

數位時代11月份心得報告

  這一次我的心得報告是關於Apple vs. Google終極爭霸這一篇報導,因為這個標題它就大大的印在11月的數位時代雜誌封面,還有iPhone之前老師也有提到過,所以我就挑這一篇了。而且這次的封面圖也蠻有意思的,是2隻手在比腕力,而且手上都拿著手機(好像是iPhoneGoogle Phone),就象徵著一邊是Google,另一邊是Apple。

上面這章圖就是iPhone


上面這章圖則是由LG所製作的Google phone

  這篇報導裡面提到了目前手機市場的幾個大公司,有蘋果、Google、諾基亞(NOKIA)、微軟等等。蘋果和Google是最近才開始加入手機市場的,而諾基亞(NOKIA)我想大家應該都知道,我看了這篇文章之後才知道,原來微軟連手機的市場都有介入,真的是太厲害了......
  Apple和Google推出的手機,它們最大的差異在於Google手機的作業系統是開放的原始碼,就像是Linux一樣,每個人都可以開發新的功能,不需要付任何費用和經過Google的同意。光是這點對Apple就是一個非常大的威脅,因為大家都喜歡用免費的,一些開發程式的廠商自然就會比較偏向在Google的手機平台上開發應用程式。

  感覺上Google比較偏向於廣告收入,開發那些程式只是為了能製造出更多的廣告機會,這樣比起Apple還要來的更吸引用戶們去使用。因為Apple主要是以販賣那些軟體為主要收入,而Google的軟體大部分都是免費的。

  近年來由於網路的發展,越來越多的東西都開始"免費化"。我最熟悉的就是線上遊戲了,想當初線上遊戲剛開始發展的時候,都是要付類似租金的錢,看是要算遊玩的時數或是直接包下一整個月。而近來免費的網路遊戲越來越多,收費制的漸漸就被免費制給取代,只剩下少數真正有內容的遊戲才繼續用收費制。

  還有一個例子就是即時通和MSN,現在直接用網路也可以講免費電話,只要有開電腦並且上網,經由即時通和MSN等軟體就可以直接進行通話了。不過目前還沒辦法完全取代市話,因為通訊品質還不是很好,可以很明顯感覺到有延遲,而且也不能打給即時通和MSN以外的人。Skype就是真正可以連到電話網路的軟體了,不過打給一般市話或是手機還是要收費的。不過我想未來再發展下去的話,可能以後打電話也不用錢囉~

  這些大公司,主要賣的東西好像都是他們軟體的部分,像是手機的作業系統、整個開發的平台和應用程式等等。現在的手機功能越來越多,已經不再只是拿來當電話用而已。各大公司都有開發出在電腦上配合他們自己手機使用的應用軟體,可以上網下載一些應用程式到手機上使用,當然這些都是要使用者另外付費的,真的是只要有賺錢的方法,他們都能想出來。

  看完這篇報導後,讓我想到一件事情,那就是讀資訊工程學系的人會越來越辛苦了。現在程式不再只是寫在電腦裡了,一大堆資訊產品上面也要寫作業系統和開發應用程式等等,手機只不過是其中的一個例子而已。越來越多的軟體開發平台,永遠學不完的新程式語言,光是想想就覺得頭大。

  不過換一個好的方向去想,既然有越來越多的地方需要寫程式,那也就代表著以後讀資訊工程學系畢業的人,能夠發展的方向也就越來越多,因為到處都需要開發這些程式的人。當然前提是在學校裡有先培養出該有的能力,這樣以後出去找工作的時候才會有人要錄用嘛。

  回到主題,這次的手機市場競爭不止有Google和Apple而已,還有諾基亞(NOKIA)、微軟和其他全球各電信營運商等等。目前在手機的規格上並沒有一個標準,不知道未來是哪一家公司會贏得這場勝利?

2008年11月17日 星期一

期中回顧&平時成績大清算

首先是平常成績的部分:

Week2:不算分

Week3: 10 A 4 B 0 C => 100分

Week4: 10 A 2 B 3 C => 100分

Week5: 10 A 2 B 1 C => 100分

Week6: 9 A 5 B 2 C => 95分

Week7: 8 A 4 B 3 C => 90分

Week8: 2 A 7 B 0 C => 65分


平均是91.67



期中回顧:

這一個選修課可以算是在大學中所有的課裡面最特別的課吧!
老師並不像其他的老師那樣,有一定的進度、照著課本上課等等。
感覺起來老師要教我們的是自己主動學習的態度,而不是只為了考試而去讀書。

老師之前就有問過我們到底是為了什麼而讀大學的?
好像就是要我們自己去想,我們的目標到底是什麼?
還特別把大學的學費算給我們看,連我們如果翹一堂課,損失的是多少錢都算出來了。

老師常常在上課時提到許多關於資訊業目前的趨勢,像是提到最新的業界新聞、或是讓我們看數位時代雜誌等等。身為一名就讀資訊工程系的大學生,不能只是像國中、高中那樣,只是把學校的課本應付一下,然後去考試。應該要開始多關心一些現在資訊產業發展趨勢,最新的動態等等。如果我們未來決定要走資訊業這一條路的話,勢必會接觸到這一些資訊的變革。

再來除了老師的教學之外,我想抱怨一點關於評分的方式。
我覺得用互評系統算出來的成績,占的比例有點太重了,好像是總成績的80%。
雖然我前半學期平均有90分以上,但是總覺得對其他同學不太公平。
每次寫這個作業都要花上2、3個小時以上,感覺上有點像在練習語文表達能力=.=
總是要想辦法把整個篇幅弄得很長、很多......

因為說真的,要在上課那短短的時間互評15個同學的作業,時間上真的是不夠多。
大家一定都沒有非常充裕的時間去把每個同學的作業都仔細看過一次,
所以大部分的同學都直接從整個文章長短、貼圖的多寡、是不是認識的同學這幾點來投ABC ,甚至有些人根本就是亂投的......

而且互評系統也不夠完善,投票同學少時,大家的平均分數就會被拉低。
網頁上也看不到自己的成績,老師那邊也看不到到底是誰亂投票等等。
還有每個同學被評分到的次數也不相同,整個就感覺很麻煩。

當然我覺得老師最後再算分數的處理上還算不錯,老師說如果沒有被評到10次的同學,有缺的次數老師都直接送A來補,我覺得在處理上是還蠻不錯的。
希望之後這個系統能夠再做一些改善,能夠想出這樣互評的idea也算是蠻不錯的。

最後是到目前為止我的BCB進度,原本是上一週要交的,沒想到在我打好了之後,老師卻又說不用交了......

直接附上網址: Week10 C++ Builder 實作檢討報告

最後是要提醒老師,我們好像有一週的課有放假,那天是1月1日。

2008年11月10日 星期一

C++ Builder 實作檢討報告

  BCB的部分,老師從開學到現在已經教過了一點基本的用法,說真的其實也沒有很多。目前除了介紹BCB的一些基本元件之外,也教我們用BCB來開啟一張圖片,然後再用BCB對這張圖片作一些基本的影像處理。到第八週的時候,老師教我們打上簡單的程式碼,讓顏色的數值運算後,輸出一張圖片的互補色。他還有說下次上課的時候,我們要自己做出一個,把一張彩色圖片轉換成灰階圖片的程式,然後把結果顯示在自己BCB的程式上面。

  我平常都是有跟著老師的進度在做,所以覺得還不會很難。只要照著老師給的一些程式碼,知道那程式碼是在做什麼事情的話,稍微改一下就可以輸出灰階的圖片了。不過當然得要先知道彩色轉灰階的運算方式,老師教我們的是用R、G、B三個數值加起來,然後除以三,把得到的值放回原本的R、G、B裡,這樣輸出以後就會變成一張灰階的圖片了。


這個是我做的程式畫面,這一部分應該沒有什麼好說明的,就是一些BCB的元件用滑鼠拉一拉而已。我是將原本的圖片放在左邊的框框裡面,然後在將處理過後的圖片放在右邊的框框裡。我想每個人設計的應該都大同小異吧,畢竟都是看著老師做的......



這個是將圖片讀取進來後,我把它顯示在左邊的框框裡。下面那一條是讀取圖片時,會顯示進度的進度條。這邊的程式碼比較長,而且大概都跟老師用的一樣,所以我就不打出來了。




這是在按下"互補色"按鈕之後,會將處理後的畫面顯示在右邊的框框裡。
下面是我互補色按鈕裡面的程式碼:

void __fastcall TForm1::Button2Click(TObject *Sender)
{
  //輸出互補色的圖片的按鈕函數
  //進度條
  ProgressBar1->Position=0;
  ProgressBar1->Max=ImageHeight;

  //計算每一個點的互補色迴圈
  for (i=0;i<imageheight;i++)
  {
    ProgressBar1->StepIt();  //進度條增加
    for (j=0;j<imagewidth;j++)
    //將互補色圖片輸出在Image2
      Image2->Canvas->Pixels[j][i] = (TColor)RGB(255-RMatrix[i][j],255-GMatrix[i]  [j],255- BMatrix[i][j]);

  }
}

這個則是在按下"轉灰階"按鈕後,將輸出的灰階圖片放在右邊的框框裡。
下面是我轉灰階按鈕裡面的程式碼:

void __fastcall TForm1::Button3Click(TObject *Sender)
{
  //轉灰階的按鈕函數
  int gray;
  //進度條
  ProgressBar1->Position=0;
  ProgressBar1->Max=ImageHeight;

  //將每一個點轉換成灰階的迴圈
  for (i=0;i<imageheight;i++)>
  {
    ProgressBar1->StepIt(); //進度條增加
    for (j=0;j<imagewidth;j++)
    {
      //將RGB的值加起來除以3,放在gray變數裡
      gray = (RMatrix[i][j]+GMatrix[i][j]+BMatrix[i][j])/3;
      //將灰階圖片輸出在Image2
      Image2->Canvas->Pixels[j][i] = (TColor)RGB(gray,gray,gray);
    }
  }
}


這是按下"隱藏原始圖片"按鈕時,左邊顯示原始的框框就會消失了,當在按下一次時就會又跑出來了。其實這個只是老師在上課時有提到這個元件的屬性,我就無聊試一試,然後覺得蠻有趣的,所以就把它做成按鈕放上來了...... 這個按鈕比較簡單,我也放一下程式碼好了:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  //隱藏原始圖片的函數(純屬功能測試...)
  if( sw==0 )
  {
    ScrollBox1->Visible=false;
    sw=1;
  }
  else
  {
    ScrollBox1->Visible=true;
    sw=0;
  }
}

最後附上一個我程式碼的圖,只是一小部分而已啦~我會在程式碼上面打上一些註解,不然真怕過一個星期之後就忘記那到底是在做什麼了。

最後是我做這個程式目前所碰到的問題:

1.就是有些程式碼太長了,我想換行繼續打,那個要怎麼用啊=.=?

2.在開啟一張圖片的時候,如果按了取消就會出現錯誤。我知道為什麼會發生那個錯誤,因為我們的程式裡面,都是假設有選一張圖片開起來,但是卻沒有處理如果按取消會怎麼執行,所以就有錯誤產生了。雖然知道了,但是我卻不知道要怎麼讓程式判斷,當按了取消後要執行什麼耶。

3.開啟JPG圖檔時雖然會正常的顯示在BCB的程式上,但是卻會跳出有錯誤訊息,並且無法執行BMP的影像處理。

4.有一些程式它會設定,在未執行某個步驟時,有一些按鈕是無法按下去的。我想問一下再BCB裡面,如果我想讓它在未開啟一張影像前,下面的按鈕都先不能按,那這樣要怎麼設定呀?

5.要怎麼將處理過後的影像另存新檔呢?總不能都只是在軟體裡面按按好玩的而已吧=.=


2008年10月29日 星期三

讀書心得報告



翻動世界的Google,這本就是我這次指定閱讀選的書。至於我會挑這本書的原因其實很簡單,因為我在圖書館裡只有找到這一本而已...... 其實我本來是比較想看世界是平的這一本,不過發現在學校圖書館,這本書的借閱率高的非常驚人,已經被借走了就算了,甚至還有2、3個人在預約等候。

我覺得這本書感覺上把Google寫得很誇張,它在封面上就寫到"沒有Google,你怎麼辦?",我還真的蠻想要回他說"阿是不會用Yahoo奇摩喔= ="。因為就我自己的經驗,我平常很少用到Google,我的首頁是設在Yahoo奇摩的。

我想最主要的原因,應該是它們2個入口網站出現的時間吧。在網際網路剛開始普及的時候,就開始有許許多多的入口網站出現,主要是提供搜尋引擎的服務,像是奇摩、新浪網、蕃薯藤等等,而我從那個時候開始就比較習慣用奇摩了。後來Google的出現,感覺上對我來說並沒有很大的影響,因為我用不太習慣。

Google對我來說,目前我想到的大概是2個功能,第一個就是當奇摩搜尋不到我想要的東西時,我才會在奇摩的搜尋列裡面打"Google",然後就會出現一個"Google台灣"的連結,點進去之後再去搜尋我想要的東西,類似預備用的搜尋引擎。第二個則是因為在這節課的作業繳交,要用到Gmail帳號,所以我才去Google辦一個,我平常大概也只有這2個情況才有用到Google吧。

看我上面說得好像很不屑Google似的,其實也不是這樣啦,只是我比較少去用到而已。在這本書裡有提到,Google公司裡面的人事階層管理跟一般的公司不太一樣。一般公司可能都分成很多層,像是員工、主管、經理等等。但是Google是比較偏向平行化的,也就是說當你想到一個點子的時候,可以和其他的同事討論,如果大多數的人都覺得可行的話,就可以開始準備實行這個計畫,並不用一層一層的向上報告。這種管理制度節省了很多的時間,是和一般公司很不一樣的地方,應該也算是一種優點吧。

在看了這本書之後,才知道是誰創立了Google這個公司。一剛開始的時候,是布林和佩吉這兩個人和他們的教授馬瓦尼在研究一套網路評比系統,後來不知不覺的就發展成一個新的搜尋系統,我覺得最好的比喻就是無心插柳柳成蔭了。而且Google還是一個拼錯的單字,原本他們想要取的名稱是代表一個很大的數目,原文應該是googol才對,不過他們是註冊之後才發現錯了,當然正確的那個單字早就已經有人註冊了。

他們2個有幾個共通的特點,他們2個人都是猶太人(猶太人好像都很厲害...),而且家庭背景都是很不錯的。他們的父親都是大學的教授,而母親則從事與科技相關的事業,感覺上他們好像就注定是要往科技、學術界去發展的。他們2個也很喜歡去和別人辯論,主要的目的是去說服別人接受你的觀點。布林甚至19歲就已經拿到學士學位了,真的是很恐怖呀!

然後就是Google所使用的電腦,都是他們自己去買零件,然後回來自己裝成一整組的超級電腦。這些電腦的運算能力比直接現成組裝好的電腦快上很多,這也是Google能提供較好服務品質的原因之一。

最後,我感覺只要有發展出一套未來能被廣泛接受的產品,這輩子大概就不用怕沒錢了。而且就這些成功的案例來看,這些點子幾乎都是在大學階段被想出來的。像是台灣的無名小站,也是幾個大學生弄出來的,我想他們原先也沒有想到,會因為無名小站而讓他們這輩子不用擔心沒有錢用吧。Google也是布林和佩吉在大學還是研究所的時候做出來的一個搜尋系統,現在卻成為全世界都在用的一個入口網站。不知道我們學校會不會哪一天,也有幾個同學做出了不得的發明。

2008年10月17日 星期五

數位時代10月份心得報告

  在這期的數位時代裡,我覺得比較有心得的部分,應該就是在談雲端運算的那一篇。 雖然在雜誌裡只有短短的六頁而已,但是關於雲端運算這個技術,卻是很多老師都有提到的。我相信在我們未來的工作場所上,很有可能會接觸到這類的技術,所以要趁現在多多了解一些才行。

在數位時代雜誌上,封面就有寫到:

雲端運算-Web2.0後的下一場革命

文章的標題則是:

Google、微軟加碼,IBM、HP、Cisco搶進

雲端運算風暴來襲
Cloud Computing

  從這邊可以知道這個技術在未來有多麼的重要,那麼多的大公司都很努力往這邊在發展。Google、微軟、IBM、HP這些公司大家應該都知道,我特別查了一下Cisco這個,因為我沒有聽過...... 這是台灣思科系統股份有限公司,好像是在製作許多和網路有關設備的公司。

  雲端運算這個名詞指的就是,所有的運算處理都是在網路上執行的,透過網路上的運算後,再將結果傳給用戶端,並不需要用到自己的電腦來執行,也就是說不需要安裝軟體在自己的電腦裡。而為什麼要用雲來代表網際網路,只是因為過去一直將網際網路畫成一朵雲的形狀而已......

  其實在很久以前就已經有這個技術的基礎了,像是現在上網一定用到的搜尋引擎和網路信箱等等,都是屬於雲端運算的一種。附上Wiki的搜尋連結

  在文章的開頭,就從訪問趨勢科技的內容切入。大家都知道趨勢科技,比較有名的就是它的防毒軟體。但是一直有永無止境的病毒被寫出來,防毒軟體的檔案也跟著越來越大,病毒和防毒程式就像是一個永不止息的戰爭,所以發展出更有效的防毒方法是必要的。

  一般來說會中毒,都是因為使用者必須將含有病毒的檔案下載到自己的電腦上,所以才會造成電腦中毒。但是如果防毒的工作能夠在雲端上(網路上)就開始執行,不必等資料放到電腦後,才用自己的防毒軟體來檢查,那麼就能夠有效的爭取更多的預防時間。趨勢科技的構想是,要在網路上架一朵防毒雲,讓它產品的使用者連上防毒雲,就能夠在網路上即時的進行防毒工作了。不但省硬碟空間,也可以縮短病毒爆發處理的時間。

  我現在才知道,原來雲端運算還可以達到有效防止電腦病毒的功能。不過在這邊我發現有一點很可怕的地方,文章裡寫到:"平均每四秒就有一個新病毒"。我很難了解,為什麼就是有一些很無聊的人在那邊寫病毒搞壞別人的電腦......

  而第二個則是提到了與企業有關的部分,雲端運算技術可以有效的幫助企業節省成本、提升效率。文章中提到,根據Gartner的研究指出,企業每十元的IT投資中,約有八元是用在系統的維修,而不是更新升級。如果使用雲端運算技術,就可以將80%的維護費用大大降低,把資金用在研發或是其它企業更核心的領域。我看不懂IT是什麼 = =,所以我又去查了一下維基百科:

  資訊科技(英文:Information Technology,簡稱IT),是主要用於管理和處理信息所採用的各種技術的總稱。它主要是應用計算機科學和通信技術來設計、開發、安裝和實施信息系統及應用軟體。它也常被稱為資訊及通訊科技(Information and Communications Technology, ICT)。

  在這段文章我也找到了一些有趣的地方,從以前我們上的生物課可以知道,只要有陽光、空氣和水,我們就能夠活下去。但是隨著人類科技的發展,現在自來水、電、甚至是網路,都已經"幾乎"(偏遠山區的人可能就不一定啦......)成為現代人的生活必需品了。而這篇文章的作者也預測,在未來可能雲端運算也會是我們的生活必需品之一,而且就像是現在的電力系統一樣,隨插即用。

  但是資料都在網路上這樣好嗎?安全嗎?這文章又有舉一個挺有趣的例子。他說在60年代,大企業需要在工廠附近自備發電機,因為擔心公用電力不穩定。但是現在沒有人會對電力系統不放心的吧,頂多颱風、地震造成的停電而已。而我們現在對電力的信賴,未來也會成為對雲端服務的信賴。

  第三個部分則是說到Google和微軟在雲端運算上做出的服務。Google現在有提供免費的線上Office軟體(網路辦公室軟體),主要目標就是想要搶走微軟在Office的市場,雖然目前的功能沒有很強大,但是一些基本的功能卻是很足夠的。像是網路信箱、文件(應該是指Word)、投影片(Power point)等等的服務,全部都免費在網路上提供別人使用。其實我是沒有用過啦,所以特別去找了一下,這個需要有Google的會員帳密,不過註冊又不用錢,而且用這個網誌的應該都有Google的會員了...... 直接用Gmail的帳號就可以登入了,附上連結:Google線上Office




  另外,Google今年還有新出的Google App Engine,這是一個網路平台,讓所有人都可以自由的在這個平台上開發網路應用程式。感覺有點像是在請廉價勞工一樣,Google其實也不用花很多錢請那些開發程式的人,就可以有很多的程式提供給別人用......

  在微軟的方面,則是計畫要將他所有的產品,都推出一種雲端運算的服務模式。現在不只是Game有一堆online,連微軟的產品都要準備在後面加上online了。2種產品模式一起推出,微軟的策略是軟體+服務,強調產品的彈性化。

  在這段文章中,我覺得有一句話也蠻經典的,就是台灣微軟開發工具暨平台推廣處副總經理劉念臻(好長的稱號= =)說:"這就像交通工具的演進,不會因為有了飛機,大家都只坐飛機,而是依據不同的需求選擇"。也就是說大家不會因為出了新的東西之後,就不用舊的東西了,而是看需求而做選擇。

  在最後的部分,則是說到了中小企也會因為雲端運算的興起而受惠。因為雲端運算需要用大很大量的伺服器、超大機房等等的網路相關設備,一些擁有相關技術的廠商就會因此而受惠。還有雲端運算可以降低成本,中小企業可以依據需求來選擇用量,用多少資源就收多少錢,不會造成過多的開銷。

  但是在文章的最後一小段提到,雲端技術是有很多隱憂的。像是在目前還沒有一個固定的標準,也就是當企業用戶要轉換供應商時,是非常難的,降低了轉移的彈性。還有之前也有發生過當機事件,把資料都放在雲端的安全性也很重要,在未來要解決的問題還很多呢!


2008年10月15日 星期三

第三屆台北數位藝術節 參觀啟發

我覺得這個展覽的名稱感覺起來就很特別-數位藝術。運用現代的科技,做出與二十世紀以前截然不同的藝術品,人的創意果然是很厲害的一樣東西......

這次展覽的作品蠻多的,還有一些國際知名的作品呢!

漂流網 ver.-1,這個是日本人平川紀道作品。
這個作品想表達的是,現在全球網路就像位於島國的日本,往海邊放眼望去似乎無窮無盡。而現在的搜尋引擎也就跟這個是一樣的,網路上的資料也像是像沒有極限似的。
雖然他想表達的意涵好像是這樣,但是我真的看不太懂=.=
我只看到一個大螢幕,閃來閃去的,好像還蠻適合拿來當螢幕保護程式的說......

如果你靠近我一點,這是由義大利人桑妮亞‧希拉利(Sonia Cillari)做的。
這是一個互動式的作品,主要是探索身體、環境之間的變化,主要的核心是利用感應地板,人的身體就像是天線一樣,當其他人靠近時,就會產生電磁場的變化,再由電腦計算後投影在旁邊的牆壁上。
不過說真的,我還是很難體會旁邊投影出來的那堆線(網子)到底是什麼意思。只知道2個人靠近時,那電磁場會有變化,然後牆壁上的圖形會有一些改變這樣......

自動光飛行船,美國人傑德‧伯克(Jed Berk)的作品。
它想展現不同個體共存於同一個環境中,學習適應陌生的環境和發展出獨特的生活模式,還有彼此之間的互動。
感覺上每個介紹寫的都很深奧,但是我只看到像氣球一樣的東西浮在那邊而已Orz
我比較好奇的是他用什麼物理原理來控制他的移動,裡面裝的是什麼阿?

音樂圓柱,韓國人睦鎮耀(Jin-Yo Mok)的作品。
這個作品的靈感來源就是"音樂盒",想將以前演奏音樂盒的經驗,放到現在的作品當中。這不是一個壯麗而神秘的作品,而是一個簡單易玩的小玩具。
我覺得這是四個國際作品之中最好玩的一個,圓柱旋轉時,就像是音樂盒轉動的樣子。然後他會照著外面的LED燈來發出聲音。而且可以用手來碰那些 LED燈,決定要發出哪些聲音,感覺他就像是發明了一種新的樂器一樣!

當然除了這些國外作品之外,還有更多的本土作品啦~

動覺生物,黃致傑的作品。
動覺是一種奇妙的表現能力,他能微妙的在與人溝通上傳達這種細緻的表情。如同在植物上,微妙的動覺便表現給人一種柔軟、舒服的想 像力。
剛開始看到這個作品,感覺有點像是一盆花一樣。大概看了一下,不太知道它有什麼反應,不知道是不是壞掉了@@ 我覺得拿來當裝飾品擺著好像很適合XD

漩渦Maelstrom ,羅禾淋 He-Lin Luo 作品。
不停旋轉的監視器,360 度擷取著目標,每一角度都不放過,就如同當下身處資訊媒體爆炸的我們,也不斷被資訊無死角地介入著。
因為場經燈光效果的原因,讓我從遠處看起來有點像是一個會發光並且旋轉的水桶。手伸進去之後,投影在牆壁上的影像就會改變,看起來像是水紋一樣,又好像是因為旋轉而模糊,不知道是用什麼方法來呈現的,真的很厲害。

塔羅斯,作者...好多喔,這好像是台灣大學研究所學生做出來的作品。
居然能把知名的遊戲改成新的玩法,蠻有創意的呢!可以直接用觸摸的方式來拉動那些圖案,這個設計上,感覺就很不簡單。可能同時2個人都搶到同一種圖案,這個作品想要表達的就是,彼此之間的溝通,我們需要的是朋友,不是敵人。

其他還有很多啦,都說光光就不好玩了唄~

看了這麼多的"數位藝術品"之後,真的覺得那些"數位藝術家"很有創意,雖然有一些內涵比較深的東西,我還沒辦法去體會,不過他們能把這些想法和現代的科技結合起來,做出這個時代獨有的特別藝術品,真的是很厲害呢!

不過真的要說有什麼啟發,我除了覺得那些做出作品的人很厲害之外,我也不知道我有什麼啟發耶~ 我覺得藝術感、靈感、創意等等這些東西,不是去看個兩三下就能擁有的。只能平常多接觸這些東西,看看別人的創意,來慢慢增加自己的實力吧。

還有好像有很多展覽品都已經有點問題了,可能是被玩壞了= =
想看的人要早點去比較好......

2008年10月2日 星期四

Week 5

今天老師一上課就問班上有沒有人還沒安裝BCB程式,也問有沒有人沒帶BCB的書。然後就在討論下次如果沒有帶的話,要有什麼樣的處罰等等。後來有提到我們的學習動機之類的,有些同學可能是有一點想要學BCB,但是卻又沒帶BCB的書或是沒有主動去找BCB軟體來安裝。更誇張的人甚至也不是想學什麼東西,只是想來拿個學分等等。

  我覺得現在大部分學生的學習方式,就是到學校後,然後等著老師教課本上的內容。就像是第一節課時,老師說現在一年級的學生,有人提到在計概課想要多上一點課本的內容,但是他並沒有想到上那堂課的目的到底為了什麼。如果只是想要考研究所而讀那本書,可能效果不會很大,因為計概所包含的範圍是非常廣的,可能連大學4年都學不完。

  主要的關鍵在於學生自己的學習方式,如果只是有個想法,想要學習某樣東西,但是卻又不自己去實際行動,只是被動的方式等著老師來教,這個樣子的學習方式是不好的。就以學習BCB程式來說,老師也有說過,就算上課沒有來,但是如果在家有自己好好研究BCB的話,學習起來的效果也不一定會比來上課但是回家卻不練習的同學還差。所以結論就是要自己主動去學習,學習效果一定會比只是等著老師來教的人要來的好。

  接下來老師有提到一個新聞(DVD拷貝爭議 RealNetworks 與片商對簿公堂 )。這個軟題提供了更強大的DVD功能,讓DVD的資料可以放入硬碟就是其中一項,也是讓它和許多大型電影公司對簿公堂的主要原因。因為影片會被使用這個新產品讓使用者自由的攜帶,甚至是隨意的複製,那些公司怕盜版問題會更嚴重,影響到它們的自己的收益問題。

  這個問題與 Apple公司提供正版的音樂下載有點類似,Apple公司與一些音樂公司協商,說好讓Apple的產品使用者能夠經由正當的管道付費下載這些音樂,然後賺到的錢再一起分等等。 這就是順應潮流而發展出來的新商業模式,因為不可能完全阻止別人從網路上下載音樂和盜版的問題,不如想出一個更好的方式來銷售這些音樂。畢竟從網路上非法下載的音樂,可能會有病毒、木馬等等的威脅。不如花少少的錢,買正版又安全的音樂。

  我覺得那些廠商與其去告它,不如想辦法和它合作,推出更好的販售方式,或許業績反而會比原本更高也說不定。

  接下來老師講的是WEB2.0的一些特色,一般大家最了解的就是網頁與使用者互動的部分,像是部落格或是Google等等。而今天老師介紹的主要是TAG 標籤,它是一種分類方式,比較自由的分類方式,也是WEB2.0的特色之一,感覺有點像是入口網站關鍵字搜尋的概念發展出來的。

  它的應用範圍很廣,通常是用來分類大家上傳的東西。像是部落格的文章、Youtube的影音分類都有用到。只要打上一些跟上傳東西有關的文字當作標籤(tag),當其他人搜尋這個標籤的時候,會就找到這個資料了。而且一次還能打很多個標籤,不用考慮要分到哪一類而煩惱。我覺得能做出這個分類系統的人真的很厲害!

在最後一節課的時候,終於進入了BCB程式的部分。首先是複習上星期教過的開啟BMP圖檔,然後一個元件一個元件的介紹,慢慢改進開圖檔的方式。

首先拉一個在Standard裡的MainMenu放在From1裡面。

然後再設計MainMenu裡面的選項。

接下來在拉一個Dialogs裡面的OpenPictureDialog放在From1

再來是要弄一個放圖片的原件,

Standard裡的Image放在From1上,並且調好位置和大小。

總共只需要MainMenuOpenPictureDialogImage三個元件就可以開啟BMP圖檔了。


先在MainMenu裡面設一個Open的選項,然後將程式碼寫在Open這個選項裡面。

其實只需要2行程式碼就OK了:

1. 利用 OpenPictureDialog1->Execute() 來選定你所希望開啟的影像。

2. 再利用 Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName) 將影像顯示到 Image1 這個影像物件中。
實做圖:


下面是老師部落格的教學連結

http://leebcb.blogspot.com/2006/09/bmp.html


上面那個是比較基本的開啟圖檔方法,當然開起來的效果可能不是很讓人滿意。

我在上面程式碼第一次打就錯了,我居然忘記加Execute的括號"()"......

下次要小心一點了


接下來是老師後來有再教一些其他的功能

Image裡面有很多的屬性可以設定

autoSize:可以設定為true和false,當設定為true的時候,Image的大小會隨著圖片大小而改變。

stretch:則是圖片大小會隨著Image的大小而改變。

Panel:這個原件除了有凸出來的效果之外,還暫時不知道有什麼作用......

ScrollBOX:這個原件是有卷軸的格子,算是目前顯示圖片效果比較好的。當配合Image使用autoSize=true的時候,雖然Image會隨著圖片改變大小,但是有卷軸可以調整,所以比較方便。

Visible:是ScrollBOX的屬性,當設定為true的時候,會隱藏ScrollBOX不顯示。

Label:通常是拿來顯示文字區塊的原件。

以上大概就是老師今天有用到的一些BCB原件和屬性。

2008年9月25日 星期四

HW 03

這星期老師教了比較多Borland C++ Builder 的基本概念,一開始老師先教我們BCB的存檔和讀檔。我覺得先教我們存檔和讀檔的方式是對的,不然BCB寫半天,結果不知道要怎麼存檔,那就真的不好玩了...... 還有就是要怎麼開啟之前寫的BCB檔案,如果沒有教過我們的話,那還真的蠻難找的。

因為BCB是一個整合開發環境,所以存的檔案跟之前的用Visual C++ 存的檔案有一些差別。之前寫的程式只需要存一個.cpp檔案就好了,而BCB需要存的檔案比較多,有ProjectUnit的檔案。再來Unit又有分.cpp和.h的檔案,還有其它副檔名比較奇怪的檔案。尤其是在BCB程式編譯執行之後,又會多出.obj和Project1.exe的檔案,真的是蠻複雜的。點Project1.bpr可以開啟之前寫的BCB檔案(如果之前存檔名稱為Project1),而點Project1.exe則可以直接執行BCB寫的程式。

接下來有做一些BCB的名詞介紹,像Applications就是常常聽到的應用程式。BCB寫完編譯執行之後,那個就是應用程式了。Form給我的感覺就像是一個視窗的意思,Unit好像是Form裡原件的程式碼。我在回家之後有在上網大概找一下資料,找到一個網站的內容和今天教的東西有點關係,我覺得他寫的還不算很難懂,以下是複製那個網站的內容:

C++ Builder 應用程式的開發過程都是統籌在一個專案(project)之下,所以每個應用程式都以專案為基本單位,專案內最基本的程式單位是Form及Unit,其實Form就是視窗,而Unit就是C++的原始程式碼,你可以在Form上面加上任何元件,然後C++ Builder就會自動產生相對應的程式的原始程式,所以你會發現,只要有Form存在,則一定會有相對應的Unit產生;可是,Unit存在,並不代表會有相對應的Form存在,因為Form上面存放的絕大部份是一些視覺化的元件,所以一定要有對應的程式碼產生(元件不會無中生有),可是你可以在Unit裡面,直接撰寫一些像是數學處理函數、輸入資料格式判斷函數等不需要顯示特性的程式,也就表示不需要有Form產生,所以你就可以單獨地撰寫Unit而不要Form。另外,在每一個專案裡面都有Project Source,它們是用來控制整個專案的內容包括有那些Unit和Form,還有整個應用程式的執行進入點WinMain()函數也放在這裡;Project Option則是存放每個專案本身特有的設定選項。

資料來源: http://cslin.auto.fcu.edu.tw/eleme/Lcd/c17.htm

接下來我覺得BCB最厲害的地方,應該就是他裡面的VCL ( visual component library )了。就是Borland C++ Builder這個軟體,他已經寫好了一堆函數和程式,而我們要學的就是如何用那些函數來做出我們要的東西就好了。

我現在可以想像在用BCB的時候,隨便從上面點選一個元件來使用,那個元件就是由一大堆的程式碼所寫出來的吧。連裡面的屬性、一些選項都已經設定好了,我們只需要更改一些屬性的數值就可以用了。能做出BCB這套軟體的那群人真的是很不簡單吧!

最後有提到Event(事件),我覺得這個就是BCB比以前寫Visual C++好玩的地方。以前頂多就是在黑黑的視窗裡輸入一些資料而已,現在用BCB寫的程式碼可以比用Visual C++還簡單,但是做出來的程式卻比Visual C++寫出來的程式還要高級的感覺,互動的效果有明顯提升。

2008年9月18日 星期四

WEEK 2 心得

今天老師一進來就請我們下載 iTunes 這個軟體,結果好像很多人到放學的時候都還沒有下載好.... 我發現連到國外的伺服器下載,那個速度實在太慢了。我自己是到"軟體王"這個網站,然後搜尋 iTunes ,這樣就可以找到國內伺服器的下載點了。

那個軟體好像是多媒體的播放程式,主要是配合 iPod 在使用的。但是我有問過同學,他覺得這個軟體對於沒有用 iPod 的人,實用度其實不高,而且感覺上也比其他的多媒體播放器還要難用...... 我覺得會去買 iPod 的人,大部分家境都是屬於"小康"以上的吧,那個價錢真的不算是便宜。不過沒想到在國外居然會這麼紅,而且Apple那家公司還能靠這些產品,賺了那麼多的錢。

今天老師前2節課都在說目前資訊技術的趨勢,還有我們對於一些大公司的看法等等。不過我覺得最重要的就是,老師有說到一個重點,現在學校沒有教的東西,可能是未來我們會去碰的到。像是現在新開發的網頁技術,例如Google網頁上有提供類似微軟Office功能的軟體,只要上網就能使用簡單的文書處理軟體。雖然目前只有簡單的功能,但是相信未來功能一定會變得越來越多,甚至比微軟的Office更好。

我覺得這就可能會是未來的趨勢,很多東西都免費化、網路化。但是現在學校並不會教我們寫那種新的網頁程式,因為可能連老師自己都還沒有學到。也許以後公司會叫我們去寫以前大學根本就沒有看過的程式,這就是我們未來有機會碰到的一個大問題。

終於在最後下課的前20分鐘,老師教了一些BCB的用法。這次教的是一些BCB元件的用法,然後在寫短短的程式碼,用來讀取一張BMP格式的影像檔。我照著老師操作的步驟,很快就可以成功的寫出來了。

其實自己根本就沒有寫什麼程式碼,只需要用滑鼠點選要使用的元件,位置調整好,然後再把老師BCB教學部落格上面的程式碼複製貼上後,按一下執行就可以用了。

下面那個是我實際執行時的圖:


不過我覺得這次在上課最後的那一段有點太趕了,因為那時候已經快要下課了,好像很多同學都還沒有實際做出來。因為聽到鐘聲後,大家都想回家了.....





2008年9月11日 星期四

C++ Builder 初體驗的心得

第一次使用C++ Builder 的介面還蠻不習慣的,一開始碰到的第一個的問題,就是完全不知道程式碼要寫在哪。在經過學姊解釋之後,大致上就有比較了解BCB的用法了。

BCB不像C++一樣,直接在一個空白的.cpp檔案上面打程式碼就可以執行的,還要調整想要顯示的介面(按鈕、視窗等等),我覺得跟做網頁有點像。點選物件2下就可以在那個物件上寫程式碼了。

而C++ Builder存檔時,也不像C++只有存.cpp檔而已。是整個專案存起來的,除了.cpp檔之外,裡面有其他許許多多的檔案。 當要開啟之前存的BCB檔時,點Project1.bpr(之前存檔的名稱)就可以整個開起來之前的程式了。而在裡面我也有看到Project1.exe這個檔案,直接點2下就可以開起來這個程式的執行結果了。

今天學姊出的題目是要輸入N,然後輸出N!的答案。基本上我覺得還不算會難,只是要用BCB來寫比較不太習慣,有一些BCB特殊的語法和C++不一樣。像是Labe1->Caption這種與法等等,不過只要了解之後,大致上就沒有甚麼問題了。

在大概知道BCB的用法之後,覺得這軟體用起來比之前的C++厲害多了,至少不再只有黑黑的螢幕顯示文字而已了。