May 9, 2011

the meditation when crossing the harbour


在香港有很多不合理的事情,你不明白所以,只能無奈地妥協。其中一樣就是「過海」。

在香港來往港島和九龍的公共交通基本上只有三種:隧巴、地鐵、渡輪。隧巴由紅隧口無論去灣仔銅鑼灣或中環,車程只有五分鐘,但最低消費一定是 $9.3。其實一架雙層巴士於紅隧收費僅 $15,只需兩個乘客已足以回本,我亦很少見過海巴士平日會空無乘客。可見兩大巴士公司聯手抬高過海車資謀取暴利,奇怪的是社會聲音到目前為止都還未放大這一個情況!還只著眼於政府如何造成西隧收費遠高於兩隧。

地鐵由尖沙咀到金鐘,油塘到鰂魚涌,九龍到香港成人八達通收費均為 $7.9。我不知道港鐵公司在 maintain 三條海底隧道要幾多 cost,但港鐵一直以來都是政府庇護監管之下較貴的公共交通公具。我只知道港鐵可根據政府制訂的「可加可減機制」,以平衡「各方」利益為由,在通脹持續暴升情況之下申請加價,然後在車站和電視廣告中看/聽到港鐵說「與香港市民一同將抗通脹進行到底!」,並企圖以「港鐵友禮會」提供的積分回贈計劃平伏市民怨氣⋯

今日我搭了一程灣仔至尖沙咀的天星小輪,隨之附上每日可能只有兩班,每年只有三數天可欣賞的一場「日落於維港西的盡頭」。此程價值 $2.5。我心想:可呼吸自然空氣,可收聽大氣電波,還可觀賞此醉人美景,有咩比呢一程過海更美更令人迷戀我們這一個海港?

image credits: http://wwinson.blogspot.com/2010/07/blog-post.html

Apr 24, 2011

notice of round-island cycling

環島單車遊注意事項

各位團友:

為使大家有一個安全又愉快的旅程,請小心閱讀以下幾個注意事項,謝謝。

