超短日記 – 20090628

早上十點我們從新竹出發, 打算去北海岸. 一路上算是交通順暢, 中午就過了關渡大橋. 因為天氣太過於炎熱, 所以我們選了家樂福用餐, 以便避免不必要的步行. 可是即使是家樂福的停車場都熱得要死.

下午很快地找到麟山鼻, 因為它和白沙灣根本就是同一個入口, 只不過需要再往裡面走一點. 如果開車的話, 看到第一個停車場不要停, 第二停車場也不要停, 直接開到麟山鼻漁港去停就好. 聰明的人直接走進漁港, 就可以看到電影 “不能說的秘密" 裡面的那條棧道. 

比較笨的就像我, 在大太陽底下走麟山鼻步道. 雖然可以看到風稜石, 石滬, 但是非常非常地熱~~~ 走完這段路, 老婆, 女兒和姪女都快要翻臉了. 因此我們繼續往萬里方向前進, 女人幫有令: 天氣這麼熱的話, 直接上二高回家好了.

然而, 快走到金山的時候, 天空開始灑下一些雨點, 愈靠近萬里, 雨勢就愈大. 老婆覺得野柳一定在下雨, 決定再回金山方向找地方玩. 首先我們去了水尾漁港旁邊的景觀橋. 這裡比較乏善可陳, 但是因為剛下過雨,  所以有淡淡的彩虹. 無奈我攝影技術有限, 拍不到它. 

於是我們改道去走獅頭山步道. 其實這個步道很短, 我們花了很多時間在磺港社區的雙燭台嶼附近照相. 接著路過野柳, 在地質公園附近也拍了幾張照. 然後在金山吃冰芝林的綿綿冰, 至於鴨肉, 因為天氣太熱, 又看到那麼多人實在沒胃口.

在開車回家的路上, 我覺得相當地累. 因此在林口交流道下來吃晚餐. 這邊有一家伊太郎拉麵的總店, 它的拉麵非常好吃. 令人想念起新宿王子飯店對面的那家拉麵店. 我一邊吃一邊想, 乾脆把股票都賣掉, 投資它在新竹開分店好了~~~

 

 

握力的標準

忙到好幾天沒進自己的房間了, 昨天特別和岳父母去台茂吃飯. 結果在大魯閣棒壘練習場旁邊發現一台握力計, 想想我年輕的時候學校都沒有這種設備, 趕快趁帕金森症上身之前玩一下.

三十幾歲的時候在台中科博館和機器人比腕力, 我也和最高級戰成平手. 我覺得我應該算是有力氣的. 不過滑鼠和 touch panel 用太多是不是有職業傷害啊? 哈! 右手竟然變得比左手沒力. 測出來的數字不太好看: 右手 49 Kg, 左手 51 Kg.

那台機器上密密麻麻地寫了男女生不同年齡的握力標準, 但是我也沒空去讀它. 因為別人也要玩. 所以我只知道我後面那個很高的男生是 45 Kg, 我女兒是 19 Kg. 一般來說, 怎麼樣算是握力好呢?

把大陸同胞的兩個網站的資料綜合起來, 可以得到下表. 台灣人的標準應該和大陸人差不多吧! 從這個表也看到一點, 一般來說, 老年人和的年輕人握力相比, 其實並不會退化太多. 還有, 弱弱的男生也比有力氣女生握力大.

年齡 性别 1分 2分 3分 4分 5分
20-24歲 29.6-36.9 37.0-43.5 43.6-49.2 49.3-56.3 >56.3
20-24歲 18.6-21.1 21.2-25.7 25.8-29.8 29.9-35.0 >35.0
25-29歲 32.6-38.3 38.4-44.8 44.9-50.4 50.5-57.6 >57.6
25-29歲 19.2-21.7 21.8-26.1 26.2-30.1 30.2-35.3 >35.3
30-34歲 32.2-38.0 38.1-44.9 45.0-50.6 50.7-57.6 >57.6
30-34歲 19.8-22.3 22.4-26.9 27.0-30.9 31.0-36.1 >36.1
35-39歲 31.3-37.2 37.3-44.4 44.5-50.2 50.3-57.7 >57.7
35-39歲 19.6-22.3 22.4-27.0 27.1-31.2 31.3-36.4 >36.4
40-44歲 30.0-36.4 36.5-43.4 43.5-49.5 49.6-56.7 >56.7
40-44歲 19.1-22.0 22.1-26.9 27.0-31.0 31.1-36.5 >36.5
45-49歲 29.2-35.4 35.5-42.4 42.5-48.5 48.6-55.4 >55.4
45-49歲 18.1-21.2 21.3-26.0 26.1-30.3 30.4-35.7 >35.7
50-54歲 27.2-32.7 32.8-40.3 40.4-46.3 46.4-53.2 >53.2
50-54歲 17.1-20.1 20.2-24.8 24.9-28.9 29.0-34.2 >34.2
55-59歲 25.9-31.4 31.5-38.5 38.6-43.9 44.0-50.7 >50.7
55-59歲 16.3-19.2 19.3-23.5 23.6-27.6 27.7-32.7 >32.7

