星期日, 5月 20, 2007

再見介石 (上)



看「再見列寧」已經是好一陣子前的事了,可是腦海裡的畫面依然鮮面,揚提爾森的琴聲依然瑩繞 (聽了 OST 後會更覺 haunting)。我還記得,劇中走出醫院的媽媽,因昏迷太久而不知道柏林圍牆早已倒下,看到直昇機要吊走巨大的列寧銅像,銅像伸出的手剛好向著媽媽,好像在對她說:「全德國就剩妳還信我了」,那幕我真的差點從床上跳起來鼓掌!

這部獲獎無數的電影,還是引起批評,有人不滿東德獨裁統治期間,有太多泯滅人性、家破人亡的血淚,在電影裡竟然只有輕輕帶過,小人物的嬉笑成了主題。可是德國人畢竟是幸福的,全民的素質夠高,推倒圍牆是共識,民主是共識,轉型正義是共識,清算加害者是共識,如果不是共識,有可能這麼快做好嗎? 看來市井小民真的可以在嬉笑中,迎接自由的到來、資本主義的到來。

以涉世未深的年輕人做為主角,似乎是拍這類電影一個不錯的手法,藉朝氣與希望來平衡沈重的歷史悲情。家庭的溫暖也可以反襯極權政黨的冷血。影片的最高潮是媽媽在最後講出了她的故事,原來一生忠黨愛國、為黨奉獻的媽媽,其實是被黨迫害最慘的人,因為無力抵抗,只好轉成熱愛黨,成為加害者的一份子,典型的斯德哥爾摩症候群。不見鮮血,影片還是點出了獨裁統治慘絕人寰的一面,是我覺得這部畫龍點睛的地方。

(待續)

星期二, 5月 08, 2007

改善 aMSN 字型

有網友推薦 aMSN,但是以前用過,對 tk/tcl 的界面印象不好。

tk/tcl 的字型支援在 linux 下一直沒有更新,只能用醜醜的那幾個點陣字型。終於,最新的 8.5 支援 xft 了,也就是說 aMSN 可以用 truetype fonts,也可以有反鋸齒等效果。現在有 preview 版釋出,gentoo bugzilla 已有 ebuild。
tcl,tk
tls

若有新的 preview 釋出,自己改檔名就可以 upgrade 了,例如 _pre5 改成 _pre6。

星期一, 5月 07, 2007

南橫三星 隨想

再怎麼好強的人,都還是有他脆弱的一面。

何況我只有中等好強。這趟令我傷腦筋的反而不是體力問題,體力這種東西,是可以靠兩個禮拜密集訓練提升的,加上平常就偶而會用跑步來減壓,或許應該說,跑步是我人生找不到出口時,試圖逃離的本能。

又扯遠了,我最傷腦筋的,還是那無藥可醫的懼高症呀!

南橫三星 摘星成功

柚子登山隊六人一狗,4/29 登上塔關山(標高 3222 公尺)、關山嶺山(3176 公尺),其中一人身體不適未達關山嶺山頂,4/30 登上庫哈諾辛山(3114 公尺),爽快!

貼照片! 貼照片!

南橫三星
南橫三星
南橫三星
南橫三星
南橫三星

很高吧! 很高吧!

星期六, 5月 05, 2007

Eternal Sunshine of the Spotless Mind



你對情人說過最令他/她感動的那句話,如果由別人的口中說出,他/她還會一樣感動嗎? 這是看了查理.考夫曼的電影後,想問的其中一個問題。

真不敢相信,這輩子最讓我感動的愛情電影,名字居然叫做「王牌冤家」 (標題是英文片名)。可惡的片商,取了這個可悲的片名,不知讓多少愛影人錯過這部經典,如果不是常亂逛部落格,恐怕我也要永遠失之交臂。

吐苦水一下,因為有金凱瑞,所以片名就一定要有王牌,就像阿諾之於魔鬼、布魯斯威利之於終極、威爾史密斯之於全民,還有些是名字還來不及跟明星劃上等號的,像神鬼系列、心靈系列。我有時候就覺得,不只 show business 的老闆沒有創意,搞不好整座島上的老闆的都沒有創意? 回到正題,總而言之,這部不是大家印象中的金凱瑞式喜劇,這部是 another master piece of 查理考夫曼。

