2007年12月10日 星期一

給媽咪過生日

大概知道媽咪是十二月生日的樣子,但是詳細日子不知道,想一想好像從來沒有給媽咪過過生日嘛,大概十月的時候就叫小魚兒偷偷去調查媽咪的生日,後來只知道是農曆的十一月初,國曆的十二月初,但是不知道是哪一天,不過好像也沒差別,因為我也只能假日回去,那就選定上個週末回去了。

大概三個禮拜以前就跟小魚兒討論要送的禮物了,本來我是想要織圍巾,不過小魚兒說他要織圍巾,那我就織毛線帽吧,所以就織毛線帽啦。跟小魚兒說火車站旁邊有一間不小的手工藝品店,他去買了,然後我在新竹也跑去中央市場自己買了毛線,兩邊分開作業。這個毛線買了很 Q 的,摸起來還不錯啦,本來要買城堡編織器或是環針,後來想到小朋跟詩芳都有環針,就直接借了。

恩,我真是天兵,打錯,拆,就是環針打了一圈以後,其實是要推過來,然後接上,繼續打,我不知道就反過來打,想說打完以後接上,最後想一想這樣最下層接合處好像會多一排,那完啦,也沒什麼啦,就拆嘛。然後最後打了很多以後,發現我接合的那一排,第一針拉的不夠緊,完啦,就留下了一個比較寬的縫,沒關係啦,繼續打,現在要我拆掉我也沒力氣了。那天好像是下午開始打的吧,一直打一直打一直打,打到凌晨,繼續打,打打打,一開始個上二下二真是打的我心好煩,因為真的很難穿,後來打到上層我就決定用上一排下一排,因為這樣很好穿,速度總算是開始變快了,這樣應該趕得上吧。繼續打打打,打了整夜沒睡覺,打到第二天早上九點,長度好像差不多了?但是如果把最下面摺上來,好像又太短了,可惡,我就只好到了研究室,再慢慢補長度,想說調整到可以為止。然後白天就在研究室一點一點慢慢打,累積長度,後來終於可以啦~試戴了,長度可以,那就準備要收針了,嘿嘿,我可是已經忘記怎麼收了,叫小朋幫教一下,然後我就繼續收,她去幫我研究那個頭頂上面的米字縫要怎麼弄,好啦,然後是她幫我縫的。真是歹勢,雖然想說要自己弄比較有心意,但是到最後了,如果在這邊搞砸我會哭出來,怕怕的,還是給高手弄好了。耶~終於縫好啦~喔喔喔~真的不錯看耶~只是我戴起來就很奇怪 = =。對了!這邊要特別感謝小吃部快餐的阿姨贊助髮夾一根,嘿嘿,最後那個縫起來我沒有毛線針阿,小朋說髮夾也可以,不過我也沒有髮夾,急中生智想到快餐阿姨可能有,就去要,真的有耶,好開心喔~

禮拜五下午完工,晚上我就回中壢了,到中壢的時候媽咪問我怎麼會有空回來,我酷酷的說:「我想回來就回來了。」因為不好意思說我這個是回來跟你過生日的嘛。

回到中壢當然就是兩件事:打 Wii!玩貓!哇哈哈哈~死命的打 Wii 跟玩貓,喔~這個貓真好玩,他們兩個感情已經很好了,會互相洗澡呢,一直舔一直舔,也會龜在一起睡覺,或是龜在一起看我們在幹嘛,真的很不錯。Wii 也很好玩禮拜六的晚上跟小魚兒打了一整夜的 Wii 都沒睡覺,然後終於練成很白痴的絕技,就是保齡球打瓶數的那個練習模式,其實在球道最深處的兩邊有紅色按鈕,用球丟到就可以引發大地震,然後會全倒,實在很白痴。一開始我是要找網球的旋球怎麼打,結果不小心看到這個密技,而且很少網頁有這個密技哩,好像大家都不太知道?但是嘗試了才知道這個密技有多難,難到一開始我還以維那是唬爛的,後來第一次由小魚兒完成啦!當畫面靜止很久,我聽到「碰!」一聲畫面振動的時候,還沒反應過來勒,結果瓶子就全倒了,後來就一直狂練,現在成功率已經不錯嚕。這邊備註一下阿,就是人要往右轉一點點,然後走到最右邊,可以看到瞄準線剩下大概六到八格,然後把球帶左旋的往上拋高出去,他就會掉在隔板上,很神奇的滾動到最後,壓到按鈕,碰!

