To say a simple thing

Wednesday, January 25, 2006

The move

This blog is moved to descriptor, and will not be updated anymore.

Saturday, December 31, 2005

dusk of cuckoo (杜鵑鳥的黃昏)

杜鵑鳥的黃昏 - 作詞:莫凡 作曲:莫凡

你說 秋天走了你也要走 悄悄飛向天的盡頭
你已習慣自由的生活 和遼闊的天空
你說 宿命總是要你遠走 注定一生落落的寂寞
讓我今生為你守候 作你最溫柔的風

誰知闖入紅塵 一旦醺然入夢
無聲悲泣哀鳴 任憑風吹雨落
但願重上枝頭 寧作花間粉紅
好夢一場總成空 化作縷縷相思游

是否 只是一個難圓的夢 蒼天靜靜向我訴說
終於知道你是那個 永不過夜的寒冬

註:原來杜鵑鳥是布穀鳥!
  我家的咕咕鐘啊!布穀!布穀!布穀!

broken hearts (受傷的心)

受傷的心 - 作詞:吳宗憲 作曲:吳宗憲

受傷的心已經無閒 無閒聽你擱講分明
就欲離開的行李內 找無你我的將來
男人的心嘛真堅定 擱再講感覺無著你的愛情
這張無留住址的批 代表阮永遠無後悔

啊... 傷心傷心的話 請你放置你的心肝底
無論天涯 亦是海角 阮永遠欲走乎你找
啊... 愛情愛情是假 何必聲聲句句欲挽回
若是日頭從西邊出來 阮還是決定欲走乎你找

Monday, December 12, 2005

Toward freedom

Some days ago, I decided to get rid of Matlab because
  1. It is heavy. It takes at least 3 seconds to start itself and usually the programs are running slowly compared to the programs written in Python.
  2. It is propritary. Although many people in the control field use Matlab to do simulations, I don't agree with that. Why not use open source software instead? For operations with matrices and transfer functions, I highly recommand Scilab. As for numerical calucations, I think any programming language will perform better than the Mablab programming language.
I use the Python programming language to do numerical calculations, but it don't have a built-in library to plot figures. So at first I use Python to generate the data needed for plotting and then use Matlab to load those data to plot the figures. Few days ago, I try gnuplot. Although I've known gnuplot some years ago, I do not give it a try. To make gnuplot work with Python is not hard. The following is my solution (not elegant but works)
def gnuplot(d_name):
gnuplot_cmd = "splot '%s' using 1:2\n pause -1\n'" % d_name
fcmd = open("XXX.dem", "w")
fcmd.write(gnuplot_cmd)
fcmd.close()
system("XXX.dem")
Today, I decided to get rid of IE because it does not conform with the W3C standard. Now my main browser is Firefox.

世代傳承的意志 時代的變遷
人們的夢 只要人們繼續追求自由的答案
這一切的一切都將永不停止

這世界 沒錯 一個追求自由任憑選擇的世界
就在每個人的眼前無限地延伸
如果我們的夢想可以引導你的方向的話 就去追尋吧
在名為信念的旗幟之下

Friday, December 02, 2005

Convexity

Recently I enjoyed surfing homepages of famous people in the control field. At first, I don't even know those people have a homepage. I came across their homepages because I wanted to find an old paper whose electronical version was not available through school's library. So I used google to search the paper's information. And found some authors place pdf files of the papers in their homepage, which is a nice idea from my point of view. I also found there are many interesting things in their homepages, e.g. their lecture notes, old papers, books, biography...

I especially like to see their lecture notes, because they are usually written in a compact way, only the main and important concepts are listed in the notes and tedious calculation are omitted. This helps me to quickly catch the most important idea that the authors want to convey.

Today I read three different people's lecture notes:

  1. Stephen P. Boyd: Convex Optimization in Electrical Engineering.
  2. Carsten W. Scherer: LMI Relaxations in Robust Control.
  3. M. C. de Oliveira: Background material on convexity.

I found one thing in common: they all have the following quote

The greatest watershed in optimiztion is not between linearity and nonlinearity, but between convexity and nonconvexity.

Rockafellar

Tuesday, November 15, 2005

