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

2007年10月2日 星期二

沒做事跟沒能力

最近真的是沒做事又沒能力。

小朋友這幾天一直為了論文的事情一直在想東西,我倒是都沒有進度,其實到目前為止,論文在理論上的進步,都是小朋友突破的,我什麼也沒作,不過小朋友總是覺得我很厲害,覺得我已經做了很多,我真的覺得很愧疚,因為我真的什麼也沒作,這樣投出去的 paper,要是我在上面有掛名字,我會覺得很不好意思。每次小朋友跟我講東西時候,我都聽不懂,都要讓她重新講兩三次,我才會慢慢進入狀況,然後只能提出一點點點點想法,雖然她總是說我有給她很多幫助,但是我真的不覺得。對於那些理論的東西,我真的是不學無術,都沒有什麼在進步。

我都只能憑過去的經驗,快速的 coding 來幫助別人,可是對於理論,我就沒什麼想法,詩芳好像覺得我很厲害,不過其實再過一陣子,她就可以恨快追上我了,小朋友也是。而我在理論還是原地踏步,到現在,我對我的論文題目都還沒有確定呢,怎麼辦才好呢?

恩,剛剛跟小朋友下班以後,想說偷偷想要來幫詩芳的忙,但是到的時候,她已經在收東西了,然後一直逼問我幹嘛要來,真是糟糕,我被抓包了,本來是想要回來幫忙的,結果「ㄅ一ㄚˋㄎㄤ」了,真是笨蛋,我只好一直說我是來玩的,我是來玩的,我不想睡覺 = =

2007年9月27日 星期四

中壢 = 咕咪 + Wii

中秋節要回家的說。

回家,結果家裏沒有人,等到很晚還是沒有人,我也沒看到哭哭哩,找上找下都沒看到,難過,想說是不是跟前一隻一樣不小心跑出去,結果就沒有回來了。等到好晚,沒有人,我只好自己打電腦,然後大概十點多聽到喵咪聲,從上面傳來的,我就走過去,我咪,她咪,我咪,她咪,恩,果然在上面耶,大概是我進門的時候,他剛好被關在辦公室吧,然後辦公室的門被風吹關起來,她就被關在上面。開了門,他就跑出來,哇~長大了,好開心,好久沒看到咕咪了,嗚嗚,要是早知道你在上面,我就早點去找你玩了,不用一個人很可憐在樓下打電腦,咕咪給人抱,很乖,還會自己跳到我腳上,越來越喜歡她啦。

沒有一分鐘,媽咪也回來了,還真是剛好喔。媽咪說小蘿蔔頭在阿罵家,明天才會回來。

晚上一邊看電影,一般寫程式,一邊玩貓咪,然後鶔眼睛覺得眼睛很不舒服,想說去洗澡,咕咪竟然跟來,那就一起抓去洗。咕咪很乖,洗澡也不太跑,大致上算是乖乖給我洗。真的很可愛,抱在手上可以乖乖給摸還會睡覺睡得翻掉,喜歡。程式用 Ultimate++ 寫了華容道,但是有 bug,一直到我離開中壢,bug 都沒找到,生氣!

第二天早上六點才睡覺喔,因為寫程式累了,房間因為被小魚兒弄的髒髒臭臭,所以去客廳睡了,很舒服。早上媽咪醒過來,幫我開了電風扇,也有跟我說話,但是已經忘記說什麼了,然後就繼續睡了,喔,對了,媽咪好像說是要去打牌吧。然後睡到下午了,聽到電鈴聲,小鬼回來了,帶了 Wii。

然後就開始一直打 Wii,玩到吃晚餐,八點就騎車回家。騎車的路上撿到一隻手機,打了裡面通訊錄的電話,找到主人的弟弟,昨天他們來把電話拿回去了。

2007年9月22日 星期六

一次噴出很多新想法

最近進行的工作:

經過漫長的努力,詩芳今天終於完成資料庫的整理了,明天開始要進行 query 的動作,接下來這個程式碼也會麻煩,但是我想我們會完成他的,一個一個功能來完成。話說本來今天就可以進行查詢了,但是晚上跟小朋友討論論文,所以詩芳這邊的進度就延後了,感謝詩芳的體諒,並沒有催促我,謝謝。但是她還是等我等到十二點,真的很對不起。(可能不是在等我,只是我自以為XD)

