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

CodeTengu Weekly 碼天狗週刊 - Issue 98 絕望啊!我對每個 library 都有自己的 DSL 絕望啦! - Jul 31st 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一 AM 10:00 出刊,每期會由三位不同的 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到自已感興趣的東西,可能下一期就會有了。你也可以瀏覽一下前幾期的內容

目前的 curator 陣容:

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

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

@tzangms

Speed in Software Development

這一篇真的是不可多得, 作者畫了一張圖, 一開始看到覺得這好亂喔, 不知道怎麼看。 但這篇解釋得非常清楚, 而且是對於任何會影響開發速度的各種角度跟因素, 牽一髮動全身啊。

這篇文章提到的議題很多, 舉例來說: 「技術債」, 常常聽到大家都在講技術債, 但是什麼才算是真正的技術債? 你明確知道這邊留下一個債, 知道之後要來還的, 這才叫技術債。 你沒有特地去借的不叫技術債, 就是寫得爛而已 XD

好啦, 有時候別人的債, 是你要來幫忙還的, 我很懂。

而技術債好不好? 跟借錢一樣, 借了要還, 但你可以借來買車、買房, 但是借來花光光都不還債, 那就破產囉。

這篇應該是我 2017 上半年最推的一篇了, 非常值得一看!!! 但我才發現是 2014 的文章啊 ...

targetprocess.com

Speed Index Explained – Another Way to Measure Web Performance

很多年前開發網頁有 YSlow 這種東西可以用來測哪邊還有地方可以改善, 但是現在 Web 的發展差異有點大了, 第一次看到 Speed Index 這種東西, 文章中說是 2012 年, WebPageTest 就開始在他們的測試報告裡面提出來了 Speed Index 這個數據, 數字越小越快, 時代變了啊!

keycdn.com

CI/CD Tools Comparison: Jenkins, GitLab CI, Buildbot, Drone, and Concourse

CI/CD 這件事在 StreetVoice 最早是用 Jenkins, 後來改用 Travis CI 才真正把這件事弄的很順利, 因為設定簡單。 在還沒開始之前, 先降低門檻這件事真的是很重要, 這篇提到的 Concourse 還滿想試試的, 看起來也是簡單又清爽。 像是 Buildbot 努力過一陣子, 還是直接放生了 :/

其實也是想說 Travis CI 用這麼多年了, 是不是該試試看新的東西了 XD 但話說上禮拜才因為 Travis CI 升級了預設的 Linux Distro, 害我們的 build 突然就炸了, 查了好一會才知道原因, 不可控的因素還是越低越好啊

digitalocean.com

How to Learn React: A Five-Step Plan

前幾天看到在美國工作的朋友貼了一個徵才訊息, Remote 在家工作, 主要是寫 React-Native, 年收入似乎將近三百萬台幣, 這時候我就覺得為何我不好好的把 React Native 給學一學呢!?

好啦, 機會是給準備好的人, 開始認真學 React 了!!

lullabot.com

Faster Pagination in MySQL – Why Order By With Limit and Offset is Slow?

快速分頁, 用 OFFSET, LIMIT 來做分頁, 分頁越後面, 速度就會越慢, 其實一直都知道這個問題, 但是還沒時間認真去研究, 這篇解釋得還滿清楚的。

另外, 來個題外話, 跟分頁相關的還有一個問題, 就是算出總頁數這件事, 這個 SQL query 也是挺慢的, 所以如果可以不給總頁數, 只給下一頁的話, 那頁面又可以快上一倍吧。

例如: 一頁秀出 20 則, 那麼你就 select 21 則, 如果有第 21 則的話, 那就是有下一頁了, 對吧!? :p

eversql.com

@kkdai

Golang.tw 第 25 次聚會的投影片與錄影

這次主要有四個講者,並且有包括 Python, Evernote, Blogger 架設與 Machine Learning 的講題. 分享給大家..

19:30 ~ 20:10: 王思元 - Evenote API + Blogger API 20:30- 21:10: M157Q - Grumpy

Lightening talk: 21:20: HUGO-靜態網站生成器-2-分鐘上手 (林志傑) 21:20 ~ 21:30 GoLearn

github.com

A workshop covering all the tools gophers use in their day to day life 讓你跟著快速學習 Golang 的好 workshop 教材

由 Google 的 傳教士 Francesc Campoy 所準備的 workshop video 跟相關的 source code . 提供了給初學者跑 workshop 的好素材. 並且讓你能快速了解 Go 的相關工具 (go list, go vet, go list, godoc 甚至 pprof 都有提到)

全程透過 vscode for Go 讓大家更容易上手.

github.com

nareix/joy4: Golang audio/video library and streaming server

之前常常有人詢問,是否有不錯用的 Golang audio/video library? 這個看起來很有用,不僅僅支援不少的格式.

還支援 RTMP server/client 與 RTSP client 對於想要用 Golang 做 steaming 的人.應該會覺得棒喔..

github.com

tj/gh-polls: Polls for GitHub issues and readmes

gh-polls 可以讓你輕鬆的建立投票 markdown ,並且連接到相關服務可以迅速投票.

只要建立好選項後, markdown 就直接可以使用.並且連接到投票的後端的服務.任何人都可以快速建立投票. 此外,這次之前 Nodejs 大神 TJ Holowaychuk 為了自己公司的產品 apex/up 寫出的小工具.

github.com

GopherCon 2017: Kavya Joshi - Understanding Channels - YouTube

[GopherCon 2017 - Understanding Channels]

Channels 大家都了解,但是你真的能了解他如何運作的嗎? 一開始很好奇這個女講者竟然敢在 GopherCon 上面講 Channels ,但是聽了內容意外的深入.

從簡單的 buffer/unbuffered channels 的差異,他們如何運作,甚至到 channels 跟 go scheduler 是如何運作的部分講得相當仔細...

相當建議大家好好閱讀這一篇...

兩篇衍生閱讀: (跟 go scheduler 相關)

GopherCon 2017 所有的影片:

youtube.com

@johnlinvc

Bitcoin 八月一號 Fork 懶人包

Bitcoin 在八月一號即將 Fork, 這個懶人包解釋了什麼是 SegWit 和 SwgWit 2x ,還有 Fork 會對 bitcoin 帶來的影響。

thenextweb.com

Web 開發者天賦樹 2017 版

Web 技術一直推成出新。往往讓人迷惘再來該學什麼好。有人整理出了一個 2017 版的天賦樹,讓我們能決定在沒事的時候該來研究些什麼。

github.com

不隨機但是讓人覺得公平的骰子函式庫

程式裡常常需要亂數決定一些事。機率上的隨機性會影響公平性,但是機率上的隨機和人類的認知常常不太符合,最有名的就是賭徒謬誤 。大家會認為完全獨立事件的發生機率會和之前的結果有關。簡單來說就是如果很久沒有骰到六,再來骰到六的機率會變高。 而這個骰子函式庫會讓之前比較少出現的數字機率上升,更棒的是在骰一百萬次的時候每一面的出現機率還滿平均的。 請不要用在任何真的需要公平隨機的地方

github.com

PostgresQL Query Visualizer

當我們遇到Query 過慢時常常會用 EXPLAIN 來看看慢的是哪一個部分。不過有時候太複雜看不太懂,這個工具讓我們能更容易找到效能瓶頸。

github.com

把 Ruby 程式包成單一執行檔

雖然名字裡有編譯,但是其實是把程式,函式庫和 Ruby 直譯器包到一個迷你檔案系統裡。目前還不支援跨平台。不過光是讓動態語言能包裝成單一執行檔就是很大的進步了。

github.com


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


CodeTengu Weekly 碼天狗週刊 - Issue 99 那一天,人類終於回想起了,曾經一度被 XML 所支配的恐懼 - Aug 7th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一 AM 10:00 出刊,每期會由三位不同的 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到自已感興趣的東西,可能下一期就有了。你也可以瀏覽一下前幾期的內容

目前的 curator 陣容:

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

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

@vinta

Spark SQL cookbook (Python)

最近在為 StreetVoice 開發一個音樂的推薦系統,採用 Apache Spark,不過因為老是忘記 DataFrame 某某功能的用法,所以就乾脆仿效 O'Reilly 著名的 Cookbook 系列,幫自己寫了一篇 Spark SQL cookbook,複習、速查兩相宜啊。

因為 Spark 支援 Scala、Java、Python 和 R,一開始是打算用 Scala 來練練功的,不過畢竟是公司的專案,考慮到後續其他人的參與和維護,好像還是採用一個團隊成員都熟悉的語言比較好吶(成熟的大人.jpg)。

延伸閱讀:

vinta.ws

How to Size Executors, Cores and Memory for a Spark application running in memory

在使用 spark-submit 的時候可以指定 --driver-memory--executor-memory--executor-cores--num-executors 等參數來配置你的 Spark app 可以使用的運算資源,這篇文章指出了幾個需要注意的地方以及 One executor per core 和 One executor per node 這兩種做法會有什麼問題。

P.S. 現在 Spark 除了 Standalone 和 YARN 模式之外,也開始實驗性地支援 Kubernetes 了:apache-spark-on-k8s,看樣子 k8s 真的有一統江湖之勢了啊。

github.io

Mastering Feature Engineering

整個推薦系統的 pipeline 可以很粗略地分成 candidate generation 和 ranking 兩個部分,而 ranking 常用的模型之一就是簡單粗暴的 Logistic Regression(通常還會搭配 GBDT 或 Deep Neural Networks)。因為要用 LR 需要大量的 Feature Engineering,所以我就特地找了一本專門在講特徵工程的書,上週末去剪頭髮的時候終於讀完,正好可以推薦給大家。

不過這本書講的是比較基礎的部分(不要想一步登天嘛),例如針對數值特徵的 Binning 或標準化、針對文字特徵的 TF-IDF 和針對類別特徵的 One-hot encoding 或 Feature hashing,對創建出非線性特徵的 Feature Construction 則沒有什麼著墨。可以搭配前幾期推薦過的「机器学习中的数据清洗与特征处理综述」一起看。

safaribooksonline.com

Write Explicit Tests

Sometimes, normal programming good practices don’t apply to software tests. DRY in particular I don’t subscribe to for test code, because I want my tests to read like a story. - Kent Beck 如是說

你減少了重複,但是卻帶來了耦合。寫程式真的很難啊。

rachum.com

Strace -- The SysAdmin's Microscope

strace 是個可以用來觀測某個 script 或 process 在 system call 這個層面到底做了哪些事的指令,是 troubleshooting 的好幫手,尤其是用來解決在 Linux 上大家喜聞樂見的「幹你娘為什麼 xxx 跑不起來?!(20 分鐘之後)噢我權限設錯了」的問題。

延伸閱讀:

差點忘了,為了慶祝 CodeTengu Weekly 即將邁入第 100 期,下週!開始!休刊!

oracle.com

@kako0507

React 16 beta 發布

React 16 Beta 終於發布,在這個版本有幾個重大的改變:

  • 將 React 核心流程 — Reconciliation ,重新寫為 Fiber 架構,可以看 Lin Clark React Conf 2017 的介紹 ,藉由拆分 Phases , main thread 就可以執行其他動作,而分解的過程又有各自的 priority ,較需要即時更新的畫面就可以流暢改變
  • 加入 Error Boundaries ,可以透過 fallback UI 避免 component tree 直接出錯而中斷

github.com

Petition to open source Flash spec

Adobe 宣佈在 2020 年停止支援 Flash ,在 GitHub 上出現開源 Flash 的請願書,有興趣可以給個星號代表簽署這份請願。

github.com

Webpack: Implementing first-class support for WebAssembly

Webpack 獲得 Mozilla Open Source Support (MOSS) 的贊助,將實作 WebAssembly 為 first-class support 。因為目前所有載入到 webpack 的 resource 都會被視為 JavaScript,所以 webpack 的架構實作勢必需要重新改寫,不過也可以因此得到其他的好處,像是先前提到 CSS bundles lazy loading 的原生支援等等。

medium.com

JavaScript Factory Functions with ES6+

ES6 提供很多方便的語法,本篇文章介紹非常實用的 object literal syntax 和 factory function 配合使用。

medium.com

@uranusjr

CSS Grid Changes Everything (About Web Layouts)

Morten Rand-Hendriksen 在 WordCamp Europe ’17 展示 CSS grid 的威力。如果你已經習慣現在的前端排版思維,很難解釋 grid 有多厲害,不如直接感受一下。看看 Morten 的個人網站,稍微拉一下視窗觀察元件位置的響應,思考一下你會怎麼寫 markup。想好之後再打開 inspector 看看 Morten 的實作。身為從 GUI pgoramming 半路出家的網站工程師,這 markup 實在簡單到令我震驚啊!!!GUI 本來就是該這麼寫啊前端落後業界二十年終於跟上了好感動。

CSS grid 的主要功能就是把頁面上的各大項放到正確的位置,就像你用 graphic tools(例如 InDesign)一樣:拿著一個元件、把它放到方格畫布上某個位置;再拿另一個元件、把它放到另一個位置,以此類推。沒有 content flow、沒有 table、沒有 floating div、沒有 flexbox,就是單純的放置,和正常的圖像設計一樣。如同 Morten 在 talk 裡所說,這不是用來取代已有的排版工具,而是讓各種排版工具被用在它們本來的用途:如果你需要表格,就用 table;如果你需要浮動元件,就用 float;如果你需要並排類似元件,就用 flexbox。如果你需要排版一個頁面,就用 grid。

當然這年頭的前端技術一發表,第一排就會有人舉手說可是我的舊網站要支援 IE 所以不能用。Morten 基本上同意這件事,但 CSS grid 的用途有個 easy way out:mobile first。定義一個合理的排版(完全不用 grid)給 mobile 與所有過舊的客戶端使用,用 media query 在合適的尺寸與客戶端用 grids 顯示更花俏的排版。CSS grid 是革命性的排版變革(我完全同意),所以需要大家努力讓它儘早進入主流。

如果你比起影片更喜歡看文章,Morten 也在 Smashing Magazine 發表了一篇詳細的 write-up,可以參考。如果你之前學 flexbox 的時候看過 CSS-Tricks 的 cheatsheet 網頁,他們也為 grid 寫了一個,很好用喔。

youtube.com

A Rebuttal For Python 3

這篇其實很久了,但最近發現 Zed Shaw 仍然被當意見領袖訪問,然後還有人覺得他的觀點很有道理,所以再拿出來講一下。我個人是覺得如果連 Turing-complete 是什麼都搞不懂,而且還不接受自己搞不懂的事實,應該沒資格對這類議題發表意見啦。

如果你看不懂上面一段在寫什麼,我稍微解釋一下。Zed A. Shaw 是 Learn X the Hard Way 系列的作者,也寫了一篇 Python 教學 Learn Python the Hard Way,好像有被翻譯成簡體中文叫《笨方法学 Python》。他在 2016 年底發表了一篇文章,解釋他為什麼不喜歡(目前的)Python 3,認為不適合初學者,所以不打算更新教學。其中一個理由是 Python 3 無法執行 Python 2 程式,所以不是個 Turing-complete 語言

!!???

然後霹靂星球 Python 社群就爆炸啦,很多人都寫了反擊文,包括上面這篇。其他還有一些理由也是很爛,族繁不及備載,大家就看 rebuttal 笑一笑吧。後來 Shaw 後來就跳出來說欸那 ger Turing-complete 很明顯 4 開玩笑 der R 尼們那摸認真肯定心裡有鬼 邪教無誤。嗯好喔總之我是不信啦。接著 2017 年初他就把教學更新到 Python 3 了。好不管怎樣,總之我是覺得這人已經被看破手腳技術信用破產,沒有發表公開意見的資格了啦。不過話說回來某神和某神雖然被很多人笑也是穩坐中文界大大地位,反正信者恆信啦,個人信仰我不干涉。

註:我對 CodeDojo 把 RoR 拿出課程本身沒有意見,只是認為 TNW 跑去問 Shaw 意見這件事情非常愚蠢。

eev.ee

價值 150 萬美元的引號

REXmls(一個 ICO)上週舉辦了 token sale。但他們忘了在網頁上顯示 contract 的 JavaScript 字串加上引號。正確的 contract 是 0x03e4B00B607d09811b0Fa61Cf636a6460861939F,因為沒有加引號而被視為數字。JavaScript 的 Number type 是浮點數,數字太大的時候會產生有效位問題,所以最後被 cast 成字串輸出的值是 0x3e4b00b607d0980668ca6e50201576b00000000,因為「長得和原本的值太像,沒人發現」(他們自己講的),結果就有 6600 ETH 轉帳變成空氣。

很多人都在說 JavaScript 現在沒很糟了,不過我是覺得如果一個程式語言無法了解整數浮點數字串是三個意義完全不同的概念,那它似乎不應該被拿來在工作上使用。

reddit.com

Women will never advance doing community work

雖然標題這樣下,但我覺得其實不只女性,這是社群一個很 general 的可怕矛盾。

  • 如果社群領袖持續參與社群活動,就不可能在專業生涯進展
  • 如果想在發展專業,就不可能密切參與社群活動
  • 沒辦法在社群接觸真正的意見領袖;接觸過的人如果往上爬,你就再也看不到他了

這造成很多很弔詭的現象,例如很多在社群貢獻的人會被 underrecognised,像我們的主編 Vinta ㄉㄉ就應該要有更多人認識才對 我這樣會不會太狗腿;因為知名度不夠,沒辦法進入主流視野,就拿不到該有的資源。另一方面社群即使再良心立意再好對成員多有用,即使成員一個一個成長,社群本身仍然會像垃圾接案公司一樣,永遠原地踏步——因為強者練完功就會離開,留下被他們吸進來的 junior。

搞社群一段時間的可能多少都有這類矛盾吧,像 PyCon Taiwan 最近幾年也是結婚的結婚生小孩的生小孩出國的出國開公司的開公司(對我就是在講你和你和你和你不要懷疑)。當然大家發展得這麼好作為朋友超開心的啊,但是也同時會在想這好像沒辦法成為永續的社群模式,實在令人擔心。這個問題很難看到立即的影響(跟全球暖化有點像),大概也不會有人關注這篇吧,點閱率大概會在本期墊底,不過還是希望有更多人能注意到這個現象,而不是哪天熱浪襲擊歐洲才開始動作。

medium.com

Random Cool Stuff

JavaScript?

🤔🤔🤔🤔🤔

@uranusjr 分享。

twitter.com


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

CodeTengu Weekly 碼天狗週刊 - Issue 100 The net is vast and infinite - Sep 25th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一 AM 10:00 出刊,每期會由三位不同的 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到自已感興趣的東西,可能下一期就有了。你也可以瀏覽一下前幾期的內容

