Sysinternals – BlueScreen

BlueScreen 顧名思義就是一個會產生藍白當機畫面的軟體,不過他不是真的讓你的電腦當機,而是一個螢幕保護程式,不斷循環顯示藍白當機畫面 → 重開機 → 藍白當機畫面 … ,每次的當機訊息還會不太一樣。

Sysinternals – Sync

Sync 可以強迫系統將快取裡面的資料寫入磁碟, UNIX 系統上老早就有這樣的程式了。

今天逛 Windows Sysinternals 還真是發現不少好玩的東西。

Sysinternals – PageDefrag

PageDefrag 可以用來重整一些系統檔案,包括分頁檔。因為這些系統檔案一開機就會被鎖定,所以一般的磁碟重整程式並無法重整這些檔案,而 PageDefrag 可以設定在下次或每次開機時重整系統檔案。另外 PageDefrag 也會顯示系統檔案在磁碟上的分散情況,如果碎片不是很嚴重的話就可以不用重整。

Sysinternals – Junction

Junction 可以建立 Windows 平台的 Symbolic Link ,類似在 Linux 上ls -s 指令。不過 Junction 只能建立資料夾的 Symbolic Link ,蠻鱉腳的就是了。

使用方法很簡單,建立 Junction 的指令如下:

junction  

其中 是你要建立的 Symbolic Link 名稱,而 則是這個 Symbolic Link 所指向的資料夾。例如

junction C:\Users "C:\Documents and Settings"

會建立一個名為 Users 的 Junction 指向 C:\Documents and Settings 。另外當從 XP 升級到 Vista 時,因為一些檔案的擺放位置都改變了,所以會建立許多的 Junction 。

要刪除 Junction 的話只要前面加上 -d 的參數即可,例如:

junction -d C:\Users

刪除的時候要小心一點,可別把指向目標資料夾的內容全刪光了。

Windows Live Messenger 共用資料夾

昨天第一次自己開 Windows Live Messenger 的共用資料夾給別人,沒想到微軟的設計還挺差的。共用資料夾的時候, Windows Live Messenger 會將整個資料夾複製到

C:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Microsoft\Messenger\[MESSENGER ID]\Sharing Folders\[FRIEND MESSENGER ID]\

也就是說電腦裡面會存兩份共用的資料夾,真是浪費空間。

另外一個會因此而佔用大量硬碟空間的地方在

C:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Microsoft\Messenger\[MESSENGER ID]\SharingMetadata\[FRIEND MESSENGER ID]\DFSR\Staging\

我猜大概也會佔用和共用資料夾相當的空間,因為在我的電腦裡這個資料夾所佔的空間一直在增加(而且相當大),不過我的硬碟空間已經不夠讓他長了。

這種什麼東西都要吃 C 磁碟的設計真是令人討厭。

Gadget – Google Calendar

官方的 Google Calendar Gadget 在 iGoogle 上的表現非常不好,一者是檢視的能力差,另一個是載入的速度過慢,每次只要開 iGoogle 都會因為官方的 Google Calendar Gadget 而等上數十秒,有時候還會發生需要先登入 Google Calendar 事件清單才會顯示的囧事。今天特地搜尋了一下,找到幾個不錯的 Gadget 。

Google Calendar by Matthew Johnson

  • 可以使用 Week 、 Month 、 Agenda 三種檢視方式,顯示出來的樣子就像是一個縮小版的 Google Calendar ,不過只能看,不能增刪。
  • 可以加入最多九個行事曆,加入時需要填入行事曆的 ID ,而行事曆的事件可以自訂顯示顏色。

Google Calendar by Bas Hennekam

  • 跟上面那一個 Gadget 幾乎一模一樣,差別在於這一個 Gadget 不用自己一個一個新增行事曆,他會自己登入 Google Calendar ,而且可以直接選擇哪一些行事曆要顯示。

Google Calendar (YAGCG) by Bernie T.

  • 會顯示一個簡單的日曆跟事件清單,不同的事件會用不同的顏色標示,但是和 Google Calendar 的顏色設定不會相同。

上面這些載入的速度都比官方的 Google Calendar Gadget 快,目前我正在使用的是第二個。

Travian 簽名檔

