程式設計週記[2016/02/19]: 新年新氣象,Go也要換成1.6

這是什麼?

程式週記主要內容如下:

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)

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與處理就是接下來幾週慢慢學習的部分.

https://github.com/kkdai/diskqueue

[Visual Studio] Using Visual Studio 2015 to remote debugging C++ on linux

##Toturials

Announcing the VS GDB Debugger extension or Chinese version Refer here to understand whole process.

Note and Gotcha

How to add ssh key from Windows to Linux server?

  • Use ssh-keygen.exe to generate SSH (SSH-2 RSA)
  • Upload ssh public key to server:
    • login to server
    • vi ~/.ssh/authorized_keys
    • Add public key content to this file with start ssh-rsa
      • Note: Don’t forget the line break in windows, remove them all.
    • Done
  • Use private key locale to double confirm it.

My VS debugger cannot stop on breakpoint ?

Visual Studio will call gdb remotely and use gdb related command to communication. ex: add bookmark.

So, your local file name must identical with the remote source file name.
(ex: local: main.cpp, remote: main.cpp)

If file name not identical, the debugger will not stop on your breakpoint.

Where is pscp.exe and plink.exe

Download them from putty page

程式設計週記[2016/02/05]: 聽說今年過年天氣是歷年最好,所以今天別commit了

這是什麼?

程式週記主要內容如下:

Gihub project 介紹:

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

網路文章心得:

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

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

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

本週摘要

比較少花時間在看一些教學影片,不過花了點時間把vagrant教學看完跟學了一下Go Vendoring

接下來要準備過年,要怎麼在國年能保持繼續寫一個專案就有點困擾我了.

Go

9 Things You Should Know About Go

  • 其實算是蠻基本的介紹,看完之後很推薦輔佐Golang FAQ來一併服用.

gophergala2016/goad: Goad is an AWS Lambda powered, highly distributed, load testing tool https://goad.io

  • 一個很方便可以透過AWS Lambda的方式來做網站的Load testing.
  • 啟動這個程式的時候,他會去透過AWS Lambda來跑起來你指定的幾個點來做Load testing,並且將最後結果傳回來做總結.

google/seesaw: Seesaw v2 is a Linux Virtual Server (LVS) based load balancing platform.

thewhitetulip/Tasks: A simplistic todo list manager written in #golang.

  • 這個包含前端的task web app都弄好有點酷

zquestz/s: “Open a web search in your terminal.”

  • 對於console熱愛玩家,應該很愛這個..

Docker 1.10 發布

  • 除了當初的content-addressable storage for images and layers,有個新功能docker update等等可以玩玩看. 這裡有官方部落格介紹可以看.

Python

pyjokes/pyjokes: One line jokes for programmers (jokes as a service) http://pyjok.es

  • 一打pyjokes馬上跳出一個關於程式設計師的笑話,不過用台語念好像還蠻酷的(拍joke).

pkmital/tensorflow_tutorials: “From the basics to slightly more interesting applications of Tensorflow”

  • tensorflow的教學與應用

Android/JAVA/NODE.JS

Introducing jQuery

  • 蠻基本的簡介,很適合補充基本常識用.

Docker

“How To Centralize Your Docker Logs with Fluentd and ElasticSearch on Ubuntu 14.04”

  • step by step 教導你怎麼透過Fluentd 跟 ElasticSearch 來整理所有的log.相當有價值得一篇文章.

Linux 容器技术史话:从 chroot 到未来-观点 ◆ 热议|Linux.中国-开源社区

  • 詳細記錄從chroot一直到windows container對於container技術的演進.進而展望未來.

iOS/Swift

CatchChat/Yep: Meet with Genius

  • 開源的Yep,Swift的上一個技術導向討論群組的App.整個UX很棒..

“Weekly Swift Language Gems, Tips and Tricks”

  • 一個C++/ASM的高手swift學習筆記,小訣竅跟一些好的Gems.很值得定期追蹤.

iOS Cookies: A hand curated collection of iOS libraries written in Swift

  • iOS開發者必收藏, 裡面分類好的Library都是用 swift 語言開發的 涵蓋有Image , Database, Permissions XML/JSON , UI/UX ….

網站文章

講義:Distributed Computing: Principles, Algorithms, and Systems

  • 大部分都是PDF的講義,如果要整本電子書還是需要購買.但是還不錯用.

