2017年6月19日

Volumio2

Volumio 是支援類似 Raspberry Pi 等多款小電腦主機的音樂播放器,只要有一台 Raspberry Pi,就能夠接上網路上的串流、區域網路內的音樂庫、YouTube,進行音樂的播放。

內建的 Audio Out 就能夠播放音樂,但如果要得到更高語音品質的音樂輸出,則需要再購買 USB Speaker 或是 USB/I2S DAC。

安裝 volumio2 只要到 DOWNLOAD VOLUMIO FOR YOUR PLATFORM 網頁下載 Raspberry Pi 的 image,燒錄到 micro sdcard,直接用 RPi 開機就可以運作。

網路設定

如果直接接上 RPi console,可以用

帳號: volumio
密碼: volumio

登入進入 RPi,root 的密碼也是 volumio。

但基本上是 console mode。

volumio 必須要用 browser 進去設定以及使用,主畫面就像下面這樣。

我們除了設定連接到 NAS 的音樂庫,另外還下載了 YouTube Plugin。

設定「播放選項」

因為我沒買 DAC,在設定播放的輸出裝置時,一直發現一些問題,最後就是參考這個網頁

LIBRARY UPDATE: SEEMS TO CRASH VOLUMIO ON RASPI

把 /boot/cmdline.txt 裡面

由
"smsc95xx.turbo_mode=N"
改為
"smsc95xx.turbo_mode=Y"

另外把音量選項的 Mixer Type 改為 Software,就能運作了。

輸出裝置

RPi 內建的 Audio Out 聲音效果很差,會聽到很多雜音。

後來把一個 USB Speaker 接上 RPi,也沒有裝 Driver,就能在輸出設備中選到該 USB Speaker,聲音的品質改善很多。

APP

Volumio iOS 是個非常好用的工具,在 LAN 裡面把 app 打開,馬上就自動連接到 LAN 的 volumio。

References

Raspberry Pi 的應用 - 連音響發燒友也愛用的音樂播放器:Volumio

Raspberry Pi 的應用 - 數位音樂播放器的再進化:Volumio 2

2017年6月13日

Google Computer Engine 價錢相關

每次有人問到價錢相關問題時,都要上官網去查,官方資料雖然詳細豐富,但有時候還是覺得太多了,不需要看到這麼細,不如就自己整理一份堪用的吧。

基本

instance

最貴費用會在 instance 的費用,instance 會影響到 CPU 與記憶體。根據你選的機器類型,會得到相對應的費用。以 zone asia-east1-a 為例:

  • n1-standard-1 (1 個 vCPU、3.75 GB 記憶體) 費用一個月為 28.50 美金
  • n1-standard-2 (2 個 vCPU、7.5 GB 記憶體) 費用會變為一個月 56.61 美金。

region

region 也就是你 instance 的所在區域,比如說台灣的話就是 asia-east1,而東京的話就是 asia-northeast1。

所選的 region 與 zone 會影響價錢,比如若使用 n1-standard-1 的機器類型,於 asia-east1-a 一個月要 28.50 美金,位於 us-west1-a 一個月要 24.6 美金,位於 asia-northeast1-a 則要 31.69 美金。

images

所選 image 使用的作業系統會影響價錢,用一般 Linux 如 Debian、CentOS、Ubuntu 等等的是免費的,但是若是使用 Windows Server 或是 Red Hat 則要付授權費用。詳細看這邊 Premium images

網路

網路的收費有點複雜,有以下幾點:

  1. 外部網路傳進 GCE 機器的流量 (Ingress) 是不用收費的。
  2. 在相同 zone 內兩台 GCE 機器透過內部 ip 互傳的網路流量是不用收費的。
  3. GCE 機器傳至相同 region 的服務或是產品是不用收費的。
  4. GCE 機器若是透過外部 ip 傳出去的流量,則要根據地區與用量算錢,大多區域的價錢都一樣,只有到中國(香港的流量價錢和其他區域一樣)和澳洲的流量價錢會不一樣。每月使用流量 1TB內,則大多區域的價錢會是每 GB 0.12 美元,到中國會是每 GB 0.23 美元,到澳洲會是每 GB 0.19 美元。若你使用 1TB 以上,會便宜一點,若你使用到 10T 以上,價格會在便宜一些。

