2015-12-26(土) [長年日記]
■ Ruby 2.3.0へ
例年どおり25日にrubyがリリースされたので「帰ったらさっそくアップデートだ」と思っていたが、昨日は仕事納めで*1、軽く飲んで帰ったらまったくそんな感じにはならず、翌日の今日からずるずると開始……。
とはいえ手元の環境はrbenv + ansibleのおかげでさくっと終わり、トラブルもなかったんだけど、面倒なのはHeroku上のサービス群なんだよなぁ。HerokuではGemfileにrubyのバージョンを指定するんだけど、それってつまりGemfileを書き換えてcommit→pushしてまわらないといけないわけで、前回の2.2.4のときにもやったけど少々(すごく)かったるい。
で、Herokuのドキュメントには
ruby ENV['CUSTOM_RUBY_VERSION'] || '2.0.0'
とあって「なるほどー!」と思ったのですでに仕込んであったのだ。今回はconfig:setで「2.2.4」を「2.3.0」書き換えるだけだぜー → エラー。うん「Changing environment variables does not recompile your app. For a Ruby version change to take effect through this method, you’ll need to deploy the app again since Ruby is vendored into each slug.」って書いてあるし。とほほ。
けっきょくpushしないとあかんのだったら意味ないよなぁ。masterブランチを汚したくないからとりあえずこんなスクリプトを走らせたが:
#!/bin/sh if [ $# -ne 1 ]; then app=`basename $PWD` else app=$1 fi heroku config:set CUSTOM_RUBY_VERSION=2.3.0 -a ${app} git checkout -b heroku_recompile git commit --allow-empty -m 'empty commit' git push -f git@heroku.com:${app}.git heroku_recompile:master git checkout master git branch -D heroku_recompile
これはダウンタイムが発生するから良くないのよなー。普通にGemfile書き換えるのがスジか。同じリポジトリから複数のアプリに同時デプロイするtDiary.Netみたいな場合はとくに。
*1 本当は28日まで出社日なんだけど職場の満場一致で25日までになった。
2015-12-23(水) [長年日記]
■ ごちそうの日
えーと、いつもの。丸鶏を切り分けるのも慣れてきたね、マニュアル読まなくてもできるようになったし。今年は皮がいっそうパリパリで美味しかった。肉汁もあまり逃げなかった感じでジューシーだった。明日はたぶん骨でとった出汁でラーメン。
ケーキもいつものアンリ・シャルパンティエで、12cm。いちごがうまい。甘さがそうとう抑えてあるのでクリームの風味がよくわかるねぇ、と気づいた。
2015-12-22(火) [長年日記]
■ EPUB書籍に正誤表を反映する
ご多分にもれず、akrさんの「APIデザインケーススタディ ――Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方」、EPUB版を発売日に購入したわけだけど(読んだとは言ってない)、さっそく正誤表が出ているので、読む前に反映できる部分は反映しておこう。
EPUB書籍の場合、編集は非常に簡単で:
- 拡張子.EPUBを.ZIPに変更
- ZIPファイルの中から該当するHTML(XHTML)ファイルを抜き出す
- HTMLファイルを編集してZIPファイルに戻す
- 拡張子.ZIPを.EPUBに戻す
以上。手持ちのビューアで読みづらいスタイル指定がされてる場合なんかも、同じ方法で.CSSファイルを編集することが可能だ。
akr本の場合、正誤表はページ数指定なので、HTMLファイルを特定するのにPDF版を参照してページ数から章番号を突き止めるしかないのがやや面倒だけど(とはいえファイル名が指定してある正誤表なんてみたことないが)、数が多くなければたいして面倒ではない。というか面倒なら版元のアップデートを待てばいい。gihyoがアップデートを配信してくれるか知らんけど。
ともあれ、こんなことができるのも、ちゃんと正誤表を公表してくれる著者と、DRMをかけない素のEPUBファイルを配信してくれる出版社があればこそ。感謝したい。
↓gihyo.jp用のプラグインがないのでAmazonへのリンクになってるけど、言うまでもなく↑のリンクから電子版を買うべきである。
APIデザインケーススタディ ~Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方 (WEB+DB PRESS plus)
技術評論社
¥3,058