ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

Google App Engine for Java使ってみた

以前書いた、読書ポートフォリオを表示するのをWebアプリ化できないかと思って、
せっかくなのでGAE/Jを使ってみました。
一応できたのがこれ。
http://ssbstat.appspot.com/ssbstat/taka_2
が、むちゃくちゃ遅いです。
(2009/7/29追記)
遅い上に、Amazon Advertising APIにも対応していないので、アプリ殺しました。


最初考えたのが、こんな感じ。

  • Stack Stock Booksから読書データを取得
  • 各ISBN(ASIN)に対して、Amazon Web Serviceよりカテゴリを取得
  • ISBNとカテゴリの対応を集計して、Google Chart APIでグラフ化する


一応これで目的は達成できるわけですが、
さすがに毎回AWSに問い合わせると負荷がすごそうだし、処理の無駄も大きいので、次にこうしました。

  • Stack Stock Booksから読書データを取得
    • 各ISBN(ASIN)がBigTable上にある場合
    • 各ISBN(ASIN)がBigTable上にない場合
      • Amazon Web Serviceよりカテゴリを取得
  • ISBNとカテゴリの対応を集計して、Google Chart APIでグラフ化する


こうすると、AWSに行かなくて良い代わりに、BigTableへのアクセス回数が増えます。
しかも、ISBNの数だけBigTableに行くので、非常に効率が悪いです。
で、今度はこうしてみました。

  • Stack Stock Booksから読書データを取得
  • BigTableをメモリに全て読み込む
    • 各ISBN(ASIN)がメモリ上のBigTable上にある場合
    • 各ISBN(ASIN)がメモリ上のBigTable上にない場合
      • Amazon Web Serviceよりカテゴリを取得
  • ISBNとカテゴリの対応を集計して、Google Chart APIでグラフ化する


こうすると、AWSへのアクセスも最小に抑えつつ、BigTableへのアクセスも1回で済むのですが、
BigTableから取得できる件数は1,000件に制限されているので、
1,000以上の書籍をStack Stock Booksに登録している場合は、対応できません。
うーむ。


そもそもStack Stock Booksのデータと、BigTableのデータを、アプリ上でJOINするという発想がマズいらしい。
Stack Stock BooksのデータもBigTableに載せてしまえば良さそう。
と思ったけど、結局1,000件制限には引っかかるのか。。
うーむ。


やっぱり1,000件制限がある限り、Google App Engineを集計系のアプリで使うのはムリっぽい。

フロッピーディスクを大量に破棄

USBメモリが出てきたせいで(?)その役割を完全に奪われたフロッピーディスクですが、
うちはWindows95からパソコンを使っていたこともあって、古い起動ディスクとか、デバイスドライバとか、C Magazineの付録とか、色々出てきました。
もう要らんだろうということで、一個一個破棄することに。


中身の確認は、これまた今はもう使わなくなったVAIO C1Sに付いてきた、USBフロッピーディスクドライブを使ってみました。普通にデスクトップにつなげても認識するものですね。VAIO仕様とかじゃなくて良かった。
カリカリとか懐かしい音がするあたり、ノスタルジィを感じるのですが、あの遅さはどうにもならんなあ。
昔、VAIOのブートセクタを壊して、slackwareフロッピーディスクからインストールしたなあとか、色々思い出します。


あとMOってのもあって、これまた懐かしいシロモノですが、これは大容量ハードディスクが出てきたせいと、CD-Rの低価格化でその役割を失ったのかな?
SCSI-2とかいう太古(?)の仕様でしかつなげることが出来ず、持ってるSCSIカードがISA接続という、これまた太古の仕様なわけで、今持ってるパソコンで読むことは出来ませんでした。。
多分、今持ってるMOメディアの中に必要なデータって無いので、データの確認が済んだらMO/MOドライブ捨ててしまおうかな。
もう何年もMOドライブの電源入れてないし。