目前的 curator 陣容:

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

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

@vinta

Big Data Analysis with Scala and Spark

因為前陣子辭職了(想放個長假吶~),突然多了不少時間,所以決定在打電動之餘,花點時間上幾門 Coursera 的課。然後花了一個禮拜終於完成這門課啦!主題是 Scala 和 Spark,是 Functional Programming in Scala 系列課程的最後一門課(這個系列有一門課的老師就是 Scala 的發明者 Martin Odersky)。之前學東西都習慣看書,這次第一次在 Coursera 完整地上完一門課,老實說是個很棒的體驗啊。尤其是在寫第一個程式作業的時候,上面標註說大概要花 3 小時,結果我寫了一個下午哈哈哈。雖然上手之後,後來的作業其實很快就做完了。但是還是忍不住想抱怨一下:Spark 的 Dataset typed API 寫起來也太麻煩,而且效能還沒有比較好。

題外話,雖然還沒那麼快要開始找工作,不過因為很閒,這陣子新認識了不少工程師同業,交流了很多技術經驗(和業界八卦 XD),感覺挺不錯的啊,所以想說如果各位朋友或公司有興趣,歡迎聯絡我,咱們可以約個時間吃個飯 👍

題外話之二,說到打電動,跟大家分享一下,12 月的時候 PC/PS4/Xbox One 會出「大神 絕景版」,這款遊戲可是 PS2 時代不朽的名作之一啊,如果你還沒有玩過,拜託玩一下。然!後!登登!小島秀夫的傑作之一 Anubis: Z.O.E. 也要重製啦!

coursera.org

Rules of Machine Learning: Best Practices for ML Engineering

不得了啊,這份文件,有在搞機器學習的人,這禮拜讀這篇就夠啦。這份文件的作者是 Google 的 Research Scientist,歸納了 43 條搭建一個 Machine Learning 系統的最佳實踐,而且很多都是從實務和軟體工程角度的經驗總結,這種知識特別寶貴啊。老實說我覺得這也是軟體工程師在這一波 AI 浪潮中可以施力的點,因為任何的機器學習系統或產品,宏觀一點來看,它就是一個軟體工程問題。

Most of the problems you will face are, in fact, engineering problems.

延伸閱讀(RecsysChina 的前輩對這篇文章的評註):

zinkevich.org

Feature Engineering - Getting most out of data for predictive models

這份簡報很豐富,除了幾乎把我前陣子才讀完的 Mastering Feature Engineering 書裡的內容都講完了之外,也提到很多特別的作法。而且看到最後一頁才發現,原來簡報的作者也讀過這本書啊。

是說我這一陣子實際搗鼓了一番 Feature Engineering 之後的感想,特徵工程根本就是手藝活,講求的其實是創造力啊。

延伸閱讀:

slideshare.net

What happens when your application cannot open yet another connection to MySQL

之前工作的時候,要把 Spark 運算完的推薦系統的結果寫回 MySQL 資料庫,結果卻遇到了 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.x.x' (99) 的錯誤,很多人應該都見過類似的錯誤訊息,不過括號裡的數字可能不一樣。在這個例子中,單看文字的描述很容易讓人誤會是 MySQL server 出了什麼差錯,但是其實關鍵在於最後那個括號裡的 OS error code。這篇文章把造成這個錯誤的前因後果說得非常清楚,值得一讀。

簡單說,用 perror 99 可以查到這個 error code 是 Cannot assign requested address 的意思,原來是因為我在寫 Spark 的時候太放肆,不小心在短時間內開了太多的 connection,把 local 的 port 用完了(需要 TIME_WAIT 冷卻時間),所以沒有辦法分配 port 給新的 MySQL connection。解決的辦法:在程式裡重用 MySQL connection 或是限制一下 concurrent 數,再不然就是修改 net.ipv4.tcp_tw_reuse = 1 系統設定。

忍不住提一下,其實 master/slave 架構的 MySQL 還是很罩啊,當初ㄙㄨㄚˋ地一下在幾分鐘內寫了四十幾億筆資料進去,MySQL 跟沒事一樣。原本還ㄏㄧㄠˊ咖稱想用 Cassandra,結果發現在現階段用 MySQL 就頂得住啦。

延伸閱讀:

percona.com

@saiday

saiday/JonSnow: App Store/Google Play review watcher, deliver new reviews to slack channel

在休刊的這段期間曾經偉大的 LaunchKit 收攤了,也因此當初因為找不到 LaunchKit 在 Google Play 的替代品索性自己搞的 JonSnow 也新增了 App Store 的支援。

本來有用 Review Monitor 的朋友可以參考一下,或也可以自己架開源版本的 LaunchKit

github.com

fatih/vim-go-tutorial: Tutorial for vim-go

我最一開始是用 Atom 裝 go-plus 寫 Go,設定起來真的是快。

但我的工作主要還是寫 iOS 跟 Android,很少有機會用 Atom,容易忘記快速鍵是我個人的問題我坦然接受,只不過 Atom 身為 Electron 陣營的知名代言人,當然也提供了那令人絕望的啟動速度跟大量資源使用。

總之,目前是改用 Go 社群都很推崇的 vim-go,這篇是 vim-go 作者寫的教學,寫得真的好,除了基本的設定,還涵蓋了很多 Go tools 的介紹。

註:升級了 Vim 8,這個版本有官方自帶的 package manager,終於!

github.com

Exploring Background Execution Limits on Android Oreo

Android 8.0 (API level 26) 加入了一個新特性,Background Execution Limits 值得大家注意,限縮 app 背景執行的能力。

這個限制主要是 Service 超過一定時間會被強制關掉、不能再註冊一些系統 Broadcast。

也就是說,target SDK > 26 之後,你不能有把握那些需要花時間的 Service 可以活著把事情做完。 這篇分析了替代的方案的使用情境:

  • Job Scheduler
  • FCM High Priority Notification
  • Foreground Service

至於系統的 Broadcast 我沒在用沒有很熟,但看起來是寫在 Manifest 的 implicit broadcasts 有許多會失效,必須改用動態註冊。

medium.com

Supporting iPhone X

有一台上有 notch、下有 home indicator 的機子要在 11 月上市了,曾幾何時多裝置的 layout 配適也成為 iOS 開發生態的重要部分了。

這篇很完整的介紹了 layout 要調整的地方,該注意的設計。

註:開發者對 iPhone X 的特殊造型分成兩派意見,第一派很有愛的要完美適應 iPhone X、另一派打算當作沒看到這件事 NotchKit

useyourloaf.com

@fukuball

写给妹子的深度学习教程

之前聽了李弘毅老師的 DL 課程,覺得真的是淺顯易懂又生動有趣,上網想再搜搜有沒有更多的線上資源,沒想到胡亂找到了一系列有趣的文章 - 写给妹子的深度学习教程,作者使用對話式的方式、細心的口吻寫下教妹子的深度學習課程,我也好想要有人這麼細心的教我呢!

zhihu.com

@mingderwang

不要猶豫了

yeoman 用煩了嗎,可以試試 saonpm 太慢了嗎,可以改用 yarn

Docker 不再是 buzzword 了,開始進一步使用 Docker Compose 或直接跳 production 等級的 k8sdocker playground,免費的 Docker pools 可以拿來建 Docker Swarmkubernetes playground 免費的 k8s 學習環境,但不知道還能免費用多久。

RESTful 也有點過時,新的 project 開始使用 GraphQL 吧。連 Github API v4 都改用 graphQL,不要猶豫了。

Monolithic 的程式不合時宜了,建議開始研究 Microservices

CodeTengu Weekly

Deprecated Linux networking commands and their replacements

你還在用 ifconfig 跟 netstat 等 Linux 網路指令嗎?iproute2 收集了一些新的指令將用來取代掉他們。例如 ifconfig 將用 ip a 來取代,netstat 將被 ss 所取代。這篇文章做了很詳細的介紹且提供對照表供大家參考。

wordpress.com

Oops: Why DevOps efforts fail

雖然我不是完全贊同他的講法,但分析 DevOps 的失敗原因,的確可以當成我們的借鏡。其實大部分公司都還在摸索中,自動化也可能只做一半,文化也還無法ㄧ下轉變過來,現在應該還不是評估成敗的時候。我反而覺得整個過程中,只要軟體開發流程能更自動化,軟體品質能更提升,工作得更愉快,DevOps 所做的所有努力,都是是值得的。

sdtimes.com

以太坊下一階段硬分叉內容簡介

EIP 是 Ethereum Improvement Proposals 的縮寫。本文章作者 NIC Lin,對以太坊分岔鎖所包含的改進建議項目,做了非常詳細的比對和說明。對 Ethereum 核心代碼有興趣的朋友,應該很喜歡這篇文章。

medium.com

Coding for Kids

寫程式一定要用螢幕嗎?未來真的都只剩機器人,連教小孩寫程式也用 bot 了。在這紀念專輯裡,跟大家介紹一種跟樂高相容的程式機器人叫 gobot。還可以先填寫預購意願問卷喔!

stoneware.tech

@kako0507

JavaScript : The Curious Case of Null >= 0

在 JavaScript 的世界有很多奇特的行爲:

  • null > 0 --> false
  • null == 0 --> false
  • null >= 0 --> true

好奇為什麼會造成這樣的結果的朋友可以翻閱 ECMAScript Spec : The Abstract Relational Comparison Algorithm

campvanilla.com

Coding Tip: Try to Code Without If-statements

這篇文章並不是要教大家不要去使用 if statement ,可以用這樣的模式嘗試 Code as data ,讓 code 更有可讀性外,也能讓程式邏輯在執行時更新。

medium.com

How JavaScript works: inside the V8 engine

JavaScript V8 engine 在 v5.8 以前, Compiler 的運作流程以及最佳化方式:

  • 分為兩種 Compiler - full-codegen (負責較快速的編譯成 machine code) 以及 Crankshaft (JIT compiler , 負責最佳化)
  • 不同的 threads 分別負責編譯執行、最佳化、 profiling 及 GC

文內會依照 V8 的最佳化流程來解說如何寫較佳的程式碼。

sessionstack.com

@hiroshiyui

Is Ruby Too Slow For Web-Scale?

現在講 Web 開發時若提到 Ruby,不同人會有不同的印象,而且幾乎很極端。有些人會說它語法優美,有些人則說它動態特性下的黑魔法殺人一萬,自損三千;有些人說它語法表現能力強、開發效率高,有些人說以它為基礎的某些框架太笨重、以致執行效能低。其中「效能」似乎是 Ruby 的最大一宗罪,如過街老鼠般人人喊打,但是當我們談到「效能」時,我們以為的「效能」是什麼?

這篇文並不全然是為 Ruby (& Rails) 辯解、護航文,其中帶過很多關於「效能」、關於「效能評測的設計」、關於「人對『快慢』的體驗感受」的探討,作者提醒讀者,當您們看了(卻未加深究的)某篇評測文,就想把手上的 Rails 專案砍掉重練,用個號稱更快、更有效率的語言、框架重寫的時候,請先評估這幾點:

  1. 換得的效能有實際意義嗎?
  2. 真的有打對痛處嗎?
  3. 換個陌生的新語言、框架,您們開發起來會更有生產力、更快樂嗎?

speedshop.co

Richard Clayton - Speaking Intelligently about "Java vs Node" Performance

另一篇「效能」文。主要講的觀念是「Java 與 Node 的運作方式不同,請不要用無法公平比較兩者能力的評測方式,斷然給予任一方正面或負面評價」、「對『效能』的計較,在產品開發過程中,並不是至高無上的最優先項目,當效能並非痛點時,還有很多像是『開發效率』等面向值得關注」與前一篇文在觀念上有些重疊之處,針對 Java 與 Node 處理多工的技術探討、掃盲之處,也值得一讀。

silvrback.com

State of the art in deploying Elixir / Phoenix applications

作者處理部署 Elixir / Phoenix 應用的心得,看的出來是歷經很多次踩雷而累積下來的寶貴實務經驗,很值得參考。

hackernoon.com

@uranusjr

The Python You Don’t Know

其實停刊一個月我都在打混怎麼辦,只好用自己的東西填版面趁機自肥。上一期結束後就跑去馬來西亞參加了 PyCon APAC 2017,講了這樣的一個 talk。

大家都說 Python 很簡單很容易學,身為 Python developers 覺得競爭對手到處都是怎麼辦市場要供過於求,需要趕快證明一下自己還是有點優勢,懂一些別人不知道的,你看看 Python 其實還是不簡單啊請給我黃金

「可是這樣大家不就都會了你哪來的優勢。」啊糟糕⋯⋯。

speakerdeck.com

@kkdai

深入討論 Bloom Filter

Bloom Filter 是在許多資料庫裡面與作為資料快速索引的時候,會使用到的資料結構。但是究竟為什麼要使用,還有使用了 Bloom Filter 會有哪些好處與需要取捨的部分。並且為何有些人會使用 Counting Filter?

最近在讀 Quotient Filter 於是乎把 Cuckoo Filter 跟之前的 Bloom Filter 都複習一下.. 順便把整個優缺點稍微整理一下。

evanlin.com

台灣使用 Go 語言的公司

在台灣使用 Go 的公司沒有很多,希望有一篇可以整理有在使用 Go 語言的新創或者是學校,也是希望給想找 Go 語言工作的開發者一些求職方向。

同場加映,如果要貼 Golang 職缺的話,歡迎在這裡張貼喔。

github.com

Golang 二进制文件混淆保护

Go 最大的好處就是沒有太多相依性可以很方便的部屬你的應用程式,但是如果應用程式沒有處理好,就會在 Panic 的時候洩漏你的 call stack。

該如何解決這個問題,這篇文章介紹了可以透過 go build parameter 與一些手法來做一些防範喔。

zhihu.com

@johnlinvc

每分鐘 450 個字的程式開發

這裡的速度不是輸出,而是輸入。芬蘭的一位視障開發者分享了用螢幕閱讀器在每分鐘 450 個單字的速度下讀程式碼的心得。文內有附範例聲音檔,大家可以挑戰看看能聽懂多少。

vincit.fi

iOSDC Japan 2017

上週去參加了日本社群辦的 iOSDC 。有很多有趣的內容,想看投影片的話可以去每個 speaker 的 Twitter 找找。台灣的 iOSDC 也正在籌備中,預計 2018 一月舉辦 。

iosdc.jp

RubyKaigi 2017

上週也去了 2017 年的 RubyKaigi ,是 Ruby 界比較特別的研討會。比起怎麼用 Ruby,更專注於怎麼樣 Ruby 變得更好。去年也有在那分享過在 Erlang 上跑的實驗版 Ruby, ErRuby

rubykaigi.org

研討會的小精靈法則

去了一些國內外的研討會,深深體會到在研討會除了學新東西之外,交新朋友也是很重要的。@ericholscher 提出了很實用的聊天原則,圍成一圈聊天的時候,永遠留一個開口,就像小精靈(Pac-Man) 一樣。這樣可以很明顯的讓其他人知道這邊的討論是歡迎任何人參加的。

ericholscher.com

@drumrick

CodeTengu 第 100 期,前 99 期總回顧!

首期參加 CodeTengu Weekly 就遇到 100 期這樣吉利的數字,自己內心興奮不已。所以就用一篇網誌,說說自己,說說碼天狗週刊。未來在週刊中我主要會分享機器學習以及 Kaggle 相關的文章,希望會有幫助,也歡迎指教。

medium.com

Learning by Hacking 網誌

這是我個人近年來,在機器學習領域,最喜愛的繁中網誌了。不走長篇大論的風格,也是以分享為主,用簡短的摘要說出文章重點,搭配收集好的相關資源。

另一個重點是很跟得上時代,基本上外國研究出來沒多久,只要主題是在他們關注的範圍,很快就發文了。尤其在重要研討會前後,天天都很熱鬧。

data-sci.info

Kaggle 官方網誌 No Free Hunch

提到 Kaggle 相關資源,第一個要推薦的就是官方網誌了。

有參加 Kaggle 經驗的人都知道,由於社群特色以及 Kaggle 官方的鼓勵,從競賽的 Kernels 以及討論區,能夠學到很多東西。其實競賽類型滿常重複的,譬如說房價預測就出現過很多次,廣告點擊的競賽也出現過很多次,圖像方面競賽關於物件的偵測或辨認也是常有,regression 或是 classification 就更多了。

Kaggle 官方網誌會從競賽中挑選出優質的 Kernels,也會定期發表對於優勝選手的採訪,大家可以從中去挖掘過去類似競賽優勝的訪談,相信對參加各種類型的競賽都會有一定的幫助。

kaggle.com

浅析 Hinton 最近提出的 Capsule 计划

zhuanlan.zhihu.com

Hinton 的 Capsule Theory 最早在 Transforming Auto-encoders 這篇論文出現,近半年 Hinton 在多倫多大學、麻省理工學院的演講,也都還會用到這篇論文裡面的圖。 2013 年 Hinton 進了 Google,直到 2014 年在 reddit 的 AMA (ask me anything)系列中依舊表示自己在 Google Brain 主要還是研究 Capsule Theory,還沒有發表的原因是因為,他自己還不滿意。而前一陣子,Andrew Ng 離開百度以後,弄了個 deeplearning.ai,在 Coursera 上面的課程裡,有一部份就是採訪深度學習的大神們,當然其中也包含 Hinton,Hinton 在採訪中也談到了 Capsule,還表示投稿被拒絕過。而最近顯然有了好消息,Research@Google 的網頁已經刊登 Hinton 關於 Capsule Theory 最新的論文:「Dynamic Routing between Capsules」即將在 NIPS2017 發表。

最近不知道是因為論文被接受了,還是因為 Hinton 被採訪了,還是因為李飛飛教授聲援了。這件事在中國機器學習界整個火了,各大網路科技媒體都有人在提,由於機器之心的文章破圖了,所以推薦了這篇。

這篇前段先講講 NN 的發展史,從 Gradient Descent 講到 RBM,再到 unsupervised learning,再回頭說 NN 近年來研究的停滯以及 BP 的優勢。中段開始解釋 Capsule Theory 相關知識,拿 CNN 不足的地方對比 Capsule 的概念。

zhihu.com

@wancw

Serverless Event Sourcing at Nordstrom

雖然 KKTV 的 API 踩過一些 AWS API Gateway + Lambda 的坑,最後選擇改回自己管理 server;但當時和同事們也想過:放棄慣用的架構、調整為 event driven 或許會更適合。

這篇文章給了這種方式的基礎情境範例和初期會遇到的挑戰,滿適合做為嘗試這種新架構時的開胃菜。

