Hello World
CodeTengu Weekly 碼天狗週刊
CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一早上 10:00 出刊,每一期會從目前的 curator 名單中選出三位來負責當期的內容,每個 curator 各自負責不同的領域。如果你在這一期沒有看到自已感興趣的東西,說不定下一期就會有了。你也可以瀏覽一下前幾期的內容。
以下是目前的 curator 陣容:
- @vinta - I failed the Turing Test - 科幻迷,最近在讀 The Best of Isaac Asimov
- @saiday - Imnotyourson - 太熱了
- @tzangms - Oceanic / 人生海海 - 衝動型購物
- @fukuball - ImFukuball - 最近好窮,有案子可以接嗎?
- @wancw - 因為工作看韓劇,同時開始追美漫
- @mingderwang - Ethereum enthusiast
- @kako0507 - 熱愛嘗試新事物的前端工程師
- @chiahsien - 我們在找 iOS 工程師與其它人才,歡迎來跟我當同事。
- @hiroshiyui - 非典型司書
- @uranusjr - Smaller Things - 不愛談技術的技術人,最近對做菜很有興趣
- @kkdai - 態度萬歲 - 喜歡 Golang 的略懂工程師
- @yhsiang
大家也可以關注我們的 Facebook、Twitter、GitHub 或微博,有很多 Weekly 看不到的內容。有任何建議或疑問也可以來 Gitter 聊聊,歡迎亂入 👺
致力於解決開發者之間的資訊不對稱
@saiday
so-fancy/diff-so-fancy: Good-lookin' diffs.
前陣子有把 git remote 的 commits 在 local rebase 後再看 diff 的需求,而 git 自己帶的 diff 的輸出格式我個人真的無法欣賞,於是開始了尋找 diff 工具之旅。
最後我的選擇是 diff-so-fancy。
主要原因是它的輸出格式還算可以,而且不必為了看 diff 再裝一個 GUI 工具,也可以透過修改 git 的 core.pager
為 diff-so-fancy
這樣往後只需要跟以前一樣用 git diff
就可以了。
Structs and mutation in Swift - Chris Eidhof
Chris Eidhof 深入淺出地談 Swift struct,重點在為什麼 struct 需要 mutating function 以及它的原理,也解釋了為什麼 struct 的 mutating function 不會造成所謂災難式的 side-effects。
我有買作者寫的 Advanced Swift,儘管有些篇幅對我來說真的過硬,但他的寫作風格我很喜歡,不太想教你怎麼用倒是一直在說為什麼跟還能怎麼做。
Xcode Visual Memory Debugger
Xcode 8 的新功能:Debug Memory Graph、Runtime Issues。
在 debug 的過程中使用 Debug Memory Graph,會暫停執行進到一個觀測的狀態,然後視覺化地把這個 app 在 heap 中的記憶體使用關係圖畫出來。
Runtime issues 可以在我們 debug 的過程中自動幫我們找到潛在的 memory leaks。
這些功能以往必須要進到 Instruments 裡才能做到,現在直接整合在 Xcode editor 上對基本的使用更方便了。
WWDC session: Visual Debugging with Xcode
Using Java 8 Lambda expressions in Android
Android studio 2.1 就支援 Java 8 了 (雖然目前只支援了一部份,但終於有 lambda expressions 了)
如果我們要用 Java 8 的話就必須改用 Jack toolchain compiler,其實這個新一代的 compiler 是一個蠻大的改進,不只萬年老梗的編譯速度更快,也自帶或整合了一些以往要分散使用的工具 (ProGuard、JaCoCo)
註:lambda expression 只要是 API 9 以上都兼容,大家不用擔心。
@mingderwang
10 個原因我喜歡用 Swagger spec 來定義新開發的 RESTful APIs
- 它可以幫我產生 18 種語言 generator.swagger.io server 端樣板程式
- 它可以幫我產生 34 種語言 generator.swagger.io client 端樣板程式
- 它可以馬上生成線上可執行的 API 文件, 例如 petstore demo 還有 APIs.guru
- 它可以輸入 SoapUI 建立測試案例
- 它還可以用 swagger-editor 直接在線上編輯 Swagger spec
- 它跟 OpenAPI 合併, 應該會變成業界標準
- 它有非常多的開源軟體及工具能跟 swagger 進行 整合
- 而且它本身也是開源 github.com/swagger-api
- 喜歡 yeoman 產生器的, 也可以用 generator-openapi-repo 產生程式碼
- 還有跟 docker hub 一樣, 它也有 swagger hub, 我還有理由不用 swagger 嗎?
CodeTengu Weekly
@hiroshiyui
OCI 对 Docker 真的没有意义?
這篇是看人吵架,容器技術界大亂鬥。相信折騰過一陣子 Docker 的人看了都會會心一笑。
我個人是偏好「鏡像格式」、「容器格式」與「容器執行環境」都能抽象、解耦合、分而治之的。實在是很討厭被特定廠家綁架啊,給我一點選擇的自由吧!?
Elixir Isn’t Hipster
標題大概可以意譯為:〈Elixir 可不是個假掰、假文青(意謂「只會打高空、不實用」)的語言〉。雖然是篇 2013 年的舊文,然而內容、觀點放到今天來讀依然準確,為 Elixir 的特點辯護,但是不流於「賣藥」。
如果你周遭有那種「這什麼沒聽過的怪東西啊?我才不想碰咧!我用(某某主流技術)就好了」的技術圈朋友,又或者先承認你就是這樣的朋友,我覺得這種「釋疑、但不賣藥」的行文風格,對於介紹一個相對冷門的技術是很有幫助的。
這年頭太多 hype,久而久之,「糖來了」都變成「狼來了」,先別說別人,我自己都對賣藥文敬謝不敏。
Understanding Elixir's recompilation
本篇用很詳細的篇幅,解說了 Elixir 為什麼不同於 Erlang,有時候會需要對程式做大量重新編譯的原因所在。很有趣,讀後會對 Elixir 的運作特性又多了一分認識。
可能是我手上的 Elixir/Phoenix 專案規模還小,還沒撞到這樣的天花板。
Rate Limiting a Phoenix API
限流 (rate limiting) 這種機制在很多地方都會用到,這篇是用 Phoenix 搭配 ExRated 實作 API 限流的範例。
5 female coders who changed the world
本文介紹了幾位在人類史上不該被忽視、遺忘的女性程式設計師。
讀這篇文章,讓我想起了遇過的幾位優秀的女性程式設計師,撰寫程式時心思極為細膩,考慮各種例外可能,產出很可靠的程式。
這個行業就如此文開頭引述的,投入其中的工作者性別比例失衡,我還沒有仔細找過相關的研究文獻,還不能太斬釘截鐵地指出可能是哪些原因,只是同樣覺得這現象不太合理。
對了,如果妳看到這篇,且還不知道「WoFOSS 好自由 - 台灣女子自由軟體工作小組」的,真心推薦給妳。
工作機會
Python Web Developer at StreetVoice (台北、北京、上海)
開發及維護 StreetVoice 旗下相關網站。
意者請來信:tzangms@streetvoice.com
Random Cool Stuff

L10N ? I18N ? G11N ? A11Y ?
無意在 Twitter 發現一張圖才恍然大悟原來這些縮寫是這樣組成的,雖然應該很多人都知道了,但一定還有人跟我一樣不知道這些縮寫竟然是這樣組成的吧?!
L10N = Localisation
I18N = Internationalisation
G11N = Globalisation
A11Y = Accessibility
由 @saiday 提供
CodeTengu Weekly
This RSS feed is published on http://weekly.codetengu.com/. You can also subscribe via email.