微軟正黑體 on FreeBSD!

這兒看到把Vista的「微軟正黑體」換到Windows XP的方法, 實驗看看發現真的是好看多了, 所以發正念要把我的FreeBSD字型也都換掉.

把檔案整個移到FreeBSD下很單純, 安裝方式也跟所有的TrueType字型安裝方式沒什麼差別: 用ttfm.sh, 裝完後先在Firefox中實驗看看, 以下是幾個抓圖(以Yahoo! Kimo新首頁為範例):

第一張是預設的San-Serif, 因為我的Default Ming改成Mingliu.ttc, 所以看起來大概是下面這樣(點小圖看大圖):

接著是若改成用Arphic Ming的樣子:

最後就是掛上「微軟正黑體」的樣子啦

好看多了, 好像在Mac OS X下用Firefox的感覺呢. 改天有空再去試試看吧Mac的字型給倒出來試試看.

X31變身: 2G Ram + 120G HDD

原本是要用力的把Macbook Pro敗下去的, 最後因為一些很機車的原因而作罷, 於是狠下心把X31的配備再度升級.

原先剛開始配置時就裝了2G的Ram, 後來因為借人一條1G所以變成1G+ 512m, 反正最後是一波三百折, 所以還是又購入一條1G Ram, 重回2G的系統.

另一個是把原本40G 5400rpm 的HDD換成120G的, 原先想要直接Ghost過去新硬碟, 懶得重裝, 結果我犯了全天下男人都會犯的錯: 把Src Disk跟Dst Disk選錯了, 還好才Ghost過去3秒我就發現, 快點中斷, 才得以用FinalData把資料都救回來, 不然真的會悶死&被笑死. 被迫重裝系統後, 把80G給Windows XP, 留下40G給Unix, 目前是作FreeBSD, 過一陣子可能會換過去Mac OS X.

這樣的配備應該可以再撐好一陣子吧! 希望能出個獨立顯卡的Macbook 13″, 我不要15″的Macbook Pro啊 🙁

Vim7 的 <C-Left> 與 <C-Right>

因為Vim7開始有Tabbed Edit, 所以也開始慢慢的適應並取代掉以往開好幾個Terminal的習慣.

在有Samba的環境, 我會比較喜歡用Gvim, 配合一個Terminal就可以一邊寫程式一邊看Log, 很方便. 為了讓我少碰滑鼠, 也開始Mapping些Hotkey去給Tabbed Edit使用. 我習慣Mozilla的Hotkey, 所以只先做了:tabnew跟:tabnext :tabprev.


map :tabnew😮 ./
map :tabprev
map :tabnext

而後來發現在Insert mode時這些key會出狀況, 又加上了

imap :tabprev
imap :tabnext

但是到了使用Terminal時就慘了, 我用PuTTY不改任何Terminal Setting時, Ctrl-Left 跟 Ctrl-Right就會失效, 花了一點時間去抓一下Keymap後, 才發現在Xterm下的Arrow Key有著不同的keycode, 所以要改成

