星期日, 5月 25, 2008

戰略改變

聽從Josh的建議,一次專一解決一個程式,暫停分時多工模式

---
這對我也比較輕鬆

星期六, 5月 24, 2008

耐心

在什麼程式都很想寫的狀況下,寫程式得更具有耐心才行。

---
不過程式也有可能多到寫不完XD

星期四, 5月 22, 2008

OpenOffice 3.0 beta for mac

其實我一直是OpenOffice的愛好者,大概是因為他的跨平台性比起MS Office好了很多很多倍XD,3.0 beta脫離了x11,其實我也不知道是好是壞,但是執行起來還蠻穩定的,大部分不要太複雜的簡報都可以正常的觀看(隨機客的簡報看起來會變的非常慢XD),速度只能說差強人意,期待正式版嘍。

---
真是的一個很不錯的軟體。

閃光

最近不斷有人跟我反應說我和efang的blog太閃了,節錄某人對話如下

我一直很想看內文,不過旁邊那一塊太亮了,我都看不到

---
拍謝拍謝,我會改進XD

星期三, 5月 21, 2008

Windows Mobile 6 SDK 隨手筆記

由於完全沒有相關的開發經驗,所以其實去了是受益良多,一時之間也記不下來,我學新東西一向只著於兩點,一點是目的,一點是可用資源有那些。

Windows Mobile 6 Professional SDK應該安裝的有

  • Microsoft Visual Studio .net 2005
  • Visual Studio .net 2005 Service Pack 1
  • .net Framework v2.0 SP1
  • Microsoft ActiveSync 4.5
  • Microsoft Virtual PC 2007
  • Windows Mobile 6 SDK Professional
  • Windows Mobile 6 SDK Professional 6 - CHT Language Pack
  • Microsoft Device Emulator v2.0
  • Remote Display Control
  • (optional) WIndows Mobile Power Toy

列出來的參考書籍有
  • WIndows Mobile 平台應用與開發 by 劉彥博、胡硯、馬騏
  • SQL Server 2005行動裝置開發指南 ISBN: 9867198638
  • Microsoft Mobile Development Handbook ISBN: 0735623589
  • Microsoft .net Compact Framework ISBN: 0735617252 (以.net CF v1為底,觀念為主)
  • The Definitive Guide to the .net Compact Framework ISBN: 1590590953
  • .net Compact Framewrok Programming with C# ISBN : 0321174038

在Google中尋找有關Windows Mobile時,可以加入下列關鍵字

site: msdn2.microsoft.com inurl:library

如果想要看整個.net Compact Framework的概觀,可以

物件瀏覽器 -> 瀏覽 -> 編輯自訂元件集 -> 瀏覽 -> C:\Program Files\ Microsoft.NET\SDk\CompactFramwork\v2.0\WindowsCE\*.dll* 加入
然後
瀏覽 -> 自訂元件集 即可觀看所有compact framework的相關libarary

遠端工具操作介紹

  • Remote Zoom: 截取畫面
  • Remote Process Viewer: 遠端工具管理員
  • Remote Registry Editor: 遠端登錄檔編輯器
  • Remote File Viewer: 遠端檔案總管

如果有問題,可以至官方討論區討論: 微軟技術社群討論區 行動與嵌入式裝置開發或者去中國CSDN

C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\Diagnostics\
底下可以找尋相關的CHT的cab檔裝在裝置上,可以獲得較多的Exception資訊


---
好亂...Orz

星期一, 5月 19, 2008

重灌

在MacBook上分割Windows磁區失敗,可能整台Mac又要重灌了...Orz

---
很久沒有寫blog,這個竟然是第一篇...Orz

星期三, 5月 14, 2008

地圖


今天早上逛痴漢水球的blog,看到了這張地圖XD

---
我笑了XD

星期六, 5月 10, 2008

返家

六個禮拜沒有返家,頗有一種近鄉情卻的感覺...

---
前陣子還蠻想回家的。

星期五, 5月 09, 2008

遺憾

我有關學Computer Science的遺憾有很多,現在遇到 SmallPig老師,有時候還真的蠻想把一堆有關網路相關呈現技術搞懂的,這也是我所不會的一塊,有空應該是要專心花時間搞懂,所謂的文件,應該不只有排版的pdf,在網路上的呈現也是相當重要的一環,不過我卻在網路這一塊知之甚少,該是花時間的時候到了。

昨天看到Erlang的介紹,應該會抽點時間去了解這是什麼,不過看到另外一篇介紹,想不到竟然是functional programming language,這更讓我覺得有趣了XD

---
雜記文一篇

星期四, 5月 08, 2008

可樂

今天中華電信桃園分公司經理(聽說是很大的職位XD),因為報名參加了中華電信加值比賽,來到我們學校送禮卷,有參加就有獎XD,一個人拿到了400塊統一集團禮卷,可以在7-11, Starbucks, mister donut, 康是美, Coldstone(我聽eating介紹才知道XD),等等消費,算是蠻方便的,於是我跟efang說了。


yen3: 我拿到400禮卷耶~可以用在7-11 balabala
efang: 請客~
yen3: 好啊
efang: 我要喝可樂~
yen3: XD

之後又有對話如下


yen3: Clara和eating聯名推薦 ColdStone http://www.coldstone.com.tw
efang: 喔喔喔
yen3: 你會想去嗎
efang: 還好耶,我比較想喝可樂XD

---
這樣子可以喝好多好多可樂XD

聽說 FLOLAC'08


這樣子的blog頗有被Josh入侵的感覺,只剩一個禮拜了,有興趣的可以趕快報名,我想想我能做的只有這樣子吧,有興趣的就可以進去喔,因應節慶,調整成Josh送的桌面

---
雖然我也蠻想去但是我不能去XD

星期二, 5月 06, 2008

體會

我一直以為我得到別人很正向的reponse是一件很幸福的事,現在漸漸在理解,如果自己給需別人的想法越大,所得到的reponse也是成正比的,也就是說,在正常的狀況下,可以帶動人與人之間的氣氛。

---
不過這個問題需要再思考

睡過頭

睡過頭導致全部的事都超出預料,還沒有午餐可以吃....Orz

---
再過一個小時就可以吃飯了...

星期一, 5月 05, 2008

Page Rank

Josh Ko 升成4分,我升成2分,神奇的是,efang 升成1分XDXD

---
PageRank的家族關係嗎XD

星期日, 5月 04, 2008

搞笑

剛剛突然想到,為什麼要有std::find()和std::find_if()的分別,翻了一下書,就知道為什麼了XD


template <class InputIterator, class EqualityCompareable>
InputIterator find(InputIterator first, InputIterator last,
const EqualityComparaable& value);

template <class InputIterator, class Predicate>
InputIterator find_if(InputerIterator first, InputIterator last,
Preicate pred);

在還沒有具現化之前,兩個function都是三個argument,是分不出來的,看來沒有睡醒真的不是一件好事

---
快樂的生活快結束啦XD

Heap Sort v2

在Josh Ko的幫忙下,終於寫成可接受的heap.hpp了,現在可以試試了

---
終於要進入正題了嗎...XD

Inclusion Model

事實上是為了回覆問題這一篇,在經過Josh Ko幫忙之後,我在"C++ Templates全覽" "6-1 置入式模型(Inclusion Model)"找到答案,實際上,template code是不支援 separation compile,在p.63有提及

function template的定義並沒有具現化,為了具現化一個template,編譯器必需知道"以那一份定義式"以及"以那哪些template arguments"對它具現化。不幸的是這個例子中,這兩項資訊被分置於兩個分開編譯的檔案...

而接著又在下面提到

解決這個問題最常見方法是,把template定義式放到其宣告式所在的表頭檔,可以在xxx.hpp最後一行加入#include "xxx.cpp";,也可以用到該template的每一個.c檔案中#include "xxx.cpp", 第三種作法是完全丟開xxx.cpp,把宣告和定義全部放進xxx.hpp ... 這種template的組織法稱為"置入式模型(inclusion model)"

在文中有說明,如果使用了,事實上也會連結hpp中其他的碼,讓程式碼非常的大,也會讓編譯時間變慢,但是不得不否認,這是一個最不會帶來問題的方法,書有說明,我引用的非常多啦,在此就不描述了

---
在Josh Ko幫忙之下,讓自己渡過一個愉快的週末XD。


Macintosh-2:huffmanTree yen3$ g++ -o test.out test.cpp heap.hpp
ld: warning in heap.hpp, file is not of required architecture

雖然compile過了,但是還是對這行waring非常感冒,還是想想怎麼解決好了


在回覆中有提到,其實g++ -o test.out test.cpp就可以解決了。

點名

A.被點到名的在自己的部落格裡寫下自己的答案,然後去掉一個你最不喜歡的問題再補上一個你的問題,仍然組成20個問題,傳給其他8個人,列出其他8個需要回答問題的人的名字,還要到這8個人部落格里留言通知對方~~~你被點名了,被點名者不得拒絕回答問題,完成遊戲的人將會永遠得到大家的祝福.

B.這8個人要在自己的部落格裡註明是從哪裡接到的,並且在傳給其他8個人,讓遊戲繼續下去"不得回傳".被點名字的人將會得到大家的祝福,並且所有美好的願望都會在不久的將來實現

