Quantcast
Channel: CodeTengu Weekly 碼天狗週刊
Viewing all articles
Browse latest Browse all 109

CodeTengu Weekly 碼天狗週刊 - Issue 115 我給你一個禮拜的時間查問題,明天就要修復 - Feb 5th 2018

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

只要命運的齒輪沒有出差錯,CodeTengu Weekly 都會在 UTC+8 時區的每個禮拜一 AM 10:00 出刊。每週會由三位 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到感興趣的東西,可能下一期就有了。當然你也可以瀏覽一下前幾期的內容

目前的 curator 陣容:

你也可以關注我們的 FacebookTwitterGitHubOpen Source 專案,有很多 weekly 看不到的內容。有任何建議也歡迎來 Gitter 聊聊。

偶爾致力於解決開發者之間的資訊不對稱

@vinta

Timezone in Python: Offset-naive and Offset-aware datetimes

關於 datetime 和 timezone 的處理可能是每個軟體工程師遲早都會遭遇的難題之一,以前一直沒有搞得很清楚,前陣子總算有時間稍微整理了一下 timezone 在 Python 裡需要注意的地方。跟大家分享一下。

之前幾期的 issues 裡,其他 curator 也都不約而同分享過 Falsehoods Programmers Believe About XXX,其中就有幾個主題是「時間」,有興趣的人可以翻一下。

延伸閱讀:

vinta.ws

MongoDB Query Performance over Ranges & Indexes that Help

上禮拜換了新工作,負責解的第一個 issue 就是改善某個複雜的 MongoDB aggregation 的效能。雖然對 MongoDB 還不是很熟(只有在第一份工作用過一陣子,而且後來就改用 PostgreSQL 了),不過遇到 slow query 問題的起手式基本上都是先 explain 一下,從 queryPlannerexecutionStats 欄位可以知道哪個 stage 的哪個 query 用了哪個 index、掃描了多少數據和回傳了多少數據。最後透過修改了 query 的寫法並且加了一個「欄位順序正確」的 compound index,總算成功地把執行時間從 1.x 秒降到 0.01x 秒。

這篇文章講的就是「欄位順序」對 MongoDB 的 compound index 的影響。作者還給出了一個簡單的判斷方式:

The order of fields in an index should be:

  • First, fields on which you will query for exact values.
  • Second, fields on which you will sort.
  • Finally, fields on which you will query for a range of values.

延伸閱讀:

mlab.com

Spark 2.x Troubleshooting Guide

這份簡報和延伸閱讀的那篇文章列出了許多 Apache Spark 在使用上常見的問題和解法,這陣子在用 Spark 做推薦系統的時候,幾乎把這些地雷都踩過了,如果可以早一點讀過這些資料就好啦。

題外話,如果你也是用 Google Cloud Dataproc 跑 Spark cluster 的話,千萬記得可以用 Preemptible VMs,能夠省下不少費用。不要像我一樣白白被多收了好幾百塊美金,心寒啊。

延伸閱讀:

slideshare.net

Learning at work

這篇文章是 Stripe 的工程師分享的「如何在工作中學習」的文章。不過重點其實不是如何學習,而是「在工作中」學習。

畢竟要求每個工程師都應該在下班之後還要花很多時間學新技術、開發 side project 或是貢獻 open source 專案其實是不太現實的嘛。而且一天工作 8 小時,但是可以真的進入 mindflow 專心寫程式的時間可能連 4 小時都不到(我承認我超少)。有時候可能是狀態不對或是你就是欠缺完成任務所需要的知識,這時候與其硬幹、用 workaround 或是產出一些自己都不明所以只是剛好能動的程式碼,那還不如好好地利用上班時間,仔細鑽研一下你要解決的問題、搞懂那些你之前沒搞清楚的東西。再不然也可以重新審視一遍那個你剛剛解決的 bug 的 root cause,因為每個 bug 其實都是一個學習的契機啊。

就像陈皓說的「多些时间能少写些代码」,共勉之。

jvns.ca

@kkdai

[好文介紹] Scaling Kubernetes to 2,500 Nodes

最近比較忙碌,都只能夜深人靜才能好好的來閱讀一些文章來充實自己.(公司牛人多到像牧場,只好不斷努力 lol)

OpenAI 最近有一篇技術文章,相當的值得一讀.就是他們分享他們如何管理超過 2500 個節點. 當然我們都知道,

Kubernetes 自從 1.6 之後就號稱可以乘載 5000 個節點以上,但是從 數十台到 2500 台的路上,難道不會遇到一些問題嗎? 這篇文章分享了,他們遇到的問題,試著要解決與懷疑的地方,最後找到真正的問題.這篇文章適合所有 DevOp 好好的熟讀.

