星期五, 11月 17, 2006

在學校的 MacOSX 上使用 VNC 控制家中的電腦

今 天到圖書館拿列印的文件,但是很該死的是又有一份文件被印到不見,所以就去圖書館的電腦區找機器來用一下。很不巧,所有的暈倒機都被佔用了,剩兩台 MacOSX 的機器沒人用。對我來說,MacOSX 雖然不常用,但也不至於沒辦法用,而且我主要是想要連上家裡的電腦查一篇文張的網址。本來想說 VNC viewer 應該各平台上都有,即使不是 TightVNC 也還好,最差可以用 Java VNC viewer。沒想到實際上開始找 VNC viewer 到找到並可以用,還是花了一些時間和傷了點腦筋。

首先,TightVNC 並沒有官方的 MacOSX 版,不過這個問題主要出在 TightVNC 的 Server。MacOSX 上,其實有非官方的 TightVNC, 不過必須要有 root 權限才能安裝。TightVNC 的 FAQ 中建議使用 Java viewer 即可。不過很不幸的,我使用的這台 Mac 上,似乎是因為 J2RE 版本的問題,導致 TightVNC 的 vncviewer.jar 執行之後無法正確完成使用者認證以及畫面傳輸。所以只好詢問 Google 看看有沒有不錯的 Mac 版的 VNC viewer。結果讓我找到了 Chicken of the VNC 這個 MacOS 的 VNC viewer 計畫。

Chicken of the VNC 的圖示是一隻可愛的雞在罐頭裡。Double click 之後,要選擇要連線的 server。基於安全性的理由,我當然是使用 ssh 的 port forwarding 功能來轉接,因此選 New Server 之後,填入 localhost 到 Host 欄位,Display 選 0,然後輸入密碼。結果....竟然無法連線?看了一下訊息,似乎是 MacOSX 自己的遠端桌面支援也是在 port 5900 的樣子,不然就是我之前測試 OSXvnc 時造成的結果。由於 MacOSX 我相對來說沒有那麼熟悉,所以一時間也不知道到底是出了什麼問題。不過山不轉路轉,既然 localhost:5900 不行,那就真的沒救了嗎?

其實問題沒有那麼嚴重,有 ssh 在手上,還會有什麼大問題呢?既然 5900 不行,那改轉接 5950 到遠端機器的 5900 不就好了嗎?那 VNC viewer 該怎麼設定呢?VNC 的 port 的算法,如果是使用 VNC viewer 的話,其實是以 TCP port 5900 為基底,5900 + Display 就是實際連線時使用的 port 了。因此 5950 代表必須使用 Display = 50 即可。

繞了一大圈,總算可以連上家裡的電腦。為了怕忘記,加上這邊嚴重缺水,所以就來記錄一下吧!
繼續閱讀全文

星期一, 11月 06, 2006

研究牲漫畫作者的新網誌

之前介紹過過一些我比較常看的網路漫畫,今天碰巧發現『研究牲』漫畫的作者又有了一個新的網誌,裡面的分類『研究牲的秘密花園』也是使用漫畫的手法來紀錄一些趣事。


其實這類型的網誌有逐漸增多的趨勢。例如 PTT Joke 版的名人輔大猴(fjumonkey)的網誌就是相當早混用四格漫畫來紀錄的一個例子。

繼續閱讀全文

星期日, 10月 29, 2006

料理大挑戰:輕乳酪蛋糕

在美國,吃的東西比起台灣,算是又貴又不好吃,真的要好吃的,要不是因為口味上偏好的差異而買不到,不然就是貴到買不下手。

前幾天,由於心情煩悶,突然覺得想吃乳酪蛋糕。這邊確實買得到美式乳酪蛋糕,但通常不便宜,而且通常又非常的甜。因此只好秉持窮留學生本色,自己動手做。