acloud.guru

[SCRUM] 那些年我們一起搞的回顧會議

近來開始覺得 Scrum 是心法大於招式的開發流程方法,每個團隊都會有各自的招式變化。

先不論到底是不是「正規的」Scrum,能夠趨向敏捷、持續改進才是真正要緊的。有時參考別的團隊的作法來截長補短也是蠻有幫助的。

blogspot.tw


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

CodeTengu Weekly 碼天狗週刊 - Issue 101 國慶日小測驗,若中華民國是指標,請問它是空指標、野指標還是懸空指標? - Oct 9th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一 AM 10:00 出刊,每期會由三位不同的 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到自已感興趣的東西,可能下一期就有了。你也可以瀏覽一下前幾期的內容

目前的 curator 陣容:

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

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

@fukuball

Feature Engineering 相關文章推薦

Machine Learning:中級

台灣 Kaggle 交流區 版主整理了有關 Feature Engineering 的一些文章,目前 Feature Engineering 算是大家比較少討論的一塊,但這一塊應該算是 Machine Learning 中相當重要的一環。

medium.com

林軒田教授機器學習技法 Machine Learning Techniques 第 13 講學習筆記

Machine Learning:中級

林軒田老師的機器學習技法課程在第 13 講終於講到了 Deep Learning,不過也就僅僅這一章有講到 Deep Learning 了,如果大家想要再深入了解 Deep Learning,那可能要移駕到李宏毅老師的課程了。

Deep Learning 究竟跟一般的神經網路有什麼不同呢?其實簡單來說,Deep Learning 就是一個比較深層的神經網路,而要訓練深層的神經網路運算量會比較大、容易 overfitting,也因此發展了許多深層神經網路特有的處理方法來訓練深層神經網路,Deep Learning 也因為不同網路結構的研究而形成越來越獨特的領域,現在都需要有專門的課程來學習 Deep Learning 了。

fukuball.com

Can we beat the state of the art from 2013 with only 0.046% of training examples?

Machine Learning:中級

剛看文章前半部份發現作者只用了 6 張圖片作為訓練資料就可以取得貓狗圖片辨識 89.97% 的準確率,著實嚇了一大跳,畢竟目前的 Machine Learning 演算法要可以 work 都是需要有大量資料,要能夠像人類一樣只用小數據就可以學習並取得高辨識率的演算法目前還在發展中,後來看到是使用 Transfer Learning 就... 覺得作者寫這樣一篇文章有點太大驚小怪了。

Transfer Learning 基本上會用之前已經訓練好的模型(或是其他相似領域的資料)然後再加上自己的小資料去做訓練,所以其實也是經過了大量資料做了訓練,並不是單純只用了 6 張圖片,這個故事告訴我們,要多看點書,不然不小心就會被騙啊!看來小數據機器學習模型目前還是夢啊!

medium.com

The Language of Hip-Hop

Data Science:中級

一直對音樂相關的資料分析應用蠻著迷的,這個研究分析了 308 位 Hip-Hop 藝人在歌詞寫作上的相似程度,並把這些藝人對應到一個平面,比如國外知名 Hip-Hop 團體 Wu-Tang Clan 的成員們依據歌詞相似程度幾乎都在平面相鄰近的地方,文章還有許多有趣的分析,並用生動的動態圖示呈現出來,蠻值得一看的~

pudding.cool

@uranusjr

SNAFU: Python Installation Manager for Windows

這一整週的空閑時間都花在這個東西身上,讓我賣個瓜吧。

在 Python 社群混一陣子大概或多或少會聽到大家對 Windows 總是感到頭痛。其實在 Windows 上用 Python 開發並不那麼糟,只是因為它和 Mac 與 Linux(i.e. Unix-like 系統)的設定邏輯相差太多,使得它們上面的 best practice 在 Windows 根本不適用。偏偏 Python 高手通常也很少用 Windows,使得網路上的教學要嘛完全忽視 Windows,要嘛用了從 Unix-like 系統帶來的錯誤邏輯,然後發現 Windows 這樣設定會出一堆狀況,就更排斥 Windows,一直循環讓 Windows 的 best practices 無法廣泛流傳。

最近在整理 Python 環境設定的 best practices,但是寫完 Windows 部分就發現這・太・難・了。重新研究了一番才發現官方其實早就提供了很詳盡的說明,而且解釋了怎麼在 command line 執行安裝程式,於是決定把這些 best practices 自動化。

SNAFU 是一系列 CLI 指令,讓你直接從 Windows command prompt 安裝指定版本的 Python。SNAFU 會自動設定好所有選項,並在同時安裝很多版本時,也能方便管理。從此之後,在 Windows 設定 Python 再也不需要一大篇教學,只需要這樣:

:: 安裝 Python 2.7 和 3.6
snafu install 3.6
snafu install 2.7

:: 執行 Python 3.6
python3.6

:: 執行 Python 2.7
python2.7

更詳細的教學可以看這裡,或者 project 頁的 README。

真心覺得 Windows 使用者值得 Python 社群更多注意捏。拜託別再直接放生用 Windows 的人;推薦他使用這個工具,然後試著 follow 一下 Windows 的哲學,讓 Windows 真的成為 Python 界的 first-class citizen,而不只是說說

github.com

First Pull Request

輸入帳號可以看你在 GitHub 上發過的第一個 pull request 是什麼。偶爾回顧一下黑歷史還滿有趣的。看完如果覺得不夠羞恥,下面還有個連結可以讓你看自己曾經發過的所有 pull requests 呢。

firstpr.me

@yhsiang

Await and Async Explained with Diagrams and Examples

這篇將 async/ await 介紹得很清楚。從 Promise 講起,並且搭配執行時候的圖。讓你清楚了解 JavaScript Promise 的運作模式,後面再帶到 async / await。

相信很多人都會寫 async / await ,但是背後的原理可以透過這篇,理解的更清楚。

nikgrozev.com

The Ultimate Guide to Flexbox — Learning Through Examples

給了相當多的例子,透過這些例子可以學習到 flexbox 及其相關的 css property。

需要花一點時間耐心地讀完,但是收穫會很多。

freecodecamp.org

5 things CSS developers wish they knew before they started

如果你是 CSS 入門的開發者,可以聽從這五點建議。

  1. 別低估 CSS
  2. 分享跟參與
  3. 選用正確的工具
  4. 弄懂 Browser
  5. 學會寫可維護的 CSS

css-tricks.com

Extend your Graphcool API with Resolvers

graphcool 是一個 graphQL backend as service 的服務。

最近推出了,可以撰寫 custom resolver function 的功能。

對 graphQL 來說 resolver function 是很重要的功能,雖然 graphcool 到最近才提供,相信對使用這個平台的人會有很大幫助,也會吸引更多寫 graphQL 的人去嘗試他們的平台。

graph.cool

Random Cool Stuff

3D Face Reconstruction from a Single Image

之前學過電腦動畫,每次要做立體模型都覺得超麻煩,讓我完全放棄了這個領域,現在或許已經有了許多工具可以來幫助快速建模,但從一張圖片就可以快速建立出對應的立體模型這種魔法我還未曾見過。這個研究目前已經可以快速從一張人臉圖片建立出相對應的立體模型了,屬於二次元世界的 2D 人物直接變 3D 的時代終於要來臨了嗎?

ps. 可以上傳自己的人臉圖片上去看看建出來的立體模型喔!

nott.ac.uk


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

CodeTengu Weekly 碼天狗週刊 - Issue 102 為什麼小明有問題都不 Google?因為他有 Bing - Oct 16th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一 AM 10:00 出刊,每期會由三位不同的 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到自已感興趣的東西,可能下一期就有了。你也可以瀏覽一下前幾期的內容

目前的 curator 陣容:

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

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

@chiahsien

Why many developers still prefer Objective-C to Swift

如今 Swift 版本已經演進到 4 了,但還是有不少工程師鍾情於 Objective-C,這是為什麼呢?本文作者採訪了多位工程師,詢問他們許多問題,諸如「為何還死守著 Objective-C、看到研討會上都是 Swift 的主題會不會感到不舒服、在社交平台上會不會羞於承認自己還在用 Objective-C」等等,滿有趣的一篇採訪。

當然,作者接下來又寫了一篇 Why many developers prefer Swift to Objective-C

hackingwithswift.com

Designing for iPhone X

這大概是目前為止,我看到最詳細的設計指南了。幾乎所有你想得到的都有涵蓋到,設計師應該把這一篇列印出來貼在牆上,以便隨時參考!

designcode.io

A Case For Using Storyboards on iOS

我只有在寫自己的 side project 或 prototype 時,才會用 Storyboard 去設計介面,工作的專案裡頭還是完全用程式碼寫出介面。

我其實有跟一些同事聊過這個話題,Storyboard 並非一無是處,只是我覺得很多人沒有正確地使用它。剛好最近看到這篇文章,作者對 Storyboard 的想法與使用方式跟我不謀而合:

  • 一個 Storyboard 裡頭只有一個 UIViewController
  • Storyboard 用來設定 constraints,其他畫面的設定都寫在程式碼裡面
  • 不要用 Xib 設計 UIViewController

作者也提供了一個把 UIViewController 跟對應的 Storyboard 設為同名的小技巧,可以讓開發變得更方便。

cobeisfresh.com

Closures: Swifty closures for UIKit and Foundation

這個東西把大部分的 UIKit 跟 Foundation 元件都加上 Closure 語法,讓開發者寫起來更加方便一點。這讓我想到在 Objective-C 時代很流行的 BlocksKit

github.com

iOS Device ID 的前世今生

IMEI、UUID、UDID.... 有沒有被這些名詞搞混過?有沒有想過該如何唯一識別使用者的裝置?從以前到現在出現又消失過多少種方法?這一篇文章應該可以解答你的困惑。

同場加映:

  • iOS 11: The DeviceCheck API: It’s an Apple approved, and guaranteed way, to identify your app as running on a valid Apple device while maintaining absolute user privacy.

juejin.im

inessential: On Fixing that NSNull Crasher in Overcast

Overcast 是我很愛用的一款 podcast app,它的開發者 Marco Arment 最近在 Twitter 上邀請別人幫他想想該怎麼解決一個存在已久的 crash。本文作者剛好看到了這則求救,並提供了一個可能的解法,而且還真的解決了問題。無論是問題還是解法都很有趣,值得一看!

同場加映:

PSPDFKit 的開發者 Peter Steinberger 最近也在 Twitter 上詢問一個 UIToolbar 在 iOS 11 產生的 bug,最後的解法也是很奇葩。

inessential.com

@drumrick

遲來的 Google Teachable Machine 簡介

雖然 Teachable Machine 發布已經兩週了,但是一直還沒去瞭解,藉著颱風天稍微看了一下相關資料,撰文簡單介紹一下,到底需要怎樣的技術支援,才能讓 Teachable Machine 這樣的應用誕生?

medium.com

Kaggle 教學網誌:語意分析 in R

文中使用 Tidytex 套件,分析 1989 到 2017 年間,美國的國情咨文內容。程式碼完整,簡單的視覺化呈現結果,文末附上幾個簡單的練習,最後並條列了幾個 Kaggle 上的語料庫,以及其他可供使用字典。

如果轉換到 Python 的部分,現在多數人使用的應該是 textblob,這個套件結合了 NLTK 以及 Google Cloud NLP 的 API,在此之上做了一層的封裝,很容易使用。

這些都是英文的部分,中文的話 Google Cloud NLP API 是有提供中文語意的判斷,但應該是要按次數比例收費的。公開的模型通常是以簡體中文為訓練資料,而且幾乎都是使用爬蟲爬某些網站的評分內容,例如電影評論網站、或是購物網站,導致並不是很適合普通情況的使用。

kaggle.com

量子位

這是一個微信公眾號的名字,專門報導與 AI 相關的新聞。因為我習慣看文章追源頭,最近看到這邊出來幾篇不錯的文,但是沒有微信無法追蹤,令我相當苦惱,只好迂迴一下,看看量子位的文章會被轉發到哪些地方,總共找到兩個替代方案。

微文庫量子位微信公眾號文章

優點

  • 文章齊全數量多
  • 有點擊數量顯示,可以自行挑選熱門文章

缺點

  • 版面比較雜,有廣告

量子位知乎專欄

優點

  • 有讚數,可以自行挑選熱門文章
  • 有標籤分類,可以選擇有興趣的標籤內容
  • 有評論區可以討論
  • 排版比較舒適,沒有廣告

缺點

  • 文章數比較少不齊全

CodeTengu Weekly

在 Medium 上找到有興趣的人來追蹤

我自己剛開始用 Medium 的時候,也感覺不知道要追蹤誰。最近也有幾位朋友剛開始用 Medium 有這樣的問題。所以看到這篇感覺挺有趣的,可以用類似方法不同定義去找到自己可能有興趣的使用者。

作者自己寫 Python 抓 Medium 上面的資訊,尋找自己可能感興趣的使用者來追蹤。程式碼很簡短,有在 Github 上面,一開始作者本來要用 Medium 自己的 API,不過因為功能有限,所以後來還是用爬蟲的方式來做。

我自己是感覺 Medium 官方比較是用內容為主的推薦方式在推薦文章,所以用作者這種 CF 方式來找相同興趣的使用者,也是一種相輔相成的做法。不過我感覺台灣用戶留言的比例還是比較低的,可能要退一步改成:追蹤我的使用者還追蹤了哪些使用者?或者是:對我的文章鼓掌的使用者還對哪些文章鼓掌?可能會有比較多的結果。

freecodecamp.org

Google 及 Uber 內部,深度學習的最佳實踐 (in production)

Google 以及 Uber 都有在這方面發表論文,本文簡略地從幾個角度去看 Google 以及 Uber 流程的設計,到底解決了哪些問題。在這邊我簡單的筆記,但是內容滿好的,建議閱讀原文,有能力的話閱讀論文。

Uber

  • 專案名稱:米開朗基羅
  • 數據平台,加上機器學習功能
  • 有一個叫做 Feature Store 的東西,各個團隊把自己要用的 feature 都加到 裡面,這樣團隊之間可以共享、重複使用各個 feature,而 feature 是每天自動計算並更新的。
  • 內部的 DSL 做 feature engineering

Google

  • TFX 論文,內有影片。
  • 自動對每個資料集做 data analysis
  • feature engineering 雖然沒提到名稱,但應該就是用 dataprep
  • 有一個資料檢查的機制,可以提早偵測到資料錯誤的情況,而暫停之後的動作。
  • 剩下的基本就是 TensorFlow Serving。

medium.com

@wancw

(Git) Rerere Your Boat...

前兩天在推特上看到一篇 每個開發者都該知道的 Git 基礎指令 。果然很基礎,連 diffrebase 都沒提到。 (題外話,各位覺得教入門者 resetrebase 哪個危險呢? :p)

不過倒是讓我想起了一個我從沒用過的 Git 指令:rerere,不知道各位讀者有沒有人用過這個指令?歡迎到碼天狗的 [Gitter 聊天室] 分享一下經驗,也歡迎各位來交流一下少見但是好用的 Git 指令。 :D

P.S. 懶得看英文的話,Ruby China 上也有一篇分享: 你可能不知道的 git rerere

git-scm.com

说说 Code Review

自己绕过一个坑不难,难的是看到别人那么走,远远地你就能告诉他/她那里有个坑

Code Review 的文章不少,這篇也歸納了幾個面向:排版、可讀性、極端情況、錯誤處理、測試、架構。但我覺得文章裡提到的心態更重要:

代码审核是工作,不要抱有情绪化

在不违背公司 style guideline 的情况下,没必要一定让对方和你有一样的习惯。

相互 review 的过程中还能从彼此那里学到很多编程的小技巧和好习惯

Code Review 是互相學習,不是找碴、挑毛病。

qq.com

IOCCC vs Clean Code

這篇舊文沒什麼新技術。只是作者嘗試整理一份 IOCCC (The International Obfuscated C Code Contest) 上的程式碼,讓它更可讀、好懂的過程。包括:調整排版、提取函式、取有意義的名稱、……,可以在 GitHub 上找到完整過程。

算是個很有趣的實驗過程,可以從簡單的例子中學習如何整理出好讀的程式碼(clean code)。學新技術學到頭昏演化的話,可以來看一下轉換心情。 XD

balabit.com

工作機會

EscapeX 強力徵求 Java 後端 / iOS / App QA 工程師

EscapeX 和超過 70 位全球頂尖的好萊塢、寶萊塢藝人合作(拉丁歌王馬克安東尼、復仇者聯盟「鷹眼」傑瑞米瑞納等),建立專屬藝人與粉絲間的私密互動俱樂部,目前在世界各地有八個辦公室。我們正在積極擴充團隊,尋找對 Java 後端 / iOS / App QA 充滿熱情的夥伴,快把履歷寄到這裏吧!

104.com.tw


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

CodeTengu Weekly 碼天狗週刊 - Issue 103 If 判斷式就是窮人版的決策樹 - Oct 23rd 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一 AM 10:00 出刊,每期會由三位不同的 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到自已感興趣的東西,可能下一期就有了。你也可以瀏覽一下前幾期的內容

目前的 curator 陣容:

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

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

@hiroshiyui

The Internals of PostgreSQL : Introduction

一個詳實講解 PostgreSQL 運作機制的網站,其實這是鈴木啓修さん (SUZUKI Hironobu) 很佛心地將他的著作《PostgreSQL全機能バイブル》幾乎整本的翻譯為英文,放到這個網站上,很具參考價值。

就我可能有點受到同溫層影響,而得到一個或許是刻板印象的印象,PostgreSQL 在 Rails 開發社群裡,還蠻常見到它被選用為後端資料庫系統的,不過我自己之所以用起 PostgreSQL 反倒是中途一度跑去寫 PHP 時,為了處理專案中某個惱人的樹狀資料結構,而發現 PostgreSQL 的 ltree 特好用,就此成為愛用者。然而我就也只是個只知基本操作的 PostgreSQL 用戶,在工作中碰到資料庫效能瓶頸時,方知我對 PostgreSQL 內部運作機制一無所知,這本書正巧起了個很豐富的知識補充作用。如果您也有跟我類似的背景,這本 PostgreSQL 線上電子書或許也會適合您一讀。

interdb.jp

給 C++ 使用者的 Rust 簡介

Rust 在產品定位上是 system programming language,在這個領域的市場霸主是 C/C++,這系列文章是針對已有 C++ 基礎知識的人士寫的,以等價、類比概念來介紹 Rust。

同場加映:

electronic.blue

JSON API — A specification for building APIs in JSON

