2014年08月

リリースチェッカーの不具合をいろいろ直した

最近、リリースチェッカーの挙動がおかしかったので、いろいろ直した。

洋書なのに和書に分類される

商品の検索には Amazon Product Advertising API を使っている。検索リクエストのパラメータに「SerchIndex」というのがあって、ここで「Books」を指定すると和書データが、「ForeignBooks」を指定すると洋書データが、それぞれ検索できる。

というのは嘘で、「Books」を指定しても、検索結果には洋書が含まれてしまう。これをどうやって判別するかがキモなのだが、ここの処理がきちんと書けていなかった。

結局、以下のいずれかに該当する本を「和書」とすることにした。

  • レスポンスXML の ItemAttributes/Languages/Language/Name の値が「日本語」である
  • レスポンスXML の ItemAttributes/ISBN が「4」から始まる

以前よりはましになったと思う。

DVDの検索結果が0件になることがある

洋書/和書問題を直していて気づいた不具合。

ドキュメントを見ると、DVDのソート条件に「-orig-rel-date」を指定しても問題ないはずなのだが、なぜかエラーになってしまうことがある。「-releasedate」にするとエラーがなくなった。APIのバグだと思う。

httpd が「CLOSE_WAIT」で詰まる

上記不具合を直している間に発生。Feedly などのクローラからのアクセスがほぼ「CLOSE_WAIT」になって、httpd プロセスが足りなくなってしまう。

しばし考えて、RSS の出力時に Content-Length ヘッダを返すようにしたら、あっさり直った。


修正中にアクセスされた方にはご迷惑をおかけしました。失礼しました。

HerokuのPostgreSQLを移行した

hsbt さんの「heroku の postgres の新しいプランが出たので db を移行した」を読んで、僕の運営している「むびりす」でも移行してみた。

手順は公式の「Upgrading Heroku Postgres Databases」にある通り。

$ heroku addons:add heroku-postgresql
...
Attached as HEROKU_POSTGRESQL_CHARCOAL_URL
...

$ heroku maintenance:on
$ heroku pgbackups:transfer HEROKU_POSTGRESQL_CHARCOAL
$ heroku pg:promote HEROKU_POSTGRESQL_CHARCOAL
$ heroku maintenance:off

$ heroku pg:info
=== HEROKU_POSTGRESQL_CHARCOAL_URL (DATABASE_URL)
Plan:        Hobby-dev
Status:      Available
Connections: 4
PG Version:  9.3.3
...
=== HEROKU_POSTGRESQL_COBALT_URL
Plan:        Dev
Status:      Available
Connections: 2
PG Version:  9.1.11
...

$ heroku addons:remove HEROKU_POSTGRESQL_COBALT

無料プランなので、たいして意味はなさそうだけれど、気分はよい。

Rails 3 技術者認定ブロンズ試験に合格した

本日、Rails 3 技術者認定ブロンズ試験を受験し、無事合格した。

試しに模擬試験を解いてみたら、それなりに解けたので、だったら取ってしまおうかという感じ。

解けなかった問題は、Rails 3の環境を作って実際に動かしたり、ドキュメントやソースを読んだりして、納得できるまで調べた。


これで僕にRailsの基礎知識があることは証明できると思う。そう思わない人もいるのだろうが、そういう偏屈な人には遠ざかってほしいので、特に問題はない。

プロフィール
知識欲と謎解き欲が旺盛なWebエンジニア。AWS認定ソリューションアーキテクト - アソシエイト。JAPAN MENSA会員
記事検索