2016年3月15日 星期二

[Agile]參加完 Agile Workshop 的心得

這次去參加了 Agile Community 辦的 Workshop。 Workshop 本身是蠻有趣的,以非常快速的方式體驗了 Agile 的流程。 關於 Backlog 的列舉, 在分成 Task 的流程部分,以及StandUp Meeting, 我重新 Run 了一遍。之前公司的 Agile 方式簡化到只剩 Standup Meeting. 這帶給我一種 - 咦!? 這難道不是一種緊迫盯人的方法而已!?  我把我的問題提問出來,其中一位助教說,還有最後一部也很重要就是 Retrospect. 在 Retrospect 裡可以檢討 run agile 的過程中到底哪邊出了問題,然後在下一輪中可以改進,包括制度上的。 這給我很深的感受,Agile 除了是在開發上及早發現問題及早改進外,也可以針對制度來做一個改進。 也就是一個制度本身不是僵化的,可以檢討改進。這點就太棒了。 因為唯有對制度的活化才能避免各種光怪陸離的現象,真正的達到敏捷的開發!  這大概是我這次最大的收穫。

2016年2月10日 星期三

[Go] Eclipse Golang Plugin GoClipse 安裝與設定 in Windows

比起 sublime 文字編輯器等, Eclipse IDE 比較像是給 Java, C++  這種 架構比較大的語言來使用。因為尋找 function 以及程式的聯結有比較好的 support 與整理。 GoClipse 的安裝使用, 我並沒有找到很多,所以紀錄一下安裝歷程與使用。

安裝 -  GoClipse Installation  


環境 :

  • Windows 10 
  • Eclipse 版本要 4.5( Mar ) 以上 , 我的是 4.5 
  • Java VM  8 以上
  • 裝有 cygwin 
  • 我的 Go ver. 1.5
  • 我的 Goroot 在  C:\Go
  • 我的 GoPath 在  D:\workspace_go\ 


安裝 Go Code  -  auto-completion 的 go tools
  1.  Go to gopath 的 src
  2.  go get -u github.com/nsf/gocode
  3. go install github.com/nsf/gocode

安裝 Go Oracle  - Source Code 的分析工具

  1. Go to gopath 的 src 
  2. go get -u  golang.org/x/tools/oracle 
  3. go install golang.org/x/tools/oracle

安裝 GoClipse 
  1. Help -> Install New Software
  2. 連結 url  http://goclipse.github.io/releases/ 
  3. 找 到 GoClipse 並安裝 


設定 GoClipse
  1. 在 Windows ->  Preference 
  2. 找到 Go 
  3. 我的設定如下
  4. 下拉 Go , 選擇 Tools , 設定剛剛安裝的 go code 跟 go oracle 路徑

































以上就安裝完成了 !

Memo 


Build Path 

Build 的話可以使用 , 原來的設定,也就是使用 Go install

intall -c -v -gcflags "-N -l" ./...  

但這樣會把 build 好的執行檔儲存在 gopath 的 bin 底下。 我一般開發時並不喜歡這樣,所以我把 build path 稍做修改把執行檔存在 package 底下。











[Go] Go IDE 使用心得

使用 Sublime 3 用了一陣子,Sublime 的 GoSublime plugin 支援 code highlight, completion 以及 9o build 等許多功能, 使用下來覺得很好用。之前也使用過 github 出品的 Atom 編輯器與其 go-plug plugin,功能跟 gosublime 差不多,更增添了幾個的 go tools 的 support ,但因為我實在很不習慣他的美感編排就放棄了!  隨著 Code 越寫越多, 與 functions 越寫越細,越覺得 Sublime 3 是不夠用 。

除了文字編輯器般的 IDE 還有更便利的 IDE 嗎!?

從這個想法出發我找了兩個 IDE , 一個是 Android Studio 所使用的 IntelliJ 另一個是 Eclipse。 這兩個都是 IDE大家, 而我也因為 Android 開發所以使用得都順手。 起初我是偏好 Android Studio, 理由是 一個 IDE 開發兩種 Code 是比較想要的, 而 Android 放棄 Eclipse 完全移植到 IntelliJ 來了。但最後沒有選擇 Android Studio 是因為,Android Studio 的 Go Plugin 有版本問題 ,最新支援到 Go 1.4 。 這並不理想,意味著 Go 的升級會受限 IDE。最後我選擇了 Eclipse,一來 Eclipse GoClipse plug-in 並不受 Go 版本限制,二來 Eclipse 是有支援 Go 實驗性質的 Debug  Support! 最後,Eclipse 的 User Interface 對我來說比較有親和力。


這邊有一篇比較各種 IDE的 文章很不錯!
http://geekmonkey.org/2012/09/comparison-of-ides-for-google-go/