在網路上搜尋了一下,找到不少中文和英文的乳酪蛋糕的食譜,不過引起我注意的是一篇標題為『理論廚師的實驗廚房 - 輕乳酪蛋糕』的 blog。會選這一篇有很多原因,包含有幾張顯示重點步驟的照片,以及有附上所需用具與材料的英文名稱。

不過由於之前完全沒做過這種點心類的東西,很多用具我手邊沒有,因此在昨天週五下課後,走路到離學校比較近的美式超市去購買材料以及缺乏的用具。沒想到買一 買也花了約 US$40 左右,包含我手邊沒有但需要的材料,以及一個濾網、簡單的電動攪拌器、矽膠刮刀、鋁箔製的原型小烤盤,還有一個小量杯等等。本來想乾脆買蛋糕烤盤 (Springform Pan),不過覺得太貴了,所以就先算了。

回到家中,大約下午 6 點左右開始動手。由於缺乏經驗,而該網誌上並沒有把所有步驟都拍照,所以有些地方有點手忙腳亂,甚至忘了加檸檬汁。又由於沒有量材料份量,加上手邊剛好有 代糖,所以把糖用代糖取代,而某些材料的份量,是用總重量去計算估計,有些沒辦法估計的,就只好憑感覺了。一陣手忙腳亂之後,總算在7點之前把蛋糕丟進烤 箱去烤。烤了約半小時左右,表面上色了,不過好像有點太過頭了...蓋上鋁箔紙以後繼續烤,大約每 10 到 15 分鐘去『搓搓看』。由於實在不知道該烤到怎樣的程度,所以又繼續考了約 1 個半小時,因此總時間約考了 2 小時。烤好之後拿出來放涼。等到夠涼了之後,放進冰箱冰。冰一段時間後(我冰了半天吧?)就可以了。

附上一些照片:

剛烤好:


冰過一晚後:


切開以後:




吃了一小塊以後,大致上還好,可能是因為我用的烤盤比較大,所以感覺太薄了,加上混合打發的蛋白和蛋黃糊時,也許動作太大,所以感覺太緊密了些,不過我實在不知道該怎樣輕輕的混合。表皮有一層可能是因為『上色』得太過頭,或者是整體時間太久,感覺比較硬,有點破壞口感。代糖加得不夠多,因此感覺有點不太甜。不過就第一次嘗試來說,我自己是覺得還可以接受。
繼續閱讀全文

星期一, 10月 23, 2006

有趣的網路漫畫

網路上除了有各種各樣的網路寫手寫的網路文學之外,還有不少相當有趣的漫畫,其中 River 的兩大系列漫畫應該是知名度最高的了,但除此之外,還有不少相當有趣的漫畫。

以下是幾個我比較常看的漫畫:
其他還有一些偶而看到的漫畫,有機會再貼出來。

繼續閱讀全文

星期六, 10月 21, 2006

有趣的 Festival

Festival 是個 Free Software 的語音合成 (Speech Synthesis/Text-to-Speech) 程式。不過可惜 Festival 本身只提供英式和美式英文以及西班牙文等的男聲。不過 Festival 有提供一個 Wrapper 來呼叫 MBROLA 計劃的封閉原始碼程式,以使用 MBROLA 計劃的語音庫 (Festival and MBROLA 網頁中有安裝方式的簡介)。

Festival 的使用方式有幾種:

  1. 執行 festival client 程式,使用 interactive 模式下指令進行操作
  2. 使用 festival 提供的 text2wave 工具程式,直接把文字轉換成 wave 格式的語音檔案
  3. 使用其他語言的 wrapper,例如 perl 的 Festival::Client
其中第三種使用方式,在 perlbox 計劃中,就是使用這種方式驅動 festival 進行語音回應;而第二種方法應該是最簡單的方法了。

