程式設計週記[2016/09/30]: 資料科學家除了專業度.全局觀與信任度外,最重要的是想像力!

這是什麼? 程式週記主要內容如下: Gihub project 介紹: 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢 網路文章心得: 會寫些心得,強迫自己閱讀. “程式週記”並且定期週期性更新. 大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下. 本週摘要 最近除了學習 Kubernetes 之外,還有加強自己對於 Machine Learning 的了解.不論是各種方式與如何驗證的手段.其實要學的東西真的不少,但是就是時間越來越少. Go Reversing GO binaries like a pro 來看看如何透過 ADA (專業的 reverse engineering 軟體 ) 來反組譯 Go 的應用程式. GopherCon 2016: Renee French - The Go Gopher A Character Study Rob Pike 的老婆 Renée French 也就是眾所皆知的 Gopher 圖形發明者,講解了 Gopher 的發明過程.沒有任何程式碼但是相當有趣. 也可以看到許多可愛的 Gopher 圖案,還有 Gopher 圖案的設計規範與理念. Mini-Workshop: Build a Web App with Francesc Francesc Campoy Flores 線上教你如何透過 #golang 建置 Web App . 2016/10/11 開始,記得先報名一起來看線上直播喔. The Three Go Landmines 三個常見的 Golang 的錯誤. Awesome Go 許多好用及相當好的 Golang 套件集合. reloadproxy restarts your server and reloads what’s in your browser, anytime any changes are detected. 一個很有趣的專案,透過監控的方式當你修改程式碼, Web App 會即時更新內容,不需要重新編譯執行. Youtube: Go generate, generics, and you 透過 go generate ( Golang 裡面自動產生程式碼的工具 ) 來達到 generic 的目的. Thread-Safe Lock Free Priority Queues in Golang 講解透過 Golang 如何達到沒有 lock 又能滿足 thread-safe 的 priority queue (擁有優先權的 queue ) Github 在這裡 Idiomatic Go 許多 Golang...
繼續閱讀

程式設計週記[2016/09/23]: GTG16忙完,大家也要保重身體

