TKC Works

ギジュツ的なメモ、読書感想文など

Dockerで作るシンプルなRails開発環境

ずっとローカル開発環境はVagrantを使っていましたが、Docker for Macがリリースされてからは徐々にDockerにしています。

コードはIDE等を使って書いたほうがいいと思っているのでVagrantのsynced_foldersを好んで使っていました。

Dockerの入門記事ではよくVagrantでVirturalBox上のUbuntuにDockerを入れて…とかやっているのが多くてなんか冗長というか、違和感がありました。

Docker for Macでは直接Dockerが使えるのでコンテナを--volumeオプションで起動するとsynced_foldersのようなことは出来るし、ホストとコンテナの間に余計なものがないのでだいぶスッキリしました。

設定ファイルは以下のようになりました。ほとんど公式のクイックスタートのままですが。 Quickstart: Compose and Rails

環境は以下の通りです。

  • Mac OS X 10.11.6
  • Docker 1.12
  • docker-compose 1.8.0

Dockerで作るシンプルなRails開発環境

Dockerfileとdocker-compose.ymlをRailsプロジェクトディレクトリ直下に置いて、 config/database.ymlのhost:mysqlに書き換えて、以下のコマンドでOK。 docker-composeで立ち上げるとdepends_onとかlinksで指定した名前で接続できるので便利。

docker-compose build
docker-compose up

Gemfileを書き換えた時はbuildからやり直しでちょっと時間がかかるけど、それ以外は不満はない。 あとコンテナサイズが大きくなりそうなんでDBのデータも外出ししておいた。

SOFT SKILLSを読んだ

エンジニア界隈で少し話題になっている(?)SOFT SKILLSを読んだ。

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

自己啓発本はそれなりに読んできたので目新しいことは少なかったけど、 この本はエンジニアにとって実践すべきことが書いてあった。 仕事の探し方から集中、エクササイズ、投資、メンタルまで、まさに人生マニュアルだった。

自分が特に参考になったことはブログを書くこと

昔からエンジニアはブログ書けっていうのはよく言われていることで、最近では以下の記事記事がホッテントリしていた。 developer.hatenastaff.com

そしてこのブログのようによっしゃと書き始めるも挫折して放置する人が多いのではないか。 しかし、本に書いてあったように新しい仕事を得ようとした時に職務経歴書と面接だけではなく、ブログや勉強会やOSS活動の積み重ねがある人のほうが有利だろう。 アウトプットは大事である。また少しでもブログを書こうと思う。

人に教えることで自分の頭が整理されて自分の理解が深まるという話もよかった。 stackoverflowなどで人に聞くばかりでなく答えることもやっていけたらと思う。

ちなみに、不動産投資の部分は今の日本では無理だと思うので参考にならないかな。

本当は英語の勉強も兼ねて原著を買ったんだけど、なかなか読み進められなかったので先に日本語を読んだ。 本は1回読んだだけではすぐ忘れるので復習しながら引き続き1日1章くらい読んでいきたい。

Soft Skills: The Software Developer's Life Manual

Soft Skills: The Software Developer's Life Manual

フィリピン語学留学の感想

たった2週間だったけど英語を勉強するためフィリピンに留学してきたので感想を書きます。

学校選び

俺セブなんかを参考にコスパで選んだ。

日本人経営か韓国人経営かで食事とかサポートがかなり違うようなのでそこだけ注意。

僕が選んだのはQQEnglish

QQEはオンラインもやっているので留学前後で同じ教科書で勉強できるのはいいと思った。

フィリピンでの生活

基本は寮と学校の往復。たまにショッピングモールとか行ってみたぐらいでビーチに行く余裕はなかった。

若くて元気な人は週末に遊びに行ったりできると思うけど。。

学食のご飯は思ったより大丈夫だったが毎日食べ続けるのはちょっと。。という感じ。基本油っこくてしょっぱかった。

5月中旬をフィリピンで過ごしたけど日本の7月くらい暑かった。

あとトイレとシャワーは微妙だった。

良かったこと

英語に対するアレルギーはかなり減った。日常会話くらいならなんとななるって気持ちになった。

50分×6コマのマンツーマンレッスンと50×2コマのグループレッスンがあり、宿題とか自分でやった勉強を合わせるとだいたい1日10時間位英語を勉強していた。