以下是幾個我寫的應用實例:

  • 語音報時:voice-clock.sh

    #!/bin/bash

    function usage {
            echo -e "Usage:\n\n\t$(basename $0) date|time\n\n";
    }


    [ "x$1" == "x" ] && {
            usage;
            exit 1;
    }

    TEXT2WAVE="text2wave -scale 3.5 - "
    TIME="$(LC_ALL=C date '+%l:%M %p')"
    DATE="$(LC_ALL=C date '+%A, %B %d, %Y')"
    PLAYER="aplay"

    case $1 in
            [Dd][Aa][Tt][Ee])
                    echo ${DATE} | ${TEXT2WAVE} | ${PLAYER} 2> /dev/null;
                    ;;
            [Tt][Ii][Mm][Ee])
                    echo ${TIME} | ${TEXT2WAVE} | ${PLAYER} 2> /dev/null;
                    ;;
            *)
                    usage;
                    exit 1;
                    ;;
    esac

  • 檢查某關站維護的 BBS 是否重新啟動了:check-bbs.sh

    #!/bin/bash

    while true; do
            ping -c 1 bbs.somebbs.org > /dev/null && {
            voice-clock time;
            for (( i=1; i<=5; i++ )); do
                    echo "Some BBS is back again" | text2wave -scale 3.5 - | aplay;
                    sleep 1;
            done;
            break;
            }
            sleep 60;
    done


其他還有許多可能的應用。目前中文的語音合成程式就我所知,似乎還沒看到有 Free Software 的實作可用。
繼續閱讀全文

星期五, 9月 15, 2006

幸運和不幸只有一線之隔

很多事情其實不能只看一面。有些事情在旁觀者的角度來說,似乎當事人是幸運的。但是站在當事人的角度又是如何呢?當事人聽到大家都說他很幸運,又是怎麼樣的感覺呢?

幸運與不幸往往只是一線之格,端看從哪個角度來觀察。在得到的同時,往往也失去了些東西。世界上沒有事情是十全十美的。

繼續閱讀全文

Firefox 的 Performancing

Drivel 目前對我來說算是不堪用,改用 Firefox 的 Performancing Extension 看看。如果搞得好,這個應該會比用 Drivel 好,因為跨平台,我切換到 Win32 上時,不需要再去找替代軟體來用。

希望這次可以成功。



繼續閱讀全文

星期三, 9月 13, 2006

好久沒寫 Blog 了。裝了 Drivel,就來測試看看吧!

最近實在是又忙又煩。短短的就好。

Drivel 看來似乎無法設定文章的標題。嗯...
繼續閱讀全文

星期日, 4月 09, 2006

在 Mandriva 2006 上,讓 skype 使用 Bluetooth 耳機

先說一點廢話。以前一直是使用 Red Hat 的,連我的 desktop 上,到最後都只剩下 Red Hat Linux 9.0+,也就是 9.0 加上一堆我自己的修改。不過因為 Red Hat 在 9.0 之後停止發展 RHL,而我自己對於 Fedora 的 FC1/2 感覺不是很好,因此一直有想要轉到 Mandriva 上的想法。雖然之前已經裝過 Mandrake 10.0,不過因為一些原因,裝好之後都一直沒有使用。最近重新裝了 Mandriva 2006.0,大致上感覺還不錯,但是一些小地方讓人覺得Mandriva 公司的軟體包裝策略實在有點讓人摸不著頭緒。

廢話說完,回歸到主題。Mandriva 2006 上,預設使用 bluez 套件來提供 bluetooth 支援。不過目前來說,bluez 仍然不直接支援使用 SCO (Sychronous Connection-Oriented) 和 A2DP (Advanced Audio Distribution Profile) 的藍芽裝置,例如藍芽無線耳機麥克風或藍芽立體聲無線耳機等等。因此即使安裝了相關的藍芽支援套件,例如 bluez-utils 和 gnome-bluetooth 以後,仍然無法使用藍芽耳機麥克風。

不過事情總是會有轉機,Free Software/Open Source Software 的美妙之處,就是總是可以發現一些高手看到某些不方便,然後就發展一些解決方案。在 Linux 上無法使用藍芽耳機麥克風,感覺實在是有點糟,因此就有了一個叫作 Bluetooth-ALSA 的計劃,這個計劃的目的就是讓 Linux 也能使用藍芽無線耳機和無線耳機麥克風。引用一段計劃網頁上的說明:

