電影流水帳(2008/9/7~2008/9/11)

老弟的電腦最近因為隨身碟病毒中獎無法開機,經過幾番研究,看來只能用 Linux LiveCD 開機把資料複製到別的磁碟機上,再重灌了。

  • Crank(IMDB, Wikipedia),中譯:快克殺手。這部電影改編自電玩遊戲,故事相當有意思,簡單的說,就是主角被注射了某種毒藥,所以必須要在一定時間內完成任務,才能平安無事。電影裡有一幕很扯,主角為了要刺激自己的腎上腺素,就在大街上跟女友開始做愛,這幕讓我笑了好一會~喜歡看動作片的人應該是不會失望。
  • Indiana Jones and the Kingdom of the Crystal Skull(IMDB, Wikipedia),中譯:印地安納瓊斯:水晶骷髏王國。這次的故事講到了傳奇的馬雅文明,整體來說,還可以,但並不會有特別驚豔的感覺。片中有句話讓我印象深刻,Jones 回應久別的女友說:”之後我的確有跟其他女人交往過,但她們都有同樣的問題,她們不是你…”,這句話的確夠甜,應該要學起來。
  • Sky Hight(IMDB, Wikipedia),中譯:超人高校。片段地看完,還不錯看的校園片。片中提到了超級英雄與跟班的培育養成,這倒是我以前沒想過的。

電影流水帳(2008/9/1~2008/9/6)

家裡的 DVD player 在遭受小鬼數個月的荼毒之後,終於壽終正寢。老爸有拿一台中古的西屋,於是跟他拿來試用,目前正在試用中,不過看來不是很妙,會有讀不到片子的情況。

列出 log4net 設定裡所有的 repository 跟 appender

Debug 用的,主要是看自己的 log4net 設定對不對。

StringBuilder sb = new StringBuilder();
ILoggerRepository[] repos = LogManager.GetAllRepositories();
foreach( ILoggerRepository repo in repos )
{
sb.AppendLine( "=====" );
sb.AppendLine( string.Format( "{0} - configured={1}", repo.Name, repo.Configured.ToString() );
sb.AppendLine( "Appenders:" );
foreach( IAppender appender in repo.GetAppenders() )
{
sb.AppendLine( string.Format( "\t{0}", appender.Name ) );
}
}
sb.AppendLine( "=====" );
Console.WriteLine( sb.ToString() );

以 Visual Studio 2005 編譯 boost::regex

下載 boost 跟 bjam 以後,第一件事情是編譯。

  1. 打開 visual studio 2005 命令提示字元
  2. 切換到你的 boost目錄 下,這裡假設為 c:\boost_1_36_0
  3. 執行 bjam –build-dir=”c:\boost_1_36_0\build” –toolset=msvc-8.0 –build-type=complete –with-regex stage,就可以只編譯 boost::regex.
  4. 編譯會需要一陣子,編譯好的檔案就會放在 c:\boost_1_36_0\build\boost\bin.v2\libs\regex\ 下

在使用時,在專案屬性裡指定 [組態屬性][C/C++][一般] 的 “其他Include目錄” 為 c:\boost_1_36_0,再指定 [組態屬性][連結器][一般] 的 “其他程式庫目錄” 為 “c:\boost_1_36_0\build\boost\bin.v2\libs\regex\build\msvc-8.0\debug\link-static\threading-multi”,進行編譯即可。

booish 與 booc 編譯後的執行結果不同?

Boo Programming Language網上論壇發現了這個討論串:Problems with BooPrimer
發問者表示同樣的程式在 booish 執行與用 booc 編譯後的執行結果不同,我大吃一驚,趕緊試試,發現真的是跟發問者講的一樣,心想完蛋,怎麼會這樣…

i = 0
while i < 5:
print i
i += 1

隔了一天,有人(Stoo)回覆了,說 booish 在執行結束後,會再次印出 i 的值,並建議改成這樣,可以更能看出問題所在:

i = 0
while i < 5:
print "i=${i}"
i += 1

果然,執行結果就如同他回覆所說的一樣:

i = 0
i = 1
i = 2
i = 3
i = 4
5

Ubiquity command – findbook

Ubiquity已經很多人介紹了,這裡是分享一個 commands,如果你有用 Findbook 的話,可以用用看…
安裝 command 方法很簡單,打開 Ubiquity Command Editor 後,把下面的程式碼貼上去即可:

CmdUtils.CreateCommand({
name: "findbook",
author: { name: "elleryq"},
contributors: ["elleryq"],
license: "MPL",
description: "讓買書變成更簡單的決定!",
takes: {"書名關鍵字": noun_arb_text},
icon: "http://findbook.tw/favicon.ico",
execute: function(directObject) {
Utils.openUrlInBrowser( "http://findbook.tw/search?keyword_type=keyword&q=" + directObject.text );
}
});

debuan/ubuntu nant-0.85 的 SMP bug

最近在 Ubuntu 下用 NAnt 時,有 50% 的機率會遇到類似這樣的錯誤:

The current runtime framework 'mono-2.0' is not correctly configured in the NAnt configuration file.
Function call failed.
Expression: ${path::combine(prefix, 'lib/mono/1.0')}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Illegal characters in path
Parameter name: path1

找了好久,都不知道原因所在,因為有時候是正常執行的。去Google試了好幾個關鍵字,都找不到解。今天用 nant “Illegal characters in path” 去找,終於找到了:#483073 – nant: race condition on SMP systems – Debian Bug report logs
裡面提供的暫時解法是利用環境變數 MONO_NO_SMP,把 SMP 關掉,再執行即可。所以只要編輯 /usr/bin/nant,在 exec 之前加上 export MONO_NO_SMP=1 即可。

電影流水帳(2008/8/14~2008/8/23)

XXY裡面有一幕令人莞爾,主角與另一位男孩子做愛時,男孩子以為主角是女生,試圖要居於上位,結果卻被主角翻過去,這讓我笑了好一會。

  • XXY(IMDB, Wikipedia),中譯:我是男生也是女生(XXY)。這部片子裡你看不到有任何的預設立場,甚至最後也沒有結論,能看到的就是各個角色心裡的想法。主角的父母原來希望自己的孩子能成為女性,末了選擇尊重孩子的意見。日後當我的孩子長大以後,我是不是也能和他們一樣選擇尊重而不是幫孩子決定呢?
  • Shoot ’em up(IMDB, Wikipedia),中譯:史密斯先生。這部片是一部槍戰電影,跟Wanted一樣,裡面的動作很誇張,但是看完會覺得很爽的電影。這部電影的女主角是Monica Bellucci,雖然她已經可能超過40歲了,不過還是辣!反派角色由Paul Giamatti出任,之前對他的印象都是好人角色,這次演壞人,令人印象深刻…

最近用 MySql Connector/Net 的幾個心得

  1. 連線字串加上 charset=utf8,如此一來,完全不用更改 MySQL 伺服器設定,只要確定建 database/table 時有指定 utf-8 編碼即可。
  2. SQL 參數在使用 @ 時,若碰到問題,不妨改用 ? 試試。我的確碰到這問題,它卡了我兩、三天,而且改用 ? 也解決了。忘了在哪兒看到,剛好有提到這點,真的是幸好我有看到…
  3. MySQL 有提供 MySqlHelper 類別,省掉寫 Helper 的麻煩…
  4. MySQLConnector/Net下載網站上沒有給 Linux 的版本,事實上,是通用的,你可以直接拿給Mono用,不需要作任何改動。