我是被efang點名的,點到就寫吧,雖然我有很多朋友寫blog,但是沒啥人點到我XD

************************************************

1.如果喜歡的人把你撲倒,你的反應是?
答: 應該不可能發生(笑)

2.下輩子的你(妳)想當什麼?
答: 狼

3.你最想去哪個地方?為什麼?
答: Google 總部,那邊一定存在很多高手,可以學到很多東西

4.最受不了自己哪個缺點?
答: 過於自信

5.如果有不開心的事情,你會怎麼辦?
答: 找efang、寫程式、睡覺

6.最害怕失去的東西?
答: efang

7.喜歡當女人還是男人?
答: 男人

8.最令你難忘的人,事,物
答:efang, programming, thinking

9.如果你有一億元,你會拿來怎麼用?
答:七成交給父母,三成交給efang

10.對一場無即而終得戀情你會複合嗎?
答: 不會,不追求逝去的想法。

11.如果被喜歡的人拒絕,怎麼辦?
答: 不追求,雖然令人傷心,但是就隨風而去

12.誰曾經做過令你感動的事,什麼事?
答:太多了,每個人都做過很多讓我很感動的事

13.目前你的心裡有沒有喜歡的人?
答: efang

14.你愛錢嗎?
答: 夠生活就好,其他的錢可以拿來買書。

15..現在最想要做的事?
答: 休息

16.你最希望達成的願望?
答: 與efang平靜的渡過一生,每天快樂的寫程式

17.跟情人的發展程度
答: excellent

18.對現在的生活滿意嗎? 為什麼?
答: 還不錯,如果我可以再睡多一點的話XD。

19. 現在最想要的東西?
答: 朋友回來一起做事

20.說出傳給你的人的優點和缺點各一
答: 優點:可以依靠 缺點:依靠成習慣

我的題目:
No thinking

點點點
Josh Ko(雖然知道不會寫,還是期待一下 XD)
這會讓我想到小世界原理,我就不點了。

---
我習慣把事情快速解決

星期六, 5月 03, 2008

問題

遇到了一個我覺得不會發生問題的問題。


Macintosh-2:huffmanTree yen3$ g++ -o test heap.o test2.o
Undefined symbols:
"void heap_sort<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >)", referenced from:
_main in test2.o
ld: symbol(s) not found
collect2: ld returned 1 exit status


---
克服中...Orz

休息

最近的我很閒嗎? 老實說也不會。

今早起來為了演算法作業裡面有提到的huffman tree實作,考慮使用heap-tree來實作,但是訪視自己所實作的heap-tree,實在是不盡人意,於是今天又重新利用Random Access Iterator的概念來實作,實作出來只能算差強人意,暫時把程式碼釋出,看看最近有沒有空,再把compare獨立成一個function object,讓程式碼的復用性更高。這也是一個蠻有趣的娛樂。

---
當然我還記得Huffman Code這回事XD。

星期五, 5月 02, 2008

合作

有很多事說穿了其實是一樣的東西。

我不否認我非常喜愛閱讀Design Patterns 和 Refactoring 之類的相關書籍,因為裡面提到的方法非常之吸引人,OO方法論是我非常早就接觸到的一件事物。不過在實際開發上,我鮮少用到這些東西,應該是說,有用到也只是皮毛而己。為什麼呢,說穿了很簡單,不要為了Patterns而Patterns,Refactoring也是。

我與人進行軟體開發時,也非常少用到這些我所喜愛的事物,我所認為的patterns,應該是程式寫到一半,腦袋上面突然有一個燈泡亮起來說,啊,這個地方可以這樣用,而不是,解決這個問題的方法,我們就用這個patterns吧,事實上書上提及的只是一個想法,鮮可以原封不動而直接套用的,這種機率非常低。而且更重要的是,我現在所寫的程式強度倒也沒有會用到,當然可以當作練習,不過強迫別人做這件事是非常奇怪的事。

我不否認我喜歡XeLaTeX這個排版語言,我也會四處與人推廣,但是一旦我與人合作寫文件時,我還是使用Word, Powerpoint來做為首選,XeLaTeX自己玩玩可以,但是沒有必要強迫別人跟自己一樣,當自己有興趣時,可以玩玩,甚至做大膽的嘗試都可以,但是與人合作時,應該以團隊都能達成的強度做為考量。就算整個團隊都會這些高度工程藝術了,也是得小心翼翼的使用,不太了解為什麼有些人可以成天開口閉口就OO,patterns。

但是有一件事還是很重要,就是可以推廣這些思考的存在,而不要讓自己思考時落入規格中,這些方法真的很漂亮,看看說不定會給自己另外的世界,但是如果真的硬要實作這些方法,我只能說。

招式是死的,人是活的

硬要用這些招式,恐怕只會逼死自己,一般狀況下大家都懂的已所不欲勿施於人,但是遇到這種狀況時,就忘了這件事,也是一個有趣的現象。

---
難得寫這個議題XD

星期三, 4月 30, 2008

生活

每天都把自己逼到很累...其實也不知道為什麼,工作是一種生活,而我就是實踐這種方式的人。其實也會有一點小失落,因為專題緣故,並不是我每天做的事都能對外釋出,所以我只能努力的做,然後期待專題結束,比照上次,把所寫的及所做過的東西釋放出來。

當然也有點對不起gb014388和snakexu,兩個人的生日我都沒空寫祝賀文了,在此還是得跟她們說生日快樂,有時候真的覺得自己這個身為朋友的不夠稱職,請大家多多擔待了。

其實寫作的另外一個好處是可以回顧自己的寫作軌跡,所以我也很喜歡看自己的blog,還好StatCounter不會計算我所造訪的次數,不然應該是大爆炸才是。我想我的人生如同我以前所說的,一切即劍,萬里一空。

不把自己的標準加諸於別人的身上,因為這就是我的生活。

---
但是感謝朋友加諸於我面對生活的動力。

早起

在經過很長一段時間睡眠不正常後,昨天正式回到十二點睡,已經很久沒有那麼早起過了

今早Mac OS更新時,看到一份期待已久的更新啊
---
我比較喜歡這種生活。

星期六, 4月 26, 2008

生活

聽從Clara的建議,讓自己放慢生活的腳步(其實我自己覺得我過的不快),有很多問題可以討論,我想等到過幾天再說吧。

今天藉由閱讀來放慢自己的生活腳步,於是我選擇"重構-改善既有的程式設計(Refactoring - Improving The Design of Existing Code)",在p.61 "間接層和重構(Indirection and Refactoring)" 文中提到

計算機科學是這樣一門科學:它相信所有問題都能藉由多一個間接層(indirection)來解決。 - Dennis DeBruler

看到時雖然驚訝,但是不失望,因為我在很早之前就對ycma提出了這樣子的想法,不過總覺得有很多需要思考的地方,但是這篇文補足不齊之,大都是物件導向軟體工程看法,ycma曾跟我提過,在硬體上多一層就會多很多麻煩,不過看這種書,就多多思考吧。

---
事實上,我不太知道如何休息,就讓閱讀取代休息吧。

星期五, 4月 25, 2008

最近

先對祥龍說聲抱歉,我晚一點才會寫生日文,真的是太忙了...

真正想要下筆的時候卻不知道要寫什麼,有時候唯一能做的事,就是讓自己埋頭於螢幕前努力工作,直至累趴,習慣了,很多事其實都一樣的。

---
C'est la vie

星期二, 4月 22, 2008

有關學習的兩三事

由於不怎麼念的下書,最近做的事又乏善可陳,只好寫點這樣子的文章來欺騙社會大眾XD

這兩天把Peopleware看完一次,頗有心驚的感覺,原來以前做對了很多事,但是也做錯不少,寫成文章有一個好處,讓你能夠不會再犯錯,也由於蠻感動這本書所寫的,想要買一本英文版回家K,但是天瓏說缺貨中,無妨,再等等看吧。

最近由於寫程式的關係,常常需要看相關資料,這部分的心得,我引用Jserv's blog: 對自己好一些:談技術手冊閱讀來作結,他寫的很好,我實在是不需要重寫一篇。沒有人可以否認,從Google上得到的資料相當的片段(不過能找到整個上課投影片也是一個不錯的選擇),如果自己手上沒有一本技術手冊,無法從該技術做一個全覽是一件相當可惜的事,除非只是即興寫作,抑或是應付了事,不然我覺得,擁有該領域的一本良好技術手冊,是相當必要的。

但是在學習時發現,現代人的心態,有時候習慣於補習班的教育,有人教最好,沒人教就跟老師橋,過度習慣別人給你資訊,如果能力不足,尚可原諒,如果志不在此,也可理解,但是天生就是要走一行飯的,實在是得把"看技術手冊"和"Googling"兩件事並列首位,而不是不會就問人,拖到會為止,這樣子顯得相當奇怪。我問人頂多問到keyword或者是該領域的技術手冊,剩下的自己來。通常這樣子的學習,幾個round下來,對於學習能力大有幫助,久而久之也習慣了這樣子做,方能讓自己成為獨立學習的人。有人問過我,為什麼人會產生如此的局面,我只能說,當人越來越懶的時候,是沒有理由的。

---
嚴肅快筆書寫

Big Eyes

最近終於有好事發生了。

---
Go!

工作環境


最近的工作環境為此,相當不錯,事實上我有對自己工作環境拍照的習慣,不過現在都用手機拍照比較多了,哈