This project provides a way to use a bluetooth headset with Linux. We do this currently by making an alsa kernel driver which uses bluez to reach the headset. It works well enough now to get voice-quality audio to and from most headsets.


不過這個計劃還是在發展初期,最 新的 release 是 btsco 0.41。雖然 btsco v0.41 中已經包含了使用 skype 所需要的基本功能,不過由於是發展中的軟體,我是比較偏向使用 CVS 中的 source code。

目前來說,Mandriva 2006 中,還沒有出現已經包裝好的 btsco RPM 可以用,因此安裝上比較麻煩些。現階段來說,btsco 的使用還不是非常適合一般使用者使用,因此我暫時也沒有打包成 RPM 的計劃。大致上的安裝步驟如下:


  1. 由 CVS 取得最新的 source code:


    $ cd /tmp
    $ cvs -d:pserver:anonymous@cvs.sf.net:/cvsroot/bluetooth-alsa co btsco
    $ cd btsco


  2. 在開始進行 building 程序之前,需先確認以下 RPM 已經安裝:

    automake1.7
    libbluez1-devel
    libalsa2-devel
    libao2-devel


  3. 修改 bootstrap 這個 shell script 的內容。由於 Mandriva 2006 預設使用 automake 1.8,因此這個修改是必要的,否則接下來的 building 程序一定會失敗。修改 bootstrap 的內容,將 aclocal 和 automake 改成 aclocal-1.7 和 automake-1.7:

    #! /bin/sh

    aclocal-1.7 -I /usr/share/aclocal && autoheader && automake-1.7 --add-missing --copy &amp;amp;& autoconf


  4. 開 始 building 程序。依序使用以下 building 程序,compile btsco 的 utility (a2play, a2recv, avrecv, avsnd, btsco, btsco2) 和 kernel 模組 (snd-bt-sco.ko.gz)。由於 Mandriva 2006 的 bluez-utils RPM 中已經包含了 btsco 裡面的 ALSA plugin,因此不需要自己 compile ALSA plugin。

    $ ./bootstrap
    $ ./configure --enable-all
    $ make
    $ cd kernel
    $ make
    $ gzip *.ko


  5. 把 snd-bt-sco.ko.gz 以 root 權限安裝到系統中。雖然直接放到 /lib/modules 裡面就可以了,但是我不是很建議這麼做,因為可能會造成一些後續管理上的麻煩。我的作法是把 snd-bt-sco.ko.gz 和其他的 utility 都先放在 $HOME/btsco 裡面,然後用 root 權限在 /lib/modules 下某個適當的位置建立 symbolic link:

    $ mkdir ~/btsco
    $ mv a2play a2recv avrecv avsnd btsco btsco2 snd-bt-sco.ko.gz ~/btsco/
    $ pushd /lib/modules/`uname -r`/kernel/3rdparty
    $ sudo ln -s $HOME/btsco/snd-bt-sco.ko.gz .
    $ sudo depmod
    $ sudo modprobe snd_bt_sco
    $ popd


  6. 在 ~/bin 中建立適當的 symbolic link。基本上只要有 btsco 這個 SCO daemon 即可,但是其他的 utility 在其他場合可能會用到,所以一併建立 link:

    $ cd ~/bin
    $ ln -s ../btsco/{a2play,a2recv,avrecv,avsnd,btsco,btsco2} .


  7. 使用 root 權限設定 hci0 這個 hci device 的 voice 參數:

    $ sudo hciconfig hci0 voice 0x0060


  8. 確 定藍芽無線耳機麥克風可以跟電腦建立連線。需要注意的是,大部分的藍芽無線耳機麥克風在非 pairing 模式時,使用 hcitool 進行 scan 是找不到的,因此這邊可能必須要重新對耳機麥克風做一次 pairing。方法是先把藍芽無線耳機麥克風切換至 pairing 模式,然後執行以下指令建立連線完成 pairing:

    $ hcitool scan
    00:0A:94:93:74:B7 Jabra Blah 1234
    $ hcitool cc 00:0A:94:93:74:B7


  9. 如果上面有成功建立連線的話,那就可以啟動 btsco 進行測試。啟動 btsco 的方法很簡單,不過需要上面得到的那個 BD Addr:

    $ btsco 00:0A:94:93:74:B7


  10. 如果上面 btsco daemon 能成功執行的話,那就可以用下面的指令使用 mplayer 播放 mp3,如果能夠在耳機中聽到正確的音樂,那麼基本的設定就已經完成:

    $ mplayer -ao alsa:device=plughw=Headset FOO_BAR.mp3




