idanBean 種豆得瓜

猶如傑克與巨人的魔豆,貫穿裝置到雲端。

Month

February 2016

Backend test with GoConvey

在 devops 建置過程中,測試是不可缺少的一部分,為了減少測試程式編寫的複雜和增加架構性,我們試著導入 GoConvey。他是用 golang編寫的工具,在 go 的環境中使用非常簡單,並提供 web UI可以看到測試結果,也可由頁面觸發測試。在 Jenkin build之前的 test也可使用 command line對編寫好的程式產生測試結果,驗證這次修改的版本是否正確。 在使用的過程中,GOPATH 的設定很重要,所以第一步是要設 export GOPATH=”/home/ubuntu/go” 需要安裝  GoConvey  go get github.com/smartystreets/goconvey 編寫測試程式,主要的部分是 Convey 中定義每一筆測試,再使用 So 作結果的比對設定,判斷這筆測試是成功或失敗 開始測試並產生 web UI $GOPATH/bin/goconvey 若是在 Jenkins 中想要對策試結果做判斷,可使用 command line go test -v Reference http://goconvey.co/ https://github.com/smartystreets/goconvey    

silk: Markdown based RESTful API test tool

在 implement 後台的 RESTful API最令人頭痛的便是 RESTful API測試程式的撰寫,寫測試程式所花的時間有時候會比寫 API 更多。最近看到一個新的 RESTful API 測試工具,可以用編寫 markdown 的形式完成 API的測試,silk 我是使用 go去執行它,silk也可用 command line方式執行 我主要是去 run silk git 上的 example,我建了一個新的 go project 裡面有三個檔案 tester.go example.go hello.silk.md 在這個 example中自己開起了一個 server,只開一個 /hello 的 API 在用  hello.silk.md 檔去定義此… Continue Reading →

How to use AWS CodeDeploy deploy to AWS EC2

在 DevOps 的 deploy 步驟可以在 Jenkins 寫部屬 script,用 ssh 連入被部屬主機做部屬,在 AWS 上有另一種選擇 AWS CodeDeploy。 open IAM  console and create policy “codeDeployPolicy“   create policy “EC2codeDeployPolicy“ create a role “codeDeploy” with “codeDeployPolicy” policy add s3 access permission to “codeDeploy“ modify Trust Relationships of  “codeDeploy” as… Continue Reading →

Apache thrift between javascript and node.js

在處理前後台溝通時,之前是使用 RESTful API,某些前後台共同功能會需要兩次開發或是開成 RESTful API 由後台統一處理。為解決這個問題,所以決定導入 RPC 來達到跨語言呼叫,此修改也將為我們後台功能模組化帶來便利性。由於我們的前台用 Javascript 後台是 Go,一導入 thrith 就面臨  CORS 的問題,但目 thrift 只有 nodejs有針對 CORS 已經有 solution,不過以 node.js 而言可直接將靜態網頁掛在上面,也就不會有 CORS 的問題。下面和大家分享一種是將靜態網頁直接掛在 RPC Server,另一種是將 html和 RPC Server 分開,要如何加上 CORS 參數。  將靜態網頁掛在 RPC Server server side: client side:… Continue Reading →

Install and setup Redmine in ubuntu 14.04

Redmine   功能 多個專案管理 具彈性的以角色為基礎的存取控制 具彈性的問題跟蹤 甘特圖和日曆 新聞、文件及檔案管理 RSS Feed 和電子郵件 通知 每個項目都可有自己的 wiki 每個項目可建立多個討論區 簡單的時間追蹤 個性化的欄位 組態管理 整合 (SVN、CVS、Git、Mercurial、Bazaar或Darcs) 多種 輕型目錄訪問協議(LDAP) 認證 使用者註冊功能 多語言(支持包括中文的PDF導出) 多資料庫 多種外掛 REST 應用程式介面 (API) 安裝 安裝Redmine依賴之相關套件 $sudo apt-get install apache2 libapache2-mod-passenger mysql-server mysql-client PS:如果要安裝在docker… Continue Reading →