在學著刻 API 的時候,發現這個名稱不怎麼特別的(畢竟在這時代 server-side 只要會吐 JSON 的就叫 API)、不酷不炫不潮不夯的東西(在 2013 年就已經略具雛型了,2015 年中推出 1.0 版…)。

簡單說,這個 JSON API 就是一份 API 實作規範、準則,照著實作,您的 API 產品基本方方面面就大致上可說是五臟俱全。對於想要做 API 產品而怕莫衷一是、掛一漏萬的人來說,這個 JSON API 是很不錯的進入點、地基。

同場加映:

jsonapi.org

@kkdai

How refactoring my C++ application into a Go library made it better in every way

Cmeradar 後端工程師解釋當初開發過程中,如何把 C++ 的部份重構改成 Go

Cmeradar 這個套件很有趣,他會掃描你網路區段中是否有 RTSP server (port 554) 然後直接試著連接到 server 並且提供可用的 RTSP 鏈結 (可用 VLC 播放). 有興趣的人可以看看相關實現的部分...

當然如果你想自己弄 Golang RTSP client 可以看看以下這個鏈結 透過 joy4

medium.com

NVIDIA/k8s-device-plugin: NVIDIA device plugin for Kubernetes

https://github.com/NVIDIA/k8s-device-plugin

Kubernetes 在設計上有著相當程度的擴充性,在當初有 plugin 的架構就可以看出來. 比如說: Network Plugin 讓 CNI 可以輕鬆地整合. 1.8 版剛開放 alpha 的新功能 "Device Plugin" 更強,可以讓 GPU, 高效能網卡, FPGAs 甚至是 InfiniBand 輕鬆的整合在 Kubernetes 之中

原本在 Kubernetes 內預設只能抓取到 CPU 與 Memory 的狀態(不然,就得很辛苦.. 你懂的) 但是透過了 Device Plugin 你就做以下的事情:

  • 輕易的讓 Kubernetes 內所有的 container 可以存取該裝置
  • 輕易抓取到 GPU (或是高效率網卡) 的訊息
  • 透過 Kubernetes 的 Health check 來檢查裝置狀態

有興趣的可以再看看 Kuberentes 文件

題外話: CPU 與 GPU 到底差在哪? (XDD)

github.com

Machine Learning Platform meetup – Netflix TechBlog

什麼樣的 Meetup 講者包括 Google, Twitter, Uber, Facebook 與 Netflix? 當然就是由 Netflix 所舉辦的 Machine Learning Platform Meetup

裡面包括了兩套剛剛 Open-Source 強大的工具 Netflix/vectorFlowUber/Horovod

五篇 talk 包含了三套系統與兩個 Machine Learning 的經驗分享.. 不愧是第二外星科技產生的公司 (Netflix) 舉辦的 Meetup

medium.com

如何基于 Go 搭建一个大数据平台

這篇文章講解了七牛如何使用 Golang 打造他們的大數據平台服務 (Pandora) 裡面包括了簡單的架構圖,與可能會遇到的問題,包括了:

  • 高吞吐 (high throughput)與低延遲 (Low latency)
  • 高可用 (HA) 與水平擴展 (Scale-out)
  • 自動化營運 (Automation)

文章的本文真正提到 Golang 的優點部分並不多, 但是許多內容提到建置一個大數據平台應該要有哪些要注意的地方. 很值得好好研究.

qq.com

[中文導讀] Are You a Software Architect?

之前在網路上有個有趣的討論, 究竟前端工程師需不需要了解演算法.

這就讓我思考到,那麼一個軟體架構師需要哪些能力呢? 這篇文章可以來了解一下... 不論你已經是軟體架構師,或是你正想將你的專業領域網軟體架構師來邁進,都建議來看一下.

evanlin.com

@johnlinvc

Working with TIme Zones

最近把台灣的時區改成 +9 的提案 引起不少討論。本篇就是 W3C 對處理時區的建議。有處理過就知道台灣沒有日光節約時間真是超幸福的。不然 stackoverflow 上處理日光節約時間的提問 就不會這麼熱門了。要是真的改時區的話,台灣的工程師需求大概會增加 20% 吧XD

w3.org

Mongodb Stale Read

最近在處理一些mongodb 的問題。發現這篇關於 mongodb 一致性(consistency) 的文。裡面分析了為什麼mongodb 2.6 即使在最高的 write concern, MAJORITY 下也會產生 dirty read。也就是沒辦法保證讀取自己剛剛寫入的值會得到一樣的結果。

aphyr.com

Apple 如何偵測 Hey Siri

最新一期 Apple Machine Learning journal (blog ?) ,講解了他們怎麼用 Deep Neural Network (DNN) 來偵測 Hey Siri。特別有趣的是在行動裝置的電力和處理能力限制下,先在比較不耗電 coprocessor 上用一個小的 network 來偵測可能的事件,機率高的話再開啟主要的處理器來做精準的偵測。這也解釋了為什麼有 coprocessor 的 iPhone 能在任何時候都聽到使用者的呼喚,但是又不把手機的店吃光光。

apple.com

Random Cool Stuff

迴紋針製造器

AI 界有一個有名的思想實驗,Paperclip maximizer。 內容是關於如果讓一個製造迴紋針的 AI 無限制的發展會發生什麼事。 現在有人把它做成了一個 web game !

PS. 他使用了 Local Storage,你可以安心地關掉它去睡覺,明天再繼續製造迴紋針。

decisionproblem.com


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

CodeTengu Weekly 碼天狗週刊 - Issue 104 當你凝視 bug,bug 也凝視著你 - Nov 6th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@vinta

Build a recommender system with Spark: Logistic Regression

前陣子寫了幾篇文章專門在講用 Apache Spark 搭建一個 GitHub repo 的推薦系統,打算寫成一個系列,不過因為身體不適中斷了好一陣子,所以寫著寫著 GitHub 都推出自己的推薦系統了(攤手)。言歸正傳,這篇文章主要是在講用 Logistic Regression 來對推薦結果排序,重點放在特徵工程和 Machine Learning Pipeline,對 LR 演算法本身沒有太多著墨,畢竟它就是個線性模型嘛。

延伸閱讀:

接下來是個沈重的題外話,由衷地建議大家真的要好好注意自己用電腦、用手機的姿勢,因為我最近才被診斷出頸椎椎間盤突出壓迫到神經,這個發作起來真的不是在開玩笑的,手腳又麻又癢又痛,你根本沒辦法專心做任何事,連好好睡一覺都不行。我最近吃了一堆止痛藥和肌肉鬆弛劑,都他媽快變成燕南天了。大家就想像一下有個跳蛋在你的骨頭或是神經的深處,三不五時就震一下,喔,那可一點都不好玩。

vinta.ws

Build a recommender system with Spark: Content-based and Elasticsearch

這一篇也是 GitHub 推薦系統系列的文章之一,講的是大家喜聞樂見的 Content-based Recommendation。我原本是打算把 repo 的文本資料轉成 Word2Vec 向量,然後計算各個 repo 之間的相似度(所謂的 Similarity Join),但是要計算這麼多 repo 之間的相似度實在太花時間了,就算用了 Locality Sensitive Hashing 也還是太久又容易 OOM。後來一想,尋找相似或相關物品這件事不就是搜尋引擎在做的嗎,所以後來就直接改用 Elasticsearch 了。用 document id 當作搜尋條件,一個 More Like This query 就解決了,清爽利落。畢竟不需要所有的事情都在 Spark 裡解決。

vinta.ws

基于 Spark UI 性能优化与调试 —— 初级篇

在寫程式的時候偶爾會發生「我明明只是加了一行簡單的 code,為什麼整個程式的效能就掉了這麼多」的情形,只因為我們對那行 code 實際上到底做了什麼其實並不清楚。更慘的是你的程式還是跑在一個分散式系統上時。幸好 Spark 提供了一個非常棒的工具:Spark UI。透過 Event Timeline 和 DAG Visualization,你可以看到非常詳細的整個 Spark application 的執行過程,例如某個 job 的某個 stage 的某個 task 做了什麼、花了多少時間和在哪一台機器上執行,甚至能夠精確地定位到是在你的 code 的某個檔案的某一行的某個 function call。真希望所有語言和框架都有這樣方便的工具啊。

不過老實說 DAG Visualization 第一眼看起來真的是讓人眼花撩亂,尤其是當你操作的是 Spark SQL 和 DataFrame,但是 Spark UI 顯示的其實卻是低層的 RDD operations,是需要花一點時間熟悉的。雖然你可能得先對 Executor、RDD、Partition 或 Shuffe 這些東西有點概念。

延伸閱讀:

cnblogs.com

Google - Machine Learning Glossary

這是 Google 製作的一份機器學習的常見詞彙表,非常實用!

google.com

MySQL vs. MariaDB vs. Percona Server: Reality Check

Percona 製作了一份表格,比較了 MySQL、MariaDB 和 Percona Server for MySQL 之間的異同。對有在評估選用或是跳槽到其中之一的資料庫的人應該很有幫助。不過如果你看完還是不知道該選哪個,黃金法則:你就閉著眼睛挑最多人用的那個就好了。

雖然當年 MariaDB 是打著 "a drop-in replacement for MySQL" 的名號,但是現在都 2017 年了,滄海桑田啊。而且大家對「相容性」這三個字可能都有更現實的認知了,畢竟它們就是由不同的人在不同的時間以不同的方式開發的不同的產品啊。

延伸閱讀:

percona.com

@tzangms

Managing from Afar: How to Run a Remote Team

這是 Zapier 他們自己的文章, 其實 Zapier 真的不錯, 他們的 content marketing 也一直做得很好, 是少數我每次收到 email 都會打開看文章, 而且覺得文章有很多寶的一家公司。

這篇主要當然還是在講 Zapier 如何進行遠距工作的管理, 還有他們所用到的工具跟流程。 但要做這件事情之前, 底子真的得先打好, 像是文化這件事情就真的很重要, 而你知道自己想要用什麼人也很重要。

前一陣子一直在研讀 GitLab 的 Team handbook, 這個真的很棒, 不管是文化、做事方式,幾乎都寫得清清楚楚的, 每個人到職就讀個一遍, 馬上可以進入狀況。

我覺得參照 GitLab 把你自己公司的 Team Handbook 寫出來, 要開啟 Remote team 的底子就有了。

zapier.com

Product Manager Skills By Seniority Level  —  A Deep Breakdown

最近終於把手上兩個產品的產品經理都找到了, 比起先前找到的好上不少 XD 唉, 原以為 PM 就是把我手上非技術的部分抽出來就可以了, 但是老實說我幾乎沒有跟 PM 共事過的經驗, 所以整個很難拿捏, 搞不好我身上負責的 PM 工作內容, 都可以找 Senior PM 或是 PM Lead 了 ( 無誤 )

先前在碼天狗就一直在發 PM 相關的文章, 因為我真的為了辨識所謂好的 PM、知道 PM 到底在做什麼事, 這些事上花了不少功夫。

而這篇則是直接對於 PM 的各種技能標示出了不同的等級來標示 PM, 這真的是太棒了, 我其實最近也想幫我們工程師做類似的事, 這樣可以幫助我們工程師知道他們還要學習、經歷過哪些事情才可以到下一步, 讓大家有更明確的目標。 ( 但應該已經有類似的文章了才對 )

總之這篇很不錯, 對於 PM 這職務不清楚的朋友們可以看看, 可能大家平常身邊看到的大多都只是 PM 助理的程度, 甚至連 PM 助理都還不到, 好啦, 我覺得這真的很多。

medium.com

反击爬虫,前端工程师的脑洞可以有多大?

真的是腦洞大開, 學習了, 很多很有趣的方式啊!

jobbole.com

Engineering growth: introduction

Medium 的工程師成長框架, 我還沒全部讀完, 但覺得一定得好好拜讀一下, 先分享給大家!

medium.com

@kako0507

Introduction to CSS Grid Layout

CSS Grid Layout 已在目前各大主流瀏覽器(Chrome 、 Firefox 、 Safari 、 Edge)上被實作,是 flexbox 外另一種方便的排版選擇,方便處理 2D grid 的排版,可以透過本篇文章簡單的圖解來快速入門。

github.io

An event for CSS position:sticky

position: sticky 語法有點類似 position: fixed,在 parent element 滾動到可視範圍就會自動轉變為像是 position: relative 的功能,本篇文章透過 Intersection Observer 來實作出 sticky change event ,簡單的檢查目前瀏覽的範圍。

google.com

Partially-applied (or curried) functions could obfuscate the JavaScript stack trace

Pointfree style 意即在一些 function 組合的過程中,不需要直接去操作 data ,可以減少一些不必要的命名,讓程式保持簡潔易讀,不過在執行過程中會使 call stack 集中在一些通用的 function ,而不是主要的程式內,debug 就會變得麻煩,這裡也提出一些方式來 trace 程式上的錯誤。

hackernoon.com

工作機會

阿里巴巴 - Java 技术专家

我们是阿里巴巴新零售事业群负责阿里巴巴集团无线数据采集的部门,阿里是一家数据公司,每天有亿级的数据通过我们的数据网关到达集团各个业务系统,驱动导购,搜索,推荐等等业务的发展。未来这里会覆盖数据采集,用户增长,IOT,边缘计算等等诸多赋能阿里整个生态的场景,我们非常希望您能加入我们,一起用数据改变商业!

岗位描述:

  1. 承担核心功能代码编写,重点项目架构设计开发
  2. 深入理解业务需求,分析和发现系统的优化点,负责推动产品性能和架构优化
  3. 新人指导、培训及 Code Review,主导技术难题攻关,提升团队整体技术水平

岗位要求:

  1. 计算机相关专业本科及以上学历,三年以上 Java Web 应用软件开发经验
  2. 精通 Servlet、Spring、Hibernate、iBatis、Velocity 开发,对 SOA 模式有深入理解,对虚拟机及 Linux 下的开发环境有 较深厚的开发经验
  3. 熟练 MySQL,对数据库有较强的设计能力,同时熟悉大数据相关技术
  4. 熟悉 Maven 项目配置管理工具,熟悉 Tomcat、Jboss 等应用服务器,熟悉高并发处下的性能优化
  5. 熟悉网络编程,具有设计和开发对外 API 接口经验和能力
  6. 具有良好的沟通,团队协作、计划和创新的能力

alibabagroup.com

阿里巴巴 - 客户端技术专家

岗位描述:

负责数据采集 SDK 的研发和架构升级维护工作,在这里你将直面海量用户,你的每一行代码将在上亿设备上运行,你的每一次优化将直接影响全球消费者的购买习惯,加入我们一起为全球消费者打造简单高效的购物动线。

岗位要求:

  1. 3 年以上 Android/iOS 开发经验;有丰富的客户端应用架构经验,可以独立承担架构设计,并主导项目
  2. 熟练掌握设计模式,对架构解耦和主流编程模型有较好的实践经验
  3. 精通 Android 或 iOS 调试工具和方法,可以应付各种 Android/iOS 复杂问题
  4. 有高度的工作热情和自我能动性,项目和技术推动和执行能力强,有团队合作精神。
  5. 有越狱开发经验或者服务端经验开发经验优先

alibabagroup.com


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

CodeTengu Weekly 碼天狗週刊 - Issue 105 做不出來時,資深工程師知道什麼時候該站起來走一走,更資深的工程師知道什麼時候該跑 - Nov 13th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@saiday

CocoaPods 的 use_framework! 是在 use 什麼 framework?

最近跟朋友聊到 CocoaPods 的 use_framework! attribute 時驚覺自己不清楚為什麼要用 Framework 才能讓 CocoaPods 整合 Swift project。
考察之後對 Framework 跟 Static Library 這兩種 Cocoa Touch 支援的依賴引入方式更認識了一點,跟大家分享一下。

CocoaPods 以往預設是會把依賴編譯成 Static Library,當時 Swift 不支援編譯 Static Library 所以就得用 Framework 的方式來引入,不支援的原因就是 iOS 版本沒有 Swift runtime,詳細可以參考 CocoaPods 0.36 release notes

Framework 跟 Static Library 是兩種不同的依賴引用方式,沒有誰比較先進的問題,取決於使用情境。
但以 app 開發者來說,要特別注意 Dynamic Framework 會使你的 app 啟動時間變長,因為在 app 啟動時才由 dyld 載入 framework (參考:How we cut our iOS app’s launch time in half),開發中也需要花時間去 compile 這些依賴,如果是 Static Library 或 Static Framework 就沒這些問題。

CocoaPods 已經支援 Static Framework,也在做 Static Library 相關支援 了,用 Swift 及 CocoaPods 開發的人可以關注一下。

fastred/Optimizing-Swift-Build-Times: Collection of advice on optimizing compile times of Swift projects.

「看看我!看看我!我身體裡的怪物已經長得這麼大了哦」

Swift project 的 build time 會隨著 project 變大指數型的成長,這幾年越來越常看到大家在 building 的時候跑到 SNS 上放風。

這篇文章收錄 build time 優化的事項、介紹跟參考文章,推薦大家看一下。
裡面有提到一篇 Regarding Swift build time optimizations,大家可以感受一下 Swift compiler 在很多常見的寫法下出現的巨大效能落差。

補充一個我覺得很實用的 Xcode plugin https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode,讓你知道你的 functions 的 build time。

github.com

Video Processing on Android

App 的影片製作是很少看到的分享主題,這段針對 Android 的影片製作 talk 給了很好的技術選擇參考。

Android 不像 iOS 可以直接使用 AVFoundation 來處理影像編輯,除了 MediaCodec, MediaExtractor 可以幫到一些前期的忙之外,大部分的事情都要自己幹,在這種情況下,所謂的技術選擇就很重要,因為會有很多取捨。

剛好我在工作上 (StreetVoice) 也做過類似的事情,我的做法大致上跟這個 talk 提到的很接近,不一樣的地方是我多用了 OpenGL ES 畫 surface 再 encode 成影片後才做 layering, muxing。

工商:如果你有興趣的話,StreetVoice 正在徵 Android developer,趕快應徵的話還來得及把相關的功能留一部分給你做! (StreetVoice 影片製作的結果)

realm.io

Diving deep into Kotlin Coroutines

Coroutine 是 Kotlin 1.1 加入的重要特性,官方的 Coroutines Tutorials 寫得很完整,建議先看一下。

而本篇文章介紹了 Coroutines 這個語言特性的實作方式,簡單說明了 compiler 的參與機制到使用的狀態機架構。

我同意 這篇文章下面留言 的說法: Kotlin 的 Coroutine 可以跟 RxJava 這類 Reactive 框架做分工,把 Threading 的事情都交給 Coroutine 做,因為它寫出來的程式碼表達力更好。把那些真正需要 pipeline 的事情再交給 Rx 就好。

