2018-01-01から1年間の記事一覧

他のテストがタイムトラベルに巻き込まれないよう確実に Timecop.return する(for RSpec)

テストコード内で Timecop.return し忘れると、後続のテストでも Timecop.freeze や Timecop.travel によるタイムトラベルを続行してしまうため、正常な時刻に戻らず、全く関係のないテストが落ちることがある。 例えば、以下のように Timecop.return を記述…

最初から git rebase しやすくするためのコミットの作り方

概要 GitHub 上でレビューしやすい状態にするため、いつも git rebase でコミットの整理を行うようにしているが、時々 rebase 時に conflict を起こして面倒になることがあった。最近思いついた方法で予めコミットを作っておけば git rebase がしやすくなり…

OpenCV で手本の文字と自分が書いた文字をマッチングしてみた(その1:特徴点マッチング)

OpenCV は初めて触った上、画像処理の知識がないので雑なまとめです。 はじめに 書道で使う手本は文字が小さく、手本は何十ページもあるため、後で自分が書いたものと手本を見返そうとしても探すのが大変だったりする。 左: 手本をもとに自分が書いたもの、…

Docker Compose で MySQL コンテナを立てるときに MYSQL_ROOT_PASSWORD 環境変数の指定でハマった

結論 Docker Compose のサービスの環境変数は Hash 形式で設定するのがおすすめ environment: MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' MYSQL_ROOT_PASSWORD: '' # **空文字列** がパスワードとして設定される docker-compose down db だけだと、db コンテナに紐…

Sidekiq を使うとき、ActiveRecord のコネクションプール数 >= Sidekiq のスレッド数 + 1 にするのが良さそう

以下の記事に書かれていたことそのままだが備忘としてまとめた。 repl.info ActiveRecord のコネクションプールは、各 Sidekiq ワーカスレッドと そのスレッドが動作するプロセス(Sidekiq プロセス) に一つずつ割り当てられる Sidekiq の並列数(ワーカス…