SQL Server to MySQL with R

在 windows 上使用 R 去存取 SQL Server 和 MySQL 我是使用 RODBC。我的目的是將 SQL Server 中整理資料取出後再匯入 MySQL,用下面方式不須先去MySQL定義 schema就可將 data frame存成 MySQL的表格,遇到一些特殊狀況則需要特別去處理: 先在 windows 上的 ODBC 編輯連到 SQL Server 和 MySQL Server 的設定   在 R中使用RODBC require(RODBC) 取出 SQL Server 中需要資料   將資料匯進另一個… Continue Reading →

Apache thrift between golang and node.js

下面要與大家分享的是使用 node.js 當 client 連接 go 的server。 之前已經試過使用 go client 和 java client 去連go server,原本以為因該是很容易就可以測試成功,沒想到光是想成功用 node.js連上 go server就讓我卡關一天。最後發現原因竟然是因為 transport 和 protocol 的選擇造成,在此分享可以實作成功的組合。 golang server 建置過程已在 Apache thrift with golang 分享,這裡只分享所使用的 transport 和 protocol 種類   node.js client 建立node.js 版本服務定義檔: thrift –gen js:node… Continue Reading →

Apache thrift with golang

之前介紹過 Apache thrift 的安裝步驟,下面要分享的是如何建立一個  golang 的 server 和 client。 建立 RpcService.thrift來定義所要提供的service   使用  “thrift –gen go RpcService.thrift ” 指令會建立 gen-go 的資料夾,裡面是針對提供 service 和使用 service 所產生的 golang code,將這資料夾加到 server 和 client端的project中 安裝 thrift 的 golang librbary: go get git.apache.org/thrift.git/lib/go/thrift server code 將想要提供服務的… Continue Reading →

weka:使用 Java 作 machine learning

  在大數據如此熱門的現在,針對入門可以先對小數據作簡單分析和練習使用各種演算法。weka 是一個 Java library 已經實踐許多machine learning 的演算法,雖然實踐的演算法和 R 相比較少,但對於資料處理預測已經足夠,之前我也曾使用 weka 實做了類似 nest 去學習使用者對空調控制行為和在家規律的學習預測的功能。對於 Java 使用者而言不需再多學習其他語言,也可練習做數據分析,重要的不是使用何種語言和工具,而是對資料分析流程的了解和對數據的敏銳度。 下面是我當時使用weka時先用 UI介面針對資料作探索的UI安裝和操作介紹。我當初是先用UI介面去探索針對這些功能需要收集哪些資料,要何種格式以及用何種算法,再將結果作程式的實踐,變成自動化行為。   安裝 in windows 7 到官網去下載最新版本,現在最新版是weka-3-7-13-x64.exe,我當初是使用 weka-3-7-12-x64.exe [注意:下載3.7以上版本才有支援 GUI package manager] 點擊安裝 設定環境變數 : WEKA_HOME=[安裝路徑] 如有需要連接 MySQL 資料庫則須在 CLASSPATH 加上 mysql connection library… Continue Reading →

Queue Server Solutions

  在開發cloud service時有時 request 不需要馬上從API取得資訊而是將資料作上傳處理,此時可使用 Queue server 當作 API 接受命令和後端處理資訊的中介,讓 API 將資料塞入 Queue server 後馬上 response,資訊可由後端服務後續處理,此作法可讓使用者request不會需要等待response也可在後端處理上擁有更多彈性,如可將訊息設不同priority分層處理等設計。下面介紹幾套比較常見的 Queue server open source和安裝方式。 Apache Qpid 簡介: 是一個 AMQP 的開源實踐項目,屬於 Apache 的項目。使用Apache Qpid 有提供 C/C++/Java/Python client 端 library。 安裝: 先去官網下載最新版本,我是使用 java broker 的qpid-broker-6.0.0-bin.tar.gz 版本… Continue Reading →

© 2019 idanBean 種豆得瓜 — Powered by WordPress

Theme by Anders NorenUp ↑