基 本上到這邊,系統已經可以透過 btsco 使用藍芽無線耳機麥克風了。但是如果要讓 skype 可以透過 btsco 使用藍芽無線耳機麥克風的話,還需要一些手續。skype 目前的 Linux 版本除了是 1.2 以外,最大的問題在於目前 skype 只支援 OSS,並不直接支援 ALSA。雖然這在一般使用上並沒有太大的問題,而在 GNOME/KDE 上,可以透過 EsounD/aRTs 的 wrapper,或者是 Mandriva 自己的 soundwrapper 來和 GNOME/KDE 和平相處,但是也因此要讓 skype 能使用 btsco 變得有一點麻煩。好在已經有人提出暫時的變通辦法,Andreas Beck 在 Bluetooth-ALSA 計劃的 mailing list 上,提到他對 btsco 做了些 patch,也寫了些 script 和 wrapper,讓 skype 可以使用 btsco 來聯接無線耳機麥克風。他的 patch 後來沒多久就被收錄進 btsco 的 CVS 中,因此最新的 0.41 tarball 以及 CVS source 中,都已經包含了所需要的 patch,而他寫的 script 和 wrapper 則可以直 接在他的網站下載, 或者也可以在最新的 tarball 和 CVS source 的 btsco/contrib 目錄裡面找到。假設使用 CVS 中的 souce,那麼 compile 和設定他的 script/wrapper 的程序如下,相關細節請參考原作者寫的 README 檔案內容:


  1. 先 compile 他的 libskype_bt_hijacker.so wrapper:

    $ cd /tmp/btsco/contrib
    $ make


  2. 修改 btscorunner script 的 HEADSETADDR 變數值,改成上面 scan 時得到的 BD Addr 值。

  3. 修 改 skype_bt_hijacker script 的 HIJACKDSP 和 SECONDARYDEV 的值,改成系統中的 primary 和 secondary dsp device 的值。在我的機器上,Mandriva 2006 的系統使用原本的設定值 (/dev/dsp 和 /dev/dsp1) 即可。這個主要是要告訴 wrapper 該攔截 skype 對哪個裝置的 I/O 動作。此外還要修改 BINPATH 的值,假設接下來要把這些 script 和 wrapper 都放在 ~/btsco 裡面的話,就把 BINPATH 改成 ~/btsco 即可。

  4. 修 改 skype_bt_hijacker_onopen。這個 script 是當 libskype_bt_hijacker.so 攔截到 skype 開啟 dsp 裝置時,用來通知藍芽無線耳機麥克風用的。原作者是播放一段鈴聲提醒他,不過也可以改成 "killall -USR1 btsco" 送 SIGUSR1 給 btsco,則 btsco 會送預設的鈴聲指令給藍芽無線耳機麥克風。但是需要注意的是,實際測試結果,送 SIGUSR1 的方法在單獨測試時都正常運作,但是搭配 skype_bt_hijacker_onopen 時,很容易失敗。原因代查。如果想像原作者一樣播放一段鈴聲,則把原 script 中 aplay 播放的檔案位置改為你要的位置即可。

  5. 修改 skype_bt_hijacker_on* script 的權限:

    $ chmod 700 skype_bt_hijacker_on*


  6. 把這些 script 和 wrapper,以及一個 btsco 設定檔放到適當的位置。我的作法是把這些都一起放在 $HOME/btsco,然後在適當的位置建立 symbolic link。
    $ mv btscorunner libskype_bt_hijacker.so skype_bt_hijacker skype_bt_hijacker_on* skype_pickup.py btscorc ~/btsco/
    $ cd ~/bin
    $ ln -s ../btsco/{btscorunner,skype_bt_hijacker,skype_pickup.py} .
    $ ln -s ../btsco/skype_bt_hijacker_on* .
    $ cd ..
    $ ln -s btsco/btscorc .btscorc




