2008年6月30日 星期一

ACM488

今天下午幫同學試了一下SAP2000的API
使用COM介面的API, 挺不錯的東西

然後寫一題簡單的ACM488
心得是英文誤解意思的話是很糟糕的事情



char* sary[] = {"0", "1", "22", "333", "4444", "55555", "666666", "7777777", "88888888", "999999999"};
int waves;

struct Wave {
int order;
int Amp;
int Frq;
void (*Draw)(struct Wave* this);
};

void Draw(struct Wave* this)
{
int i,j,k = this->Frq;
while( k > 0 ) {
for(i = 1; i < this->Amp; ++i) {
printf(sary[i]);
printf("\n");
}
for(i = this->Amp; i >=1; --i) {
printf(sary[i]);
printf("\n");
}
if( k== 1 && this->order == waves);
else
printf("\n");
--k;
}
}

struct Wave* New_Wave(int order, int Amp, int Frq)
{
struct Wave* ret = (struct Wave*)malloc(sizeof(struct Wave));
ret->order = order;
ret->Amp = Amp;
ret->Frq = Frq;
ret->Draw = Draw;
return ret;
}

int main()
{
struct Wave** wav;
int i, amp, frq;

scanf("%d", &waves);
wav = (struct Wave**) malloc( sizeof(struct Wave*) * waves);
for(i = 0; i scanf("%d", &);
scanf("%d", &frq);
wav[i] = New_Wave(i+1, amp, frq);
}

for(i = 0; i < waves; ++i) {
wav[i]->Draw(wav[i]);
free(wav[i]);
}

return 0;
}

瘋狂理髮師

這部影片也是在講"復仇"
奇怪最近怎麼都看到類似的電影^^;

主角是一個理髮師, 為了向拆散他們夫妻的人進行復仇
這個主角有點走火入魔, 殺了很多人
整部片以音樂劇的方式闡述, 讓人家比較不會背黑暗壓到喘不過氣
但實在是一部相當黑暗的電影

2008年6月29日 星期日

The Mist

剛才又啃了一部電影 "the Mist" 迷霧驚魂
原著是史蒂芬.金( 讓我覺得像是食神中的人物 )
我還看過他的...刺激1995, 鬼店, 綠色奇蹟 等改編電影

迷霧驚魂大概就是B級的恐怖片
很囧的結局,出現這樣的結局太突兀了.

原罪犯

Old Boy
這是韓國電影
整部電影都在講"復仇", 但是跟昨天看的Red Road的復仇類型相當不同

主角算是"被複仇"的對向
而那個要向主角復仇的人先把主角監禁了15年,再開始執行他的復仇
這15年,是為了等待某件事情成熟,真的相當驚悚

2008年6月28日 星期六

Red Road

剛剛看了這部電影
主要講一個女人
為了替自己在意外事故死掉的丈夫女兒報仇而接近兇手
有點像是"21 gram", 兇手都不是故意的, 而且他們都有自己的人生

那個兇手被假釋出獄後, 女主角想盡辦法接近他
想把主角再送進監獄...

"這種鳥事天天都在發生, 這就是人生", 那個兇手說

Insertion Sort

平均時間複雜度是 O(n^2)
其它還有一些變形
insert的部份改用二元搜尋(加快insert速度)
以及使用linked list而不是用陣列(減少memory copy的overhead)

這種演算法沒用嗎? Quick Sort都比這個快
但當做學生作業似乎還不錯啊



#include
using std::cout;
#define MININT 0 // any key must grater than this

class Element
{
public:
Element(){}
int getKey() const{ return key; }
void setKey(int k) { key = k; }
private:
int key;
};

void insert(const Element e, Element *lst, int i)
// insert lst[0] -- lst[i]
// lst must have i+2 capacity, cause we inset a new element to ordered list
// assume lst[0].getKey() = MININT, make sure all keys are grater than this
{
while( e.getKey() < lst[i].getKey() ) {
lst[i+1] = lst[i];
--i;
}
lst[i+1] = e;
}