星期一, 4月 21, 2008

學弟,有種

身為一個不成材的學長,我想對學弟說

雖然沒有做,你他媽的你真的很有種,以後我要叫你有guts的男人

---
CF

美麗

在接觸過那麼多programming language之後,到現在我還是感嘆於C/C++的美麗,精簡的語法建構一個又一個美麗主題,太漂亮了。

---
真想用C++開發出一個美麗的東西,會有機會的XD。

星期六, 4月 19, 2008

發現

最近自己的打字速度又比以前快上不少,連帶寫程式速度又變快了。

---
誰說壓力沒好處XD

星期五, 4月 18, 2008

utmpx

在大部分的linux下,是可以從"/var/run/utmp" 這個路徑得知現在使用這台伺服器的使用者資訊,資訊是開放任何人可讀,不過在Mac OS 10.5以後不支援這個檔案,而改採用NetBSD的utmpx,故資訊可從"/var/run/utmpx"這個檔案讀到。寫了一小段測試碼如下

#include <stdio.h>
#include <utmpx.h>
int main(){
struct utmpx utmpx_entry;
FILE* fp = fopen("/var/run/utmpx", "r");
while(fread(&utmpx_entry, sizeof(struct utmpx), 1, fp)>0){
printf("%s\t%s\t%s\n", utmpx_entry.ut_user, utmpx_entry.ut_id, utmpx_entry.ut_line);
}
return 0;
}

事實上我覺得使用起來沒什麼差別,不過細細比較utmp.h和utmpx.h之後,會發現struct utmpx記載了更多資訊,可能更符合現在的作業系統設計,畢竟現在的作業系統不是只有單純的command line了,而一個xwindow也是一個terminal,所以我覺得新增這些資訊還算蠻合理的。

---
事實上這篇重要性不大XD

期中考

一覺醒來與Clara說話,被提醒時發現,期中考近了...

---
做專題做到忘記期中考...Orz

星期四, 4月 17, 2008

測試

今天中午醒來,思考,如果unix system call都是C 寫成的,是否有辦法用class包起來呢,於是寫了一個小小的class測試一下。

class FileAttribute{
public:
FileAttribute(const char* dir, const char* file){
name = string(file);
path = string(dir) + "/" + name;
stat(path.c_str(), &buf);
};
FileAttribute(string& dir, string& file){
name = file;
path = dir + "/" + file;
stat(path.c_str(), &buf);
};
const char* ab_file_path(){ return path.c_str(); };
const char* file_name(){ return name.c_str(); };
bool is_file(){ return !S_ISDIR(buf.st_mode); };
bool is_dir(){ return !is_file(); };
unsigned int size(){ return buf.st_size; };
private:
string path;
string name;
struct stat buf;
};

看起來成效不錯,其實效率很差,多一層包裝,就要浪費掉很多時間在此包裝上,不過如果在發展大型程式時,還是有其包裝的必要。
---
我真無聊,不過我喜歡XD

星期三, 4月 16, 2008

耐心

在越忙碌時,又記得這兩個字的重要性,若無此個性,則無法完成任何事

---
最近是磨練的好時期。

星期二, 4月 15, 2008

簡單、複雜、思考與證明

這段文字很早很早之前就想寫了,不過總是沒有一個好的著力點,不過我得先聲明,我數學和英文都不好XD。

我朋友問過我一個問題,為什麼總是有人要把一個很簡單的問題變的很複雜。此外也有等價的問題,有人跟我說過,要證明1+1=2是數學家無聊做的出來的事。

先回答第二個問題,因為比較簡單,在普遍狀況下,1+1=2是成立的,問題,我們如何證明+這個元素存在,又如何證明兩者等價,這在高等微積分好像有解答(我不會也沒修過,不要問我XD)。而且證明1+1=2的人是Bertrand Russell和另外一個人,花了320頁證明,他是用邏輯證明的,千萬不要小看這個證明,這個證明讓數學與哲學有了連結。他是一個哲學家。數學家和哲學家並不無聊,為了讓整個理性的社會存在,他們可是花了不少的功夫。

那麼為什麼總是要把一個簡單的問題變成很複雜。好問題,這對我學英文時也造成不少的困擾,雖然我英文從來沒有好過。我在用英文的時候想過一個問題。為什麼不能用簡單的字,而是要學很多很複雜的字。(這或許造成我某程度懶惰不背單字的原因XD),在這些等價描述下,唯一要做的解釋就是...

嚴謹是一件非常重要的事。

人類之所以發明文字,發明思考方式,一切只是為了知識累積,讓後人可以站在先人的智慧上,做出更多的開展。人類的學習就像一個超高速齒輪一樣,剛開始會很慢很慢,到最後會越轉越快。於是,怎麼把知識做一個正確且快速的傳遞,變成一個很重要的事。於是乎,寫作要求嚴謹是一件很重要的事,那麼怎麼讓嚴謹做一個最好的呈現?

發明符號和語言變成相當重要,數學對於大部分的人可能落於算術這個部分,但是數學最迷人之處就是,如果你能夠用數學語言看到這個世界,很多事是垂手可得的,你用邏輯語言看懂了另外一個世界,就會發現,原來還有很多很多思考的方式。

不過最不幸的是,符號和語言是先人制定的,這兩件事往往成為門外漢(如我XD)學習最大的門檻,那麼為什麼要用最嚴謹的符號和語言來定義呢? 因為在知識的累積和展現上,不太能容許出錯或定義不明之處,這會讓承先啟後的人們顯的相當無助(發明人都做古時,去那問啊XD),然而這在一般的狀況下卻不是很大的問題,因為肯在某個領域學習的人,往往可以很快的適應。如果學的會這些東西,可以為自己打開一扇窗,快速的學習與探索自己想要學習的東西,可謂是相當的快樂。

而我呢,大概只會程式語言吧,只是剛好有所機會看到一些東西,算是蠻幸運的XD

---
因為幸運所以偷懶嗎XD

星期日, 4月 13, 2008

想寫點東西卻又不知道要寫些什麼...

---
Just that.

星期六, 4月 12, 2008

錯誤

當已知發生錯誤,總是在無法挽回的時候

---
我不是聰明人。

星期三, 4月 09, 2008

便利

前幾天Mac OS X被我搞的並不是那麼穩定,所以今日重灌,還蠻便利的,選擇清除重新安裝後,再用TimeMachine復原資料,但是留下一個乾淨的系統,有些command line底下的東西要重灌,不過正符合我意,因為我前陣子一直在測試,重灌過程相當愉快。

---
在這方面Apple做的真的是蠻不錯的。

星期一, 4月 07, 2008

有感

這陣子作業著實不少,不過都是小作業居多就是了,昨天使用Visual Studio .net 2008 Team Suite 的測試程式是否正確否,簡單而言,就是存在一個function,給予一個input和 excepted output,而軟體會自行幫你比較程式輸出結果是否正確(不過只有C#有...Orz),這對大型專案應該是一個蠻有用的工具。所以我寫了一個簡單的測試碼


public static int[] BubbleSort(int[] u){
/* ... */
return u;
}

之後VS所產生的測試碼片段如下

public void BubbleSortTest()
{
int[] u = { 3, 5, 2, 4, 1 }; // TODO: 初始化為適當值,此行為自行輸入
int[] expected = {1, 2, 3, 4, 5}; // TODO: 初始化為適當值,此行為自行輸入
int[] actual;
actual = Program.CountingSort(u);
Assert.AreEqual(expected, actual);
//Assert.Inconclusive("驗證這個測試方法的正確性。");
}

很可惜的,這個測試結果會告訴你,永遠是錯的,expected 永遠不會等於actual,我起初還蠻天真的認為說應該會等於,其實不會,因為AreEqual對於此型別的比較等於C++中的int* == int*,只要兩個存在指向不同記憶體之處,其值就不可能相等,而我移到AreEqual的程式碼定義處一看,哇,什麼都有,似乎沒有針對這個狀況所解決的方案。其實這算是一個小問題,而C#也支援Generic,稍微改寫一下即可支援,但是這樣子的問題出現在一個這樣子的軟體上,似乎不太對勁,當然,也可以跟我說我的使用方法不當,或許我真的不太會用這套軟體吧。


C#是MS發展算蠻成功的語言,雖然抄襲自Java,隨後又用了一堆C++的概念,導致我遇到錯誤時,兩個語言的思維都套上來試試看,大部分的問題都會有解,但是很難免的都遇到現存高階語言存在的一個問題,發展的過於龐大而難以維護(我得說C++算漂亮的,以發展library來降低整體複雜度),現在的C#,沒有VS.net就很難開發,而這個語言沒有一個統一的思維,也是一個很有趣的問題。


算了,如果用以前MS的東西恐怕會更糟。



---
發個牢騷XD

星期六, 4月 05, 2008

學習

現在在看php,對我而言,php真的是一個很歡樂的語言,可以用php做很多事XD

---
只是沒有compiler嗎 XD

I am Legend

我大概跟一般人相反,我只有看過小說沒有看過電影XD 或許回校時會借來看看。

文學和電影最大的不同是,由於電影要給大家看,不太能敘造太多悲劇或結局,而且文學的美感,轉換成影片時會有一定量的失真,所以因應這種媒體的轉換,改寫是必然的。

這本書是暢銷書,跟電影有很大的關係,不過我得說,除了這篇小說,後面所書寫的小說就略嫌老套,抑或是說,這本書出來甚久,在當今的時代,這樣子的寫作方法已經非常常見了。

等電影看完再一次寫心得吧

---
寫這篇是騙文章數的嗎XD

星期五, 4月 04, 2008

返家

隔了一個月才回家,下次回家不知道什麼時候。

---
睡了五個小時XD

星期四, 4月 03, 2008

忙碌

好像更忙了,不過也無妨,尚未火力全開

---
事實上也很難火力全開XD

星期二, 4月 01, 2008

April Fool's Day

我竟然會感到害怕,平常壞事做太多嗎XD

---
到現在才知道這是愚人節的英文名字XD

星期日, 3月 30, 2008

最近

催生文件告一段落之後,接下來便是開始構築整個程式架構的時候了,不過今天不想動工,於是便有偷懶的一天。其實也稱不上偷懶,只能說是可以開心做著自己的事。

喜歡的書Advanced Programming in the UNIX Environment 2/e 終於到了自己手上,雖然ycma說,每個系統上面的system library有點不同,還是用man查詢相關資訊會比較好,我不反對,不過就對於一個初學者的自己而言,我想還是有必要把書想翻的翻一翻,對於整個system library有個概觀是比較好一點的,雖然書也厚了一點就是(笑)。

最近也必需得習慣Visual Studio .net 2005,我想還是會有這一天的到來,上課會用到,專題也會用到,我總是死命的在拖,不要用到這一套軟體,不過還是有一天會用到就是了,遇到了就好好學,然後學完了再跳回bsd的懷抱XD

念書的習慣慢慢的在開始,會有進展的。

---
超高速齒輪

初賽文件

建立起一個很好的團隊,初賽文件完工了,讓大家都很滿意的文件:)。

