Dockerを触ってみる

最近は、Immutable Infrastructureという文脈だとDockerがかなり注目を集めているので、例に漏れず触ってみる事にした。

そもそもDockerって何?

Dockerは、「コンテナ技術による仮想化ソフトウェア」である。中身の動きを知らないと正直ピンと来ないんだけど、ざっくり言うと「プロセスからのリソースへのアクセスを制御する事で、独立したコンテナ環境を作るソフトウェア」みたいな感じ。 これもあまり上手く説明出来ている気がしないけど、以下のページなどを読むとイメージがつかめるかも。

続きを読む

Vagrant+Chef Soloでのサーバー環境構築自動化を試してみる(参考: パーフェクトRuby on Rails 第8章「Railsのインフラと運用」)

ちょっと前から「パーフェクトRuby on Rails」という本をちょこちょこ読んでいる。 Railsについては、「RailsによるアジャイルWebアプリケーション開発」を一通り読んだり自分でも簡単なWebアプリ作ったりしてたのでざっくりとは理解してるつもりだったんだけど、ポロポロ知らなかった内容も取り上げられてたので楽しく読めている。

続きを読む

複数ファイルを一気にgrepしたり文字列置換したりする方法

コード書いてると、複数ファイルを一気にgrepしたり、特定の単語を一気に置換したりしたい事がある。例えば、リファクタリングの際にクラス名とかメソッド名がそもそも良く無いなーと思って一気にrenameしたくなるとか。そんな時、方法としてはunixのコマンドを使う方法とeditor(例えばvimとか)の機能を使う方法の大きく分けて2つが存在する。

続きを読む

Activerecordにおけるincludesとjoinsの振る舞いについて

Activerecordを使ってるとき、関連(Association)のあるmodel同士をまとめて取得したい時がけっこうある。そんな時、includesjoinsを使えば効率良くデータを取得出来るんだけど、実はこの二つは振る舞いや特徴が全然違ってたりする。ややこしい気がしたので、ここでちょっとまとめておく。

先に結論を書いておくと、基本的には

  • includesは先読みしてキャッシュしておく。
  • joinsはただINNER JOINしてくれる。

と思っておけばOK。

ちなみに、railsのversionは4.1.0。Web上に落ちてる情報は古いせいか若干現状の挙動とは違ってたりしたので、気をつけた方が良さそう。

続きを読む

Macに導入して便利になったツールまとめ

どうもこんばんは、south37です。

今回は、自分がMacに導入して便利になったツールとか、terminalで使うプラグインとかの話をしたいと思います。 粒度がバラバラで若干まとまりの無い内容になってますがお許しください!!

続きを読む