安 裝到此為止。不過在使用之前,要先確定 dbus-python RPM 有裝起來,因為 skypc_pickup.py 使用 dbus 的功能來呼叫 skype API,控制 skype 的接聽與掛斷動作。而第一次使用時,skype 會警告有程式使用 API 控制 skype,問使用者是否允許該操作,必須要回答允許才行。

使用的方法很簡單,先執行 btscorunner 啟動 btsco,如果沒有錯誤的話,使用 skype_bt_hijacker 程式啟動 skype。理論上如果都正確的話,可以使用 headset 的 handfree profile 功能來控制接通和切斷,這就是透過 ~/.btscorc 裡面的設定達成的,當 btsco 偵測到 ~/.btscorc 內設定的 pattern 時,會執行 pattern 下一列指定的 action,而 skype-bt-hijacker 提供的 btscorc 就是設定當使用者按下 headset 上的按鈕時,執行 skype_pickup.py 來控制 skype。這代表 skype_pickup.py 和其他相關 script 都必須放在 $PATH 所及的地方,skype 的啟動指令也是,這也是為何我會在 ~/bin 裡面建立相關的 symbolic link 的緣故。

實測結果,在我的感覺是堪用,但是音質不是很好。音質不好的原因目前 還不確定。此外,這種啟動程序其實還不是很方便,現階段來說,可能還需要寫一些 helper script 來讓整個啟動過程更順暢才行。而且由於目前 btsco 是直接透過 ALSA 的 plugin 和 ALSA 溝通,因此如果在有使用 GNOME/KDE 等桌面整合環境下使用 btsco 時,如果 esd 等 audio server 正在使用 /dev/dsp 等 PCM 裝置的話,可能會發生錯誤。
繼續閱讀全文

星期一, 3月 20, 2006

報稅啦

這是我第一次在美國報稅。雖然是前有先跟一些人打聽過大概要怎麼做,但是到圖書館拿表格時,光看那一堆又標示得不是很清楚的表格就昏了,雖然去拿了兩次表格,每次幾乎每一種包含說明都拿了,不過看到那些跟天書一樣的表格實在是不知道該怎樣下手。

這種問題顯然不是只有我覺得困擾,美國人自己應該也覺得很麻煩,因為除了聯邦稅之外,大部分的州還有州稅,所以報稅就要分聯邦稅和州稅等至少兩種表格。因此就會有報稅軟體和線上報稅網站的出現。不過大部分的報稅軟體都是要錢的,而且授權是一年買一次,所以在稍微試過朋友給我的 TaxCut 之後,還是決定用報稅網站來報稅。

IRS 的網站上有一個網頁列出各種免費的報稅軟體網站,但是幾乎都只能免費產生並電子申報聯邦稅。我在某 BBS 看板上,看到了 TurboTax 的 Intuit Tax Freedom Project 提供的另一個免費報稅網站叫做 TurboTax State Tax Freedom,根據首頁的說明,只要符合三個條件之一,就能免費申報聯邦稅和州稅,其中一個條件,

Lived in one of the following 21 states: AL, AZ, AK, GA, ID, IA, KY, MA, MI, MN, MI, MS, MT, NY, ND, NC, OK, OR, RI, VT, WV AND earned an Adjusted Gross Income (AGI) of $28,500 or less.

