peco で S3 のバケット・ファイル一覧を見るやつを作ったらめちゃくちゃ便利なのができた

May 12, 2017

釣りっぽいタイトルにしてしまったけどまぁ主観なので…

Continue Reading →

MongoMapper で Mass Assignment を自動検出する

Apr 13, 2017

GitHub が Mass Assignment 脆弱性を突かれてからもう 5 年も経っているんですね。

ActiveRecord (というか ActiveModel) では適切に .permit したパラメータ以外は ActiveModel::ForbiddenAttributesError が発生するようになっていますが、MongoMapper ではそうなってなかったので対応させてみました。

Continue Reading →

Heroku で Resque を Graceful Shutdown する

Apr 10, 2017

Heroku で Resque を動かす場合、何も考えないでセットアップすると、デプロイによるプロセスの再起動時や、Dyno のスケールダウン時に Worker プロセスが強制終了され、Resque::DirtyExit としてエラーになってしまいます。

これを避けるために正しく Graceful Shutdown する方法について調べてみました。

Continue Reading →

Node.js のスタックトレースを控えめにする supress-stack-trace 書いた

Mar 29, 2017

最近仕事で React/Redux で構築されたアプリを触っていて、mocha でテストがコケたときのスタックトレースがうるさい感じだったので node_modules 内のエラーを除外するためのものを作ってみた。

Continue Reading →

Ruby で週をオブジェクトとして扱うライブラリ ActiveWeek を作った

Jan 9, 2017

仕事で必要があって作ったものから仕事固有の事情とかを取り除いた形で作り直してみた。

Continue Reading →

引越・同棲 1 年目の 2016 年に買って良かったもの

Dec 31, 2016

去年 1 番のイベントは転職でしたが、今年は引越・同棲というのが一大イベントでした。

丸 7 年住んだ埼玉から浅草に引越したことで京橋の職場への出勤時間が半分の 30 分に縮まったのも良かったですが、生活環境が変わったのを機に家具も色々と買い、QoL も大幅に向上したので、それを振り返ってみるという体でアフィブログを書きます。

Continue Reading →

instance_eval で特異メソッドを定義する

Dec 25, 2016

最近 Flagship という機能フラグを Ruby の言語内 DSL で定義する gem を作っていて、その中で出てきた DSL 定義パターンっぽいものをメモ。

Continue Reading →

BigQuery の標準 SQL モードで日付テーブルのフィルタリング、または Re:dash の Query Snippets を活用する話

Dec 4, 2016

要は Legacy SQL モード で FROM (TABLE_DATE_RANGE(dataset.table_, TIMESTAMP('2016-01-01'), TIMESTAMP('2016-01-14'))) とか書いていたのを標準 SQL でどう書くか、という話です。
すぐ忘れるのでメモ。

Continue Reading →

GitHub の Issue を作るコマンド ghissue を作った

Nov 27, 2016

作りました。

Continue Reading →

Ruby で Dir.glob して require するときは sort してからにする

Oct 23, 2016

以下のように特定のディレクトリ配下のファイルを雑に require することがあるとする。 Dir.glob('./lib/**/*.rb').each {|f| require f } これだと読み込み順が一定でないので、場合によっては A というクラスが依存している B というクラスを読み込む前に参照しようとして NameError にったりする。 # a.rb class A < B end # b.rb class B end もちろん、これは a.rb の先頭で require 'b.rb' すればいい話ではある。 だが問題は、テスト中はたまたま問題なくいっていたものが本番で急にエラーになったりすることである。 そのため事前に sort しておくと良い。 Dir.glob('./lib/**/*.rb').each.sort {|f| require f } これならファイルの読み込み順序は一定になる、はず。 (OS やファイルシステムによって違う可能性もあり得る?)

Author