トップ 最新 追記
RSS feed

ただのにっき


2012-03-06(火) [長年日記]

いろいろgem化している

先日ようやくgem作成手法をわがものにできた(たぶん)ので、身の回りのいろんな制作物をgem化している。本来はライブラリを配布する仕組みではあるが、もちろんコマンドのパッケージにも使えるわけで、そういうツールはちょこちょこ公開しているので(おもに自分用だけど)。昨日は(数人が使っていると観測されている)Wassrfeedをgem化するなど。

Rubyスクリプトの配布・インストール方法はsetup.rbを始めいろいろあったけど、そういう作業抜きで環境に依存しないように作ろうとした結果が悪名高き「#!/usr/bin/env ruby」なんてshebangだったりするわけだ。そういう課題をgemは解決していたんだなぁ。今ごろ気づくなよという話だけど。ruby 1.9時代ならぜんぶgem化するべきなんだね。

ところで悩ましいのがはてなグラフAPIなのだけど(使ってるんですよ)、これはRubyForge上にあるものがまったくメンテされていないっぽいので勝手にGitHubに載せて1.9対応をしたものなのだけど、これをさらに勝手にgem化するのは気が引ける。というのも本家もgemで配布されているからなんだが。こういう場合はどうしたらいいかしらねー*1。元の開発者がクックパッドに転職しちゃったからなー……って、当の本人がforkしてるじゃん(笑)。

Tags: gem

*1 もはや「pull reqできないリポジトリに何かを働きかけるのが面倒」という病気にかかっている。

本日のツッコミ(全1件) [ツッコミを入れる]

sora_h [あー、pull req できない小さいライブラリにパッチ送るの億劫ですよねー。その辺、GitHub すごいと思う (..]


2012-03-04(日) [長年日記]

Kindle向けニュース配信システムをHeroku上に移動した

約1年ほど前から稼動していた各種ニュース(といっても現時点では日経新聞とInternet Watchだけ)をKindleに配信するシステムを、自前サーバ上のcronからHeroku上のClockworkに移植して、今日から実用開始した。

Kindle向けにニュースを配信する仕組みとしてはレシピが豊富なCalibreを使うのがメジャーなんだけど、クライアントPCを24H稼動しておくというのが節電が叫ばれるいまどきのソリューションとしてはイマイチと感じていて、長らく自分のサーバで回していたんだけど、もうちょっとPaaS(というかHeroku)を使い慣れておきたいと思っていたので練習台に。

Herokuでcron相当のサービスというとClockworkを使うということらしいので、1時間ごとに起きるように組んで、実際に配信するかどうかの判断は別途させるようにした。clockプロセスひとつでDynoを1個使ってしまうので、UIはなし。セコい(笑)。じゃあ設定はどこから与えるかというと、環境変数で指定したURLから毎回読み込むようにしたのだった。Dropboxにでも入れておけばどこからでも設定変更ができるという塩梅。

Heroku上でmobiファイルを生成させるためにkindlegenをgem化したり、メール送信にActiveMailerを使おうと思ったがRailsじゃなければその下で使っているMailを素で使ったほうが楽だとわかったり。もっとも、一番苦労したのはUTCで動いているHerokuに適切なTZを与えることだったりして(Time#localtimeに引数があるなんて初めて知ったよ)。まぁいろいろ勉強になります。

最初はちゃんとWeb UIをつけて誰でも登録して使えるようにしたら便利じゃね? と思っていたんだけど、人のサイトを勝手にスクレイピングして他人に配信するのはどう考えても違法なのであった。あとSendGridのfreeプランはメール送信数に制限があるし(ので各自で動かさないといけない)。とはいえコードは公開してあるもののドキュメントないから誰も動かせないだろうな(笑)。

こんなふうに自前で生成した「電子書籍」をメールで簡単にリーダーに送れて、それをクラウド上で管理できるというのがKindle最大のメリットで*1、このPersonal Documentサービスが完全におれをKindleにロックインしてしまっているのだよなぁ。他社でもこれ相当のことができないと、何かあったときの移転先に困るんだが。KoboやSONYには類似のサービスないのかな。

Tags: kindle heroku

*1 少なくとも自分で電子書籍を作成できるギークにとっては、だけど。

本日のツッコミ(全6件) [ツッコミを入れる]

hsbt [clockwork でも良いんですけど cron の置き換えは https://addons.heroku.com/..]

ただただし [また新事実だよ……]

hb [HerokuのTZ設定は以下のコマンドを利用するという方法もありますね. $ heroku config:add T..]

ただただし [例えば海外旅行中は配信時間を変更したいという場合、タイムゾーンは運用中に(Herokuコマンドなしで)設定できないと..]

ただただし [Heroku Schedulerを見てみたけど、機能的にはまさにcron相当でプロセスをキックしてくれるだけなんだね..]

ただただし [READMEつけた。 https://github.com/tdtds/kindlizer-backend#read..]


2012-03-03(土) [長年日記]

結婚記念日的ディナー

19年目の結婚記念日ということで、由比ヶ浜のMANNAというイタリアンレストランでディナー。例によって食い過ぎて腹が重い。うまかった!

店内が暗めであまりちゃんとした写真が撮れなかったんだけど、からすみのスパゲッティ:

[写真]からすみのスパゲッティ

豚首肉のグリル。などなど。

[写真]豚首肉のロースト


トップ 最新 追記
RSS feed