Archive for December, 2007


台中的書店

Saturday, December 22nd, 2007

自從結束在台北六年的讀書生活搬回台中後,突然有很多不習慣。不習慣台中的路都歪歪扭扭,搞得我不看地圖根本搞不清楚方向;不習慣在台中沒什麼朋友,平常都得一個人外出溜達;以上都還是小事,我覺得最奇怪的是台中竟然找不到便宜又好逛的書店!

在台北住了六年,前兩年醉心於電腦技術,每個禮拜都跑天瓏補充電腦書。不管是中文還英文,幾乎都沒有找不到書的煩惱。後來電腦書少買了,開始看一般類別的書,就常常去逛金石堂或誠品。這兩家連鎖書店都還蠻好逛的,書的種類很豐富,平台上的推薦書也都還不錯,而且在某幾家有座位的還能坐著慢慢看,可是最大致命傷就是沒有折扣可言XD (對於一個愛買書的窮學生,價錢當然很重要)

後來發現傳說中全國最便宜的水準書局就在師大附近,慕名而去參觀後,不禁有點失望。書雖然便宜,但空間實在太擁擠,很難好好逛,除非是事前知道要買什麼書,不然平常實在不太想進去XD 還好不久後,另一家便宜書店政大書城也開在那附近。店面大又寬敞,書的種類也還算齊全,最重要的是不用會員卡也有好折扣。於是逛政大書城就變成平常很重要的活動了。

搬回台中後,看書的需求大量增加,但我跑遍台中市還找不到一家就能讓我滿意的書店。連鎖書店如誠品、金石堂、諾貝爾最多都打9折而已(而且還要會員卡),雖然好逛,但每個禮拜都要買就會很心痛。便宜的書店也不是沒有,像是科博館門口的販讀都打75折,但只有小小一間而且裡面擺的書大半都不合我胃口。在台中教育大學附近的雅聖軒店面大多了,但書不算多、更新的也不快,不太能常常去挖寶。最近還發現一家在上石路的悅讀,店面也不大,整體感覺是三家折扣書店中最合我胃口的。只可惜店面小就不可能擺齊所有種類的書,所以我每個禮拜放假都得先跑這三家小書店,再回去逛諾貝爾之類的大書店,避免漏掉了一些比較不熱門的好書。

台中市號稱是世界最佳文化與藝術城市,沒想到要找個如政大書城之類的便宜好書店這麼難。是因為台中人比較愛誠品,還是台中人比較捨得花錢呢?


講到台中的書店,其實我覺得最不可思議的是電腦書店。

在我國高中時期,台中還有幾家專業的電腦書店,像龍軒、電子街的龍達、逢甲的揚業和唯軟。後來一家一家收掉,現在只剩下龍軒和唯軟存活著。但唯軟賣書的區域大大縮水,已經連誠品都比不上了。而龍軒也蠻糟的,一大半在賣遊戲、材質光碟等東西,真正賣書的地區擺的又是些不太專業的中低階電腦書,一小櫃的原文書區擺的書跟我上大學前沒兩樣…。

沒想到在台中竟然買不到專業的電腦書,要買書還是得跑回台北,實在很囧啊….

Leopard的終端機和screen中文寬度修正

Sunday, December 9th, 2007

升級到Leopard後,意外發現內建的終端機(Terminal.app)也做了大改版。
加了TAB的支援,還有方塊選取功能(按住Opt再選,就不再是以行為單位選取,而是選任意的方塊),長時間使用佔用的記憶體更少了,而且也加強了對亞洲文字的支援。
對於我這種Terminal重度使用者來說,以上當然都是好消息。

但事實上當然沒這麼美好啦XD

第一,Terminal.app對於中文輸入法極不友善。只要在IRC或BBS等地,用中文輸入法就常會發現打到一半整個輸入框就消失的情形。從OpenVanilla team那邊得到的消息是:這是Terminal.app的錯,而且目前無解。

第二,對於亞洲文字的支援的確有加強,搭配screen做big5 -> utf-8的轉碼可以看到幾乎是完美的,只剩下”《”和”》”的寬度不對而已:

