在 linkit smart 7688 寫 golang

7688_7688duo

很高興 Mediatek 在去年推出 linkit smart 7688 開發版,你可以把 7688 想成是一台迷你型 Router,如果不來拿開發,也可以當家用 Router 也是不錯的。7688 讓開發者可以在上面寫 Node.js, Python 及 Native C,光是聽到 Node.js 就很興奮,用 JavaScript 控制硬體。但是本篇要介紹如何在 7688 執行 Golang 程式,其實不難,只要把 OpenWrt 支援 gccgolibgo 即可。底下步驟同步於我的 Github Repo

[Read More]

用 gofight 來測試 golang web API handler

身為一位後端工程師,如果專案初期階段不導入測試,等到專案越來越大時,您就會發現,解了一個 bug,又產生好多個額外 bug,讓產品一直處於不穩定狀態。後端最主要提供前端或手機端 RESTFul API,所以今天來介紹一套 gofight 工具,用來測試 Golang 的 http handler,讓開發者可以送 Form, JSON, Raw 資料,後端處理後,可以拿到 response 資料,透過 Testify 來測試資料是否符合需求。

目前大部份的 Golang Web Framework 都可以透過 gofight 來測試,除非作者有把 ServeHTTP 改成自己定義 Response,不然基本上都是可以支援的,我自己測試了 Gin, Mux, HttpRouter 都是可以使用的,底下來看看 gofight 該如何使用。

[Read More]

Golang 發佈 1.6 正式 Release

今天 golang 正式發佈 1.6 版本,趕快到官方網站下載使用,如果你是用 gvm,直接下 gvm install go1.6 即可。golang wiki 提供了很多 Package Management Tools,可以隨意選一套來使用。底下整理幾點 1.6 的改變:

重大改變

效能議題

官方說無從比較,有些程式碼可能在 1.6 比較快,也有可能在 1.5 會比較快,但是在 garbage collector 上面 1.6 會比 1.5 好,前提是程式使用了大量的記憶體,1.6 版本也針對蠻多 package 做了 Performance 改善,提升了至少 10 % 喔 compress/bzip2, compress/gzip, crypto/aes, crypto/elliptic, crypto/ecdsa, 和 sort 套件。

[Read More]

在 MAC OS 快速又簡單安裝 Docker 環境 – dlite

Mac OS X 底下安裝 Docker 服務不難,只需要到 Docker Mac 教學網站下載 Docker Toolbox,就可以使用 docker-machine, docker, docker-compose 等指令操作 Docker 服務。本篇提供另外一種工具,讓 Mac 開發者可以快速使用 Docker 服務,就是這套用 Go 語言寫的 dlite 工具。

安裝方式

dlite 提供三種方式安裝

  1. 直接下載執行檔案 (推薦) (下載連結)
  2. 直接透過 brew 指令安裝: brew install dlite
  3. 開發者模式: git clone 專案,然後下 make dlite 產生執行檔案

請大家直接使用第一種方式安裝即可。

使用方式

安裝 dlite 需要使用到磁碟空間及記憶體,你可以動態指定 memory 使用量,或者是磁碟空間,詳細指令可以透過 dlite install -h 觀看

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
$ sudo dlite install -h
Usage:
  dlite [OPTIONS] install [install-OPTIONS]

creates an empty disk image, downloads the os, saves configuration and creates a launchd agent

Help Options:
  -h, --help            Show this help message

[install command options]
      -c, --cpus=       number of CPUs to allocate (default: 1)
      -d, --disk=       size of disk in GiB to create (default: 20)
      -m, --memory=     amount of memory in GiB to allocate (default: 2)
      -s, --ssh-key=    path to public ssh key (default: $HOME/.ssh/id_rsa.pub)
      -v, --os-version= version of DhyveOS to install
      -n, --hostname=   hostname to use for vm (default: local.docker)
      -S, --share=      directory to export from NFS (default: /Users)

可以看到指令預設會佔用 20GB 的磁碟使用量及 2GB 的記憶體,所以安裝時可以調整成個人需求大小,安裝請用 root 使用者

[Read More]

TJ 的新作品 frontend boilerplate 前端工具整合

github-logo

今天突然看到 TJ 開了一個新 Repo 是 frontend boilerplate 嚇到我了,自從 TJ 去年發表要轉向 Go 之後,就把他自己很多的 Node.js Project 轉給其他人維護,也漸漸沒在 Github 上面活動,但是今天又看到她整理了一份 frontend boilerplate,內容含了現代流行的前端開發工具,大家可以參考看看,是個不錯的 Template:

期待 TJ 能有其他新作品啊。

用 Go 語言寫的 Github Git 服務

null

最近看到大陸那邊用 Go 語言寫了一套類似 Github 服務叫做 Gogs(Go Git Service),目前個人裝起來速度方面相當快,跟 GitLabRuby 寫的 Git Service 速度有差,以功能完整性來說,GitLab 還是大勝 Gogs,安裝方式則是 Gogs 勝於 GitLab,如果最後要推薦用 Gogs 還是 GitLab,我個人還是會選 GitLab 因為畢竟還是要搭配 Jenkins 等 CI 服務才能發揮作用,這次來筆記如何在 Ubuntu 上安裝 Gogs。

[Read More]