从技术细节看美团的架构

  • 從一家電商公司的創始到熱門看他們的技術架構的演變.並且透過新的業務的產生對於整個技術架構的演變.

Various Linux performance material

  • 整理好了各種關於Linux Performance的一些材料整理.
谷歌如何测试软件
  • James Whittaker, 前微软架构师,是“How to Break Software”系列图书中好几部书的作者,现任Google测试工程主管,最近他写了一系列的关于谷歌如何测试软件的文章,本文为其系列的第二部分。
  • 裡面把軟體相關的工程人員切為三類: 軟體工程師,軟體測試工程師與測試工程師.其中軟體工程師與測試工程師就是我們一般熟知的,但是軟體測試工程師相當有趣,他負責寫程式碼,但是不架構新的東西只有重構與撰寫測試項目,極力讓測試的覆蓋度達到最高.

“HTTP 2.0的那些事”

  • 除了把HTTP寫得清楚之外.相關問題與演變出的來解決方式都有寫得很清楚.

手把手教你构建 C 语言编译器

  • 紀錄一下,有機會該看看.上次寫compiler跟loader已經是五專的事情.

关于 AlphaGo 论文的阅读笔记

  • 作者曾任Google 是一個數學的PhD,由他的角度來講解AlphaGo論文的角度與他方法論的.算是淺顯易懂,推薦大家有興趣可以看看.. 或是可以直接看論文
  • 這篇TechNews整理也不錯,不過就簡單了點.

如何自行架設 Parse API Server

  • 最近這種專題不少,挺值得推薦一看.

網站收集

caesar0301/awesome-public-datasets: An awesome list of high-quality open datasets in public domains (on-going). https://goo.gl/WZ8XAJ

  • 收集各式各樣的dataset,要做資料分析的學習很需要.

有聲書/影片心得

葉大教學課程: 研發者的虛擬機寶盒

  • 對於Vagrant一知半解的人,沒有想過VM能像Docker一樣操作的人.很推薦來看看葉大的影片教學.會蠻快有一些上手的範例跟基礎.

葉大教學課程: Ansible 實戰講堂

  • 同場加映,這些資料也很適合初始者看.

本週專案

這邊會寫一些我的Project 52的成果.

這一週主要把上週的寫的oxford-face的套件加上一個簡單(有套用viper的console app) oxford-dace-client

[Golang] 關於Go的Vendoring

起因

本來對於Golang的vendoring都是統一使用godep(如果比較大的專案),比較小的專案都直接使用go get來抓取dependency package.

但是由於Google Code在2016/01/25關閉了,所以常用的uuid沒得抓了.所以來試試看Go 1.5 開始的vendor experiment,順便做點記錄.

什麼是vendor experiment?

一般而言我們在使用Golang套件的時候都是很簡單的直接使用

import "github.com/kkdai/coapmq"

這樣只要編譯專案前先跑 go get -d就會把所有的相依專案都抓取最新的程式碼到你的GOPATH. 現在問題來了:

  • 引用的專案已經被砍掉了?
  • 引用的專案原作者或是維護團隊忽然決定大改API?
  • 引用的專案忽然出現意外的錯誤(break code)? (當然有可能是底層API被Google改掉)
  • 想要維護整個專案的穩定度

根據以上的需求或是要避免以上的一些問題.將你的專案Vendoring是必要的.而Vendoring的做法一般就是放一份你目前使用的相依套件的程式碼到 vendor目錄底下. 有可能是這樣

- vendor
  - github.com
	  - kkdai
		  - coapmq
		  - photomgr 

開始將你的專案轉換成可以使用vendor experiment

假設你現在有一個專案裡面用到了數個相依的套件(ex: mysqluuid (注意此鏈結已經失效) … )

建議流程如下:

確認你的專案是在GOPATH底下

不論是GO15VENDOREXPERIMENT還是govendor都是使用在GOPATH才能作用.所以請注意:

  • 專案一定要放GOPATH底下
  • 專案一定要放GOPATH底下
  • 專案一定要放GOPATH底下

如果不在GOPATH底下,將不會work.我想這也是godep或是GB能夠繼續讓大家熱愛的原因.

設定GO15VENDOREXPERIMENT=1

一開始得把這個flag打開,你可以先使用go env來查詢該flag是不是有開啟的狀態(初始是關閉,但是Go 1.6將會打開)

  • Mac/Ubutu: export GO15VENDOREXPERIMENT=1
  • Windows: set GO15VENDOREXPERIMENT=1