Code optimization

最近在寫 fuzzy 作業,這個作業需要寫程式,本來是想用 Matlab 寫的,但寫了一小段之後就放棄了,因為 Matlab 這個程式語言的彈性實在太差,為了寫一個 function 還要新建一個檔案,實在有夠鳥。最後我還是用我喜歡的程式語言 Python 寫,輕鬆愉快啊。我遇到一個程式碼最佳化的問題,原來的一段程式碼如下:

for i in range(1,12):
for j in range(1,12):
mu_Ai = mu_A(i,x)
mu_Aj = mu_A(j,y)
t1 = t1 + mu_Ai * mu_Aj
t2 = t2 + g(step*(j-1)) * mu_Ai * mu_Aj

修改成

for i in range(1,12):
mu_Ai = mu_A(i,x)
if abs(mu_Ai) < eps:
continue
for j in range(1,12):
mu_Aj = mu_A(j,y)
if abs(mu_Aj) < eps:
continue
t1 = t1 + mu_Ai * mu_Aj
t2 = t2 + g(step*(j-1)) * mu_Ai * mu_Aj

速度從 0.98 sec -> 0.12 sec,提升了 8.17 倍啊!其實程式碼在完全沒有最佳化所花費的時間是 2.5 sec,所以最佳化所提升的效率是 20.83 倍,真是恐怖。

English translation of the above:

Recently I have to write my fuzzy homework. Firstly, I planned to use the Matlab programming language to do this job. But, after writting a piece of source code, I gave up because the Matlab programming language is hard to use. When I want to write a function, I have to write this function in a new file! So finally I turned to my favorite language, Python, and the homework is done within an hour.

The second piece of source code is the optimized version of the first piece of source code. The first one takes 0.98 sec and the second one takes 0.12 sec. The performance improvement is 0.98/0.12 = 8.17. Actually the original unoptimized one takes 2.5 sec, so the optimization makes my program 2.5/0.12 = 20.83 times faster. Wow!!!

ps. It is painful to embed the source code in the article. In WYSIWYG mode, the source code looks awful.

Monday, November 14, 2005

Commonly used software (常用軟體)

好像總是每個禮拜一才比較時間寫寫部落格,今天就把我常用的免費軟體做個列表好了。 我覺得一個好的軟體所要具備的條件是:介面簡潔,程式啟動快速,不會影響作業系統的執行。


[Edit]
  1. Vim: 史上最強的 text editor,沒有 Vim 的話我在使用電腦時就好像斷了一隻左手。
  2. MiKTeX: 我是使用 LaTeX 來當做我的 typesetting system,而 MikTeX 是 TeX 的一個 windows distribution,也可以編譯 LaTeX。
  3. ConvertZ: 簡繁轉換軟體,好用。

[Math]
  1. Sciab : 打算用來取代笨重且昂貴的 Matlab。不過 Scilab 不能從我常用的命令列來呼叫啊!我有找到另一個軟體 Octave,Octave 是發展於 unix 平台的,如果要在 windows 上使用的話,好像要裝 Cygwin,不過我用 google 找到一個 Octave for windows
  2. Gnuplot: 需要科學繪圖的話首推 Gnuplot。


[Net]
  1. FileZilla: FTP 傳輸軟體,我只拿來當 ftp client,好像也可以當 server 的樣子。已經取我原來使用的 LeapFTP
  2. PCMan's FTP Server: FTP 架站軟體,台灣人寫的。
  3. PCMan: bbs 連線軟體,作者同上。最早我是使用 Netterm,後來換成 PacketSiTE,而且我也註冊了,不過 PacketSiTE 好像已經停止發展了,所以我換到 PCMan。
  4. Free Download Manager: 已經取代我原來使用的 FlashGet

[Pic & Music & Multimedia]
  1. Media Player Classic: light-weight media player for Windows.
  2. XnView: 看圖軟體,打算用來取帶原來的 ACDSee
  3. Picasa: 相片管理程式,目前還不常用。
  4. foobar2000: 聽音樂必備,已經取代我原來使用的 Winamp
  5. Exact Audio Copy: 抓音軌的軟體。
  6. LAME: MP3 encorder,LAME 是一個 command line 的程式,使用起來有一點不方便,所以就有人幫 LAME 寫 front-end (GUI 介面) 來方便 LAME 的使用。而我使用的 front-end 是 RazorLame

