初めてのGo Lang インストールと動作確認
Goでちょっとしたサーバーサイドのプログラムを書こうと思っています。Goを選んだ理由は、やったこと無い言語が良かったからです。 Ruby や Swift と悩みましたが、せっかくなので今までやってきたことと一番遠いものを選びました。
ダウンロードとインストール
- ダウンロードページからMac用のバイナリをダウンロード
- ぽちぽち進めてインストール
- パスの設定
.bash_profile
にexport PATH=$PATH:/usr/local/go/bin
を追加 - 確認 whichでgoのパスが表示されていればOK
$ which go /usr/local/go/bin/go
GOPATHの設定とHello World
ワークスペースとして使用するディレクトリをGOPATHと呼ぶ
.bash_profile
に export GOPATH=$HOME/go_work
を追加.
go_work
ディレクトリは自分で作成する
確認
# 必要なディレクトリ作成 mkdir -p $GOPATH/src/github.com/user/hello cd $GOPATH # プログラム作成 echo 'package main import "fmt" func main() { fmt.Printf("hello, world\n") }' > $GOPATH/src/github.com/user/hello/hello.go # コンパイル go install github.com/user/hello
binディレクトリが生成されていて以下のコマンドが動作すればOK
$GOPATH/bin/hello # hello worldと表示される
参考
wordpress テーマの翻訳・日本語化
wordpressでメディアを作っていると、自分でゼロからデザインするのは大変だから、既存のテーマのお世話になることが多いと思います。 しかし、既存のテーマでも自分の思い通りのものは少ないので、参考にしながらカスタマイズしていく必要があります。
今回はテーマの日本語化をしてみました。
辞書ファイルの場所(potファイル)
辞書ファイルの場所はwp-content/themes/<テーマ名>/languages/<テーマ名>.pot
にあります。
日本語化の方法
一見するとこのpotファイルを以下のように編集すると、翻訳されるのではと思い試してみましたが、上手く行きませんでした。
# @ _s msgid "Continue Reading" msgstr "日本語にする"
確かにこの方法でうまくいくと結局1言語にしか対応できなくなってしまいます。
日本語化する方法は幾つかあるようですが、今回はPoeditという専用のツールを使用しました。
- ツールをダウンロードし、起動
- 新規カタログ
- <テーマ名>.podを選択
- 翻訳したい言語を選択。今回は日本語
- msgid毎に対応した日本語を入力。(サジェストのようなものもあります)
- 保存
保存すると ja.po と ja.moというファイルが出来ます。ja.poはpotファイルと同じ形式です。 ja.moはja.poがコンパイルされたようなファイルで、おそらく実際プログラムからはこちらが参照されるとおもます。 両ファイルをlanguagesディレクトリ以下に保存して、ページをリロードすると、日本語化されています。
Localization | Theme Developer Handbook | WordPress Developer Resources
雑感
全て自分でプログラムを組むのではなく、使い古されたソフトの設計や便利さを上手く学んで行きたいですね。
ansible playbookの使い方 超基本
playbookというキーワードをしょっちゅう忘れてしまいます。
ansible-playbook
というコマンドを使って、環境構築を行います。
実際のコマンドは以下のようになります。
$ ansible-playbook db.yml -i hosts
db.yml
chefでいうレシピのようなもので、作成したい環境を記述します。 こんな感じに。
- hosts: db-server become: yes tasks: - name: be sure mariadb-server is installed yum: name=mariadb-server state=installed - name: be sure mariadb is running and enabled service: name=mariadb state=running enabled=yes - name: be sure mariadb is installed yum: name=mariadb state=installed - name: SELinuxのDisable設定 selinux: state=disabled - name: Firewalldの停止 firewalld: state=disabled permanent=true - name: fuga service: name=firewalld state=stop enabled=yes
hosts
hostsは接続するサーバーの情報を記述したファイルです。 こんな感じ。
[db-server] db1 ansible_port=2222 ansible_host=127.0.0.1 ansible_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key
No space targeted, use 'cf target -s SPACE'
bluemix で pushしようとしたところ、以下のエラーが出力されpushできなくなった。
No space targeted, use 'cf target -s SPACE'
-s dev
とdevスペースを指定しており、bluemix consoleからは確かに存在している。
ぐぐってみたところ、regionの指定が正しくない場合に発生することがわかった。
regionを明示的に正しく指定してログインし直すことで解決した。
cf login -a https://api.ng.bluemix.net -u <ユーザー名> -o <組織名> -s <スペース名>
人の顔と名前を覚える方法
ずっと人の顔と名前を覚えるのが苦手だと思っていました。 実際なかなか覚えることが出来ないままでした。
しかし最近転職したのを気に、顔と名前を覚えたいと思うようになりました。
やったことは2つです。 - ある人を見て名前を知っていたら、○○さんだと心のなかで思うようにすること - 名前を口に出して呼んで会話すること
このふたつを実行するだけで、簡単に顔と名前を一致させることができるようになりました。
vagrantホストからゲストへansibleで接続する
vagrantゲストを2台作成して、1台からもう1台へansibleコマンドで操作するサンプルは結構あったのだが、ゲスト1台のみを構築する手順が見当たらなかったのでメモしておきます。
ssh接続情報の確認
vagrantゲストへssh接続するにはvagrantユーザーを使用すると、ゲストへ直接接続するのではなく、一度localhostを経由してポートフォワーディングしてゲストに接続するようです。
sshの接続の確認方法はvagrant ssh-config
で確認できます。
$ vagrant ssh-config Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile "PATH_TO_DIRECTORY/.vagrant/machines/default/virtualbox/private_key" IdentitiesOnly yes LogLevel FATAL
この例だと、ホストの2222ポートを使用してゲストにssh接続しています。
ansible hostsファイルの編集
ansibleで操作するサーバーの情報をhostsファイルに設定しておく必要があります。 これにはssh接続に関する情報も設定できるので、ssh-configで調べた情報を元に以下のように設定しておきます。
[db-server] db1 ansible_port=2222 ansible_host=127.0.0.1 ansible_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key
ansibleコマンドの実行
以下のようにpingを実行し、正常に実行されればansibleでゲストを操作できることになります。
$ ansible db-server -i hosts -m ping db1 | SUCCESS => { "changed": false, "ping": "pong" }