將你相依的專案列出來

這裡使用的是govendor,透過他可以將所有相依的專案.流程如下:

  • govendor init來初始化,並且將所有的專案寫入vendor.json裡面.
  • 這時候你可以透過govendor list來列出所有的相依專案,然後決定哪個要放入vendor資料夾
  • 假設你要把github.com/kkdai/coapmq放入vendor目錄中,就執行以下 govendor add github.com/kkdai/coapmq

依序把你需要的專案放在目錄中,然後就可以了.

如何透過Vendoring Experiment編譯檔案

將你需要的專案抓到GOPATH底下(必須),然後切記GO15VENDOREXPERIMENT=1,其實就簡單地跑go get然後go build就可以了.

其他Vendoring的用法

其實還有其他方式,不論是Godep或是GB 其實都各有愛護者,不過用的習慣與相關的使用場景是比較重要的.

相關鏈結

程式設計週記[2016/01/29]: Github被強國打趴,Parse將被獲利創新高的臉書收掉

這是什麼?

程式週記主要內容如下:

Gihub project 介紹:

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

網路文章心得:

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

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

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

本週摘要

下個禮拜就要過年了,手邊只好先挑些簡單然後好像跟公事扯得上一點關係的小專案來玩.本週只好先玩Project Oxford的Face API,下週會把相關App寫得更詳細.

Go

inconshreveable/ngrok: Introspected tunnels to localhost

  • 透過hole punching的方式將內部網站穿過防火牆與NAT分享出去.每個網站透過一個中間網站ngrok.com來達到打洞的方式.

dvyukov/go-fuzz: Randomized testing for Go

nlf/dlite: The simplest way to use Docker on OS X

  • 一個可以讓你更容易在Mac OSX下透過xhyve的虛擬方式使用docker的方式,會先在local建立一個VM所需要的檔案然後跑.不過消耗的硬碟空間有點大(預設至少要30G),還要再考慮一下.
  • 這裡有教學

Bidding farewell to Google Code

  • 這是去年的文章.. 不過時間已經過了(2016/01/25)…. Google Code已經關閉了.有使用go get Google Code的人.. 請注意.

Go 1.6 release party

  • Go team決定要使用software estimation的原力,來預告2016/02/17會舉辦Go 1.6 release party.這篇有順便預告了所有的新功能

Go 1.7 Plan

  • Go team決定好要在02/17舉辦Go1.6 release party之後,也順便開始了Go 1.7的計畫.這篇Google Forum有很清楚地討論,有興趣的可以進去仔細查看.

Visualizing Concurrency in Go

  • 不是很瞭解Go在concurrency上面的控制流程? 這篇文章全部都視覺化了…

Generate Free SSL Certs in Go

  • 使用Golang來架設一個免費的SSL Certs,這樣做一些內部HTTPS的測試就方便多了.

Automated Testing with go-fuzz by Filippo Valsorda

  • 這篇是教導go-fuzz的教學.go-fuzz可以幫助你產生fuzz testing,但是不是很容易上手.這篇範例算是簡單了,很推薦大家從這篇來入手go-fuzz

curl-to-Go: Instantly convert curl commands to Go code

  • 雖然我正在寫微軟的Project Oxford Face API wrapper 看到這種工具還是覺得相當的方便.直接幫你把Curl 指令轉換成Golang http.client的code.

ELM

Elm in 5 minutes

  • Learning ELM in 5 minutes video.

Python

jorgebastida/awslogs: AWS CloudWatch logs for Humans™

  • 將AWS的log變得比較親近與容易閱讀,並且支援group與filter的概念.可以讓你用比較lightweight 的方式來處理AWS logs (而不是使用ELK那些東西).

Android/JAVA/NODE.JS

Android 应用开发性能优化完全分析

  • 雖然這種題目隨便找就一堆,但是這篇整理得還不錯.

Tutorial: AWS API Gateway to Lambda to DynamoDB

  • 基礎教學如何導入AWS API透過Lambda 到 DynomoDB.

CSharp

Docker

透過 Vagrant 在 Azure 上面部署虛擬機器

  • 透過vagrant在azure上面來部署vm

How Container Clusters Like Kubernetes Change Operations

  • 透過Kubernetes用同一個 service,再搭配不同的 version、replica size 及 label,就能做到 canary deployment。