---
也同時也看的出來自己的弱點XD。

星期五, 3月 28, 2008

小技巧

在Word中要插入背景浮水印是一件具有技巧的是,預設的方法為
格式 -> 背景 -> 列印浮水印
這方法不錯,可以快速插入,但是可以調的東西不多,我想到的方法是
檢視 -> 頁首/ 頁尾
插入圖片 -> 設定圖片格式 -> 配置 -> 文字在後

此方法相當靈活,圖片也隨你擺放,算是蠻不錯的一個方法。

---
不知道拿LaTeX做會怎麼樣...Orz

星期四, 3月 27, 2008

排版

終於排出一個自己滿意的基本版面,接下來就交給eating了,我不是專業:)

---
還有一堆說明沒打XD

星期二, 3月 25, 2008

Text Editor

前天去拜訪朋友,結果我把MacBook的變壓器忘記在朋友家,導致我現在只能乖乖的活在Windows的世界中,感到非常不習慣,結果我還是比較習慣ubuntu XD

這幾天也由於初稿完工,可以稍微喘息一下XD 也由於這段日子以來,活在unix-like底下的時間遠超過Windows的時間,text editor著實用了不少,或許,對我這種人而言,一個好的text editor遠比一個能動的word更重要,因為我絕大部分時間寫的東西都是純文字檔XD

Windows下本來的首選是ConTEXT,經由學長的推薦PSPad會更好,文字編輯器大都是大同小異,但是把PSPad稍微調整一下,可以取代大部分的Dev C++的功能,我覺得Dev C++最重要的功能就是單檔編譯,這對寫小程式非常方便,當然不用說,他可以拿來寫其他程式了,最重要的是,支援ftp server存取寫入檔案,雖然沒有支援sftp是一件蠻遺憾的事,不過對於現在的我而言似乎還好。

Mac OSX 下的文字編輯器倒是沒有那麼強的,倒是有人寫過討論text.editor.addicts.txt,不過小而美的文字編輯器倒是不少,我目前所使用的是Smultron ,雖然我不怎麼喜歡這個程式的圖案,不過我真的得說,還不錯用啦(或許我本來需求就少了XD)

Linux下的文字編輯器,我得我說不常用,學長的建議是wine + PSPad,剛剛試過,效果不錯,不過軟體的語言選English會比較好,選ChineseBig5,會有破字的問題,不過也無妨,用久了應該會很習慣,不然一般狀況下我就用預訂的text editor就好了,GNOME有gedit,KDE底下有Kate,畢竟到linux底下,command line我還蠻習慣的XD。

不過command line下的文字編輯器,我還是偏好vim,雖然很多人都會罵說這套軟體不好用,而它也的確不好用XD,不過我覺得至少比vi好很多XD,學長的建議是使用joe,為什麼我要用vim,只是習慣了,而且真的蠻多地方都會有的,用過PE2,我真的覺得vim還不錯用,不過還沒學的人,可以考慮試試看joe,應該不錯用吧XD?

不過還是很斤斤計較Text Editor的人,可以考慮看一下這個Wikipedia: Comparison of text editors 應該會有一些有趣的想法產生吧。

不過Text Editor是個工具,重點是我們利用他創造了什麼,雖然挑一個好工具也是蠻重要的一件事~XD

---
這篇寫起來好像軟體介紹XD

星期五, 3月 21, 2008

初稿

v2完成了...

算是可以小小休息一下。

---
接下來只剩細節的修改了。

約約相欠

稿債何時了...Orz

星期三, 3月 19, 2008

生病

我的胃實在是不怎麼好,至少在吃學校自助餐這件事上是如此(笑)。

晚上十一點多莫名胃痛,直至睡著,睡醒之後發現全身無力,也不怎麼樣,會想起一些事,我朋友都笑罵我說,明明知道自己不能吃學校自助餐,還吃,這樣能怪誰。

是不能怪誰,但是很感謝朋友的關心,fire7617和gb014388甚至出去買飯煮,好感動捏...T__T

相信我一定很快就會沒有事的,不然我快要稿債纏身了,我不要有寫不完的稿啊...Orz

---
呵,efang也不要太擔心喔。

星期二, 3月 18, 2008

俗語

硬碟容量決定宅的力量XD

---
320 + 160 +160 + 120 + 120 + 2 + 1 + 0.5 XD

星期一, 3月 17, 2008

簡單講解

作者 yen3 (yen3) 站內 CGUCSIE99
標題 [分享] 程設會- Introduction to UVa Online-Judge
時間 2008/03/17 Mon 23:31:53

【名稱】 Introduction to UVa Online-Judge

【時間】 2008/03/20 6:00~8:00 PM

【地點】 資工系系上會議室

【說明】 yen3

【對象】 除程設會成員外,歡迎大家參加

【說明】 事實上這是程設會第一次公開講演,希望能夠帶一連串的講解,
讓大家更了解有關Computer Science的種種。

如果有下完課後不知道該拿什麼程式來自我練習,還是說對自己
程式設計能力想要多加磨練的人,不妨來聽聽這堂課,UVa Onl-
ing Judge是一個線上評量程式系統,可以將自己撰寫的程式碼
上傳上去測試自己是否能對,希望能藉由這次介紹,讓大家多多
利用交流。

---
真想在下面補註,其實我講的很搞笑,現場還有放送XD

星期六, 3月 15, 2008

簡報

看起來很簡單,做起來很麻煩...orz

整合

比想像中的還要困難,毫無頭緒...Orz

----
以後會更恐怖...Orz

星期五, 3月 14, 2008

無狀態

聽來聽去,我還是非常的喜歡這首歌,故重po


無狀態 張懸 詞曲:張懸

  我喜歡永恆的短暫
  化主動為被動的昏暗
  所有公允的景觀之中 我都不存在

  我喜歡邂逅的對白 抹有某部電影的光采
  你要我給的,應該也如此的
  是這答案

  不要把美好的故事留下來
  不去制約 被制約 沒有習慣
  我喜歡獨白勝過眾人的綵排

  不要讓眼淚成為生活的客串
  不去制約 被制約 等待遺憾
  我酷嗜孤獨的愛

  我酷嗜倔強的愛

---
不去制約 被制約 沒有習慣

醒來

睡不著,於是醒著

---
嗯,沒事


06:05AM 這種時間才能發現打呼聲此起彼落,蠻有趣的XD

星期四, 3月 13, 2008

寫文件哲學

我現在的寫文件軟體哲學就是,如果只是單純撰寫,搞個純文字軟體就好,負擔輕,能不要開Word就不要開XD

Word是一個有點缺陷的排版軟體,但是排中文還算方便就是了,而XeLaTeX的話,時間沒有上限則是完美之選。

---
不過與人合作時選前者比較好XD

工程師性格

今天eating與我說,我過度強調"工程師性格"這幾個字,不甚好,也對,現在開始改進。

---
不過倒是很多我覺得很多很像工程師的老師XD

星期三, 3月 12, 2008

MacPorts

搞了很久的OpenSource軟體才知道MacPorts這個軟體很重要。

顧名思義,用相同FreeBSD思維的方式,提供給Mac OSX 下可以快速且順利安裝OpenSource的方式,而DarwinPort是早期的名字。目前出到1.6 (Leopard, Universe),而官方網站提供了約4500個軟體套件的相關說明。安裝方式很簡單,只需要找到package name,在command line(終端機)下輸入(這邊以安裝boost為例)sudo port intall boost,如果想要知道MacPorts有沒有更新,就輸入sudo port -d selfupdate