void InsertionSort(Element* lst, const int n)
// sort lst[1] to lst[n]
{
lst[0].setKey(MININT);
for(int j = 2; j <=n; ++j)
insert(lst[j], lst, j-1);
}

int main()
{
Element *lst = new Element[6];
lst[1].setKey(2);
lst[2].setKey(3);
lst[3].setKey(4);
lst[4].setKey(5);
lst[5].setKey(1);
InsertionSort(lst, 5);
for(int i =1 ; i < 6; ++i)
cout << lst[i].getKey() << " ";

return 0;
}

2008年6月27日 星期五

今天去吃壽喜燒

在竹北的壽喜燒, 然後順便拍個畢業照
IT組的同學就四個, 想起來真是囧
昨天去剪了頭髮, 清爽多了



2008年6月26日 星期四

inline assembly

這種在C語言裡面穿插組合語言的作法實在是非常powerful
就我觀察, 一種良好的系統, 總是會提供多種solution
包含high level與low level

asm("組語" : output : input : regs);

像這樣把組合語言穿插在原本的程式
組合語言我幾乎不會, 但我想應該不難學, 因為指令相當的單純

2008年6月25日 星期三

畢業證書

今天去跑了離校

拿了畢業證書

薄薄的一張紙, 深怕有一點損傷

應該拿去護背一下才是

謝師宴

今天去西堤吃謝師宴
我覺得還不錯, 吃得蠻飽的
點了"法式鴨胸", 好大一塊鴨肉...
我從沒看過這麼大塊又沒骨頭的鴨肉

服務相當不錯...開胃菜 前菜 沙拉 濃湯 主菜 甜點 飲料
吃得好飽. 現在還在飽

最近花了不少錢, 但都是花在必要的東西上
我騎機車回程的時候忽然這樣想
對於花錢, 平時可能都不太花大條的
但有必要錢還是要花, 並不需要那麼斤斤計較

2008年6月22日 星期日

鍛鍊

由於之前改論文
所以跑校園的活動也停了下來

最近比較有空, 應該開始為當兵做一下準備
菜單是:
跑步 3000公尺為單位
仰臥起坐 30下為單位
伏地挺身 50下為單位

先以1單位為目標吧

2008年6月21日 星期六

畢業典禮

今天畢業典禮, 不過我沒參加

昨天爸媽過來找我. 帶他們去18尖山還有城隍廟拜拜.

今天帶他們去學校跟他們合照一下, 然後中午吃完飯他們就回去了

畢業典禮也只是個形式, 我不感到歡樂, 因為接下來我還有更多事情要做

很高興他們能夠過來

2008年6月19日 星期四

洞裡春光

講述一個奶奶為了孫子
而從事幫人家XXX的工作
很感人...

2008年6月18日 星期三

Being John Malkovich

這個導演真是天才
好久沒有看過讓我如此吃驚的片子
imdb 7.9分 但我覺得有8分以上

講述有一個人發現一個通道可以進到某個人的身體
故事從這邊出發
這個導演真是天才

2008年6月17日 星期二

pay it forward

很久以前看過這部電影
它主要的意思是說

當你受到別人的恩惠(favor),你不一定要回報,你可以將這個恩惠施予其它人
然後遞迴
像是蝴蝶效應一般,也許有一天你會受到某個陌生人的幫助
而那個陌生人也曾受到你間接的幫助

我很喜歡這個idea

2008年6月16日 星期一

口試結束了

蠻順利的 沒被問什麼問題
我想老師們也不曉得我做了些什麼
請大家吃了批薩跟烤鴨 反而是我自己沒什麼食慾
真的有點不捨...
開始稍微整理一下房間, 發現一張95年的發票, 那時我剛搬過來沒多久
常常一個人吃飯, 一個人唸書
現在我有一些朋友, 心中也比剛來的時候踏實
我似乎在這兩年中比過去成長了
人生過了1/3,也是最美好的1/3
接下來我必須更加努力, 切勿浪費時間
在新竹剩下20幾天...