Running Docker Containers On Windows Server 2016 (Quick Start Guide)

  • Windows Server 2016 default support docker,感覺比較方便.
  • 也不用再管MingGW那種奇怪的path (ex: /c/ /d/ )與相關bug. 不過不知道%programfiles%會如何?

Docker SF Meetup January 2016

  • Docker Ecosystem 2016展望

iOS/Swift

How to detect whether custom keyboard is activated from the keyboard’s container app?

  • 在做一個custom 鍵盤嗎?想知道使用者有把你的鍵盤裝到了沒?很容易!(摘自: FB)
  • 其實,也可以用這個做法,但Swift + iOS 9目前有bug,不能用
  • 這篇算是整理的不錯,針對iOS 9帶來的Deep Link變革與相關的改變方式.

網站文章

數位時代: 創下單月 45TB 流量紀錄的個人專案: MyAudioCast

  • 其實我不常推薦數位時代的文章,因為大部分都是轉貼知名的網路文章.但是這一篇一定要推薦一下是因為這一篇是經驗談.發文的人為人稱海總管的海大.裡面有不少的經驗談,當這個個人專案遇到大量的流量開始,要如何轉變?如何scale?都是讓人可以好好學習的部分.

Nginx 的线程池与性能剖析

  • 清楚解釋了Nginx如何處理muliple request的方式,跟傳統伺服器不同的是Nginx會將多個request在一個處理器中處理。但是這樣會遇到接下來一個問題是如何處理block i/o? 這邊的方式透過thread pool的方式,將任何需要等待的block op (i/o or others)透過thread pool的方式來處理.就不會阻礙到後面排隊的其他task.

Microsoft releases CNTK, its open source deep learning toolkit, on GitHub

  • 相較於Google 開源Tensorflow,微軟也把他們的Deep Learning Engine CNTK(Computational Network Toolkit) 開源出來. 這一篇還有效能比較圖,可以看看.

真是佛心來的》Google 核心技術指導網路開課了,學費全免

  • Google 除了開源Tensorflow之外,還有開課告訴大家怎麼使用.挺值得看看的.

年会上的程序员们……

  • 某間軟體科技公司的尾牙用抽獎程式來抽獎,結果每個工程師都覺得這個程式有問題,於是尾牙開始一千多人來review code.這故事告訴我們,用簽桶當尾牙抽獎有多精準.

關於 Parse 服務準備關掉的一些因應措施

  • Facebook收購Parse之後,就一直沒有特別的動作.總算決定把它收掉(2017年),這是不是代表BaaS(Backend As A Service)開始式微?還是開始泡沫呢? 這篇文章告訴你該怎麼樣搬出來其中有官方的步驟也有一些個人的意見,相當有意義.

CVE-2016-0728 受災OS出爐,Linux核心漏洞影響大盤點

  • 近年來Linux kernel 最大的漏洞,只有有心人最多在30分鐘內就可以拿到root權限. 這邊有修復方法

有聲書/影片心得

IT公論: 188 美丽旧世界——从苹果 Music Memos 谈起

  • 這次有個來賓蠻特別的是負責教學生數位媒體跟聲學工程師TT,來談談Apple 的Music Memos算是挺有趣的題目.
  • 主要是從音質,操作方式與介面來討論這個App.也討論到iPhone的硬件與軟件在設計上如何讓使用者使用沒有任何困難.

本週專案

這邊會寫一些我的Project 52的成果.

本週題目,將微軟的Project Oxford的Face API implement出Golang.

https://github.com/kkdai/oxford-face

主要下週會開始針對這部份開始寫一個小的應用App

程式設計週記[2016/01/22]: 曙光女神的寬恕......

Picture from tweet.

這是什麼?

程式週記主要內容如下:

Gihub project 介紹:

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

網路文章心得:

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

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

本週摘要

本週花了不少時間都在閱讀RFC 7252, 7641總算根據draft RFC寫完CoAPMQ又得來煩惱下一個禮拜要寫什麼了.

Go

Introducing Apex

  • 大神: TJ Holowaychuk 也寫了AWS Lambda function manager for Go

dgryski/go-ddmin: ddmin test case minimization algorithm