因為 Oliver 禮拜六要出去玩,一直到禮拜天晚上才回來,所以我們就決定禮拜天晚上給媽咪生日。禮拜天白天我跟小魚兒偷偷跑出去買了蛋糕,放到辦公室的冰箱(順便買了四包 Bento 魷魚片 XD)。晚上媽咪帶我們出去吃牛排,剛好小魚兒的三個同學也來了,媽咪就一起帶去吃,很開心。後來媽咪有說,跟小魚兒的朋友一起吃飯,就可以看看他的朋友是什麼樣的人,一餐飯很便宜的。我覺得很有道理^^。吃完飯回家以後媽咪就開始看海賊王,真好看,超感動的!梅莉號來拯救大家啦!騙人布:「你們忘記我們還有一位夥伴嗎!」不錯不錯。看完以後小魚兒說要玩 Wii,媽咪就很可憐的只好回自己房間看電視,然後我們就去把蛋糕拿出來,然後點了蠟燭,殺到媽咪房間,「Happy Birthday!」媽咪一臉痴呆耶,很好笑,過了很久才反應過來。然後生日快樂歌,然後許願吹蠟燭,接著就是切蛋糕吃蛋糕,媽咪很開心阿,我們就一邊吃一邊聊天。聊了很多呢,聊了小魚兒唸書的事情阿,也聊了我們偷偷準備生日的過程。媽咪說這是他第二次過生日。以前的農家人家裡生女兒是不太在意的,所以生日其實也不太會去記得,更別說過生日了,之前一次是阿罵幾年前到家裡來幫媽咪過的。媽咪說阿罵其實記得她的農曆生日(真不愧是當媽媽的,儘管在那個重男輕女的時代,媽媽還是會記得小孩的一切)是十一月十五,但是國曆真的不知道,因為那個時候也沒什麼在看國曆。後來我去查了一下,媽咪屬老虎,也就是民國五十三年,西元 1962 年,那一年農曆 11 月 15 號是國曆的 12 月 11 號,這樣以後可以跟媽咪過國曆生日囉。

蛋糕吃一半,小魚兒就說:「ㄟ,我們還有禮物喔。」「是喔~」「恩阿,等吃完就拿給你」然後吃完以後我們就去拿禮物給媽咪,先前禮拜六偷偷洗好然後也脫水的圍巾跟毛線帽,放在房間晾乾,給媽咪的時候媽咪很開心阿,媽咪說小魚兒的圍巾太夢幻了,因為他的圍巾是很粉彩的那種棉絨,超夢幻,然後媽咪就開始試戴帽子跟圍巾阿,我發現那個毛線帽真的不錯看耶,之前沒發現,是因為我戴就不好看,結果我以外人戴都很好看,媽咪小魚兒Oliver戴都很好看,可惡。媽咪說兩個摸起來都很舒服,她以為是同一種毛線。然後小魚兒說:「這是我們自己織的喔!」「是喔 @@!」又開始痴呆了「對阿~」「這個我很感動,比蛋糕還要感動喔~」然後就摸摸毛線嘛,小魚兒指著媽咪的臉說:「喔喔喔~你快哭了!!!」「幹!你媽我很用力的擠,但是一滴都擠不出來啦!」然後大家哈哈哈哈的笑了很開心 ^^

最後就是很開心啦,然後很開心的回新竹了,媽咪塞了很多水果跟麵包給我 ^^

ps. 我很白痴喔,我一直想著媽咪生日媽咪生日,結果忘記小魚兒的生日是 12/10 了,也就是今天,嗚嗚,好對不起他,明年會記得幫他過生日的 ^^

2007年12月5日 星期三

拔智齒

右下邊的智齒蛀掉很久了,但是一直不想去管他,就很有毅力的一直支撐,其實也不過就是蛀牙嘛,牙齒蛀了也不會痛,所以根本不用管他也沒關係。後來牙齒蛀掉的地方,變得很利,然後割到我牙齦的肉,很痛,但是我真的很厲害,我完全不鳥他,就一直這樣過日子,好幾個月,嘴巴裡面都一直流血,不多,但是每次漱口都有,很煩。然後我發現我每次流血比較嚴重的時候,嘴很容易破,我不知道人的血液是不是會咬皮膚,但是每次血很多的時候,嘴巴就很容易破,而且會一直感覺到很燒的感覺。廢話一堆,反正我決定去把他拔了,雖然不是痛到很難過,可是嘴巴長期燒燒的真的很不舒服。

去了上次拔智齒的簡牙醫,距離上次去拔掉左邊的智齒,已經很久很久以前了說,還記得上次拔智齒很快樂,當天我就吸哩呼嚕吃東西了,也沒什麼痛,就是流血超過一天而已。

