Sysinternals – BlueScreen
Sysinternals – Sync
Sync 可以強迫系統將快取裡面的資料寫入磁碟, UNIX 系統上老早就有這樣的程式了。
今天逛 Windows Sysinternals 還真是發現不少好玩的東西。
Sysinternals – PageDefrag
Sysinternals – Junction
Junction 可以建立 Windows 平台的 Symbolic Link ,類似在 Linux 上ls -s
指令。不過 Junction 只能建立資料夾的 Symbolic Link ,蠻鱉腳的就是了。
使用方法很簡單,建立 Junction 的指令如下:
junction
其中
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
- [風格代碼] 如下:
- Standard
- Travian Neutral
- Travian 羅馬人
- Travian 條頓人
- Travian 高盧人
- Travian Auto
- Travian Auto UTF8
- Travian Auto Avatar
- Travian Auto Chinese Simpl.
- Travian Auto Chinese Trad.
- Travian Ally Gray
- 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
http://cry.travianteam.com/sig-8-en-2-com2_109933.gif
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
- 首先到 OXIM 首頁下載原始碼,我自己是抓 cvs 版本的。
- 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
- 接下來就跟一般編譯原始碼的動作一樣了,只是有些必要套件要安裝,像是 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 ,那就是缺了東西,看看缺了甚麼套件裝起來吧。
- 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.
- Install uswsusp.
$ sudo apt-get install uswsusp
- Edit /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux. Replace the whole content with the following two lines.
#!/bin/sh
/sbin/s2ram - Try it.
Some users in the Ubuntu forum suggest the following way to use µswsusp.
- Install uswsusp.
$ sudo apt-get install uswsusp
- 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
- 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
- Install uswsusp.
$ sudo apt-get install uswsusp
- 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.
- Download the source code suspend-0.7.tar.gz of uswsusp.
- Extract suspend-0.7.tar.gz.
- 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.
- Compile the source code.
$ make
- 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 - 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 = yIn 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.
- 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/s2diskAnother 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.
- 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
- Update initrd.
$ sudo update-initramfs -u
- 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 的時候,途中完全沒有看到任何鐵路平交道,全部都用地形落差來避開,通常鐵軌會在比較高一點的地方。路途所見不像德國一樣,在德國每個村落之間都有很大的 一大段無人原野,這裡火車所經之處都是滿滿的樓房,看起來頗擁擠的樣子。
這邊的火車跟去德國時類似,可以隨意上車,外面不會有人剪票,但是車上會查票。不過地鐵就不一樣了,進去時需要把票插進驗票機,在德國可是連地鐵都一樣自由進出,只是被查到沒買票會罰很重。
搭火車從 Entrecampos 到 Sintra 大約要 40 分鐘,因為早上早到 30 分鐘,所以比原先規劃提前一班出發,到 Sintra 時往 Cabo da Roca 的 403 公車還有一個小時才開,就先往車站的東邊閒晃。
Olga Cadaval Cultural Centre 。
Sintra 的地圖,藍底白字寫個 i 的就是 Sintra 車站所在地。這邊不論是 Lisbon 、 Sintra 或是 Cabo da Roca ,都會有 Information Center ,可以問路跟拿當地的地圖,相當方便。
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 。我買了一個大張的,不論大小張,上面都會寫上當天日期跟遊客姓名。
Cabo da Roca ,地面上有個立碑,旁邊聚集相當多遊客。大部分遊客是自己開車,或是遊覽車一團一團載過來的。
在立碑上有標示經緯度,北緯 38.47 度,西經 9.30 度,上面的年份應該是建立立碑的時間吧,竟然跟我同一年出生。
在欄杆外面拍,身後就是懸崖。在這麼多旅客的場合,一個人對著倒數計時的相機微笑感覺怪怪的。
下面是站牌貼的 403 公車時刻表,要回去的時候 12:02 的車剛走沒多久,只好再等一個小時。
回到 Sintra 之後,打算往車站的西邊覓食,途中卻讓我看到遠處有一座城堡。
看了一看好像沒啥好吃的,所以決定走看看能不能走到城堡,反正這個高度跟距離看起來跟在德國走去新天鵝堡差不多。結果這一走就後悔了,因為不知道要走多久才會到,總覺得越繞越遠。
過了大約 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 ,只能在外面晃晃
公園裡面有一些不錯的觀景地點,越往公園的上方走,高度越高,不過我沒有吃午餐,已經沒有體力往上走,下面這個是在中段的地方拍的。如果可以在更往上走的話,視野應該會更不錯。
我是根據地圖所推薦的路線走,雖然有時候搞不太清楚路線,不過還是順利從另外一個出口下山。下去的時候比較快,只花了大約 30 分鐘,不過腳也快斷了。
下次有機會的話應該還是可以同時玩完 Cabo da Roca 、 The Palace of Pena 跟 Moors Castle ,只是得乖乖的坐公車,可別為了省錢而喪失難得出國玩的機會。
2007.09.07 里斯本/Lisbon/Lisboa 市中心
傍晚 CONCUR 2007 結束,王老師因為不知道哪裡好玩,於是回旅館睡覺。而我則搭地鐵前往里斯本市中心晃晃。
這是 Campo Pequeno ,就在我住的旅館旁邊,下面有不少商店跟一些速食店,還有一個小超市。我蠻喜歡裡面的一家店,因為每樣食物都有照片可以參考。
這是里斯本的人行道,地上鋪滿小塊磁磚,整個路面凹凸不平,聽王老師說第一天到的時候因為迷路,被這種路害慘了。
這是 Campo Paqueno 地鐵站,牆壁上的磁磚有一些畫。
地鐵營運圖,有分兩個區域, Coroa 1 跟 Coroa L ,同一個區域內的地鐵要 € 0.75 。
從 Campo Pequeno 往南到 Baixa/Chiado 站不需要花多少時間,不過中間得在 Marques de Pombal 轉車。
Praca do Comercio ,這附近有不少商店,不過我逛到時已經是吃完晚餐之後,都關光光了。第三張是路人拍的,當我一個人手伸長長地想要自拍的時候,前面走來了一對年輕夫妻,推 著一台嬰兒車。看到他們笑笑地走過來,我就知道他們想幹嘛了,果然一過來就伸手跟我要相機幫我拍照,真是感謝他們。
晚餐就在海邊的餐廳解決,雖然地點很不錯,不過卻是一個惡夢的開始。早上才聽老師說前一天去 Banquet 吃了一個又鹹又油的鱈魚,結果這次我點的鱈魚也跟老師所描述的一樣,沒辦法,誰叫我喜歡吃鱈魚。不過這個鱈魚除了又鹹又油以外,口感還跟我們平常吃的鱈魚 不太一樣,感覺比較有嚼勁。另外提醒大家的是, Home-style codfish 就是我這次點的主食,後來才在另外一家店看到 Salt codfish (Home-style) 這到菜,想必是這家餐廳把 Salt 給省略了。
Marques de Pombal 車站內的磁磚畫。這邊比較有名的好像就是瓷器,在幾個地鐵站都可以看到磁磚畫,外面也有很多在賣彩繪磁磚的商店。
2007.08.12 English Garden
今天是 Marktoberdorf Summer School 的出發日,所有人都得在今天的早上 9 點以前離開。早上整理行李吃完早餐之後,就趕往車站搭車。到 Munich Hauptbahnhof 後,先前往前兩天預定的飯店 Hotel Modern ,地點在 Schillerstr ,離車站相當近,這條路兩旁還有很多旅館。
到達時間是早上九點多,不過旅館人員說 Check in 時間是在下午兩點之後,只好先把行李箱寄放在旅館,背著含有筆記型電腦的重重背包前往 English Garden 。
已經忘記從哪一站出來,好像是 Odeonsplatz 吧,因為我想多走一些路看看路上有沒有什麼特別的。剛出站的時候想看地圖確認一下方向,結果來了一輛腳踏車一直對我按車鈴,閃過我的時候還用德文大叫,看 起來很生氣。後來才發現原來我站在腳踏車專用道上,如下圖,在汽車左邊的那一條就是腳踏車專用道,遠處可以看到一輛腳踏車在上面。
一走進 English Garden 就發現蠻不錯的日式花園。
公園裡面的路蠻多的,錯綜複雜。有不少人在公園裡面跑步、騎腳踏車、享受日光浴、打球,更看到路上有馬的標誌,該不會也可以在這裡騎馬吧。雖然這次沒有看到有人騎馬,倒是看到有人牽著馬走。
走了大約一個半小時吧,終於看到 City Map 上出現的 Chinese Tower 。
Chinese Tower 附近都是賣吃的,而且有相當多的桌椅,其時大約是 11 點多,有一些人已經坐下來喝啤酒了。
剛好走這麼久腳也很痠,也坐下來休息一下吧。這時發現旁邊有公園地圖,打算看看目前所在位置。這一看可不得了,公園的地圖竟然需要用到兩個牌子,而我花了快一個半小時的時間,才走到半個公園的一半!我的天阿,這個公園到底有多大阿,應該要騎腳踏車才有可能逛完。
從 Chinese Tower 繼續往前走,又花了大約一個小時,走到公園中央的湖。湖裡面有很多鴨、不知名水鳥、以及一些天鵝,有不少遊客在湖中划船,丟東西餵給鴨吃。這個湖蠻大的, 旁邊也有賣吃的店家。中午就在這裡解決午餐,總計一個德國香腸跟大量的酸菜,這樣就要 € 6.x ,真是貴阿。不過在樹蔭底下吃午餐,看著旁邊的湖光水色,以及水面上眾多的小鴨號,也是蠻享受的。
吃完午餐,已經沒有勇氣再繼續走下去,剛好算算時間回去的話可以 Check in ,就開始往回走。再度走到 Chinese Tower 的時候,發現塔上竟然有樂團在演奏,而且兩旁的遊客又更多了。
要出 English Garden 時,從另外的出口出去,中途有經過一個小花園。
從出口出去之後才發現,原來從 Theatinerkirche (Church of the Theatines) 對面的這個門進去就應該是 English Garden 了。
其實本來還想去 Olympic Park 看看,不過背這麼重的背包,穿著皮鞋走了將近五個小時的路,實在很累。一回到旅館就開始睡覺,難得可以一整天泡在慕尼黑,沒有好好利用有點可惜。