今 天到圖書館拿列印的文件,但是很該死的是又有一份文件被印到不見,所以就去圖書館的電腦區找機器來用一下。很不巧,所有的暈倒機都被佔用了,剩兩台 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月 17, 2006
星期一, 11月 06, 2006
研究牲漫畫作者的新網誌
之前介紹過過一些我比較常看的網路漫畫,今天碰巧發現『研究牲』漫畫的作者又有了一個新的網誌,裡面的分類『研究牲的秘密花園』也是使用漫畫的手法來紀錄一些趣事。
其實這類型的網誌有逐漸增多的趨勢。例如 PTT Joke 版的名人輔大猴(fjumonkey)的網誌就是相當早混用四格漫畫來紀錄的一個例子。
繼續閱讀全文
其實這類型的網誌有逐漸增多的趨勢。例如 PTT Joke 版的名人輔大猴(fjumonkey)的網誌就是相當早混用四格漫畫來紀錄的一個例子。
繼續閱讀全文
星期日, 10月 29, 2006
料理大挑戰:輕乳酪蛋糕
在美國,吃的東西比起台灣,算是又貴又不好吃,真的要好吃的,要不是因為口味上偏好的差異而買不到,不然就是貴到買不下手。
前幾天,由於心情煩悶,突然覺得想吃乳酪蛋糕。這邊確實買得到美式乳酪蛋糕,但通常不便宜,而且通常又非常的甜。因此只好秉持窮留學生本色,自己動手做。
在網路上搜尋了一下,找到不少中文和英文的乳酪蛋糕的食譜,不過引起我注意的是一篇標題為『理論廚師的實驗廚房 - 輕乳酪蛋糕』的 blog。會選這一篇有很多原因,包含有幾張顯示重點步驟的照片,以及有附上所需用具與材料的英文名稱。
不過由於之前完全沒做過這種點心類的東西,很多用具我手邊沒有,因此在昨天週五下課後,走路到離學校比較近的美式超市去購買材料以及缺乏的用具。沒想到買一 買也花了約 US$40 左右,包含我手邊沒有但需要的材料,以及一個濾網、簡單的電動攪拌器、矽膠刮刀、鋁箔製的原型小烤盤,還有一個小量杯等等。本來想乾脆買蛋糕烤盤 (Springform Pan),不過覺得太貴了,所以就先算了。
回到家中,大約下午 6 點左右開始動手。由於缺乏經驗,而該網誌上並沒有把所有步驟都拍照,所以有些地方有點手忙腳亂,甚至忘了加檸檬汁。又由於沒有量材料份量,加上手邊剛好有 代糖,所以把糖用代糖取代,而某些材料的份量,是用總重量去計算估計,有些沒辦法估計的,就只好憑感覺了。一陣手忙腳亂之後,總算在7點之前把蛋糕丟進烤 箱去烤。烤了約半小時左右,表面上色了,不過好像有點太過頭了...蓋上鋁箔紙以後繼續烤,大約每 10 到 15 分鐘去『搓搓看』。由於實在不知道該烤到怎樣的程度,所以又繼續考了約 1 個半小時,因此總時間約考了 2 小時。烤好之後拿出來放涼。等到夠涼了之後,放進冰箱冰。冰一段時間後(我冰了半天吧?)就可以了。
附上一些照片:
剛烤好:
冰過一晚後:
切開以後:
吃了一小塊以後,大致上還好,可能是因為我用的烤盤比較大,所以感覺太薄了,加上混合打發的蛋白和蛋黃糊時,也許動作太大,所以感覺太緊密了些,不過我實在不知道該怎樣輕輕的混合。表皮有一層可能是因為『上色』得太過頭,或者是整體時間太久,感覺比較硬,有點破壞口感。代糖加得不夠多,因此感覺有點不太甜。不過就第一次嘗試來說,我自己是覺得還可以接受。
繼續閱讀全文
前幾天,由於心情煩悶,突然覺得想吃乳酪蛋糕。這邊確實買得到美式乳酪蛋糕,但通常不便宜,而且通常又非常的甜。因此只好秉持窮留學生本色,自己動手做。
在網路上搜尋了一下,找到不少中文和英文的乳酪蛋糕的食譜,不過引起我注意的是一篇標題為『理論廚師的實驗廚房 - 輕乳酪蛋糕』的 blog。會選這一篇有很多原因,包含有幾張顯示重點步驟的照片,以及有附上所需用具與材料的英文名稱。
不過由於之前完全沒做過這種點心類的東西,很多用具我手邊沒有,因此在昨天週五下課後,走路到離學校比較近的美式超市去購買材料以及缺乏的用具。沒想到買一 買也花了約 US$40 左右,包含我手邊沒有但需要的材料,以及一個濾網、簡單的電動攪拌器、矽膠刮刀、鋁箔製的原型小烤盤,還有一個小量杯等等。本來想乾脆買蛋糕烤盤 (Springform Pan),不過覺得太貴了,所以就先算了。
回到家中,大約下午 6 點左右開始動手。由於缺乏經驗,而該網誌上並沒有把所有步驟都拍照,所以有些地方有點手忙腳亂,甚至忘了加檸檬汁。又由於沒有量材料份量,加上手邊剛好有 代糖,所以把糖用代糖取代,而某些材料的份量,是用總重量去計算估計,有些沒辦法估計的,就只好憑感覺了。一陣手忙腳亂之後,總算在7點之前把蛋糕丟進烤 箱去烤。烤了約半小時左右,表面上色了,不過好像有點太過頭了...蓋上鋁箔紙以後繼續烤,大約每 10 到 15 分鐘去『搓搓看』。由於實在不知道該烤到怎樣的程度,所以又繼續考了約 1 個半小時,因此總時間約考了 2 小時。烤好之後拿出來放涼。等到夠涼了之後,放進冰箱冰。冰一段時間後(我冰了半天吧?)就可以了。
附上一些照片:
剛烤好:
冰過一晚後:
切開以後:
吃了一小塊以後,大致上還好,可能是因為我用的烤盤比較大,所以感覺太薄了,加上混合打發的蛋白和蛋黃糊時,也許動作太大,所以感覺太緊密了些,不過我實在不知道該怎樣輕輕的混合。表皮有一層可能是因為『上色』得太過頭,或者是整體時間太久,感覺比較硬,有點破壞口感。代糖加得不夠多,因此感覺有點不太甜。不過就第一次嘗試來說,我自己是覺得還可以接受。
繼續閱讀全文
星期一, 10月 23, 2006
有趣的網路漫畫
網路上除了有各種各樣的網路寫手寫的網路文學之外,還有不少相當有趣的漫畫,其中 River 的兩大系列漫畫應該是知名度最高的了,但除此之外,還有不少相當有趣的漫畫。
以下是幾個我比較常看的漫畫:
繼續閱讀全文
以下是幾個我比較常看的漫畫:
- River's 543 - River 自己在 Sina 上的 blog,本來是固定發表於 Sina 的漫畫網頁,後來不知道為何改用 blog
- Yahoo!奇摩漫畫 - 這是 Yahoo 的漫畫網頁,其中有 River 的已經完結的Yahoo!奇摩高校漫畫以及新的 OL蔡桃桂,以及一些新興的漫畫,例如極樂地獄、泰山爸爸、毛球寶兒等等。
- 研究所漫畫集錦 - 研究生發洩漫畫之一。作者名言:『
研究生不死,只是生不如死…』 - 發洩漫畫 研究牲(18禁) - 另一研究生發洩漫畫。作者對該漫畫相簿的註解:『
我的形象...毀於一旦』 - 雨夫的故事 - 幽默,有時候有點冷的小漫畫 :P
繼續閱讀全文
星期六, 10月 21, 2006
有趣的 Festival
Festival 是個 Free Software 的語音合成 (Speech Synthesis/Text-to-Speech) 程式。不過可惜 Festival 本身只提供英式和美式英文以及西班牙文等的男聲。不過 Festival 有提供一個 Wrapper 來呼叫 MBROLA 計劃的封閉原始碼程式,以使用 MBROLA 計劃的語音庫 (Festival and MBROLA 網頁中有安裝方式的簡介)。
Festival 的使用方式有幾種:
以下是幾個我寫的應用實例:
其他還有許多可能的應用。目前中文的語音合成程式就我所知,似乎還沒看到有 Free Software 的實作可用。
繼續閱讀全文
Festival 的使用方式有幾種:
- 執行 festival client 程式,使用 interactive 模式下指令進行操作
- 使用 festival 提供的 text2wave 工具程式,直接把文字轉換成 wave 格式的語音檔案
- 使用其他語言的 wrapper,例如 perl 的 Festival::Client
以下是幾個我寫的應用實例:
- 語音報時: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 上時,不需要再去找替代軟體來用。
希望這次可以成功。
繼續閱讀全文
希望這次可以成功。
繼續閱讀全文
標籤:
networking
星期三, 9月 13, 2006
標籤:
networking
星期日, 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 也能使用藍芽無線耳機和無線耳機麥克風。引用一段計劃網頁上的說明:
不過這個計劃還是在發展初期,最 新的 release 是 btsco 0.41。雖然 btsco v0.41 中已經包含了使用 skype 所需要的基本功能,不過由於是發展中的軟體,我是比較偏向使用 CVS 中的 source code。
目前來說,Mandriva 2006 中,還沒有出現已經包裝好的 btsco RPM 可以用,因此安裝上比較麻煩些。現階段來說,btsco 的使用還不是非常適合一般使用者使用,因此我暫時也沒有打包成 RPM 的計劃。大致上的安裝步驟如下:
基 本上到這邊,系統已經可以透過 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 檔案內容:
安 裝到此為止。不過在使用之前,要先確定 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 裝置的話,可能會發生錯誤。
繼續閱讀全文
廢話說完,回歸到主題。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 的計劃。大致上的安裝步驟如下:
- 由 CVS 取得最新的 source code:
$ cd /tmp
$ cvs -d:pserver:anonymous@cvs.sf.net:/cvsroot/bluetooth-alsa co btsco
$ cd btsco - 在開始進行 building 程序之前,需先確認以下 RPM 已經安裝:
automake1.7
libbluez1-devel
libalsa2-devel
libao2-devel - 修改 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;& autoconf - 開 始 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 - 把 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 - 在 ~/bin 中建立適當的 symbolic link。基本上只要有 btsco 這個 SCO daemon 即可,但是其他的 utility 在其他場合可能會用到,所以一併建立 link:
$ cd ~/bin
$ ln -s ../btsco/{a2play,a2recv,avrecv,avsnd,btsco,btsco2} . - 使用 root 權限設定 hci0 這個 hci device 的 voice 參數:
$ sudo hciconfig hci0 voice 0x0060 - 確 定藍芽無線耳機麥克風可以跟電腦建立連線。需要注意的是,大部分的藍芽無線耳機麥克風在非 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 - 如果上面有成功建立連線的話,那就可以啟動 btsco 進行測試。啟動 btsco 的方法很簡單,不過需要上面得到的那個 BD Addr:
$ btsco 00:0A:94:93:74:B7 - 如果上面 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 檔案內容:
- 先 compile 他的 libskype_bt_hijacker.so wrapper:
$ cd /tmp/btsco/contrib
$ make - 修改 btscorunner script 的 HEADSETADDR 變數值,改成上面 scan 時得到的 BD Addr 值。
- 修 改 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 即可。
- 修 改 skype_bt_hijacker_onopen。這個 script 是當 libskype_bt_hijacker.so 攔截到 skype 開啟 dsp 裝置時,用來通知藍芽無線耳機麥克風用的。原作者是播放一段鈴聲提醒他,不過也可以改成 "killall -USR1 btsco" 送 SIGUSR1 給 btsco,則 btsco 會送預設的鈴聲指令給藍芽無線耳機麥克風。但是需要注意的是,實際測試結果,送 SIGUSR1 的方法在單獨測試時都正常運作,但是搭配 skype_bt_hijacker_onopen 時,很容易失敗。原因代查。如果想像原作者一樣播放一段鈴聲,則把原 script 中 aplay 播放的檔案位置改為你要的位置即可。
- 修改 skype_bt_hijacker_on* script 的權限:
$ chmod 700 skype_bt_hijacker_on* - 把這些 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,根據首頁的說明,只要符合三個條件之一,就能免費申報聯邦稅和州稅,其中一個條件,
剛好符合我的情形。本來抱著半信半疑的心情,想說試試看好了,因為大部分的線上免費報稅,包含 Intuit Tax Freedom Project 的 TurboTax Tax Freedom 都只能免費申報聯邦稅而已,會不會到時候操作到最後,突然說要 e-filing 要收錢之類的。沒想到,真的是 free!
該網站操作到最後,會產生 PDF 格式的報稅表格,並且列出需要繳交的費用。由於我是低收入戶,收入也低於 US$28,000,所以整個流程,包含表格產生以及電子申報都是免費。不過由於是第一次使用電子申報(e-filing),因此沒辦法完全無紙化作業,因為電子簽章的部份需要前一次報稅時 IRS 給的 PIN 等資訊,因此至少要報過一次有過紀錄才能直接用電子簽章完成整個作業。
現在電子申報的部份已經完成一半,現在就等 IRS 和州的稅務機關的回應,看看電子表格式不是被接受了,如果被接受了,還要補寄兩個簽名的表格,整個流程才算完成。不過至少完成了一大部分,心裡的一塊大石也放下一大半了。
繼續閱讀全文
這種問題顯然不是只有我覺得困擾,美國人自己應該也覺得很麻煩,因為除了聯邦稅之外,大部分的州還有州稅,所以報稅就要分聯邦稅和州稅等至少兩種表格。因此就會有報稅軟體和線上報稅網站的出現。不過大部分的報稅軟體都是要錢的,而且授權是一年買一次,所以在稍微試過朋友給我的 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 和州的稅務機關的回應,看看電子表格式不是被接受了,如果被接受了,還要補寄兩個簽名的表格,整個流程才算完成。不過至少完成了一大部分,心裡的一塊大石也放下一大半了。
繼續閱讀全文
星期五, 3月 03, 2006
惡搞學校的列印服務
學校有提供 PostScript 的列印服務,基本上沒有 quota 限制,只是只能印黑白雙面,而且每天通常只有三次送件的時間,要自己去領件。
學校的這個服務其實對我來說相當有用,尤其是這學期一大堆文件需要印出來參考,自己印的話,quota 一下就爆掉了,而且學校的印表機不能讓你印雙面的,所以有點浪費紙。要使用這個服務,有至少三種送印的方式:
其實這個惡搞的想法很簡單,就只是寫一個 script 去檢查某個目錄,當該目錄下有檔案,而且是 PostScript 檔案的話,就使用 prnt 指令把檔案送印,然後不管成功失敗都會寄 mail 通知我,並把成功的檔案搬到一個目錄,失敗的檔案丟到另一個目錄去。然後就只是設定 crontab,讓該 script 每 10 分鐘跑一次即可。這樣我就只需要把檔案轉好,丟進那個特定目錄,然後等送件時間過了以後去拿就好啦!雖然因為 Solaris 上有些指令的預設行為和在 Linux 上不同,不過基本上寫這樣的 script 並不是難事,但結果卻是省掉很多後續的瑣碎手續。
結論是:會 UN*X 真好
繼續閱讀全文
學校的這個服務其實對我來說相當有用,尤其是這學期一大堆文件需要印出來參考,自己印的話,quota 一下就爆掉了,而且學校的印表機不能讓你印雙面的,所以有點浪費紙。要使用這個服務,有至少三種送印的方式:
- 直接在學校的幾個點用學校的機器,透過 samba 的印表機分享送印
- 使用 webprint 介面送印
- 在學校的 Solaris 工作站上使用 prnt 指令送印
其實這個惡搞的想法很簡單,就只是寫一個 script 去檢查某個目錄,當該目錄下有檔案,而且是 PostScript 檔案的話,就使用 prnt 指令把檔案送印,然後不管成功失敗都會寄 mail 通知我,並把成功的檔案搬到一個目錄,失敗的檔案丟到另一個目錄去。然後就只是設定 crontab,讓該 script 每 10 分鐘跑一次即可。這樣我就只需要把檔案轉好,丟進那個特定目錄,然後等送件時間過了以後去拿就好啦!雖然因為 Solaris 上有些指令的預設行為和在 Linux 上不同,不過基本上寫這樣的 script 並不是難事,但結果卻是省掉很多後續的瑣碎手續。
結論是:會 UN*X 真好
繼續閱讀全文
標籤:
networking
星期五, 2月 24, 2006
哈哈!糗了!
這學期修了一門蠻有趣的課,是有關高效能運算以及平行程式設計的。這門課除了有三個相當於小型計畫的案例研究之外,還有一個期末計畫要做。上週教授說要我們在這週一(二月20日)交該計畫的企劃書。不過,在週日(二月19日)時,收到教授的電子郵件說,因為他生病,所以週一的課取消,同時說到企劃書的內容,要我們把預期會呈現的成果,以及時間進度表列在企劃書中,但是可以到這週五(二月24日)再定案。信件的內容大致上是這樣。不過也許是因為我的英文太破,再加上一廂情願,我解讀成企劃書的繳交期限延期到本週五。結果當然是....糗了。
雖然我在上週六就已經準備好企劃書的草稿,也和同組組員討論過,但是收到教授的信以後,我和我的搭檔一致認為要等週三上課時,看看叫受有沒有補充甚麼有關企劃書內容的說明,再決定如何修改內容,然後週五再把企劃書用電子檔寄給教授。沒想到我昨天晚上因為找到一篇教授上課提到過,但是他說沒有電子檔的論文的 PS 檔,寫信寄檔案給教授,同時問一些企劃書的細節,而今天早上才收到教授回信說:『很不幸的,你已經遲交三天了!趕快寄來給我吧!』天啊!還好我是早上考完試去收信才看到的,不然今天早上考試大概會很慘。考到一半覺得肚子痛跑廁所已經很慘了,還好沒有看到信,不然雙重打擊之下,一定......
所以下次遇到這種不是很確定的狀況,還是要再三確認比較好。不然有時候文化和語言的差異,往往造成許多意想不到的後果。
繼續閱讀全文
雖然我在上週六就已經準備好企劃書的草稿,也和同組組員討論過,但是收到教授的信以後,我和我的搭檔一致認為要等週三上課時,看看叫受有沒有補充甚麼有關企劃書內容的說明,再決定如何修改內容,然後週五再把企劃書用電子檔寄給教授。沒想到我昨天晚上因為找到一篇教授上課提到過,但是他說沒有電子檔的論文的 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,所有訊息就變成繁體中文了。
繼續閱讀全文
上個月釋出的 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 是所有登入身份共用的設定檔,其中在 "
繼續閱讀全文
標籤:
handheld,
mobile device
星期四, 2月 09, 2006
全新開張
Grand Opening
嗯...很久沒寫 blog 了,剛好在某處看到某位朋友的 blog,一時興起,就乾脆申請一個好了。
本來打算用中文和英文混雜的方式寫,不過剛剛才想到...標題沒辦法這樣做啊∼∼∼
馬上就耍白爛了。唉...
可是後來想想,動點手腳就可以了...嗯,果然是白爛
不過我想還是把中文英文分開好了,免得版面看起來很亂。
繼續閱讀全文
本來打算用中文和英文混雜的方式寫,不過剛剛才想到...標題沒辦法這樣做啊∼∼∼
馬上就耍白爛了。唉...
可是後來想想,動點手腳就可以了...嗯,果然是白爛
不過我想還是把中文英文分開好了,免得版面看起來很亂。
繼續閱讀全文
訂閱:
文章 (Atom)