(公司目前在找 FE/BE Engineer, Data scientist 有興趣的可以來聯絡我喔

evanlin.com

The State of Go 1.10

Francesc Campoy 在 FOSDEM 上面講解 Go 1.10 上面修改的部分與未來方向..

對了 FOSDEM 2018 有很多好的 講題

speakerdeck.com

[論文導讀] The Case for Learned Index Structures

剛好最近有幾次機會可以去工研院開會的路上,在高鐵的路途上可以好好的來欣賞這篇文章.這篇文章是由 Google Brain 的大神 Jeff Dean 連署的論文之一.講的是透過 NN 的方式來讓大家熟知的 B-Tree, Hashing table 甚至是 Bloom Filter 更有效率...

2018 年第一篇好好閱讀的論文,當然要獻給有深度而且相當有趣的這篇文章.The Case for Learned Index Structures .主要的原因有以下:

Jeff Dean 是誰? 快來看他的 Quorahttps://www.quora.com/What-are-all-the-Jeff-Dean-facts

  • 他看得懂, 也寫 Binary code
  • 他的 PIN code 是 Pi 末四碼

這系列導讀,我寫了上下集.下集在這裡

evanlin.com

@johnlinvc

Stimulus Framework

百家爭鳴的 FE 界又多了一個名門之後。Ruby on Rails 的開發者 DHH 最近推出了新的 JavaScript framework, Stimulus.

設計的核心概念相當有趣,相較於 React.js (不含 redux) 專注在 MVC 中的 View ,Stimulus 專注在 MVC 中的 Controller 部分,把 Model 的 data 和 View 都交還給 HTML 本身。延伸了之前的 turbolinks 的概念,和伺服器的溝通不是透過 JSON, 而是直接回傳 HTML。裡面也可以看到很多 DHH 的 Rails 哲學慣例大於設定,讓常做的事變得簡單。

有興趣的人可以照教學裝來玩玩看,不過官方推薦使用的線上編輯器 glitch 真的有 glitch,沒辦法跑 Stimulus 用到的 babel-plugin-transform-class-properties。要玩的人還是在自己的電腦上裝 吧。

github.com

軟體複雜度正在殺死我們

身為程式設計師,最重要的工作是什麼呢?寫出好 Code?

作者認為程式設計師最重要的工作就是產生(商業)價值。做購物網站最重要的就是能購物,而不是與 babel 和 npm 對戰。和沒有銀彈提到的一樣,很多時候開發軟體的附屬複雜性還是太高,讓我們花了很多不必要的時間。最近 IFTTT 等低程式碼平台的流行 ,讓我們軟體工程師必須要反思:我們有把時間花在最重要的事情上嗎?還是都拿來做一些附屬性的工作 (修 dependency 等等)?畢竟很多的工作用 IFTTT 瞬間就搞定了,自己來做卻連 npm install 都還沒跑完。

好的程式應該要像 Larry Wall 說的一樣

Easy things should be easy, and hard things should be possible.

simplethread.com

Chaos Engineering

在這個 micro service 與 distributed system 當道的世代,容錯變的越來越重要。 Netflix 之前推出的 Chaos Monkey 帶來了一個嶄新的概念。如果我自己在系統裡隨機產生各個問題,不就能知道系統夠不夠穩定嗎?Chaos Monkey 如其名,會隨機在雲端服務上關掉 VM 或 Container,強迫系統在設計時就考慮到最糟的情況。

Chaos Engineering 延伸了這個想法。先定義一個可測量的穩定狀態,再列出可能會有的各種錯誤。在實驗組中手動產生各種錯誤,再和對照組比較,就能找出系統中的各個脆弱的部分。

PS. Do not try this at home (production)

PS2. 雖然真正穩固的系統都在 production 上做測試,包含 Netflix & Uber

principlesofchaos.org

Blockshell

Blockchain 正熱門 (雖然 Cryptocurrency 大跌中),想要研究它的基本原理嗎?

有人寫了一個基礎的 CLI 可以讓你體會一下什麼是 Block?什麼是 Chain?還有 Mining 和 Proof of Work 等等基礎概念。研究完就可以去寫白皮書來 ICO 了(誤)。

github.com

Staticgen

想架簡單的網站,但是又懶得寫 HTML?靜態網站產生器是你的好朋友。 用膩了 GitHub 也用的 Jekyll ?這個網站提供了各種不同語言的產生器,讓你可以嚐鮮一下。

staticgen.com

工作機會

Python Backend Developer at Swag

薪資:年薪新台幣 100 ~ 200 萬元(強者上限可議),固定以 14 個月月薪發放。

基本條件:

  1. In-depth knowledge of Python or NodeJS
  2. Experience with Python web frameworks ie. Flask/Django/Tornado
  3. Utilized work queues for background processing
  4. In-depth knowledge of Mongo and Redis
  5. Excellent understanding of HTTP
  6. Experience developing REST APIs

facebook.com

Senior Frontend Developer at Swag

薪資:年薪新台幣 100 ~ 200 萬元(強者上限可議),固定以 14 個月月薪發放。

基本條件:

  1. 精通 JavaScript、CSS 與 HTML
  2. 相容主流瀏覽器的前端整合開發經驗
  3. 前端 framework / library 的使用經驗
  4. 熟悉 React
  5. 模組化開發經驗

104.com.tw

Random Cool Stuff

Monster Hunter World: 新人入坑怪猎必看!为什么我们这么爱

2018/01/26 這個禮拜最大的(宅宅)事件,大概就是 Monster Hunter World 的發售.

這款久違的正宗(?) 正式發行在家用主機上 (Wii U, NS 移植不算) ,上次大概就是 PS2 跟 Wii 主機的時代(遙望) 所以大家的期待自然相當的熱情 (我好興奮! 我好興奮啊!

自從 PS2 的 MH2 開始研究,一直到玩 PSP MH2G, Wii: MH3 PSP: MHP3, 3DS: MH3G, MH4, MH4G, MHX 想問說有多熱愛,大概可以從我單人畢業考破了 MH3, MH3G, MH4, MH4G 參照宅宅 Evan 愛玩 MH

這次的進化,除了畫面的進步上更有許多親民的系統調整.

我個人是相當喜愛的,會讓人有一種玩了就不想回去舊系統的感覺 (這就是成功吧

說到這片影片,我覺得他推薦的很好.因為他不是介紹畫面跟內容.

是從魔物獵人這款遊戲的精神,慢慢來訴說為什麼他會那麼的紅

很推薦大家看看喔

youtube.com


This RSS feed is published on https://weekly.codetengu.com/. You can also subscribe via email.


Viewing all articles
Browse latest Browse all 109

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>