inohilog

/var/log/inohiro

アウトプットしなくては

今年はアウトプットします、っていう記事が1月に書かれたまま、その後何も書かれてなくて恥ずかしい... もう8月も後半に差し掛かっていますが、今年前半でやったアウトプットは下記くらいか...

  • RubyKaigi 2019 LT
  • 会社のブログに投稿

とりあえずここにどんどん書くぞ。「まずは数をこなして、アウトプットの心理的なハードルを下げよう」と1月にも書いている...

2019年

新年明けてましたおめでとうございます。今年もよろしくお願いします。

今年はアウトプットをもっと意識してやりたいと思います。最近全然アウトプットできてない。社内ブログでさえも、なかなか書けなくて(あーでもない、こーでもないとなってしまって、結局まとまらない)、結構まずい認識。

まずは数をこなして、アウトプットの心理的なハードルを下げよう。最近見かけた記事だと「読者を自分と思って書くのがよい」と書いてあって、なるほどなと納得した。特に技術的な記事を書こうとすると、いろんなところからツッコミが入りそうで(実際入るんだけど)、手が止まってしまうんだよな。これまでブログに書いてきたように、ちょっとしたメモのように、あとで自分が役立てば良いや、っていう感じで書いていこう。

entr と rspec を組み合わせて使う

Rails アプリケーションのテストを書いているときに、「テストコードに変更があったら rspec コマンドを実行する」ができるような環境を作っている。

これまでは guard および guard-rspec を使っていたので、spec ディレクトリ以下のファイルに変更があったら rspec を実行してというようなちょっと複雑なルールを Guardfile に書いて置く必要があった。また、guard-rspec は native extension なので bundle install などを実行するとビルドが走る。そのためには libevent を用意しておく必要もある。

最近知った entr を使うと、アプリケーションのルートディレクトリで以下を実行しておけば同じことが実現できる:

$ find spec/**/*.rb | entr bundle exec rspec /_

/_ には変更のあった最初のファイルのパスが入る。もちろん最初にインストールする必要があるが、アプリケーションに設定ファイルを置いたりする必要が無くて良い。Mac OS X の場合は Homebrew を使うだけで簡単にインストールできる。

思えば大学生・大学院生の時は tex ファイルのあるディレクトリを監視対象にして、変更があったら latex コマンドで実行させて PDF を更新させるというのもやっていたな。