GO言語の自動補完機能(vim使用)

GO言語がインストール済みの状態で環境設定を行う。
下記の設定を$HOME/.bashrcに記述する。
export GOROOT=$HOME/go-lang
export GOOS=linux
export GOARCH=386
export GOBIN=$HOME/go-lang/bin
export PATH=$PATH:$GOBIN
GO言語のreadme.txtを参照しながら、VIM設定を行う。
公式スクリプト$GOROOT/misc/vimをインストールする

  mkdir -p $HOME/.vim/ftdetect
  mkdir -p $HOME/.vim/syntax
  mkdir -p $HOME/.vim/autoload/go
  ln -s $GOROOT/misc/vim/ftdetect/gofiletype.vim $HOME/.vim/ftdetect/
  ln -s $GOROOT/misc/vim/syntax/go.vim $HOME/.vim/syntax
  ln -s $GOROOT/misc/vim/autoload/go/complete.vim $HOME/.vim/autoload/go
  echo "syntax on" >> $HOME/.vimrc

 mkdir -p $HOME/.vim/ftplugin/go/
 cp $GOROOT/misc/vim/ftplugin/go/* $HOME/.vim/ftplugin/go/
  echo "filetype plugin on" >> $HOME/.vimrc

 mkdir -p $HOME/.vim/indent
 cp $GOROOT/misc/vim/indent/go.vim $HOME/.vim/indent/
  echo "filetype indent on" >> $HOME/.vimrc
自動補完エンジンのgocodeをダウンロードする(-u はアップデート)
go get -u github.com/nsf/gocode 
gocodeを設定する。
cd $GOROOT/src/pkg/github.com/nsf/gocode/vim/
./update.bash
設定完了。
VIMを起動し、INSERTモードでCtrl+x Ctrl+oを押せば自動補完が表示される。

GITHUTを使うための環境設定

PUBLICキーを作成する
$ ssh-keygen -t rsa -C "yourmail@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): ~/.ssh/id_rsa_github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_github.
Your public key has been saved in id_rsa_github.pub.
The key fingerprint is:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yourmail@gmail.com
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|         . .     |
|    .   S . .    |
|  = .o     .     |
| = +E.+ . .      |
|+ +o.=.. +       |
|.+o+o.+.o        |
+-----------------+
GitHubにログイン
Account Settings -> SSH Public Keys -> Add another public key
cat id_rsa_github.pub # 中身を貼り付けて登録(パスワード再入力)
編集sshファイル、ホスト名と証明書ファイルをカスタマイズ
$ vim .ssh/config
Host github
HostName github.com
User git
Port 22
identityfile ~/.ssh/id_rsa_github
権限設定
$ chmod 600 .ssh/config
お試し接続
$ ssh github
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi User! You've successfully authenticated, but GitHub does not provide shell access.
                                                                                      Connection to github.com closed.
GITのユーザとメールを設定
$ git config --global user.name "Your Name"
$ git config --global user.email "yourmail@gmail.com"
$ git config --global color.ui true
GITHUBのWEBでリポジトリを作成後、下記の操作を行う
(名前をtest-repoと仮定する)
$ mkdir test-repo
$ cd test-repo
$ git init
$ touch README.md
$ git add README.md
$ git commit -m "first commit"
$ git remote add origin git@github:YourID/test-repo.git
$ git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 208 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github:YourID/test-repo.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.
以上で、READMEファイルがCOMMITされましたので、
環境構築完了。

さくらインターネットの新VPSとお名前.comのIO性能を比較してみた

さらくのVPS2Gプランを申請できなかったため、1Gプランを契約した。
お名前のほうは2Gプランです。
お名前.comの場合:
# dd if=/dev/zero of=/dev/vdb bs=64k count=100k
102400+0 records in
102400+0 records out
6710886400 bytes (6.7 GB) copied, 26.731 s, 251 MB/s


# dd of=/dev/null if=/dev/vdb bs=64k count=100k
102400+0 records in
102400+0 records out
6710886400 bytes (6.7 GB) copied, 44.8388 s, 150 MB/s
さくらインターネットの場合:
# dd if=/dev/zero of=/dev/mapper/vg_xxx_home bs=64k count=100k
102400+0 records in
102400+0 records out
6710886400 bytes (6.7 GB) copied, 13.3455 s, 503 MB/s

# dd of=/dev/null if=/dev/mapper/vg_xxx-lv_home bs=64k count=100k
102400+0 records in
102400+0 records out
6710886400 bytes (6.7 GB) copied, 18.5935 s, 361 MB/s
といった具合で、sequential I/Oですが、さくらのほうが読み込み、書き込み2倍近く早くですねw
ランダムIOはもっと差がつくでしょう。

WindowsにBeagleBoneシリアル接続ドライバのインストール

下記、公式サイトよりドライブをダウンロードできます。
「64bit」
http://beagleboard.org/static/beaglebone/a3/Drivers/Windows/BONE_D64.exe
「32bit」
http://beagleboard.org/static/beaglebone/a3/Drivers/Windows/BONE_DRV.exe

私はWindows7 64bitなのでBONE_D64.exeをダウンロードしました。
日本語OSでそのまま実行すると、
「現在の言語では、デバイス ドライバのインストール ウィザードはサポートされません。」
とエラーメッセージが表示されて、インストールできません。
回避策:
(1)BONE_D64.exeの拡張子をzipに変更します。
(2)解凍ソフトWinrarでBONE_D64.zipを開き解凍します。(ほかの解凍ソフトは解凍できないかもしれない。。。)
(3)解凍後dpinst.xmlファイルを編集する。
変更前:<language code="0x0409">
変更後:<language code="0x0411">
(4)対策完了、dpinst.exeを実行し、ドライバのインストールを開始します〜
これでBeagleBoneのUSBとWindowsに接続し、シリアルコンソールで操作可能になります。

BeagleBoneに静的IPを設定する

Beagleboneデフォルトeth0に対してDHCPを有効にしています。
実際では固定の静的IPを使いますので、設定方法を試しました。
まず、「/etc/network/interfaces」を開き、
iface eth0 inet dhcpを「#」でコメントアウトし、
下記の設定を実際のIPに直して追加する。
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 8.8.8.8
次にDNSを下記ファイルに追加する。(今回はGoogleが提供したDNSを使う)
「/etc/resolv.conf.ok」
nameserver 8.8.8.8
※ 「/etc/network/interfaces」にeth1に設定も入っているが、
これはARMのCPUは2個のイーサコントローラを持っているが、
BeagleBoneとしては1個しか実装していなかったからです。
でも、上記のファイルを変更し、再起動したら、
静的IPの設定になっていなく、DHCPが動作していました。
仕方なく、自分でスクリプトを作って、起動時実行するように登録しました。
# vi /etc/init.d/fixnetwork
#!/bin/sh 
/etc/init.d/networking restart 
cp /etc/resolv.ok /etc/resolv.conf
実行権限与える:
# chmod +x  /etc/init.d/fixnetwork
起動時実行するように登録:
# update-rc.d fixnetwork defaults

見た目はよろしくないが、これはとりあえず確実に問題解決できます。

ubuntuでBeagleBone付属SDカードをバックアップ

$ sudo mkdir beaglebone_backup
$ sudo cd beaglebone_backup
SDカードのデバイス名を知る
$ sudo fdisk -l

ディスク /dev/sdb: 3904 MB, 3904897024 バイト
ヘッド 255, セクタ 63, シリンダ 474, 合計 7626752 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00000000

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdb1   *          63      144584       72261    c  W95 FAT32 (LBA)
/dev/sdb2          144585     7132859     3494137+  83  Linux
念のため、SD全部パーティションをアンマウントしておく。
$ sudo umount /dev/sdb1 /dev/sdb2
イメージを圧縮保存:
$ sudo dd if=/dev/sdb bs=8M | gzip -c > beaglebone_default_img.gz
465+1 レコード入力
465+1 レコード出力
3904897024 バイト (3.9 GB) コピーされました、 286.028 秒、 13.7 MB/秒
※imgのリストア方法:
$ zcat beaglebone_default.img.gz | sudo dd of=/dev/sdb bs=8M