prism

2015-07-09

How I deploy my golang binary

在網路上,有很多 Docker 的佈署的文章,或是用來測試的方式

用 golang 撰寫的服務,編譯成執行檔後,你可以有很多的選擇,例如:upstart , supervisord , 或是 daemontools

這一次,我想用 Docker ,想要他的彈性

但是,不管用 Ubuntu , Debian 或是官方的 Golang 的 image

總覺得 image 太大,不合用,直接由 scratch 做 image 又覺得,萬一有一些系統的相依套件,需要的時候,不方便

所以這是我目前的萬用 image 的 Dockerfile


FROM alpine:3.2
RUN apk --update add curl
WORKDIR /usr/src/app
ENTRYPOINT  ["/usr/src/app/goapp"]

實際的編譯執行檔,分資料夾放,名字都叫做 goapp,執行 container 的時候,用 -v 掛載進 container 的 /usr/src/app
golang 的程式記得可以用環境變數,更改一些執行的變數,像是,資料庫連結,等等,只要執行 container 時,用 -e 帶給 container

以後上新版的執行檔,就只要下 docker restart your_running_container 而已


image 裡安裝的 curl ,只是要順便把 ssl certificates 安裝,這樣就有 root certificates

這樣的 images 大小大約 8.7 MB ,夠小,也很快

颱風假的新聞

今天是難得的颱風假,看新聞總有一種怪怪的感覺

總是說電影院,或是 KTV 人滿為患,這些媒體記者

這麼多年了,角度總是沒變過

總沒人探討,為何,這些娛樂的營業場所,總是在颱風假,依就營業的問題

讓工作的人員,總是必須冒著生命安全受到侵害的危險,出門工作

就像是地方政府首長,做出對大家生命安全最安全的決定

你選擇,出門玩樂,那是你自由的選擇,但是,這些 KTV,電影院,或是百貨公司的從業人員

他們能選擇對自己安全的選擇嗎?

2015-05-08

Prepare your Linux USB bootable on Mac

在 Mac 上面要準備你的 GNU/Linux USB 安裝拇指碟

沒有像上 Linux 上面這麼的方便,畢竟這就是華麗的代價



基本步驟,這裡指的是 Debian 的安裝 ISO 檔案為例

1) 下載 ISO http://cdimage.debian.org/debian-cd/8.0.0/amd64/iso-cd/debian-8.0.0-amd64-netinst.iso


2) 轉檔 hdiutil convert -format UDTO -o debian.img debian-8.0.0-amd64-netinst.iso

3) 找到你 USB SD 卡的磁碟名稱 diskutil list

4) 我的例子是 /dev/disk3

5) diskutil umountDisk /dev/disk3 卸載

5) 切割 USB 碟,格式化, diskutil partitionDisk /dev/disk3 1 "Free Space" "unused" "100%"

6) sudo dd if=debian.img.cdr of=/dev/disk3 bs=1m

恭喜,這樣可以做完收工了,可以有 Linux USB 安裝拇指碟


參考資料
http://blog.tinned-software.net/create-bootable-usb-stick-from-iso-in-mac-os-x/

http://unix.stackexchange.com/questions/114984/how-to-create-a-bootable-linux-installation-usb-from-an-iso-in-os-x

2015-05-07

Chrome avatar

忘了,Chrome 到哪一版,更新後,頭像不見了,剩下名字而已

這樣可以繼續用,原本的頭像顯示

打開 Chrome 到 chrome://flags/#enable-new-avatar-menu 關了他,restart Chrome ,Hi avatar.

參考

http://lifehacker.com/how-to-disable-chromes-new-user-menu-1679224275

2015-05-02

DD WRT Client Bridge

想要連接,兩間房子的網路,失敗及成功方法

目的希望可以用無線的方式,分出網路到同一棟大樓,不同樓層,兩個陽台,目視可見,不用再重新申請網路

失敗經驗


目前的硬體,主要的 Router AP ,原廠韌體,接 HINET 家用光纖,放九樓陽台
RT-N18U




另一台放在不同樓層的無線 AP,刷 DD WRT 韌體,放四樓陽台
TP-LINK TL-WR1043ND V1




N18U
標準 AP 設定方式,另外固定無線頻道,我固定頻道 6,設定 WDS 可以連線的 AP mac address
Address 192.168.1.1 netmask 255.255.255.0
DHCP server on
DHCP 分配 IP 範圍 192.168.1.100 ~ 192.168.1.254
WPA2/Personal AES

WR1043ND

把 WAN disable
IP 位置設定 192.168.1.2
DHCP server off
Wireless mode 選 Client Bridged
SSID 及密碼和 N18U 相同

重新開機後,電腦,接 WR1043ND 的網路線,是可以上網,但是大約幾分鐘後,網路就會斷,用 telnet 連到
WR1043ND 的機器,去連線,也是一段時間後就會斷,可以由用網路線接 WR1043ND 的上網的電腦,重新取得 ip 連線,又可以回復

實際把上網電腦,設成固定 IP 及路由,也是無法連線,試著,在 WR1043ND 上面設定靜態路由,也沒辦法,

可能是我的網路概念,還不夠清楚,所以就放棄了,尤其覺得一開始都是可以連線,大約幾分鐘後,斷線後,一定要重新 DHCP 得到 IP
才能恢復連線,感到不穩定


最後成功方法解法很簡單,反過來

Hinet 接 WR1043ND 當成主要的無線 Router,反過來,N18U 開成無線中繼模式,這時用 N18U LAN 接著上網電腦,就可以連線了
速度,比一半,在少一點,不過堪用了

原來,原廠的韌體,簡單好用,少花一些時間,會在直接買一台,同牌的支援應該更沒問題

接了,賣家送的 8db 天線,真的有差別,訊號的強度,好很多,帶來的就是連線速度的穩定性

以上,簡單的經驗分享

2015-04-27

2015-03-08

掃地機器人 part 1

假日,來做一下簡單的玩具車

就老鼠板的概念

把家裡,一些沒有的東西湊合著做

材料

1. arduino 機板 Mega 2560 NT 320 ,可以用更便宜的

2. 便宜電機驅動板 NT 120

3. 馬達及齒輪組 x 2 NT 190 * 2,有 60 元的可以用

4. HC-SR04 x 2 NT 30 x 2

5. 一般的黏地滾筒 跟老婆要的

6. 不要的紙盒 老婆施捨

7. 數條杜邦線,自己還有


共花 320 + 120 + 380 + 60 = 880 (這一次,只有買馬達,及 arduino 板,其他都是原本就有的)

材料






組裝完




外觀




檢討

輪子,應該要內縮一點,這樣,障礙判斷會更精準

要有類似離開死巷的演算方式


PS: part 2 當然就是加吸塵了