若想要更新已安裝的軟體則 sudo port -d selfupdate
sudo port upgrade installed
就可以把安裝的更新了。



結果我搞了很久的apache, mysql, php5 瞬間被解決,gocr也有解,算的上是相當方便XD。

---
在還沒有找到之前我都乖乖的重新編譯後安裝XD

星期二, 3月 11, 2008

準備

應Josh Ko之邀(還是說我死賴皮XD),回彰中展開一次教學,時間為三個小時,題目讓我自己選,相當的有彈性,本來在Generic Programming和Unix Programming中游移,最終決定為前者,由於是給高中生的教學,所以應該不太會太難,目前Slide準備大綱如下。

  • Function Overloading - 簡單的開始
  • Abstract Data Type - 正式的開始
  • Function Template - 來一點有趣的
  • Class Template - 痛苦的開始
  • C++ Standard Template Library - 藝術品般的傑作
  • Generic Programming - OOP對稱之紅花綠葉


暫時想到這樣子的大綱,隨時可以再變動,不過這簡報大概要準備一個月吧,最近非常忙...Orz

---
還算是愉快的準備XD

早起

今天七點就起床了,早早就來了實驗室,頗有睡的越準時就睡的越少的趨勢。

---
或許這才是最省時間XD

星期一, 3月 10, 2008

自清

呃,看到Jserv留言,最近花了一點時間在看他的blog,相較之下,我頗有浪費生命的感覺,哈哈

我不是一個頂認真的人,頂多只是偶爾閒閒沒事看看書,事實上要正視自己能力不強這件事,讀了一點書,程式卻寫沒有半滴,作業系統課程又放掉,剛好對FreeBSD有興趣,而Jserv又開了一堂課,我從從這裡開始,一步步的研究FreeBSD。

事實上我自己很清楚,我沒寫過什麼很大的程式。

因為這樣,所以我才會努力的準備比賽,單一程式語言寫的太久總是會有一個問題,如何整合多個元件,這就是我這次比賽中要學到的,不要每一次造輪子是真的,但是要怎麼把既有的輪子裝好,也是一個需要學習的課題。

所以,持續前進,如果我真的看完這些書,也應該可以寫出相對應的文章才是,事實上我並沒有,呵,所以某部分的呈現事實是,我必需再努力。

彰中電研社(CHCRC),是我生涯中唯一加入過的社團(到大學一個也無XD),經過一番波折,擔任了第四屆社長兼硬體組教學長,而Josh和pigtail分別擔任了程設組教學長,分別在台大資工和師大資工,而bluegmn擔任了網頁組教學長,現在在淡大資管。到現在都有在聯絡(得感謝網路的進步)。從這從我學到了很多,這對我而言是一個很長的回憶。有空再提吧

---
為什麼會提到CHCRC,想到我就提了一下,沒有什麼想法。


pigtail昨日跟我提及說,自己愧對程設教學長的職位,他還記得自己是公關長,但是我不這麼認為,能力不是唯一決定的因素,認真做的也是很重要的,況且,他的能力也是真的不錯的(笑)

星期日, 3月 09, 2008

錯誤

自己總是過於衝動嗎...Orz

---
每次都是事後...真不喜歡這樣子的自己。

有感

看著efang玩ubuntu linux,我決定,我還是玩....FreeBSD好了,我不要沒事每天都要搞Kernel和library不一樣時的痛苦,而且Mac OSX也是BSD Kernel,一個名叫Darwin的Kernel,查了資料才發現原來Apple有釋出source code。不過FreeBSD的相對中文資料也是比較少,沒關係,看英文也不錯,最近感覺到自己的英文退步到一個鳥程度XD。

多多吸收新東西總是好的。

---
雖然這很花時間XD

逛逛

今天早起逛到這個,看到

Orz,我節錄一下我和朋友的對話XD

blueforest /* Dear efang, Happy Birthday */: 我一直在想,這一篇會不會不像是我寫的blog
[Eighteen] ↗(放空)↙: 不然你可以把efang這個字改成Computer Science
[Eighteen] ↗(放空)↙: 這樣就符合你的風格了
blueforest /* Dear efang, Happy Birthday */: XD
blueforest /* Dear efang, Happy Birthday */: 我的風格這麼糟啊XD
[Eighteen] ↗(放空)↙: 是啊XD

比起向上快變成reserch blog,我的blog會變的怎麼樣呢?

---
不怎麼技術的技術blog ?XD

星期六, 3月 08, 2008

極限

在昨天早上確定題目之後,傍晚返家,得知efang玩ubuntu玩的很高興,事實上我還蠻關心她玩的怎麼樣的,因為在還沒受到MS的深刻影響時,多多玩OpenSource的東西總是好的,而且可以做一些觀察。

看到Josh從英國寄回來的明信片,看到時大為感動,不過我得為自己辯解一下,我可是什麼都沒有做,哈,anyway,還是很感謝(笑)。

回來之後感到極度疲累,八點一睡到現在,家族有事得忙碌,習慣了就好,回學校的時候,得要開始寫文件了,三個禮拜的題目折磨期終於結束了,希望接下來會更好,因為想題目真的很難訂時程表,接下來的時間進度真的比較好訂了。

回家找到兩本FreeBSD的書,我想我會帶著北上,這是我下一個想要深刻了解的作業系統。

---
有正課要上,我不會忘記XD

星期四, 3月 06, 2008

演講:快快樂樂學 GNU Debugger (gdb) Part I + II [台北]

難得我會用那麼長的標題(笑)

anyway,這是我從主講者Jserv處所看到的資訊報名處 節錄資訊如下


活動說明:
有鑑於一月份於SA@Tainan舉辦的「快快樂樂學 GNU Debugger」造成的狂響,
以及北部學員的聲聲呼喚,感謝Jserv講師的撥冗及豐富的教材,
將於三月下旬帶給大家一整天的精華分享,機會不再,別錯過囉。

簡介:延續一月份舉辦的「快快樂樂學 GNU Debugger」,
將之前對 Debugging (偵錯分析)所建立的概念與初體驗作更進一步的擴展,
以「作中學」途徑探討實務與概念應用。
使用情境與案例分析。

議程主題:
. 實用 GDB 指令
. macro 與技巧
. 當 GDB 遇上 C/C++:具體的範例
. (選擇性) Eclipse CDT 整合

時間:
2008年03月 22 日 (星期六)
   Part I 回顧 => 10:30-12:00,
Part II => 14:00-17:00

地點:台灣科技大學-國際大樓(IB) 401 教室
   基隆路大門進來右手邊第一棟大樓
   台北市基隆路4段43號.

費用: 0 -

地理位置/交通路線:
http://www3.ntust.edu.tw/front/bin/ptlist.phtml?Category=16
http://140.118.31.155/campus_guide/welcome.aspx

活動報名網址:http://registrano.com/events/sataipei200803


參考資訊:
. GDB: The GNU Project Debugger
http://sources.redhat.com/gdb/
. 快快樂樂學 GNU Debugger (gdb) Part I 資料:
http://blog.linux.org.tw/~jserv/archives/001958.html

講師簡介:Jim Huang (黃敬群 / "jserv"),熱血工讀生,
閒暇時投入新酷音計畫、Free Java、GNU GCC、X Window System,以及相關自由軟體的開發工作。
website: http://jserv.sayya.org/
blog: http://blog.linux.org.tw/jserv/

講師特別交代之注意事項:
1. 本議程基於知識共享之原則,提供免費教育訓練,但僅限於 x86 硬體平台,
若有 ARM 與 MIPS 平台需求者,請進一步聯繫講者
2. 本議程在台北與台南各有一場
3. 事先提交問題,可優先解決與討論
4. 歡迎招待當地名產,或廣結善緣


---
難得我會全文轉貼XD

星期三, 3月 05, 2008

上課

在題目有個初步想法之後,早上醒來頗冷,不過有個空閒可以記錄一下自己的想法也是不錯,或許暫時沒有辦法發什麼技術文了,最近做的事都不怎麼技術(笑)。

這學期修的課都偏苦幹實幹型,也就是說,班上會較少修這種課,其中最讓我感興趣的是Unix Programing,馬詠程(ycma)老師是第一次上課,上課頗有交大的風格,不過我很習慣,cllee也是交大畢業的XD,還有另外一堂是Web Service Programming,授課老師為SmallPig,這兩堂課都以寫程式為主,還有Introduction to Embedded System,授課老師為wyshieh,都是偏實作類的課程,這些課程或許也是少數讓我有機會逃離MS的機會,其實MS做的並不差,這我了解,但是還是會很想在unix-like之類開發程式,不過自己有種體悟,電腦會存在,但是上網的唯一媒介不再是電腦了,但是也有一個問題,端看自己肯網路控制到什麼程度了。

在sidebar新增兩項,分別為Google Redaer和Twitter,Google Reader連結為我的RSS訂閱分享,簡單而言,我在閱讀他人blog文章時,可按分享,就會自動匯集至此處,但是可以設定的事物極少(接近不能設定),所以暫時為測試用途,Twitter的話為一種心情亂寫吧,或許雜記也說不定,不過還是會保持在No title上的一行文風格,我很喜歡這樣子的書寫方式,每篇文章都很長對於我自己是不小的負擔,偶爾我也想要有偷懶的機會XD。