Cry’s Travian Tools 有個網頁可以產生 Travian 簽名檔,簽名檔部份有個 Chinese Trad. 可以選,不過 Avatar 在聯盟的部份無法顯示中文。仔細看了一下,不用這個網頁也可以自己找出來簽名檔的圖像位址:

  • 首先記下來簽名檔圖像的伺服器,我試了一下, http://travian.macaputo.de/http://cry.travianteam.com/ 都可以使用。
  • 接著是鏈結位址的後半段,其格式為:sig-[風格代碼]-[語言]-[未知]-[伺服器]_[UID].gif
    • [風格代碼] 如下:
      1. Standard
      2. Travian Neutral
      3. Travian 羅馬人
      4. Travian 條頓人
      5. Travian 高盧人
      6. Travian Auto
      7. Travian Auto UTF8
      8. Travian Auto Avatar
      9. Travian Auto Chinese Simpl.
      10. Travian Auto Chinese Trad.
      11. Travian Ally Gray
      12. Travian Ally Green
    • [語言] 的部份為兩個英文字元,例如 en 或 hk ,會影響表格標頭,例如 en 會顯示 Alliance 、 Rank 、Points 、 Vill. ,而 hk 則顯示聯盟、排名、總人口、村莊,要注意的是目前沒有 tw 這個選項。
    • [未知] 的部份就不曉得要幹嘛了,用產生器做出來的都是 2 ,但是我把這部份改成 200 還是得到一樣的結果。
    • [伺服器] 是玩家所在的 Travian 伺服器,例如 tw1 代表 s1.travian.tw ,而 com2 則代表 s2.travian.com 。
    • [UID] 是玩家的使用者代碼,按一下”個人資料”再看看網址列,其中 “uid=xxx” 的 xxx 部份就是 UID 。
  • 底下是兩個範例:
    http://cry.travianteam.com/sig-7-en-2-org1_22166.gif

    ex1

    http://cry.travianteam.com/sig-8-en-2-com2_109933.gif

    ex2

Ubuntu Diary : Segmentation Fault while Removing capplets-data

前天使用 GUI 介面更新 Ubuntu 時不知道為什麼,跳出一個視窗跟我說更新失敗,因為要睡覺了,就沒有仔細查看。結果昨天發現 Gnome 進不去了,今天早上開始嘗試解決這個問題,發現使用 apt-get upgrade 的時候,會出現類似下面的訊息:

dpkg: error processing capplets-data (--configure):
subprocess post-installation script returned error exit status 139

如果用 apt-get remove capplets-data 的話,則會出現 Segmentation fault ,訊息大致上是說執行 postrm 的時候出錯。於是就完全不能更新,也不能移除有問題的套件,連重新 config 也不行。

後來仔細看一下 /var/lib/dpkg/info/capplets-data.postrm ,發現原來是在執行

scrollkeeper-update -q

的時候會發生 Segmentation fault ,只要執行

scrollkeeper-rebuilddb

就可以解決這個問題了。

2007.09.03-2007.09.09 里斯本雜感

里斯本的路相當複雜,其中最令人討厭的是常常搞不清楚路名。在馬路上永遠不會有指標指著這一條路是什麼路,只會說左轉是什麼路,右轉是什麼路,但是指標一多的話,也不知道哪個才是路名。

9/6 在街上吃完晚餐之後,想憑著大約的方向走回旅館。印象中這一條街往東走應該會跟一條最大的路 Avenida da Republica 垂直,左轉向北順著 Avenida da Republica 走下去就可以到旅館。但沒想到這一條街是斜的,旅館在餐廳的東北邊,而這一條街則斜向東南,於是我就繞了一個大圓圈而迷路了。

這時候大約是晚上九點,雖然餐廳都還開著,但路上沒什麼行人,也沒什麼車。一個人走在路上其實有點怕怕的,不知道這邊的治安好不好。加上路這麼亂, 走來走去都不知道身在何處。還好後來讓我發現路旁的公車等候亭都會有地圖,並且指出目前的位置。只要順著馬路走到下一個候車亭,就可以知道馬路的方向了。 結果當天這麼一迷路,多花了一個小時的時間才回到旅館。

Move Free

上個星期幫老媽買了幾罐 Move Free ,我找到最便宜的是在 Costco ,但是我不是會員,沒辦法進去買。結果後來發現原來不是會員也可以從 Costco 的網頁買,只是要加 5% 。而且我發現這個時候剛好 Move Free 在促銷,又更便宜了。

因為怕來不及,所以用 Express shipping ,三天就到了。不過當天晚上十點多回到公寓時還真是嚇一跳,一個長方形的盒子就大喇喇地立在門前。本來以為會由公寓管理員代收的,沒想到就這樣丟在門口, 更令人意外的是我這麼晚才回去,它竟然還靜靜地立在門前而沒有被幹走。

Ubuntu Diary : OXIM and im-switch

Intro