我先打了電話去,說我想要掛號,我要拔智齒。「你要拔智齒嗎?」「對阿~」「那你很趕嗎?」「其實也沒有耶,今天也可以,明天也可以,後天也可以~」「可是我們要排到下個禮拜了。」「是喔?」「恩,不然你就是要插空檔。」「喔?」「像現在就是空檔,沒有人,你在哪裡?」「清華大學。」「現在是三點,可是你過來可能就三點半了,就不一定了。」「沒關係,我可以過去,然後我可以等。」「好,那你快過來。」「嗯嗯。」

我就趕快過去了,本來我也預計要三點半的,結果十分鐘我就到了,哇哈哈,其實沒有騎很快,主要是走去牽車的時候走快一點就好了。到的時候已經有人了,不是空檔,所以我就掛號先,然後坐在那邊等等等等等,等到四點終於輪到我啦,很開心,醫生問我是不是要拔智齒,我說是,他先看了一下「恩,你這個都蛀掉耶,比較難拔,你先去照X光。」然後護士小姐就帶我去地下室照X光。

上來以後,又等了一下,醫生看了X光片,說:「你喔,不早點來,你這個外面都蛀掉了,現在這樣就很難拔了,我要先把你的肉切開,然後把牙齒切碎,然後還要刮骨才能拔。」「…………(這個時候我已經不想拔了其實 = =)」這個時候醫生的老婆來了,是一個看起來很和藹慈祥的媽媽,她說:「你是要拔智齒嗎?」「嗯嗯~」「可是沒有預約的話,本來我們是不該幫你拔的~」「喔喔(太好了)~~這樣的話不拔會怎樣嗎?就是我一直放著的話……」醫生:「不行!你這個現在不拔!以後更難拔!我今天就要幫你拔!來,躺好!」「阿……」然後就躺上去了。

之後醫生一邊念著說我這個很難拔怎樣怎樣類似的,然後說我這個要打三針麻醉,因為會痛到很深,我聽了真的很害怕,一般都是兩針的樣子。醫生噴了藥,我感覺麻麻的,這大概是外用的麻醉吧,然後用針筒打了麻醉,可以感覺到針刺進去的時候並不是這麼痛。然後過了幾分鐘,又打了第二針,然後又打了第三針。過了一陣子,醫生用東西戳戳我的肉,「會不會痛」「不會」「這樣就有麻醉了」「喔喔」「等一下如果痛了你要講」「…………我怎麼講?」「你可以發出聲音,或是舉手,我就知道了」「喔喔~好~~~」

然後我就被蓋上布,眼睛看不到東西,只能聽到跟感覺到東西,然後就感覺醫生在我的牙床上面吸哩呼嚕的搞東搞西,其實可以感覺到他在切我的肉,也可以感覺到他在切我的牙齒,然後拿出來,但是就不會痛,我很緊張,但是不會痛,所以也就還好,我沒有亂動,只是全身很用力的緊張。然後可以感覺到比較外面的好像都處理掉了,醫生開始往很裡面切割,越切越深。「靠,有點痛的感覺!」我心裡面在想,但是還可以忍受,大概是因為已經弄到很深的地方了吧,所以真的就有痛。然後就更深了!「幹,有痛~」喔喔喔~好痛~好痛~怎麼這麼痛!感覺麻醉好像沒什麼效果,好痛喔!我全身都在用力,然後很緊張,我想到醫生說如果痛的話要發出聲音,我就「嗚嗚嗚嗚~」,但是醫生好像沒聽到耶?他還是繼續他的動作,所以我就繼續「嗚嗚嗚嗚」,嗚的更大聲了!但是醫生還是沒聽到,他還是繼續,但是真的很痛阿!然後我不知道怎麼辦,很痛,我腦袋已經不太能思考了,全身都在用力,很痛!怎麼辦?我很痛,但是我嗚嗚好像太小聲了,醫生沒有聽到,嗚嗚,怎麼辦~~~好痛 ><~!!然後我突然想到「對了!我還可以舉手~」因為醫生在我右邊,所以我就把左手舉起來,一開始舉一點點,但是醫生好像沒看到的樣子,後來我就舉很高,然後嘴巴還是繼續嗚嗚嗚嗚的喊著,越嗚嗚越大聲!醫生還是不知道我在痛,嗚嗚,好想哭喔,但是好痛,我全身都在用力啦,也沒辦法哭,這個時候我聽到腳步聲走過來,然後有人握住我的左手,是醫生的老婆!耶!太好了,終於有人注意到我很痛了!對!我很痛!我的左手舉起來代表我很痛!這個時候他老婆就把我的左手握住,緊緊的壓在我身上,然後醫生繼續動作。「…………」天哪~~~我舉手就是因為很痛阿!你幹嘛把我壓住,我想要再把手舉起來,但是她把我的手緊緊壓住,我沒辦法,嗚嗚~好想哭~我快昏死了~嗚嗚~~~就在我快要掛點的那個時候,我急中生智「對了!我還有右手!」我就趕快把右手舉起來,然後繼續「嗚嗚嗚嗚~」然後我感覺到另外一個人把我的右手握住,是護士小姐,然後把我的右手壓住,不讓我舉。等等,不對吧,為什麼我嗚嗚不鳥我,我舉手也不讓我舉還把我壓住,你自己剛剛說會痛要出聲音或是舉手的,但是嗚嗚你不鳥我,舉手又把我壓住,那你剛剛說會痛要說,根本就是唬爛我嘛!天哪~之後我就只能一直嗚嗚嗚嗚,一直全身用力,非常痛!痛痛痛!然後突然一陣超痛的!超痛!我聽到醫生的老婆說:「是不是特別痛?」「嗯嗯嗯嗯!!!」「那就對了……」什麼對了?!什麼對了?!我很痛阿!什麼對了?!我都聽不懂你在說什麼阿!你不是應該要住手嗎?然後「嘎~」醫生:「好了。」