GTG 16 聚會的照片 這是什麼? 程式週記主要內容如下: Gihub project 介紹: 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢 網路文章心得: 會寫些心得,強迫自己閱讀. “程式週記”並且定期週期性更新. 大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下. 本週摘要 本週的幾件事情就是總算重新啟動了 Golang Taiwan 社群.結果忙完之後,我女兒就不斷地生病並且在醫院住了三天. 大家也要好好注意自己的健康. 最近工作上會使用到許多 Machine Learning 的技巧,現在每天都在 K 相關書籍希望能夠在短時間把所有的演算法與應用場景都搞熟. Go Take a REST with HTTP/2, Protobufs, and Swagger GRPC 大家用了沒? 是不是因為還不想把手邊的 RESTful API 換掉而沒有改到 GRPC ? CoreOS 展示如何透導入 GRPC 後,依舊有 RESTful API 並且有 Swagger 的服務。 相關議題,其實有上 Google Cloud Platform Podcast,想聽聽訪問的可以聽聽看 CoreOS CTO 如何解釋: [gRPC at CoreOS with Brandon Philips Google Cloud Platform Podcast](https://www.gcppodcast.com/post/episode-43-grpc-with-brandon-philips/) Go Development with Vim-go Vim-Go 的作者在 Digital Ocean 工作的 Fatih Arslan 來分享如何使用 vim-go .跟我一樣主要是在 Vim 上面開發 Go 的人不可以錯過,順便可以看看新版的 vim-go 又多了什麼功能. NEUGO: Neural Networks in Go 使用 Golang 的類神經網路計算工具. Google I/O talk: Building Sourcegraph, a large-scale code search & cross-reference engine in Go Google I/O 今年的 Talk 講解 Sourcegraph 如何透過 Golang 來製造他們 Code Search Chrome Plugin . Sourcegraph 是一個 Chrome Plugin 可以讓你直接去 parse github 上面得程式碼,直接尋找相關的宣告與函數的實體. 而他們如何透過 Golang 來建置相關的設施如下,以下摘錄幾個標題: No web framework 不使用任何 Golang Web Framework 而使用 net/http (個人後來也偏好這個) Unified API client and...
繼續閱讀

[Coursera] Illinois: Cloud Computing Concept Part 1 : Week 1-2

課程鏈結: 這裡 學習鏈結: Week 1-2 Week 3 Week4 Week5 Mini Project (Gossip Protocol) 前提: 到了新公司,其實也是躲不開繼續學習的宿命.不過可能是因為圍繞的人還是一樣 XD 這個課程是同事推薦,當然要來好好看看. 目前已經到了 Week1 與 Week2. 也順便大概跟大家介紹一下整個課程與內容,希望能讓更多人喜歡這堂課. 課程內容: 這裡先簡單的介紹整系列的課程內容,希望能讓大家了解這個課程想做什麼. 這整堂課主要是圍繞著 Cloud Computing 經常會使用到的技術與相關的概念. 整堂課其實只有一個程式語言作業: 使用 C++ 寫 Gossip Protocol 雖然課程裡面程式語言的作業不多,但是整體上的內容還算不少. 除了有談到一些雲端技術的基本概念: Map Reduce Multicasting and Gossip Protocol P2P Protocol and System K/V DB, NOSQL, and Cassandra (畢竟都談了 Gossip) Consensus Algorithm - Paxos, FLP Proof 其實課程內容很有料,也可以學到很多的東西. Week1 Orientation, Introduction to Clouds, MapReduce 講解不少的 Data Center 與分散式系統的基本概念,簡單地列一下幾個重點: Data Center PUE (Power usage effectiveness ) 通常這個數字一定會大於 1 (業界大概是 1.4~1.5) 分散系統中有談到 Map Reduce 要如何運作: YARN 是透過 RM (Resource Manager ) 來控制全部的系統工作分配. MapReduce Map 分配工作 Reduce 根據 key 將重複的結果合併起來. Week2: Gossip, Membership, and Grids 這一個章節主要開始介紹 Gossip 的一些原理,稍微節錄如下: Multiple-Cast: 單節點向所有節點廣播 透過 ACK (Acknowlegement) 與 NACK (negative acknowledgements) 來表示有收到或是沒有收到. 時間複雜度: \(O(n)\) Gossip Gossip broacast (UDP) There are two mode about broadcast: Push 時間複雜度 \(O(log_n)\) Pull 時間複雜度 \(O( log(log_n) )\) Fault Torrent: Packet Lost: 50% 封包遺失,依舊可以正常運作. Node Failure: 可以有一半左右的節點失效,還是可以正常運作. Gossip-Style Failure Detection (Heartbit)...
繼續閱讀

我的社群之路: 參加,參與,受到啟發與啟發別人的道路

(照片拍得真好,感謝專業大師 gtg16) 終於順利把 Golang 社群活動成功地重新啟動,也順利完成主辦了 GTG#16 的聚會 .心裡其實有不少感受想分享給大家. 起源 你啟發的人會有幾個,是一個兩個? 還是很多很多? 離開 Corel 後的兩年間,其實參加過不少的研討會,當然也有參加不少的社群聚會. 舉凡: Docker Taipei, Python Tapei, Golang TW 等等. 但是,其實讓我印象很深刻的就是第一次在 Golang 社群 發表的 Lightning Talk. 也就是剛開始準備 Project 52 (當時寫到 Week 13 ) 的一個 Lightning Talk. 還記得那一次的報名,只是想要試試看分享自己 Project 52 的決心. (當然絕大部分的原因是因為沒有搶到票) 膽戰心驚的花了十分鐘講完了(那霎那… )馬上忘記整個十分鐘講了什麼 XDDD . 於是要準備收包包回家得時候,就有個人跑來跟我用英文交談. (太神奇了,原來 Golang 可以將中文投影片轉譯成英文 XD ) 反正我們交談的內容大約是: 他剛從香港來台灣找前端的工作.結果看到我在 Golang 分享 Project 52 的想法大受啟發,他說他希望也能夠感染我的熱情好好的來學習一下 Golang (雖然他是前端工程師) .並且也好奇的詢問我,到底需要多久的時間才能熟悉 Golang . 很多時候,當你啟發別人的時候.其實,最受到啟發的將會是你自己. 原來,開源的專案不僅僅開啟了我自己的眼界與心態.由於我的分享,更有可能啟發別人進而讓別人也能有相同的感受. 大研討會時代 就是上個月,我不小心一次報名同一個禮拜的兩個研討會. 分別是 COSCUP 跟 Modern Web 2016  , 雖然要準備兩份投影片讓我七月底到八月每天半夜都熬夜趕投影片.但是想到如果有機會能夠讓其他人感受到我自己心中的熱情,進而改變他們的想法或是面對事情的態度,我就又打起精神來努力做投影片. 第一次大型研討會: COSCUP 2016 H0 會議室 還好,一切都還算順利. 雖然 COSCUP 講得太快而 Modern Web 卻又講得太慢. (是哪招?) 但是在 COSCUP 發生了印象很深刻的一些小事如下: 認識了不少原來在臉書上面看到的人 有個部落格讀者在我前往廁所的路上堵到我,然後跟我說有長期訂閱我部落格. 也有鼓勵我說,希望我繼續寫下去.(還好,我尿急應該沒有顯現出來 XD ) 不少攤位的人,看到我的臉就問我說.你是不是那個要講 Golang ( 原來我長得像 Gopher (驚!) ) 有人問我 COSCUP 上台到底會不會緊張? 如果你是來分享你喜歡的事物.你會緊張嗎? 第二次研討會: 認識人跟聊天比聽講多的 Modern Web 身為講者最大的好處,大概就是不斷地認識其他的講者. 可能也由於講者們本身的個性就是屬於樂於分享的人.(不然也不會來研討會講) 於是乎,大家很容易就能夠打成一片. 整個研討會也變成很像是來認識人一樣. Golang 社群重裝上陣 開完了幾個研討會,也想把 Golang 社群好好的經營起來.希望能讓更多人使用這個語言. 當然也不希望我講完 Lightning Talk 之後的 GTG#15 就讓社群倒了. 於是乎,我花了很多時間開始找講者.希望能有一些講者一起來籌辦第十六次的聚會.不過事與願違,實在找不到兩個講者. 這時候公司同事的社群經營王 - Simon 就講了一句話: 找不到講者,一開始都是自己來講的!! 就在轉眼一年前夕,我自己決定來籌辦第十六次的 Golang 聚會. 就先把之前在 Modern Web 沒有講很清楚的部分來一次講個清楚.(給自己一個交代) 另外一方面也來開始找講者. 還好,高雄有講者很彭場得願意講,只要有辦法連線. 講者就像是專案進度一樣是靠問出來的!! 有了兩個講者後,我就印了貼紙.趕快來開售票亭開始訂票(騙人進來).一如往常, Golang 社群只要限定在 20 人左右就能夠秒殺.然後就可以來找閃電秀跟下一個講者. 最後,好不容易湊齊了差不多的閃電秀講者. Here...
繼續閱讀

[研討會心得] Golang Taiwan Gathering #16 順利結束,相關資訊.

活動網址: 這裡 GTG16 - Slides: 可以 follow 這個 Repo Talks - Slides Evan Lin: Using Golang to build a smart IM Bot Hawk: Go+ Lambda + Dynamodb = Telegram Bot Lightning Talk - Slides Umbo CV: Kakashi - Golang X CI X CD duolC: Cyril - 使用Go實作跨平台匿名配對聊天app的後台機制 iotwav: Bean - Recruit for DevOps Evan: Use go channel to write a disk queue GTG16 - 影片: Golang Taiwan Gathering 16 影片出爐: Part 1 主要是我講建置 IM Bot 與 luis.ai demo Part 2 hawk 講解 Telegram Bot 與 lightning Talk Lightning Talks Umbo CV: Kakashi - Golang X CI X CD duolC: Cyril - 使用Go實作跨平台匿名配對聊天app的後台機制 iotwav: Bean - Recruit for DevOps Evan: Use go channel to write a disk queue
繼續閱讀

程式設計週記[2016/09/16]: 下週要舉辦 Golang Gopher 台灣聚會,記得參加

這是什麼? 程式週記主要內容如下: Gihub project 介紹: 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢 網路文章心得: 會寫些心得,強迫自己閱讀. “程式週記”並且定期週期性更新. 大部分內容在我的twitter都會有,這邊只是將一些簡單的心得與感想註解一下. 本週摘要 公司的公事開始要忙碌了,不過還是要開始把一些記錄一下.此外, Coursera 的 Cloud Computing 第二輪希望能夠修完.筆記有點多都還沒寫完. 最重要的是下週有 Gopher Taiwan 聚會在 09/20 ,大家記得要參加. Go 初試 Go lang 經驗 同事透過 Pokemon naming package 來學習如何透過 VSCode 來寫 Golang. SOLID Go Design dfc (Dave Cheaney) 在 GopherCon 2016 上面的 Talk 如果想看中文版本,可以看這個. Creating a Bot using the Telegram Bot API 使用 Golag 的 Telegram Bot API 來建立一個聊天機器人 jpetazzo/Go + Docker = ♥ Docker 界的大大 jpetazzo 寫了篇講解如何透過 Docker 而不安裝 Golang 的方式來編譯,執行甚至是跨平台編譯的相關指令. 但是有些地方需要注意: cgo 與 net : 使用 Docker-Golang 來編譯與執行 Golang 程式碼,需要注意到是否有使用到 net 與 cgo 的部分,如果有你的 base image 可能要換成 from debian 雖然會比較大,但是就比較不會有平台上的問題. 關於使用 ssl : 處理 SSL certificate 一直都是很麻煩的事情,這裡建議透過 alpine 來安裝 root certificate FROM alpine:3.4 RUN apk add --no-cache ca-certificates apache2-utils rpcx is a distributed RPC service framework based on net/rpc like alibaba Dubbo and weibo Motan. One of best performance RPC frameworks. 這個 RPC Service 透過分散式的方式來提供更好的 RPC 效能,甚至遠遠超過 GRPC 與 Alibaba Dubbo 與 Weibe Motan...
繼續閱讀