Design Patterns in Golang: Singleton

  • Singleton在Design Patterns裡面是常用的pattern,但是在Golang上面其實架構上沒有太大的差異.只是這一篇有指出如果有threading (在Go稱為Goroutine)的話,需要有once sync.Once 然後透過 once.Do(func() { /*INIT SINGLETON*/ } 來呼叫.

Dave Cheney: cgo is not Go

  • Dave Cheney大大寫的文章,不過其實在不少地方都已經提到cgo不是Go,因為cgo主要是讓Go能夠使用c++的橋樑.當然還有透過SWIG的方式.

“Secret” interfaces in go

  • 關於interface的文章

CAFxX/pluggo: In-process plugin framework for Golang code

dvyukov/go-fuzz:Randomized testing for Go

  • 用來做隨機測試用的

google/gofuzz: Fuzz testing for go.

  • 用來做隨機測試用的,不過這是Google出的.

Python

samshadwell/TrumpScript: Make Python great again

  • 透過Python來撰寫的新的程式腳本”Trump Script”,語法最後一定要有”America is great.” XDDD

“Political Speech Generator”

  • Looks interesting, it also include a paper on it.

JAVA/NODE.JS

记一次 Node.js 应用内存暴涨分析

  • 先記錄起來.

“为Java说句公道话”

  • 王垠的文章爭議性一直都很高,而且又艱澀難懂.不過這次這篇蠻好懂的 XDDD.大意就是其實作者認為“Java可以解決95%的問題,另外5%可以使用比較笨的方法解決.”,所以新語言Scala與Clojure,都有一些方式可以透過Java原本支持的部分來達成.

tooling 让你从 jQuery 中解脱出来

CSharp

ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0

[舊聞] 如何將專案從C++轉成C# 以Dragon Quest 8為例

  • 這一篇主要是講解SQUARE ENIX如何將PS2上面的DQ8(Dragon Quest8)當時為C++的專案,移植到Unity的C#上面.不少技巧的,不過主要還是題目是DQ8我覺得很有趣.

Docker

Raspberry pi with Docker Swarm 跨網域溝通使用 network

  • Swarm有玩過,下週應該會開始來玩玩RPI Docker.

为什么Kubernetes不使用libnetwork

Getting started with Docker on your Raspberry Pi

  • 在RPI上面架設Docker並不難,重點是image要尋找能夠正常在Docker上面能夠跑的.裡面有提到建議要加關鍵字RPI或是ARM
  • 這邊有令萬一篇是中文的文章: 門外漢的 Raspberry Pi 2 運行 Docker

Docker Registry 的簡單安裝紀錄

  • 有簡單的教學可以教導如架設private的docker registry服務.透過架設私有的registry,你可以把一些比較隱密的docker image放在上面.

有聲書/影片心得

Exploring HTTP/2 with Go

  • 這一段影片很推薦,不僅僅有HTTP/2的基本介紹(從HTTP演變開始).
  • 結構上: HTTP/2每一個connection,可以切成多個stream,而每一個stream可以包含多個data frame.
  • 流程上: 一個Header交換,再來Communication之後就可以開始傳Data.
  • 根據這段影片,HTTP/2需要在安全的狀態下.所以這篇Go的指導有講到關於HTTPS的(ListenAndServeTLS)部分.
  • 使用上不會有差異(coding上),不過可以看到速度變快(因為connection 次數減少,加上header compression)

IT公論187: 「真想不到我为微信说了那么多好话。」

  • 聽眾反饋: 有講到台灣的行動支付的現況.不過台灣行動支付已經完全輸大陸一大截,所以在他們的角度來看會覺得台灣發展現況還挺慢的.而且竟然有那麼多的行動支付方案.
  • 恥辱柱方面: 百度貼”吧的”是一個論壇服務,但是因為被商業團體購買之後造成論壇的服務再也不中立.引爆點是因為有血友病的論壇,被藥商所購買了.整個論壇的走向就偏向了那個廠商,並且相當有商業性質.
  • iOS 9 beta : 最新的功能藍光調整功能(night shift),主要是參考了f.lux的功能.主要也是因為f.luxside loading(也就是透過MBA的Xcode可以安裝沒有上架的軟體).

網站介紹

程序员专用笔记 Quiver

  • 這個軟體還不錯用,看來可以支援markdown跟latex.不過我現在都直接放上blog,不然其實會考慮一下.

本週專案

這邊會寫一些我的Project 52的成果.

這個禮拜準備了CoAPMQ,主要的重點是讀熟draft RFC其實還挺好玩的.