兩位淑女把我放開了,醫生開始縫合,我回復理智,發現自己全身都是汗,雙手很痛。過了一下子醫生縫好了,叫我漱口,很多血,我想本來應該更多,因為醫生一直都用吸管放在我嘴巴裡面把多餘的液體吸走。醫生塞了一塊棉花叫我咬著,四十分鐘不能放,有助於止血,然後二十四小時內都不能吐口水,都要吞下去,我想主要是因為會一直流血吧,所以不想我看到。

我起身離開牙醫的床,跟牙醫還有他老婆還有護士說:「謝謝你們救我一命。」然後走出去,經過外面候診的地方,所有的人都在看我,一臉驚恐,「歹勢,嚇到你們了。」我說。然後我去斜對面的藥房領了藥,藥師又跟我說我剛剛忘記拿健保卡,所以我又回去拿了健保卡,就離開了。

之後去買了要打圍巾的毛線,這一次去,才注意到這個毛線的價錢,是 280 一球,真的有貴到。然後回家的路上臉開始痛,大概是因為麻醉開始退了,不過那個時候我還沒注意到這件事情,我只是覺得不太會痛,覺得很OK,也沒想到自己是開始在痛了。我覺得自己不會痛,所以還買了三明治準備要當晚餐吃,因為醫生說我不能吃熱的東西。路上去黃金比例買了好喝的珍珠奶茶,很開心,然後回到lab,準備要吃三明治的時候,慢慢發現我每次咬三明治都很痛,喔,好痛喔,但是還不太明白發生什麼事,也就是說,其實我還沒發現自己在痛,我只是覺得自己怪怪的,等到真的很痛,我才發現我真的很痛!然後又過了很久,我才發現我其實是喉嚨痛,就是感冒的那種喉嚨痛,很痛,我連吞口水都會痛,所以沒辦法吞東西,我下顎上下運動也會很痛,所以沒辦法咬東西,大家都叫我不要吃了,我就把三明治塞到冰箱。我本來想說要吃完晚餐再吃醫生開的消炎止痛藥,但是大家都叫我先吃了,我就先吃了。

接著是研究室踢足球的比賽,所以大家就跑去操場了,對手很機車,就是加油的人嘴很機車,開場一分鐘就弄的黑鬼不高興了,接著就是我們可怕的狂電時間,對方還有一個唯一會踢球的也踢得很兇,拉人推人外加不收腳,就是打很狠,所以場上氣氛很火爆,以前都沒這樣的,我們研究室一向都是歡樂取向。我在旁邊看的也火起來了,某次射進一球以後,我就開始狂喊,也不管喉嚨痛了!就死命喊!本來可是連講話都會痛呢 XD 最後是 8:1 狂電,世龍也生氣了,射門都很用力的那種,贏了很開心,真的。

看球的時候外面很冷,我想說我這個喉嚨痛其實不是牙痛,是感冒造成喉嚨發炎的關係,到了晚上十二點多的時候,我發現我狀況好多了,我就先把三明治吃了,不然不吃東西也不是辦法。第二天早上,狀況又好一點,但是依然會痛,我看鏡子發現我下巴右邊靠脖子那邊腫了很大,很明顯,這個時候我就知道我其實不是感冒,是因為拔牙對牙床那邊傷害,導致發炎腫脹,也擠壓到喉嚨那邊去,所以才會這麼痛。知道原因啦,所以之後我就都很乖的吃藥,想說這樣可以抑制腫痛的症狀。大概一個禮拜以後,整個就好了。

