Shuhei Kagawa

gem で cairo をインストール

Oct 12, 2009
sudo gem install cairo

でインストールできず、四苦八苦。 調べてみたところ、下記 URL に行き当たりました。 よくわかりませんが、extconf.rb 内に記述されている何かのオプションにスペースが足りなかったようです。

[Bug 18623] New: Patch for Ruby gem cairo-1.8. 0 to build on Mac OS X Leopard

以下のようにパッチを当ててからビルドすると、無事成功しました。

cd cairo-1.8.0
sudo patch -p0 < 20081118-fix_rcairo_build_on_mac_leopard.patch
sudo ruby extconf.rb
sudo make
sudo make install

Booklog から本一覧を取得

Oct 12, 2009

web 本棚サービス ブクログ がリニューアルしたというので 再開しました。ペパボの公式サービスとなり、メンテナンスやサービスの追加をどんどんやって行くそうです。今回のリニューアルで一番うれしいのが、本の登録機能の強化です。

ご要望で最も多かったものの一つが、もっと本を簡単に登録したい! 1冊1冊登録するのが面倒くさい!というものでした。 今回のリニューアルでは、 ページ遷移をせずに、簡単に複数の本を登録できるように改善しています。

ブクログがリニューアルいたしました。 | ブクログお知らせブログ

さくさく登録できて素晴らしいです。

今のところ API はないようで、何かをしたいときにはスクレイピングする必要があります。とりあえず Ruby で本の一覧を取得してみました。

require 'rubygems'
require 'hpricot'
require 'open-uri'

class Book
  def initialize(title, url)
    @title = title
    @url = url
  end
  def asin
    @url.split("/").last
  end
  attr_accessor :title, :url
end

def get_books(username)
  doc = Hpricot(open("http://www.booklog.jp/users/#{username}/All?display=list"))
  books = []
  (doc/"div#shelf div.list ul li").each do |book|
    title = (book/:a).first.inner_html
    url = (book/:a).first[:href]
    books.push(Book.new(title, url))
  end
  books
end

books = get_books("branchiopoda")
books.each do |book|
  puts "#{book.title} => #{book.asin}"
end

一覧から取れるのはタイトルと ASIN コードだけなので、それ以上の情報を得るには、個別のページや Amazon の API を見る必要がありますね。一つ一つ見てゆくのは大変ですし、情報の更新も行いたいので、今後の API の公開に期待です。

今週届いた本(Joel on Software、高度試験午前対策など)

Oct 11, 2009

エッセー

プログラマによるエッセー的な本を三冊。どれも有名な本ですね。

技術書を適当に買うと、すぐに使わない分野のものが積読になってしまいがちです。 エッセー的なものはどんどん読めて良いかな、と思って購入してみました。 ちょこちょこ読んで行こうと思います。

ポケットスタディ 高度試験共通 午前 1・2 対応

午前対策の他の本が品薄状態だったのと、レビューの評価が高かったので注文してみました。 しかし、結論からいうとイマイチです。問題にヒントが書いてある形式もどうかと思いますが、「ポケット」なせいかボリュームが少なすぎます。 まず、出題範囲。各分野ごとに数問しかなく、カバーできなかったキーワードは列挙されているだけです。そして解答の解説が十分ではありません。 試験当日の朝にチェック目的で利用するには良いかもしれませんが、これだけでは勉強ができない本ですね。