Hello World
CodeTengu Weekly 碼天狗週刊
只要命運的齒輪沒有出差錯,CodeTengu Weekly 都會在 GMT+8 時區的每個禮拜一 AM 10:00 出刊。每週會由三位 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到感興趣的東西,可能下一期就有了。當然你也可以瀏覽一下前幾期的內容。
目前的 curator 陣容:
- @vinta - I failed the Turing Test - 科幻迷,最近在讀 Dirk Gently's Holistic Detective Agency,電視劇也拍得超屌!拜託看!
- @saiday - Imnotyourson - 電量給我這種人用就是一種浪費
- @tzangms - Oceanic / 人生海海 - 我最近居然開始在挖礦跟研究區塊鏈了呢
- @fukuball - ImFukuball - 有新工作了,但歡迎直接挖角
- @mingderwang - Ethereum enthusiast
- @kako0507 - 熱愛嘗試新事物的前端工程師
- @chiahsien - 徵有經驗的 iOS 工程師,快來 Twitter 私訊我
- @uranusjr - Smaller Things - 我要成為錯字王
- @kkdai - 態度萬歲 - Learning Deeply....
- @yhsiang
- @johnlinvc - 挑戰自動化家中電器
- @drumrick - 歡迎加入台灣 Kaggle 交流區
- @wancw
你也可以關注我們的 Facebook、Twitter、GitHub 或 Open Source 專案,有很多 weekly 看不到的內容。有任何建議也歡迎來 Gitter 聊聊。
偶爾致力於解決開發者之間的資訊不對稱
@tzangms
The Secrets of Patreon’s High Performance Product Teams
這篇在講最近很紅的 Patreon,他們怎麼工作、高度自主。講怎麼營造積極的團隊,所以這篇基本上也算是在講團隊、公司文化:直率、坦白、爭辯 ... 等等。
我覺得文化面來說,這篇很棒,Startup 就該這樣,當你找一群聰明、有熱情的人一起工作的時候,營造出這樣的環境,這樣工作起來一定很開心。
但我覺得,產品也要做的起來,做的火紅,整體的環境跟氣氛才能整個跟上,所以這篇一開始也就提到了 Goal & Vision,你得先定義成功,才能放出自走砲。
One on One Meeting Questions Great Managers Ask Their Teams
1-on-1 有多重要? 在我先前聽的一本有聲書 The Hard Thing About Hard Things 中, Ben Horowitz 知道他公司有一位主管有六個月沒跟他的團隊進行 1-on-1, 他就要 fire 掉這位主管。
對了,The Hard Thing About Hard Things 這本書很棒,也很適合用聽的,我當時一邊聽一邊覺得創業實在是太苦太苦了,然後覺得自己好輕鬆啊 ~
回到正題,1-on-1 的難題主要是在於你不知道問什麼,通常就是問工作上的事,或是未來目標,但是常常會獲得這種回應「還好啊,沒什麼問題」或是「目標嗎?不知道誒還沒認真想過」等等,所以有時候你會接不下去 XD
而這篇列出了幾個 80 幾個問題,分別針對不同方向,像是處理情緒問題,職涯發展問題等等,我覺得這篇文章是個非常好的起點,還沒做 1-on-1 的人可以參考一下。
Rapid Ethereum Dapp Development with Next.js
我最近真的很投入加密貨幣跟區塊鏈這兩個領域,雖然都沒有太大的進展,但是還是有做一些研究啦。而先前就陸續看到幾個 DApp 的字眼, 一直看了這篇才知道智能合約可以這麼玩。可能是我老了,開始覺得這些東西很新奇,但很有趣啊 ~ 以前還在寫程式的時候一定一頭就栽進去,一陣亂搞...
然後又看到 @gasolin 寫的這篇 Ethereum 區塊鏈!智能合約 (Smart Contract) 與分散式網頁應用 (DApp) 入門,雖然還在進行中,但是非常期待!
@uranusjr
Kotlin: The Problem with null
Java 的「Billion Dollar Mistake」,NullPointerException
,拖累了一整代人的生產力。Kotlin 型別預設 non-nullable,除非你特別用 ?
字尾指名;如果你將一個變數指名為 nullable,在每一個使用 context 前就一定要檢查它是否為 null,否則 compiler 會直接報錯。我們再也不用煩惱 NullPointerException
了,可喜可賀可喜可賀。
事情沒那麼簡單。雖然 Kotlin compiler 保證你不會忘記檢查 null,Kotlin 本身仍然需要跑在 JVM 上。你自己的程式安全了,但依賴的上游套件(通常是用 Java 寫的)與它們的 API 是否安全,仍然毫無保證。你還是要自己小心。
Kotlin 被形容成一個 practical 的語言。比起它在 iOS 的同類 Swift,Kotlin 在很多地方看得出妥協,不如 Swift 那麼「美麗」。純粹主義者會因此不喜歡它,但這個策略讓 Kotlin 能夠直接取用廣大的 Java(與其他 JVM 語言)資源。蘋果對 macOS/iOS 開發生態有更完整的控制,可以勇敢破壞既有生態,更有本錢讓 Swift 純粹;Kotlin 不論在推廣和 adaption 問題上,都更需要既有 JVM 生態的支援,所以走了這條路。
本文最後有一段 Chris Lattner 的評論,描述 Kotlin 與 Swift 在表面語法如此相似,卻在底層想法有很大差異的原因,也很十分值得思考。Kotlin 的首要目標是跑在 JVM 上,而 Swift 不需跑在 Objective-C runtime 上,所以比較不需考慮與 Objective-C 的相容。好像理所當然,可是為什麼他把 language-agnostic 的 JVM 與 Objective-C runtime 相比,而不是例如地位似乎更相符的 LLVM?
A criticism of Ruby
作者就幾個面向分析了 Ruby 在語言設計上的選擇,挑出他不同意的地方,嘗試排除個人品味,專注在他認為真正錯誤的設計。
雖然我十分喜歡 Ruby 的很多部分,但也一直覺得這語言在很多基本的設計都走錯路了。其中有幾項我覺得還算是有 trade-off 可爭論(例如 mixin),但是例如 module 設計、block/proc/lambda 等等,就確實是很根本的問題,且幾乎無法換到任何好處,單純只是缺點。
不論你喜不喜歡 Ruby,甚至根本不關心,這篇還是滿值得一讀,能幫助了解很多關於程式語法的想法。雖然程式語言的選擇在很多層面上是品味問題,但在「語言本身」還是有優劣之分。有些語言就是設計得比較差。Ruby 整體來說並不差勁,但也因為這樣,討論它哪裡沒做好才更有價值。
Learning Rust With Entirely Too Many Linked Lists
算是 Rust 的中級教學,用 linked list 當主題,重點放在 Rust 的記憶體管理與 ownership,了解這些概念和相關工具要怎麼實際使用。
很多人說 Rust 太難,但我一直覺得它是把所有你該有的程式技巧都放在 type system,大部分甚至直接在 compile time 保證。如果你寫不出能跑的程式,代表本來基礎知識就不夠,需要加強。不過正常人的程設知識都有缺陷,所以說 Rust 很難也是沒錯。就像大學老師必修課完全不調分一樣,你要說錯嘛也沒有,但是大家就是當光光。
Anyway,如果你對 Rust 有興趣,但是一進到 ownership 就看得頭昏腦脹,這個教學應該會很有幫助。雖然裡面用的 Rust 版本有點舊需要更新,但也就是原本有些功能是 nightly 現在 stable 就能用的差別而已,所有概念還是完全通用。
Practical Tmux
如果我說 Tmux 比 Screen 好用會不會太引戰。會?管你的。不過 Tmux 同時也是設定檔殺人的代表,超爛的預設值、一天到晚變的指令集、意義不明的設定名和語法,Screen 比起來真是天使。不過如果你現在開始決定要用 Tmux,這篇應該可以讓你省掉一些從頭開始調設定檔的時間。
到底是腦子接線多錯才會覺得 window 編號從 0 開始是個好主意啊?這是在設快捷鍵不是寫程式欸。
@drumrick
Facebook 開源 Detectron
這週最令人興奮的事情就是 Facebook 開源 Detectron 了吧?!基於 Caffe2,架構於 ResNeXt、ResNet、FPN、VGG16 之上,實作了 Mask R-CNN 等六種物體偵測的演算法,同時公佈了超多 pre-trained model 的 baseline performance。還有一個特點:不直持 CPU。如果你有興趣嘗鮮,也可以專注機器之心的 Detectron 精讀系列。
Kaggle 網站上的教學課程
不知道這個網頁是什麼時候上線的,之前 Kaggle 的學習課程是經由 email 訂閱,然後轉址到 Kaggle 上面特定的 Kernel 作為教學內容,這次則是看到 Kaggle 獨立出一個區塊來放教學課程。課程方面有 Machine Learning、R、Data Visualization、Deep Learning,除了 R 課程以外,都使用 Python 語言。學習過程可以在 Kaggle 上面用 Notebook 完成,程度適合完全沒基礎的初學者。
2017 回顧文系列
最近看了一些 2017 回顧文系列,統一在這邊分享三篇以及摘要筆記
第一篇是機器學習著名部落格 WildML 上發表的,AI and Deep Learning in 2017 - A Year in Review,摘要筆記
第二篇是 PyTorch 的生日文,摘要筆記
- 第三篇是 Google Brain 的 2017 回顧,有上篇跟下篇,摘要筆記
CodeTengu Weekly
This RSS feed is published on https://weekly.codetengu.com/. You can also subscribe via email.