map ^[[D :tabprev
map ^[[C :tabnext

其中的^[是用Ctrl-V Esc打出來的. 所以完整的通用解法是

2006/07/24補: 加上用urxvt時的

if &term =~ “xterm”
if has (“terminfo”)
set t_Co=16
set t_AF=^[[%?%p1%{8}%<%t3%p1%d%e%p1%{22}%+%d;1%;m set t_AB=^[[%?%p1%{8}%<%t4%p1%d%e%p1%{32}%+%d;1%;m map ^[[D :tabprev
map ^[[C :tabnext
imap ^[[D :tabprev
imap ^[[C :tabnext
else
set t_Co=16
set t_Sf=[3%dm
set t_Sb=[4%dm
map :tabprev
map :tabnext
imap :tabprev
imap :tabnext
endif
elseif &term =~ “rxvt”
set t_Co=16
set t_AF=^[[%?%p1%{8}%<%t3%p1%d%e%p1%{22}%+%d;1%;m set t_AB=^[[%?%p1%{8}%<%t4%p1%d%e%p1%{32}%+%d;1%;m map ^[OD :tabprev
map ^[OC :tabnext
imap ^[OD :tabprev
imap ^[OC :tabnext
endif
syntax on

這樣就可以在Terminal下正確的用<C-Left>跟<C-Right>了.

The Da Vinci Code(達文西密碼)

金獎影片【美麗境界】製作團隊,導演朗霍華、製片布萊恩葛瑟、編劇艾基瓦高茲曼,再加上曾以【長日將盡】獲奧斯卡提名的製片約翰可利聯手出擊,將丹布朗的達文西密碼,這本有史以來最暢銷、最被廣為討論的小說,搬上大銀幕,並網羅兩屆金獎影帝湯姆漢克,以及奧黛莉朵杜、伊恩麥克連、艾佛蒙利納、保羅貝特尼共同主演。

由約翰可利以及布萊恩葛瑟攜手製作的【達文西密碼】,涉及一連串謀殺調查案,將揭開人類史上最驚人的秘密。

享譽國際的宗教符號學教授,羅柏蘭登(湯姆漢克飾),一晚接到電話,通知他羅浮宮館長遭人謀殺,只留下成串難以理解的符號跟線索。蘭登隨即被法國刑事警察總局總部隊長伯居法舍列為頭號嫌疑犯,為了洗刷冤屈,藍登在警界密碼專家蘇菲納佛的幫助下,一步步解開館長留下的符號,竟發現一連串暗藏在達文西作品中驚人的秘密,線索全指向一個秘密會社,當中成員終其一生都在死守一個歷史真相,長達兩千年之久……。

這對搭檔踏遍巴黎、倫敦、蘇格蘭,為的就是渴望破解迷團,解開這個會動搖人類根本的驚世秘密。

哥倫比亞電影公司與Image Entertainment獻上,布萊恩葛瑟、約翰可利聯合製作的達文西密碼,由湯姆漢克、奧黛莉朵杜、伊恩麥克連、艾佛蒙利納、喬根普羅斯諾、保羅貝特尼以及尚雷諾攜手演出。本片由朗霍華執導,艾基瓦高茲曼根據丹布朗小說改編的劇本。布萊恩葛瑟、約翰可利擔任製片,Todd Hallowell、丹布朗出任執行製片。

這部片從上片開始我就蠻有興趣, 可是一直克制自己不要去看, 因為小說我還沒看完.

這類熱門電影總是從上片開始就一大堆「捏他」跑出來, 加上我又已經把小說給看了一半, 所以最後變成抱持著「看看他怎麼演」的心情去看的. 一如所料, Tom Hanks這個戲精已經到了演什麼都ok的程度了, 表現上也就很難去評斷好或不好, 而劇情上我根本沒看完小說, 所以也無可評論是否忠於原著或足夠的鉅細靡遺. 不過有個人人都感覺的出來的問題是: 男女主角都是天才! 複雜的錯位字迷可以在幾分鐘內解出來, 這根本是「偷看答案」程度的作弊嘛!

不過戲裡的天主教/基督教爭議非常的有意思, 若非有稍微涉獵過一些中古世紀歷史跟這個宗教的研究的話, 很容易被劇情唬住進而認為這個劇情是真實的. 這部小說也剛好刺痛到天主教/基督教的痛腳: 神與人的分別. 演進至今這個宗教已經不單純是一個信仰, 還包含了複雜的利益, 制度, 階級等等的問題, 而牽動這整個敏感神經的就是耶穌的神格性質, 眾多的定義加上經典中許多「反智」與「反科學」的說法, 讓部分教徒一直處在一種「局部精神分裂」的狀態下, 最後只能把科學歸科學, 信仰歸信仰式的迴避掉.

但原則上我對這個宗教抱持著不排斥也不反對但不接觸的態度, 至少大範圍上這是一個與人為善的宗教, 比起許多我心中所定義的「邪教」來說好過不知道多少. 只是我並不欣賞那種不實事求是的作法罷了.

大抵上這是一部娛樂性十足的電影, 但是如同大多數小說改編的電影一樣, 受限於電影的時間省去了許多可能會看來很枯燥的過場劇情, 造成沒看過小說的人會有點霧裡看花的感覺, 摒除這些, 這倒是個會讓人喜歡的電影.

The game is over!

世界盃終於結束了.

這四年一次的足球界大拜拜大概是全台灣最瘋足球的時候了, 跟亞錦賽或奧運一樣, 總是在這個時候跑出一堆「一月球迷」, 回想四年前在前一家公司會議室大家窩在一起看比賽的心情, 對照現在跟Ellen一起靠在沙發上的感覺, 相同的是那種興奮感, 不同的是心中的英雄都已漸漸老去.

第一次看世界盃在1994年, 那年我還只是粗懂足球, 突然迷戀上巴西的華麗和義大利的強悍, 也在那年被Jurgen Klinsmann的高大身影給鎮攝. 也從這年開始, 原本看到足球轉播就會轉台的我, 開始慢慢的學習怎麼欣賞一場足球賽.

從’94, ’98, ’02年的世界盃, 我的足球觀戰史上記錄下了好幾個英雄: 義大利的Roberto Baggio, 他’94在PK中失手落寞走下球場的表情和Johnny Walker廣告中的Keep Walking; Zinedine Zidane在’98帶領法國拿下第一個雷米金盃的英姿跟永遠帶著微笑的臉龐; ’02年巴西的年輕人Ronaldo de Assis Moreira在中場讓球繞著身形前進過人的華麗森巴足球; 佔據著球門的Oliver Kahn永遠頂著金色的亂髮發出猩猩般的怒吼; 羅馬王子Francesco Totti綁著馬尾穿梭前場的衝勁…好多好多的臉孔被記錄在我的腦海中.

每次世界盃都有很多新秀, 這屆世界盃我卻沒辦法分出心思去關心這些後進者. 我的目光總是停留在這些還存在綠色草地上的老將們, 這次我看不到Kahn(只有在季軍戰上場), 看不到Baggio, 多麼有幸可以在冠軍戰看到Totti和Zidane同場競技: 對我這個很不專業的半球迷來說, 真的是何其有幸.

雖然我的預測不大準, 我最看好的巴西中箭落馬, 我最喜歡的德國也無緣金盃, 而冠軍戰延長賽Zidane的頭槌卻也讓我心碎: 多麼不願看到一個巨星用這樣的方式結束他的足球生涯.

Zidane的地位是無庸置疑的, 幾乎可以稱為是「綠草地上的人格者」的Zidane.

誰都沒辦法臆測Marco Materazzi到底是說了多嚴重的「垃圾話」讓一向被稱為脾氣好的Zidane做出這麼嚴重的動作, 他本人接受訪問時只證實Materazzi的話語相當嚴重, 卻拒絕透露是什麼. 我轉念一想, 或許讓這個秘密永遠被埋藏才是好事, 既然Zidane已經要退休了, 義大利也拿到了夢寐以求的雷米金盃, 對這些努力的球員們少一點批評與責怪, 多一點掌聲跟歡呼, 也才是正確熱愛這個運動的方法吧!

Farewell, 2006!

2006/07/12補充: 在BBC Sport裡頭有一個新的報導「Fifa investigates Zidane red card」大致說明了到目前為止得到的資訊以及專家們的分析. 如果有人在球場上或任何地方對我說這樣的話, 我第一個反應大概會是一拳往那個大嘴下去, 然後會盡全力讓這個人走不下球場. XD

有時候不能相信手冊

嗯….太相信手冊會吃虧的.

這幾天在重新把一些PHP Framework補齊, 重寫之前HDD掛點時損失的一些小lib, 同時把以前用普通寫法做的functin都物件化.

弄到i18n的部份時, 以往是靠大量的variables配合require/include去做, 現在學了gettext就想改成gettext base, 結果災難就來了. 首先是PHP最新的手冊上關於gettext的sample.



照著做之後, 發現gettext()總是不會給我正確的translations, 從apache, php5, extensions的安裝全都檢查過了, 就是弄不好, 開始懷疑是不是自己的 .mo 檔案做錯了, 去找了GNU gettext examples來依樣畫葫蘆寫了一個a.out來測試, 很奇怪的是用C來寫非常正常, 但是PHP的setlocale永遠給我NULL.

手冊應該不會錯才是. 照著GNU gettext的手冊一切正常, 類似的function在PHP下就總是不行, 照手冊的Sample來測試怎麼會連跑都不能跑呢? 加上沒有debug message, 也沒有任何log可以看, 實在不知道該怎麼辦才好.

心想, 該不會是OS問題? Locale可能跟 OS 支援有關係吧. 找一張舊的Debian CD, 在VMWare下裝好測試, 竟然也是一樣的狀況: setlocale(LC_ALL, “”) 正常, 但是setlocale(LC_ALL, “en”)就不行.

這時候衛斯理說的話就產生作用了: 當所有可能性都不正確時, 最不可能的答案就是答案.

是的, 正解就是, 手冊錯了!

PHP的setlocale並不會複寫這個session用的locale, 必須要配合putenv把locale設定進去, 但是只用putenv還是不成, 因為後頭的bindtextdomain還是要吃setlocale. 也就是說, bindtextdomain要setlocale, 而setlocale要putenv, 所以一定要先putenv再setlocale, 最後bindtextdomain才能正確的讓gettext運作.



這樣寫才會正常, 順序怎麼換都不行. 盡信書不如無書, 盡信手冊不如去STFG. 唉.

讀書與學習

今天一位朋友透過MSN詢問, 我最近是不是出了什麼事? 怎麼都沒看到我的讀書心得? 這大概是最高的恭維了吧! 這表示在他心中, 我是一個沒事就會讀書的人.

最近之所以沒有什麼讀書報告的原因是, 我正在重新研讀大學時上編譯程式(Compiler)這門課時使用的教科書「Crafting a Compiler in C」.

從事這一行不知不覺已經超過10年了, 雖然最後讀的科系也是資訊相關科系, 但是一路走來還是常常認為自己的本職學能並沒有到達孔子說的「從心所欲」的程度, 總是會常常需要查閱工具書, 也總是會在Review自己程式碼的時候心驚的汗涔涔淚潸潸, 每到一個需要跨到新功能新技術開發的同時就會不自覺的自卑了起來: 原來我還是一個說的比寫的還好的工程師.

隨著年紀漸長, 花費在讀書上的時間跟資源遠大於學習, 似乎不停的讀書只是滿足自己觸碰新世界的手段, 而忘記真正需要的是藉由讀書來達到無止境學習的目的.

然後不知不覺想起前幾天跟小甫的對話, 我又有什麼資格能夠給予建議甚至教訓人家呢?

自省, 也自省自己的不能自省.