事實上一直很想轉換自己的寫作為搞笑風格,無奈不怎麼成功,甚至有耍冷風格,也想在文章中加入點髒話之類的,可是只要一聽音樂,一到寫作的心情,整個人就只能寫出這樣子的東西,想想也是蠻有趣的,不過很肯定,沒有技術,我還是會快樂的寫作下去,刷姊跟我說過,寫作的人不太需要社會性的分數。非技術文一發多,事實上也不是那麼care這一堆有的沒有的事了。

---
黑眼圈, 陳綺貞

星期二, 3月 04, 2008

躺在你的衣櫃

長期習慣聽著音樂生活,有時候蠻不習慣讓別人知道我在聽什麼音樂,因為這或多或少會洩漏出我現在的情緒。前幾天efang推薦了 躺在你的衣櫃, 陳綺貞, 吉他手

efang的描述是,這首歌的音樂沒有侵略性,在做事情的時候並不會被音樂吸走,可以很享受這個音樂,我聽了三次才有這個感覺,不過我也不準,我連聽Linkin Park都可以專心做事XD 所以應該不怎麼準吧,不過可以聽聽看。

躺在你的衣櫃(Guitar)
詞/曲:陳綺貞

前奏:DA LA LA DA LA LA DA LA LA DA LA

你的毛衣跟著我回家了 我把它擺在我的房間
它曾經陪你走過幾條街 它曾經陪你喝了好幾杯
冰的咖啡 陪你遠走高飛
拍照留念 也曾經靜靜的躺在你的衣櫃

你的毛衣跟著我回家了 我把它擺在我的房間
它這樣覆蓋了我的冬天 它就要刺痛了我最敏銳
愛的幻覺 陪你遠走高飛
拍照留念 天熱了靜靜的躺在你的衣櫃

我的冬天 就要來了 我的冬天 就要來了

你的身體跟著我回家了 我把它擺在我的房間
它曾經被你展示借給誰 它現在靜靜的躺在我的衣櫃
天熱了靜靜的躺在我的衣櫃

我的冬天 就要來了 我的冬天 我的冬天

----
躺著睡覺不錯啊XD

delete

今日meeting時,我跟cllee提及如下對話

efang: 你最近都在做什麼呢?
yen3: 想題目讓老師刪除

聽完之後。

cllee: 不要把我說的都給你挫折,很罪過XD
Clara: 中肯XD

---
這真不知道是中肯誰XD

Begin

終於開始了

cllee說過 It all starts here.

----
Linkin Park - In the end.

星期日, 3月 02, 2008

撞牆

Josh曾經與我聊過,一個理論不通的話,就像一道牆,多撞幾下就通了,雖然會痛總是有個好結果,現在的我是

連牆在那裡都不知道...

---
有牆可以撞真好...Orz

星期六, 3月 01, 2008

頭痛

腦袋有空掉的感覺

---
可是還要想東西...Orz

星期五, 2月 29, 2008

偷懶

好久沒有寫blog了,原因,想偷懶XD 不過昨天都破功了,所以今天索性上來寫寫吧。

首先,我用起了Google Reader + igoogle 工具,我現在可以非常快速的使用RSS特性來閱讀文章,當然,會失去一些版面之美,也無妨,遇到喜歡的網頁再衝進去就好了。RSS Reader我知道非常久了,但是懶的去用。最重要的原因,我覺得不怎麼好用XD 真不知道自己的堅持是那裡來的XD 改用之後,上網閒逛的時間少了非常非常多,不過有時候還是會流連別人的blog一整夜。

我習慣,也喜歡看一個人的寫作軌跡。

再來,我最近發現,我使用MSN+Skype的時間減少了非常多,可能大部分是我找人聊天比較多,而現在我沒什麼時間找別人聊天(笑),或者是大家都年事漸長,沒空理我XD 有空我再我用即時通訊聊天的經驗寫寫好了XD。

再來,最近對於內鎖效應感觸非常深,Josh Ko介紹給我的,但是英文名詞我已經忘了,嘗試在wiki上打lock-in effect,結果沒找到XD。內鎖效應泛指人害怕面對新的事物而寧願保持現況,如果肯突破會有非常大的改變與進步。我剛剛提的RSS Reader就是一個範,而從注音轉換到嘸蝦米也是一個很經典的例子。但是也不能說,肯突破現狀的改變就是好的,因為一旦突破,重新學習的成本是否會帶來長久的效益呢,這不一定那麼好評估。

以寫blog這件事而言,我嘗試換版面,因為現在的版面真的非常簡單,於是我花了一個晚上試了三欄式版面,發現不甚滿意又改回來了。我還是比較喜歡簡單而讓閱讀的人沒有壓力的風格,一個版面塞了太多東西只會失焦而己。但是我不後悔這個晚上的嘗試。

有勇氣改變現況做更好的事也是不錯的。

保持不斷的學習,這件事似乎變的很重要,還是蠻感謝Josh,他說的內鎖效應,讓我有勇氣面對許多我本來不想改變的事物。還年輕的時候,多多改變總是好的。

---
平靜的生活。

星期四, 2月 28, 2008

發現


原來Google Picasa有這樣子的功能啊

原圖XD

---
還是email通知XD

星期二, 2月 26, 2008

要看的文件會不會太多了...Orz

---
算了,繼續看XD

星期五, 2月 22, 2008

有感

昨日經由Clara介紹,聽了王若琳的音樂,雖然平淡無奇,但是蠻有慵懶的感覺,聽起來還不錯。

但是這會讓我想到,由於我對整個社會的不了解,所以至多只能做一些猜測,這些音樂的出現,是從陳綺貞、張懸開始的。當然,查到的資料是說王若琳的父親是王治平,但是我實在是不知道他是誰。不過還是得說,打造一個非主流歌手的成本非常低,不過我本身非常樂見這樣子的狀況發生,畢竟台灣流行歌手我早已不抱希望(笑),常常看見說某個藝人花了多少錢打造了一首MV,花了多少錢在宣傳預算上,但是很少看到花了多少精神在把一首歌做好。

唱片的本質就是唱片,而不是附加於其上的價值。

從張懸、陳綺貞、蘇打綠到魏如瑄(前自然捲主唱)甚至到現在的王若琳,際遇各有不同,不過我得說,張懸和陳綺貞,要塑造成這樣子歌手的隱形成本是非常高的,張懸唱了Live House五年,陳綺貞在師大夜市賣過自己的唱片,各有自己對音樂的堅持。這些才是一般歌手不會付出的成本。張懸唱了Live House五年,勢必能為自己塑造一個市場區隔,當然,她自己本人有沒有想過,我不知道(不過我覺得照張懸的個性,沒有XDXD),當然得說,唱歌的人何其多,歌唱的再好也需要際遇,我想,這就不是我所能了解的。

---
身為一個聽眾能做的事就是好好聽歌(笑)。

星期四, 2月 21, 2008

解釋

昨天在逛學弟blog寫筆記時,一方面還蠻高興的,有認真看書,但是一方面也看到讓人覺得奇怪的錯誤XD
vector<int>::iterator mid = (ivec.begin()+ ivec.size())/ 2 ; // error!

簡單一點來說,學弟並不是很了解指標運算是什麼XD,算了。先來說明正式一點的原因,第一個最重要的原因就是,iterator並不支援operator overloading "/",在此算式中,由於使用了(),使得優先權較高先執行,operator+沒有問題,但是operator/ 就會變成undefined。

iterator支援operator+ 嗎? iterator共有5種concepts,分別是input iterator, output iterator, forward iterator, bidirectional iterator, random access iterator。應該要花時間把這幾種了解,而利用type traits實作advanced,是一個值得探討的問題。

就算回到C語言的指標運算,上述的算式也不是對的XD,我們稍微轉化一下成一般的狀況(使用陣列)。


const int N=10;
int u[N];
int* mid = (u+N)/2;

上述的程式碼編譯是一定會過的一定不會過的,但是通常得到的不是你想要的答案,想想為什麼呢?

為什麼不會過,看一下compiler給的message
invalid operands of types `int*' and `int' to binary `operator/'

指標運算支援前進或後退,但是不支援其他運算,顯然現在的type checking遠比以前好多了,我寫這類東西時,還是多多思考比較好。

---
寫解答的人一定很偉大...Orz

星期三, 2月 20, 2008

母親

很多事的想法,社會上的人物是比不上我的母親的。

雖然我的母親位於傳統觀念中成長,但是生活有什麼疑問,我傾向詢問我的母親。因為她擁有著比大多數人還要來的好的智慧與習慣面對問題。長期安靜生活告訴我一個生活原則。

少欲知足。

現在的社會,很容易陷入一種資訊焦慮,總擔心自己看到的聽到的不夠多,事實上,我們也不需要這麼多的資訊才活的下來,在材與不材之間,扮演好自己的角色,當然無需妄自菲薄,生活其實很簡單。不過在母親身上,我幾乎看不到些事,安靜的過生活,就是一種喜悅。

---
思考與生活。

星期二, 2月 19, 2008

好玩的Google Trends

前幾天在朱學恆的路西法地獄中看到了有關Google Trends的文章。所謂的Google Trends就是提供一個模糊的相對搜尋趨勢。

來截一些有趣的圖XD

