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

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.


Viewing all articles
Browse latest Browse all 109

Trending Articles