拔牙的時候,醫生的老婆說一個禮拜以後來拆線,我是禮拜二拔的,所以應該要禮拜二拆,但是禮拜二三剛好颱風來,超冷,不想出去,就拖到禮拜四去拆線。拆線完以後,醫生說我這個坑坑不會這麼快長好,所以他先跟我塞個藥,這樣吃東西的時候食物不會掉進去,然後說這個藥味道不好,叫我忍耐一下,然後塞進去的東西,會慢慢自己掉出來,跟我說不用注意,說十五分鐘內不能漱口。

騎車回去的路上,我就深深感覺到那個藥的味道有多噁心,一直讓我想吐,我騎車回去的路上,一直在吐口水,但是真的很噁,吐了,又有新的味道冒出來補充被我的口水稀釋掉的味道。一直撐到我可以漱口,我就先輕輕漱口,因為想說藥還是對我有幫助的,就不想讓他沒有,所以就沒把他漱掉。晚上在水木吃晚餐,我一邊咬食物,就感覺到醫生塞的藥好像快要跑出來,然後那個味道一直冒出來,我好不舒服,後來真的味道很明顯,我就去廁所漱口,結果藥棉掉出一小塊,我漱口以後好多了,就回去繼續吃東西。等到當天晚上我要睡前,那個味道又冒出來,真的很怪,然後我去漱口,結果整個藥棉都出來了 @@" 喔,好噁的味道,我差點吐,但是忍住了,然後把嘴巴裡面的味道清一清,之後就很開心的睡覺啦。

到現在,就是臼齒後面有個空空的洞,有的時候還會有一種類似痛的感覺,但是又好像不是,不過感覺很輕鬆了,因為嘴巴裡面沒有一直都是血的味道,血的味道會讓人不舒服。

2007年11月14日 星期三

Cog, Python-based 的程式碼產生器

Cog 是一個 python-based 的程式碼產生器,http://nedbatchelder.com/code/cog/,讓使用者可以把 python 混在 C++ 的程式碼裡面來自動產生 C++ 程式碼,舉個例子,這是一個 C++ 原始檔,'Actions.cpp':
/*[[[cog
import cog
fnames = ['DoSomething', 'DoAnotherThing', 'DoLastThing']
for fn in fnames:
cog.outl("void %s();" % fn)
]]]*/
//[[[end]]]

你可以看到,python 的程式碼,實際上是寫在 C++ 的註解裡面,在我們用命令列執行過 cog 以後:
python cog.py -r Actions.cpp

他就變成這樣:
/*[[[cog
import cog
fnames = ['DoSomething', 'DoAnotherThing', 'DoLastThing']
for fn in fnames:
cog.outl("void %s();" % fn)
]]]*/
void DoSomething();
void DoAnotherThing();
void DoLastThing();
//[[[end]]]

黃色的部份是被產生出來的 C++ 程式碼。最後一行的 //[[[end]]] 是讓 cog 可以辨識出哪些是自動產生的程式碼,這樣使用者就可以在同一個檔案重複來生成原始碼,而不是去使用兩個檔案,一個來源檔跟一個目的檔。這是一個不錯的方法來自動產生 Java 或是 C++ 的 setter/getter 成員函式。對於大部分的類別而言,我們常常需要一大票的 setter/getter 方法。舉個 Java 的例子好了:
class Color {
int red ;
int green ;
int blue ;
void setRed (int r) { red = r; }
void setGreen (int g) { green = r; }
void setBlue (int b) { blue = r; }
int getRed () { return red ; }
int getGreen () { return green ; }
int getBlue () { return blue ; }
}

使用 cog 的話,我們可以這樣寫:
class Color {
/*[[[cog
import cog
data = ['red', 'green', 'blue']
for d in data:
cog.outl("int %s;" % d)
cog.outl("void set%s%s(int v){%s=v;}" % (d[0].upper(), d[1:], d) )
cog.outl("int get%s%s(){return %s;}" % (d[0].upper(), d[1:], d) )
]]]*/
//[[[end]]]
}

重新模組化一下,這樣寫也不錯
/*[[[cog
import cog
def data_member(d) :
cog.outl("int %s;" % d)
cog.outl("void set%s%s(int v){%s=v;}" % (d[0].upper(), d[1:], d) )
cog.outl("int get%s%s(){return %s;}" % (d[0].upper(), d[1:], d) )
]]]*/
//[[[end]]]

