www.r-l.o が fastly を通して配信されるようになったことで、デプロイ直後にトップページなどを更新したい場合にはキャッシュをパージする必要があるのだけど、heroku の場合は buildpack でやるのが良かろうということで以下のように小細工を入れておいた。
https://github.com/ruby/heroku-buildpack-www-ruby-lang/blob/master/lib/language_pack/ruby.rb#L815
やってることは、buildpack での slug compile の最後に fastly の REST API を叩いて purge_all するというもの。注意点としては buildpack で API token などを環境変数から取ってくるときは buildpack のコンテキストとは別にユーザーの環境変数として取ってくる必要があるので ENV
ではなく env
というヘルパーメソッドを使う、ということくらい。purge_all はどうなん?というのはあるけど、heroku の outgoing 通信は別に転送量はかからないので毎回パージしてもいいかな、っていう雑なやつ。
最初は notification 用の http deploy hook でやろうかと思っていたのだけど、ヘッダをいじれなかったり、1つしか登録できないということがあったので、buildpack をいじって対処した。この方法でだいたいは良いのだけど、pipeline を作っている場合は production deploy の際に slug のビルドが走らないので、結局手動でパージしないとダメというのが若干だるい。この辺もっとスマートにやる方法があったら教えて下さい。
ひとでくんが Fitbit ChargeHR で面白いことをやっているのを読んで、良いなと思ったので買ってみた。
ChargeHR はちゃんと時計のようなバンドになっていて、外れて落とすことがなくなっているので、前に買ったモデルよりは改善されているぽい。心拍数だけではなく、睡眠時間も自動で計測してくれたり、腕を振り上げるような動きをすると時計を表示してくれるなど、中々便利。
時計しなくなって、モバイル見ればいいやと慣れてしまった状態で腕を振り上げれば時間がわかるというのは以外と便利で驚いている。これはひどい。
今年の鼎泰豊納めということで銀座にいってぶらぶらと散歩してから、夕食を食べてきた。小籠包は相変わらず美味しいけど、チャーハンが自宅では再現できないくらいにこれもまた美味しい。オススメ。