Windows Live Writer 測試

今天重開機的時候, 看到這個 Windows Live Writer 詢問是否要安裝的畫面, 所以就點下去試用. 如果好用的話, 就不需要使用 WordPress 後台的編輯器了.

乍看之下, Word 的功能好像都有? 除了 private publish 的選項找不到之外, 一切都相當完美. 可以插入地圖, 又可以和 server 同步!

[檔案遺失]

ScreenHunter_03 Sep. 09 12.31

除此之外, 還有各種快捷鍵, 直接連到 comment, dashboard, preview, 甚至於也可加標籤.  在最上方的 memu bar 有一個 “部落格(B)” 的選項, 可以檢視、管理、發佈多個部落格, 想來也可以把一篇文章貼到很多不同的地方.

雖然有這樣一套工具可以用對我來說是一個利多, 但是我想不通為何 Microsoft 要做這件事? 背後的意義是什麼呢?

不管這個 bog 要發表在 Microsoft 或是 Google 家, 若是 blog 作者都用同一套工具來開發, 等於是找到了唯一的入口. 至於哪個傻蛋要花錢供別人放置 blog 那是他的事, 至少 Microsoft 已經可以保證 bing 可以 search 得到這些 content. 我低等的智慧就只能想到這麼多了, 至少我還是個受益者.

BTW, Microsoft 的搜尋網站叫做 bing, 實在是不買中國人的帳! 難道它可以向別家一樣打廣告, 讓主角們互相問: “你今天 bing () 了嗎 ?"

 

IMA4 小筆記

客戶的要求如土石流一樣地來, 既然不能遷村, 就要做好防災的準備, 免得不小心就滅村了. 這次的需求是 IMA4, priority 大概第 40 順位.

這個 IMA4 是什麼東西呢? 它是 Apple Quick Time 所支援的 ADPCM 格式. 一般是 1~2 聲道, 左聲道 block 放完才放右聲道 block, 然後反覆左右, 左右 的 blocks 直到檔尾. 每個 block 由 64 個 nibble 所組成, 1 nibble 也就是 1/2 bytes or 4 bits.

為何要選 nibble 為單位呢? 據說是為了要避免 endian 的問題, 只要把 data 以 4 bits 為單位組裝起來, 就可以依據平台來解釋它是 big endian 或是  little endian. Apple 號稱這個設計有 cross-platform 的功效.

[離題一下] 話說 nibble 很像另外一個單字 nipple (奶頭), 有位前同事就把這兩者搞混了, 也誤導了我一陣子.  不過人非聖賢, 孰能無過. 身為一個工程師, 程式沒錯就很偷笑了, 偶爾打印一些 FETAL ERROR, 或是程式裡面命名一些 Globle 變數也是難免的. 反正看久就習慣了, 見怪不怪真可以說是中華文化根深蒂固的一個部分.  哈哈!

name bits structure note
preamble 16 ppppppp piiiiiii

p 代表 9 bits signed predictor,
其中後 6 bits 預設為 0

i 代表 7 bits initial step index.

block 32×8 n1n0 n3n2 …. 左聲道, nibble 0 在 nibble 1 的後面,
但是要先解, 依此類推.
block 32×8 n1n0 n3n2 …. 右聲道, 單聲道就沒有這部分,
換下一個左聲道的 block.

 欲了解 IMA4 的全貌, 最好參考 Apple 的網頁.

http://developer.apple.com/mac/library/technotes/tn/tn1081.html

 

Volatile 型別小檔案

今天有同事發信告訴大家, 他犯了一個 volatile 的錯誤, 希望大家不要重蹈覆轍. 內容大致是說, 平常大家習慣用 a = b = 10; 這樣的寫法, 但是若加上了 volatile 就不行了.

*(volatile unsigned int *) a = 

*(volatile unsigned int *) b = xxx.

為啥子呢? 因為 volatile 告訴 compiler, 這個值每次用到的時候, 都要去 a 和 b 對應的 address 裡面重新讀出來.

Compiler 如果有預見的能力, 根本不會讓它通過的. 比方說 Visual C++ 2008 Express 版, 會給這樣的訊息:

1>c:\users\cash\documents\visual studio 2008\projects\source1.cpp(6) : error C2059: 語法錯誤 : ‘volatile’

關於 volatile 的原理, 有一篇文章寫得很好, 大家可以去看看:http://blog.csdn.net/c_bg44/archive/2007/03/23/1538235.aspx

 

 

WMA 版本編號

WMA 是 Microsoft 發明的 audio compression 格式, 通常放在 ASF 的檔案格式之中. 這些都是普通常識, 到處都可以查得到.

最神奇的地方在於, WMA 有兩種編號. 官方的編號是 version 1,2,3,…乃至於現在常見的 8,9,10 等版本. 而不知道哪裡冒出來的說法, 則是把 WMA 稱為 WMA 2, WMA pro 稱為 WMA 3. 因此, 客戶常常來問我們: "WMA 3 有沒有支援?" 如果同仁或代理商跟他們說: "我們只支援到 WMA 7 喔? 不支援老舊的第三版!" 這時客戶可能也會莫名其妙地就被說服了.

要分辨檔案是 WMA 第三版, 還是 WMA pro, 其實聽多聲道的輸出就可以明白了. WMA 最多只有 2 channels, WMA pro 才有 multi-CH.

關於厚尾

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

現在我總算是比較清楚了. 厚尾 (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 就是常態分佈的峭度, 以此可做為峭度高低的分野.