一、出發時間:2011-04-24 23:59
二、預計完成時間:大約 05:30,最遲 06:30
三、出發點:香港大學施德堂 starr hall (http://goo.gl/maps/OGqu)
四、出發前準備:
  • 請放下一切憂慮、緊張、疑惑,第一次總會有點緊張,做足安全措施,唔好淆底就沒問題,盡情享受!
  • 對港島路段、地形有基本認識(下文),可參考 google maps 地圖及街景服務,街景服務提供 360 度實景
  • 穿顏色較鮮艷服裝,反光更好
  • 水可帶少量,中途會補給一次,少點負載上斜少點吃力
  • 綁緊眼鏡,收好貴重物品
  • 檢查單車性能裝置,換檔、前後輪(左右手)煞車、前燈(白)、後燈(紅)
五、Do's
  • 馬路上應遵守交通規則,遵守燈號,留意指示牌,適當行車線上靠左,讓快車先過
  • 轉左轉右前看清楚其他車輛經過
  • 電車路上看電車燈號
  • 當心越過電車軌時車輪卡在坑上
六、Don'ts
  • 切勿逆線行走、胡亂切線、隨便超越前車
  • 切忌突然變速急停(淆底),隨後車輛收掣不及,最易引起意外
  • 切勿只拉一邊煞車掣,必須前後輪一同減速
  • 切勿跟車太貼,尤其落斜
七、路線及值得注意路段
  1. (留意起段較複雜,目的為轉入電車路)香港大學施德堂,南行沿薄扶林道,右轉蒲飛路,轉入電車路 (http://goo.gl/tEY4b)
  2. 從吉席街開始一直沿電車路走,直到筲箕灣為止
  3. 去到干諾道中近西港城一段 (http://goo.gl/maps/jAh5),留意原本與車路分開到這個路口會與左邊車輛會合,共用前段,此段毋須靠左避車,走到前面路口轉右車路自然分隔
  4. 經過上環,中環,金鐘,來到灣仔要注意
  5. 此路口 (http://goo.gl/maps/2eaM) 沿電車路右轉入莊士敦道時全無燈號指示,一定要看清楚對面線無車才可越過
  6. 經過灣仔,銅鑼灣,天后,炮台山,北角,鰂魚涌,太古,西灣河,到達筲箕灣
  7. 來到此燈位 (http://goo.gl/maps/lGwc) 右邊有凱施餅店及 ok 便利店就是第一個集合點
  8. 此燈位 (http://goo.gl/maps/fhZc) 後就要撇離電車路爬上全段最斜的柴灣道
  9. 於柴灣道轉入大潭道前右邊行人路上 (http://goo.gl/maps/NY8t) 休息,此為第二集合點
  10. 沿大潭道上斜至最高點,此處左邊路壆集合,前面一段持續五分鐘落斜
  11. 落到一半一定要注意此處 (http://goo.gl/maps/ex6z) 前面有一迴旋處,必須停下,路上已有警告牌及慢駛標記
  12. 到達迴旋處 (http://goo.gl/maps/w6P8) 選右路直落大潭水塘
  13. 到達公廁,此為第四集合點 (http://goo.gl/maps/sq9w)
  14. 注意:沿路風景幽美,可細心欣賞,感受清風
  15. 記住此分岔路 (http://goo.gl/maps/omRk) 轉右,不入赤柱
  16. 到達舂磡角道路口 (http://goo.gl/maps/dtkj),此為赤柱峽道最高點,在此左邊路壆集合
  17. 注意到達此位置時路面開始出現雙層巴士、綠 van,提防有大車經過
  18. 經過淺水灣後,於此分岔路口 (http://goo.gl/maps/9S2S) 轉左,直落深水灣
  19. 明顯此路口 (http://goo.gl/maps/DTgF) 不能靠左,往香港仔方向直去
  20. 此位置 (http://goo.gl/maps/xbig) 前行靠左時留意左邊車輛駛出
  21. 過此巴士站 (http://goo.gl/maps/89bz) 後一定要注意,於前面路口左轉駛入香港仔海旁行人路(集合點)
  22. 前段直至駛入魚市場道較為難以言喻,最好跟著
  23. 於此迴旋處會駛入田灣海傍道 (http://goo.gl/maps/CHPA)
  24. 進入華貴村巴士站後會駛入左邊閘口 (http://goo.gl/maps/KJaf)(集合點),到升降機處(此段沒有地圖)
  25. 升降機到達華富中心後,沿華富道北行,經過迴旋處右上,到達域多利道
  26. 沿域多利道上上落落,經過數碼港,墳場,摩星嶺,到達堅尼地城
八、集合,休息點
  1. 筲箕灣筲箕灣道、南安里路口右邊麵店 (http://goo.gl/maps/lGwc),會於此處吃宵夜,可補給飲料、乾糧,為上山路前最後一個補給站
  2. 柴灣道轉入大潭道前右邊行人路空地 (http://goo.gl/maps/NY8t)
  3. 沿大潭道上斜至最高點左邊路壆 (http://goo.gl/maps/fc6a)
  4. 大潭道公廁 (http://goo.gl/maps/sq9w)
  5. 赤柱峽道、舂磡角道交界左邊路壆 (http://goo.gl/maps/dtkj)
  6. 駛入香港仔海旁行人路後
  7. 華貴村巴士站左邊閘口前
  8. 終點
九、風景欣賞路段
  • 中環、金鐘一段城市夜景
  • 大潭水塘石壩滿天星斗
  • 過大潭水塘後左邊一排別墅小屋,恬靜怡人
  • 赤柱峽道上遠眺赤柱夜景
如有任何疑問,出發前記得搞清楚。
此為本人曾經參與之詳細路線,可供參考 (http://goo.gl/maps/E2EZ)

最後,祝各位旅途愉快!

here is the same note on facebook

Apr 1, 2011

The road to champ fight

2011-03-31 inter-hall semi-final wl 2:0 swire

或許從今日的睇波人數可見,偉倫 hockey 入 champ fight 對 hallmate 來說沒甚麼大不了。或許作為一個 freshman 無論在場外場上也不曉得 inter-hall 是甚麼一回事。但對一個剛畢業的 graduate 來說,這場 semi 確實是我在 p2 場上見過最 impressive 的一場。

這是偉倫創造傳奇一刻!多少次 hockey team 於晚上經過你的樓層 lobby 告訴你,明天的 semi 打爆 xx 入 champ fight。多少年隔幾天又告訴你, 3rd fight 打爆 xx... 今次真係做到了!The ever seen Champ Fight!

曲棍球從來不是一項容易的運動,有幾多個係一入嚟就識打。inter-hall 更加係龍蛇混雜,乜人都打得!在一塊爛草皮上暗到幾乎睇唔到個波的情況下,唔覺意一個吹雞一個 short corn 就俾人入咗。這或許是一場技術的競賽,也可說是一場體力的比拼,但最令人深刻的是一班人爭勝的決心!在今場比賽中我看見了大家眼中那團火,真的打出了十六個人的團結精神,發揮了超水準的表現。當對方前鋒球員拼盡力插水式將球交前射門,我們的後防也合力有效地倒截了對方多次的攻勢,把球傳到前方隊友中。多少次在混亂中擺脫重重圍困,重整隊形再組織進攻。前場方面不得不讚嘆幾位速度技術驚人的進攻球員。這是我見過最出色的 dragons。特別賞識的是幾位 year 2 year 1 隊員,沒有怯場,沒有讓經驗不足拖垮表現,真的表現了何謂搏盡,何謂聰明地打波,他們勤奮積極的練習終於得到了全場的肯定。

哨子吹響一刻,眼前一切如夢一樣,是我從沉悶的工作中跑過來見證他們勝利的喜悅,是他們的三年一夢,是偉倫曲棍上下多年未嘗的夢!看見 hall mate 那種形態上的支持,看見眾多 graduates 滿意的離開,看見他們喘著氣走回場邊,心情一時有點複雜,有點惋惜也有點興奮。我知我能做到的沒有幾多,只能告訴你們,多年來太多惋惜太多不憤了,從未與紅旗那麼接近,你們還要更進一步,還要燃燒更熾熱的火。一個禮拜的時間,

不要讓這個夢幻滅,不要讓這團火熄滅!



2008 semi-final 0:0 uhall (ps)

2009 semi-final 0:5 ricci

2010 semi-final 0:2 sjc

2011 semi-final 2:0 swire
2011 champ fight ... uhall

Mar 17, 2011

SopCast on my Mac

Here is the solution of watching live soccer match with SopCast that works on my Mac.

Hardware
MacBook
2 GHz Intel Core 2 Duo
1 GB 667 MHz DDR2 SDRAM

Software
Mac OS X 10.4.11
X11 1.1.3
WineBottler 1.1.44 (http://winebottler.kronenberg.org/)
SopCast 3.2.9 (http://www.sopcast.org/)
MPlayer OSX Extended rev11 (http://www.mplayerosx.ch/)

Steps
1. Make sure X11 is properly installed.
2. Open WineBottler dmg file and install Wine.app.
3. Run Wine. It should have created a virtual "drive_c" under the user directory in Mac.
4. Place the SopCast exe installation file somewhere inside "drive_c" in the Mac environment.
5. Open Control Panel in Wine. (which would also launch X11)
6. Install SopCast by locating the installation file in Wine. (which would be installed in "driver_c/Program Files")
7. Open File Manager in Wine. Run SopCast.
8. Connect to a channel. A Player should slide out without screen (but it's progressing).
10. Run MPlayer OSX Extended in Mac. Open Preferences and make sure Cache is enabled, like say 16 MB.
11. Open location mms://127.0.0.1:8902. (Try 8903 or 8912 if it failed)

That's it!

Notes
If the OS version is later than 10.4, newer software version or different combination could be used. This is just one of the possible solutions that works in my situation.

Reference
http://www.myp2pforum.eu/threads/9529-Sopcast-on-Mac?p=180663#post180663

Mar 9, 2011

notes on hibernate many-to-one, one-to-many

many-to-one
usage:
<many-to-one name="parentDao" class="xxx.ParentDAO" column="REF_ID" lazy="false" update="false"/>
name - data member in dao class
column - foreign key of child dao in database
class - package + class name in java project
lazy - false means retrieve the corresponding parent dao anyway; true means retrieve only when needed, only works for Session.load()
update/insert - indicate whether the operation would be performed

one-to-many
usage:
<list name="childList" table="CHILD_TBL" lazy="false" cascade="all,delete-orphan">
    <key column="CT_REF_ID"/>
    <list-index column="CT_SEQ"/>
    <one-to-many class="xxx.ChildDAO"/>
</list>
name - data member in dao class: private List<childdao> childList;
lazy - false means retrieve the corresponding child dao anyway; true means retrieve only when needed, only works for Session.load()
cascade - see hibernate manual
key - foreign key of child dao in database
list-index - sequence used by list in hibernate
use <composite-element> as alternative