補充:Anko Coroutines 是相關的 Kotlin 工具,那個產生 weak reference 的 asReference() 是個方便的 method。

如果你想要再確定 Coroutine 跟 Thread 的差異:One can think of a coroutine as a light-weight thread ...

kotlindevelopment.com

@fukuball

林軒田教授機器學習技法 Machine Learning Techniques 第 14 講學習筆記

Machine Learning:中級

上一講介紹了深度學習神經網路,基本上神經網路林軒田老師只說明了兩講,這一講將進入一個新的 Machine Learning 演算法 Radial Basis Function Network(我個人不太覺得這個是神經網路演算法),並延伸介紹了其中會使用到的 K-means 分群演算法,RBF Network 基本上就是透過訓練資料各群中心點的距離公式對資料進行投票的一個算法。

fukuball.com

How Adversarial Attacks Work

Machine Learning:中級

之前 Google Brain 曾經揭示任何分類(或者辨識)機器學習模型都可以用一些技巧來讓模型的辨識能力失效,這個問題在 AI 應用越來越廣泛的未來可能會成為一個嚴重的資安問題,駭客可以用這些技巧來攻擊 AI 應用,這些攻擊又可分為 Non-targeted Attack(單純讓機器學習模型失效)或是 Targeted Attack(讓機器學習模型辨識成特定結果,讓駭客可以裝成某人),本篇文章淺顯地說明了這些攻擊,目前也越來越多關於這個問題的研究了,值得了解一下。

xix.ai

Colorizing B&W Photos with Neural Networks

Machine Learning:中級

前一陣子有位演算法工程師 Amir Avni 在 reddit /r/Colorization 看板(這個看板是一個分享將黑白照片 photoshop 成彩色照片的看板)發表了他用 Neural Networks 訓練出來的黑白照片自動著色模型,震驚了這個看板的所有成員,包含了本文作者 Emil Wallner,於是他也照著相關論文的方法實作一遍,並把過程記錄下來。

我對他使用的 FloydHub 服務還蠻感興趣的(看起來他在那邊工作?業配文?),標榜是 Deep Learning 的 Heroku,還有 GPU 可以用,感覺很不錯啊!

floydhub.com

How to Deploy With Deployer

PHP、DevOps:初級

應該不少人使用 Ansible 這個工具來做 deploy 吧!個人覺得真的蠻好用的。而在我看到 Deployer 時有種看到 Ansible 的既視感,也是一樣簡單易用,設定好環境之後只要下 dep deploy 就可以 deploy 了,如果發生錯誤只要下 dep rollback 就能回復上一版本,蠻酷的。

如果你的專案是用 PHP 寫的,那的確可以試試看 Deployer,至於改用 Deployer 的理由我也幫忙想好怎麼說服團隊了:

  1. Deployer 是完全用 PHP 寫的,不用再裝其他東西
  2. Deployer 文件比起 Ansible 簡單易懂多了,如果還沒導入 deploy 工具,那就先試試 Deployer

tutsplus.com

@mingderwang

Parity 錢包合約漏洞

Peter Lai 在這篇文章裡,介紹為何 Parity 多人簽章錢包 1.5+ 版有漏洞,是什麼樣的錯誤寫法,造成 7 月時被駭客偷走等值 3 千萬美金的以太幣。

其中,最近又發現另一個寫得不好的地方,就是把副程式庫的地址寫死在地址 0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4,5 天前原程式部署人卻又意外的把這副程式 kill 掉,也就是所謂智能合約的 suicide (自殺)。因此,其他用這程式的錢包,執行上都會有問題,當然錢也領不出來了。

有興趣研究或撰寫智能合約的朋友們,值得仔細研讀。也不妨自行部署一個有問題的程式,親身體驗一下錢拿不出來的感覺。

medium.com

Ten interesting features from various modern languages

喜歡研究電腦語言的人,一定會喜歡 Kasper Peulen 這篇文章。

他利用幾種新語言,例如 ReasonKotlinDart、以及 Apple 的 Swift,來介紹幾種特殊且有趣的程式寫法,例如 pipeline、cascade、以及 currying 等。

雖然這些語言都有點新,但這些寫法可能早在 Lisp (1958),Smalltalk (1972),Objective-C (1984),Haskell (1990) 或 OCaml (1996) 的語言裡,早已經都有了。

medium.com


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


CodeTengu Weekly 碼天狗週刊 - Issue 106 大家都說除錯的難度要比程式被寫出來的時候難兩倍以上,因此,理論上你沒有能力除錯自己用盡全力寫出的精妙程式 - Nov 20th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@uranusjr

Careful With That PyPI

教你怎麼讓 Python 社群大暴死:想辦法得到某個有名 package 作者的電腦,然後看他家目錄裡面的 .pypirc。這個檔案的內容會像這樣:

[pypi]
username:uranusjr
password:s3cr3t

更新他的有名 library,在 setup.py 裡執行 rm -rf / 之類,再用這組帳密上傳 PyPI 就好了。很多人都用 sudo 在更新 Python 套件,而 setup.py 允許 arbitrary code execution;PyPI 更新套件時沒有主動確認機制,所以等作者輾轉發現時,應該已經有無數人中招了。

我之前好像有分享過 setup.py 的 remote code execution 問題,不過這只是弱點的一部分——最大的漏洞是 PyPI 竟然要求你把密碼用明碼存在檔案系統裡。這問題也很久了,但 Glyph 又當了一次勇者跳出來發聲,並且教大家有什麼方法可以 workaround 這個可怕的弱點——大致的概念就是把密碼存在 password manager,然後用一個 custom function 動態讀出密碼、寫入檔案、上傳 PyPI、使用完清理。他提供了 1Password 和 LastPass 的解法,不過如果你像我一樣用 macOS 內建的 KeyChain Access,也可以用內建的 security command 達到同樣效果。我是用下面的方法拿到密碼:

security find-internet-password -ws 'pypi.python.org'

延伸閱讀:如果你完全不懂怎麼發表 Python 套件,也趁這個機會學一下吧。現在也越來越多人會把專案發佈在 GitHub 上,但很多時候如果能發到 PyPI,一來能見度更高可以幫助更多人,二來也會讓你學到更多模組化技巧,寫出更好的 Python 程式。可以參考 Hynek 的惡補式教學,裡面也包含了這篇的密碼管理技巧,比官方的教學文更適合快速學習——學會之後,再看官方教學補足背景知識就好。

twistedmatrix.com

Flat UI Elements Attract Less Attention and Cause Uncertainty

文章摘要:扁平 UI 設計常使用效果較弱的符號。在眼球追蹤實驗中,符號效果較弱的 UI 擁有較少各類點擊線索,迫使使用者在面對 UI 時需要付出更多努力。

(後面不是引文內容,是我自己的想法。)

舊的網站設計 (2010 左右) 沿用從單機 PC 時代模仿現實世界事物的 UI 設計,按鈕看起來就像按鈕,所以使用者在面對新介面實,更容易推論各元件的作用。扁平 UI 的互動元件並沒有很明顯的特徵,使得使用者需要學習;每個網站都有自己的 UI,使用者難以沿用既有的使用經驗,使得扁平 UI 的問題更加明顯。

如果你設計的 UI 只能在少數地方使用(而不是像 iOS 那樣大家都有大把機會學習),又想更接近扁平設計(畢竟這確實是現代設計的潮流),那麼 Google 的 Material Design 是個很好的折衝。它採用了很多流行的扁平設計,但是加入了少量的陰影來表達遠近感,加強可互動性的提示:另一方面,這些陰影仍然只停在功能性的提示,而非用來模擬現實事物,因此不會太囉唆,仍然維持一定的極簡風格。設計本身好不好看還是看人,但是後面的設計邏輯很值得學習。

nngroup.com

Why I cancelled my ReactiveConf talk

最近越來越多活動有 Code of Conduct 了,主辦單位慢慢有經驗之後也懂得怎麼處理一些問題行為,真讓人開心,希望這樣也能讓更多人在社群裡覺得舒服。但是如果主辦單位自己違反 CoC 又能怎麼辦?也不能怎麼辦,所以這個講者就決定不參加直接回家了,talk 就放生⋯⋯。

這件事情最可憐的反而是沒邊站的會眾,付錢進場然後就這樣少了一個優秀的 talk。而這個結果其實完全是主辦單位可以預先避免的,畢竟事先徵求講者同意也是常識等級的事情。當然 hindsight is always 20/20 所以我也不覺得該怪誰,但是這件事情對辦活動的人都是個警惕:不要假設,盡可能取得各方面的同意再做事,寧可囉唆也沒關係。

medium.com

@drumrick

機器學習領域問題的最新學術成果列表

這個類似 awesome list 的 github 頁面,將機器學習問題分為 Speech、Computer Vision、NLP 三大類,以算法實作作為區分,條列了各個問題目前最好的學術成果,同時整理論文使用的 Metric 方法以及成績,相關實作程式碼連結,以及發表年份。看不懂?覺得自己該努力學習了嗎?這裡附贈 awesome-courses 想學什麼應有盡有!

github.com

2017 台灣人工智慧暨資料科學年會資料整理

上週剛結束的 2017 台灣人工智慧暨資料科學年會,在我的同溫層中觀察,似乎是一片好評,也讓無法參加的我有點遺憾,只好透過講者的投影片以及參加人員的共筆來望梅止渴,在此文中分享一些收集到的連結。

medium.com

Deep Learning with Keras

這是一個剛開始教學系列,屬於正在進行式,是我在台灣資料科學同好交流區找資料的時候看到的,根據作者表示,只是自己學習過程中的紀錄。

以目前的走向來看,是一個比較偏向動手做的學路路徑,Keras 是滿適合新手使用的,而讓我一看到這個系列就眼睛為之一亮的點在於,(我感覺)作者非常用心挑選使用的資料集,讓資料比較有實用性或是趣味性,比較能引起大家動手玩玩看。

github.com

Google 發布 TensorFlow Lite

過去一週還有一件大事就是,Google 發佈預告了好久的 TensorFlow Lite。以輕量、跨平台、快速為主要重心,使開發人員能夠更容易部署 TensorFlow Model 到手機以及嵌入式系統。

訓練模型的部分還是一樣用 TensorFlow 在伺服器上訓練,透過 TensorFlow Lite 的模型轉換器,將訓練好的模型轉換成特別的格式,在手機上透過 API 以及直譯器來執行。

已經對 MobileNet、Inception v3、smart reply 三種模型做過優化,MobileNet 及 Inception v3 使用 ImageNet 訓練過了,開發者只要針對需求再做 transfer learning 就可以了。最後說 TensorFlow Mobile 將來會被 TensorFlow Lite 取代。

回想 XLA 剛出來的時候大家辛辛苦苦地編譯到手機上執行,現在真的是省事很多啊!

googleblog.com

Hinton 大神的 Capsule Network

拖了很久這週才看 Hinton 大神的新作《Dynamic Routing Between Capsules》坦白說,大神潛水這麼久又鋪陳這麼久,我內心是有著極高的期待,結果打開先看結果比較,居然是 MNIST 有點小失望,會用 MNIST 來比幾乎是變相承認在 CIFAR-10 以及 ImageNet 上還沒有突破性的進展。當然文中也解釋了 CIFAR-10 遇到的問題,以及使用 MNIST 另一個主要的原因,表現「重構」的能力。

推薦導讀
- 木刻思
- 知乎討論
木刻思的文章對於數學公式的解釋比較多,知乎討論有比較多概念比喻以及評論。

實作的部分在論文出來後就有滿多不同框架的版本,因為我也還沒有實際使用過,就不敢隨便推薦,大家可以前往 github 搜尋 CapsNet 或是 capsule network,找自己熟悉框架的版本,基本上 Python 主流的框架都有人實作了。

Random Cool Stuff

在富士山頂端呼喊完美的半熟蛋

要研究出怎麼煮完美的半熟蛋煮法真是讓人傷透腦筋,網路上的教學都說不會失敗保證完美,可是仔細一看這變因根本太多,照著煮還是很難成功,一直試誤好麻煩。這個模擬器直接把所有變因都放進去,回歸出來最佳的時間變數,照著煮就沒問題啦,我試了好幾次勝率 100% 根本無敵。

  1. 輸入環境變因(冰箱冷藏通常蛋溫 5%,尺寸量短邊,海拔用手機羅盤 app 查)
  2. 水煮滾後把蛋放進去跟著滾
  3. 時間到之後撈起來用自來水沖 45 秒涼,放到 0% 冰水裡冷卻

完成!上週用這個做了糖心蛋(煮好之後放到醃料裡冰一天)豪豪ㄘ啊~

data-artist.com


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

CodeTengu Weekly 碼天狗週刊 - Issue 107 先講求效果,再講求不傷身體 - Nov 27th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@chiahsien

Transformer

一個方便的線上工具,可以讓你把格式化的文字轉成 NSAttributedString,更棒的是它同時提供 Swift 4 跟 Objective-C 版本。雖然目前的功能還有點少,但至少能幫忙提供一個基礎的 NSAttributedString,方便開發者後續修改。

它的原始碼在這裏,有興趣的人可以幫忙加上更多功能!

github.io

HelloGitHub – 分享 GitHub 上入门级、有趣的开源项目

就如同標題講的,這個網站就是搜集並定時分享在 GitHub 上有趣的專案,我想到就會來看一下,有時候會發現一些好玩的東西。不過可惜的是,它好像沒有提供「訂閱」的功能,不然就方便多了。

hellogithub.com

fui: Find unused Objective-C imports.

現在手上的案子已經有一點年紀,所以被很多人修改過,app 提供的功能也跟一開始的設想有很大的出入。所以可以想見的,遺留卻沒用到的程式碼跟資源檔越來越多,整個專案越來越肥,啟動速度也越來越慢,這迫使我花了一點時間好好的處理了一下這個老案子。

我用的就是這個 fui,它幫我找出許多早已不再被引用到的程式碼,一個個順藤摸瓜下去又找出一大串無用的程式碼,最後的結果讓我很滿意,砍掉很多舊檔案,包出來的 app 體積也比之前小很多。不過要注意的是,工具找出來的結果不一定百分百正確,你最好要一個個看過,並記得要用版本控制做好備份。

接下來我會刪除沒用到的 frameworks / libraries 跟資源檔(字體、圖片、影音),順便提供幾個工具給各位參考:

github.com

iOS 开发是否要采用 React Native? - 简书

React Native 已經推出大約兩年了,我自己還沒寫過,倒是聽到不少人或公司開始嘗試使用它,甚至有些新創公司也不找 native app developer 了,就直接指名要找會寫 React Native 的。到底該不該用 RN 開發呢,這篇文章整理了幾個不錯的思考點,值得開發者或公司決策者拿來參考參考。

jianshu.com

Swift Community Awards

這就不多說了,滿滿的資源啊!就算現在看不完,也要加到書籤等著有空慢慢看!

hackingwithswift.com

@kkdai

command center: The Upspin manifesto: On the ownership and sharing of data

Rob Pike 是我相當尊敬的大師之一,不僅僅是因為他有參與到 Golang 的開發與許多規格的定義,更重要的是 Rob Pike 有著相當清楚而有條理的思路.

Upspin (一個幫助人分享檔案的 Golang 套件) 是由 Rob Pike 創立的點子,這篇文章敘述著當初為什麼要做這樣的軟體? 為什麼要另外開發一套檔案的分享工具? 檔案的分享究竟有多麼重要?

我一直認為,一個好的 Software Engineer 更是一個好的文章作者.他要能夠在他的程式裡面敘述出一個他要表達的故事(想法),他想要解決問題的脈絡.

參考文章:

  1. Go Proverbs
  2. The Best Programming Advice I Ever Got" with Rob Pike

blogspot.tw

Go at DigitalOcean

Vim-go 作者 Faith Arslan 解釋 digital ocean 為何選擇 Go 而且也介紹他們如何使用。並且結合一般常用的工具。很實用的文章。 以下節錄一些:

  • 使用 monorepo (call: cthulhu) 來管理公司的 standard libraries .有統一個工具,也有各個團隊必須的工具 (當然也有開發中的)
  • 剛報到的新人,只要 clone 這個 repo 加上他們有開發一個 DirEnv ( Hacking GoPath in zsh, bash..) 讓每個人一開始馬上就可以 build code
  • Vendoring 還是使用 govendor (並且有解決 MacOS 的 case-insensetive 問題), dep 還在評估
  • 使用 Drone 做 CI/CD
  • 自己開發出 gta (Go Test Auto) 系統,讓 go build 從 20 min -> 2~3 mins (是一個可以抓出變動的目錄然後指編譯跟測試有變動的部分)

Digital Ocean 的 custom 工具都好想要啊..

speakerdeck.com

Kubernetes v.s. mesos

這篇投影片整理了 mesos 與 Kubernetes 的一些比較. 內容有包含:

  • 這兩年的發展
  • 基本架構圖
  • 整理最久的就是近兩年的版本功能發表的時間軸

希望能幫助一些人

slideshare.net

Announcing GoLand (Former Gogland) EAP 18: Final Product Name, Templates Support and More | GoLand Blog

Jetbrain 出了很多好用的 IDE ,他們將他們的 Go IDE 原名 Gogand 後來正名為 GoLand.

不過講回來 vscode 真的越來越好用,對於 Golang 支援也越來越好了.下一版更新還會內建 go buildgo install 真的是太方便了.

jetbrains.com

[Coursera] Deep Learning Specialization: Neural Networks and Deep Learning (一)

本來就想把 Deep Learning 學一下, 因緣際會下看到這一篇 Coursera 學習心得 試讀了七天,除了提供 Jupyter Notebook 之外,作業也都相當有趣,就開始繼續學了. 目前進度到 Week2 相當推薦有程式設計一點點基礎就可以來學.裡面的數學應該還好. 學習的過程中還可以學會 Python 裡面的 numpy 如何使用,因為裡面主要就是要教導你如何使用 numpy 來兜出 Neural Network .

真的相當有趣的基礎課程,基本上上完了就等於把o’reilly deep learning 的整本書都上完.並且有實際透過 numpy 寫完部分的 DNN 的分類器的作業.

evanlin.com

@yhsiang

A brief history of APIs at Dailymotion

每天有百萬次 API 呼叫的 Dailymotion 如何 scale 他們的 API performance,像是解決 over-fetching 跟 chattiness 問題。

後面還有一小段是在介紹如何 scale API Team。

medium.com

CSS for components

Wix 提出專為 Component 設計的 CSS preprocessor。

stylable.io

Facebook Overhauls ReasonML Syntax in Reason 3