class Color {
/*[[[cog
map ( data_member, ['red', 'green', 'blue'] )
]]]*/
//[[[end]]]
}

這樣當你還有別的類別,你就可以直接使用 data_member 這個函數了。
甚至呢,我們可以維護一個自己常用的 python 模組,像是 'mycog.py':
import cog
import MySQLdb

# create data member with setter/getter
def data_member(d) :
cog.outl("int %s;" % d)
cog.outl("void set%s%s(int v){%s=v;}" % (d[0].upper(), d[1:], d) )
cog.outl("int get%s%s(){return %s;}" % (d[0].upper(), d[1:], d) )

# create a class according to a table in database
def create_table_class(table_name) :
c = MySQLdb.connect(...).cursor()
res = c.query('describe ' + table_name).fetchall()
cog.outl('class %s%s {' % (table_name[0].upper(), table_name[1:]))
for field = res :
cog.outl(...)
cog.outl('};')

這樣,你就可以像這樣複用這個模組:
class Color {
/*[[[cog
import mycog
map ( mycog.data_member, ['red', 'green', 'blue'] )
]]]*/
//[[[end]]]
}

/*[[[cog
mycog.create_table_class(student)
]]]*/
//[[[end]]]

你大概會得到(根據你資料庫表格欄位而定):
class Color {
/*[[[cog
import mycog
ap ( mycog.data_member, ['red', 'green', 'blue'] )
]]]*/
int red;
void setRed(int v){red=v;}
int getRed(){return red;}
int green;
void setGreen(int v){green=v;}
int getGreen(){return green;}
int blue;
void setBlue(int v){blue=v;}
int getBlue(){return blue;}
//[[[end]]]
}

/*[[[cog
mycog.create_table_class(Student)
]]]*/
class Student {
String name ;
Date dayOfBirth ;
String gender ;
String Department ;
...
} ;
//[[[end]]]

2007年10月16日 星期二

勇者大人

Oliver 在家後面的工地撿來一隻新的小喵。


禮拜四撿來的樣子,男生,一個半月大,不太健康,醫生說有感冒,而且可能也有寄生蟲。是很漂亮的虎斑,腹部的毛色偏白,形成很漂亮的黑白虎斑,另外腳底的肉墊也是很很可愛的粉紅色。

完全不怕人,很親人,喜歡窩著人睡覺,也蠻喜歡哭哭哩的,所以常常會去靠近哭哭哩,唯一的問題是哭哭哩很害怕他,可能是因為沒有看過別的貓咪吧,看到一隻花斑斑的東西就覺得很害怕,每次看到他或是聽到他的叫聲,哭哭哩就是全身緊張起來,然後一直發出嗚嗚的叫聲,呈現警備狀態,但是顯然是害怕大過敵意的,當兩個人太接近的時候,哭哭哩甚至還會出手攻擊。

名字一開始 Oliver 說要叫「小虎」,但是醫生阿姨跟小魚兒互看一眼以後,決定忽略這個提議,Oliver 不放棄,再提「那小豹好了」,當然還是不會有人要理他,然後名字就這樣懸宕了沒決定。我在跟小朋友講到家裏有貓咪的時候,小朋友說:「名字叫做『勇者大人』!」哈!真是天才!明明就是這麼明顯的名字我竟然沒有想到!的確沒有比勇者大人更適合的名字啦!就這樣,勇者大人就叫做勇者大人了。

話說可憐的哭哭哩真的很可憐,勇者大人只要一靠近他就緊張兮兮,沒辦法,只好多安慰她,多抓來摸摸,講話,抱抱,然後抱抱睡覺,一直摸一直摸,哭哭哩就會比較安靜,然後在懷裡乖乖睡覺了。醫生說哭哭哩大概要一兩個禮拜才會適應,希望那天快快來到。也許已經很快嚕,因為阿,禮拜天晚上我要走的時候,他們兩個就已經可以一起睡覺了呢,發現哭哭哩想睡覺的時候,警戒就會降低,這個時候把勇者大人抓過去,或是勇者大人自己靠過去,咕咪都不會怎麼樣,兩個還可以抱在一起睡覺喔,真的好可愛 ^^

話說勇者大人跑的還蠻快的,而且跑的時候真的超可愛的說,小手小腳頭大大,他跟哭哭哩不一樣,就是腳很粗壯(看起來很粗壯,小朋說這是因為不同品種,我是不太懂),不像咕咪很纖細,他毛也比較長,所以看起來總是一球一球的感覺,跑起來的時候阿,小手小腳,感覺就只有一個毛茸茸的身體頂著一顆毛茸茸的頭,然後他腳真的是那種兩手一起,兩腳一起的跑法,就好像是卡通裡面那樣,超級可愛的 >"< 心裡有一種想法,希望勇者大人永遠不要長大,這樣就可以一直保持小時候很可愛的樣子了。可是不長大好像也很可惜喔?這樣就沒辦法看到他長大的樣子了。