[Go]
  1. MultiGo: 用來看 sgf 檔的圍棋打譜軟體,這是目前我用過覺得最好的打譜軟體。

[Utility]
  1. 7-Zip: 打算用來取帶 WinRAR
  2. EVEREST: 得知電腦的硬體資訊,免費版本停止發展了。
  3. Daemon Tools: 虛擬光碟。
  4. Sysinternals: 這家公司有很多好用的小程式如 TCPViewProcess ExplorerAutoruns

Monday, November 07, 2005

My heart is like ocean (我心似海洋)

在逛薄荷的網站時,看到我心似海洋這一首的歌詞,於是我就到 Baidu 找這一首歌來聽聽看,覺得還蠻好聽的,以下是這一首歌的歌詞:

我心似海洋 - 演唱:江美琪 - 歌詞:葉向華、姚謙 - 作曲:陳國華

小小的光亮 就足夠 在黑暗中指引方向
微微的眼神 卻能夠 推開孤單得到溫暖

輕輕的歌唱 若有情 就能讓人打開心防
淡淡的情感 有時候 卻能綿綿不絕不斷

多希望我是盞燭光 在你需要時候發亮
當你迷失指引方向 讓你脆弱時不再迷惘
我的心是一片海洋 可以溫柔卻有力量
在這無常的人生路上 我要陪著你不棄不散

我想要大聲歌唱 任何人都不能阻擋
與你分享生命之中 所有的快樂所有悲傷
我們的愛一直成長 不停付出不再隱藏
屬於我們的挫折希望 像露水滋潤花朵 綻放

就是這種光亮 小小的 卻能夠為人指引方向
就是這種愛啊 淡淡的 卻能夠給人無限希望
我在找這一首歌的 mp3 還有一段小插曲,一開始聽這首歌的時候,覺得幾個地方有點奇怪,一開始怎麼會有口白,而且 foobar2000 中的 mp3 資訊演唱者欄位是寫著 [To someone]。反覆聽過幾次之後,我還是願意相信這是江美琪的聲音,可是 mp3 中有幾個地方跟歌詞不合,尤其是最後兩句:給人無限希望為人指引方向的 ``人",都沒有唱清楚,我覺得這不太合理,因為歌手的咬字通常都非常清楚。 還有我想要大聲歌唱這一句,居然唱成我想要大聲歌唱,讓我不禁懷疑是歌詞寫錯了嗎?

這個疑惑在我下載另一首 mp3的時候解開了,原來我第一個找到的 mp3 居然不是原唱江美琪的版本,應該是網路上某個女生自己錄的版本。可是我聽了好幾次都沒發現這不是江美琪的聲音,雖然我硬碟中也沒有江美琪的歌,但根據電視給我的印象,江美琪的聲音應該是這樣沒錯。 我只能說這位網友的演唱功力直逼職業水準,讓我聽了這麼多次都沒發現。

我覺得這位網友的演唱版本(以後簡稱 N)跟江美琪的版本比較起來各有特色。N 的音質不錯,扣除掉唱錯歌詞的部分,跟原唱比較起來,高音顯得有點吃力。江美琪是屬於有點美聲的唱法,感覺她唱得蠻輕鬆的。不過我覺得 N 在感情的投入上似乎還比江美琪來得多一些。

ps. 後來我又聽了好幾次,發現 N 在第三段燭光的唱法跟原唱不同,應該說唱錯了。發現之前之所以會覺得 N 在感情上比較投入的原因,是因為 N 在詮釋這首歌時給人一種悲傷的感覺,而江美琪的詮釋則是給人快樂的感覺。我還發現專業歌手跟業餘歌手的差別,N 的尾音不穩而且會掉,感覺中氣不足,但江美琪的尾音則十分完美,轉音也很自然,如果要用兩個字來形容的話就是流暢

我發現 blogger 的標題如果使用中文會不能正常連結,所以就換成英文標題。