ReasonML 正式邁入第三版,加入更多迎合 JS 開發人員的語法。

像是 labeled arg 的 shorhand,或是更像 JS 的 function call。

infoq.com

@johnlinvc

Seasells.io

這個網站可以讓你快速的把命令列(CLI) 的輸出變成一個網頁。 只要把輸出透過 netcat 上傳,就會產生一個會自動更新的網頁,可以拿來看 watch 的輸出,或是把程式執行的結果分享給別人。當然也可以傳 nyancatponysay 給別人。

seashells.io

Feature Visualization

很多人覺得 deep learning 是一個魔法黑盒子。這篇 google 的研究把 Feature 化為圖像。讓我們能一窺黑盒子的內部,讓我們對於 deep learning 又多了一點點的了解。

distill.pub

Spotify Scrum

part 2 Spotify 描述了他們怎麼跑 Scrum。他們跑的不是教科書上的標準 Scrum。他們捨棄了許多標準項目,像是估時和 burndown chart等,只保留有助溝通和改進的像是 daily standup和 retrospective 等。有興趣的可以看看他們怎麼讓超過1000個工程師一起跑scrum。

spotify.com

Amazing 1$ microcontrollers

介紹了 21 種價格低於一元美金的微控制器。鉅細彌遺的介紹了每一個微控制器的 IO,時脈等特色,還有編譯器,開發環境與效能的分析。 Maker 們絕對不能錯過。

jaycarlson.net

Random Cool Stuff

魔法風雲會是圖靈完備的(Turing complete)

魔法風雲會(Magic: the Gathering) 是一款由數學教授發明的集換式卡片遊戲。有人證明了可以用這款遊戲製造出一個圖靈機。

最近即將推出的新系列有不少和程式有關的梗,像是 hot fixThe Grand Calcutron

toothycat.net


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

CodeTengu Weekly 碼天狗週刊 - Issue 108 聽說多數公司會故意招募一個能力不足的員工只是為了鼓舞大家的士氣,讓其他人在遇到瓶頸時還保有信心。真是無稽之談,我待的公司就沒看到這樣的人。 - Dec 4th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@kako0507

JavaScript hacks for ES6 hipsters

本篇文章透過幾個例子,利用 ES6 的 Destructuring AssignmentShorthand Property Names 以及 Spread Operator 來撰寫更方便的語法。

hackernoon.com

Totally Tooling Tips: Accessibility Testing

這個簡短的教學透過 Chrome dev tools 的 Audit panel Accessibility 的檢查,可以分析網頁後給予簡單建議來改進網站的易用性。

youtube.com

New in VS Code: Inline Change Review

VSCode 1.18 版加入了 Expandable Git annotations ,可以直接在編輯器上面展開 annotations 觀察和 git 上版本差異,並且可以直接對部分區塊做 stage 以及 revert 等等的操作。

medium.com

The most unknown redux performance trick

如果你有使用 React/Redux 做開發,這篇文章探討 redux connect function 較容易被遺漏的第三個參數內加入areStatesEqual option 的使用方式。

medium.com

@hiroshiyui

Digging for treasure in Aladdin’s source code

迪士尼的阿拉丁動畫曾經改編為電子遊戲,發行在好幾個平台上,我玩過的是 PC (MS-DOS) 版,這是一款人物動作非常細膩的遊戲,至今仍舊讓我印象深刻。Video Game History Foundation 很幸運地取得了此款游戲的 Sega Genesis (臺灣俗稱 "SEGA" 的那款黑色 16-bit 遊戲機) 版本原始碼、素材與開發工具,結果在原始碼當中,找到了一些正式版遊戲裡沒有用上的素材。透過一些工具輔助,他們順利 build 出使用這些未登場素材的遊戲。整個「重組」過程非常有趣,與大家分享。

後來我再翻了一下網上資料,發現維基百科上有這個 List of commercial video games with available source code 條目,類似阿拉丁這樣後來有釋出原始碼的商業發行遊戲還不少,或許這些歷史遺產會有不少地方值得想要學習製作電玩的人參考。

gamehistory.org

PostgreSQL Configuration for Humans

這份投影片有很多非常實用的 PostgreSQL 設定指引,含金量高,雖然作者很明顯地是為了宣傳他們家的 PostgreSQL 設定工具,但是絕大部份篇幅都是佛心來著的、交代了很多重要設定的概念。老實講,PostgreSQL 的設定參數多如牛毛,不可能在一份投影片裡完全講完,但是裡頭提到的可說是最重要的幾項了。推薦給同樣使用 PostgreSQL 的大家。

speakerdeck.com

Upgrade your SSH keys!

我不清楚各位讀者的 SSH keys 加密演算法強度如何,但是就我能看到、摸到的機器,普遍都還是採用 DSA/RSA 1024 或 RSA 2048,文中認為這樣的強度已經有點不足,此文作者建議大家可以透過文中指引,把您的 SSH keys 加密演算法強度升級。

g3rt.nl

A handy guide to financial support for open source.

這個主題很殘酷也很現實。

記得我前陣子看過一則 tweet,大意是這樣:

  • 場景A:知名 A 廠又推出新款產品 → 眾人:"Shut up and take my money!"
  • 場景B:眾人每天都會用到的開源軟體社群請大家捐款贊助 → 眾人:「呵呵,才不要咧!」

補充我看到的另外一個場景 C:雲端業者把開源軟體包裝為 SaaS,大家每個月甘心繳雲端稅,可是這個軟體本身卻慘澹經營苦哈哈。

這份 GitHub repo 就是針對這個議題,整理出一些想要採用開源方式釋出作品,又想要維持財務健康的方法。

順道一提,雖然開放文化基金會並沒有請我宣傳,但是身為長期捐款人,我想至少在這裡、我暫時要告別碼天狗 curator 的最後一期,請容我借個版面再次宣傳一下「開源 300 壯士」這個專案,懇請大家考慮,每週少喝一杯手搖飲料,加入這個定期捐款專案,就可以幫助很多開放文化、開源活動。

github.com

@wancw

User experience design for APIs

在 mobile APP、前後端分離盛行的現在,制定 API 是很常見的工作內容。

除了考慮邏輯、效能等面向,使用者體驗(UX)也是很重要的一環。 作者列出了設計 API (在 UX 上)的三條規則:

  1. 要考慮完整的 workflows (而非單一 API);
  2. 降低 API 使用者的理解負擔;
  3. 提供有用的回饋——包含詳細的錯誤訊息、預防各種易犯的錯誤、乃至於提供詢問管道。

keras.io

Using a logbook to improve your programming

經常看到有人建議工程師撰寫網誌,來整理自己所學、以增進技術。

如果覺得公開發表的壓力太大,可以試試看這篇文章提到的日誌方法:
在著手開發或除錯前,先整理問題、解法,最後再紀錄解法的成果、可加強之術。

網友 @AlbertHuang314 也有一篇類似的心得——寫實驗紀錄或工作日誌的重要性

routley.io

「最後,你有沒有問題想問我們?」 - 看板 Salary - 批踢踢實業坊

面試除了公司在衡量應徵者,也是面試者評價公司的好機會。
文章裡列出的七則問題,都可以加深對於公司甚至於自己的理解。

對於前陣子頻繁面試的我來說,這篇文章可是相見恨晚啊。
(雖然我其實完全憑直覺在衡量公司,哈哈)

年關快到了,可能有不少人開始或準備物色新的工作。
希望大家都能找到理想的工作啊。 :)

ptt.cc

Jupyter + Cling: Interactive C++ : Standard C++

分享這篇只是想分享一下我的驚訝。
原來現在已經可以在 Jupyter Notebook 裡面直接寫 C++ (script?)了啊

P.S. 不知道有多少讀者平常以 C++ 為主力語言呢?

isocpp.org

鼎惠 🐻 (@v_19981010) • Instagram photos and videos

instagram.com


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

CodeTengu Weekly 碼天狗週刊 - Issue 109 「全端工程師」是指「有能力把系統裡的每一層都弄壞」 - Dec 11th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@tzangms

Who do you promote? 5 Qualities of a Good Leader

其實這一兩年一直困擾於到底要抓誰來當 Manager,給個技術經理的職稱,或是想從外面直接應徵技術經理、技術總監之類的人進來,但是的確是有一些困擾,因為除了技術能力之外,技術主管還需要有不少特質,才能撐起一個團隊。

不過分享這邊主要是看到有幾段非常心有戚戚焉,例如下面這段:

If someone is accountable, you know that even if something goes wrong, they’ll fix it or take responsibility. They won’t hide from problems and they’ll work hard to deliver positive outcomes.

當你把責任丟給某人,應該得確定他會把事情搞定,不讓東西出任何差錯,即使出問題了,他也會想辦法把問題搞定,不論搞到多晚。但是當你發現最適合當主管的人卻不太在意這些問題的時候,那麼問題就來了,是不是不該 promote 他?

當然也不一定是這個人的錯,可能你根本沒說清楚,或是人家根本不覺得你重視這些事。所以,說清楚、講明白才是比較好的策略,但偏偏又不好拿捏 :p

再來則是這段:

Make sure the person you choose to promote is someone whose actions you want others to follow, and that you’re comfortable trusting them with leading their team.

如果你把團隊丟給一個人負責,卻擔心他會把團隊帶歪,或是底下的人會學壞?這題就是 Leadership 的問題了,也是公司文化問題。

而這篇文章提供了一些線索讓你評估,我個人覺得還算不錯。 最近發現 Lighthouse 的文章質量不錯呀,收藏了一堆還沒看。

PS. 我在上海 SV 找網站後端技術經理,有興趣的朋友可以參考我們 SV 上海的職缺

getlighthouse.com

Becoming Your Future Self

早期的 CTO 必須是一個技術強者、招募者,跟好的主管,但當團隊快速成長,你該怎麼調整工作內容? 想一下一年後、五年後,你應該要做什麼工作、不做什麼工作?

像是我的技術團隊有 10+ 人,我已經沒辦法寫 code,寫 code 反而會成為團隊的瓶頸,現在這幾個月則是在思考,我該怎麼產出更多的有領導力的管理人員。

設想明年我的團隊會成長到 30+ 人(其實不是設想,明年預算都開好了 XD ),那麼我到時候該怎麼做事? 一定跟現在又完全不一樣,那我明年之前得該先點好哪些技能?或是先把什麼事情做好? 先想一下,後續才能夠快速應對跟學習。

PS. 在上海有興趣的朋友可以參考我們 SV 上海的職缺

codingvc.com

The right way to start a company

這篇提到一些很有趣的歷史,當然也有很有啟發的話,像是:

“Work on something you’re passionate about” ends up being fairly useless advice. You can be passionate about building teams or closing sales, and it might turn out that horses or makeup or gourmet food aren’t nearly as interesting when you’re running out of money and your best employee just quit.

passion comes from success

「做你覺得最有熱情的事」是個相當無用的建議,因為當你錢燒光了,最棒的夥伴先閃人了,你的熱情還會在哪? 這段我覺得比較有啟發的是「建立團隊」也可以是算是一種有熱情、可以獲得成就感的項目。 我最近也在想我的成就感從哪裡來,「解決問題」可能是一種,但就不是賺錢啊,可惡!

有趣的歷史則像是:

  • WhatsApp 的創辦人 Koum 本來撐不下去, 想收攤去找工作了, 另一位創辦人 Acton 說再撐幾個月, 然後就 ...
  • AirBnB 剛開始時,不知道他們的 idea 有多威, 他們開始做另外一個找室友的產品,花了四個月開發,最後發現 roommates.com 早就有人在做了 ...
  • Facebook 團隊不知道他們產品成長有多厲害, 還另外跑去做朋友之間分享檔案的產品 Wirehog ...

medium.com

@fukuball

AI 工具手把手工作坊 / Hands on AI Tools

Machine Learning:初級

最近受政大陳恭老師邀請幫忙上了一堂 AI 工具手把手工作坊,個人覺得內容算是蠻深入潛出的,監督式學習、非監督式學習、分群及降維大致上都有提到,也就是 scikit-learn cheat sheet 上的四大區塊都有 cover 到了,最後還示範應用了一個歌詞推薦系統的範例,當然入門之後,就需要自己慢慢再深入研究了。

我也有分享 jupyter notebook 範例程式碼,希望可以幫助想入門 Machine Learning 的人學習。

speakerdeck.com

A Year in Computer Vision

Machine Learning:中級

這篇文章整理了滿滿 2017 一整年電腦視覺領域的乾貨,ML(DL)在電腦視覺領域真的大有進展,論文多到看不完啊!

themtank.org

How to Read Big Files with PHP (Without Killing Your Server)

PHP:中級

怎麼有效率的處理大檔案呢?當不做任何處理的時候,用 PHP 把整個檔案讀進來可能就會讓 sever 的記憶體直接爆掉,這篇文章示範了幾種方法來讀取大檔案,讓 server 的記憶體使用量大大降低,當然也就可以讓 server 可以服務更多使用者,進階的開發者應該都要學會如何處理大檔案。

sitepoint.com

Random Cool Stuff

Ethereum’s First Killer App Is Here, and It’s a Game Where You Create Digital Cats

本週上線了一個 Ethereum 殺手級應用 CryptoKitties,上線之後佔了整個 Ethereum 12% 的交易量!最高價的交易是創世貓 Genesis 要價 247 eth!很有特色的 BugCat 也要 175 eth!

說穿了就是一個區塊鏈虛擬貓咪的交易平台啊(好啦,還可以生小貓)!貓咪真的太可愛太強大了!買幾隻來壓壓驚~

CryptoKitties 帳本:https://kittysales.herokuapp.com/

technologyreview.com

MakeGirlsMoe 2D 萌妹圖像產生器

GAN 進展到現在終於可以產生出不是妖怪的 2D 萌妹圖像了,真是可喜可賀啊!接下來可能 H-Game 跟 A 漫的人物都可以用 GAN 來自動產生了?!

girls.moe


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

CodeTengu Weekly 碼天狗週刊 - Issue 110 測試案例分成兩種:「這也要測?!」和「這也能測?!」 - Dec 18th 2017

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@saiday

Git - git-rebase Documentation

最近新發現的 git pull --autostash--autostash 是個相見恨晚的 option。

如果 local branch 有髒的 commit 要 pull 時就會被擋,加了這個 option 就會自動幫你 stash ,pull 完再 pop 回來。
這個 option 在 Git 2.6 (2015/09) 就加入,但最好檢查你的 Git 版本是在 2.10+ (2016/07),因為之前的版本 rebase 沒有完成的話會丟失 autostash 的東西

實際上這個 option 是針對 rebase 的,所以你的 pull 指令必須是用 rebase 模式才行,說到 rebase 模式我也喜歡 rebase=preserve,rebase 的時候可以保留 merge commit。
詳細情境可參考:Make git pull --rebase preserve merge commits

與大家分享我的喜悅,不用謝我了!

git config --global pull.rebase preserve
git config --global rebase.autoStash true

git-scm.com

The Flat Cache

做 Client 有一個很典型的課題就是 memory model 的狀態同步,簡單說就是當特定物件的狀態改變時,在記憶體中表示同一個物件的物件們也要跟著改。

其實最佳解就是建一個 client 的關聯式資料庫,記憶體中不要再存分散的 models,所有 fetch 都先寫進 DB 再派出來,後續再監聽 DB 的 changed event 改 model 狀態。
但,弄個 DB 的成本不算低,如果沒有本地儲存的需求,又是典型的殺雞用牛刀了。

Khanlou 提出了一個 Flat Cache 的架構來解決上面的問題,用 Swift 實作,就直接想像是一個在記憶體的關聯式資料庫。

值得一看的是這個架構的設計跟實作的思路。

khanlou.com

我是 iOS Developer,我想向公司申請一副監聽耳機

老方法新滋味,在開發中用聲音來提示 UIViewController leaked 真的太聰明了!

twitter.com

Jake Wharton on the Android Kotlin Guides

Jake Wharton 在 Google Android framework team 推動 Kotlin,並在這期 Fragmented 談他們釋出的 Kotlin Android 開發者 style guide
這不是一份嚴格的 guide,只涵蓋了基礎重要的部分,之後應該會釋出 format 工具。

這份文件的 Interop guide 對正在混用 Java 及 Kotlin 的開發者會很有幫助。

fragmentedpodcast.com

@uranusjr

Use a .dev domain? Not anymore.

TL;DR Google 把 .dev TLD 買下來作為企業內部使用,而且把它下面的所有網域設定成強迫要求安全連線。如果你把這種網址用來當作開發用內部網址,就會出現問題,請儘速移轉。

我設了滿多這樣的假網域,不過主要是本地開發用,因為我很懶得記各種 we framework 的 dev server 用哪個 port,就用 reverse proxy 加上 /etc/hosts 設定了像 django.dev flask.dev 等等。我也不知道為什麼當初會用 .dev,不過看起來是滿字然的選擇⋯⋯唯一問題是,這不是 best practice。

RFC 2606 特別為了這種需求,保留了幾個永不使用的 TLDs:

  • .locahost
  • .test
  • .example
  • .invalid

所以就我的使用意境 django.locahost 大概是最好的選擇。雖然長了點,但保證永遠可用。Technically correct is the best kind of correct.

至於為什麼 TLD 可以整組被公司想買就買,這就是另一個故事了。原文順帶講了許多關於 TLD 的歷史故事和知識,我覺得寫得滿不錯,建議一讀。至於未來會不會繼續看到各種神奇的 TLD 雖然稍微不安,但好像也沒什麼辦法了。

medium.engineering

Mosh: the mobile shell

Mosh 是個連線到遠端 shell 的工具,基本上就類似 SSH,不過對 SSH 常見的煩惱做了幾個改進:換 IP 不會斷線、client/server 差分更新所以不會網路一卡就整個停住連 ctrl-c 都不行、讓你明確知道連線狀態不會斷線就 freeze 直到 broken pipe。如果你常用 SSH 應該很容易 appreciate 這些特點,不用特別推銷。

實作上,當你用 Mosh 連到一個 server,是用 SSH 進行 handshake 與認證,完成之後在 server 啟動 mosh-server 接手,與 client 端的 mosh-client 繼續接下來的溝通。這代表你不需要額外跑 daemon,只要有 mosh-server binary,就可以輕易地把 SSH server 變成 Mosh server。方便。

我用了一陣子還是遇到不少麻煩。Mosh 沒有 daemon 是優點也是缺點,因為無法產生 priviledged process,所以它必須使用隨機的高 port 號,如果你的 server 在 NAT 後面就會遇到問題。它的 SSH handshake 也寫死了不少行為期望,所以如果你不是用標準的 22 port,甚至用了 reverse SSH tunnel 就會很爆炸,雖然有 workaround 但就少了一大半意義,不如直接用 SSH。喔對了還有,Windows 支援不存在(只有第三方的 Google Chrome app client)。不過如果情境對,還是非常好用。

