2013年3月11日 星期一

香港不是我的菜

去過日本,很希望台灣可以變得像日本一樣,乾淨、有理、有禮。
去過菲律賓,我感受到一個很有活力,也很樂天,努力奔向發展中的國家。

香港應該算是我第三個去過的國家,
他們有很棒的機場,挑高寬敞又能自然採光的大廳。
他們的地鐵很發達,可以到達很多地方。

他們有很多大樓,住宅區公寓每棟都是 20、30層樓起跳。
更不用提那些國際商業大樓,每棟都可以和 101 比美。
他們國家到處都可以看到外國人,也有超多的購物商場。

但是他們的人行道很髒。
大購物商場裡有很多穿著西裝的年輕人在發著房地產傳單。
天橋或者商業大樓的旁邊,有很多席地而坐的東南亞(外勞)?

商店裡的服務員會講很多種語言,
但是他們的態度,卻是傲慢隨便。

太平山有很美的夜景,但是我腦海裡想著的是,
是不是大部分的人都要住在那從山頂看下去,發出一點點亮光的小屋子裡?
這麼美的夜景,要有多少的大樓和住戶呢?

我只希望,台灣,可以不要變成這個樣子.....

2013 香港行

到了機場後,跟關西機場有點像,要先搭一小段電車到入境的大廈.

通過入境櫃台後,拿完行李要出大廳前,可以先在機場內櫃檯買八達通卡(150 HK,內有100 HK額度可以使用)和機場快捷到香港站(180 HK)的來回車票。
另外還可以到樓上的1010商店買 one2free 電話卡,可以 7 天3G無限上網只要 88 HK(for iphone4/4s)。

準備完這些東西,就繼續往前奔跑離開機場大廳囉。機場快捷就在大廳同一樓層往出口走就會看到了. 24分鐘從機場站到達市區香港站.這次星期六中午到香港,搭快捷時旅客不多每個車廂都只有兩三個人。到了香港站要到灣仔的灣景國際飯店可以搭機場快捷的H2免費穿梭中巴.每20分鐘有一班.穿梭巴士雖然免費,而且從地圖上看,香港站到灣仔站很近。但是因為穿梭巴士還要繞去其他飯店,加上香港的交通很容易塞車,所以去程花了快一個小時才到香港國際會議展覽中心.但是回程就很快了,大概花不到20分鐘就從會議展覽中心到了機場快捷香港站的門口,走進去就可以預掛行李然後拿到登機證.然後可以再去其他地方逛,等要登機前30分鐘再到機場出境安檢即可。

掛完行李往地鐵中環站方向走,雖然機場快捷線和港鐵線並沒有在同一棟建築,但是中間有地下走廊連接。神奇的是,從香港站往中環站走的時候要刷八達通,走到中環站要出站也要刷八達通.或許是地下連接的自動手扶梯也算電車的一種?

到目前為止,從機場的設計、電信公司的各種上網方案、機場快捷和飯店間的穿梭巴士服務,都可以感受到香港的先進和對國際遊客的友善性.

