Hello World
CodeTengu Weekly 碼天狗週刊
如果命運的齒輪沒有出差錯,CodeTengu Weekly 都會在 UTC+8 時區的每個禮拜一 AM 10:00 出刊。每週會由三位 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到感興趣的東西,可能下一期就有了。當然你也可以瀏覽一下前幾期的內容。
目前的 curator 陣容:
- @vinta - I failed the Turing Test - 科幻迷,但是最近在玩 God of War
- @saiday - Imnotyourson - 電量給我這種人用就是一種浪費
- @tzangms - Oceanic / 人生海海 - 最近真的都在玩薩爾達
- @fukuball - ImFukuball - 有新工作了,但歡迎直接挖角
- @mingderwang - Ethereum enthusiast
- @kako0507 - 熱愛嘗試新事物的前端工程師
- @chiahsien - 我們又要找 iOS 工程師啦!
- @uranusjr - Smaller Things - PyCon Taiwan 熱烈售票中。Shadowverse: uranusjr
- @kkdai - 態度萬歲 - Learning Deeply....
- @yhsiang
- @johnlinvc - 挑戰自動化家中電器
- @drumrick - 歡迎加入台灣 Kaggle 交流區
- @wancw
- @allanlei
你也可以關注我們的 Facebook、Twitter、GitHub 或 Open Source 專案,有很多 weekly 看不到的內容。有任何建議也歡迎來 Gitter 聊聊。
@saiday
Embedding Kotlin Playground
有看過 Kotlin 文件 的人應該都被它那個可以直接編輯跟執行的 embedded playground 驚豔過。
現在你也可以嵌在自己的頁面了,除了手動加入 <script> 外,也有提供 WordPress plugin。JetBrains 也表示他們會提交 Kotlin Playground 到 Embedly,而因為 Medium 是用 Embedly 來整合嵌入內容,所以到時候 Medium 也就可以用了。
目前支援的語言有 JavaScript, Kotlin, Java:
Modular iOS: Strangling the Monolith
沒想到會在 iOS 開發看到 Monolith 這個詞。作者想要把一個 iOS app 根據功能拆成不同的 project 再用 workspace 整合起來,就像是隔壁棚的 Microservice 那樣,哇,這個夠創意!
這個系列實在很特別,用這個角度去看 project 的設計,會重新認識一些東西。
Structure of a Flask Project
作者發現很多人學 Flask 會參考 DigitalOcean 的這篇 How To Structure Large Flask Applications。而這篇有個不好的示範,在 root __init__.py 就 import 了其他 package 會用到的 module 來建 instance,package 再從上層 import 來用,這樣發展下去就容易有 cyclic dependency 的可能。
這篇在談的主要概念其實跟 Flask 無關,只是 Flask 沒有預設的 project folder structure,會需要知道一些觀念跟 best practice。文章列舉了兩種 folder structure 的建議,以正視聽。
@kkdai
GopherConSG 2018 所有演講錄影
GopherConSG (Singapore) 2018 的全部錄影內容,前兩天才結束的 GopherConSG 2018 總算有錄影內容了.
幾個重點推薦:
Google 官方的 Kubernetes Podcast 上線啦....
如果你跟我一樣,喜歡在通勤時間聽聽科技 Podcast .
那麼你不能錯過這個在 KubeCon EU 2018 公布的官方 Kubernetes podcast.
為何會到現在才有官方的 Kubernetes Podcast? 因為其實一開始 Kubernetes 這個題材都是放在 Google Cloud Platform 的 Podcast 之中. 但是隨著市場越來越大 (AWS EKS, Azure AKS 的上線) ,其實還真的蠻需要有個專門討論 Kubernetes 的地方.
第一期找來的 Kubernetes Community Head - Paris Pittman 來討論,大約的議題如下:
- 身為 Community Head 的責任.
- Kubernetes 社群各種討論管道
- 並且討論 Kubernetes 許多功能是如何在社群裡面決定
蠻多有趣的內容
Prometheus 2.0
KubeCon/CNCF EU 2018 keynote : Prometheus 2.0 announcement
重點整理:
- 更好的 TSDB 支援
- 更低的 (接近 1/2 ) CPU/MEM 消耗
- 監控的 process 如果死掉,會加上 termination marker
Google 開源他們內部在使用的 container runtime 具有 user space sandbox kernel
五月的各大科技論壇開始了,遠在歐洲的 KubeCon EU 最大的新聞就是 Google 開源了他們的 user space sandbox kernel container runtime "gVisor"
針對了 container 安全性比較疲弱的缺點, Google 開源他們內部使用許久的 container runtime .
補充:
- 如果 gVisor PM 的講解還不是很清楚的話,可以看看 Ian Lewis 所講解的 gVisor 針對安全性提升的 demo
Open Source at Google Cloud Platform with Sarah Novotny | Google Cloud Platform Podcast
最近聽的另外一個 Tech Podcast: GCP Podcast
採訪的人 Sarah Novotny 職稱相當有趣,叫做 "Head of Open Source Strategy for Google Cloud Platform"
這個職稱要負責管理 GCP 相關元件的開源策略,並且要幫忙經營相關的開源並且讓公司能夠透過開源來獲利.
這個人同時也是 Kubernetes 開源的推手與策略管理的頭,這邊採訪同時也討論到 CNCF 相關運作 (Sarah) 同時也參加 CNCF 相關會議與運作.
想知道 Google 內部如何透過開源來賺錢嗎? 這篇可以聽聽看
@allanlei
Kubernetes on Digitial Ocean
Digital Ocean has taken notice of rise of Kubernetes and is now also planning to offer it as a service. This is great news for companys who are looking to cost save or developer just wanting to startup a basic cluster without breaking the bank. $5 for 1CPU,2 5GB disk, and 1TB bandwith is pretty hard to beat. Combine it with their other offerings like Load Balance, Spaces, Block Storage and its quite hard to beat.
Hopefully Digital Ocean gives the big cloud providers a run for their money.
PS: They are open for early access. Go sign up!
Integrated Geolocation on Google Load Balancers
Google introduced support for custom HTTP headers on their load balancers and provide some pre-defined variables, notibly geolocation related headers such as client_city_lat_long for latitude, longitude. With this, backend servers no long need to load a large (and probably licenced) database to resolve an IP address.
kubectl port-forward to non-pods
It's finally here! Port forwarding to something other than a pod. As of 1.10, you can forward to Pods, Deployments, Services, almost anything with a selector. All that is left is binding to something other than localhost.
工作機會
Senior Backend Developer at Swag
薪資:年薪新台幣 100 萬元以上。
基本條件:
- In-depth knowledge of Python or Node.js
- Experience with Python web frameworks, ie. Flask/Django/Tornado
- Utilized work queues for background processing
- In-depth knowledge of MongoDB, Redis, and Kubernetes
- Excellent understanding of HTTP
- Experience developing REST APIs