February 19th, 2016
這是什麼?
程式週記主要內容如下:
Gihub project 介紹:
- 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢
網路文章心得:
- 會寫些心得,強迫自己閱讀.
“程式週記”並且定期週期性更新.
大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下.
本週摘要
過年後開工的第一天,花了點時間思考要怎麼繼續我的Project 52.一開始的幾天也都在玩Docker 1.1 跟其他的部分. 接下來應該會努力地學NSQ的Diskqueue,來練習徒手打造NSQ.
此外,本週也玩了一下蕃茄鐘工作法,覺得相當有意思.詳細的新的應該會另外寫成一篇文章.
Go
sarama: Sarama is a Go library for Apache Kafka 0.8
- 建立與Kafka溝通的Log client for Go
- 這篇文章有提到Kafka與相關應用.
TritonHo/meow: It is a demonstration of writing a powerful but simple framework for RESTful service
- 類似Java Spring一樣的完整framework。
- 目前已經整合的功能:
- 身份驗證的middleware(jwt)
- 阻擋重覆請求的intercepter
- database session manager
- validator
- http binding(支援partial update)
- ORM(垂直整合binder,能完整支持partial update)
meshbird/meshbird: Distributed private networking http://meshbird.com
- 可以在server間,VM間,甚至是container之間建立私有網路.讓所有的單獨節點可以串在一起.就像有一個私有網路一樣.
doug-martin/goqu: SQL builder and query library for golang http://godoc.org/github.com/doug-martin/goqu
- Golang 的SQL Builder,支援Postgre, MySQL跟SQLite3.不錯使用.整個很容易上手.不過MySQL 要求
sql_mode=ANSI_QUOTES
先去問問看原作者吧.
Go Mobile: next generation mobile apps
- 裡面很有趣的點子是透過Go mobile 作為跟Go Server溝通的底層或是傳送給Server前的資料處理.
Python
dbcli/pgcli: Postgres CLI with autocompletion and syntax highlighting
- 可以console下面做到postgres autocompletion, syntax highlight.. 很酷的工具.
Android/JAVA/NODE.JS
ParsePlatform/parse-server: Parse-compatible API server module for Node/Express
- Parse 官方的Server code.這個要搭配一下這篇文章Parse 2.0
Docker
Docker 1.10 Highlights and Demo
- 不少Docekr 1.10的功能介紹跟一段demo 影片.
iOS/Swift
Running Swift within Docker
- 建立一個可以baked-in Swift的docker image
alanfeng99/firebase-image-uploader
- 範例 (in Swfit):透過 Firebase 儲存以及讀取圖片
網站文章
HOW TO SURVIVE AN ACQUISITION: 被收購後如何生存
- 由Parse的PM寫來的血淚史,轉述著被Facebook收購後的想法.
- 首先收購都是具有破壞性的,不論是任何一種.試著調整心態來適應新的文化與環境.
- 你的產品再也不是你的產品,而是“strategic alignment”(找不到很好的中文來翻譯).
- 你的客戶也不是你的客戶,公司會調整你的資源來支援你的客戶.
How We Release So Frequently: 如何快速部署
- 對於WebApp的開發,這篇文章點出了一些漸進式開發的方法.幾個守則如下:
- 對於欄位改名: (ex:
A->A'
)- 新增一個欄位
A'
,然後讀舊READ A
的.但是兩個都寫WRITE A, A'
. - 增加另外一個batch task把舊的資料
A
複製到新的欄位A'
去(避免lock) - 把讀取舊的關閉
READ A
,同時只寫入新的欄位WRITE A' ONLY
- 最後把舊的欄位砍掉
drop A
- 新增一個欄位
- 對於新的功能(Feature):
- 使用者不應該感受到立即的顯示先的東西,新功能應該要預設是隱藏的,直到完整測試後才去顯示出來.
- 不輕易的rollback 整個release,即便其中一個功能有問題.
- 透過亂數的(1~100)session來控制多少功能被使用者看到,1~10 是有危險的,11~100是安全的.所以只會有10%使用者看到並且使用到有危險的.不過透過測試與修復後應該所有功能都是安全並且被控制的.
- 不要有過長的新功能開發週期,需要開發一部份就進入避免
發布焦慮(release anxiety)
.
- 對於欄位改名: (ex:
htop - an interactive process viewer for Unix
- 一個更好的,可以互動式的Unix process viewer(類似top),這裡有source code
韩剧《幽灵》中的黑客工具都有哪些?
- 算是近年來對於電腦技術有提到的影集中算是詳細的.不少駭客技巧都是在裡面都有提到.
一個人的DevOps
- 『我覺得最好的改進是讓人感覺不到與過去有什麼不同』,但實際上已經改變了,正開始過著新的美好生活。
- 這句名言相當重要,也代表著好的DevOps應該要努力朝向這部分.
臉書: Yung-Lin Alan Ho 關於Kafa應用
- 雖然作者說把Kafka拿來做基本的應用,但是其實有不少的架構也是很特別的.
- Kafka -> samza -> azkaban
- MySQL Op Log -> Kafka -> Apache Lucene
- 作者提到的Google 技術也值得一看:
強震即時警報 APP「KNY台灣天氣」開發經驗談
- 02/06 台南跟高雄強度六的地震後,地震預報變成大家最擔心的事情.這篇是作者的開發經驗談.作者Kny Chen 目前是現任中華民國 App 跨界交流協會理事長、台灣開放資料聯盟副會長.
- 這樣的App開發絕對不能是個人的工作,政府一定要帶頭下去做讓資訊傳播與Message Notify 能夠更即時.
- 個人有下載過這個App算是資訊相當的快速.
Top 50 Programmer Phone Interview Questions with Answers
- 五十個程式設計師常被詢問的面試題目,其實都是觀念題雖然不難但是還是需要時常複習避免那個霎那想不起來.
Hunting Down Phantom Write Spikes in RDS Postgres
- 遇到幻影般的大量寫入發生,這篇文章提供不少可以開始尋找原因的方向與經驗談.
- 最後問題可能是出在Postgres的GIN Index
Stack Overflow: The Architecture - 2016 Edition
- Joel Spolsky被大家廣為熟知的就是他在微軟的時候眾多知名的專案管理文章,他在2008創立的Stack Overflow 現在應該已經是每個工程師的預設網頁.這邊揭露出來原來stackoverflow 的伺服器架構.裡面大部分都是透過微軟的生態圈,不論是IIS或是SQL Server.
- 也建議讀這一篇gslin大大的介紹文
番茄工作法學習
這個禮拜花了點時間把番茄工作法看了一下,並且學習.以下簡單記錄一 下:
相關文章與工具
李開復: 【幫助增加注意力的番茄時鐘法】
- 一些簡單的摘要,建議從這裡開始.
多工傷腦 藥命效應與番茄時鐘法
- 也是摘要整理文章,挺不錯的可以看看.
電腦玩物: 番茄土豆: 番茄鐘 + GTD 夢寐以求的時間管理利器
- 這個App看來不錯,正在練習測試看看.
電腦玩物: 幫 Evernote Trello 奇妙清單加上番茄鐘的 PomoDone
- 這會是下一個測試的部分,整合進我目前有的Trello清單.
網站收集
有聲書/影片心得
本週專案
這邊會寫一些我的Project 52的成果.
本週開始會有連續幾週都開始寫Diskqueue的相關project,主要是要好好的研究NSQ的Diskqueue.
說回Diskqueue,裡面這段的Loop程式碼真的相當的棒.整個處理方式是相當的漂亮.
這一段小小的select卻是所有 message queue處理的核心.還有整個diskqueue的檔案處理真的相當的棒.
本週專案 Diskqueue,從頭開始練習寫Diskqueue.不過第一週的部分只有一個檔案一個message,細節的檔案seek與處理就是接下來幾週慢慢學習的部分.