学生時代も含めてこんなに英語を勉強したことはない。

勉強量が全然違うので日本で働きながら1日1時間とか勉強しててもなかなか英語力は上がらないと感じた。

語学学習にはとにかく量が必要だと思った。

3年間日本の英会話スクールに通ったけど全然ダメだったので留学に来たと言っていた人もいた。

後悔

サウスピークみたいにもっと校則が厳しいところにすればよかった。

QQEは20代の若い人が多くて勉強よりも遊びに来ているような感じの人もいた。

グループレッスンとか卒業式のスピーチを聞いていると自分より長くいるのにその程度?な人もいた。

休み時間や放課後に日本人同士でつるんで日本語しゃべってると上達しない。

僕はTOEICは600点くらいしかとってことなかったので偉そうなこと言えませんが、本当に勉強してる?って人がそれなりにいたんです。

フィリピン語学留学検討中の人へ

日本で以下の参考書を何度も繰り返しやってから留学した方がいいです。

  • 1億人の英文法
  • DUO
  • 瞬間英作文

文法でも単語の意味でも授業はすべて英語で説明されるので基本が微妙なまま留学するとかなり時間をロスします。

日本でしっかりインプットして、フィリピンではアウトプットをブラッシュアップするのがいいと思います。

今後の自分の英語学習

フィリピンで感じたのはまだまだインプットが足りないということ。

あと目、耳、口同時に使って勉強するのが効果的だということ。

なのでTEDやら海外ドラマなどを見たり音読をしたりしてインプットをもっとやっていく。

そしてオンライン英会話もやる。

AnsibleでMac環境構築(2016年4月)

1年前くらいにAnsibleを使ってmacの初期設定をやったけどplaybookしか残してなかったので改めて手順をメモ。

気がつけばAnsibleでHomebrewが対応されていたり、homebrew-caskが本家に取り込まれていたりしてたので2016年4月現在のやり方でplaybookなどは修正。

今回は使ってなかったMBA(Mid 2012)をクリーンインストールしてOS 10.11.4で実施。

Homebrew

まずはHomebrewをインストール。 El Capitan出た当初はアップグレードだとディレクトリ権限の問題でいろいろ大変と聞いていたけど、 もう対応済みか公式のドキュメントは見当たらなかった。 今回はクリーンインストールしたので気にしない。

公式サイトから普通にスクリプトを実行。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

xcodeとcommand line tools のインストールとかパスワード入力を求められるので適宜やってく。

Ansible

次にAnsibleをインストール brew install ansible

入ったバージョンは2.1.1.0

inventoryファイル作成 echo 'localhost' > hosts

playbookファイルはGistからとってくる

mac provisioning by ansible

インストール先とか変更したければドキュメントを見てパラメータを与える必要あり

自分はデフォルトでよいので以下のように実行

ansible-playbook -i hosts -vv localhost.yml

Ansibleを使えばmacの設定もできるらしいが今回は見送り。

設定ファイル

Dropboxを起動してmackupでバックアップ済のファイルを同期後mackup restoreで各種設定ファイルたちを配置すれば完了。

atom

atomのパッケージは以下のようにリストを作成し、

apm list -bi > Atomfile

Dropboxで同期後以下を実行してインストール。

apm install --packages-file Atomfile

参考

Ansible Inventoryファイルでオプション設定

最近はAnsibleをちょこちょこ試してみています。
例えばVagrant仮想マシンを普通に立ち上げるとポート番号とか認証キーがデフォルト値じゃないので.ssh/configに以下のように書いたりする。

Host ansible_sample
   HostName 127.0.0.1
   User vagrant
   Port 2222
   IdentityFile /Users/hoge/ansible_sample/.vagrant/machines/default/virtualbox/private_key

するとInventoryファイルは

[web]
ansible_sample

と書くだけでよいのだが、いろんなファイル見なきゃいけないのは嫌なのでInventoryファイルだけで完結できないかなと。

Inventoryファイルの書き方を調べてみるといろいろとオプションがあった。
http://docs.ansible.com/intro_inventory.html

上のVagrantの例だとこんな感じ。

[web]
127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=/Users/hoge/ansible_sample/.vagrant/machines/default/virtualbox/private_key