僕ははてなブックマークのタグごとの人気エントリをいつも見ているのですが、これは人気になった記事が日付順に出てくるだけなので、いつごろ人気になったのかとか、人気記事の流量が増えたかどうかがわかりません。例えばPerlでかなり熱いモジュールがリリースされて話題になりまくっていたとしても、ぱっと見てそれがわかりません。
そこで、Hatena::Bookmark trendsでは人気記事の数を日付ごとにグラフにプロットして可視化してみました。以下のURLからおためしできます。
id:motemen さんがnode.jsをばりばり使っていたので、「ぼ、ぼくも..」と思って作りはじめました。
こういう感じに上のほうにあるフォームにタグを指定すると、日付ごとにはてなブックマークで人気になった記事の数がグラフにプロットされます。グラフの点はクリックできるようになっていて、下にはグラフ上でクリックされた日に人気になった記事が表示されます。
カンマ区切りで複数のタグを4つまで指定できるので、プログラミング言語対抗の人気記事対決とかもできます。
おもしろいタグや話題が集ってきそうなタグを知らないと、便利につかえないのがいまいちなところです。タグを指定するとURLがパーマリンクになるので、おもしろいタグを見つけたらぜひ教えてください。
- http://hbtrend.douzemille.net/trends/ipad,nexus7,kindle
- http://hbtrend.douzemille.net/trends/javascript,perl,ruby
- http://hbtrend.douzemille.net/trends/vim,emacs
- http://hbtrend.douzemille.net/trends/%E3%81%BE%E3%81%A9%E3%81%8B%E2%98%86%E3%83%9E%E3%82%AE%E3%82%AB
技術的なメモ
冒頭にいったとおりサーバ側 node.js を利用しています。HTMLを表示するエンドポイントとJSON APIがひとつ実装されています。
タグの情報は、はてなブックマークのタグ検索の結果のRSS をJSONに変換してAPIから返しています。表示したい日付分だけの情報を複数回にわけて取得するように試みるのですが、あまりアクセスが多いとサーバの負荷になるので、ある程度以上のアクセスはしません。一度APIにアクセスすると、memcached結果が保存されるので、人気のタグは表示がはやいです。
クライアント側のグラフは id:hitode909 くんに教えてもらって Google Chart Toolsを利用してみています。あとかっこ良さそうなので backbone.js を使ってみましたが結構便利でした。