以下含劇情,怕有人讀到這也想去租來看。我是很容易受影響的人,如果有人在他的部落格寫了某部片是他看過最感人的電影,或是怎樣怎樣好,而他的文章不至於幼稚的話,我就一定想辦法找來看。故事是男主角有天早上突然很想蹺班,就獨自坐火車到海邊,在那裡遇到女主角,彼此喜歡上對方。沒想到後來發現,原來兩人早就認識,而且是同居關係,但是感情瀕臨破滅,於是先後到一家叫「忘情診所」的地方,刪除有對方的記憶。

消去愛人的所有記憶,我們還有可能再愛上同一個人嗎? 我又講了其中一個想問的問題,這些問題都很有趣,而查理考夫曼也都給了令人驚喜的答案 (會用驚喜這個字眼,大概也說明了我是生性浪漫的人吧),當然這些答案都無法證實,因為現在的科技還沒有辦法做到消除某部份特定記憶。這是部沒有科幻味,但是很有「人味」的科幻片。查理考夫曼喜歡探索大腦,而情感是大腦裡最複雜的元素,他對大腦動了點小手腳,我們就清楚看到情感怎樣被剖析,好似教授講解實驗般的精練。

隨著劇情發展,也就是隨著電腦逐步消除男主角的每段記憶,我們越來越感動,越體會到兩人相處的甜蜜,也就越不捨那些美好回憶的消失,男主角的那句「請讓我保留這段記憶,這一段就好」哀求,就格外令人鼻酸。

可是回想這部電影,我們都該嚇出一身冷汗。劇中消除記憶的流程必須是由近而遠,也就是說,我們在倒著回憶男女主角相戀的過程。所以一開始是兩人同居已久,陷入每天無止盡的爭吵、忽視對方、冷漠、感到乏味、公式化、價值觀不同、猜忌....(天阿,不能再寫下去了),然後則是慢慢變相知相惜,慢慢變熱戀、甜蜜、好玩,最後回到初戀的靦腆、曖昧。所以是這種與現實反過來、越來越美好的感覺,讓我們愛上這部愛情電影的?

承認吧,感情的道路是越走越疲乏、越來越多痛苦。那怎麼辦呢? 請教專家? 有那麼多專家離婚甚至自殺,妳還敢相信專家? 只能這樣,像男女主角在知道了他們的過去,也就是知道了他們注定的未來後,笑著說:「Okay」!

星期六, 4月 28, 2007

改用 KMess

可恨,最後還是 Microsoft 贏了。

現在我所有的朋友用的都是 MSN messenger,即便是較早的 7.x 版或最新的 Live 版都很容易當掉,大家還是照用了。為了不與社會脫節,我也在找尋 Linux 上好用的 MSN client。用 Kopete 用了很久一陣子,功能相當強大,但開發者把心力放在支援多種 IM protocols,對追隨 MSN 每次改版新增的小玩具,就沒投太多的關愛的眼神。後來被我找到了這個 KMess,只支援 MSN protocol,也似乎還不夠成熟,不過開發者的目標放在與 Microsoft 產品的最大相容性,所以後勢看蹺哦。

改用 1.5pre2 幾天了,還算穩定,最大的好處是人家終於可以順利傳檔給我了(Kopete 從來沒成功傳完過)。現正編譯 svn 版中,哈,人總要冒險嘛。svn ebuild 可以在這裡找到: KMess SVN ebuild

星期一, 3月 12, 2007

原來要理財呀

人家說「人不理財,財不理人」,我聽了只覺得「喔,應該是對的」,可是從來沒有把它放在心上。直到玩了這個箭塔遊戲 -- Flash Element TD,老是在最後幾關破產,飽嚐慘遭怪物攻陷之苦後,才領悟到箇中真諦。

flash element td
看看這個圖,只要每關稍微省一點,多賺些利息,不用到精打細算的程度,總分隨便都有 13k 以上。你就知道銀行借你錢賺複利有多好賺!