這問題蠻容易解決的。參考Eric的patch,用以下patch修正0x300a和0x300b的寬度就行了。


--- encoding.c.orig 2007-12-09 09:26:01.000000000 +0800
+++ encoding.c 2007-12-09 09:27:17.000000000 +0800
@@ -860,7 +860,8 @@
(c >= 0xfe30 && c < = 0xfe6f) || /* CJK Compatibility Forms */
(c >= 0xff00 && c < = 0xff5f) || /* Fullwidth Forms */
(c >= 0xffe0 && c < = 0xffe6) ||
- (c >= 0x20000 && c < = 0x2ffff)));
+ (c >= 0x20000 && c < = 0x2ffff))) ||
+ (c == 0x300a || c == 0x300b) ;
}
#endif

另外,在Leopard下自行編譯screen還會碰到找不到sys/stropts.h的錯誤訊息,只要加上這個patch就行了。

--- pty.c.orig 2007-12-09 09:30:14.000000000 +0800
+++ pty.c 2007-12-09 09:30:30.000000000 +0800
@@ -34,7 +34,7 @@
#endif

/* for solaris 2.1, Unixware (SVR4.2) and possibly others */
-#ifdef HAVE_SVR4_PTYS
+#if !defined(__APPLE__) && defined(HAVE_SVR4_PTYS)
# include
#endif

另外如果是要拿Terminal.app上BBS的話,建議再加上Screen UAO patch (注意,不要用mhsin的cjkwidth patch。在Leopard下反而會再把寬度搞亂)。這樣就幾乎能正確看到大部分的特殊符號了。

如果不想自己patch和compile的人,可以直接抓我編好的binary: screen-leopard-patched.tgz。在/下解開,就會裝到/opt/local/bin下。如果想要直接取代內建的screen,把它link到/usr/bin/screen取代原先的版本就行了。

在Mac OS X上跑IE

Saturday, December 1st, 2007

以往在MacOSX做網頁的人,最常碰到的問題就是「要怎麼在IE下測試?」 為了同時用各平台的瀏覽器測試網頁,往往得透過Parallels Desktop或VMware fusion之類的虛擬機器同時開一個Windows。

現在有了一個從Linux的IEs4Linux移植過來的快速解決方案 IEs4OSX。它底下是透過OSX版的wine (Darwine來直接執行IE,因為不用啟動Windows,所以執行起來方便很多也快很多。

剛裝好時中文會有問題,只要參考hlb的ies4osx與中文設定就可以解決。

如果像我一樣把四個版本的IE都裝了,這裡提供一段script,直接把系統裡所有的字型用symbolic link連結到windows/fonts下,然後再把每個版本IE裡的fonts目錄都連結到同一個目錄以節省空間。
只要打開Terminal.app(終端機),複製下來貼進去就行啦~


for f in /Library/Fonts/{,Microsoft/}*.ttf
do
ln -s "$f" "/Applications/Internet Explorer 6.0.app/Contents/Resources/ie6/drive_c/windows/fonts/"
done

rm -rf /Applications/Internet\ Explorer\ 5.0.app/Contents/Resources/ie5/drive_c/windows/fonts
ln -s /Applications/Internet\ Explorer\ 6.0.app/Contents/Resources/ie6/drive_c/w
indows/fonts /Applications/Internet\ Explorer\ 5.0.app/Contents/Resources/ie5/drive_c/windows/fonts
rm -rf /Applications/Internet\ Explorer\ 5.5.app/Contents/Resources/ie55/drive_c/windows/fonts
ln -s /Applications/Internet\ Explorer\ 6.0.app/Contents/Resources/ie6/drive_c/windows/fonts /Applications/Internet\ Explorer\ 5.5.app/Contents/Resources/ie55/drive_c/windows/fonts
rm -rf /Applications/Internet\ Explorer\ 7.0.app/Contents/Resources/ie7/drive_c/windows/fonts
ln -s /Applications/Internet\ Explorer\ 6.0.app/Contents/Resources/ie6/drive_c/windows/fonts /Applications/Internet\ Explorer\ 7.0.app/Contents/Resources/ie7/drive_c/windows/fonts