mosh.org

In Search of the Perfect Writing Font

iA 釋出了他們為旗艦產品 iA Writer 製作的新字型,iA Writer Duospace。這字型的根本概念很有趣,嘗試在比例字的美觀與等寬字在編輯器的實用之間取得平衡,讓每個 glyph「大致等寬」。如同名稱暗示,這個字型有兩種字寬——大部分字元都一樣,但是少部分如 mw 稍微寬一點,增加文稿的美觀程度,但是仍然維持類打字機編輯器讓人覺得文稿尚未完成的風格。這篇文章稍微透露了他們對字型設計的一些想法,我覺得十分有趣。難怪他們做出的編輯器完成度能夠這麼高。

ia.net

Which word begins with “y” and looks like an axe in this picture?

有什麼字是 “y” 開頭,看起來像個斧頭?

有個網友看到他兒子的球上寫著 26 英文字母加上圖案,例如 Q 配 queen、E 配 elepant。可是為什麼 Y 配一個像斧頭的東西?他跑去 english.stackexchange.com 問,下面就熱烈討論了一番,出現了各式各樣的回應(許多層面上)。請不要浪費才能好嗎。

stackexchange.com

@drumrick

一日自學 GAN

碼天狗過去 72, 75, 92 期都曾經提 GAN,如果你跟我一樣錯過了李宏毅教授的課,這篇文章是我這週末學習 GAN 時記錄下來的一些連結,希望對大家有幫助。

medium.com

Kaggle 競賽網站冠軍排名易主!

Kaggle 這個廣為人知的機器學習競賽網站,這幾天產生了新的排名冠軍。新的冠軍用戶名為 bestfitting,僅僅 15 個月 10 場比賽,直奔冠軍寶座。本文整理了兩個來源的五個連結,分別是 bestfitting 分享四個競賽的解法,讓大家窺探這位新任 Kaggle 冠軍解決問題的思路。

medium.com

TensorFlow 有安全疑慮?

在多處中國方面的科技媒體看到騰訊表示發現了 TensorFlow 一個嚴重的安全漏洞,回報給 Google 並且得到確認。目前英文方面沒有收集到任何消息,但是也不失為一個警惕的徵兆?先前另外一篇論文 Security Risks in Deep Learning Implementations 表示,主流深度學習框架(包含 TensorFlow, Caffe, Torch)的依賴套件們,也是存在安全漏洞的,雖然讀了以後大致上是 OpenCV 導致的。

qq.com

Random Cool Stuff

But what *is* a Neural Network?

解釋神經網路是怎麼運作的,這樣的 YouTuber 我可以!

@saiday 分享

youtube.com


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

CodeTengu Weekly 碼天狗週刊 - Issue 111 「職涯路上不順嗎?」「順啊,一路上都沒什麼人」 - Jan 8th 2018

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@chiahsien

為何 Git-Flow 可能不適合你

我發現每隔一段時間就會有人討論 Git-Flow 的優缺點或是怎樣才是好的 Git 工作流程,然後就會有人跳出來說「我們也是用 Git-Flow,可是我覺得沒有很好用」,每次看到這樣的留言我腦海裡都會冒出一句「不好用就不要用啊!」

我也時常跟朋友講說不一定要用 Git-Flow,後來想說乾脆寫一篇文章來記錄我的論點算了,所以就有這篇部落格文章的產生了:)

logdown.com

2017 best resources for advance iOS developers

一年過去,新的一年又來到了,有沒有覺得又浪費了一年啊(大誤)。如果你的新年希望是要奮發向上吸收新知的話,這篇文章很適合你,裡頭滿滿的好文連結,還依據不同主題分類了,整個看完大概可以撐到農曆過年吧!

medium.com

CAEmitterLayer粒子发射器的神奇效果

最近工作上有個需求是點擊某個按鈕之後要出現類似冒泡泡的動畫效果,所以就不小心找到了這篇文章,才知道原來有 CAEmitterLayer 這種東西可以用,真的頗酷!另外也發現了一個頗有趣的動畫函式庫,順便分享給各位朋友。

juejin.im

View-state driven applications

本文作者認為在目前常見的 MVC 架構中,都刻意忽略了 View-State 這一塊,只把它當作過渡的產物,沒有好好思考過該把它放在哪裡。作者覺得 View-State 應該要擺在 Model 裏頭,並在文中舉了一個支援時光旅行的 app 為例,說明這樣做帶來的好處。

看完這篇文章後,有空的話可以繼續看 ReduxFinite State Machine,或許能碰撞出更多有趣的想法。

cocoawithlove.com

Carbon

想要貼程式碼到部落格或是網路論壇上,可是對方卻沒有支援程式碼輸入的功能的話該怎麼辦呢?你可以考慮使用 GitHubGist,或者是把程式碼轉成圖片分享出去。這個服務能幫你轉成圖片,而且還有不少設定可以調整誒~

now.sh

Color themes for Xcode

身為一個 iOS 工程師,整天都得盯著 Xcode 開發程式,當然要把它調得順眼一點。這個 repo 收集了許多 Xcode 的佈景主題,並且還附上了許多預覽圖,讓人可以快速找到自己喜歡的主題。

github.com

@kkdai

超好用的 Kubernetes Console tool - c9s/Vikube.vim

Kubernetes 相當好用,但是要維運的時候最痛苦的事情,就是要打 kubectl

雖然我超愛 Golang ,而且其實我基本的 IDE 都是使用 VSCode ,但是我一定要跟各位好好推薦這個好工具. Vikube.vim

不論你透過 alias 設定成 kc 甚至是 k 還是得要記憶一堆指令 ex: kubectl get pod

其實就算你不是 vim 的愛用者 (畢竟學習曲線太高了) 我還是很推薦你使用這個工具.

  • :VikubeContextList 可以開啟你所有連接過的 K8S 集群,透過 s 來切換你的集群.
  • :VikubeNodeList 可以開啟所有的節點清單,l 可以看到 結點上面的 logs, 可以幫助你除錯(如果有問題)
  • :VikubePodList 可以開啟 pod 清單,當然也可以透過 l 來看 POD 是否有出現問題.
  • :VikubeTop 可以開啟 top 來看各個 POD 的使用量

真的很好用... 再也不用擔心打 kubectl 或是忘記相關指令了 :p

github.com

Golang Internals Part 2: Nice benefits of named return values

"named return values" 是在你的 function 事先把回傳變數先命名好 ex: func foo() (bar string)

這篇文章告訴你,這樣做在 compiler code 上面會有什麼差異. 並且可以獲得更小的 function size 並且更有效率..

很值得好好閱讀.

minio.io

dotConferences talks

https://www.dotconferences.com/conference/dotgo-2017

11 月剛剛在歐洲結束的的 dotGo conference 是相當盛大的 Golang 研討會, Google 與 Golang 社群有許多權威都有加入這場盛會. 在這場有有許多值得一聽的演講.

  • Francesc 講 Machine Learning in Go
  • Sam Boyer (dep 的主要開發者之一) 來講 Dep
  • Sameer Ajmani (Go team manager ) 來講 Simulation real world in Go

推薦大家一定要看....

此外: dot Conferences 是歐洲盛大的技術研討會.. 還有很多... dotSwift dotAI dotJS ..都可以看看喔

dotconferences.com

Go Datastructure slices // Speaker Deck

相當好的投影片,講解 C 與 Go 的array 比較之處外,更有清楚講解 Golang 在 slice 跟 array 的差異之處。其架構與處理方式。

speakerdeck.com

RFC: Apache Beam Go SDK design

這篇是由 Apache Beam (一個類似 Spark streaming 的資料串流處理的 framework) 所提出的 Golang SDK RFC (Request For Comments). 別以為是一篇死板板的說明文件,裡面有說明了 Golang 的好處與作為 Streaming Data processing 的缺點與該如何設計. 相當值得一看...

google.com

@yhsiang

12 Mobile UX Design Trends For 2018

2018 行動裝置的使用者體驗趨勢,大部分圍繞著 iPhone X,像是沒有 Home 鍵或是全螢幕的體驗。

最後還有提到 AR 跟手機支付,有興趣的朋友可以仔細閱讀,有些類別作者還提供了延伸閱讀。

uxplanet.org

ReasonML: polymorphic variant types

之前我們提到了 ReasonML 正式推出第三版本,語法更貼近 JavaScript 開發者。

果然吸引了不少人開始學習,2ality 的作者也開始在部落格更新他學習 ReasonML 的過程。

此篇是帶你理解 ReasonML 中的 polymorphic variant type,蠻適合正在學習的 ReasonML 朋友們。

2ality.com

Introducing Hyperapp 1.0

喜歡 react, redux 的朋友,應該都會喜歡這套。

像 preact 是輕量化的 react, hyperapp 就是輕量化的 react + redux。

hackernoon.com

8 Best Practices for Perfect CSS Documentation

寫文件總是很困難,作者提供了一些方向。

各位如果想要改進自己的 css 文件,不妨可以參考此篇的做法。

tutsplus.com


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

CodeTengu Weekly 碼天狗週刊 - Issue 112 年初時立下的三項學習計畫,現在只差四項了 - Jan 15th 2018

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@mingderwang

pytudes (Python 練習曲)

有些人想學 ML,但苦於 Python 不夠熟悉,這裏剛好有一些 Python 的練習程式與教學。重點是,這 git repo 的作者是我在 Stanford 網路上學人工智慧 時的老師之一,Peter Norvig。這些以前 A.I. 的老師,最後幾乎都到 Google 上班 (或已經離開了)。

註:現在要上課,也能到 UDACITY - Intro to Artificial Intelligence,完全免費!

github.com

now – Realtime global deployments

談到自動部署,我想沒有比 now 還要快的了。只是跟大家開一個玩笑,CI 不是只要能快速部署就夠了,還需要搭配其他情境使用。但對於喜歡一天寫一支 SPA,或是 micro service 的人來説,這未嘗不是一個好工具。

zeit.co

traefik or linkerd

看起來 linkerd 想要追上 traefik 還要加把勁... 另外還有一個後起之秀 istio整合了 linkerdGoogle Trends 應該會超越 traefik

如果想進一步看 linkerd 與 istio 之間的比較,可以參考 Jeff GenslerLinkerd vs Istio: my 2¢

stackshare.io

Rapid Ethereum Dapp Development with Next.js

最近以太幣跟比特幣都漲的很兇,如果先前有在玩 blockchain 的人,應該不會後悔當時的努力了吧。現在開始寫 blockchain 應用程式還來得及,這篇文章教你如何利用 Next.js 快速開發 Ethereum Dapps

medium.com

A Billion Taxi Rides on Google's BigQuery

Mark Litwintschik 做了很多瘋狂的實驗,他拿了 11 億筆 6 年來紐約市搭計程車的資料,放在各式個樣的環境裏做查詢速度的比較,有 PostgreSQLAWS EMR 的 PrestoElasticsearch另一個比較快的測試,還有這篇用 Google 的 BigQuery 等。更有趣的是,他還放在 3 台 Raspberry Pi 3 安裝 HDFS 與執行 Spark,太厲害了。

marksblogg.com

Bringing it all together with Google Pay

Google Wallet,也許很少人在用 Google Wallet,甚至沒聽過。2011 開始上市,到 2016 幾乎沒人再談 Google Wallet 了。剛看了一下 Google Payment Center 網站,竟然發現我在 17 Mar. 2011, 8:02 am 還真的用過,捐了 5,000 日幣給日本紅十字會。連我自己都忘記我用過了。沒成功的原因到底在哪裡? 這次直接把還有一點起色的 Android Pay 直接換名字叫 Google Pay,會成功嗎? 不管如何,誰會願意放棄這塊 payment system 大餅。

blog.google

@johnlinvc

Making of Apple's emoji

在程式語言🖥的文件📄裡加入 Emoji 😂似乎是最近的趨勢📈。 Apple emoji 的設計者之一分享了他們在十年前開發第一代 emoji 的故事。

medium.com

Meltdown

最近鬧得沸沸揚揚的 Meltdown 和 Spectre 可以說是近年來前幾大的安全漏洞,影響了最近十年的 CPU。 簡單來說就是 CPU 在亂序執行指令時,會在快取系統裡留下旁道攻擊弱點。 Meltdown 可以由作業系統的 KAISER 來避免,不過會影響效能。目前各大作業系統和雲端服務都已經開始處理了。 Spectre 影響的範圍則大得多,大多數的程式都會需要重新編譯,目前 LLVM compiler 已經開始 patch 一部分的 Spectre 漏洞了。

meltdownattack.com

可以用來練習各種語言的開源平台, Exercism

有的時候想要學一個新的程式語言,但又不知道重哪裡開始嗎? 除了大家都很熟的 leetcode 之外,現在又多了一個新選項, Exercism。 這個開源平台提供了超過30 種語言的安裝教學,各種常見的練習題。在上傳答案後,大家可以一起對上傳的答案做 code review。 之前就想學 Swift, Erlang 了嗎? 現在就開始吧!

exercism.io

使用 Yelp 資料來預測餐廳會不會關門

作者用了 Yelp 上的資料來預測餐廳會不會倒閉。 準確率高達91%。他發現決定餐廳會不會倒閉的最重要因素不是評價,而是它是不是一間連鎖店。 我們在 iCHEF 也和凱基合作做過類似的事,幫助店家預測營運狀況。

PS. iCHEF 誠徵工程師中

towardsdatascience.com

@wancw

[翻譯] 我是這樣拿走大家網站上的信用卡號跟密碼的

一則簡單的寓言,提醒大家現在對 3rd-party 的過度依賴可能帶來什麼樣的安全問題。 (想想當初的 left-pad 事件。)

裡面也有些值得參考的技術資料:

medium.com

[TIP] 如何設計 RESTful API 避免重複建立資源

開發(或使用)HTTP API 最常遇到的問題之一就是建立新的 resource,
尤其是像訂單、文章這類沒有原生唯一識別資訊的資料。

作者建議用先 POST (創建 ID) 再 PUT (填寫資料)的方式。
雖然多一筆 request,但讓錯誤處理變得比較簡單。

dev.to

Building a Simple Blockchain in Python

搞懂區塊鏈最快的方式是啥?
自己寫一個吧!或者……看別人寫一個。

這篇文章以 Python 程式說明基本的區塊鏈概念,包括:

  • 區塊鍊(block & blockchain)是啥東西
  • 挖礦在幹嘛(mining & proof of work)

每個 node 間的溝通則在 Part 2

pyscoop.com

Cost of stubs in tests | Dmitriy Nesteryuk

用了 stub 可以讓 unit test 變單純,但其實只是把麻煩全都推到 integration test 而已。 與其完全依賴 intergration test 來找出物件互動時的問題,不如少用 stub。

作者認為以下情況還是適合用 stub :

  1. low-level library
  2. 存取網路或外部系統的元件

nesteryuk.info

[Game] Human Resource Machine

從名稱看不太出來,這其實是個模擬 compiler 把高階指令轉換成低階動作(CPU 指令)的解謎遊戲。

雖然現在網頁、mobile app、AI 等高階應用比較熱門;對編譯器技術有興趣的人比較少。閒暇之時不妨玩玩這個遊戲,感受一下 compiler/interpreter 是如何轉換你的程式。然後感謝願意投入這些領域的人們吧!

它有 desktop、iOS、Android 等版本,可以從各家 app store 和 GOG、Steam 上購買。

tomorrowcorporation.com


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


CodeTengu Weekly 碼天狗週刊 - Issue 113 寫文件跟去健身是一樣的,大家都明白這只有好沒有壞,但總是覺得不需要 - Jan 22nd 2018

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@saiday

I just got a developer job at Facebook. Here’s how I prepped for my interviews.

Interviewing is a skill

作者為了應徵矽谷的工程師辭掉工作準備面試,這是他的記錄跟心得。
他列舉了各種面試的階段跟目的,還提供了一些學習的資源。
無論你是要找工作還是要找人,這篇真的可以看一下,不是那種雞湯文。

話說,現在的面試流程要先寫一份 codility 的試題似乎已經是常態了。

freecodecamp.org

Why Swift Enums with Associated Values Cannot Have a Raw Value

這是一個有趣的問題,為什麼 Swift 的 Enum 有了 Associated Value 後就沒有 rawValue 了?

原因就是 rawValueRawRepresentable protocol 的值,RawRepresentable 簡單來說,符合的類別可以表示另一個類別,透過 rawValue 得到值。

回到問題,因為 Enum 有了 Associated Values 之後就沒有單純的 rawValue 也就無法轉回到原本的類別,所以在 Enum 中你只能在 Associated Values 跟 rawValue 二選一。

這個 RawRepresentable 前陣子剛好有用在 hard-coded string 的地方,沒辦法只用 Enum 來包裝,自己定義了一個符合 RawRepresentable 的 type 來處理。

RawRepresentable 另一個用法:SingleValueCodable

medium.com

KotlinConf 2017 - A View State Machine for Network Calls on Android by Amanda Hill

這是今年在 KotlinConf 的 talk,我覺得滿實際的。
如果你的 Android project 也是使用 MVP 架構,又 Presenter 因為有處理到獲取遠端資源的部分,所以 View Interface 得有許多 method 的存在就只為了反應 Presenter 的網路狀態。

這個 talk 試著用 View State Machine 的概念來處理這個問題,特別之處在用了 Kotlin 的 Sealed Classes 來封裝那些狀態,這的確是很好的用法,學習了。

其實概念很簡單,可以先看一下 投影片 再決定要不要看影片。

youtube.com

@fukuball

slundberg/shap - Explain the output of any machine learning model using expectations and Shapley values

Machine Learning:中級

Machine Learning 模型訓練完之後,我們常常會想知道 Model 是怎麼做出預測的,有沒有哪個 feature 對預測最有影響力呢?這是研究者常常需要面對的問題,我們必須解釋給老闆或是一般民眾了解。

Shap 就是一個很方便容易使用來解釋 Model 的一個套件,github 上的說明寫得還蠻清楚的,大家可以在自己的 jupyter notebook 裝來跑看看,不過套件的 description 上寫可以「Explain the output of any machine learning model」,這個我自己是覺得不可能啦,畢竟各種 Machine Learning Model 還是有分成容易解釋跟不容易解釋的,像是 Tree 類型的 Machine Learning Model 就比較容易解釋,而 Deep Learning Model 就比較不容易解釋,所以大家使用時還是要了解一下可能還是有所限制。

github.com

