電影流水帳(2008/03/22~2008/03/28)

這次看的兩部片子,故事講的都是見不得人的故事…一個是特務,一個是殺手…

電影流水帳(2008/03/14~2008/03/21)

都是趁中午吃飯的時候看的~

  • Rambo(IMDB, Wikipedia),中譯:第一滴血4-出生入死。很簡單的故事,沒有做什麼特別的說明,導演盡可能地把真實呈現,讓觀眾自己去省思。戰爭永遠殘酷,對弱勢的人殘酷…
  • Sweeney Todd: The Demon Barber of Fleet Street(IMDB, Wikipedia),中譯:瘋狂理髮師。基本上這種音樂劇都很對我胃口啦~看過一些介紹,這部片子的確也是由音樂劇改編成電影的。整部片子都很陰暗、血腥,理髮師雖然最後報了仇,卻也因為Mrs. Lovett的私心,意外殺害了他以為已經不在人世的愛妻,之後被Toby殺害,以悲劇告終。裡面出現的角色都是不二人選,很難想到有哪些可以被替代。
  • The Truman Show(Wikipedia),中譯:楚門的世界。昨天在HBO看到的,其實之前也或多或少看了一些,昨天正好把前面給補上,整個算起來也有七七八八。對這個故事印象深刻的原因,是因為我在小學的時候,真的曾經就有這種想法,認為我活著的周遭是被捏造出來的,所以我曾有一段時間很認真地在想,如果道路是有限的,該怎麼去創造出無限延長的感覺,場景該要怎麼迅速地搭出來。後來長大了,走的地方多了,才發現並不是這樣子,不過換個方向來想,其實也是這樣子,只是這個世界是由造物主(或是叫上帝、神、佛祖,隨便)所創造出來的場景,之後的劇情是由自己決定,而不是由導演決定。

Banshee hack

從 src/Core/Banshee/Services/Banshee.Database/BansheeDbFormatMigrator.cs 的InitializeFreshDatabase()裡面可以看到 Banshee 建立了這些 table:

  • CoreConfiguration
  • CoreTracks
  • CoreArtists
  • CoreAlbums
  • CorePlaylists
  • CorePlaylistEntries
  • CoreSmartPlaylists
  • CoreSmartPlaylistEntries
  • CoreRemovedTracks
  • CoreTracksCache
  • CoreCache

並且針對各個 Table 建立了必要的 Index (好吧,我的疑慮解除了,其實 Banshee 有幫建檔的音樂作索引,那還要繼續看下去嗎?)
BansheeDbFormatMigrator.cs 裡面還可以看到以 Migrate_ 開頭的函式前面有 [DatabaseVersion] 這個 Attribute,這些函式是用來作 Migrate(升級)的函式,Banshee 會先檢查 CoreConfiguration table 的 DatabaseVersion 欄位,看目前 Database 是什麼版本,然後再決定要怎麼去作升級(這部份可以參考 Migrate(), InnerMigrate())。
存取資料庫的部份被包在 src/Core/Banshee.Services/Banshee.Collection.Database下的各個以 AlbumInfo 結尾的檔案裡面,裡面都大同小異,provider 成員為主要的提供者,這裡會傳入 ServiceManager.DbConnection 讓 BansheeModelProvider 的 instance 能根據此 connection 去存取資料庫。
所有的 connection 都是由 ServiceManager.DbConnection (src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs) 而來,而 DbConnection 其實只是一個服務 (src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs),在 ServiceManager 被初始化(static ServiceManager())的時候被註冊進去。
BansheeDbConnection 繼承自 HyenaSqliteConnection (src/Libraries/Hyena/Hyena.Data.Sqlite/HyenaSqliteConnection.cs),從 HyenaSqliteConnection.cs 看起來似乎是為了要把存取資料庫這整個部份獨立為 Thread 以提昇 UI 效率,所以才另外作 Hyena.Data.Sqlite。
不過最終底層還是 Sqlite 3
Banshee 的 Main() 在 Client 類別 (src/Client/Nereid/Nereid/Client.cs),Client 繼承自 GtkBaseClient (src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs),扣掉註解不到 30 行…
補充1:HACKING Guide
補充2:我看的 code 是目前最新的版本,後來看過 0.13 的資料庫,發現的確沒有建 Index。

