rubocopを0.47系から0.48系に上げたときのメモ

やったことある人はわかると思うが、rubocopを0.47系から0.48系に上げると、新しいcopがいっぱい入っていて、めちゃめちゃ怒られる。ついつい「全部 Enabled: false にしてしまえ!」と思いたくなるが、コードの品質を守ってくれる味方だと思ってしっかり対応していきたい。

以下、今担当しているプロダクトでrubocop0.48系に上げたときに苦労したり判断したりしたやつリスト。

続きを読む

ライセンスについて考えよう

たまたま今日、会社のエンジニアじゃないメンバーが、Google App Scriptを使ってSlackを便利にする仕組みを作ったのでブログに書こうぜーみたいな話をしていた(普通に便利だと思うので、記事が公開されるのを楽しみにしていて欲しい)。で、Githubにコードを置いて、エンジニアでコードレビューをしてたので、「ライセンスちゃんと置こう」というアドバイスをしておいた。

僕達ソフトウェアエンジニアは、今や当たり前のようにたくさんの他者の書いたソフトウェアを組み合わせてシステムを組み上げていくわけで、ライセンスについて正しく理解し適正なソフトウェア利用をする必要がある、というのは今更言うまでもなく当然だが、自分が書いたコードを公開するときも大切。

何故かと言うと、ライセンスには免責事項があるから。自分を守るためにも必要なわけだ。

というわけで、ソフトウェアライセンスについて正しい知識を身につけよう。

続きを読む

Turbolinks + HTTP Redirectの注意

「公式ドキュメントにちゃんと書いてある + 考えてみれば当たり前」なのだが、今日数分消費してしまったのでメモ。

TL; DR

  • Turbolinks-Location HTTPヘッダを出力しよう
    • turbolinks gemを使ってる場合は勝手にやってくれるよ
  • これがないと、RedirectしたときにブラウザのURL欄がリダイレクト先に変わってくれないよ
続きを読む

ActiveSupport::MessageEncryptorを慎重に使う

経緯

Rubyを2.3系から2.4.1に上げたら、ActiveSupport::MessageEncryptorを使っているところが壊れた。ちなみにRailsは5.0.1。

key must be 32 bytes
/Users/nisshiee/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/message_encryptor.rb:79:in `key='
/Users/nisshiee/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/message_encryptor.rb:79:in `_encrypt'
/Users/nisshiee/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/message_encryptor.rb:60:in `encrypt_and_sign'
...
続きを読む