經過了很多事情
我真的要感謝身邊的朋友
Q___Q

口試

等一下要口試了
話說我已經做了三個關於口試的夢了
雖然沒有很緊張
但心理還是有點壓力阿

2008年6月15日 星期日

明天要口試

昨天我做了一個關於論文口試的夢
我只記得面試結束的情景
然後我一直在想我口試的過程但怎麼想也想不出來
可能是大腦還沒有辦法製造出影像
有點像是一個失憶的人

2008年6月13日 星期五

我的左腳

剛剛看完這個傳記電影
講述christy brown一個生來就腦性麻痺的傢伙的人生

2008年6月12日 星期四

換燈泡

研究室的日光燈管壞了6隻
這可以算是我惰性的極限
從去年開始日光燈就一個接著一個壞掉
我還是蠻不當一回事,想說:還看得到嘛!
前幾天壞了第6隻後,開始覺得有點暗了
但我還是撐了幾天, 終於今天下午有空, 就去系辦借了梯子拿了3根來換
換了之後感覺好亮阿, 還有三根沒換到, 但應該這樣就夠了, 也算是做環保(哈)
多謝猛虎幫我扶梯子

2008年6月11日 星期三

Google

剛剛花了點時間了解一下什麼是RSS
是一個很有趣的東西, 主要就是觀察者與被觀察者的模式

當被觀察者出現更動它會通知觀察者
就像是Blog與Read間的關係,用一個protocol溝通, 應該是使用XML這類的文件進行吧

Google提供了相當多的服務
Web能幫助人們做什麼事? 要以這個方向進行思考
技術只是為了實現某種思想的手段

2008年6月10日 星期二

今天早上

早上起來6點多起來
把There will be blood後半段看完
一個功利主義的傢伙的故事
不相信神, 只相信自己
但我可以感受到在他鋼鐵般的外表裡面藏著一個軟弱的傢伙
只是他不再別人面前表現

不知道為什麼, 我的心忽然不空虛了, 我感到什麼東西進到我的內心
我不相信任何宗教, 也不相信什麼救贖之類鬼東西
但我相信唯有人的心中擁有愛, 這個世界才會更好

2008年6月9日 星期一

粽子

這兩天都有粽子可以吃
這要感謝對面研究室的同學

今天論文改一改就要拿去印了
然後明天交給三個口試委員

2008年6月8日 星期日

和平的戰士

今天看了這一部電影
講說一個什麼都不缺的小伙子尋找自我的過程
中文應該是"在深夜的加油站遇見蘇格拉底"
哲學的東西我不懂
本片也沒提到什麼哲學
主要就是叫我們活在當下
他們說:行動決定思想, 但什麼來決定行動呢?
反正這種有點說教的電影看看就好
我對任何事情還是都抱持著懷疑的態度

由於最近把事情忙得差不多了
剩下口試與畢業典禮
終於有點時間可以做點自己想做的事

想把Understand Linux Kernel看完
想把Development of Linux Kernel看完
想把約翰克里斯多夫看完
想把Live fresh看完
還有一堆想看的電影...

2008年6月7日 星期六

CCC-Iterator

使用C實作了Iterator
C語言實在是一個非常有趣的語言
應該說是
high level assembly ? 雖然我不太懂組合語言
但光是使用C就能感覺到他的power


#include
#define TRUE 1
#define FALSE 0

struct Iterator;
struct List;
struct List_Node;
typedef unsigned short (*Method_hasNext)(struct Iterator*);
typedef void* (*Method_next)(struct Iterator*);


typedef struct Iterator {
struct List_Node* current_element;
Method_hasNext hasNext;
Method_next next;
} Iterator;

typedef struct List_Node {
void* data;
struct List_Node* next;
} List_Node;

typedef struct List {
List_Node* head;
Iterator* (*getIterator)(struct List*);
void (*addData)(struct List*, void*);
} List;

