這是什麼?

程式週記主要內容如下:

Gihub project 介紹:

  • 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢

網路文章心得:

  • 會寫些心得,強迫自己閱讀.

“程式週記”並且定期週期性更新.

大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下.

本週摘要

小孩子得了腸病毒,在家休養了一個禮拜.每天都在學習機器學習 (好像回文).

這次竟然花了兩個禮拜才整理出來,下週要改進.



Go

sourcegraph/checkup : Distributed, lock-free, self-hosted health checks and status pages

checkup 是一個 #golang 專門拿來做應用程式健康檢查 (Health Check) 用的工具.

你可以使用 JSON 定義要檢查的應用程式網路與方式 (TCP/HTTP) 然後使用 CLI 的方式來執行.

也提供直接在 Programming 處理的方式. 支援 HTTP, TCP (並且支援 TLS) 與 AWS S3. 運用層面相當廣泛的好工具…

他們也寫了篇部落格來解釋他們為何需要自行研發這樣的產品. Why we open-sourced our uptime monitoring system

heetch/LAPJV: Go implementation of the LAPJV algorithm

這個用來解決 Assignment Problem (任務指派問題)也就是將 n 個工作分配給 m 個人如何達到最大的有效的分配方式的問題.

一般而言的解決方式會是透過匈牙利演算法,而這段代碼使用了另外一個方式 Liner-Assignment-Problem Jonker-Volgenant algorithm 來大大的提升計算效能. 似乎無法找到論文(要錢),不過這邊有稍微講到如何做到 LAPJV .

astaxie/bat : Go implement CLI, cURL-like tool for humans

類似 httpie 使用 Golang 作出的 CLI curl 工具。 這個套件的作者 Asta Xie 也就是 BeeGo 的作者.

參考 Httpie 重新以 Go 來打造的工具,使用了 Go Routine 讓整個軟體更加具有效能.

noqcks/gucci : A simple cli templating tool written in golang

noqcks/gucci 使用 #golang 寫的 template 工具。 可以透過樣板的替換方式,來讀取系統變數或是執行結果。

EBOOK : Webapps in Go (without) framework

免費的 #Golang Ebook ,使用最基本的 built-in package 來建置 Go Web App.還有 Go 語言的基礎教學,還不錯的書籍.

pygo: Interpreters in Go and for Go

pygo: 用 Golang 寫的 Go interpreter ,這篇是介紹的 slide

TheNewNormal/corectl : CoreOS over macOS made very simple

TheNewNormal/corectl 可以讓你在 Mac 上面很容易的安裝 CoreOS VM ,想要學習 rkt 也會變得比較方便.

tidwall/finn: Fast Raft framework using the Redis protocol for Go

finn 提供了簡單的方式可以讓你架設 Raft framework 並且可以直接跟 Redis 串接.

狗洞

玩了一下對岸朋友今天介紹的這個狗洞(dtunnel),真的是很神奇的東西,也是Golang寫的開源軟件,剛剛測試了一下,有點嚇到,居然security group firewall什麼的都不用開就能p2p建立起tunnel,而且p2p mode速度還不賴!如果沒有安全疑慮的話,應該是一個很值得期待的東西。

Context package in Go

講解 Go 1.7 的 context 還有一些簡單的範例與使用方式說明.

gRPC Envoy Nghttp2 and Load Balancing

一個簡單的範例來講解如何讓 grpc server 來做 load balancing .

kfirufk/go-angular2-material-auth0-and-more : a starter kit for go and angular2 and other goodies

教學如何使用 Go 與 Agular2 從無到有來架設網站.

Slide: Utilizing the Go 1.7 SSA Compiler

講解如何調教 Go 1.7 的 SSA Compiler 來讓程式碼更快.順便也帶出了 SSA 的基本原理與 SSA 帶給 compiler 的相關功能.



Python



Android/JAVA/NODE.JS/Scala

在 2016 年学 JavaScript 是一种什么样的体验?

透過想從今年學習 Java Script 的問答來了解有多少種 JS framework .

GCPUG meetup 201610 - Dataflow Introduction

舒服二人組簡介一下Google在BigData Solution上的Dataflow



Docker



Kubernetes