我的第一個 Greasemonkey user script – ClickNextPage

為了看線上漫畫方便而寫的,本來是要滑鼠按上一頁、下一頁,現在只要按下’x’或’c’就可以到上一頁或下一頁,目前只能使用於九啦啦動漫
原理不難,就只是請 Greasemonkey 在頁面載入時,幫忙掛上寫好的 userscript,而這個 userscript 也只是去處理 keyup 事件而已。
從看Dive Into Greasemonkey入門到完成,大概花了一個小時多一點的時間,應該算慢的吧~
我估計如果對 Javascript DOM 熟的人,應該可以比我更快寫好,我對 Javascript DOM 並不是那麼熟悉,而且,我已經被 jQuery 給馴化了…唉~沒辦法,jQuery 實在是好用又好查啊~
完成的作品在這裡,如果你有裝Greasemonkey的話,點選連結以後,就會有對話框問你是否要安裝了~

VisualSVN Server

想到可以來介紹一下這個:VisualSVN Server
讓我想想~記得應該是去年年底的時候,不知在哪兒逛到的~
原本以為會不會跟VisualSVN一樣,是個商業化的產品,後來看過以後,才知道並不是。
言歸正傳,VisualSVN Server骨子裡其實就是Apache HTTP Server+Subversion,另外再加上VisualSVN製作的一個簡單管理介面。
如果你覺得自己手動安裝 Apache HTTP Server+Subversion很麻煩而你剛好又不想用 Linux 的話,不妨試試看這個,我自己試過了,如果你沒有要綁什麼特別的認證機制(如 SSPI)的話,這個軟體可說是相當地方便。
p.s. VisualSVN是一個給 Visual Studio 用的 plugin,讓 Visual Studio 也能直接以Subversion來作代碼管理。

gnome-settings-daemon 無法啟動

由於很勇敢地衝了Ubuntu Hardy 的緣故,常常會有很多驚喜~
這幾天是遇到 gnome-settings-daemon 無法啟動的問題,開啟終端機試著以手動方式啟動會出現如下訊息:

The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadRequest (invalid request code or no such operation)'.
(Details: serial 107 error_code 1 request_code 151 minor_code 6)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)

爬文以後,發現已經有人回報,從 2.21.9 以後就是如此,但是都還沒有解。
依照訊息的建議,改以如下指令再試試:

gnome-settings-daemon --debug --no-daemon --sync

這樣會丟出比較多的錯誤訊息,這邊只列出關鍵部份:

** (gnome-settings-daemon:20265): DEBUG: Registering GsdXrandrPlugin
** (gnome-settings-daemon:20265): DEBUG: Creating object of type GsdXrandrPlugin
** (gnome-settings-daemon:20265): DEBUG: GsdXrandrPlugin initializing
** (gnome-settings-daemon:20265): DEBUG: Activating xrandr plugin
** (gnome-settings-daemon:20265): DEBUG: Starting xrandr manager
The program 'gnome-settings-daemon' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadRequest (invalid request code or no such operation)'.
(Details: serial 107 error_code 1 request_code 151 minor_code 6)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)

喔~這樣看來應該是是 xrandr 的關係~
xrandr 是用來動態切換螢幕用的,舉例來說,接投影機或是額外螢幕時,就會用到~
不過,我現在用不到,那麼,要怎麼停用這個 plugin 呢?
這就得用 gconf-editor 了,使用 gconf-editor 去把 /apps/gnome_settings_daemon/plugins/xrandr/active 機碼改為 0,然後重新啟動 XServer 即可。

電影流水帳(2008/03/01~2008/03/13)

進度緩慢啊~快半個月才看 2.5 部電影…今年真的能突破 100 部嗎?

  • Beowulf(IMDB, Wikipedia),中譯:貝武夫-北海的詛咒。終於看到這部擬真人的電影,純就擬真效果來說,這部電影真的很棒。故事跟 2005 年真人演的那部又不一樣了,這也是必然的,所謂的偉大史詩故事,如果沒有文字相輔的話,通常流傳到後世時,肯定都會出現很多版本。這個版本是 Beowulf 其實沒殺掉女妖,而是與她結合,結果之後出來造反的惡龍,其實就是他的兒子~
  • 功夫灌籃(IMDB, Wikipedia),功夫灌籃。周董演的,故事很唬爛,也有小熱血,我個人覺得打發時間還可以,進電影院?別了吧~我倒是覺得”不能說的秘密”比較好看。
  • Behind Enemy Lines(Wikipedia),中譯:衝出封鎖線。我是在衛視西片台看到這部片子的,中間有一大段託我兒子的福,都沒看到…這片子還蠻好看的,最後Gene Hackman飾演的角色最後不幹了,酷!從Wikipedia上,知道還有Behind Enemy Lines II,不過台灣好像沒上片?

