星期六, 3月 10, 2007

換環境

試著在Dev C++寫稍大一點的程式是一件很恐怖的事,終於在昨天體會到了,不用專案即可單檔編譯一向是Dev C++顯著的優點,這對初學者而言非常的方便(我到現在還是初學者XD),但是昨天試著建構一個屬於自己的Data Structure Library時(完全不用STL),多檔連結可謂是dev c++的災難,用筆電字小,長期寫下來著實勞累,不得已,暫時換至桌上型+Visual C++ 2005 Express Edition,老實說我也不是那麼喜歡Microsoft的東西,但是僅我所認識的 Editor + Compiler 只剩CodeBlock,呃,好是好了,但是其語法顏色好像七彩霓虹燈一般,不甚習慣(我一般只有keyword 和string不同顏色),暫時且戰且走吧。

此library也只建構了Stack和Binary Search Tree,連一個能操控的Iterator Class都沒寫,看來可以盡情的發揮寫程式的心情了XD

---
小白+大螢幕 = 好的寫程式環境

星期五, 3月 09, 2007

更新

如果在做資料性網頁時,盡量保持一個原則,不要翻頁,盡量在一頁顯示重要資訊,所以這一次的更新中,採用隱藏table,左邊為課表,右邊為課程資訊,事實上可以更為簡化,可能會再做更改吧。

星期四, 3月 08, 2007

efang

親愛的宜芳

生日快樂

---

早睡

這學期受到cll老師影響(這名字有仿Josh對於cyy的命名XD),每天過著十二點睡七點起床的生活,剛開始不甚習慣,有很累的感覺,後來越來越習慣,也不太需要鬧鐘,自己就會比鬧鐘早醒來,人跟機器的競賽,似乎有一點有趣:) 身體好很多了,生活也很普通,過著專業念書的生活,有朋友嫌我一個禮拜生了14篇blog有點多,呃,我個人是沒有想那麼多,想寫就寫,有點像散記,沒有那麼專業,所以就將就點吧。好玩的一點是,我和我室友被cll老師在課堂上對學弟妹說,你們的學長很認真的早睡啊,上課都不會打嗑睡,但是有點抱歉的是,我下課會一直睡啊。

筆電對於我這學期上課的影響度達到前所未有的高,每天都要擔心用電問題,卻真的沒有一天把電用完過(螢幕調最暗,CPU速度調最低)。感覺上,這樣子的生活也不錯

最後我想說的,有看我blog的十多個人(假設StatCounter可信),有沒有人要響應我的早睡運動,響應的送台客照一張XD。

---
不過也不得不說,五天中三天八點有課XD

來一點不專業的

早上心生無聊,用LaTeX生了一篇作業題目出來(有需要),看到的人大為驚豔,我卻甚為漸愧...因為我並沒有做很細步的調整。

今日上計算機組織上了一個很簡單卻很重要的語言,事實上我們可以做成如下論述

  • RTL Register Transfer Language 針對整個Computer Organization 的 microoperation做描述

  • VHDL VHSIC Hardware Describe Language 針對boolearn function 抑或是整個電路圖描述
看起來很像,事實上一點都不像RTL相較之下還算高階一些,register 可是由flip flop做出來的,但是VHDL卻要實作整個flip flop(當然,好一點的軟體都會內建寫好的function),兩者的語法我不多做描述,google一下都有。我想說的是。
在撰寫VHDL時,你是在對電路做描述,而不是在寫高階語言,在寫作時,應對電路存有一個大局觀

這是一個很簡單的概念,也不難,問題出在那?VHDL有for, if, case switch, while, 甚至連bit vector都有了,你寫起來很像一個高階語言,但是不代表他如你所想的

if(K==1) R1 <= R3;
else R1 <= R2;
這樣子的程式碼在C/C++等高階語言中,大部分都是循序執行,看完if再看else,如果if成立,program根本不在乎else發生了什麼事。但是在VHDL中,這個if else乃是同時被執行的,意思即是,K只有0與1,所以我們會在R2和R3 assign 給R1之前,加一個K的2 to 1 multiplexer ,就可以完成選擇動作了,這也是同時被執行的意思。

那麼我們再來看一個在電路中根本不存在的東西for,那麼這樣子的東西到底怎麼樣被實作的?答案也很簡單,原地把程式碼展開,使得一個for是一個一個依序執行的變成平行執行(實際上當然沒有那麼簡單,可能還要加一個clock),簡單而言for如果跑了10次,那麼assembler就轉成十行程式碼,這或許是最快的解法,如果真的要學會VHDL,我還是得對背後的運作原理多多下功夫才行。

---
聽完今天的課有頓悟的感覺。

星期二, 3月 06, 2007

學習

從隨機客的課堂上,我想可以學習到很精采的演算法與資料結構,這是無庸置疑的,但是他更想教給我們的是做學問的態度,原因無他,我上課只有半年,但是做學問可能要做一輩子,顯然,他所述說的,與我從Josh看到的金次述說強調重點不同。

不要做一個verifier,而做一個prover或presenter,此乃知易行難的事,以我的聰明才智,我還要學很多很多才看會不會用嚴謹的數學語言證明某些事的存在。我從高二開始教別人寫程式語法,到大二教人學習寫C++(以程式語言的角度),有時候在準備時,真的深深的覺得,懂了並不代表你可以很嚴謹的說明出他是什麼,以前我總是討厭嚴謹的東西,現在回頭想想,嚴謹的東西才能讓自己的思考趨近於完備。以教授一個"物件"的概念,我還是翻了"世紀末軟體革命"的chapter 2,我才照本的宣科的解釋(再加上自己的見解與舉例)。現在想想,我的學習和教授兩件事都有很大的進步空間。

---
昨天當場務太累,連複習都沒了...

星期一, 3月 05, 2007

有關"序號"這回事

每個人都有過重灌繽紛的精采時代:)。

blueforest /* 淋雨是另外一種知道自己想法的方式 */ 說:
WIN98 ME的序號裝到都會背了
blueforest /* 淋雨是另外一種知道自己想法的方式 */ 說:
只要是會重灌的,我相信都經歷過這種時代
blueforest /* 淋雨是另外一種知道自己想法的方式 */ 說:
我背的是Windows 2000序號
Josh Ko 說:
XD
Josh Ko 說:
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
blueforest /* 淋雨是另外一種知道自己想法的方式 */ 說:
哇考~
Josh Ko 說:
Office 2000 的樣子 XD

星期日, 3月 04, 2007

寫ADT

有時候,寫簡單的ADT真的會感到厭煩...感覺上都在做同一件事,只是把名字換一換而己。

---
但是不寫也不能說你會..XD