但是接下來就是比較不愉快的經驗了.
到達飯店後 check in時 讓我訝異的是,這應該是我出國有史以來見過最大便臉的飯店服務小姐了.然後我訂的灣景房間進去後往窗外一看竟然是隔壁棟的牆壁?打電話給櫃檯他們才幫我換到了真正的灣景房間 :(

從灣景國際走到灣仔港鐵站其實不遠,大概只需要 10 分鐘.接著經過兩站就可以到中環,迷路了一陣後找到了九記牛腩,門口已經大排長龍了,但是我發現九記斜對面一間沒有店面的小吃攤排更多人 lol....

在香港吃東西店家幫客人併桌是很常見的事,所以我排了不到五分鐘,店員就出來問說有沒有一位的?於是我就超越了排在我前面的前兩組客人,被安排到了一張已經坐了五位客人的小圓桌.上湯淨牛腩真的不錯吃,加點了一杯凍檸茶,店員塞了一張紙到桌上的玻璃墊下,結賬時我才看懂原來上面寫的是金額 109 HK,因為是我的第一餐,我也沒想太多.後來才發現金額好像寫錯了?於是接下來幾天的吃飯,我都會先看清楚菜單,自己算一下大概要多少錢,然後比對一下店員寫的單子.

在中環迷路時還有經過蘭芳園、鏞記、半山手扶梯等等,因為吃飽了也就是邊走邊逛,最後到了山下纜車總站,看到離售票站折很多段的的排隊人龍,我就放棄了,還是先去旺角的美麗華商場逛逛 AE 好了。

當天晚餐吃離住的地方很近的莎巴馬來西亞餐廳,毫無意外的我又跟一個也是單獨吃飯的客人併桌了 lol....

第二天就是到黃大仙祠求籤,然後到旺角找公仔店和 apple TV,中午去吃了杏花樓,晚上則是再挑戰一次登山纜車,這次排隊的人數稍為可以接受,差不多是等了30分鐘吧。但是我真的很不推登山纜車的動線設計,沒有明確的排隊路線,只是分批次放一堆人擠進等纜車的站台。纜車到了以後,因為排前面的人要往裡面走,讓後面的人可以進站台,纜車到了以後,纜車上出入口就開始了瘋狂擠纜車戲碼。另外纜車上山的斜度應該有45度吧?加上塞滿車廂的人,我好怕纜車失去動力後會往下滑 lol....因為有買凌霄閣觀景台的票,所以就一直到達最上層,香港的夜景真的很漂亮,很多很高的大樓,晚上燈一開真的很美。這時後下山的纜車站依然擠滿了人,鑒於上山時的不愉快,我就是試試1路的專線瘋狂小巴,嗯,感覺好多了,因為可以排隊,車次又多所以就順利的在10幾分鐘後回到了中環地鐵站。

另外一點讓我很討厭的是,在等上山纜車的時候,前一批的上山纜車要開動前,服務人員竟然在我們這批等候的人群面前,拉開了小門,讓一個光頭帶著女友,從旁邊的路線直接走上纜車。在拉開小門的瞬間我還看到服務人員對著光頭尊敬的微笑點頭。這一個畫面,是我在香港三天,所見過最和善的服務員微笑了。

第二天早上吃了金鳳茶餐廳,餐肉公仔麵的肉,就很像鹹的火腿,店員也是一樣隨隨便便的扔在桌上。

第三天的早餐則是再去挑戰了一次蘭芳園,嗯,絲襪奶茶就只是奶茶。衛生?....嗯....

經過這幾天的在香港的用餐,每餐加飲料大概都要50 HK,而且吃的都只一些很普通,網路上Google 到曾經有人推薦過的小東西。如果考慮這些店的排隊時間、店員服務態度、用餐舒適度和環境整潔的話,那我覺得台灣比香港好多了......

總之在香港的這幾天,看到那麼高的大樓,那麼擁擠的環境。
這個國家真的很會也很能賺錢,但是我心裡明白,這不是我想要居住的國家。

2013年3月6日 星期三

vShpere console screenshot


要看 ESX/vCenter 裡面 VM 的 console 有點麻煩,每次都要打開 vShpere找到VM
然後點 console tab。

查了一下,原來可以從 
https://{vCenter or ESX hostname}/screen?id={MoRefId} 直接看 VM console

要查 VM 的 MoRefId 不難,但是只看到一片黑又是怎麼一回事呢?

這時候如果從 vSphere 裡點一下 console, 則上面的網址又可以正常看到

答案是: power saving or screen blank!

所以在 /etc/rc.local 下加入

/usr/bin/setterm -blank 0 -powersave off -powerdown 0 

就隨時可以透過 http 看 VM console 囉
下一步或許還可以透過程式自動抓 console screenshot 呢!


Update:
在 CentOS 5/ RHEL 5 / Ubuntu 10/11/12 系列在 rc.local 用 setterm 可以work,但是在 CentOS 6 和 RHEL 6 無效。最後是在 /boot/grub/grub.conf kernel 那一列加入 "consoleblank=0"。


2013年3月5日 星期二

ext3/4 現有系統改用外部 journal device


For CentOS:

During booting, grub menu, press "e" and append  "single " to "kernel xxxxx" line.
When get into single user mode..

1. Create journal device:
    fdisk /dev/sdb, create partition for /dev/sdb1
    mke2fs -O journal_dev /dev/sdb1

2. Re-mount file system with read only:
    mount -o remount,ro /dev/mapper/vg00-lv00

3. Remove journal:
    tune2fs -O ^has_journal /dev/mapper/vg00-lv00

4. Assign external journal device:
    tune2fs -J device=/dev/sdb1 /dev/mapper/vg00-lv00

2013年3月3日 星期日

iozone

tarball installation:

wget http://www.iozone.org/src/current/iozone3_414.tar

tar xvf iozone3_414.tar && cd iozone3_414/src/current && make linux
(for x64 use linux-AMD64)

-a  #auto mode will test below matrix:

  • record size from 4k to 16M
  • file size from 64k to 512M
-g  #set maximum file size (in Kbytes) for auto mode (or #m or #g)

所以為了避免 linux 的 catch 機制,我們可以將要測試的檔案設定為記憶體的兩倍。
所以就是

iozone -a -g 8G (如果你的系統記憶體是 4G 的話)

其他模式的參數 -h 也可以看到,下面列有趣的....:

-s # file size in Kb
-i  # Test to run
         0=write/rewrite,
         1=read/re-read,
         2=random-read/write
         3=Read-backwards,
         4=Re-write-record,
         5=stride-read,
         6=fwrite/re-fwrite
         7=fread/Re-fread,
         8=random_mix,
         9=pwrite/Re-pwrite,
         10=pread/Re-pread
         11=pwritev/Re-pwritev,
         12=preadv/Re-preadv
-o  # Writes are synch (O_SYNC)





Python PEP8 Style Guide for Python Code

Indentation:
  •  4 個空白
Maximum Line Length: 
  • 一行79個字元
Blank Lines: 
  • Class 和 top-level Function 都用兩個空白行隔開,
  • Class 裡面的 method 用一個空白行隔開

Imports:
  •  一行 import 一個 module,不要用逗號在一行內 import 多個 module
  • 內建的 module 排序並且群組在最前面、接著是第三方的 module、最後是 local 的 module,並且用空白行隔開不同的群組。
Pet Peeves:
  • Immediately inside parentheses, brackets or braces
  • Immediately before a comma, semicolon, or colon
  • Immediately before the open parenthesis that starts the argument list of a function call
  • Immediately before the open parenthesis that starts an indexing or slicing
  • More than one space around an assignment (or other) operator to align it with another

整個 PEP8 其實還有更多細節的東西,因為目前是用 sublime 在寫,所以有裝了 
Python PEP8 Autoformat 和 Trailing Spaces 可以幫上一些忙。

2013年3月1日 星期五

python detect os and architecture

在 python 裡面要偵測OS的平台時可以使用 platform 這個 module:

platform.architecture()
('32bit', 'ELF')  or ('64bit', 'ELF')

要知道 OS 的版本可以用:

platform.dist()
('redhat', '6.1', 'Santiago') or ('SuSE', '11', 'x86_64')

基本上在 Linux 都可以正確的拿到所需要的資訊,but ...
在 Windows 上事情就沒有這麼簡單了...

因為即使在 Windows x64 的作業系統上,我們依然可以裝 32 位元的 python, 
這時候用 platform.architecture() 看到的就是會 ('32bit', 'WindowsPE')

那應該要怎麼辦呢? stackoverflow 上有人說可以用

os.environ['PROGRAMFILES'] 如果你看到了目錄名稱裡有 x86 字串,那應該幾乎可以猜到是 32bit python 跑在 64bit OS上。因為只有 64bit Windows 會為了相容 32bit 程式而將程式安裝在 Program Files(x86)  下。

32bit python on 32bit Windows
32bit python on 64bit Windows
64bit python on 32bit Windows => 裝不出來這樣的環境吧XD
64bit python on 64bit Windows ??

會有更準確的方法嗎?

REF:
http://stackoverflow.com/questions/2208828/detect-64bit-os-windows-in-python