喔,對了,家裏買了 Wii,回家玩了網球很開心,手好像受傷了 O_O"

2007年10月11日 星期四

如何把 IronPython 整合到 Visual Studio

這篇文章,翻譯來自於 Aaron Marten 的 blog,文章標題是 A bit more on IronPython。我在徵求了 Aaron 的同意以後,翻譯成中文,並依對於 Aaron 的承諾,附上原始出處。

要怎麼把 IronPython 整合到 Visual Studio 2005?

首先,你要去下載這個最新的 Visual Studio SDK(Version 4.0),這邊要注意的是,這個 IronPythonIntegration 的範例,只能用在 Visual Studio 2005 (或是更新的版本)如果你的機器裝的是 .Net 1.1 跟 Visual Studio 2003 的話,那就沒辦法用啦。

我要用什麼版本的 Visual Studio?我可以把他用在 Express 版本上嗎?

很遺憾,不可以。 Visual Studio Express 不支援擴充能力,這是 Express 版本的限制,不是這個範例的問題。你需要標準版或是更高階的版本才能使用這個範例。

另外,你也需要安裝 Visual C++ 來編譯這個範例(所以如果你的 Visual Studio 只有裝 VB 的話,那一樣沒辦法安裝這個範例)。目前所有的 Visual Studio 擴充專案都有這個限制,因為我們需要 C++ 的 preprocessor 去編譯這些範例裡面的 CTC 檔案。(CTC是用來描寫整合到 Visual Studio 時 menu 的結構)

好啦,我已經下載好那些東西啦,那我現在要怎麼讓 IronPython 在我的 Visual Studio 裡面可以動?

打開你的 Visual Studio 2005 (而且你的 SDK 以已經裝在預設的位置),開啟下面這個方案(solution)"C:\Program Files\Visual Studio 2005 SDK\2007.02\VisualStudioIntegration\Samples\IronPythonIntegration"。接著很簡單,你只要按下 Ctrl+F5 去建置你的專案就可以了。建置完成以後,他會自動以「實驗蜂槽模式(Experimental hive)」開啟一個 Visual Studio,裡面就有已經整合好的 IronPython 擴充功能。(另外一種開啟實驗模式的方法是以命令列執行"devenv /rootsuffix Exp")

這邊注意一下阿,如果你直接按 F5(而不是Ctrl+F5)執行的話,你的電腦可能會給你一些 exception 或是 MDA(managed debugging assistant) 錯誤訊息,不過那都不重要,你可以不用管他。

恩,我覺得我已經成功的建制並且執行了,阿現在勒?

那你現在可以用「建立新專案」功能,建立一個新的 IronPython 專案,就像是你建立一個新的 C#/VB/J#/C++ 專案一樣。我建議你一開始應該先開一個 console 專案玩一玩。如果你開一個新檔案,是用 .py 當作副檔名結尾的話,你會發現 Visual Studio 很聰明的會幫你加上 syntax coloring。

另外這個範例有一個很酷的小東西,就是一個叫做 IronPython Console Window 的小工具視窗,你可以從「檢視-其他視窗」來開啟他。這個小工具視窗的功能就是一個互動式的 IroonPython 環境,讓你可以快速的測試你的語法。

關於這個小視窗,還有一件事情要附註一下,就是裡面有個變數叫做 dte,有這個 dte 你可以透過 Macros IDE 自動化操作 Visual Studio(automate Visual Studio),也就是說:你可以用 IronPython 來寫 VS 的 mini-macros,而不必再用 VB 啦!

為什麼我可以編譯?我以前根本就不能編譯任何的 IronPython 程式碼阿?

在過去幾個月裡面,IronPython 團隊加了一些編譯器介面到 IronPython.dll 裡面,所以透過這個 .dll 我們可以編譯 IronPython 程式碼。有一個必須的認知是:這個編譯器編譯出來的程式碼,必須要仰賴這個 IronPython runtime 才能夠執行,也就是說你需要有這個 IronPython.dll 檔案才可以。畢竟這是一個動態的語言,所以當你執行你的 IronPython 程式的話,每一行程式碼都需要被重新檢查型態跟評估其值。

這代表著,你在 IronPython 寫的程式碼,所產生的 MSIL 不會像是你在 C#/VB 所寫的那樣。事實上,你應該沒辦法在其他語言完整的使用以 IronPython 開發出來的功能。