如何在指令列改變 Registry key 的權限

首先要謝謝你,Wikipedia 上的 Windows Registry 條目
裡面提到了微軟其實有釋出一個工具:SubInACL.exe
用這個,就可以改變某個 Key 的權限。
這一行就是讓自己可以得到 HKEY_LOCAL_MACHINE\software 這個 key的完全控制權:

subinacl /keyreg HKEY_LOCAL_MACHINE\software /grant=%USERNAME%=F

但是這邊要注意, /key 只針對該 key,在之下的 subkey,你仍然沒有完全控制權,如果你要得到 subkey 的完整控制權,你應該改用:

subinacl /subkeyreg HKEY_LOCAL_MACHINE\software /grant=%USERNAME%=F

p.s. 如果你需要刪除某個指定 key,可以參考這篇文章:Delete OE Identity from HKCU\Identities using WSH Script

空白

慢慢適應刺眼的強光之後,天花板是一片白,很白,以前就不是很喜歡白色了,此時更令人不能適應。
我試著想轉頭看看周圍,找一點其他的顏色,可是看來我的頭並不是很聽我的話啊~想轉也不能轉…
身體也好像不是自己的似的,一點也不聽話。
“只能困在這裡了?” 我的心裡突然冒出這句話來。
“怎麼來的呢?這句話。”我的心裡又冒出這個念頭…
我試著甩甩不能動的頭,想把這些念頭甩掉,畢竟找到為什麼自己被困在這裡的原因以及離開這裡才是當務之急。
於是我開始努力地回想,到底是什麼時候呢?
“是啊~到底是什麼時候呢?”我”聽到”一個溫柔的聲音這麼說著。
“聽到”?
真是可喜可賀,居然還能聽到,總算是還有另外一個可以運作的器官~
不過這都是不隨意肌的作用啊~
不隨意肌就是像心臟、腸胃之類,不受人主觀意識控制的肌肉,這些地方會自行運作,這也是上帝的好意,他怕人會忘記呼吸、心跳…
眼前並沒有任何”人”,那麼聲音是從哪兒來的呢?
“是啊~到底哪兒來的呢?”那個溫柔的聲音又說道…
X X X
“啊!!!!!”男人的怒吼劃破了夜的平靜~
“吵死了”
“搞什麼東西啊~三更半夜的”
鄰居的抱怨聲此起彼落地響起…
LCD 螢幕因為機器特性的關係,在完全黑暗的房間看起來閃閃動人。
剛剛鬼叫的男人就趴在螢幕前的鍵盤上,仔細聽,男人好像在說些什麼。
“那溫柔的聲音會是誰呢?又該是誰呢?”
“在床上不能動的男人該怎麼接話呢?”
“他之後又該如何呢?”
男人一直自顧自地說著,不理會鄰居的抱怨與抗議。
突然就像電燈啪答關掉一樣,鄰居的聲音突然就消失了~
窗外車水馬龍的聲音隨著時間的過去越來越小,夜也越來越深,彷彿要把這個男人淹沒似的~
“阿明,你還不睡啊~都已經半夜兩三點了~”,小惠睡眼惺忪地走進房間裡跟阿明說道。
阿明不說話,小惠只覺得奇怪,平常會回應她的男人怎麼不回應呢?
於是她走過去拍拍他,沒反應,於是小惠再推了一推,只見阿明動也不動地從椅子上跌了下來…
睡眼不再惺忪的小惠,慌了~
趕緊拿起桌上阿明的手機打 119 求救…
X X X
醫生走出急救室告訴小惠和阿明的父母:“他還活著,只是對外界反應沒有任何回應~可能以後都是這樣了~”
小惠和阿明的父母心裡倏地充滿無力感~