在白話一點就是,從外部送給 GCE instance 的流量都不用錢;GCE instance 之間若是透過內網 ip 互傳的流量也不用錢;若是透過外網 ip 從 GCE instance 傳出的流量就要收錢。

負載平衡

啟用則每小時 0.025 美金 (5 條規則內統一都是一樣價錢),之後額外加一條規則加 0.010 美金。而負載平衡處理的流量每 GB 為 0.008 美金。

硬碟

以台灣所屬的 zone,asia-east1 為範例:

  1. 標準硬碟:1 個月 1 GB,0.04 美元。
  2. SSD:1 個月 1 GB,0.170 美元。
  3. Snapshot:1 個月 1 GB,0.026 美元。
  4. Local SSD:1 個月 1 GB,0.218 美元。
  5. 自製 Image:1 個月 1 GB,0.085 美元。

IP

你可以跟 google 要固定 ip,但是若你要了 ip 卻沒將它使用在任何 instance 上,則 google 要跟你收費,每小時為 0.010 美金,若是該 ip 有在正常使用中,則不會被收取任何費用。

價錢範例

以下價錢範例,會將美金 * 30 當成美金轉換成台幣的匯率。

規格與用量相關

規格或用量 zone 每月花費美金 每月花費台幣
1台 n1-standard (1 vCPU、3.75 GB 記憶體),使用 centOS 7 image asia-east1 28.51 855.3
1台 f1-micro (0.2 vCPU、0.60 GB 記憶體),使用 centOS 7 image asia-east1 5 150
1台 g1-small (0.5 vCPU、1.70 GB 記憶體),使用 centOS 7 image asia-east1 15.33 459.9
HDD 10 GB asia-east1 0.40 12
HDD 100 GB asia-east1 4.00 120
snapshop 10 GB asia-east1 0.26 7.8
snapshop 100 GB asia-east1 2.60 78
負載平衡,5 條規則,一個月處理 1 GB 流量 asia-east1 18.26 547.8
負載平衡,5 條規則,一個月處理 100 GB 流量 asia-east1 19.05 571.5
負載平衡額外增加 1 條規則 asia-east1 7.3 219
負載平衡額外多處理 1 GB 流量 asia-east1 0.01 0.3

網路相關

GCE 傳出流量 每月花費美金 每月花費台幣
GCE 機器傳出 1 GB 網路流量到中國(香港不屬於此價位) 0.23 6.9
GCE 機器傳出 100 GB 網路流量到中國(香港不屬於此價位) 23 690
GCE 機器傳出 1 GB 網路流量到澳洲 0.19 5.7
GCE 機器傳出 100 GB 網路流量到澳洲 19 570
GCE 機器傳出 1 GB 網路流量到各其他各地(香港屬於此價位) 0.12 3.6
GCE 機器傳出 100 GB 網路流量到各其他各地(香港屬於此價位) 12 360

免費試用

GCP 服務現在提供一年 300 美金的免費試用服務,所以可以透過你的 google 帳號啟用 GCP 服務(需要填入信用卡),則可使用 GCP 服務。預設你的帳號是不會被收取任何費用的,當裡面的 300 元花完了只會讓帳號被暫停,而不會從信用卡扣款。

若你點了升級或是升級帳戶的按鈕將你的帳號升級成付費帳號,此時信用卡才會被拿來扣款。

免費方案

若你只是需要一台機器,跑跑 wordpress,或是練習 linux,則你可以考慮使用 GCP 免費方案,GCE 提供你在 US regions 開一台 f1-micro instance,一個月可以使用 30 GB 的 HDD,與 5GB 的 snapshot。網路部份一個月 1 GB 的網路對外流量從北美至世界各地(但不包括中國和澳洲)。所以基本上可以拿到一台免費的機器使用。

reference

Google Cloud Platform Pricing Calculator

Always Free Usage Limits

Regions and Zones

Google Compute Engine Pricing

2017年6月12日

如何備份、還原處理 RPi 的 sdcard image

Raspberry Pi 使用的 sdcard 雖然同樣是 16GB,但因為不同廠牌還是有些大小的差異,備份跟還原 sdcard 有些問題,畢竟大檔案的 image 不能還原到稍小的 sdcard 中。