[reference]

http://hi.baidu.com/licky0925

http://www.sport.gov.cn/n16/n41308/n41323/n41345/n41426/n42527/n42587/n171344.files/n699449.doc

 

關於厚尾

過去在很多本書裡面, 都看到厚尾這個名詞. 以前, 我始終搞不清楚厚尾和 "長尾效應" 是不是同一件事?

現在我總算是比較清楚了. 厚尾 (fat tail) 是指統計上的特性. 如果一個分布的峭度 (kurtosis) 大於常態分佈 (normal distribution), 它就叫做 Leptokurtic. 這表示有比較多的機會, 這個分佈會在遠離 mean 的地方有值.

因此我們可以說厚尾 (fat tail) 可以導致明顯的長尾 (long tail), 但是 Chris Anderson 所提出的長尾效應對峭度很低的分佈仍然成立, 只要遠離 mean 的地方一直有值, 累積起來還是一個長尾.

反之, 若是峭度比常態分佈還小 (< 3, 因為常態分佈的峭度恰好是 3), 就叫做 Platykurtic, 它會有比較多的值靠近於 mean. 這是搞財務的人比較喜歡的狀況. 因為這表示他們的估計出槌的機會比較低.

另外還有機會看到一尾 (one tailed) 和兩尾 (two tailed) 的說法. 因為財務產品會估計他們的獲利的信心度. 以常態分佈為例, 在信心度 95% 的情況下, 獲利不會超過 1.96 倍的標準差, 或是低於 -1.96 倍的標準差, 此時考慮的是過高或過低兩尾的信心度.

當然, 客戶可能不介意獲利超過 1.96 倍的標準差, 畢竟多賺沒啥不好, 此時只要考慮一尾的信心度就好. 在同樣的狀況下, 賣方可以誇稱他有 97.5% 的信心度, 不會虧到 -1.96 倍標準差下.

超過幾倍標準差這個東西, 叫做 z-value, z-score, 或是 z-statistic. 統計值先減掉統計的 mean, 再除以 standard deviation 就可以得到.

z = (x – µ) / std

對了, 峭度的計算忘了講, 他是第四階的 moment.

kurtosis = summation ((xi – u)4) / (N * std4 )

excess kurtosis = kurtosis – 3 

因為 3 就是常態分佈的峭度, 以此可做為峭度高低的分野.

 

夭壽慢的 Cygwin

在軍情緊急的昨天 (2009/6/27), 本來是要幫忙解 HDMI 的 bug. 但是事件卻如雪片般地飛來~~~ 前線的 Dylan 說我 build 給他的版本有問題; Mike 多次打電話來關切; 老婆中午叫我回去教做人做事的道理, 晚上叫我教女兒英文. 另外我們的 SPDIF 規格版本太舊了, 我還得抽空上網去買新版的 SPDIF spec. 再 download 下來給 Irene 看.

然而, 真正叫人喪氣的就是: Cygwin 變得超超慢, build 一個版本似乎要好幾個小時. 我想 Dylan 應該要瘋了~~~ 為了測底消滅這個問題, 我趁 make code 的時候, 整理 Cygwin 變慢的原因如下: 

根據網路搜尋的結果, 在 Cygwin 的官網這樣解釋:

4.2.

Why is Cygwin suddenly so slow?

 

If you recently upgraded and suddenly every command takes a very long time, then something is probably attempting to access a network share. You may have the obsolete //c notation in your PATH or startup files. This now means the network share c, which will slow things down tremendously if it does not exist.

