利用 qemu-img convert 要把 VirtualBox vdi 轉為 vmdk 時,似乎有 2G 的限制,轉出的 vmdk 檔案永遠只有 2G。
沒辦法,只好把腦筋動到 VirtualBox 上。
VirtualBox 可以掛載 vmdk,所以可以用 qemu-img 建立 vmdk 檔案,然後再用 Clonezilla 來進行磁碟複製的工作,雖然麻煩,但不失為一個好方法。
電影流水帳(2008/11/5~2008/11/15)
最近把跟電影流水帳有關的文章都分到同一類去了,這樣算看片數目會方便很多。
- The lake house(IMDB, Wikipedia,中譯:穿越時空的情書。坦白說,劇情還蠻感人的,只是如果你細細去思考的話,就會發現劇情不合邏輯,而且最後的結局怎麼想都怎麼怪~
- Tropic Thunder(IMDB, Wikipedia),中譯:開麥拉驚魂;好吧,又是一個爛譯名。我妹一直說這部片子不是很好笑,看完以後,的確,劇情不好笑,裡面的幽默太黑了,我想阿 Ben 想表達的是別的東西吧~裡面找來蠻多的大明星,最吸引我注意的,應該是Tom Cruise吧,剛出場的時候,只覺得眼熟,後來真的確定是他,他飾演一個禿頭微胖的老闆,最後片尾跳街舞的時候,令人發噱~衝著可以看一個型男演禿頭的份上,可以看看這部片子。
svk mirror 錯誤
如果你在 svk mirror 時,出現類似 “xxx is not a mirrored path.” 或 “xxx 不是一個映射路徑。” 的錯誤時,請使用 svk propedit svm:mirror // 指令進行編輯,將有問題的路徑移除之後,就不會有問題了。
解法參考自:
python + opengl = pyopengl
安裝:
- 安裝Python,我用 2.5。
- 安裝EasyInstall,這是類似 Perl CPAN、Ruby Gems的工具。等等會利用這個來安裝 PyOpenGL。
- 打開命令提示字元,切換到 c:\python25\scripts,執行 easy_install pyopengl。
- 最後,你還需要 GLUT:Nate Robins – OpenGL- GLUT for Win32,下載以後,丟到 c:\windows\system32 即可。
都好了以後,你就可以試試看下面這個小程式了:
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
def display():
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
glPushMatrix()
#glTranslatef(0.,1.,-1.) #move to where we want to put object
glBegin( GL_TRIANGLES )
glColor3f( 1., 0., 0. )
glVertex2d( -1., 0. )
glColor3f( 0., 1., 0. )
glVertex2d( 1.,0. )
glColor3f( 0., 0., 1. )
glVertex2d( 0., 1. )
glEnd()
glPopMatrix()
glutSwapBuffers()
return
glutInit( sys.argv )
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB |GLUT_DEPTH)
glutInitWindowSize(400,400)
glutCreateWindow("Hello, World")
glClearColor(0.,0.,0.,1.)
glutDisplayFunc(display)
glutMainLoop()
想試試的原因,最主要是想說,Python 可以比較方便地進行測試與練習,接觸以後,發現代碼也很容易轉換為 C/C++,就這樣。
參考資料:
trinity.vim
前兩天想說找找看 Vim 有沒有 GNU Global 的 plugin 時,看到了 trinity.vim。
這個 plugin 整合了三個 plugin:Source explorer, taglist, NERD tree 在 Vim 模擬出接近 Source Insight 的效果。
有用過 Source Insight 的人,相信都知道很難找到替代品,我前幾年也曾經試圖找過,但都一直沒找到。
這個 plugin 真的不錯,讓Vim更好用了~
有優點當然也有缺點:
- Source explorer 裡呼叫 ctags 的地方是寫死的,所以如果你的 ctags 放在別的地方,最好自行去搜索有呼叫到 ctags 的地方,加上路徑。
- 把 Source explorer 打開的時候,速度會變慢,這是因為它試圖利用 ctags 資料庫去找跟游標所在位置有關的程式片段。我自己是比較少用,不能用對我影響不大。
電影流水帳(2008/10/28~2008/11/4)
接下來要找時間來算算今年看了哪些片子…
- Runaway Jury(IMDB),中譯:失控的陪審團。這是 2003 年的片子了,現在才看完。這是一部講左右陪審團以影響判決結果的故事,原本以為男女主角只是貪錢,才試圖進入陪審團以左右其他陪審員的結果,但劇情到最後急轉直下,出人意料之外,飾演壞人角色的Gene Hackman最後身敗名裂。片子裡大牌相當多,故事也很棒,好看。
- Bankok Dangerous(IMDB, Wikipedia),中譯:無聲火。女主角是楊采妮,在本片很明顯是花瓶角色。對她演出電影最有印象的一部片子是花月佳期(電線杆有鬼),這部片子我就覺得她演得很不錯。整體來說,這部片子缺少了槍戰片的緊張感,導演想讓男主角有更多內心戲,但是表現的不好,普普通通。
電影流水帳(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
大致把要點整理如下:
- 在專案根目錄的 CMakeLists.txt 加上 ENABLE_TESTING()
- 在你 test 程式所在目錄的 CMakeLists.txt 加上 add_test( 測試名稱 執行檔名字 [參數1] [參數2] … )
- 測試程式在錯誤發生時呼叫 exit() 並傳入非 0 值,正常結束的話,則呼叫 exit(0)。
- 大功告成以後,先刪除 CMakeCache.txt,然後用 cmake 重新產生 Makefile,接下來就可以用 make && make test 來進行測試了。
- 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,中譯:死神的精確度。裡面有三個故事,第一個故事跟第三個故事是有相連的,也就是,第一個故事裡的年輕女主角就是第三個故事裡的老太太,第二個故事很明顯是一個轉折。整體的氣氛與故事我還蠻喜歡的,看到最後千葉與老太太閒聊時,不自覺湧起一絲絲的感動。飾演第三個故事裡老太太的富司純子,我看到她時,本以為她有演過醫龍,結果發現不是,醫龍裡的是夏木マリ,她們的氣質頗有相似之處。