電影流水帳(2008/10/17~2008/10/27)

好快,2008年只剩下兩個月了呢~

  • Righteous kill(IMDB, Wikipedia),中譯:世紀交鋒。很難得能看到這兩位演員一起演戲,所以這部電影的賣點就在於他們兩人的演技。老實說,故事是不錯,但是導演埋伏筆埋得不是很漂亮,整部電影只能看到這兩個人飆演技。老實說,我不是很喜歡這部片子。
  • Hellboy II: The Golden Army(IMDB, Wikipedia),中譯:地獄怪客2-金甲軍團。我是蠻喜歡這部片子的,前面拍出來的效果真的很不錯,對於這種有點神怪+科幻的片子,我是相當喜歡。但是到了後半段,感覺就有點爛了,明明 Nuala 公主自殺就可以解決的問題,卻一定要到最後大幹一場才行,實在是有點不知所謂。我妹說可能不會有第三集,但是我看到後半 Liz 要救 Hellboy 所做出的選擇時,就認為我妹錯了,這肯定會有第三集,而且會做出一個 ending。

CMake + CTest

CMake 內建 CTest,基本使用可以參考:CMake Testing With CTest
大致把要點整理如下:

  1. 在專案根目錄的 CMakeLists.txt 加上 ENABLE_TESTING()
  2. 在你 test 程式所在目錄的 CMakeLists.txt 加上 add_test( 測試名稱 執行檔名字 [參數1] [參數2] … )
  3. 測試程式在錯誤發生時呼叫 exit() 並傳入非 0 值,正常結束的話,則呼叫 exit(0)。
  4. 大功告成以後,先刪除 CMakeCache.txt,然後用 cmake 重新產生 Makefile,接下來就可以用 make && make test 來進行測試了。
  5. make test 是進行所有測試,只想進行某幾項測試的話,可以查看 ctest 的 -R, -E, -I 這幾個選項的說明。-R 是用 regular expression 找特定名稱的測試項目,-E 則是相反,排除掉特定名稱的測試項目,-I 是指定項目號碼,表示進行指定項目的測試。

文件裡面還有提到可以把測試結果自動上傳到網站上等等,不過看來是用不到,就沒嘗試了。

以 bash script 為 sqlite database 產生 C/C++ struct

最近寫的一個 bash script,用來幫你把 sqlite database 裡的 table schema 轉成 C/C++ struct。
這裡只處理 text 與 integer 型態,text 轉成 wstring/string,integer 則轉為 int。轉換的工具是使用 awk/sed。

只要稍稍改動一下,也適用在其他語言上。

#!/bin/bash
if test -z "$1"
then
echo "You need to specify the database file name."
exit -1
fi
db=$1
dbname=`basename $1 .db`
tables=`sqlite3 $db ".table"`
output="db_${dbname}_schema.h"
touch $output
cat >> $output <> $output
sqlite3 $db ".schema $table" | awk '/^\ /{printf("%s %s;",$2,$1);}' | sed -e 's/,/\ /g' | sed -e 's/text/db_string /g' | sed -e 's/integer/int /g' >> $output
struct_name=`echo $table | awk -f cap.awk`
echo "}$struct_name;" >> $output
echo "" >> $output
done
cat >> $output << EOF
#endif
EOF
# call "astyle" to format the code.  Beside "astyle", you can use "indent".
astyle $output
exit 0

電影流水帳(2008/10/6~2008/10/16)

  • Failure to Launch(IMDB, Wikipedia),中譯:賴家王老五。出乎我意料,還蠻不錯的一部片子,劇情很流暢。裡面我比較喜歡的一段是男女配角 Ace 跟 Kit 從彼此討厭到上床的那一段,堪稱是莫名其妙的經典,徹夜等候射擊那隻 mockingbird 的閒聊成了唯一可以解釋的原因。
  • Sweet Rain 死神の精度(IMDB, Wikipedia,中譯:死神的精確度。裡面有三個故事,第一個故事跟第三個故事是有相連的,也就是,第一個故事裡的年輕女主角就是第三個故事裡的老太太,第二個故事很明顯是一個轉折。整體的氣氛與故事我還蠻喜歡的,看到最後千葉與老太太閒聊時,不自覺湧起一絲絲的感動。飾演第三個故事裡老太太的富司純子,我看到她時,本以為她有演過醫龍,結果發現不是,醫龍裡的是夏木マリ,她們的氣質頗有相似之處。

Project.vim

同事最近拋棄了 Source Insight 3,開始用 Vim 寫 code,所以有人跟我一起研究了。
他最近介紹我一個 plugin : project – Organize/Navigate projects of files (like IDE/buffer explorer),看起來不錯用,他可以把某個目錄下所有檔案都建立為專案檔,讓你可以快速瀏覽所有檔案,不過美中不足的是他沒有把 CVS、.svn、_svn 等目錄過濾掉,我在 VimDirListing 函數裡添加了兩行把這些目錄過濾掉。
這是原來的樣子:

if isdirectory(glob(fname))
let {a:dirvariable}={a:dirvariable}.a:padding.fname.a:separator
let {a:dircount}={a:dircount} + 1
else
" other stuff

改過以後:

if isdirectory(glob(fname))
if fname != 'CVS' && fname != '.svn' && fname != '_svn'
let {a:dirvariable}={a:dirvariable}.a:padding.fname.a:separator
let {a:dircount}={a:dircount} + 1
endif
else

如果你懶得看英文的話,對岸的朋友翻譯了該 plugin 的文檔:VIM-Project Plugin – I Know you Know – C++博客

Belvedere Luxury Cosmopolitan

作法:加入 1~1/2 盎司的司雪樹伏特加、 1/4 的香橙干邑酒、少許蔓越莓汁以及冰塊,然後搖勻,濾出後倒入酒杯即可。
懶人作法:伏特加應該可以換牌子,香橙干邑酒應該可以改用柳橙汁。
來源:大潤發廣告,上面註明來源是出自積木出版社的大師不傳雞尾酒特調800招,想看照片的,可以買書來看。

Chambore & Vodka Splash

作法:先將冰塊置於杯中,再加入 150cc 野牛草Vodka以及 150cc 桑椹香甜酒,最後加上蘇打水即可。
懶人作法:Vodka 用其他牌子應該也可以,桑椹香甜酒應該也可以用其他種類的果汁取代,蘇打水就直接用七喜或雪碧吧。
來源:大潤發廣告,上面註明來源是出自積木出版社的大師不傳雞尾酒特調800招,想看照片的,可以買書來看。

電影流水帳(2008/9/26~2008/10/5)

老二出生啦~等老婆做完月子回來,不知道有沒有時間再看電影或是幫朋友改程式,到時候再說吧~

  • Meet The Spartans(IMDB, Wikipedia),中譯:這不是斯巴達。雖然我個人很喜歡搞笑片,不過這部片子真的不好看,沒什麼笑點,純粹就是惡搞而已。看到最後,真的受不了,用快轉轉過去。
  • 88 Minutes(IMDB, Wikipedia),中譯:死亡倒數88分鐘。前面的劇情讓人有所期待,想知道兇手是誰,不過到後面整個爛掉,結果讓人大失所望。不過,片中所選的女角都還蠻正的,讓我印象最深刻的是,片頭一開始沒多久跟男主角Al Pacino過夜的女配角,她裸著身子刷牙,而且還邊做柔軟體操,把腳給舉到頭上去!