這是什麼?

程式週記主要內容如下:

Gihub project 介紹:

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

網路文章心得:

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

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

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

本週摘要

這個禮拜看了不少有意義的網路文章- “如何在四十歲後繼續從事軟體開發“ ,剩下的時間就拿來做一些有意義的專案.流浪動物領養的 Line 機器人.希望能夠幫助到一些流浪動物.

Go

Go best practices, six years in

作者分享學習 Golang 六年後(喔!一開始就學) 的一些實際演練上的好範例.

hashicorp/raft: Golang implementation of the Raft consensus protocol

其實不少使用 Raft 的套件,不一定都是使用 etcd/raft 可能都是使用這套.

A lightweight web toolkit

不少人一直都在詢問有沒有好的 #‎Golang Web toolkit ,這個 goserv 看起來還不錯.剛剛在 05/03 達到 1.0 正式版的 goserv 提供以下的功能:

  1. Fast & Lightweight
  2. Flexible Routing
  3. Centralized Error handling
  4. 跟原生 net/http 是相容的

並且可以很快速的架設 File Server,也可以很快速地透過 MongoDB 架設 REST Server 大家可以看看有沒有符合需求

Go and Quasar: a comparison of style and performance

Go Channel與 Java Quasar 的執行效率比較. 看起來 Go chennal 還是好上不少.

Solving ring-shaped problems with Go’s container/ring

想要解決環狀鏈結的相關問題需要自己實現相關的資料結構嗎? 其實 Golang 本身就有提供 container/ring鏈結) 可以幫助你解決類似的問題.

dgryski/go-tsz: Time series compression algorithm from Facebook’s Gorilla paper

從 Facebook 的 Gorilla 論文中找出的時間序列比對演算法. 值得找時間好好學習. 更多細節在這裡可以看.

Go Testing Technique: Testing JSON HTTP Requests

The Micro Bot - ChatOps for microservices

jsgoecke/tesla: Provides a wrapper around the API to easily query and command a Telsa Model S

提供一個可以操控 Tesla S 的 #‎golang 裡面有個介紹網頁,並且使用語音透過 Amazon Echo 來操控 Tesla S 自動開出車庫

NYTimes/openapi2proto: A tool for generating Protobuf v3 schemas and gRPC service definitions from OpenAPI specifications

NYTimes!!! 恩,你沒有看錯.是紐約時報的 NYTimes 其實發佈了相當多好用的 Golang 專案,不論是 Microservice Kit “gizmo” 或是 Zip 的 middle wrapper “gziphandler” 最近他們發佈了 openapi2proto 可以將 OpenAPI或是 Swagger 的定義檔轉換成 Protobuf v3 給 GRPC 使用.

讓我又為了這家公司而驚艷!

tumblr/Collins: Infrastructure management for engineers

透過 go-github 來完成的 Collin

Python

Tutorial: How to build a Facebook Messenger bot using Django, Ngrok

教學文章: 如何透過 Django 來建置一個 Facebook Messenger 機器人.

Android/JAVA/NODE.JS

xat/castnow: commandline chromecast player

透過 CLI 來操控你的 ChromeCast.

(geekforbrains)作者從 Python 換到 Node.js 一年後又決定換回來的感想

作者提出不少在 Node.Js 遇到的困難:

  • Easy to learn, impossible to master
  • Good luck handling errors
  • Callbacks, promises or generators!?
  • Bad standards

最後作者建議 Java Script 比較適合前端開發,對於他而言 Node.JS 適合比較小型的後端開發. 最後作者決定回到 Python 來開發後端控制的部分.

Docker

iOS/Swift

Building a native tvOS dashboard app

一個教學文章,如何透過 Swift 來建立一個 tvOS 的 App

網站文章

Being A Developer After 40

因為這篇文章實在太棒 (可能心有戚戚焉 XD ) .好好的拜讀後,並且好好地拿出每一個項目來自我檢討. 本來只想寫個導讀,但是導讀也太長了 Sorry…

[心得] Google、FB、LinkedIn new grad 面試經驗

一個機器學博士的面試各大公司的經驗,是不是一定需要有強大的 coding 經驗與能力呢? 挺值得一看.

傲慢与偏见——谷歌中国逆袭史

Google 當初被大陸封鎖並且退出中國市場後,百度趁機串起.許多人其實都認為百度可能無法正面打敗 Google ,這篇文章講解了許多分析告訴你,百度就算正面面對著 Google 搞不好也不會輸. 從流量,收入來看,甚至當時的 Google 在許多在地化的資訊與中文處理上還是比不上許多在地的搜尋提供商.

A Look at How Postgres Executes a Tiny Join

可以清楚瞭解 Postgres 如何去處理 Tiny Join .

幫自己的職涯做成長駭客

不少最近熱門跟求職文章的心得整理

洪士灝: 寫程式之外,傑出軟體工程師所需的六項能力

好文章,個人認為第一項能力面對任何陌生的程式語言(也可泛指為新的系統,新的知識) ,保持自我的好奇心並且終身學習是身為軟體工程師最重要的能力之一. 而第二項能力代表著好的軟體工程師所具有問題分解與理解的能力.也是洪老師常常提到的” 解決困難問題” 的能力.也是另一個面向的重要能力之一. 而 三~五項能力就比較像是 better have ,而不像前兩項能力哪麼的必要. (不過通常有著前兩項能力的人,很難沒有後面三項能力.)

10 SQL Tricks That You Didn’t Think Were Possible

列出 10 個 SQL 的訣竅,很值得好好學習.

網站收集

Collection of linux sysadmin/devop interview questions

Linux System Administrator 面試的題庫,真的都不簡單啊.

HackNTU iOS 課程

iOS 課程免費公開.主要以 Swift 為主.

Google for Education

Google 的程式設計教學網站.

有聲書/影片心得

有了 Agile,為什麼還要有 DevOps?

William Yeh 大大的課程,包含投影片跟相關影片.

Reverse Engineering Facebook with Alex Hogue

透過你的臉書聊天狀態列,來分析你朋友何時睡覺跟起床.這是非官方的 API 算是一個很有趣的 Hacking . 詳細部落格在這裡

Kubernetes, Docker, and the Distributed Operating System with Kelsey Hightower

這一篇透過 Google 的工程師來介紹由他們開源的 Kubernetes 系統,不僅僅有簡單的說明與介紹.並且也有淺顯易懂的差異比較與各類功能介紹.

本週專案

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

流浪狗領養 Line 機器人

收容所的狗,每一隻其實都曾經是你我的寶貝.他們透過不同的原因進了收容所,卻因為得不到適當得收容得要走向安樂死的路.

這就是我寫這個 Line 機器人的原因,希望大家有事沒事可以滑滑 Line 看看有沒有你喜歡的朋友,一起帶他回家好嗎?

整個機器人架構主要是透過 Golang 來寫,並且架設在 Heroku 上面.如果你也想要架設自己的 Line 機器人,不仿看看我的另外一篇教學文章.

主要功能:

目前僅僅支援顯示台北市流浪動物資料,並且顯示該動物圖片.打入任何文字就會依序顯示.


Buy Me A Coffee

Evan

Attitude is everything