以 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過夜的女配角,她裸著身子刷牙,而且還邊做柔軟體操,把腳給舉到頭上去!

電影流水帳(2008/9/16~2008/9/25)

嗯嗯,要開始忙起來了,不知道還有沒有時間看電影…

  • Under the Tuscan Sun(IMDB),中譯:托斯卡尼豔陽下。要分類的話,這部片子應該算是療傷片吧~遇到傷痛的時候,最好是遠離當前的環境,到新環境走走,認識新鮮的人、事、物,會比較容易忘掉傷痛。片中的女作家就是在羅馬遇到了 Grace,被她說的言談舉止給啟發了…
  • The witches(IMDB),中譯片名不知道,台灣應該沒上吧。好老的片子了,我是在醫院時轉到 HBO 看到的,片子也沒全看完,只看了後半段。小男孩好像是跟奶奶去渡假吧,不知道為什麼就偷聽到巫婆們聚會時的討論,說要把全英國的小孩都變成老鼠。小男孩在聚會要解散的時候被發現了,於是被變成老鼠。為了要阻止巫婆,小男孩趕緊跟朋友一起找到奶奶,設法偷盜毒藥,把巫婆們都變成老鼠。我覺得還蠻有趣的故事。
  • What happens in Vegas(IMDB, Wikipedia),中譯:頭彩冤家。愛情喜劇片,片尾還蠻溫馨的,還不錯看的故事。真要說的話,我覺得男女主角心態上的轉換沒交待的很好。頭彩?最後當然是皆大歡喜,男主角再次求婚,兩人共享三百萬美金囉~

Ubiquity command – findbook(更新)

上一版沒有對 uri 作 encoding,所以找中文時會出錯,現在補上,只要呼叫 Ubiquity 內建的 encodeURIComponent() 就行了…

CmdUtils.CreateCommand({
name: "findbook",
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=" + encodeURIComponent(directObject.text) );
}
});

老大跟老二

老二前幾天也出來囉~
回頭看看老大剛出生時的照片,想想日子還過得真快…
這是老大…
002-合照-01.jpg
而這是老二…
DSC00263.JPG

電影流水帳(2008/9/12~2008/9/15)

很巧,這次的兩部片都是Adam Sandler (I)的片子。