Using //c (for C:) doesn’t work anymore. (Similarly for any drive letter, e.g. //z for Z:) This “feature" has long been deprecated, and no longer works at all in the latest release. As of release 1.3.3, //c now means the network share c. For a detailed discussion of why this change was made, and how deal with it now, refer to http://sources.redhat.com/ml/cygwin/2001-09/msg00014.html.

在討論串裡面, 有類似的說明:

http://www.mail-archive.com/cygwin@cygwin.com/msg85049.html

另外一個原因好像是 Windows 2000 的 hotfix Q8114993 改了 winsock 的處理方式.

www.cygwin.com/ml/cygwin/2003-05/msg00065.html

既然我的 cygwin 本來是快的, 原因很可能出在 Windows 的 upgrade. 可惜看來看去, 網路上說的 hotfix 竟然是 2003 年的事了, 現在的這些 hotfix 並不知道要懷疑誰好? (其中 IE 8 那一包至為可疑…, 我的 notebook 灌了它之後很會當!)

再回頭看看 Cygwin 的另外一個官網 http://cygwin.com/, 裡面提到了一些實際可行的做法. 整理如下:

1. 給 Cygwin 更多的記憶體. 這個例子可以給到 1024MB, 當然, 這是指 virtual memory. 只要 Windows 的分頁記憶體比它還大就可以了.

regtool -i set /HKLM/Software/Cygnus\ Solutions/Cygwin/heap_chunk_in_mb 1024
regtool -v list /HKLM/Software/Cygnus\ Solutions/Cygwin

執行結果如下:

mounts v2\ (Cygwin)
Program Options\ (cygnus)
heap_chunk_in_mb (REG_DWORD) = 0x00000400 (1024)

2. 用 strace 跑一次 make, 從這裡可以看到很多時間花在找 path, 因此把 cygwin 的目錄往前移. 修改的地方自然是在控制台 → 系統  → 進階  → 環境變數那裡.

此外, 我也看到一個令人心痛的事實, Cygwin 花了很多時間在確認執行檔的名稱. 它先找執行檔 XXX, 再依序找 XXX.exe, XXX.lnk, 和 XXX.exe.lnk. 原來我浪費了這麼多時間在做沒意義的傻事! 

   78  373674 [main] rsdk-elf-gcc 2440 mount_info::conv_to_win32_path: src_path /rsc/ct_wu/rsdk/release/rsdk-1.4.2/cygwin/newlib/rlx-elf/lib/specs, dst g:\cygwin\rsc\ct_wu\rsdk\release\rsdk-1.4.2\cygwin\newlib\rlx-elf\lib\specs, flags 0xA, rc 0
  127  373801 [main] rsdk-elf-gcc 2440 symlink_info::check: GetFileAttributes (g:\cygwin\rsc\ct_wu\rsdk\release\rsdk-1.4.2\cygwin\newlib\rlx-elf\lib\specs) failed
   83  373884 [main] rsdk-elf-gcc 2440 geterrno_from_win_error: windows error 3 == errno 2
  116  374000 [main] rsdk-elf-gcc 2440 symlink_info::check: GetFileAttributes (g:\cygwin\rsc\ct_wu\rsdk\release\rsdk-1.4.2\cygwin\newlib\rlx-elf\lib\specs.exe) failed
   81  374081 [main] rsdk-elf-gcc 2440 geterrno_from_win_error: windows error 3 == errno 2
  117  374198 [main] rsdk-elf-gcc 2440 symlink_info::check: GetFileAttributes (g:\cygwin\rsc\ct_wu\rsdk\release\rsdk-1.4.2\cygwin\newlib\rlx-elf\lib\specs.lnk) failed
   80  374278 [main] rsdk-elf-gcc 2440 geterrno_from_win_error: windows error 3 == errno 2
  117  374395 [main] rsdk-elf-gcc 2440 symlink_info::check: GetFileAttributes (g:\cygwin\rsc\ct_wu\rsdk\release\rsdk-1.4.2\cygwin\newlib\rlx-elf\lib\specs.exe.lnk) failed
   83  374478 [main] rsdk-elf-gcc 2440 geterrno_from_win_error: windows error 3 == errno 2
   79  374557 [main] rsdk-elf-gcc 2440 symlink_info::check: 0 = symlink.check (g:\cygwin\rsc\ct_wu\rsdk\release\rsdk-1.4.2\cygwin\newlib\rlx-elf\lib\specs, 0x22C450) (0xA)
   82  374639 [main] rsdk-elf-gcc 2440 mount_info::conv_to_win32_path: conv_to_win32_path (/rsc/ct_wu/rsdk/release/rsdk-1.4.2/cygwin/newlib/rlx-elf/lib)

