這是什麼?
程式週記主要內容如下:
Gihub project 介紹:
- 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢
網路文章心得:
- 會寫些心得,強迫自己閱讀.
“程式週記”並且定期週期性更新.
大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下.
本週摘要
忙完了幾個研討會後,可以慢慢回歸正常的學習生活. 目前專注於研究 Kubernetes 的代碼與運作架構. 歡迎各位先進來討論討論 :)
此外,最近在籌辦新一次的 Golang 聚會 (Gopher Taipei Gathering ) 歡迎大家一起參加.如果發現報名報不到,歡迎參與閃電秀來分享一下 :p .
Go
fastcsv:
這個套件因為它支援的 csv 種類比較少所以能號稱比原生的 Enconding/csv 快上五倍.
有人因為 encoding/csv 真的太慢了,於是發了 issue
- Go: avg 1.489 secs
- Python: avg 0.933 secs (1.5x faster)
- Java: avg 0.493 secs (3.0x faster)
恩… 真的不快吧 XDDD 有興趣的可以進去 issue 裡面看更多的細節
iamduo/workq: Job server in Go
Golang 寫的 Job Scheduler ,具有一千多的 star
Introduction to OAuth on gRPC
透過 GRPC 的方式來串接 OAuth Server
[有用小技巧] 使用 gofmt 與 golint 將 snake_case 換成 camelCase
由於 Golang 還算新,所以許多人原本都是從 java 或是 python 來學 GO . 就容易在程式碼裡面看出一些蛛絲馬跡 ( 使用 python 的 snake_case 或是 使用 foo().bar().do() 這樣類似的用法.
這個工具可以幫你把 GO 程式碼裡面所有的 python snake_case 轉換成 camelCase.
golint |
awk '/should be/{printf("gofmt -w -r %c%s -> %s%c .\n", 39, $9, $12, 39)}' |
sh
coreos/dex: OpenID Connect Identity (OIDC) and OAuth 2.0 Provider with Pluggable Connectors
coreOS 開發出來的 dex 不僅僅支援 openID , OAuth 還可以快速的跟 Kubernetes 整合.
https://github.com/dgryski/go-lttb/commit/b13787546e2d18325b0222e9cad298a3943c7fab
[有用小技巧] 使用 gofmt 與 golint 將 snake_case 換成 camelCase
由於 Golang 還算新,所以許多人原本都是從 java 或是 python 來學 GO . 就容易在程式碼裡面看出一些蛛絲馬跡 ( 使用 python 的 snake_case 或是 使用 foo().bar().do() 這樣類似的用法.
這個工具可以幫你把 GO 程式碼裡面所有的 python snake_case 轉換成 camelCase.
gravitational/teleconsole: UNIX shell broadcasting tool
類似 tmate 有自己帶網路伺服器的 SSH console sharing 小工具.
透過一個自己建立的 SSH Public 伺服器,甚至可以提供防火牆內的使用者來分享自己的終端器介面.
此外,補充一下 原來不需要 tmate , tmux 跟 screen 就可以。
Python
How I built a Slack bot to help me find an apartment in San Francisco
這篇很有趣,他分享了如何透過自己寫的 Slack Bot 來幫自己找房子.
projectcalico/calico-containers: Project Calico deployed in a containerized environment
calico 是一個幫助你設定網路的工具(類似 ip addr 但是功能比較強大) .
Android/JAVA/NODE.JS/Scala
Docker
Kubernetes
Huawei Launches a Kubernetes-based Container Engine
Huawei 發表了他們自己的 Container Engine 稱為 CCE (Cloud Container Engine).市場似乎針對 NFV 因為高喊著極低的 CPU 與 network latency .
awesome-kubernetes
不少關於 Kubernetes 好的文章介紹. 不論從起源,如何使用,如何在 RPI 上面架設都有清楚的介紹.
Kubernetes Logging With Elasticsearch and Kibana
如何使用ElasticSearch 跟 Kibana 來串接 Kubernetes 的 log .
iOS/Swift
其他程式語言
論文收集
Majority agreement is not necessary for consensus
來自劍橋的博士生 Heidi Howard 針對 Consensus 演算法 Paxod 提出了一個相當有趣的見解.也就是在至少達成一個 commit 的狀態下,可以不需要達到 majority agreement (超過半數的同意) 就可以讓 Paxos 保有相當程度的穩定 (Steady state) 與可用性 (avaliability) .
相當有趣的論點,要好好找時間來瞭解一下. 同時相當推薦可以看看這個博士生的部落格,有著相當多對於 Consensus Algorithm 的研究.
網站文章
網站收集
有聲書/影片心得
Kubernetes Migration with Sheriff Mohamed
15 years company GolfNow share experience move from C# .Net to #kubernetes