Summary :
  • Sublime 3  : 理想且強大的文字編輯器。 Go Plugin Support 使用起來順暢,但最終他是個文字編輯器。
  • Atom :  github 出的文字編輯器,有令喜愛的 md file preview 功能。 Go-Plus Plugin 包含許多 go tools : gocode, gofmt, goimport, gofmt, govet, golint, go build ... 
  • IntelliJ :  高階語言的開發者介面模式。可以跟 Android 整合再一起。Plug-in 是 Go version depended。最新支援到 Go 1.4 (Feb. 2016)
  • Eclipse:  高階語言的開發者介面模式。是個受歡迎的 IDE支援非常多的語言。 GoClipse Plugin 並非 Go Version Depended,支援 Experimental Debug Support! 好用的使用者介面。 

2015年12月5日 星期六

[Review] AlarmMap 犯罪熱點地圖

犯罪熱點地圖是我最近開發的一個 Android App。 開發動機 :


  1. 最近在寫 Go 怕 Android 忘記
  2. 看到 WoFOSS 在做類似的開發, 想加入,但那是一次性的 hackthon project, 所以殘念
  3. 去聽女人迷瑋軒演講,受到想做的事就去做的激勵 
  4. 我還蠻喜歡寫 Map Application 的


目前功能開發已到一個階段, 整個 Framework 已經差多, 達成我第一階段預設

  1. 將犯罪熱點顯示在地圖
  2. 使用者 進入犯罪熱點警示範圍時候顯示警訊 
  3. 使用者沒把 App 開前景時, 也會在背景運作
  4. 回報機制 
  5. 顯示犯罪熱點的描述
  6. 連結到 Google Map 導航
  7. 使用 Cluster 粗略顯示犯罪熱點密度

現在就來介紹這一支 APP 吧! 


  點進 AlarmMap  Icon 進入 App












2015年10月8日 星期四

[Go]Go 1.5 Release 重點整理

Go 1.5 是一個非常大的改進,最重要的幾點是 GC 的改變以及 gomobile 的支援。 Go 的 GC 一直以來就被說低效能,而 GC 是多麼重要的一件事情。 Gomobile 則是正式支援了 android 與 ios App,開啟了 Go 的 mobile 時代。

根據 Go Blog Go 1.5 的重點如下 :
  • Implementation:
    • Compiler Tool Chain 從 C 變成 Go
    • Garbage Collection 從新設計改善 GC pause time
    • GOMAXPROCS Default 由 1 變成 logical CPU 數目
    • Go Linker 更改可以 build archieve or shared library 讓 C 使用

  • Tools
    • internal package (只有某些鄰近package 可以使用) : 實驗性質的 Vendoring Packages
    • 新的 go tool trace : program trace 的視覺化工具
    • 新的 go doc : 新的 command line

  • Operation system & architecture
    • 較成熟的 darwin/arm, darwin/arm64 (Apple's iPhone and iPad devices), and linux/arm6 架構 (darwin/arm64 用在  gomobile)
    • 實驗性質的ppc64 and ppc64le (IBM 64-bit PowerPC, big and little endian)
  • Language
    • 幾乎沒有 很細微的 Map , 的 element type 省略支援
  • Standard Libray
    • 比較簡潔的 usage message
    • math/big package 支援 Float type
    • DNS resolver on Linux and BSD : 不用 cgo requirement
    • go/type 被移到 standard library 了
    • reflect library 增加ArrayOf & FuncOf Function
    • 其他小改


Reference:
Go 1.5 Release Note

2015年9月26日 星期六

[Review]禮物 - Tapin 具象化的雲端回憶

    最近在床邊的是兩本松浦彌太郎的書,因此好好的被他既是日式的細膩又是西式的熱情所影響。 剛剛讀到禮物,他說收到禮物時,要向對方好好說明收到禮物的感想,這是答謝的方法。剛看完,就在中秋假期的前夕,收到一份禮物。 

    第一個感想是還蠻開心的,畢竟在分享會萍水相逢,隔兩天就收到了一份禮物。分享會當天跟我們解說完後,還寄了實品給我們, 這是跟兩位美女一起參加活動的好福利 (笑)。不過收到禮物後,我感受到的是老闆對產品的熱情! (正解)

    這個禮物拿到手上時,溫度的感覺一直持續著。不管包裝或是產品的設計上,都是溫暖的。


2015年9月24日 星期四

[Golang]Build go library for Android using gomobile step by step

Build go library for Android using gomobile step by step

1. Supposed  \src\gobindtemp  is my go lib source file

2. Build arr file

gomobile bind [directory under gopath]
ie.  gomobile bind -target=android gobindtemp

generate an aar file  ie. gobindtemp.aar

I suggest go to the project directory use 

gomobile bind -target=android

this will generate .aar file in the project directory

otherwise , .aar is generate in the same directory with /src