TAG

首都機能移轉 (2) 歌詞 (2) 靠北文 (40) 戲言 (30) 糟糕 (7) ACG (23) Assembly (2) Boost (2) C (31) C++ (69) CMake (4) CSIE (67) Debian (34) Design_Pattern (2) Django (1) Eclipse (1) en_US (13) FFmpeg (3) FoolproofProject (26) FreeBSD (2) Git (4) GNU_Linux (65) IDE (5) Java (11) JavaScript (19) KDE (15) Khopper (16) KomiX (3) Kubuntu (18) Life (1) Lighttpd (2) Mac_OS_X (2) Opera (1) PHP (2) PicKing (2) Programing (21) Prolog (1) Python (7) QSnapshot (2) Qt (30) Qt_Jambi (1) Regular_Expression (1) Shell_Script (7) Talk (98) VirtualBox (7) Visual_Studio (13) Windows (18) zh_TW (36)

2009年5月26日 星期二

MPEG Audio Frame Header

FFmpeg 有實作 MP3 的 VBR 編碼,但是竟然沒有寫入能判斷 VBR 長度的 tag,之前還一直以為是我的問題= =。

2009年5月25日 星期一

死亡フラグ

死亡フラグ簡單的說就是死亡的條件,フラグ即 flag,電腦遊戲中標示條件的變數。以下列出比較有趣的部分:
  • 黑道決定金盆洗手時
  • 浪子決定落地生根時
  • 發現戀人懷孕並許下美好的未來後
  • 異常系:
    • 甘草人物突然拿到一整集的戲份
    • 寡言的人突然變多話
    • 嚴格的人突然變溫柔
    • 孤獨的人了解愛和友情,並對他人敞開心胸之後
    • 邪惡的人了解愛和正義,並對叛逃邪惡組織之後
    • 同盟背叛並挾持人質(洗腦除外),特別是原本在主角隊伍中善良派的同伴背叛的話,必死
  • 和同袍提起往事,特別是主角的兄長,死亡率會急上升
  • 迴避過數次死亡フラグ的角色
  • 不能說的台詞:
    • 「如果我能活著回來,就要向 XXX 告白/結婚」
    • 「我在前面等你」
    • 「看來今天會是炎熱的一天」
    • 「我才不要和殺人犯在一起呢,我要睡我自己的房間」
    • 「我絕對不會讓你死」
  • 突然把重要的東西託付給信任的人,或是說起像遺言的話。這時如果被回「別說那種不吉利的事」變不吉利的機率會大增
  • 把最終奧義傳授給徒弟,並把自己當成最後一道障礙。如果徒弟對師父有「因誤會而生的仇恨」的話,必死
  • 一個人淋浴,或是情侶在放閃光時
  • 比主角先發現兇手的人,會成為下一個被害者
  • 在旅館的大廳暴走的人
  • 就任宇宙戰艦大和號的艦長(特別是劇場版,古代進除外)
  • 主角(白人)的搞笑好友(黑人)
  • 主角或女主角以外的美人
  • 犯人對小孩下手
  • 反派突然說明自己之前犯案手法或背景之後,而且都會不小心把下個目標說出來
  • 暮然回首,那人就在燈火闌珊處:
    • 被某個聲響嚇到,說「什麼嘛,只是野貓啊」,回頭之後就會死
    • 因為預感而回頭,再轉回來之後就會死
  • 醫生說手術很成功,只要避免 XXX 就可退院,若是補上一句 XXX 發生的機率很低的話,那發生的機率會是 100%
  • 被主角打敗的反派逃走後說「沒關係我還有 XXX 可以反敗為勝」的時候,會出現更強的反派把他收拾掉
  • 被子彈打中頭盔,因獲救而興奮地拿下頭盔確認的人,下一格就會被爆頭
  • 出陣時軍旗被折斷

2009年5月21日 星期四

苦果

當初在處理時間時沒想太多,用 double 去存秒數,但是完全沒考慮到浮點數很容易發生誤差,傳一傳值就跑掉了,現在又要對底層動刀...

2009年5月20日 星期三

佳句

攻略の鍵はヒロインをひたすらにストーキングすることだそうです。[?]
ロロット @ ティンクル☆くるせいだーす

Khopper 0.2.0 released

修正:
  • 核心模組以 LGPL 2.1 or later 發佈
  • 若開啟 CUE 的對應檔案失敗,可再選擇另一檔案開啟
  • 時間軸現在會對 CUE 做調整
  • 加強錯誤訊息
