March 11th, 2016
這是什麼?
程式週記主要內容如下:
Gihub project 介紹:
- 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢
網路文章心得:
- 會寫些心得,強迫自己閱讀.
“程式週記”並且定期週期性更新.
大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下.
本週摘要
本週花太時間在追如何使用etcd/raft.本來是打算用NSQ的管理方式,但是看了許久還是找不到他使用的方式.回過頭來使用raft.
Go
writ: A flexible command and option parser for Go
- 有點像是cobra,不過可以直接透過name tag 直接讓go structure 直接套入command option.
A command line client for Dropbox built using the Go SDK
- CLI tool for droxbox in Golang,這邊還有新的API An UNOFFICIAL Dropbox v2 API SDK for Go
kati: Google GNU make clone which is written by golang
- 可以透過kati來將makefile轉換成ninja用的檔案.
A repository for plotting and visualizing data
- 可以拿來換圖用的套件.
Stochastic flame graph profiler for Go programs
- 隨機產生火焰顯示profile你的go程式的結果.
Python
Android/JAVA/NODE.JS
Building Android Apps — 30 things that experience made me learn the hard way — Medium
- 作者分享在開發Android App裡面踩到的雷,這種經驗分享的文章,永遠都是我的最愛.
Yahoo Deep Learning Engine: CaffeOnSpark
- Yahoo最近開源的Deep Learning Engine,主要可以將Hadoop/Spark Cluster的資料抓取來使用.更多部分可以看他們的文章
Cross-platform Linux without the suck
- 可以讓你在Windows下面使用unix的console,而且又不像Cygwin那麼大.重點是用JS ES6寫的
Docker
Kafka (and Zookeeper) in Docker
- Spotify 開源docker image可以讓你快速架設kafka跟zookeeper.
One+ year feedback of using Docker and Swarm in DEV and QA environments — Medium
- 使用swarm經驗談文章.. 挺不錯的. 有教導如何透過swarm在dev <-> pre-prod <-> prod 之間切換的方法.
iOS/Swift
網站文章
Use CloudFlare to enable HTTPS on your Github Page hosted blog
- 如果你有使用Github page 去Hosted 你的 blog,這邊可以幫你加上HTTPS (SSL).如果是限制的連線數下,是免費的服務.
- 這邊有另外一篇文章也提到,不過他建議如果有用到custom domain name記得要把name server轉址.
- 這篇文章更提到其實本身的github.io已經有https,只是在CNAME支援上有些問題.如果再不使用CNAME狀況下,是可以直接跑的.有一些相關的設定可以幫助你更輕鬆使用.
How and when Ken Thompson started programming? Also, Ken Thompson [wa|i]s in reddit.
- 來看看C語言與Go語言的共同發明人 Ken Thompson 的小故事
一个有趣的实例让NoSQL注入不再神秘
- MongoDB可以透過網頁輸入NoSQL查詢語法,所以有漏洞因此而生.
AWS最新白皮書PDF下載”Building a Real-Time Bidding Platform on AWS”
Use CloudFlare to enable HTTPS on your Github Page hosted blog
- Github Page (ex: https://kkdai.github.io) 本身其實有HTTPS(SSL)的服務,不過如果你透過Custom Domain轉過來的話就會失效.這時候的方式就是透過CloudFlare來當CDN提供SSL的服務.
網站收集
有聲書/影片心得
本週專案
這邊會寫一些我的Project 52的成果.
本週專案: https://github.com/kkdai/raftrpc
本週繼續上週不敢挑戰的consensus,在還沒搞懂NSQ如何做的方式.
決定拿etcd的Raft來架設RPC Server.
本來想透過這篇文章來達成,不過context無法serialized.
回過頭去看etcd的raftexample,主要的重點是 raft需要另外一個http port 來架transport channel 來達到raft node 狀態交換.
如何導入raft到你的Project?
- Refer code from raftexample
- Get file listener.go, kvstore.go, raft.go.
- Do your modification for your usage.
note
raft.transport
need an extra http port for raft message exchange. MUST add this in your code. (which is peer info in example code)