PalmStoneGames/kube-cert-manager : Manage Lets Encrypt certificates for a Kubernetes cluster.

如何在 Kubernetes 中使用 Let’s Encrypt .



iOS/Swift



其他程式語言



論文收集



Machine Learning

Cross Industry Standard Process for Data Mining

很少會收集 Wiki,不過這篇清楚的講解了跨產業的 Data Mining 需資料處理流程.可以算是 Machine Learning SOP.

人工智能革命:为什么深度学习会突然改变你的生活

中文列表:

原文文章

[summarization] “A survey on transfer learning,” Sinno Jialin Pan and Qiang Yang « Birdman’s Blog

簡單介紹什麼是 Transfer Learning

Predicting Disk Replacement towards Reliable Data Centers

3萬台硬碟,來自兩家大廠,監測超過 17 個月,準確率 98%

Paper: Predicting Disk Replacement towards Reliable Data Centers

台灣資料科學愛好者年會: 一天搞懂深度學習 心得筆記

iHower 的心得,相當清楚的紀錄深度學習.



網站文章

辦一場自己在場的葬禮:一名軟體工程師的死亡習題

Pieter Hintjens 為 ZeroMQ 的創辦者也是眾所皆知的軟體工程師之一,在癌症末期的時候寫了 〈臨終協議〉(A Protocol of Dying) 更是讓人覺得寫得真好.

在 10/04 的時候,他簽下來安樂死的同意書在下午一點的時候選擇了安樂死.他在之前也辦過了生前喪禮,讓人無盡的緬懷他.

How We Switched Without A Hitch To A New API : 一個新的想法關於 JSON Diff

這篇文章主要講解某一間公司的 API 升級的方式,使用的人想要了解哪些 API 更改了造就回傳的 JSON 變動,哪些沒有變更.

所以這篇文章就變成很清楚地探討判別兩段 JSON 是否是相同的演算法討論.

如何敘述差異(Diff)

Longest Common Subsequence (hereafter LCS) 是裡面提到的概念,也就是針對兩個 JSON 的 DIFF,我們必須要透過最少的文字來敘述.舉例而言

  • [1, 2, 3] –> [1, 3]

我們都會說是 [2] 被拿掉了,但是卻有另外一種講法是 [2 +1] 然後拿掉原本的 [3]

求解出 LCS 的方式本身是一種 Dynamic Programming .

相似度 (similarity) 的敘述方式
  • 只專注在 Value 比對,對於 Key 值的變動不會改變. (Key rename)
  • 數值相似為 “1” ,不相似為 “0”
  • 如果是一個 List 就是取平均.
減少索引變動的差異 (Index Shifting)

對於索引變動的處理方式:

  • 重新排列組合,透過 Key 值的先後
  • 排列成環狀來比對,避免找過的在前面.
結語

程式碼在這裡

Api.ai vs Wit.ai (or is it Google vs Facebook?)

兩組自然語言網站的比較,蠻適合深入了解的.

漫谈Domain Flux僵尸网络

Zombie Network

Scaling Conversational Commerce

講解如何擴展你的 Conversational Commerce (交談式經濟)

opentracing/opentracing-go : Go implementation of the OpenTracing API

跟隨 Kubernetes 與 Prometheus 之後, 第三個加入 CNCF 的專案 OpenTracing ,可見他有多重要.

這裡有 CNCF 的官方公布文件: OpenTracing Joins the Cloud Native Computing Foundation

Orchestrating GPU-Accelerated Workloads on Amazon ECS

Docker包進NVIDIA CUDA Driver之後可以直接存取GPU資源

Our agile journey in GovTech so far

新加坡政府的 Agile contracting 很出名啊

申請 Let’s Encrypt 免費憑證讓網站支援 HTTP2

【高效自學術】如何找到一份「深度學習」的工作?讓這些資源充實你必備的知識!



網站收集

災害警示公開資料彙整

P2P with webrtc 確保來源網站,不會被 ddos 打死了

MIT 開放課程,介紹關於 AI 的部分

Redis性能问题排查解决手册

【HITCON TALK - 金融資安研討會】- 講師簡報公佈 | Hacks in Taiwan Conference 台灣駭客年會



有聲書/影片心得




Evan

Attitude is everything