Linux 上的輸入模組也蠻多種的,像是 scim 、 gcin 等等,一開始我裝的是 scim ,不過有時候叫不出來。如果我在用 MSN 跟笨笨聊天的時候叫不出來,那可真是令人生氣。後來棄 scim 改投 gcin ,雖然沒什麼大問題,不過就是用不習慣。因為以往在 Windows 上用的輸入法是新酷音,而最近剛好發現還有另一個輸入模組 oxim 的存在, oxim 加上 libchewing 的長相真是像極了 Windows 上的新酷音,所以決定裝 oxim 來試試看。

在 Ubuntu 上裝 oxim 也不是那麼簡單,因為官方的 Repository 沒有 oxim 套件,雖然網路上有人有做好,但是不想加入來源不明的 Repository ,只好從原始碼編譯。只是從編譯到安裝使用出了一些小狀況,還好網路上找的到資料解決。以下就說明一下安裝 oxim 的步驟。

Install OXIM

  1. 首先到 OXIM 首頁下載原始碼,我自己是抓 cvs 版本的。
  2. cvs 版本沒有 configure 跟 Makefile.in ,而自動產生 configure 與 Makefile.in 是利用 autotools 來完成,所以要先有 autotools 。 Ubuntu 的話裝個 autobook 就會自動安裝 autoconf 跟 automake 等等套件。(其實我沒有裝 autobook ,我是看缺甚麼就裝甚麼,所以不確定只裝 autobook 夠不夠。)
    $ sudo apt-get install autobook

    oxim 作者很貼心地把產生的步驟寫成一個 script ,執行他一下 configure 跟 Makefile.in 就出來了。

    $ ./autogen.sh
  3. 接下來就跟一般編譯原始碼的動作一樣了,只是有些必要套件要安裝,像是 libqt3-headers 、 qt3-dev-tools 、 libchewing3-dev 等等族繁不及備載(其實是我裝好忘了)。而 configure 會找不到 qt3 ,得自己加上參數指定。
    $ ./configure --with-qt-dir=/usr/share/qt3

    如果跑出來的結果像這樣

    Build options:
    Version 1.1.3.90
    Install prefix /usr
    IM Module directory ${exec_prefix}/lib/oxim/immodules
    Module directory ${exec_prefix}/lib/oxim/modules
    Table directory ${exec_prefix}/lib/oxim/tables

    Input Method modules:
    Chewing yes
    Unicode yes

    Optional:
    GTK+ IM module yes
    QT IM module yes

    GUI Setup Tool yes

    恭喜你成功了,如果跑到一半跟你說找不到某個東西,或是有些功能你要但是 configure 的結果跟你說 no ,那就是缺了東西,看看缺了甚麼套件裝起來吧。

  4. configure 完之後就編譯跟安裝吧。
    $ make
    $ sudo make install

Config with im-switch

電腦上安裝了很多輸入模組,想切換時怎麼辦?用 im-switch 吧。首先把 im-switch 套件裝起來。

$ sudo apt-get install im-switch

使用 im-switch -s 可以設定要使用哪一個輸入模組,用 root 身份執行的話還可以改變整個系統的預設值。所以要用 oxim 的話,就執行下面指令。

$ im-switch -s oxim

如果要指定在哪個語系環境下使用哪一種輸入模組,可以加上 -z 參數,例如:

$ im-switch -z zh_TW -s oxim

這樣一來就會在使用者的 ~/.xinput.d 下建立 en_US 或 zh_TW 的連結指向 /etc/X11/xinit/xinput.d/oxim 設定檔。在 /etc/X11/xinit/xinput.d 目錄下會有各輸入模組的設定檔,連結到哪個檔案的話就會用該輸入模組。

不幸的是,光這樣是不足的,重新登入 Gnome 之後可能會發現 oxim 沒跑出來,雖然 XMODIFIERS 等環境變數設定都有。上網找了一下沒找到相關資料,最後發現原來是 /etc/X11/xinit/xinput.d/oxim 設定檔的問題。看看 scim 與 gcin 的設定檔,發現他們的 XIM_PROGRAM 都是完整路徑,只有 oxim 不是,把這部份改成完整路徑 /usr/bin/oxim 就 OK 了。底下是我的 /etc/X11/xinit/xinput.d/oxim 設定檔,注意一下 XIM_PROGRAM 那一行吧:

#!/bin/sh
#
# Open X Input Method startup script.
#
# By Firefly.
#

OXIM_IM_MODULE_DIR="/usr/lib/oxim/immodules"
XIM=oxim
XMODIFIERS="@im=${XIM}"
XIM_PROGRAM=/usr/bin/oxim
XIM_ARGS="-x oxim"

