程式設計週記[2016/06/17]: 女兒剛滿週歲,Project52 也順利完成

這是什麼? 程式週記主要內容如下: Gihub project 介紹: 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢 網路文章心得: 會寫些心得,強迫自己閱讀. “程式週記”並且定期週期性更新. 大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下. 本週摘要 本週真是一波多折:先是老婆感冒生病,再來換我眼睛長針眼.也剛好本週要把 Project 52 跟一個電子報導(尚未發,先保密)寫完.整個就是忙碌到不行.最後專案是 Raft Server ,所有的變數名稱跟功能都是依照論文來寫.不過 Log Replication 還需要更多的測試才能確認功能是否正常. Go google/cayley: An open-source graph database Google 開發的開源圖形資料庫,裡面提供許多關於連接資料 (Linked Data) 的工具箱. GB 0.4.2 release GB 有新功能就是 nope mode ,可以只編譯 test 的部分而不去跑他,來確保程式碼有沒有基本的問題. How to do Google sign-in with Go 透過 Golang 來撰寫可以登入 Google 服務的功能. roylee0704/gron: gron, Cron Jobs Python Reactive Programming in Python PyCon Taiwan 2016 的講稿 Android/JAVA/NODE.JS/Scala jQuery 3.0 Final Released! Docker Shrink your App with Alpine Linux 教導你如何將 App 修改後可以放入 Alpine Linux 之中,這樣也可以在 Docker 放入 Alpine (又小又安全) gaia-adm/pumba: Chaos testing tool for Docker iOS/Swift Xcode 8 has SourceKit.framework written in #Swift 😱 #WWDC16 pic.twitter.com/FNH1fSdpbO— JP Simard (@simjp) June 14, 2016 iOS 裡面的 SourceKit 已經是用 Swift 編譯而成 其他程式語言 Spark手把手:e2-spk-s02 教你如何透過 docker 來架設 spar 論文收集 Who to Follow for DevOps Resources on Twitter | Automic Software DevOps Twitter 名人帳號清單. 網站文章 Clairvoyance 是怎麼開發的 - 104 Chrome 套件天眼通的開發經過與心得 最近很知名的 104 Chrome Plugin...
繼續閱讀

邁向下一步

打完卡後,就要離開群光電子. 在這兩年多,不務正業的完成以下目標: 有一個可愛的女兒(滿足…) 完成 8 堂 MOOCs (本想一年 10 堂,但是硬生生拖了兩年還是上不完) 程式語言 Scala, Swift, Golang, Ruby, R 學習. Python 算複習. ObjC / Android 工作上的就不算了. 完成了 Project 52 (眼淚…) 將要站上 COSCUP 講者台 (順便也將要站上 Morden Web) 讀了 4 篇非工作上的相關論文 (Paxos, Raft, Gorrila, Maglev) 很開心地加入了碼天狗,認識很多厲害的大大. 勇敢邁向下一步吧… 我是這麼想著..
繼續閱讀

[TIL] 將資料從 Macbook Air 轉換到新的 Macbook Pro Retina

起源: 買了一台 15 吋的 MBPR 來當作工作機,就必須要把我的資料從 MBA 轉換到 MBPR .這邊寫一下經過紀錄一下: 流程: 透過 “系統移轉輔助程式” 來轉移資料: 根據 Apple: 將內容移到新的 Mac 應該直接使用 “系統移轉輔助程式” 應該要可以把兩台電腦透過 WiFi 來轉移資料,但是不知道為什麼找不到對方電腦,有試過以下的方式: 雙方電腦確定都更新到 10.11.5 確定在同網域 確定同使用者 還是不行.決定換方式. 透過 “Time Machine” 來轉移資料 這邊要先講一下,原本我的 Time Machine 都放在 NAS 上面.結果要在另外一台電腦還原的時候就苦惱了. 後來還是決定另外弄一個隨身硬碟來弄 “Time Machine” ,然後透過 “系統移轉輔助程式” 來轉移. 轉移成功後還是有一些東西要處理: Homebrew 的資料夾 /usr/local 權限要處理,可以參考這篇. sudo chown -R $USER:admin /usr/local 其他使用到現在都還沒出現其他問題,有問題再來更新. 參考: Apple: 將內容移到新的 Mac Time Machine 如何協助你轉移系統與資料
繼續閱讀

程式設計週記[2016/06/10]: 端午節 -> 白蛇 -> Python -> Python 節