Pic01 (馬英九 vs. 謝長廷),在路西法地獄有啦,我只是稍微更新一下XD


Pic02 (馬英九 vs. 謝長廷 vs. 陳冠希),只要是鄉民都會知道的威力XD


Pic03 (電機 vs. 資工),讓人傷心的一張圖XD


Pic04 (電機 vs. 資工 vs. 123),123大勝XD


Pic05 (幹 vs. 靠 vs. 操 vs. 硍),髒話使用率XD


---
博君一笑XD

閒聊linux與Freebsd

事實上我是一個蠻關心這兩個作業系統的初學者,但是由於自身經驗和能力不足,有時候會有不得其門而入的感覺。

事實上在linux上寫程式,雖然有gcc可以寫,但是一旦寫到應用程式與系統程式,對我而言,不得其門而入,問題很多,最重要的是,我實在是不太會找到切入的點,當然,這應該是我自身的問題,我看書寫程式的時間比較多。

不過昨日與ycfu閒聊,他在linux和freebsd上開發軟體是非常有心得的。他大概跟我說明了linux和FreeBSD的現況,兩者皆為Open Source,但是授權狀況有很大的不同,詳情請看這裡但是簡單而言,還蠻好分辨的(往下看,有註解)。

顯然最自由的是BSD License,於是很多人喜歡使用,包括最有名的Mac OS,ycfu跟我說,Mac OSX只是把FreeBSD包裝的很好而己XD,事實上我不知道,因為我不甚了解,但是MacOS確實以FreeBSD為基礎進行開發,原因有二,第一,FreeBSD是以穩定為前提進行開發,第二,沒有授權問題,思科的router有一個名叫IOS的OS,有hacker無聊進去一看,發現以BSD 核心進行開發的。

若談到軟體撰寫,事實上在linux是一個很大的問題,linux 的 kernel 與 library 是分開的,而且基於自由,kernel 會載入什麼 module 也是不甚清楚的,如果要撰寫程式,在每家的linux中,portable 非常低,這是一個基於自由的非戰之罪,當然,我雖然喜歡OpenSource,但是在FreeBSD上開發卻沒有這個問題,因為kernel + library皆由有同一個團隊維護,所以非常穩定,不過最顯然的缺點是,驅動程式支援相對於linux是非常老舊的(沒人寫是最重要的原因XD)。

但是不得不說GNU GPL,我覺得是一個蠻讓我覺得不舒服的制度(雖然很多人不鳥他XD),GPL 不能說是自由的條款,BSD License 才是,一個人要不要開放自己所撰寫的程式碼,應由他自己決定,GPL卻是說,你若用到就得開放,深入了解,我只能說,GNU不是傳教士就是海盜,這會讓我想到一個故事。

居禮夫婦當初發現鐳的時候放棄其專利,為了造福人群,此舉當然可以讓相關應用快速被發展開來,而也不要求任何回饋。但是居禮夫婦使用類似GPL的協定的話,以後相關的研究專利都得開放,這樣子的科技似乎不會發展那麼快XD,但是使用BSD License的話(的確很像居禮夫人原本的作法),自由取用,那麼到底那個license比較好,見仁見智。當然會有人打著自由口號做壞事,不過我得說,尊重每個人的自由是很重要的。

自由是完全的,而不是強制性。

說到這邊,我還是不知道切入點為何,不過我想我會從FreeBSD開始學,致少初學者,學比較具有一致性的東西比較好,而且FreeBSD port 到Linux的話,我也不知道難度(笑),所以我還蠻期待本學期的Unix Programming XD。

---
說多了


  • GNU GPL: 只要你有使用到GNU Library,你所撰寫的程式碼需全部開放
  • GNU LGPL: 若有改到GNU Library,有使用到該library開放即可。
  • BSD License: 程式碼皆可自由使用,但檔前註解不可移除掉。

星期日, 2月 17, 2008

整合

為了盡量把帳號往google集中(這樣子我也比較好管理),我的email信箱如下,msn也移至此。


希望變成永久信箱嘍,不過也要看狀況了,至少這帳號會有效非常久。

---
走的出來才能夠看的更遠

星期六, 2月 16, 2008

溫度

在長庚桌上都會佈滿寒氣,連帶我的MacBook運轉時出現難得一見的超低溫,37度XD

---
之前有過打開只有22度 XD

星期四, 2月 14, 2008

Valentine's Day

今年的情人節,沒有意外。不過尚可以說是過的平平安安,因為都在睡覺...Orz,還是來點首歌曲好了,Linkin Park - Valentine's Day

Valentine's Day, Linkin Park, Miniutes to Midnight(2006)
My insides all turn to ash, So slow
And blew away as I collapse, So cold
A black wind took them away, From sight
And held the darkness over day, that night

And the clouds above move closer
looking so dissatisfied
but the heartless wind kept blowing, blowing

I used to be my own protection, But not now
Cause my path has lost direction, Somehow
A black wind took you away, From sight
And held the darkness over day, That night

And the clouds above more closer
looking so dissatisfied
and the ground below grew colder
as they put you down inside
but the heartless wind kept blowing, blowing

So now you're gone
And I was wrong
I never knew what it was like
To be alone

On a Valentine's Day
On a Valentine's Day
On a Valentine's Day
On a Valentine's Day
On a Valentine's Day

(I used to be my own protection)
On a Valentine's Day,
(But not now)

On a Valentine's Day

(Cause my mind has lost direction)
On a Valentine's Day,
(somehow)
On a Valentine's Day

(I used to be my own protection)
On a Valentine's Day,
(But not now)
On a Valentine's Day

(Cause my mind has lost direction)
On a Valentine's Day,
(somehow)

事實上我的狀況跟歌所描述的完全不像,但是我還是非常喜歡這首歌曲。

---
以前或許很像XD

星期三, 2月 13, 2008

Mac OS 更新

昨天得知有Mac OS 10.5.2更新,但是一更新完,我就陷入"login loop",於是乎我就上網求救啦,結果有好心人告訴我原來官方可以尋找答案,但是捫心自問,我不太會下英文關鍵字就是了,官網是這樣子說的

If Leopard is installed
Start up from the Leopard Install DVD and perform an Archive and Install installation (and select Preserve Users and Network Settings).

簡單的而言,你重灌就對了XD 今天和JC見面,順便借了Leopard光碟重灌(我的放在桃園...Orz),於是乎修復好了。

去掉這點奇怪的原因,10.5.2真的讓人感覺好很多了(或許是心理作用? XD),至少Adobe Printer可以用了,之前都不能用...Orz。

---
麻煩一場XD

星期二, 2月 12, 2008

function object

首先,心愛的MacBook無法開機,感到非常的心痛,偏偏光碟在學校,只好等回學校再說了。心痛歸心痛,文字還是得寫的。

function object 到底威力何在,抑或是說,重要角度為何。

function object(functor) 是泛指利用overloading operator(),而讓一個class能像function一樣使用,但是擁有更多的彈性,一般書上都會寫,由於class擁有data member,所以functor可以有local state。 舉個例子而言

#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;

class Print_Call{
public:
Print_Call():t(0){};
int operator()(){
return ++t;
}
private:
unsigned int t;
};

int main(){
generate_n(ostream_iterator<int>(cout, "\n"), 5, Print_Call());
}

首先要注意的是Print_Call(),此行是為了喚起default constructor,而不是function call(一開始我的確搞錯XD)。事實上我們可以寫一個比較簡單的等價呼叫,來試試
int Print_Call(){
static int t=0;
return ++t;
}

int main(){
generate_n(ostream_iterator<int>(cout, "\n"), 5, Print_Call);
}


那麼再來看generate_n的原始碼(我稍微重寫了一下)
template<typename OutputIterator, typename Size,
typename Generator>
OutputIterator
generate_n(OutputIterator _first, Size _n, Generator _gen){
for(;_n>0;--_n, ++_first){
*_first = _gen();
}
return _first;
}

在C++中,operator * 和 operator () 皆可做overloading的動作,所以*_first可以是一個trival pointer或是一個iterator,而_gen(),只要能夠支援operator() function call即可,也就是,traditional function 或者是function object 皆可支援,有了最大的共通性,重點是,如果可以寫成function obejct,加上template,就會形成Generic Programming的一部分,因為可以針對很多的共通動作寫成template function object,省下不少麻煩,而STL內建的function object並不多,但是可以用組合技來達成自己要的效果,要怎麼使用組合技呢,重點就是function adaptor了。

不過當然,function object不是沒有缺點,很大的缺點就是,如果為了配合Generic Algorithm,可能會寫出很多一次性的function object,這在程式碼上會變的較難維護,Java的inner class是一個不錯的選擇,而在Boost中也有提出良好的解決方案,可以看一下Joshsoft: Lambda Expressions in C++0x,不過如果想偷懶不想使用function compose, bind,當然可以自己寫一堆function object,也不會有人說你犯規,只是以後好不好維護而己(也還好XD)。

寫到這邊吧,本來還想寫function adaptor,只能說待下回分解了。


---
不知道有多長耶XD

體悟

現在比較能了解Josh為什麼有關程式的文都那麼長了,因為敘述一個完整的思考所須的文字不會太少...

---
所以我決定下次要寫長一點XD

有感

這是一篇Generic Programming 的文章,不是生活文,不想看的可以跳過了XD

