ただのにっき
2014-11-14(金) [長年日記]
■ Rubyのバージョンアップで自作のgemが壊れたと思ったらAmazonのせいだった
昨日のRubyWorld Conferenceのあとでruby 2.1.5がリリースされたと聞いたので、朝起きてさっそくアップデートしようかと思った矢先、kindlegen gemのissueに立て続けにコメントが。おーのー、なんか非互換踏んだか?*1
まさに2.1.5のリリースと同じタイミングだから、まちがいなくrubyの非互換だろうと思って見始めたけどよくわからん。そうこうするうち@hsbt(Ruby Prize 2014受賞おめでとう!)から以前のrubyでも発生するからrubygemsのせいじゃないの、とか言われる。んなばかな、先月2.1.4でちゃんとテストが通ることを確認したばかりだよ。
とはいえたしかに指摘のとおりなのでrubyとrubugemsのバージョンを変えながら動かしてみたら、なんとどの組み合わせでも発生する。わけがわからなくなっていたら、こんどは@miyagawaに「元のzipの構成が変わってる」という指摘を受けて、調べてみたら本当にそうだったので脱力。
つまり、Amazonが配布しているkindlegenコマンドのtarball / zipファイルが、従来は中にアーカイブと同名のサブディレクトリが掘ってあったのに、いま配布されているのはそれがない。同じアーカイブ名なのに最近のは構造が違っているという。中のファイルのタイムスタンプから類推するに、1週間くらい前かなぁ。rubyのリリースとタイミングが合っただけで、発覚するのは時間の問題だったと。しかしAmazonさん、これはちょっとマジでひどくないか?
今回の教訓があるとすれば、先入観は捨ててエラーメッセージをちゃんと読めだな(←ようするにどうみても自分が悪いのである)。
しっかしこのkindlegen gem、もちろん自分で使う範囲で実用的には作ったもののだいぶ適当なのもたしかだから、海外では電子書籍販売サイトでガチでビジネスに使ってる人がいてビビる。今回issueで報告してきたのもみんな外国の人だしなぁ。怖い怖い。
*1 Ruby言語的にはおかしなことはしてないけど、拡張ライブラリを作る仕組みを使って変なことをしている自覚はある。
■ リラッサの北海道フェア
ここ数年、仕事関係でつながりのあった人たちで東京ドームホテルのレストラン「リラッサ」で行われる北海道フェアに集まって飲み食いする恒例行事があって、今年も行ってきた。だいたい毎年行ってるんだけど、たしか去年は行けなかったんだよな、なんでだっけ? 道後温泉かな?
北海道素材を使ったホテルクオリティの料理を食べ放題ということで、最近はみんな飲まずに食べることに集中するようになってきたのがおかしい。酒を飲むのは負けを意味するのである。自分はいわゆる飲み会だと割り勘負けしてばかりなので、こういう食べてばっかりの会はいいよねーと下戸の人と話したりしていた。
今年はメロンと鹿肉が旨かった。