這是什麼? 程式週記主要內容如下: Gihub project 介紹: 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢 網路文章心得: 會寫些心得,強迫自己閱讀. “程式週記”並且定期週期性更新. 大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下. 本週摘要 本週適逢連假,本來想寫作者外出取材中.但是還是很拼命地完成相關的文章索引跟當週作業.下週就是我完成 Project 52 的最後一週,本週投稿 COSCUP 結果被接受.很期待跟大家分享做 Project52 的快樂與心酸啊 :) Go heroku/force: A command-line interface to force.com Heroku 出的 force.com 的 CLI 工具,可以到這裡去看看詳細簡介.force.com 是由 salesforce.com 的 BaaS 服務. Introducing Gimme: Dependency-less dependencies for Go “Gimme” 提供了另外一種 Dependency Management 的一種思維.就是幫你需要的檔案直接複製到你的資料夾裡面. Running Go on a Chromebook in Developer Mode (without installing Linux) 如何在 Chromebook 上面跑 Go 卻不需要安裝 Linux SwimRing - A Minimal Distributed Fault-Tolerant Key-Value Store built with SWIM Gossip Protocol and Consistent Hash Ring 有時間可以看看裡面的部分,SWIM + Gossip 並且透過 Consistent Hashing . 鯰: Programmable fuzzy scheduler for testing distributed systems http://osrg.github.io/namazu 透過 Namazu (鯰) 可以幫助你測試分散式系統 (Zookeeper, YARN) 的一些問題,進而分析問題的主要原因. 這裡有更詳細的影片,可以看看: https://www.youtube.com/watch?v=mmSV4AhJUno etcd over gossip: strongly-consistent semantics in a weakly-consistent world 這是一篇 CoreOS (他們最受歡迎的產品就是 etcd ) 在他們的研討會 FEST 2016 裡面的一個主題: “etcd over gossip: strongly-consistent semantics in a weakly-consistent world” 也就是架設在 Gossip Protocol 上面的 etcd . 並且底層是透過 Docker 的 weave net . 這一篇裡面有將 etcd 裡面的...
繼續閱讀

程式設計週記[2016/06/03]: 我竟然出現在唐鳳大大演講的投影片裡面!

這是什麼? 程式週記主要內容如下: Gihub project 介紹: 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢 網路文章心得: 會寫些心得,強迫自己閱讀. “程式週記”並且定期週期性更新. 大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下. 本週摘要 本週花了不少時間在看 Google 論文 Maglev ,算是相當的有收穫.所以這一篇週記整理就花了相當多的時間來整理. Go uber-go/zap: Fast, structured, leveled logging in Go Uber 出的 Log system ,具有結構化資訊並且相當的快速, otoolep/go-httpd: How to organise a Go HTTP service 常常有人想學 Golang 的 Web programming 不知道該如何下手? 想要架設一個網站,卻不知道資料夾該怎麼放? 如何寫一個簡單的單元測試? 如何搭配 CircleCI 做自動化測試? 不仿將這個 Repo Clone 開始做你的第一個 Web Go App. See Python, See Python Go, Go Python Go Andrey Petrov 是 Python Lib urllib3 的作者,他在 PyCon 2016 的講題.其中提到在 Python 中去使用 Go 與 C binding 的 WebServer. 原理是透過 Go 可以輸出成 Shared Library 的方式讓 Python 透過 FFI 來載入.然後再透過 Go 來載入 C binding library.雖然不會比原生的 Go 或是原生的 C 還要快,這卻是一種有趣的方式. 免費MOOC: Learn How To Code: Google’s Go (golang) Programming Language [免費課程][原價 NT:1200 現在免費] 想要學習 Golang 的 Mooc? 這裡有課程教學,透過 Golang 從基礎來學習程式語言,有興趣的可以看看. 這個 promo code 不知道能存在多久,有興趣的建議先註冊下去. 此外,有任何 Golang 問題,歡迎來社團 Go程式語言 發問.. https://viraldeal.net/deal/learn-how-to-code-googles-go-golang-programming-language Go Tooling in Action Francesc Campoy 介紹了一些 Golang 的小工具,包括了: 很基本的樣式控制: goimport IDE: VS Code for vs-for-Go Go-wrk : http benchmark...
繼續閱讀

[論文中文導讀] Maglev : A Fast and Reliable Software Network Load Balancer (using Consistent Hashing)

前言 (為何想讀這一篇論文) 這一篇論文吸引我注意的原因是, Consistent Hashing 本來的特性就是作為 Distributed Caching 之用. 但是 Google 將他們的 Load Balancer (代號: Maglev ) 公布他的實作方式,裡面並且將 Consistent Hashing 做了一些小改版來符合他們的需求. 由於我之前就有學習過 Consistent Hashing ,所以相當好奇 Google 能夠如何地將它更進一步地做提升. 就想要閱讀這一篇論文. 本篇導讀主要內容如下: 介紹 Maglev 的特性與其改善的部分 回顧 Consistent Hashing 介紹 Maglev Hashing 原始論文 Maglev: A Fast and Reliable Software Network Load Balancer 導讀 什麼是 Maglev? Maglev 是 Google 的軟體 Load Balancer ,不像是一般硬體的 Load Balancer , 他可以運行在一般的 Linux 機器上面. Maglev 在 Google 內部已經運行了超過 六年 ( since 2008 ) .一台 Maglev 可以處理 10Gbps 的小封包連結. Maglev 主要的功能與特色 Maglev 作為 Google 內部的高效能軟體 Load Balancer ,他有以下兩個主要功能: 新的 Consistent Hashing Algorithm 稱為 Maglev Hashing Connection Tracking 回過來講,那什麼是 Consistent Hashing ? 講到 Consistent Hashing 就必須要提到原本 distributed caching 的運作是靠 Hash Table 的方式來達成,比如說: 來源 ip : 1.2.3.4 透過將來源 ip 做 Hashing 過後指向 server1 來源 ip : 1.2.3.5 透過將來源 ip 做 Hashing 過後指向 server2 來源 ip : 1.2.4.6 透過將來源 ip 做 Hashing 過後指向 server3 依照原先的設計如果 server1 發生了故障,那麼不論如何 1.2.3.4 就無法連接到任何一個伺服器. 於是 Consistent Hashing 就是在這裡發揮效果. 根據定義...
繼續閱讀