這是什麼?

程式週記主要內容如下:

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

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?

  1. Refer code from raftexample
  2. Get file listener.go, kvstore.go, raft.go.
  3. 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)

Evan

Attitude is everything