void addData(struct List* stru, void* data)
{
List_Node* n;
for(n = stru->head; n != NULL; n = n->next ) {
if( (n->next) == NULL ) {
n->data = data;
break;
}
}
n->next = (List_Node*) malloc(sizeof(List_Node));
n->next->data = 0;
n->next->next = 0;
}

unsigned short hasNext(Iterator* i)
{
if(i->current_element->data == NULL)
return FALSE;
return TRUE;
}

void* next(Iterator* i)
{
void* ret = i->current_element->data;
i->current_element = i->current_element->next;
return ret;
}

Iterator* getIterator(struct List* stru)
{
Iterator* ret = (Iterator*) malloc(sizeof(Iterator));
ret->current_element = stru->head;
ret->hasNext = hasNext;
ret->next = next;
return ret;
}

List* New_List()
{
List* ret = (List*) malloc(sizeof(List));
ret->head = (List_Node*) malloc(sizeof(List_Node));
ret->head->data = 0;
ret->head->next = 0;
ret->addData = addData;
ret->getIterator = getIterator;
return ret;
};

int main(void)
{
List* strs = New_List();
strs->addData(strs, "John\n");
strs->addData(strs, "Paul\n");
strs->addData(strs, "Ringo\n");
strs->addData(strs, "George\n");
Iterator* i;
for( i = strs->getIterator(strs); i->hasNext(i) == TRUE;) {
printf("%s", (char*)i->next(i));
}
return 0;
}

CCC

嘗試用C實作了simple factory如下


#include

typedef void (*Method)(void);

typedef struct Interface {
Method method;
} Interface;


void good_method(void)
{
printf("good\n");
}

void bad_method(void)
{
printf("bad\n");
}

Interface* New_Product(char* type)
{
Interface* ret = (Interface*) malloc(sizeof(Interface));
if( strcmp(type, "good") == 0 ) {
ret->method = good_method;
} else if( strcmp(type, "bad") == 0) {
ret->method = bad_method;
} else {
return NULL;
}
return ret;
}

int main(void)
{
Interface* product;
product = New_Product("bad");
product->method();
product = New_Product("good");
product->method();
product = New_Product("bad");
if( product == NULL )
printf("nothing");
else
product->method();

return 0;
}

2008年6月6日 星期五

Into the Wild

中文翻譯叫做"阿拉斯加之死", 這是一個真實事件
今天我到224去看了這部電影

主角拋棄了自我想到阿拉斯加去一個人生活
但最後在阿拉斯加度過最後的3個月...
他因為誤食了有毒的植物而喪命
最後留下了這句話
"I HAVE HAD A HAPPY LIFE AND THANK THE LORD. GOODBYE AND MAY GOD BLESS ALL!"
這部電影讓我很感動
我有許多想法都跟片中的主角很像, 影片很多地方都讓我產生共鳴
有時候真的想一個人到什麼沒人認識我的地方生活
只是我沒那個勇氣一個人生活
我們人夠活著多多少少都有受到很多人的幫助
這一群人組成了社會, 社會算是國家的子集合吧

他死後兩週被獵人發現
在他的相機中發現了這張自拍照, 他真的很快樂

台灣草根臉譜

http://tw.myblog.yahoo.com/i2taiwan/

令人感動的相片"Common People"
小時候父母都出去工作,都是奶奶在照顧我
所以我對老人家都抱持著敬意
人總是會老,但重要的是如何保持年輕的心
時時充滿活力、好奇心、求知慾
Life is Just for Fun, right?

2008年6月3日 星期二

最後一堂課

結束了

碩士生活的最後一堂課

我愛交大

2008年6月1日 星期日

Doonie Darko

今天看了這一部~
非常不錯的科幻片
但我覺得一部電影要能夠成功
一定必須融合多種元素並且能夠處理的和諧
電影插曲"Mad World"很好聽

另外看了豆豆假期,邊吃飯邊看的
其中有一幕唱"喔 我的父親" 很好笑 哈哈

能夠擁有一個電影播放室應該列入我小小的夢想之一了