USR_DIR="$HOME/.oxim"
GTK_IM_MODULE_FILE="${USR_DIR}/gtk.immodules"

# 找出 gtk-query-immodules 指令的完整路徑與真正名稱
for cmd in gtk-query-immodules-2.0-64 \
gtk-query-immodules-2.0-32 \
gtk-query-immodules-2.0 \
gtk-query-immodules
do
TEST_CMD=`which ${cmd} 2>/dev/null`
if [ ! -z ${TEST_CMD} ]
then
GTK_QRY_CMD=${TEST_CMD}
break
fi
done

# 檢查 OXIM 的 GTK2 輸入模組是否安裝
if [ -f ${OXIM_IM_MODULE_DIR}/gtk-im-oxim.so ] ; then
# 檢查使用者家目錄之下是否有下列目錄
if [ ! -d ${USR_DIR} ] ; then
mkdir -p ${USR_DIR}
fi

# 建一個 gtk im modules 的紀錄檔
if [ ! -z ${GTK_QRY_CMD} ] ; then
${GTK_QRY_CMD} > ${GTK_IM_MODULE_FILE}
else
# 否則只建立自己的 immodule 紀錄
echo "\"${OXIM_IM_MODULE_DIR}/gtk-im-oxim.so\"" > ${GTK_IM_MODULE_FILE}
echo "\"oxim\" \"Open X Input Method\" \"gtk20\" \"/usr/share/locale\" \"*\"" >> ${GTK_IM_MODULE_FILE}
fi
GTK_IM_MODULE=oxim
export GTK_IM_MODULE_FILE
else
GTK_IM_MODULE=xim
fi

# 檢查 OXIM 的 QT 輸入模組是否安裝
if [ -f ${OXIM_IM_MODULE_DIR}/qt-im-oxim.so ] ; then
export QT_IM_MODULE=oxim
fi

改成這樣之後重新登出再登入應該就可以看到 oxim 了。

Troubleshooting

Q: 你騙人!我執行 im-switch -s oxim 的時候明明就出現下面這個錯誤訊息。