不過話說回來,光在這邊墮落玩 game,應該是很難「好野」起來的。 XD

星期一, 2月 12, 2007

RE:就算世界可能因而毀滅,妳還是要尋求真正的歷史本文嗎?

我po在 Tetralet 部落格的回覆,拿來這充版面:

這篇是大作啊,非常認同您說的政治人物的願望就是保有政權,也同意掌握輿論即掌握政權,你文章中的很多例子都值得世人深思,但是我完全不能認同您對台灣政壇的連結,即使您把我最敬重的馬奎斯、喬治歐威爾等大師都搬出來了。

我想提醒,是那個政黨執政時有像「一九八四」中的真理部?那個時候的新聞局、警總不就是在作思想警察的工作嗎?是哪個政黨在推動百分之百的新聞自由?現在至少有五個全國性的有線新聞台、兩大報紙、幾個全國性廣播頻道二十四小時在批執政黨和其政治人物,然後為另一陣營美化。「無疆界記者組織」評比台灣的新聞自由是亞洲第一,對照當年,報有報禁、書有書禁,更別提成立電視台罵政府了。現在是哪個政黨把原本可以掌控的某無線台讓給公廣集團?哪個政黨卻推動國家通訊傳播委員會要「政黨比例」產生?媒體弱勢的政黨要如何令人嘆為觀止的實行資訊管制?我看造神運動還來不及做,已經先被人打成邪神、魔神了。

我想再提醒,是哪個政黨在抹去歷史?現在有多少台灣人不知道拿四萬元換一元的故事?不知道幾乎所有本省人都有平埔族的血統?沒聽過嘉南大圳?不知道紅葉少棒的真相?為什麼舊金山合約沒放進歷史課本?

有那個媒體沒有立場?自由時報的立場鮮明大家都知道,聯合、中國亦同。但是立場鮮明和執政黨的傳聲筒是兩回事,自由對歷任行政院長的經濟、中國政策與言論不是常做大篇幅在批嗎?民調的結果我不覺得矛盾,當我客觀陳述一件事時,不帶表我放棄了我的立場,反之我若喜歡扭曲原委,不代表我立場堅定。現今也不可能有單一媒體可以做思想箝制了,因為我們隨時可以改看別家報紙。

講到伽利略,不由得想起某些政治人物看到那幅橫置的台灣地圖時,抓狂的模樣。

星期二, 1月 23, 2007

到底 reiser4 的 cryptcompress 有沒有用? (下)

搞個測試還真不容易,如果我有多的 partition,就可以直接建個有 cryptcompress plugin 的 fs 來試,問題是誰會在自己硬碟留個 partition 不用的。借台 USB 外接硬碟? USB 本身頻寬太低了,無法反應 IDE 或 SATA 的真實狀況。

後來把這個實驗寫成 script,方便測不同檔案,cat, lzop, gunzip 都先預先執行過以減少 load 時間的差異
#!/bin/sh
rm test test.lzo test.gz
cp $1 test
lzop -1 test
gzip -1 test -c > test.gz
ls -l test test.lzo test.gz

echo "-----------------------------------------------------------------------"
echo "test"
./eatmem
sleep 10
cat --help >& /dev/null
time cat test > /dev/null

echo "-----------------------------------------------------------------------"
echo "test.lzo"
./eatmem
sleep 10
lzop --help >& /dev/null
time lzop -d test.lzo -c > /dev/null

echo "-----------------------------------------------------------------------"
echo "test.gz"
./eatmem
sleep 10
gunzip --help >& /dev/null
time gunzip test.gz -c > /dev/null

結果大致與想像相同,檔案越大,能節省的時間越多。逐漸縮小測試檔 size,gzip 的方式很早就出現比沒壓縮慢的情況,除非將 CPU 升級,否則我是不考慮了。lzo 的表現則頗令人滿意,大檔案甚至會出現七、八倍效能的狀況,假設有支程式總共 link 五個 libraries,每個 library 從硬碟讀出平均節省 0.2 秒,那啟動速度就快整整一秒了,對大型程式改進一定更多。不過 lzo 的數據太漂亮,我也因此懷疑其可信度。索性拿已壓縮過的 .bz2 檔案來試,慘了,lzo 竟然也有速度比較快的時候,看來 lzop 的數據得要加乘某個數值才準。所以,我的測試只能先對 cryptcompress plugin 效能有個大概的底,想得到更真實的結果,還是乖乖弄個 partition 來玩吧。