原則上和 beta 比起來只是小修正...。整個專案全部移向 GitHub,希望不要被英文嚇到了。

2009年5月10日 星期日

堤防に来て花をくれ

在遊戲中看到的鬼故事,還滿有趣的。
故事大意上是說,某天一群學生在玩碟仙的時候,得出了下面的訊息:
テイボウニキテハナヲクレ
意思是「把花拿到堤坊上」。
眾人考慮了很久,怕不照指示做會被做崇,就買了供養往生者的花,拿到堤坊上撤入河中。
唸完了祭詞之後,突然,通往堤坊上的鐵梯傳來了"鏘、鏘、鏘"的腳步聲 ... 當然,梯子上根本看不到人 ... !
其實幽靈給的訊息,也是言靈的一種,預告了接下來發生的事;把字的順序改變一下就是:
テニハボウレイヲキテナク(手には亡霊於きて哭く)
「亡靈表意在於手」,指的就是降靈。
テイボウニキテハナヲクレ(堤防にきて花をくれ)
「把花拿到堤坊上」,便是訊息。
ボクウキテハナヲテニイレ(僕浮きて花を手に入れ)
「我上水來花入手」...
ハレテテイボウナニヲキク(晴れて堤防何を聞く)
「天晴堤上何聲響」...就是最後結局!

2009年5月5日 星期二

2009年5月4日 星期一

Qt Solutions

Qt Solutions 是 Qt 的額外組件,在以前是只有買商業授權才能使用。不過在 Qt 4.5 之後,裡面的組件便漸漸地加入了 LGPL 的授權,而我之前就哈很久的 Single Application 組件也終於變成加入 LGPL 了XD。
Single Application 用途就如名字一樣,讓程式同時只能開一個實體,而且可以在實體存在時對己存在的實體發送訊息。基本上只要會 IPC 就可以實作,不過因為各平台的 IPC 技術不同,自己寫起來也是要一番功夫的。

Checked exceptions

Exception 是一種錯誤處理機制,可以在函式無法處理錯誤時拋出,中斷函式流程,並往上 unwind stack,直到有個 try-catch 述句把它捕捉起來為止。比起 error code 或是 assertion,它相對來說是較新的處理方式,也因為它會中斷流程,因此要達到 exception safe 就會變很困難。一些靜態語言則為了此目的提供了受檢測的異常處理模型,限制函式拋出的異常。
C++ 的寫法:
void f() throw(); // no throw
void f() throw( std::exception, std::runtime_error ); // exception and runtime_error only
不過實際上,就算宣告為 no throw,這個函式還是可以拋出其他異常,編譯器一樣會通過,只是這代表了嚴重錯誤,程式會立刻異常終止。你可以註冊一個 unexpected_handler,讓它在檢測到異常時執行這個函式,但是由於整個程式只有一個 handler,而一個程式裡有異常丢擲的函式可能不只一個,實際上來說沒什麼用。這種在執行期才檢測的模型叫動態檢測。
汲取了 C++ 教訓的 Java 則使用了更強硬的方法,實施靜態檢測,也就是在編譯期就檢查異常規格:
public f() throws IOException {}
沒有列出的異常就絕不能丢擲,一定要在函式內捕捉起來,甚至於如果有用到含有異常規格的函式,也一定要把它所列出來的所有異常都處理好。看起來好像很安全 ... 不過這真的是很煩人的設計;因為異常規格算是函式簽名的一部分,要是你修改了某個函式的實作,它改用了一個新的函式,而這個函式會拋出新的異常,因為一些設計上的缺陷無法自行處理,就有可能被迫修改異常規格,而這一改,可能會逼得其他有用到這個函式的函式也要跟著處理這個異常。
採用未受檢的異常處理模型的語言就傾向於不限制異常,沒捉到就讓它終止程式。

2009年5月2日 星期六

Compile C or C++ code from stdin

偶而你會懶得存檔,因此有方法可以直接編出來:
# for C
gcc -xc -
# for C++
g++ -xc++ -

# for example
echo 'main(){puts("Hello world!");}' | gcc -xc - && ./a.out

Down for everyone or just me?

很有趣的網站,根據你輸入的網址去看看是不是只有你連不上。網址形式會是:
http://downforeveryoneorjustme.com/網址
可以把這個網址複製給別人看:P