update-alternatives: Cannot find alternative `/etc/X11/xinit/xinput.d/oxim'.

A: 這是因為你用 root 身份執行的關係,當你用一般使用者身份執行的話, im-switch 會在 ~/.xinput.d 建立設定檔連結,不會有甚麼大問題,除非你執行的指令是 im-switch -s zechs 之類的。當你用 root 身份執行的時候,連結會建立在 /etc/alternatives ,這時候問題就出現了,因為系統不認為 oxim 屬於一個 alternative 。

怎麼知道 oxim 是不是一個 alternative ?先執行下面這個指令:

$ im-switch -l

他會列出所有可以用的輸入模組,如果沒有看到

oxim - priority 0

這一行的話( priority 後面的數字不見得是 0 ),就表示 oxim 還沒被加到 alternatives 裡面(雖然說有的話也不見得每個語系都有,目前我也不知道該怎麼查)。

要解決這個問題也很簡單,加進去就好了。例如我使用的語系是 en_US ,就下這個指令:

$ sudo update-alternatives --install /etc/X11/xinit/xinput.d/all_ALL xinput-all_ALL /etc/X11/xinit/xinput.d/oxim 0

繁體中文語系的話改成 zh_TW 就可以了。

$ sudo update-alternatives --install /etc/X11/xinit/xinput.d/zh_TW xinput-zh_TW /etc/X11/xinit/xinput.d/oxim 0

想知道參數的意義? man 一下吧。

$ man update-alternatives

加進去之後再用 root 身份執行 im-switch -s oxim ,這時應該就不會再跟你抱怨了。

想從 alternatives 中移除 oxim 的話就用下面指令:

$ sudo update-alternatives --remove xinput-all_ALL /etc/X11/xinit/xinput.d/oxim

References

Ubuntu Diary : Suspend and Hibernate with µswsusp

Intro

The original suspension and hibernation functions in Ubuntu 7.04 does not work well on my laptop (IBM Thinkpad T42). After searching WWW, I found a better package, µswsusp, for supporting these functions. However, several problems occurred when I tried to use it. I could find solutions of some problems in Ubuntu forum. For those problems that I couldn’t find solutions, I had to solve them by myself. Finally I succeeded after a lot of try and error. Hope I don’t miss any step in the following.

Suspension

The following method works on my laptop.

  1. Install uswsusp.
    $ sudo apt-get install uswsusp
  2. Edit /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux. Replace the whole content with the following two lines.
    #!/bin/sh
    /sbin/s2ram
  3. Try it.

Some users in the Ubuntu forum suggest the following way to use µswsusp.

  1. Install uswsusp.
    $ sudo apt-get install uswsusp
  2. Remove all packages that appear before s2ram in /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux. Otherwise, s2ram will not be the first choice when suspending. Here we don’t really uninstall those packages but use dpkg-divert to rename necessary files. For example, I have /etc/acpi/sleep.sh before s2ram. So I execute the following command.
    $ sudo dpkg-divert --rename --divert /etc/acpi/sleep.sh.disabled /etc/acpi/sleep.sh
  3. In /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux, it assumes s2ram is in /usr/sbin. However, Ubuntu installs it in /sbin. Thus we have to make a symbolic link.
    $ sudo ln -s /sbin/s2ram /usr/sbin/s2ram

However, this method does not work on my laptop. Every time it resumes from a suspension state, the Gnome desktop restarts and I lose the previous session.

Hibernation

  1. Install uswsusp.
    $ sudo apt-get install uswsusp
  2. It seems that the package in Ubuntu’s repository is too old. In this step, we want to use some scripts from Ubuntu’s repository to generate initrd with the latest uswsusp.
    1. Download the source code suspend-0.7.tar.gz of uswsusp.
    2. Extract suspend-0.7.tar.gz.
    3. Modify config_parser.h and Makefile. Replace “suspend.conf” with “uswsusp.conf. For example, in config_parser.h, we have the following line.
      #define CONFIG_FILE     "/etc/uswsusp.conf"

      In Makefile, we have the following line.

      CONFIGFILE=uswsusp.conf

      I have to change this such that the command resume can find configuration file after resuming.

    4. Compile the source code.
      $ make
    5. Install the executables.
      $ sudo cp s2both /sbin/s2both
      $ sudo cp s2ram /sbin/s2ram
      $ sudo cp s2disk /sbin/s2disk
      $ sudo cp resume /usr/lib/uswsusp/resume
    6. Copy the configuration in conf/suspend.conf to /etc/uswsusp.conf and modify it. Below is my /etc/uswsusp.conf.
      # /etc/uswsusp.conf(8) -- Configuration file for s2disk/s2both
      snapshot device = /dev/snapshot
      resume device = /dev/sda3
      #compress = y
      early writeout = y
      image size = 365106872
      #RSA key file = /etc/uswsusp.key
      shutdown method = platform
      splash = y

      In this configuration file, you have to specify your resume device. For example, my swap partition is /dev/sda3. Some lines are commented out because they are not recognized by uswsusp-0.7.

  3. Like suspend, we want s2disk to be the first choice when hibernating. Thus replace /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux with the following.
    #!/bin/sh
    /sbin/s2disk

    Another way is to rename all files that appear before s2disk in /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux. for example,

    $ sudo dpkg-divert --rename --divert /etc/acpi/hibernate.sh.disabled /etc/acpi/hibernate.sh

    and create a symbolic link because hal-system-power-hibernate-linux assumes s2disk is in /usr/sbin.

    $ sudo ln -s /sbin/s2disk /usr/sbin/s2disk

    Although /etc/acpi/hibernate.sh supports s2disk, it passes wrong arguments to s2disk. However, after I fix it, there is still other problem with /etc/acpi/hibernate.sh, for example, Gnome desktop restarts and previous session is lost. That’s why I want to disable hibernate.sh.

  4. Update /etc/initramfs-tools/conf.d/resume. Again you have to set the resume device to your real swap partition. For example,
    RESUME=/dev/sda3
  5. Update initrd.
    $ sudo update-initramfs -u
  6. Try it now.

Troubleshooting

Q: s2disk complains that it could not use the resume device.
A: Execute the following command first.

$ free

If your output looks like:

             total       used       free     shared    buffers     cached
Mem: 775100 422044 353056 0 448 227016
-/+ buffers/cache: 194580 580520
Swap: 0 0 0

This is because the swap partition has new UUID, but it does not update /etc/fstab. If this happens,
you can mount the swap partition by

$ sudo swapon /dev/sda3

Then change the UUID of the swap parition by the real path in /etc/fstab, for example

/dev/sda3        swap    sw              0       0

Q: After resuming, Gnome desktop restarts.
A: Be sure to use s2disk directly without /etc/acpi/hibernate.sh.

Q: When resuming, it stops in the boot logo.
A: This may be caused by setting wrong resume device or wrong configuration file such that the resuming procedure could not find where to load previous state. Press Ctrl+F1 to see if it asks you to enter the resume device, enter the path to your swap partition, for example /dev/sda3, and then press Enter. It should continue to resume. Make sure that the name of configuration file in config_parser.h and Makefile is set correctly. Also make sure to set correct resume device in /etc/uswsusp.conf and /etc/initramfs-tools/conf.d/resume. You may need to update initrd by

$ sudo update-initramfs -u

Reference

Since everyone could have different problems, I list some references below.

2007.09.08 Sintra and Cabo da Roca

其實本來今天的規劃是去 Baixa 區閒晃的,但是後來在網路上查到大家建議去的地點,決定今天去 Sintra 與 Cabo da Roca ,其中 Sintra 是到 Cabo da Roca 的中繼站,而 Cabo da Roca 則是號稱「天涯海角」的歐洲大陸極西之地。

在旅館後面不遠處就有一個火車站 Entrecampos ,大約每 30 分鐘會有一班車開往 Sintra ,票價要 1.6 EUR 。搭火車從 Lisbon/Lisboa 往 Sintra 的時候,途中完全沒有看到任何鐵路平交道,全部都用地形落差來避開,通常鐵軌會在比較高一點的地方。路途所見不像德國一樣,在德國每個村落之間都有很大的 一大段無人原野,這裡火車所經之處都是滿滿的樓房,看起來頗擁擠的樣子。

這是電車,從裡面看很新。
dsc03329.jpg

Sintra 車站。
dsc03331.jpg
dsc03332.jpg

這邊的火車跟去德國時類似,可以隨意上車,外面不會有人剪票,但是車上會查票。不過地鐵就不一樣了,進去時需要把票插進驗票機,在德國可是連地鐵都一樣自由進出,只是被查到沒買票會罰很重。

搭火車從 Entrecampos 到 Sintra 大約要 40 分鐘,因為早上早到 30 分鐘,所以比原先規劃提前一班出發,到 Sintra 時往 Cabo da Roca 的 403 公車還有一個小時才開,就先往車站的東邊閒晃。

Sintra Modern Art Museum 。
dsc03343.jpg

Olga Cadaval Cultural Centre 。
dsc03345.jpg

Sintra 的地圖,藍底白字寫個 i 的就是 Sintra 車站所在地。這邊不論是 Lisbon 、 Sintra 或是 Cabo da Roca ,都會有 Information Center ,可以問路跟拿當地的地圖,相當方便。
dsc03349.jpg

403 公車的班次不多,大約 1 個小時才一班,到 Cabo da Roca 的票價要 3.25 EUR 。這邊班次比較多的應該是 434 ,可以到 Moors Castle 跟 The Palace of Pena ,比較起來去城堡跟皇宮的旅客也多很多就是了。

搭乘 403 公車途中幾乎都是單線道的山路,到 Cabo da Roca 大約要 45 分鐘吧。 Information Center 可以拿到公車的時刻表,上面會寫經過的區域(村落),而且路途上進出村落時路旁都會有指示牌。不過我卻沒有看到 Cabo da Roca 的牌子,所以出 Cabo da Roca 前一個區域之後,我就不知道什麼時候該下車。還好司機記得我要去 Cabo da Roca ,而我也剛好問旁邊的旅客知道已經到 Cabo da Roca 區域,一起來走到公車前面司機就停下來告知我到站了。

公車站牌旁邊就是 Information Center ,裡面有販售到此一遊的證明。證明有兩種版本,一個是小張的,要價 5 EUR ,另一種是大張的可折疊,大小約是小張的兩倍,要價 10 EUR 。我買了一個大張的,不論大小張,上面都會寫上當天日期跟遊客姓名。

旅客中心。
dsc03408.jpg

到此一遊證書。
dsc03497.jpg
dsc03498.jpg

Cabo da Roca ,地面上有個立碑,旁邊聚集相當多遊客。大部分遊客是自己開車,或是遊覽車一團一團載過來的。
dsc03353.jpg

在立碑上有標示經緯度,北緯 38.47 度,西經 9.30 度,上面的年份應該是建立立碑的時間吧,竟然跟我同一年出生。
dsc03357.jpg

旁邊都是懸崖。
dsc03362.jpg

大西洋。
dsc03363.jpg

在欄杆外面拍,身後就是懸崖。在這麼多旅客的場合,一個人對著倒數計時的相機微笑感覺怪怪的。
dsc03379.jpg

站在懸崖旁邊往下拍。
dsc03380.jpg

再看一下這個歐洲大陸最西邊的地方。
dsc03386.jpg

風蠻大的,海風有點冷,雖然有帶長袖襯衫,但是還是有點冷。
dsc03389.jpg

往 Cabo da Roca 的南邊望去。
dsc03391.jpg

到小山坡上往 Cabo da Roca 的北邊望去。
dsc03402.jpg

下面是站牌貼的 403 公車時刻表,要回去的時候 12:02 的車剛走沒多久,只好再等一個小時。
dsc03410.jpg

回到 Sintra 之後,打算往車站的西邊覓食,途中卻讓我看到遠處有一座城堡。
dsc03412.jpg

看了一看好像沒啥好吃的,所以決定走看看能不能走到城堡,反正這個高度跟距離看起來跟在德國走去新天鵝堡差不多。結果這一走就後悔了,因為不知道要走多久才會到,總覺得越繞越遠。

Moors Castle ,距離更近了。
dsc03435.jpg

過了大約 50 分鐘吧,總算讓我走到終點。一開始沒有注意到,上到山頂時,左邊是 Moors Castle 就是我原本想去的地方,右邊則是 The Palace of Pena ,除了皇宮以外還有公園。結果就直接進去 Park of Pena ,最後因為時間的關係,沒有辦法再去參觀 Moors Castle 。

The Palace of Pena 有三種 Tour , Tour T 要 11 EUR ,可以參觀有開放的全部, Tour A 要 9 EUR ,可以參觀一些 16 世紀的部份, Tour B 要 9 EUR ,可以參觀一些 19 世紀的部份, Tour C 要 7 EUR ,只能在外面晃晃

The Palace of Pena
dsc03443.jpg
dsc03445.jpg
dsc03450.jpg
dsc03454.jpg

公園裡面有一些不錯的觀景地點,越往公園的上方走,高度越高,不過我沒有吃午餐,已經沒有體力往上走,下面這個是在中段的地方拍的。如果可以在更往上走的話,視野應該會更不錯。
dsc03469.jpg

我是根據地圖所推薦的路線走,雖然有時候搞不太清楚路線,不過還是順利從另外一個出口下山。下去的時候比較快,只花了大約 30 分鐘,不過腳也快斷了。

下次有機會的話應該還是可以同時玩完 Cabo da Roca 、 The Palace of Pena 跟 Moors Castle ,只是得乖乖的坐公車,可別為了省錢而喪失難得出國玩的機會。

2007.09.07 里斯本/Lisbon/Lisboa 市中心

傍晚 CONCUR 2007 結束,王老師因為不知道哪裡好玩,於是回旅館睡覺。而我則搭地鐵前往里斯本市中心晃晃。

這是 Campo Pequeno ,就在我住的旅館旁邊,下面有不少商店跟一些速食店,還有一個小超市。我蠻喜歡裡面的一家店,因為每樣食物都有照片可以參考。
dsc03248.jpg

這是里斯本的人行道,地上鋪滿小塊磁磚,整個路面凹凸不平,聽王老師說第一天到的時候因為迷路,被這種路害慘了。
dsc03251.jpg

這是 Campo Paqueno 地鐵站,牆壁上的磁磚有一些畫。
dsc03254.jpg
dsc03258.jpg

電車內,頗好玩的拉環。
dsc03259.jpg

地鐵營運圖,有分兩個區域, Coroa 1 跟 Coroa L ,同一個區域內的地鐵要 € 0.75 。
dsc03260.jpg

從 Campo Pequeno 往南到 Baixa/Chiado 站不需要花多少時間,不過中間得在 Marques de Pombal 轉車。

Baixa 地區出現的小台軌道電車。
dsc03263.jpg

Praca do Comercio ,這附近有不少商店,不過我逛到時已經是吃完晚餐之後,都關光光了。第三張是路人拍的,當我一個人手伸長長地想要自拍的時候,前面走來了一對年輕夫妻,推 著一台嬰兒車。看到他們笑笑地走過來,我就知道他們想幹嘛了,果然一過來就伸手跟我要相機幫我拍照,真是感謝他們。
dsc03268.jpg
dsc03282.jpg
dsc03285.jpg

Lisbon 南端的海邊。
dsc03293.jpg

晚餐就在海邊的餐廳解決,雖然地點很不錯,不過卻是一個惡夢的開始。早上才聽老師說前一天去 Banquet 吃了一個又鹹又油的鱈魚,結果這次我點的鱈魚也跟老師所描述的一樣,沒辦法,誰叫我喜歡吃鱈魚。不過這個鱈魚除了又鹹又油以外,口感還跟我們平常吃的鱈魚 不太一樣,感覺比較有嚼勁。另外提醒大家的是, Home-style codfish 就是我這次點的主食,後來才在另外一家店看到 Salt codfish (Home-style) 這到菜,想必是這家餐廳把 Salt 給省略了。

Marques de Pombal 車站內的磁磚畫。這邊比較有名的好像就是瓷器,在幾個地鐵站都可以看到磁磚畫,外面也有很多在賣彩繪磁磚的商店。
dsc03313.jpg

晚上的 Campo Pequeno 。
dsc03320.jpg

日劇 – 求婚大作戰

最近剛看到第三集,心中只有一個感想,這個男主角真的是白痴一個。

2007.08.12 English Garden

今天是 Marktoberdorf Summer School 的出發日,所有人都得在今天的早上 9 點以前離開。早上整理行李吃完早餐之後,就趕往車站搭車。到 Munich Hauptbahnhof 後,先前往前兩天預定的飯店 Hotel Modern ,地點在 Schillerstr ,離車站相當近,這條路兩旁還有很多旅館。
DSC03019.JPG

到達時間是早上九點多,不過旅館人員說 Check in 時間是在下午兩點之後,只好先把行李箱寄放在旅館,背著含有筆記型電腦的重重背包前往 English Garden 。

已經忘記從哪一站出來,好像是 Odeonsplatz 吧,因為我想多走一些路看看路上有沒有什麼特別的。剛出站的時候想看地圖確認一下方向,結果來了一輛腳踏車一直對我按車鈴,閃過我的時候還用德文大叫,看 起來很生氣。後來才發現原來我站在腳踏車專用道上,如下圖,在汽車左邊的那一條就是腳踏車專用道,遠處可以看到一輛腳踏車在上面。
DSC03020.JPG

一走進 English Garden 就發現蠻不錯的日式花園。
DSC03028.JPG DSC03029.JPG DSC03030.JPG

公園裡面有一條頗混濁的小溪,不過竟然有人在裡面衝浪。
DSC03034.JPG

公園裡面的路蠻多的,錯綜複雜。有不少人在公園裡面跑步、騎腳踏車、享受日光浴、打球,更看到路上有馬的標誌,該不會也可以在這裡騎馬吧。雖然這次沒有看到有人騎馬,倒是看到有人牽著馬走。
DSC03040.JPG DSC03039.JPG DSC03041.JPG

走了大約一個半小時吧,終於看到 City Map 上出現的 Chinese Tower 。
DSC03052.JPG

Chinese Tower 附近都是賣吃的,而且有相當多的桌椅,其時大約是 11 點多,有一些人已經坐下來喝啤酒了。
DSC03055.JPG

剛好走這麼久腳也很痠,也坐下來休息一下吧。這時發現旁邊有公園地圖,打算看看目前所在位置。這一看可不得了,公園的地圖竟然需要用到兩個牌子,而我花了快一個半小時的時間,才走到半個公園的一半!我的天阿,這個公園到底有多大阿,應該要騎腳踏車才有可能逛完。

左邊的牌子, English Garden 的南半部
DSC03053.JPG

右邊的牌子, English Garden 的北半部
DSC03054.JPG

從 Chinese Tower 繼續往前走,又花了大約一個小時,走到公園中央的湖。湖裡面有很多鴨、不知名水鳥、以及一些天鵝,有不少遊客在湖中划船,丟東西餵給鴨吃。這個湖蠻大的, 旁邊也有賣吃的店家。中午就在這裡解決午餐,總計一個德國香腸跟大量的酸菜,這樣就要 € 6.x ,真是貴阿。不過在樹蔭底下吃午餐,看著旁邊的湖光水色,以及水面上眾多的小鴨號,也是蠻享受的。
DSC03066.JPG DSC03071.JPG DSC03073.JPG DSC03078.JPG

吃完午餐,已經沒有勇氣再繼續走下去,剛好算算時間回去的話可以 Check in ,就開始往回走。再度走到 Chinese Tower 的時候,發現塔上竟然有樂團在演奏,而且兩旁的遊客又更多了。
DSC03079.JPG

要出 English Garden 時,從另外的出口出去,中途有經過一個小花園。
DSC03086.JPG

從出口出去之後才發現,原來從 Theatinerkirche (Church of the Theatines) 對面的這個門進去就應該是 English Garden 了。
DSC03089.JPG

其實本來還想去 Olympic Park 看看,不過背這麼重的背包,穿著皮鞋走了將近五個小時的路,實在很累。一回到旅館就開始睡覺,難得可以一整天泡在慕尼黑,沒有好好利用有點可惜。