跟小朋友討論研究內容,最後定在 state mapping 這個點。我想這是可以的,儘管我不確定結果會很好,但是我覺得可以作(只是這邊我還是有點擔心其物理意義,我擔心這邊不會這麼順利,因為 state 的 energy value 對於 state space graph topology structure 的代表性似乎還是不足以代表 state 的獨特性。但是在問題比較單純的時候,我想效果還是會有,只是在考慮多對一的狀況下我不知道會是什麼樣子)。在我看起來,sigma(abs(eigenvector/eigenvalue))的直觀意義,好像是考慮 connectivity 的 degree(也就是類似『腹地』或是對外界的流通性)其來源還可以想像,大概是來自於 eigenvector 對稱性會跨越於 0 的兩邊,然後「因為區塊內部的局部對稱性」所以會在區塊內部形成對稱行為,但是在靠近牆壁(graph不相連處)的地方就會因為極值被絕對值以後被累加起來。

話說小朋友今天晚上的反應很好,一點點東西她就可以很快反應,會想到很多我沒想到的,詩芳說得沒錯,她的確很有才能,在現在慢慢進步以後的確展現了(該不會是她快睡著的時候腦袋就特別清楚吧?)。

我也在這邊想到一些東西,跟這次要投的論文無關的。一個是把跟 SOM 類似的作法用在 RL 上面,我在進行 Q-Learning 的時候,一旦遇到 reward,就對這個 reward 進行一次 flood fill,但是距離 reward state 越遠的地方,影響就越小,這樣不是可以有效加速 RL 的速度?跟隨而來的問題是 local optimal(這是小朋友想到的問題,很好)是,這樣可以增加速度,但是會有 local optimal 的問題,好,那我在這邊有個解法,我們使用 AIMA 講的 active learning 可以改善這個問題,另外一個方法是,我們可以採用 multiagent 來同時在 graph 裡面進行 active learning,這樣掉進 local optimum 的問題(也許)可以改善。其實進行 flood fill 的行為,我會想他類似於動物找到食物就大聲喊叫,或是放出費洛蒙(應該比較類似費洛蒙,因為具有時間的持續性(那乾脆再考慮隨時間遞散的效應?)),這樣別人聞到這個費洛蒙,就也會跑過來這個點。恩?我可以把同樣的方法用到 PSO 上面嗎?恩,不對,因為 PSO 本身其實就具有遠距傳達訊息的能力了(所有人都知道目前最佳解在哪(話說考慮區域性?))這樣說起來,這個方法其實很像是考慮區域性的離散型 PSO。突然想到,關於動作的不確定性對於 flood fill 的影響,好像都沒有考慮到?如果是有向圖的時候,記住 flood fill 的方向是要注意的。(想到了,這個有困難,因為 flood 的時候你要知道點跟點之間的距離來決定 fill 的強度,但是光跑 all pair shortest distance 就需要 O(n^3) 的複雜度,那樣太貴了。不好意思,我是北七,這邊根本就可以用 Breadth-first search 就根本不用考慮這些問題,所以可用,另外,動作的不確定性,直接影響於 fill 時候 reward 傳導的比例就可以了,所以這個方法確實可用,不過,不過什麼?不過要知道環境長什麼樣子,還是需要付出 explorer 的成本,這倒是不能缺少的,現在一直在想的是:進行 RL 跟進行 explorer + flood fill 的成本到底哪個高?另外,怎樣叫做 explorer 完成?)

另外一個想到的是,如果我們可以很漂亮的處理 scale 問題,那我其實可以在不破壞 topology (透過 graph laplacian 來進行 decomposition 或是平滑度確認?)的狀況下,把問題的 scale 縮小,然後解完之後再放大到原來的大小,這邊因為我知道當初從大到小是怎麼縮的,所以可以很輕易的把小問題放大回去,這個好像真的不錯?(糟糕,好像很多題目都可以作,不過大概也有很多都已經有人作過了) 話說正在打篇文章的時候,跟 rockogl 討論到好像也可以用 GPU 來算 ML,這也是一個很不錯的想法,不過不會上什麼 paper,只是可以跑恨快而已。(此時他的暱稱打著@SIGGRAPH,去觀摩的)

對了,Rine 已經初步算是完成開發了,大部分目前要用到的功能都有了,也不錯用,感謝 C# 給我的開發效率 ^_________^ 耶,話說現在的字串處理能力也進步很多了(詩芳應該也進步很多了,因為我們兩個都是一起在做),託詩芳的福,很開心,regular expression 真是好東西,Python 真是好東西。

好,今天就這樣,明天要早起,幫詩芳弄程式,另外還要幫小朋還書。