January 30th, 2015
##雜七雜八感言:
啊… 我覺得我blog樣板好醜啊….應該要改成Patrick類似的… 本來想加回廣告的… 後來看到每天流量沒有破百…. 算了….
##筆記:
以下是關於本週的學習筆記…
###[Golang] 一些有趣的package 跟 網站
- goth: Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications.
- 可以很快速地使用OAuth跟OAuth2的工具.
- switcher: Run SSH and HTTP(S) on the same port
- 可以同一個communication port 同時接受http跟https 或是ssh,透過protocol 不同,
- 比如說原本跑http的port 80,可以透過switcher把https的request導到另外一個process
- $ switcher –listen :80 –ssh 127.0.0.1:22 –default 127.0.0.1:8080
- 總覺得會是很有用的東西….
- deck: Slide Decks
- 可以透過markup language來做投影片,挺有趣的.
- Docket - Custom docker registry that allows for deploys through bittorrent
- 有神人在Gopher Gala Golang 48 hour hackathon的作品.. 很特別的點子是.. 透過bittorrent來deploy
- go iOS.App()
- 一個關於如何用Go在iOS上面寫App的討論串,有不少成果可以看.
- Using Go in mobile apps: How I learned Go while integrating it into my iOS and Android app
- 記錄了如何用Go寫Android/iOS的App,一開始有先介紹如何使用cgo接下來就是如何寫出App.
- Gopher Gala 2015 hackathon
- 第一屆的Gopher hackathon,優勝者會在02/03揭曉,挺多有趣的專案說…
- ImgurGo: An open source image uploader by the Imgur team
- 這次Gala參賽作品.. imgur 團隊用go寫了圖片上傳網站… 還支援AWS… cool
- freegeoip: IP geolocation web server
http://freegeoip.net
- 一個工具可以讓你用ip找到位址,只有第一次使用的時候會把資料庫下載下來.其他查詢都很快.
- Excellent Open Source Go Projects
-
Go open source project 大排名,第一名竟然是Go-github.docker落到第十名…. :
-
- Hound: Lightning fast code searching made easy
- Git code searching tool, 比較少見的是.. 他是用rake build tool not.. godo
- golearn: Machine Learning for Go
- 包含許多應該要有的基本功能相關的機器學習,使用Go來寫….
- Our Experience with Golang
- 一家公司scriptrock將網站轉換到Golang的心得,
- GoRest: A RESTful style web-services framework for the Go language.
- web framework 是有想過把REST部分弄的自動化.. 似乎這個有了..
[Golang] “Beego” Framework: An open source framework to build and develop your applications in the Go way
- 另外一個web framework 選擇,這裡有些討論- 而且Beego作者也跟大家討論架構.大家谈谈Revel和Beego吧 或者其他Go框架
- 看完架構,發現主要是給網站作為MVC架構用.如果要做web services可能還是要用其他的framework.
[Golang] Concurrency 實戰初體驗-
- 一開始學習都Go Routine都是寫一些簡單的程式,最近有機會應用到網站上面的時候,有一些簡單的心得.也順便把所有的Godoc仔細地查看了一下.
- 使用時機:
- 需要他的回傳值或是修改後的結果,使用Channel
- 不需要,就直接使用Goroutines
- goroutines如果有太多參數要使用,直接寫成在func裡面.
- 使用成效:
- 一個需要用到對照查詢的部分,原本要40s可以節省到1/3(甚至更少..).
// 一個effective_go 上透過channel完成類似message queue的概念 var sem = make(chan int, MaxOutstanding) //MaxOutstanding 最多可執行的thread數 func handle(r *Request) { // sem在這邊只是作為MaxOutstanding的個數參考,如果超過MaxOutstanding就無法指定新的數值 sem <- 1 // Wait for active queue to drain. process(r) // May take a long time. <-sem // Done; enable next request to run. } func Serve(queue chan *Request) { for { //等待新的message(request)進來 req := <-queue go handle(req) // Don't wait for handle to finish. } }
[RPI+node.js]自己的 Dropcam 自己 Make
- 有人把自己整套dropcam的solution 包含伺服器與RPI上面client的code都分享出來.並且透過deploy to heroku這個按鈕,可以一鍵部署到heroku去.
- 完整source code在這裡.
[Cloud Load Testing]關於負載測試的服務與提供
- 主要是由Azure看到的服務介紹,來瞭解到原來雲端負載測試是可以外包給雲端服務的.不過考量到伺服器的測試會造成許多額外得費用.這部分想玩還要找時機啊.
- Blitz另外一家雲端負載測試公司
- Loadstorm 這也是另外一家….
[Other] 雜七雜八的鏈結
- [演講slide]我在kktix的第一年
- hlb的演講,主要是講解售票系統市場的競爭,跟kktix被買的流程 XD
- [演講slide]利用AWS開發及實作新創公司的基礎資訊建設 Startup IT infrastructure: Developing and Working with AWS
- KKBOX的演講,主要是提到網路公司的基礎資訊建設,主要也都是AWS的一些服務.