How to unit test machine learning code

Machine Learning:中級

為了避免程式往非預期的方向運作,我們常常會寫測試來避免這個問題,但如果是一個 Machine Learning 的程式我們要怎麼寫測試呢?這篇文章舉了一些簡單的例子來說明如何在 Machine Learning 的程式上寫測試,大家可以參考一下。

medium.com

Ethereum ERC20 Token Standard 以太坊代幣標準介紹

Ethereum:中級

大家一定知道最近很紅的 ICO(Initial Coin Offering),發起 ICO 的公司一定會發行自己的代幣(Token)來炒幣,如果你也想要 ICO 自己發代幣,那要怎麼做呢?首先就要了解代幣的其中一種標準 ERC20,若是一個 Token 符合 ERC20,即代表他是一種具有完整貨幣交易功能的代幣。

這篇文章淺顯地介紹了 ERC20 標準,大家如果看完了有想到任何有趣的應用要發起 ICO,記得通知一聲,pre-sale 一些便宜的代幣給可憐的碼農們吧~

medium.com

@kako0507

JavaScript: Can (a==1 && a==2 && a==3) ever evaluate to true?

執行 (a==1 && a==2 && a==3) 的結果在 JavaScript 是有可能為 true 的。 這裏透過了兩個手法達成:

JavaScript 的 Type Conversion 過程會經過 typeOf function 來回傳 Primitive Value ,這裏運用定義 a 的 valueOf function 以及 double equals 比對,得到一個特別的結果,文內有更清楚的流程拆解。

codeburst.io

"display: contents" is coming

CSS display 的新 property - contents 已經在 blink 和 webkit 引擎上實作,意味著會在將來的 chrome 以及 safari 推出,而 firefox 已經在 version 37 加入這個功能。

設置 display: contents 會將該 element 在 box tree 中移除,並保留它的 contents (children elements),即 children elements 在 box tree 中的層級會取代該 element 。

文內利用一個 form 的例子表達,如果需要語意上而不是畫面上的結構,就可以利用 display: contents 。

igalia.com

Making WebAssembly even faster: Firefox’s new streaming and tiering compiler

Firefox 58 加入了 2-tiered compiler (baseline compiler 、 optimizing compiler) 和 streaming compilation 機制藉此加速 WebAssembly。

baseline compiler 會盡可能快速的 compile 程式, compilation 可以在 multiple threads 下完成,速度是 optimizing compiler 的 10 到 15 倍,當程式被 baseline compiled 後,可以立即在 main thread 下執行,而同時 optimizing compiler 也會在其他 threads 做最佳化,當最佳化完成後再換成新的版本。

streaming compilation 機制讓 compilation 儘早被執行,透過新的 WebAssembly’s streaming API ,當接到新的 chunk , 會直接送到 WebAssembly engine ,立即被 compiled ,同時間下一個 chunk 也會直接繼續被下載,另外, .wasm 的 code section 會在 data section 之前,確保程式能優先被下載編譯,當 data section 較大時,就可以達到很好的效能。

mozilla.org

Demystifying CSS alignment

本篇文章介紹 CSS Box Alignment 在 Flexbox 、 Grid 及 Block 上面的用法,作者也提供了一個 cheatsheet 供大家參考。

medium.com

Random Cool Stuff

Singing Voice Separator - 音樂訊號自動分軌

最近在楊奕軒博士的 facebook 看到這個新研究成果,他們實驗室博士生 Jenyu Liu 開發出了音樂訊號自動分軌程式,給定任何音檔,可以分離出人聲、鼓聲、bass、和其他樂器的背景音樂,實際使用 demo 的試聽成果,覺得分軌出來的音訊基本上算是效果蠻好的!

這種音訊分軌的問題真的很難,通常分軌出來的結果都會有很多雜訊,根本無法聆聽,但這個成果真的大大超越了我之前所知的一些研究,大家可以聽聽看 Demo 裡面的伍佰台灣製造這首歌,按右鍵可以選擇把某個樂器軌給「關掉」。例如把前三個都關掉,則只會留下人聲,各個分軌都聽聽看好好感受一下。也許之後他們會將研究成果發表成論文,到時來拜讀一下吧!

ciaua.com

Blockchain Demo

Blockchain 是怎麼運作的?
以 Blockchain 為基礎的分布式帳本要怎麼防止竄改跟偽造?

@saiday 提供

anders.com


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

CodeTengu Weekly 碼天狗週刊 - Issue 114 沒有人比中國的影音網站更認同「台灣不是中國的一部分」了:此视频仅限中国地区播放,您所在的地区无法观看 - Jan 29th 2018

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@tzangms

The Secrets of Patreon’s High Performance Product Teams

這篇在講最近很紅的 Patreon,他們怎麼工作、高度自主。講怎麼營造積極的團隊,所以這篇基本上也算是在講團隊、公司文化:直率、坦白、爭辯 ... 等等。

我覺得文化面來說,這篇很棒,Startup 就該這樣,當你找一群聰明、有熱情的人一起工作的時候,營造出這樣的環境,這樣工作起來一定很開心。

但我覺得,產品也要做的起來,做的火紅,整體的環境跟氣氛才能整個跟上,所以這篇一開始也就提到了 Goal & Vision,你得先定義成功,才能放出自走砲。

usejournal.com

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 的人可以參考一下。

getlighthouse.com

Rapid Ethereum Dapp Development with Next.js

我最近真的很投入加密貨幣跟區塊鏈這兩個領域,雖然都沒有太大的進展,但是還是有做一些研究啦。而先前就陸續看到幾個 DApp 的字眼, 一直看了這篇才知道智能合約可以這麼玩。可能是我老了,開始覺得這些東西很新奇,但很有趣啊 ~ 以前還在寫程式的時候一定一頭就栽進去,一陣亂搞...

然後又看到 @gasolin 寫的這篇 Ethereum 區塊鏈!智能合約 (Smart Contract) 與分散式網頁應用 (DApp) 入門,雖然還在進行中,但是非常期待!

medium.com

@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?

arturdryomov.online

A criticism of Ruby

作者就幾個面向分析了 Ruby 在語言設計上的選擇,挑出他不同意的地方,嘗試排除個人品味,專注在他認為真正錯誤的設計。

雖然我十分喜歡 Ruby 的很多部分,但也一直覺得這語言在很多基本的設計都走錯路了。其中有幾項我覺得還算是有 trade-off 可爭論(例如 mixin),但是例如 module 設計、block/proc/lambda 等等,就確實是很根本的問題,且幾乎無法換到任何好處,單純只是缺點。

不論你喜不喜歡 Ruby,甚至根本不關心,這篇還是滿值得一讀,能幫助了解很多關於程式語法的想法。雖然程式語言的選擇在很多層面上是品味問題,但在「語言本身」還是有優劣之分。有些語言就是設計得比較差。Ruby 整體來說並不差勁,但也因為這樣,討論它哪裡沒做好才更有價值。

madhadron.com

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 就能用的差別而已,所有概念還是完全通用。

cglab.ca

Practical Tmux

如果我說 Tmux 比 Screen 好用會不會太引戰。會?管你的。不過 Tmux 同時也是設定檔殺人的代表,超爛的預設值、一天到晚變的指令集、意義不明的設定名和語法,Screen 比起來真是天使。不過如果你現在開始決定要用 Tmux,這篇應該可以讓你省掉一些從頭開始調設定檔的時間。

到底是腦子接線多錯才會覺得 window 編號從 0 開始是個好主意啊?這是在設快捷鍵不是寫程式欸。

mutelight.org

@drumrick

Facebook 開源 Detectron

這週最令人興奮的事情就是 Facebook 開源 Detectron 了吧?!基於 Caffe2,架構於 ResNeXt、ResNet、FPN、VGG16 之上,實作了 Mask R-CNN 等六種物體偵測的演算法,同時公佈了超多 pre-trained model 的 baseline performance。還有一個特點:不直持 CPU。如果你有興趣嘗鮮,也可以專注機器之心的 Detectron 精讀系列

github.com

Kaggle 網站上的教學課程

不知道這個網頁是什麼時候上線的,之前 Kaggle 的學習課程是經由 email 訂閱,然後轉址到 Kaggle 上面特定的 Kernel 作為教學內容,這次則是看到 Kaggle 獨立出一個區塊來放教學課程。課程方面有 Machine Learning、R、Data Visualization、Deep Learning,除了 R 課程以外,都使用 Python 語言。學習過程可以在 Kaggle 上面用 Notebook 完成,程度適合完全沒基礎的初學者。

kaggle.com

2017 回顧文系列

最近看了一些 2017 回顧文系列,統一在這邊分享三篇以及摘要筆記

CodeTengu Weekly


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

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.

CodeTengu Weekly 碼天狗週刊 - Issue 116 彼得原理:在一個組織中,每個員工終將被晉升到他所不能勝任的職位 - Feb 12th 2018

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@mingderwang

A Serial of Awesome Talks by Joe Armstrong.

2007/4/9 Erlang: The Movie

2013/7/12 26 years with Erlang or How I got my grey hairs

2013/5/10 The How and Why of Fitting Things Together - Joe Armstrong

2016/9/14 Computing: The first 100 years (Joe Armstrong) - Full Stack Fest 2016

CodeTengu Weekly

ReelPhish: A Real-Time Two-Factor Phishing Tool

原本以為萬無一失的 Two-Factor Authentication (2FA) 或 MFA 已經可以給使用者帳號連線足夠的保護,但看了 FireEye 這家資安公司的這篇文章,才知道即時釣魚網站技術,還是有可能跳過這層保護。有興趣研究即時釣魚網站的方法,可以參考他們開發的 ReelPhish,一個簡單的即時釣魚網站工具。

fireeye.com

@chiahsien

iOS-Performance-Optimization

當 app 開發到一個足夠成熟的階段之後,就會開始需要優化它各方面的表現,像我手上這個案子最近一段時間就是在瘦身以及改善介面流暢度。這一份文件算是一個懶人包,整理了各種優化方向的資訊,只要找自己需要的內容看即可,我覺得非常有幫助。

最後還是要提那句老話:「太早優化是一種罪」。

github.com

Binary Frameworks in Swift

Swift 出來短短四年時間就吸引到眾多開發者的目光與參與,隱隱有取代 Objective-C 的樣子。凡是有接觸過 Swift 的人都一定會聽過 Swift 未來的一個重要里程碑就是要把 ABI 固定下來,到底 ABI 是什麼意思,它對一般開發者以及第三方套件的開發者來說又意味著什麼呢?

這一篇文章是 PSPDFKit 的開發者 Peter Steinberger 寫的,內容依然維持一貫的高水準,推薦各位仔細看看,但如果你真的沒時間看這麼長的文章的話,直接給你結論:

  • ABI 對一般的開發者來說影響不大,對 framework 開發者比較有影響
  • 如果你需要開發 framework,請使用 Objective-C,用 Swift 是自找麻煩

pspdfkit.com

fastlane/ci: Open source, self hosted, mobile optimized CI powered by fastlane

鼎鼎大名的 Fastlane 我想就不需要多作介紹了,最近它把觸角延伸到 CI 這一塊。雖然還在早期的開發階段,但我相信憑藉著它在移動開發領域多年的深耕,加上背後有 Google 撐腰,未來的發展還是很令人期待的。附帶一提,它們團隊正在徵人,有興趣的可以把履歷寄到 fastlane@google.com

github.com

google/promises: Promises is a modern framework that provides a synchronization construct for Swift and Objective-C.

看到近期 Swift 的蓬勃發展,再回頭看看 Objective-C,心裡時常都會冒出「老兵不死,只是凋零」的感嘆。所以看到像 Google 這樣的大公司推出用 Objective-C 開發的 library,心中是感到很興奮的。

Promises 不是什麼新穎的概念,其他類似的實作像是 PromiseKitBoltsFramework 也出來好久了,每個用法都差不多,有需要的就挑個看得順眼的來用吧。

附帶一提,Google 同時也推出了 functional-objc,建議可以搭配使用。兩者相輔相成,會讓程式碼可維護性提高許多。至於我自己嘛,多年以來我都是 ReactiveObjC 的愛用者:)

github.com

神秘的程序员们

每一篇圖文都會讓程序員會心一笑 :D

10tiao.com


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

CodeTengu Weekly 碼天狗週刊 - Issue 117 小明在開發軟體時總是嚴格地遵循各項協定與標準,直到他看到了 ISO 3166-1 - Mar 5th 2018

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

目前的 curator 陣容:

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

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

@fukuball

Ethereum Pet Shop

Ethereum:中級

最近的工作內容包山包海,Smart Contract 跟 Dapp 都要寫一些,不過有研究過的人應該都會覺得這些文件怎麼都寫得這麼亂,然後網路上的文章也都東寫一些西寫一些,許多脈絡都不是很清楚啊!

工程師都喜歡動手做從做中學,介紹給大家專門用來寫 Smart Contract 的 Truffle Framework,這絕對是初學 Smart Contract 的好物!上面也有許多教學文章,範例都蠻清楚有趣的,尤其是這個 Pet Shop Dapp,跟著做一做說不定就可以寫一個自己的 Cryptokitties 服務來玩了~

truffleframework.com

IPFS 教學和筆記

我很喜歡 IPFS 的理念,網路上的資訊應該要是自由永存的,但現在的網路資訊其實都還是要 Server 作為 host,控制 Server 的人就可以讓內容消失,比如政府想要控制某些內容,那就只要控制提供內容的 Server 就好了。IPFS 就是希望透過 P2P 的機制讓資訊自由永存,只要內容放上 IPFS 了,就永遠不會消失,也就不會被有心人控制,這樣的網路世界才是自由的。

這篇文章算是蠻淺顯易懂的教學,但已經涵蓋大部分內容了,大家應該都可以馬上開始上手使用 IPFS。如果未來 Dapp 的機制更完整了,應該全部都會放上 IPFS 吧,這樣就不需要 Server 了,不過目前 IPFS 也還是很不穩定,希望越來越多人用才能讓 IPFS 的網絡更加健全,期待那一天的到來。

github.com

林軒田教授機器學習技法 Machine Learning Techniques 第 15 講學習筆記

Machine Learning:中級

機器學習技法第 15 講主要是講解矩陣分解的方式來解推薦問題,矩陣分解其實在這個領域還蠻常使用到的,真的是必學的技法啊!然後我終於將林軒田教授機器學習課程的筆記寫完了!第 16 講只是一些回顧,如果大家有興趣可以自行點連結前往,雖然我很早就看完了整個課程,但要寫成筆記就是一整個懶,所以就被人說富堅了,我也是千百個不願意啊!

回顧一整個課程,林軒田老師的課程算是涵蓋了蠻多經典的機器學習演算法,能夠對這個領域有個完整的概觀,但如果大家想要深入學習現在最紅的 Deep Learning,那這門課程就著墨不多,建議大家可以去看看李弘毅老師的課程,非常推薦!

fukuball.com

@kako0507

webpack 4: released - Codename: Legato

Webpack 已經出到 v4 啦,這次改版主要有以下改變:

  • 效能變得更快,不過因為尚未實作 Multicore ,意味著將來還有更多的改進幅度。
  • Mode, #0CJS (Zero-Configuration):
    • 新增了兩個 mode options , "production" 以及 "development" ,透過不同的 mode 來自動選擇最適合的 bundle 流程,這裡有更詳細的介紹
    • entry 、 output 也有 default 設定了,初學者不需要 config file 也可以開始一個簡單的專案。
  • 移除了 CommonsChunkPlugin,取而代之的是 optimization.splitChunks
  • 支援 WebAssembly
  • JavaScript 之前在 Webpack 一直都是唯一的 first-class module type ,在 Webpack 4 改寫了這個限制,目前已經有五種 module types , 並且支援 ECMAScript modules ,將來還會實做 HTML 、 CSS module types 。

medium.com

Learn CSS Variables in 5 minutes

不需要經過 preprocess , pure CSS 透過 custom properties 也能達到 Sass 與 less 中 variable 的效果, 有興趣兩姐的話,本篇作者提供了幾個免費的教學影片

freecodecamp.org

CSS Variable Order

不使用 JavaScript 也能對 table 做排序!

這裡利用 CSS variable 來設定 order 的值,並且透過 HTML label for attribute 來使 table header 的每個欄位各自綁定不同隱藏的 radio button ,進而達到排序的效果。

kizu.ru

A secure web is here to stay

Google Chorme 計劃在 Chrome 68 將所有 HTTP sites 標記為不安全的網站,開發者可以透過最新版本的 Lighthouse 來對網站審查是否為 mixed content 並加以改進網站安全性。

googleblog.com

@wancw

Why I Quit Google to Work for Myself

公司大了就得有制度、靠量化,很容易就變成只追求會出現在 review/promotion 上的指標。人人稱羨的 Google 也不例外,看看過來人的經驗分享。

另外,Go 大神 Deve Cheney 的幾則評論也很值得一看:
https://twitter.com/davecheney/status/969759343267622912

  • 量化無可避免、總比靠年資來決定升遷好
  • 比起各種口號,如何對待員工升遷、獎懲才真正反映公司理念

mtlynch.io

O API  —  an alternative to REST APIs

作者覺得 RESTful API 把一次 request 的資訊散布在 HTTP method、URL、body 各處,並不好理解。於是提出了 O API (Obvious API) 的概念:提供單一 endpoint,把 request 內容都寫在 request body 裡。

有經驗的人大概會立刻想到 Facebook 的 GraphQL,其他類似的方案還有 Netflix 的 Falcor、比較新的 restQL

我相信在前後端徹底分離、微服務盛行的趨勢下,這類的方案會漸漸成為主流。再來就等各 client 平台(主要是 mobile)的 library 發展成熟了。

hackernoon.com

微服务架构技术栈选型手册

既然微服務(microservices)已經漸成主流,該怎麼挑選使用的技術也是門大學問。這篇可以當做個起點參考。

(嗯,其實裡面大部分東西我都還沒仔細研究過……)

infoq.com

Memory segmentation cheat sheet

內容其實就只有這張圖。雖然現在主流語言的使用者大概都不會直接碰觸這些記憶體細節,但我相信它是值得收藏與瞭解的。

twitter.com

Trang Phi on Instagram

(最近實在沒看什麼深度技術文,只好再放個 Instagram 了)

instagram.com

工作機會

Senior Frontend Developer at Swag

薪資:年薪新台幣 100 ~ 200 萬元,強者上限可議。

基本條件:

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

104.com.tw

Python Backend Developer at Swag

薪資:年薪新台幣 100 ~ 200 萬元,強者上限可議。

基本條件:

  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


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

Viewing all 109 articles
Browse latest View live


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