星期五, 1月 19, 2007

到底 reiser4 的 cryptcompress 有沒有用? (上)

幾天前拜讀 Palatis 的這篇 擠壓你的檔案系統, 看完一直很心動想試,但要拿自己的電腦試的話風險可大了,工也不小,到底成效如何也不知道。靈機一動先來做個小實驗。

我覺得平常愛用的 Amarok 啟動速度太慢了,所以就拿它的 library 來踹。找了一下,發現這個 libamarok.so.0.0.0 還蠻大的,約有 5.5MB。

首先把它分別壓成 gz 和 lzo
$ cd ~/tmp
$ cp /usr/lib/libamarok.so.0.0.0 .
$ lzop libamarok.so.0.0.0
$ gzip -1 libamarok.so.0.0.0 -c > libamarok.so.0.0.0.gz

壓完後 size 剩一半,gzip 更小
$ ls -l libamarok.so.0.0.0*
-rwxr-xr-x 1 ranma users 5492864 2007-01-18 15:57 libamarok.so.0.0.0*
-rw-r--r-- 1 ranma users 2227760 2007-01-18 16:11 libamarok.so.0.0.0.gz
-rwxr-xr-x 1 ranma users 2734159 2007-01-18 15:57 libamarok.so.0.0.0.lzo*

因為我要做讀取測試,如果檔案已經 cache 到 RAM 裡就不準了,先得把 cache 清掉才行,怎麼 flush 呢? 我也不曉得,只好寫一個程式來吃記憶體,當 physical memory 空間漸不足時,系統便會放棄 cache。你可以用 free 這個指令來觀察 cache 的行為。eatmem.c 的原始碼如下,MY_RAM_SIZE 須依實際機器的 RAM 調整:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define MY_RAM_SIZE (1024*1024*1024)
int main()
{
void *p;
printf("Allocating memory\n");
p = malloc(MY_RAM_SIZE);
if (!p)
return -1;
printf("Filling memory\n");
memset(p, 0x55, MY_RAM_SIZE);
printf("Freeing memory\n");
free(p);
return 0;
}

以下每個實驗前都先要做這件事來確保 cache 被清掉
$ ./eatmem ; sleep 10
Allocating memory
Filling memory
Freeing memory

為什麼要 sleep 10 呢? 因為 eatmem 跑完硬碟好像還會繼續跑個兩三秒,所以大家統一多等十秒再開始。如果有更好的清 cache 方法請不吝告知。

先來看沒壓縮的情況。蝦密! 要兩秒多,難怪啟動慢。
$ time cat libamarok.so.0.0.0 > /dev/null

real 0m2.553s
user 0m0.001s
sys 0m0.038s

來看解 lzo 的表現。不到半秒,我確定有先跑 eatmem。
$ time lzop -d libamarok.so.0.0.0.lzo -c > /dev/null

real 0m0.448s
user 0m0.088s
sys 0m0.013s

解 gz 的表現也差不多。
$ time gunzip libamarok.so.0.0.0.gz -c > /dev/null

real 0m0.444s
user 0m0.171s
sys 0m0.006s

看來壓縮反而會增進硬碟效能理論是真的,不過好像也差太多了,size 小一半速度變五倍! 可能是這個檔被 frag 了,所以讀取速度暴慢,壓縮過剛好避掉這個問題。我後來又拿個 2.4MB 的檔案來測,lzo 只比沒壓縮的稍好一些,分別 0.331s 是 0.224s。如果是拿很小的檔案,有壓縮的就反過來比較慢了。不過我的小檔案測試不是很準,因為沒有把 load cat 和 load lzop 的時間差異考慮進去,下回再找時間來改善吧。