今天又把"泛型程式設計與STL"看完一次,對於大一自己的大膽假設,感覺到非常的有種,對於member function adaptor 的說法,我真是白癡到一種境界,不過我也不打算重新說明,因為以前的blog就寫過了。

對我而言,C++ Standard Template Library 用嚴謹的Concepts所組成,STL的六大組件則使用了這些 Concepts 發展成嚴謹的組件,而且非常的明快易讀,捨棄了OO的hierarchy方法,而使用了類似Mathmatical functions 的 f(g(x)) 作法,將整個程式庫壓平,不過背後所帶來的成本,非常高,環環相扣的呼叫,雖然在Compile Time 會化身成如你手工精鍊的一般,但無法針對特定資料的最佳化,還是無法克服的,不過寫到這裡,若要針對資料高度最佳化,不妨尋求OOP的這一塊。

STL的入門關鍵技術有三,一是template,二是type traits,三是operator overloading。

第一個我就不廢話了,沒有辦法針對data type做到generization,就不用玩了XD 而我們先把type traits略過,這可以講一整篇了,先說第三個operator overloading,也是Java的GP無法做到的。為什麼operator overloading那麼重要?

因為operator overloading不僅讓 class 更像一個 real type,也可以讓 class 像一個 function,但是可以比function做更多的事。

最大的原因是,我們可以overloading "()",也就是說,如果對以一個class做operator() 的定義,這個class可以做為一個functor,而也因為我們可以對眾多的 operator 做獨立定義,很多時候的溝通,只要用這招就可以搞定了,如果這招搞不定,而需要用另外的方法時,template + type traits就出場了,在這邊就暫且不論。

不過回到比較簡單的話題,學好STL還是很難的,因為組件不少,目前唯一的想法是,寫完一次程式碼,再盡最大極限來使用STL裡面的概念轉換之,轉換個十多次之後應該會好一點,不過目前當下的我應該是沒有什麼機會。

說多了,下次想到再寫吧。

---
寫完有大陸人的感覺?XD

星期一, 2月 11, 2008

最近

我看我可以幫最近開一個系列文了XD 這個標題幾乎是我懶的想標題的避風港XD

這幾天看小說, 睡覺,還蠻自在的,終於回到桌子上打電腦了XD 也是一件不錯的事,預計這禮拜三回彰中一趟,禮拜四有事,禮拜五回學校,宣告下學期的來臨。睡覺睡很多,但是有助於思考,讓自身回到一個簡單的狀態也是一件不錯的事。雖然最近這陣子Mac OS常當,到底什麼時候要出10.5.2啊XD。報怨完了,也沒啥正事XD

有學弟跟我提及C/C++到底重不重要這個問題,呵,就我自己而言,我覺得非常重要,只是初學C++的人要過很久很久才能摸到應用程式,應該是說,一般的書也不會寫說,如果你要用C/C++開發某些功能應該用什麼喔。所以我稍微列一下我現在所能碰到的,事實上我沒有用C++開發應用程式過,但是要我選擇, C++/ Java 仍是我的首選(笑)。

  • GUI Programming: 在Windows上有VS可以選擇,但是跨平台上則有QtGTK,如果上述都不喜歡,可以考慮一下wxWidget
  • Network Programming: 可以使用ACE,當然,也可以使用Unix 上的Socket Programming
  • 3D Programming: 在Windows上有DirectX可以用,而OpenGL是跨平台的

族繁不及備載(而且我還沒有提System Programming XD),但是我所能接觸到的就會學不完啦,語言的重要程度是看你想拿語言來做什麼,沒有一個程式語言能夠解決所有事的。

回到一般生活上,回學校的生活似乎有點趕,不過也還好,打算看看上課狀況再調整吧,比賽的進度還蠻趕的,如果不要落後,大概每天都要蹲實驗室吧,不過也無妨,多寫點程式總是好的。

一起加油吧!

---
沒什麼組織的文章 XD

星期日, 2月 10, 2008

電子之星

這是一本短篇推理小說集。

我一直以為這是推理小說,但是看完之後的感覺是,這是很像推理小說的一般小說XD。主角在書中被人稱之為萬事通,專門解決問題,看完這本的第一個感覺是,會讓我想到宮部美幸,不過這位作家的書我也只看過兩本,分別為模仿犯Level 7

事實上石田衣良和宮部美幸有可能會被我歸類成同一種作家,他們都想藉由推理小說的架構來表現出現代日本的社會問題,直接講有什麼社會問題,並不是沒有人理會,而是所能使力的部分太少,如果不能深入分析,恐怕一般人不予以理會。

我不太清楚東京池袋在日本是什麼定位,不過根據wiki來看,是一個繁華的地方,這句話或許很普通,但是就我個人的感覺。

繁華伴隨著黑暗。

台北是一個很繁華,但我始終不能適應台北,也是同一個道理吧(笑)。我看書沒有一定的習慣,通常是隨機取樣,所以我沒有看過池袋西口公園123 XD 但是從這本書而言,我看到了比較輕鬆而且是美好結局的敘述方式(要看相反的可以看模仿犯XD),想要了解日本社會的架構,不妨多讀讀這兩位作家的書,我從閱讀這些書,學習蠻多的。

---
不過要有時間就是XD

戰慄遊戲

這是一本驚悚小說,不過很精采,但是我也得承認,我比較少看這種小說。

整個故事的人物架構非常簡單,一個專門寫暢銷小說的作家,跟一個瘋狂連續殺人犯的書迷,在作家發生車禍之後,被書迷要求重寫小說橋段,地點也很簡單,大部分只在該連續殺人犯的屋子裡,更精確的來說,只在囚禁該作家的房間。而故事的結束伴隨著死亡。

死亡方能結束這扭曲的關係角力。

這本書不很薄,不過故事架構很簡單卻不失其張力,閱讀蠻愉快的,我花了一個晚上看完,不過這本書不能帶給我什麼啟發就是了,但是享受故事往往就是一件很不錯的事。

---
寫心得(這不能稱之為書評XD),我還須要很多的練習XD

星期五, 2月 08, 2008

心情

好多了

---
還蠻簡單的

十二點了,手機沒開,十二點半就關機

---

星期三, 2月 06, 2008

sidebar 小更新

除了遊客留言之外,終於加入最新回應的功能啦(我不會寫,泣...Orz),後來在google上找到有人撰寫,非常的感謝。

同時新增了WishList,對於sidebar的link有稍做更新。

---
有更新回應很重要XD

閱讀清單

我從小時候就有不怎麼良好的閱讀習慣,而我的買書習慣不怎麼好,習慣看了喜歡就抓,然後再難看都會強迫自己看完,不過通常很好看,或許是我不怎麼挑? XD

不過工具書真的是考慮再三,因為有關Computer的工具書,可不能買來保值啊XD 不過我的確有幾本書是買來就絕版了..Orz

"STL源碼剖析"會絕版並不在我的意料之外,雖然我個人蠻喜愛這本書的,給初學者看太難,給進階使用者也沒有利基,能銷售的恐怕只有莘莘學子了,這本就是我買完就絕版的書,雖然覺得絕版可惜,但是並不難過。

扯遠了XD

不過過年閱讀清單暫列如下吧

  • 池袋西口公園4 - 電子之星 by 石田衣良, 劉名揚譯
  • 池袋西口公園5 - 反自殺俱樂部by 石田衣良
  • 戰慄遊戲 by 史蒂芬 金, 柯清心譯
  • 棋王樹王孩子王 by 阿城
  • 我是傳奇 by 理察 麥特森, 陳宗琛譯
  • 基地 by 以撒 艾西莫夫, 葉李華譯
  • 慈悲的滋味 by 黃凡
  • 黑名單 by 勞倫斯 卜洛克, 林大容譯

誰說我不看課外書的XD 不過上面的清單可以看出,推理小說最多XD 可能跟我這近幾年的閱讀習慣有關吧,我高三時看的小說大部分都是台灣小說新興小說作家為主,我最近看到有人在票選歌曲,有一首也蠻讓我shock的,雖然我沒聽過XD 王心凌-那年夏天,寧靜的海,老實說我不知道這首歌唱的時麼樣,但是我倒是看過郝譽翔寫的就是了,不過我還是偏好黃凡就是了,如果我有閒,或許我可以來討論一下這方面的事,但是我不是專業,不要太期待就是了XD。

閱讀,可以帶給自己不同的人生。

---
想到就寫,果然沒什麼章法XD

星期二, 2月 05, 2008

冷天氣

適合進行寫作,寫些什麼東西也好...

---
好久沒有這種感覺了 寫的出來就當作禮物吧,呵

星期一, 2月 04, 2008

簡單的heap-sort 練習

這幾天在看第二份簡報,就隨興寫了測試碼,並沒有使用嚴謹的STL寫法XD 不過還是稍微做了一下template(到這種年紀了,這種有做跟沒有做差不多,應該要寫個template<class RandomAccessIterator>之類的),不過想想了,都是練習,就放一下,概念一通,這種簡單的演算法並不難以實作,重點是,怎麼實作會比較快,恐怕就要針對特有的資料特性做研究了,寫到這裡,還是繼續看書比較實在,哈。

code

事實上還是蠻喜歡這種基礎練習的,總覺得基礎要打好。

---
事實上冷到不太想動了XD