@kyanny's blog

My thoughts, my life. Views/opinions are my own.

実践 Vagrant

最近仕事で「仮想マシンにデータベース製品をインストールしてスキーマを流す」みたいなことをやっていて、まずはお手軽に Vagrant を使ってやり始めたのと、その話の流れで Packer の話題が出たのでとりえあず日本語で触れている文献を読もうということで「実践 Vagrant」を買った。ちなみに Packer の件は勘違いで、結局使う機会は無かった(vagrant package で事足りた)

良いところ

  • Vagrant の基本が丁寧に説明されていて、とてもよく理解できた。単なるコマンドの羅列ではなくて、ちゃんと順を追っていてその順番に意味があり、読み進めるにつれて理解が深まるようになっている。 Vagrant はオフィシャルドキュメントもしっかり書かれているけど、やっぱり英語より日本語で読むほうがはやくて楽だし、リファレンスマニュアルは頭から全部読むようなものではないよな、というのもある。
  • Vagrant の理念みたいなものも、改めてちゃんと説明された上で使ってみると「なるほど、これは確かに革命的に便利だ」と実感できた。
  • 仮想ネットワークについて、おそらく非常に簡単な説明にすぎないのだろうが、ネットワーク関連にほぼ無知な身にはとても勉強になった。
  • プラグインの実装方法というかなり突っ込んだ話題まで日本語で読めるというのは嬉しい。こういうのはだいたい英語のドキュメントを読むか、それも不十分でソースコードを読むしかないことが多く、最終的にソース読むことになるのはしょうがないけど、いきなり最初のステップからそれだと厳しいよな、と思うことが多かったので。

悪いところ

  • 誤字脱字の類が多い。特に前半。物書き商売してるのに自分の書いた文章(商品)を読み直しもしないのか?と呆れる。
  • 別々の Provisioner の説明で、製品名以外まったく同じ文章が出てきたりする。これは原著もそうなのかもしれないが、ちょっと言い回しを変えるとか、工夫して欲しかった。
  • Google BigQuery をパラパラ眺めたときにも感じたのだけど、個人的にこの翻訳者の文章があまり合わないようで、読みづらかった。

実践 Vagrant

実践 Vagrant

Parslet

SQL をパースしたくなって Scheman というものを見つけたが、諸事情によりそのまま利用できなかったので、 Scheman が構文解析に使っている Parslet というライブラリを使ってパーサを書いてみた(未完)

Parslet SQL parser practice

パーサというものは難しくて自分には書けないものだという思い込みがあったけど、 Parslet は使い方が簡単で覚えやすく、一度コツというか「こういう風に書いていくんだ」という感触がつかめるとあとはひたすらマッチするパターンを部品として実装してつなげていくだけで、単純作業なところはあるけど書いてて楽しい。

watchr ではなく observr

Parslet - @kyanny's blog のプログラムを書いていて、プログラムを編集するたびに手で実行するのは面倒くさいな、と思って自動化するツールを使った。

Ruby だとそういうので guard があるが、なんか guard は使い方が難しくて、いつもうまく使えない(設定とかインストールすべきものとかが多くて面倒くさい) watchr というのもあったよなと思い出して使ってみたがエラーになってしまい、検索すると observr という後継プロジェクトがあってそっちはうまく動いた。

watch('.*\.rb') { |f| system("ruby #{f[0]}")}

これを例えば Watchfile という名前で作って observr Watchfile で起動して、あとはプログラムを編集するたびにエディタのオートセーブが走るので自動実行される。ターミナルとエディタを並べて実行結果を眺めながらどんどん編集していける。便利。

kevinburke/observr · GitHub