還有什麼特色阿?

一個「範例」就是一個「範例」,也就是說,這只是一個用來示範怎麼把 IronPython 整合到 Visual Studio 2005 的「範例」,所以呢,很多功能並沒有被實做出來,或是即使實做出來了,也不太穩定。雖然如此,這個範例還是很有限度的支援了以下個功能:
  • MSBuild
  • Windows Forms Designer(可以讓你建立視窗程式)
  • WebSite Projects
  • Web Application Projects
  • Intellisense(程式碼自動完成的功能)
  • Demonstrates use of MPF feature

我有好幾個 module(.py檔案) 要彼此互動,那我要怎麼作?

很簡單,把你的檔案都放在一起就好了。比方說,我有一個主程式檔叫做 program.py,然後我有要用到 myModule.py,那我就把 myModule.py 放到跟 program.py 同一個目錄下,然後在我的 program.py 加入一行:
import myModule

這個範例裡面包的是什麼版本的 IronPython?

Visual Studio 2005 SDK 裡面放的是 IronPython1.1 的 pre-beta 版本。

有沒有不用下載 Visual Studio2005 DSK 就可以用 Visual Studio 跑 IronPython 的方法阿?

到目前為止,我們唯一釋出這個 IronPython 整合範例的方法就是透過 VSSDK。

但是呢,IronPython 團隊已經釋出了一個 IronPython for ASP.NET CTP 的東西,包含了這個範例的部份功能。不一樣的是,這個 ASP.NET CTP 只以 binary 的形式釋出,然後他不需要 Visual Studio SDK。

恩,我覺得我發現了 bug 耶……

如果你有任何困難,問題,或是建議,拜託請回報給我們!

2007年10月10日 星期三

言多必失

下面那篇,就是本人亂說話不小心誤會別人的實證啦,自己警惕一下。
也要對自己多點信心,很多人都會關心我的,乖。
不知道要多久才會復原,我想我永遠都很難有信心吧。

2007年10月8日 星期一

眼睛有問題

禮拜五,中午吃飯的時候,眼睛紅了,不知道為什麼,就紅的,被詩芳注意到的,小朋友也看到了,說我眼睛怎麼了,說很紅,我說不知道,內心想說應該是就手髒髒揉眼睛弄的,覺得這是小事,因為以前也有過幾次,但是詩芳跟小朋好像覺得這很嚴重,一直要叫我去看醫生。

推託了一下,因為我真的覺得這是小事,想說去看醫生,醫生大概也是說這沒什麼,就多休息,不要揉眼睛,大概就這樣,所以不想去浪費時間浪費錢,但是小朋跟詩芳就很堅持要我去看醫生,凹了一天,凹不過去,答應了。

但是接著兩天就是颱風天,沒辦法,被關在學校,結果連續被念兩天。明明是關心我的,卻老是要用兇的,我想,她們應該是關心我的吧,應該是吧。小朋跟詩芳都是好孩子,內心都充滿愛,跟我不一樣呢。中午吃完飯以後,趁著下午還沒開會之前,查了一下附近的眼科,學校對面往NOVA方向就有一家,就過去了。

沒什麼人,護士一個人在櫃台裡面,掛號以後就進去,不用排隊,醫生看了一下說是過敏,對灰塵,塵蟎之類的東西比較敏感,所以眼睛會這樣,給了兩罐水,一天四次,三天。就這樣。

回來,下午小朋跟我講的第一句話就是眼睛看了沒,我知道詩芳是對我很好,但是小朋應該是因為要我幫詩芳,所以才管我這麼多。我想到她最近對我的口氣,她跟我說過兩次「你快去幫詩芳把她東西弄好!」,聽了其實不開心,因為感覺口氣像是命令的。我幫詩芳是因為我喜歡詩芳,我看到她那樣做事的態度讓我很喜歡,我發自內心的想要幫她,跟小朋友你沒有關係,我要不要幫詩芳是我的自由,妳沒有資格跟我說「快去幫詩芳把她東西弄好!」我喜歡她,所以我會幫她,妳關心她,不過妳沒有權力要求我那樣作。
講是這樣講,其實小朋也看不到這個 blog,只有我自己在看,所以發發牢騷,就這樣。


如果說有什麼東西叫做言多必失,那上面這段就是啦 = =||||||
結果給小朋友知道了,她還來跟我澄清,害我亂不好意思的。其實我只是覺得自己很糟糕,不值得人家關心,所以每次被關心,都會自己胡思亂想別的原因。
是哪個人看到了跑去講的阿,自己招來,害我尷尬死了 XD