這是什麼?

程式週記主要內容如下:

Gihub project 介紹:

  • 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢

網路文章心得:

  • 會寫些心得,強迫自己閱讀.

“程式週記”並且定期週期性更新.

大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下.

本週摘要

本週是認真做事週,可以好好的把許多事情規劃並且處理一下.也更有時間可以把過去一些東西拿回來學學. 把 MOOC 繳費開始要學習,並且也要認真學習看一些機器學習的論文,看不懂就可以跟強者同事們討論看看.



Go

xtaci/kcptun: A Simple UDP Tunnel Based On KCP

kcptun 是一個透過 KCP (A Fast and Reliable ARQ Protocol) 來達成的 tunnel 的方式.

會注意到這個專案是因為以前的公司曾經為了 firewall penetration 而使用 UDT ( http://udt.sourceforge.net/ ) .但是 UDT 這個專案已經多年沒人維護,並且支援的程式語言相當的少 (C++) 要跟其他語言來結合就很麻煩.

快速整理: 在做 firewall penetration 由於封包特性,不使用 ICE protocol 下,最簡單方式就是將 TCP 封包改成 UDP 來做到資料傳遞到 stub. 但是 UDP 又沒有 TCP 的相關優點,所以有 UDT 這個將 TCP 的機制做在 UDP protocol 上面的專案.

KCP 看起來有不少優點: (https://github.com/skywind3000/kcp)

  • 支援語言比較多 (Go, C#, Lua…)
  • 沒有修改 socket 部分,完全透過演算法來用 (所以封包會大 10~20%)
  • Header file 24 byte include control and data sync
  • 近幾個月都還有在維護

UDT 比較麻煩點: (http://udt.sourceforge.net/)

  • 只有 C++
  • 一套完整的 UDP 解決方式,但是有不少雷可以踩
  • Header file 16 byte, separate control and data sync

KCP 畢竟是強國人開發,中文文件不少可能是一個優點.

相關鏈結:

Ross Cox:My Go Resolutions for 2017



Python



Android/JAVA/NODE.JS/Scala

Building the TensorFlow android example app on Mac OS

讓 Tensorflow 跑在你的 Android 手機上面直接做 prediction .透過這樣的方式,就算你沒有網路也能讓手機跑已經學習好的機器學習模型.

不過這個範例需要的手機配備還蠻高規的,



Docker



Kubernetes



iOS/Swift



其他程式語言



論文收集



網站文章

AirBnB original deck in 2008

原本 AirBnB 在 2008 年的 pitch

The Infrastructure Behind Twitter: Scale

Twitter 在 2017 新的一年談到

另外可以看看 Uber Scale 的方式

RUNNING ONLINE SERVICES AT RIOT: PART II

Riot Game 介紹了他們的 Container Orchestration 架構 rcluster 是主要透過 Go 來完成的 ADMIRAL 來寫自己的 Resource Scheduler . 文章是寫在兩個月前,而這個系統其實是在目前的接近一年前開始探討與開發,當然他們也是有觀察過其他架構的:

  • Mesos + Marathon (後來的 DCOS )
    • 不容易架設
    • 不支援 Container Group
    • 當時尚未支援 Docker Container ( Mesos 一開始只支援自己的 Container 架構)
  • Kubernetes (一開始的 LMCTFY )
    • 當時還沒有 Constraint
    • 之後有支援各種 constraint 或是 node select 甚至是之後的 1.5 要支援的 Taint
  • Fleet
    • 剛剛才 Open Source ,還不夠成熟
    • 比較適合建置系統服務,而不像是給一般應用程式部署而用.

所以他們在半年前建置了自己的 Resource Scheduler (Admiral) 結合了 Docker Container 的概念與 Mesos Constraint 的概念來建置,讓整個系統其實很像… 目前的 DCOS (笑) .

最後的結論也提到,他們正在思考將 Admiral 慢慢轉移到 DCOS 上面來處理.



Machine Learning

谷歌云首席科学家李飞飞:人工智能 极客公园 2017 年 大会演讲

新智元:2016年全球AI巨头开源深度学习库Top 50

Gigaom对话吴恩达:迁移学习是未来五年的重要研究方向

Andrew Ng 談到他在百度的相關工作內容,並且提到 Transfer Learning 與 Multi-Tasking Learning 將會是未來 AI 的趨勢.

Multi-task learning(多任务学习)简介

創造AlphaGo的台灣「土博士」,他們眼中的黃士傑

黃博士的故事,這篇專注在他進到 DeepMind 之前的事情

A guideline from Google - Best Practices for ML Engineering from Google [pdf]



有聲書/影片心得

ATP 205: PEOPLE DON’T USE THE WEIRD PARTS

最近剛離開 Apple 到 Tesla 的 Chris Lattner 接受 ATP (ACCIDENTAL TECH PODCAST) 的邀請來談談 LLVM 跟其他相關科技. 記錄一下一些重點摘錄:

  • 關於職涯轉換:
    • 當然有談一下關於 Apple 跟 Tesla 在職業生涯上面的轉換. 對於 Chris Lattner 從工程師到管理階層的轉換,他自嘲不是一個所謂的 People person 但是他喜歡這方面的轉換.
  • 有討論到 Apple 對於 Objective C 想要改善的想法,一直到了 ARC 甚至談到了 Swift 誕生的起因.
  • 關於 Swift 的開源 (Open Source):
    • Lattner 提到原本在他心中就覺得會發生,但是礙於公司政策無法來運作.
    • 其實從一開始的 Commit 到相關工具的開發,都有顯示出來 Lattner 是從 Open Source 的角色來思考.
    • 但是 Swift 2 Open Source 後, 公司無法規劃到說會得到那麼多的回饋.

其實有更多的部分,對於 LLVM GC 有興趣的人都很歡迎好好聽聽.整段訪問有兩個多小時.

從 HN 找到一些,關於 Chris Lattner 的八卦:

備註一下: Chris Lattner 是 LLVM 跟 Swift 的發明者跟主要維護人.

參考:



Meetup

GDG#32 《Tensor What? AI and Mobile - 行動應用與人工智慧》

昨天晚上 GDG Tensorflow on Android 的投影片:

影片

心得:

雖然前一天已經把範例跑過了(需要 Nexus 5 以上手機) 但是這次演講對於 Machine Learning 由淺入深並且很有趣的介紹.




Evan

Attitude is everything