January 15th, 2016
這是什麼?
程式週記主要內容如下:
Gihub project 介紹:
- 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢
網路文章心得:
- 會寫些心得,強迫自己閱讀.
“程式週記”並且定期週期性更新.
本週摘要
明天(2016/01/16)就要舉行台灣的總統與立委選舉,大家別忘記投票.
下週要有Google Golang Gala也就是Golang的分散式駭客松.也就是可以在全世界各地舉行駭客松.這次希望能來的及寫完一些點子也來試試看. 大家有興趣也來參加看看..
本週工作大部分都在看網路文章,還有玩一下Golang本身buildin的net UDP相關操作,希望能準備好一些東西下週參加比賽.
Go
Gopher Gala
- 01/22~01/24就要開始distributed hackathon,可以在任何地方參加.大家一起來參加.唯一的限制就是必須要使用Golang
Difference Erlang and Golang concurrency
- 有人詢問關於Erlang與Golang在Concurrency上面處理的不同,有人就回答如果就Programming Model上來說:
- Elixir/Erlang 就像是Goroutine/Go.不同的是Goroutine是system thread而Elixir是Main Entity.所以如果你產生了一個Elixir,你會拿到PID.
- 但是Go特有Channel可以讓不同processese間的溝通更加透明化.
- 有興趣想要學習Erlang的Go Programmer,可以看這裡 Elixir concepts for Go developers
lukasmartinelli/pipecat: Connect UNIX pipes and message queues
- 這個套件提供透過UNIX pipes的指令來處理message queues(AMQP).
# Publish sequence of numbers to a job queue.
seq 1 1000 | pipecat publish numbers
# Multiply each number with 10 and store results in a different queue.
pipecat consume numbers --autoack | xargs -n 1 expr 10 '*' | pipecat publish results
# Aggregate the results and calculate the sum
pipecat consume results --autoack --non-blocking \
| python -cu 'import sys; print(sum(map(int, sys.stdin)))'
Writing AWS Lambda Functions in Go
- AWS Lambda是Amazone 開放的一個Service可以讓用戶上傳自己的程式或是服務.讓該程式會在Scale的時候自動執行.
- 那麼想要在AWS Lambda上使用Go? 雖然官方還沒有開放正式的方式來使用.這篇文章透過cross compiling的方式來將Go編譯成Linux Library的方式來透過node.JS或是Python來使用.
CSharp
####
- Sony Computer Entertainment, Worldwide Studios:Open source software for game development
- Sony Worldwide 遊戲部門也是有Open Source project on Github.都是C# projects裡面有幾個很酷的:
- “LevelEditor”: 用來建構遊戲場景與地圖用的
- ATF: 用來建立物品模型的
網路文章
【 雜湊函式生命週期表 】
- 紅色表示已糟破解,橘色表示已找到嚴重弱點,黃色表示已找到輕微的弱點,只有綠色是可接受的。所以實務上現在還能用的只剩下 SHA-2 及 SHA-3,其他諸如 MD5、SHA-1 都陣亡了。 (from ANT FB)
- 2004有大量的破解MD5是因為有大陸學者王小雲教授發現MD5破解法
架构师(2016年1月)
- 本期提到很有趣的是CAPTCHA與圖像辨識的演變.這個主題蠻有趣的而且很多詳細的介紹都有提到.
A few thoughts on the role of software architects
- 一篇2008的舊文章,由微軟的Platform Group的Director撰寫的.如果你想當Software Architect裡面有許多至理名言.
- 主要是提到(0)適時的授權讓底下的人發揮(1)千萬不要微觀管理(2)測試很難評估效用,但是他是無價的(3)親自下來寫code(4)瞭解自身的缺點(5)任何架構都是為了客戶,不是為了你自己(6)遇到錯誤,承認他並且快速修復它.
程序员的黄金时代:下載軟體的時代眼淚
- 網路螞蟻,快播,迅雷,網際快車與暴風影音你有用過幾個?文章中敘述這些檔案續傳與加速軟體都是大眾拿來作為毛片(也就是A片)的下載軟體. 不過每一家的背後技術其實都相當的深厚,不論是多點續傳,線上觀看,哈希碼分享都是相當先進的技術.但是迅雷扶正而快速的集資上市,暴風影音更是股王,而快播的開發者堅持做原本的部分持續進步,但是卻落得被政府”嚴打”下被判刑的人. 這些時代的眼淚,可以好好的看看這篇文章.
The Easy Way To Learn Hard Stuff: 簡單地學習困難的事物
- 這篇介紹了如何去學習一個困難的事物(範例拿Django舉例),這邊列出一個方法可以讓你更容易上手.以下依序介紹:
- 先使用它:
- 這邊提到,摒棄難懂的spec/RFC,建議你先開始使用它.不論是從簡單的sample code,hello world或是一些tutorial開始.開始去建立一些東西.隨著一些使用,你慢慢會體會到一些系統的架構,一些基本的原理..
- 解決你的困惑:
- 隨著使用它,你逐漸會遇到一些不瞭解與困惑的地方.當你開始遇到困惑與阻礙的時候,試著去解決他並且了解相關的原理.
- 建立一些東西:
- 這時候tutorial再也無法吸引你了,你可以開始建立一些你的應用或是你想要使用這個來建立的服務.或是是一些更進階的應用.
- 先使用它:
- 就是這麼簡單.開始學習新事物吧..
有聲書/影片心得
TED 中英字幕: 怎麼尋找你熱愛的工作?
- 如何尋找你熱愛的工作,講者提出一個Living your Legend的裡面並且建議以下的步驟:
- 瞭解你得長處:
- 你是全世界唯一能夠真正瞭解你自己的人.認真地去瞭解自己得長處與缺點.
- 制定你人生的價值(先後順序):
- 你必須要整理對於你而言最重要的是什麼?家人?健康?事業?財富? 這樣的整理有助於你可以更專注的去追求你人生想要的事物,不會失去了焦點.
- 透過經驗來反省與思考:
- 別讓每一個失敗變得沒有意義.必須要思考你哪裡做錯,哪裡沒有做好.也別忘記去記錄從每個人身上學習的部分.
- 定義你人生的”成功”:
- 透過自己得長處與經驗並且追求人生的價值途中,定義一個清楚的成功.
- 瞭解你得長處:
- 此外,講者也建議你必須要選對你周遭的人:選擇能讓你成長的朋友,遠離帶給你負面的朋友.因為周遭的人會不斷地刺激你的努力,帶給你正面的影響,讓你了解成功不是遙不可及.
- 最後,甘地的這番話相當激勵人心:
First they ignore you,
then they laugh at you,
then they fight you,
then you win.
- Mahatma Gandhi
- Youtube: Google Developer - Getting started with Brillo & Weave:
- 重點整理:
- Weave是protocol 介於手機,雲端跟裝置,Brillo 是相容於Android 的IoT OS
- 所有可以使用Android的設備都可以使用Brillo,不過都需要註冊Google Account,Weave也是依據Google雲端相關服務.
- 最重要的是 Brillo/Weave 公開是下一季,相容裝置是年底 整段影片有點長,建議跳著看slide跟最後的Q&A
- 看來…繼續來看看CoAP跟IoTivity…
- 重點整理:
IT公論#186-「越来越不觉得 2016 年是虚拟现实元年了。」
- 這一期沒有其他來賓,主要討論2015年底發生的一些事情.
- 恥辱柱: 就是大公司們控訴被電信服務商的流量綁架,也就是使用某些電信商來瀏覽網站,第一個到達的不是該網站,而是電信商希望你看的廣告.(這是哪招?不過台灣免費WiFi也有類似狀況).
- 本集主要討論一些CES的新產品,不論是VR的 Oculus Rift或是聯想的筆電.一些新產品的想法.
- 也有討論到最近很熱門的Netflix開放了138國(包含台灣)
- 當然也有提到快播審訊,我在網路文章裡面也有提到.
投影片心得
簡單易懂的 OAuth 2.0 by Yu-Cheng Chuang
- 相當清楚而詳細介紹OAuth2你該了解的流程,資料的走向與資料格式.除了會使用之外,我們需要更加了解之中的一些小細節.
網站介紹
“The evolution of massive-scale data processing”
- 介紹各種Big Data處理的幾個方案: Map Reduce, Hadoop, Flume, Storm, Spark… 速度與使用語言與效能比較.
一個可以讓你比對JSON資料的網站
- 丟上變動前與變動後的JSON資料,透過生動的圖形來瞭解哪些有變動.
Ubiquity Dev Summit 2016
- 2016/01/11~2016/01/12在美國舊金山舉辦的Ubiquity Dev Summit是Google針對IoT與一些行動的研發專案開的研討會.有不少關於Beacon Platform或是IoT (Brillo與Weave)的介紹.
- 全部影片可以在Youtube: Google Developer找到
本週專案
這邊會寫一些我的Project 52的成果.
week30: UDP client/server to get Public and Private IP and Port for hole punching
先寫好抓取網路資訊的服務,下週應該就要準備參加比賽的題目.想整合MQTT + CoAP做個東西(client/server) 不知道做不做得完…. 趕緊來偷做…
這個專案可以幫你抓取網路資料包含ipv4, ipv6 port, network mask,透過與一部外在server的連接你可以抓取到external ipv4/port資訊.