iPhone 6、iPhone 6 Plus が発売され、10月16日10時 (現地時間) のスペシャルイベントでは、新型iPad や Mac、OS X Yosemite も発表されました。特に、27 インチ iMac Retina 5K ディスプレイモデルは、15インチMacBook Pro Retina ディスプレイモデルを所有していなかったら、すぐにでも手に入れたいですね!
OS X 10.10 Yosemite も、早速 MacBook Pro Retina にインストールしました。ただし、残り1分の表示から1時間かかりました。Homebrew などで /usr/local にデータをインストールしていると残り1分の表示から1、2時間かかるようです。
もうすぐ iOS 8.1 も公開されます。拙作 iYKRSS は、iPhone 6、 iPhone 6 Plus に対応する予定です。しばらくお待ちください。
Docker - Build, Ship, and Run Any App, Anywhere https://www.docker.com/
Linux コンテナ管理ソフトウェア Docker の開発に使用されているプログラミング言語 Go に以前から興味を持っていました。
Amazon で洋書を探してみると
Programming in Go: Creating Applications for the 21st Century (Developer’s Library)
- 作者: Mark Summerfield
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2012/05/04
- メディア: ペーパーバック
- クリック: 1回
- この商品を含むブログを見る
Programming in Go: Creating Applications for the 21st Century (Developer's Library) [Kindle Edition] Mark Summerfield (Author)
上記本が良さそうなので購入してみました。読み終えた感想は、struct フィールドの tags 利用方法、defer の解説など説明不足のところもあります。結局、
Documentation - The Go Programming Language http://golang.org/doc/ References
を参照したり、Go のパッケージソースを参考にしました。
Mac に Go をインストール方法は、2通りあります。(残念ながら OS X 10.9 Mavericks 上での説明になります。)
最初は、
Homebrew — The missing package manager for OS X http://brew.sh/
Homebrew を使って、
$ brew install go
上記コマンドを実行してインストールする方法です。
.bash_profile ファイル
export GOPATH=$HOME/go export GOROOT=/usr/local/opt/go/libexec export PATH=$PATH:$GOPATH/bin:$GOROOT/bin
に上記内容を追加してください。
$GOPATH は、
~ $ go get -u github.com/jessevdk/go-flags
上記コマンド go get を使って、github にあるパッケージをインストールするフォルダを指定するのに使います。この場合 go-flags パッケージを $GOPATH にインストールしています。go-flags を利用するには、ソースに
import ( "github.com/jessevdk/go-flags" )
上記のように import 宣言する必要があります。
後、コマンド godoc をインストールするには mercurial が必要なので
~ $ brew install hg
上記コマンドで hg をインストールしてください。
~ $ go get code.google.com/p/go.tools/cmd/godoc
上のコマンドを実行すると $GOROOT/bin に godoc コマンドがインストールされます。godoc の使い方は
~ $ godoc fmt
この場合は fmt パッケージのドキュメントが表示されます。Safari などでドキュメントを見たい場合は、
~ $ godoc -http=:8080
上記コマンドを実行し、Safari で http://localhost:8080 にアクセスしてください。
コマンド vet は
~ $ go get code.google.com/p/go.tools/cmd/vet
上記のようにインストールしてください。
$ go vet zlist.go
vet 単独コマンドではなく、上記のように利用してください。
基本的に Go では import するパッケージは $GOPATH/src に置くことになります。
export GOPATH=$HOME/go:$HOME/Desktop/Book\ Sample/goeg
のように : で分けて複数のパスを宣言することもできます。
export GOPATH=path
なら
path/ + src/ + shaper1/ + shape1.go | | | + shapes/ + shapes.go | + safemap/ + safemap.go
main プログラム shape1.go から shapes/shapes.go、safemap/safemap.go パッケージを利用するには
import ( "shaper1/shapes" "safemap" )
と宣言する必要があります。もちろん、main プログラムが $GOPATH 以外にあるときもパッケージを利用するには、上記のように宣言します。
もう一つの Go のインストール方法は、
Getting Started - The Go Programming Language http://golang.org/doc/install
を参考に
Downloads - The Go Programming Language https://golang.org/dl/
から、
go1.3.3.darwin-amd64-osx10.8.tar.gz Archive OS X 10.8+ 64-bit go1.3.3.darwin-amd64-osx10.8.pkg Installer OS X 10.8+ 64-bit
上記バイナリパッケージ、どちらかをダウンロードし、
go1.3.3.darwin–amd64-osx10.8.tar.gz の場合、ターミナルで
~ $ tar -C /usr/local -xzf ~/Downloads/go1.3.1.darwin-amd64-osx10.8.tar.gz
上記コマンドを実行してインストールしてください。
go1.3.3.darwin-amd64-osx10.8.pkg Installer OS X 10.8+ 64-bit
go1.3.3.darwin–amd64-osx10.8.pkg の場合は、Finder 上でダブルクリックしてインストールしてください。
.bash_profile に
export GOPATH=$HOME/go export GOROOT=/usr/local/go export PATH=$PATH:$GOPATH/bin:$GOROOT/bin
を設定してください。バイナリパッケージは /usr/local/go にインストールされます。
Go についての感想は、すべてのオブジェクトを interface{} で表したり、クラスや継承がサポートされなかったり、また、ソースや Reference の読み方に慣れるまで苦労しました。
struct フィールドの tags の理解するのにパッケージソースを参考にしました。パッケージのソースは $GOROOT/src/pkg にあります。
tags の理解には、$GOROOT/src/pkg/reflect/type.go の
763行目 func (tag StructTag) Get(key string) string {
が参考になります。
peco/peco · GitHub https://github.com/peco/peco Bash - pecoの基礎の基礎 - Qiita http://qiita.com/xtetsuji/items/05f6f4c1b17854cdd75b
上記サイトも Go プログラミングがどんなものか理解するのに役立ちました。
Go のパッケージソースにメモを付けたいので、必要なソースを PDF 化する時に CotEditor
CotEditor -Text Editor for OS X http://coteditor.github.io/
を利用しました。PDF 書類にメモを書き込むには、Apple 純正の ‘プレビュー’ を使っています。Go の文法をハイライトするために、Go のシンタックスを色分けするシンタックスカラーリング定義ファイル Go.plist を作成しました。Go で初めて作ったプログラム zlist.go と一緒に下記 URL
CotEditor 用の Go 言語シンタックスカラーリング定義ファイル Go.plist と Go で作った初めてのプログラム zlist.go 公開。 http://kyoshiaki.sakura.ne.jp/osx/Sample/go_example.zip
で公開します。メニュー/CotEditor/環境設定の ‘フォーマット’ タブで
上図のようにウインドウ一番下、中央のギアアイコンから、’読み込み…’ を選択し、上記 URL に含まれる Go.plist を選んでください。
上図のようにシンタックスカラーリングを変更すると見やすくなります。
いろいろなテキストエディタのシンタックスカラーリングファイルは
$GOROOT/misc
にあります。
以前は、ソースの PDF 化には、mi
mi - テキストエディタ http://www.mimikaki.net/
を使っていたのですが、デフォルトのシンタックスカラーリング対応言語が少ないのであきらめました。また、Mac App Store から Jedit X Plus を購入して使用しているのですが、’メニュー/ファイル/ページ設定…’ で拡大縮小を設定し、’メニュー/ファイル/プリントで PDF 化する’ を選択すると、ページごとに縮小してしまい、思ったように縮小してくれません。その点、CotEditor は、全体を問題なく縮小してくれます。
シンタックスカラーリング作成には Kate の go.xml が参考にしやすいです。Xcode、Vim、Kate などいろいろ試しましたが、PDF 化には CotEditor が一番使いやすいです。
Xcode の場合、
$GOROOT/misc/xcode/4/go4xcode.sh
を実行すれば良いのですが、Mac App Store から Xcode をダウンロードした場合、Xcode の所有権が root になっています。Homebrew を使って Go をインストールした場合は、go4xcode.sh ファイルの先頭、 set -e の後に
GOROOT=/usr/local/opt/go/libexec
を追加し、また、バイナリパッケージを使ってインストールした場合は、
GOROOT=/usr/local/go
を追加してください。その後、下記のように sudo ./go4xcode.sh を実行してください。
~ $ cd $GOROOT/misc/xcode/4 /usr/local/opt/go/libexec/misc/xcode/4 $ sudo ./go4xcode.sh Password: Backing up plugindata file (copied to DVTFoundation.xcplugindata.bak). Adding Go language specification entry. Installing Go language specification file for Xcode. Run 'sudo rm -rf /var/folders/*' and restart Xcode to update change immediately. Syntax coloring must be manually selected from the Editor - Syntax Coloring menu in Xcode. /usr/local/opt/go/libexec/misc/xcode/4 $
上記説明にあるように、
/usr/local/opt/go/libexec/misc/xcode/4 $ sudo rm -rf /var/folders/*
を実行し、Xcode を起動します。
Xcode で Go のソースファイルを開いた後、メニュー/Editor/Syntax Color/Go を選ぶとシンタックスがカラーリングされます。Go ファイルを開いても自動でカラーリングされないので注意してください。
Vim の場合、
macvim - Vim for the Mac - Google Project Hosting https://code.google.com/p/macvim/
ターミナル上で vim を使用するのも良いのですが、折角なので、上記 URL から MacVim をダウンロードしました。設定は共通のようです。
インストールされた Go の
$GOROOT/misc/vim/syntax/go.vim
にある go.vim を
~/.vim/ftdetect/go.vim:
にコピーするとシンタクスカラーリングされます。
しかし、Vim には、プラグイン管理ツール neobundle.vim があるので、こちらを利用する方がお勧めです。
Shougo/neobundle.vim · GitHub https://github.com/Shougo/neobundle.vim
インストールするには
~ $ curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh
を実行し、スクリプトを実行すると下記内容
Please write NeoBundle initial setting to your vimrc path ... "NeoBundle Scripts----------------------------- if has('vim_starting') set nocompatible " Be iMproved " Required: set runtimepath+=/Users/yoshiaki/.vim/bundle/neobundle.vim/ endif " Required: call neobundle#begin(expand('/Users/yoshiaki/.vim/bundle')) " Let NeoBundle manage NeoBundle " Required: NeoBundleFetch 'Shougo/neobundle.vim' " My Bundles here: NeoBundle 'Shougo/neosnippet.vim' NeoBundle 'Shougo/neosnippet-snippets' NeoBundle 'tpope/vim-fugitive' NeoBundle 'kien/ctrlp.vim' NeoBundle 'flazz/vim-colorschemes' " You can specify revision/branch/tag. NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' } " Required: call neobundle#end() " Required: filetype plugin indent on " If there are uninstalled bundles found on startup, " this will conveniently prompt you to install them. NeoBundleCheck "End NeoBundle Scripts-------------------------
が表示されます。
"NeoBundle Scripts-----------------------------
の次の行から
"End NeoBundle Scripts-------------------------
の上の行まで、ファイル .vimrc としてホームディレクトリに保存します。
次に、下記のようにターミナルで vim を実行するとパッケージをインストールするか聞いてくるので y を選択してください。
~ $ vim Not installed bundles: ['vimshell', 'ctrlp.vim', 'vim-colorschemes', 'vim-fugitive', 'neosnippet.vim', 'neosnippet-snippets'] Install bundles now? (y)es, [N]o: y
Shougo/unite.vim · GitHub https://github.com/Shougo/unite.vim vimfiler.vim をインストールするのに unite.vim が必要。 Shougo/vimfiler.vim · GitHub https://github.com/Shougo/vimfiler.vim fatih/vim-go · GitHub https://github.com/fatih/vim-go
をインストールします。
~/.vimrc ファイルの
" My Bundles here: NeoBundle 'Shougo/neosnippet.vim' NeoBundle 'Shougo/neosnippet-snippets' NeoBundle 'tpope/vim-fugitive' NeoBundle 'kien/ctrlp.vim' NeoBundle 'flazz/vim-colorschemes'
の次に
NeoBundle 'Shougo/unite.vim’ NeoBundle 'Shougo/vimfiler.vim’ NeoBundle 'fatih/vim-go'
github.com の ’名前/パッケージ名’ を追加し、Vim を起動すると
~ $ vim Not installed bundles: ['unite.vim', 'vimfiler', 'vim-go'] Install bundles now? (y)es, [N]o: y
と聞いてくるので y を選択してください。これで終了です。Finder 上で MacVim をダブルクリックし、:VimFiler (:Vim と入力した後、Tab キーを押してください。補完されます。) と入力して Return キーを押します。ファイラーが起動します。カーソルキーと Return キーで移動し、編集したい Go ソースファイル名で e キーを押してください。シンタクスカラーリングされているはずです。:q で終了です。
Kate の場合、
Kate は、KDE が必要なので、Paralells Desktop 10 上に
Main Page - Linux Mint http://www.linuxmint.com/
から
Download - Linux Mint http://www.linuxmint.com/download.php KDE 32-bit 64-bit An edition featuring the KDE desktop Yes
の KDE 64-bit 版をダウンロードしインストールしました。
Mac の
$GOROOT/misc/kate/go.xml
ファイル go.xml を Mint 側のデスクトップにコピーし、
Linux Mint 側の
~/.kde/share/apps/kate
フォルダに syntax フォルダ作成し、デスクトップの go.xml ファイルを ~/.kde/share/apps/kate/syntax にコピーします。
~/.kde/share/apps/kate $ mkdir syntax ~/.kde/share/apps/kate $ cp ~/Desktop/go.xml syntax/
これで、Kate で Go ソースファイルを開くと Go のシンタックスがハイライトされます。