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,電影院,或是百貨公司的從業人員

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

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

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 天線,真的有差別,訊號的強度,好很多,帶來的就是連線速度的穩定性

以上,簡單的經驗分享

掃地機器人 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 當然就是加吸塵了

錢薄了,不是房子貴了

現在的小吃,或是零食餅乾,紅豆餅所有的東西

那一樣,沒有比小時候,漲個兩三倍,或是包裝換了

把內容量變小,或是重新取新的名字,加價賣

假如,錢變小的,大家薪水沒有跟著漲上去,就是政府的問題

如果,是錢沒變薄,房子卻變貴不少,再來說炒作的問題

在台北市的精華地段,確實早就有這些問題,這不也是,政府

刻意營造的結果,大興土木,交通便捷,就業績機會豐沛,不往這裡擠,

別的地方賺不到錢呀,這個膝蓋想也知道

只要地方的經營,和建設有跟上,資源分配有合理,而不是一昧的炒作土地的利益

自然炒作,變得沒有利益,假如嘉義人住嘉義,或是花蓮人住花蓮,月入數十萬,我幹嘛沒事離鄉背井,上台北

就像是,河裡有金砂一樣,再遠,大家也會不辭路途遙遠,爭相來掏金

現在就是,有金砂的地方太少了