以下紀錄如何備份、還原及縮小 RPi 的 sdcard。

在 MAC 處理 image

  • 使用 [SD Formatter] 可格式化 SD Card
sudo newfs_msdos -F 16 /dev/disk2
  • RASPBIAN 下載 RASPBIAN JESSIE WITH PIXEL,取得 2016-09-23-raspbian-jessie.zip 解壓縮得到2016-09-23-raspbian-jessie.img

  • 重新插入 SD Card,用以下指令的結果,得知 SD Card 在 /dev/disk2 或是 /dev/disk1

diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *480.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            479.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.9 GB    disk2
   1:             Windows_FAT_32 NO NAME                 15.9 GB    disk2s1
  • umount disk2
sudo diskutil unmountDisk /dev/disk2
  • 將 img 寫入 sdcard

如果 rdisk2 有問題,就改成 disk2

sudo dd bs=1m if=~/Downloads/2016-09-23-raspbian-jessie.img of=/dev/rdisk2
  • 將 sdcard dump 到 image
sudo dd bs=1m if=/dev/rdisk2 of=~/Downloads/messenger_20170405.img

在 RPi 開機狀態直接備份 sdcard

在 RPi 上,將新的 sdcard 放入 USB sdcard Reader 接上 RPi

sudo fdisk -l

如果是 Disk /dev/mmcblk0 的設備,就是 RPi 上原始的 sdcard,以 USB sdcard Reader 接上 RPi 後,會看到增加的 /dev/sda 設備,這是新的 sdcard

下載 rpi-clone

git clone https://github.com/billw2/rpi-clone.git
sudo cp rpi-clone/rpi-clone /usr/local/sbin
rm -rf rpi-clone

用以下指令就可以將 sdcard 複製到 新的 sdcard 上

sudo rpi-clone sda -v -x

在 Windows 處理 sdcard image

使用 Win32 Disk Imager 軟體就可以備份及還原 image

縮小 RPi image

使用 PiShrink 可以在 linux 縮小 RPi image

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh

chmod +x ./pishrink.sh
sudo ./pishrink.sh ./raspbian_backup.img

以下是執行結果,可看到檔案縮小了 2G

Creating new /etc/rc.local
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop0: 301607/960992 files (0.2% non-contiguous), 3200117/3841024 blocks
resize2fs 1.41.12 (17-May-2010)
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/loop0 to 3208948 (4k) blocks.
Begin pass 2 (max = 228392)
Relocating blocks             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 118)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 25082)
Updating inode references     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/loop0 is now 3208948 blocks long.

Shrunk ./raspbian_backup.img from 15G to 13G

References

How to Clone Raspberry Pi SD Card on Windows, Linux and macOS

Backup (or Clone) a Raspberry Pi SD Card

用 Win32 Disk Imager 備份和燒錄 Raspberry Pi 的 SD 卡

2017年6月5日

倖存者偏差 survivorship bias

倖存者偏差(Survivorship Bias),就是只有存活下來的人,才會被後人看到,因此我們在分析資訊的時候,非常容易忽略掉那些被淘汰的競爭者,造成對局勢的評估過分樂觀,甚至導出完全相反的結論!

在觀察不熟悉的產業時,往往被這種倖存者偏差所蒙蔽,報章雜誌更是時常針對那些所謂成功的企業案例。實際上,這些結果論的成功故事所歸納出的成功要訣往往只是其中一小塊拼圖,這些1%的倖存者因為大量曝光的資訊,讓我們以為前景一片看好,我們卻沒有看到其他99%的競爭者早就默默地消失了!由於成功者的能見度壓倒性的高過失敗者,因此,人們總是系統性的高估了獲得成功的希望。

類似的名詞有:隱藏失敗者、沉默的數據、死人不會說話

統計的抽樣方法

抽樣 是一種推論統計方法,從目標總體(Population,母體)中抽取一部分個體作為樣本(Sample),通過觀察樣本的某一或某些屬性,依據所獲得的數據對總體的數量特徵得出具有一定可靠性的估計判斷,從而達到對總體的認識。