在 strace 裡面看到做最久的一步是 entering. 換個目錄需要很長很長的時間. 因此我想到第三步: 硬碟重組!

3. 把硬碟重新整理一下, 執行重組! 既然 Cygwin 編譯時 CPU time 是如此地少, 可見得它是 IO bound. 此時 Memory 已經給很多了, 實際上用到的記憶體 800MB 都還不到實體記憶體 1GB 的 90%, 所以可以排除 memory bound 的可能.

4. 把防毒軟體的沒用的檢查關掉一點. 把安全的檔案夾都放到 exception 裡面.

5. 把 bash.exe 的 priority 從工作管理員裡面調升到 "標準以上". 不過, 我給 Dylan 的版本就是在調升 priority 以後 make 的, 我現在不是很敢動它. 尤其是調到 "即時" 等級的話, 根本就不能 make clean  再 make all 了.

用了這幾招之後, 感覺似乎有快一點. 至少 make 一次的時間可以在 5 分鐘以內了. 不知道是不是有 bug, 哈! 其中最好的一招好像是 3: 硬碟重組. 有人知道更厲害的絕招可以教我嗎?

 

VMWare Workstation V6.5.2 的網路選項

昨天為了 pass through 的事情, 還是搞到 10 點才吃晚飯. 不過今天清晨五點多就夢到 HDMI pass through 有問題而 "嚇" 醒了. 可是我 9 點鐘還要送小孩去上學, 不可能一早衝進辦公室. 於是起來研究 VM Ware.

VM Ware 可以讓一台 PC 上並存多個作業系統, 甚至可以互相通訊. 先前裝 VMware Workstation 4.X 版的時候, Vista 直接不能開機, 所以我憤怒地將它移除. 不過, 聽說 VMWare 新版已經可以和 Vista 相容了, 所以我就再給它一次機會. 因為我還有一套正版的 XP Home, 一套正版的 XP Professional 都晾在一邊. 與其這樣, 還不如把它灌起來使用.

新的 VMWare 安裝界面變得簡單易懂多了, 所以很直觀地就可以把系統設定好. 較難弄懂得就是網路設定的部分. 網路上有人說: 勾第一個就好, 有人說為了方便就勾第二個. 光是這樣, 我們很難搞清楚其中的玄機… 

其實網路的第一個選項是 bridge, 第二個 NAT (network address translation), 第三個是 host only, 第四個是 custom. 選 bridge 的話, 這個 guest (也就是新開出來的虛擬機器 virtual machine, VM) 和主體的機器 (host) 具備同等的上網權力, 因此相當於要給 guest 一套完整設定. 若是 NAT 的話, guest 只是用虛擬 IP 分享 host IP 的上網能力. Host-only 的時候, guest 就不能上網了. 至於 custom 選項可以決定用哪一個 VMNet 上網. 我看到 VMnet1 就等於 host only, VMnet8 就等於 NAT.

為了先求苟活於亂世, 我就選了 NAT, 打算等到有空再來設定 bridge 網路. 畢竟, 我的主要需求是在 blog 架站的 PC 上寫網誌, 而避免去打開 notebook. 此事的解決之道包括: 架 DNS 站, 改 host 檔案, 或者是用另外一個網路 (例如 3G). 若是想用 3G 的話, 就得用 bridge 的設定. 唉! 一切只怪買 rounter 的時候年紀太輕, 還不懂得要指名有 NAT loopback 功能, 只好事後補救, 改東改西.

VMWare 很強大的一點是, 所選定的東西都是可以改的. 這樣給了使用者很大的彈性. 目前較不滿意的就是 guest 的視窗太小, 只有 800 x 600. 不知道受到哪一個條件的限制? 如果按照 VMWare 裡面的選項來看, 選到 2360 x 1770 也沒有問題. 如果這點解決了, 幾乎就完美了.

目前還在試用期 30 天之內, 如果用起來感覺不錯. 應該是要贊助一下開發這麼強的軟體的廠商才是.

[reference]

http://www.dk101.com/Discuz/viewthread.php?tid=54236

[20090623 補充]

要把 guest 的螢幕解析度調高, 只需要到 guest 的控制台裡面去調整, 這樣螢幕就可以愈調愈大.