剛好符合我的情形。本來抱著半信半疑的心情,想說試試看好了,因為大部分的線上免費報稅,包含 Intuit Tax Freedom Project 的 TurboTax Tax Freedom 都只能免費申報聯邦稅而已,會不會到時候操作到最後,突然說要 e-filing 要收錢之類的。沒想到,真的是 free!

該網站操作到最後,會產生 PDF 格式的報稅表格,並且列出需要繳交的費用。由於我是低收入戶,收入也低於 US$28,000,所以整個流程,包含表格產生以及電子申報都是免費。不過由於是第一次使用電子申報(e-filing),因此沒辦法完全無紙化作業,因為電子簽章的部份需要前一次報稅時 IRS 給的 PIN 等資訊,因此至少要報過一次有過紀錄才能直接用電子簽章完成整個作業。

現在電子申報的部份已經完成一半,現在就等 IRS 和州的稅務機關的回應,看看電子表格式不是被接受了,如果被接受了,還要補寄兩個簽名的表格,整個流程才算完成。不過至少完成了一大部分,心裡的一塊大石也放下一大半了。
繼續閱讀全文

文章很少的原因

這個 Blog 的文章很少,英文版的更少,主要的原因是....我懶,加上之前該死的 blogger 竟然給我出狀況,所有貼上去的文章都不能發佈。就連剛剛第一次發佈這篇時,blogger 又出狀況了!!!所以啦...
繼續閱讀全文

星期五, 3月 03, 2006

惡搞學校的列印服務

學校有提供 PostScript 的列印服務,基本上沒有 quota 限制,只是只能印黑白雙面,而且每天通常只有三次送件的時間,要自己去領件。


學校的這個服務其實對我來說相當有用,尤其是這學期一大堆文件需要印出來參考,自己印的話,quota 一下就爆掉了,而且學校的印表機不能讓你印雙面的,所以有點浪費紙。要使用這個服務,有至少三種送印的方式:
其中直接透過 samba 的方式是最直接了,不需要自己做檔案轉換,但是缺點是目前來說學校似乎沒有意願把網路列印分享的權限擴展至所有校內 IP。Web 列印介面基本上也不錯,雖然要自己先轉檔,不過這對我來說並不難。比較討厭的是 Web 列印介面在某次改版之後,不知道是哪邊的問題,導致使用非 IE 的 browser 在檔案上傳之後,都會回應類似『此頁面有需要大量運算的 Script,可能會導致系統停止回應』之類的訊息。雖然使用 FireFox 可以中斷該 script,並且也不會影響送印的結果,但是感覺還是蠻討厭的,而且還要開個 browser 自己選半天還是不太方便。最後一種方式理論上是最不好使用的,因為一方面要把檔案轉好傳到工作站上,另一方面還要自己下指令。但是 Unix 強大的地方就在於 command line 啊!簡單的惡搞一下之後,列印就只剩下轉檔以及把檔案丟到工作站上而已了!

其實這個惡搞的想法很簡單,就只是寫一個 script 去檢查某個目錄,當該目錄下有檔案,而且是 PostScript 檔案的話,就使用 prnt 指令把檔案送印,然後不管成功失敗都會寄 mail 通知我,並把成功的檔案搬到一個目錄,失敗的檔案丟到另一個目錄去。然後就只是設定 crontab,讓該 script 每 10 分鐘跑一次即可。這樣我就只需要把檔案轉好,丟進那個特定目錄,然後等送件時間過了以後去拿就好啦!雖然因為 Solaris 上有些指令的預設行為和在 Linux 上不同,不過基本上寫這樣的 script 並不是難事,但結果卻是省掉很多後續的瑣碎手續。

結論是:會 UN*X 真好
繼續閱讀全文

星期五, 2月 24, 2006

哈哈!糗了!