學問就在於,如何抽樣,抽樣的個體如何能代表整個母體?統計上有另一個名詞:信賴區間,信賴區間是樣本對某個總體參數的區間估計。信賴區間展現的是,這個總體參數的真實值有一定機率落在與該測量結果有關的某對應區間。

信賴區間會聲稱總體參數的真實值在測量值的區間所具有的可信程度,也就是前面所說的「一定機率」。這個機率被稱為信心水準。

舉例來說,如果在一次大選中某人的支持率為55%,而信心水準0.95上的信賴區間是(50%,60%),那麼他的真實支持率落在50%和60%之區間的機率為95%,因此他的真實支持率不足50%的可能性小於2.5%(假設分布是對稱的)。

在倖存者偏差中,由於抽樣的對象都是整個母體中的倖存者,因此對這些抽樣對象的分析結果,並不能代表整個母體,如果誤信這些倖存者的分析結果,忽略了原本母體中沈默的失敗者,就會造成對局勢過分樂觀的評估結果。

第二次世界大戰

1941年,第二次世界大戰中,美國哥倫比亞大學統計學亞伯拉罕.沃爾德(Abraham Wald)應軍方要求,利用其在統計方面的專業知識來提供關於《飛機應該如何加強防護,才能降低被炮火擊落的機率》的相關建議。

教授針對聯軍的轟炸機遭受攻擊後的數據,進行研究後發現:機翼是最容易被擊中的位置,機尾則是最少被擊中的位置。沃德教授的結論是「我們應該強化機尾的防護」,而軍方指揮官認為「應該加強機翼的防護,因為這是最容易被擊中的位置」。

沃德教授的堅持有以下幾點

  1. 統計的樣本,只涵蓋平安返回的轟炸機
  2. 被多次擊中機翼的轟炸機,似乎還是能夠安全返航
  3. 在機尾的位置,很少發現彈孔的原因並非真的不會中彈,而是一旦中彈,其安全返航的機率就微乎其微

軍方採用了教授的建議,並且後來證實該決策是正確的,看不見的彈痕卻最致命!

這個故事有兩個啟示:一是戰死或被俘的飛行員無法發表意見,所以彈痕數據的來源本身就有嚴重的偏誤;二是作戰經驗豐富的飛行員的專業意見也不一定能提升決策的質量,因為這些飛行員大多是機翼中彈機尾未中彈的倖存者。

基金及股票市場

基金行業會對外宣布,過去10年,基金行業的整體收益率超過100%,你是不是覺得買基金肯定賺翻了?

基金市場中,計算基金類股未來多年走勢時,通常會排除下檔基金的虧損,因此會高估了基金的整體報酬率,因為已經消失在市場的基金,沒有必要列在其中。

如果長期觀察新發行證券的股價發展,並排除已經破產的公司時,也會發現類似的效應。這種「排除」模式導致投資人對未來發展過度樂觀,因為破產公司無法拉低整體的統計數據。

股票指數的表現也會遭遇這類失真問題,因為指數表現較差的股票並不會納入計算,股市指數永遠只會統計表現最亮眼的那些股票。

讀書無用論

很多人在說,某某人當初沒好好上學如今照樣掙大錢,而好多用功讀書的人,畢業後反而不如那些沒好好學習的人混得好。並且因為這樣的例子有很多,所以很多人得出「讀書無用」的結論。

因為高學歷成功者的新聞性不會比低學歷成功者來得高,在報導成功案例時,如果有低學歷,或是輟學的過程,會讓整個故事更具有傳奇性,因此我們常常會聽到這樣的案例,相反的,如果是高學歷的成功者,報導中就不會強調這個部分。

生活中的 倖存者偏差

我親戚的病就是中醫看好的,所以中醫很靈驗。

喝葡萄酒的人比較長壽。

每個成功者都很努力,所以只要努力就能成功。

References

倖存者偏差

可怕的邏輯陷阱 -- 存活者偏差

彈孔最多的地方不需要保護──倖存者偏差

無所不在的生存者誤差 (Survivorship bias)

林斯諺/國外的月亮比較圓?《返校》熱潮的「倖存者偏差」

考研,一定要注意倖存者偏差

倖存者偏差是什麼意思?

3 - 6 信賴區間與信心水準的解讀