這學期修了一門蠻有趣的課,是有關高效能運算以及平行程式設計的。這門課除了有三個相當於小型計畫的案例研究之外,還有一個期末計畫要做。上週教授說要我們在這週一(二月20日)交該計畫的企劃書。不過,在週日(二月19日)時,收到教授的電子郵件說,因為他生病,所以週一的課取消,同時說到企劃書的內容,要我們把預期會呈現的成果,以及時間進度表列在企劃書中,但是可以到這週五(二月24日)再定案。信件的內容大致上是這樣。不過也許是因為我的英文太破,再加上一廂情願,我解讀成企劃書的繳交期限延期到本週五。結果當然是....糗了。

雖然我在上週六就已經準備好企劃書的草稿,也和同組組員討論過,但是收到教授的信以後,我和我的搭檔一致認為要等週三上課時,看看叫受有沒有補充甚麼有關企劃書內容的說明,再決定如何修改內容,然後週五再把企劃書用電子檔寄給教授。沒想到我昨天晚上因為找到一篇教授上課提到過,但是他說沒有電子檔的論文的 PS 檔,寫信寄檔案給教授,同時問一些企劃書的細節,而今天早上才收到教授回信說:『很不幸的,你已經遲交三天了!趕快寄來給我吧!』天啊!還好我是早上考完試去收信才看到的,不然今天早上考試大概會很慘。考到一半覺得肚子痛跑廁所已經很慘了,還好沒有看到信,不然雙重打擊之下,一定......

所以下次遇到這種不是很確定的狀況,還是要再三確認比較好。不然有時候文化和語言的差異,往往造成許多意想不到的後果。
繼續閱讀全文

星期六, 2月 11, 2006

該死的 Skype for PocketPC

Skype for PocketPC 最近幾個版本的 UI 語言設定始終有問題。

上個月釋出的 1.2.0.89 雖然已經可以在 WM5 上正常運作,並且新增了在安裝時自動語系偵測設定的功能,但是『Chinese (Traditional)』的語言翻譯卻實際上是簡體中文的,而『Chinese (Simplified)』則是繁體的,除了啟動畫面以外,所有訊息都是簡繁對調。雖然發現之後我立刻 mail 給 Skype 反應這個問題,但是一直都沒有得到任何回應。

今天一時興起,又去 Skype 網站看看,結果發現 2.0.0.39 已經釋出。下載安裝以後,由於之前使用 1.2.0.89 時,把語系設定為簡體,所以啟動時真的看到簡體啟動畫面,並且訊息都變成簡體,代表語言檔對應錯誤的問題已經修正了。但是事情真的這麼美好嗎?其實不然,當我從功能表中的設定去修改語系為『Chinese (Traditional)』時,Skype 竟然回應我的系統不支援該語系,拒絕更換語系設定。即便是先切換語系到英文然後再改,結果還是不行。

不過山不轉路轉,既然使用 UI 介面沒辦法修改,那就直接找設定檔開刀吧!經過一些搜尋,發現 Skype 使用 xml 格式的設定檔。在 "\Application Data\Skype" 下的 shared.xml 是所有登入身份共用的設定檔,其中在 "" element 中有一個 "" element,這個 element 的數值就是 UI 使用的語言。但是問題是,繁體中文該是多少呢?經過數次的錯誤嘗試,發現原來繁體中文的數值是 1,本來以為會是簡體 (6) 的加減一,沒想到完全不是這麼回事。因此把該元素的值改成 1 以後,啟動 Skype for PocketPC,所有訊息就變成繁體中文了。
繼續閱讀全文

星期四, 2月 09, 2006

全新開張
Grand Opening

嗯...很久沒寫 blog 了,剛好在某處看到某位朋友的 blog,一時興起,就乾脆申請一個好了。

本來打算用中文和英文混雜的方式寫,不過剛剛才想到...標題沒辦法這樣做啊∼∼∼

馬上就耍白爛了。唉...

可是後來想想,動點手腳就可以了...嗯,果然是白爛

不過我想還是把中文英文分開好了,免得版面看起來很亂。
繼續閱讀全文