「
ニュースのソムリエ」というものを作成してみました。
忙しい経営者のために注目ニュースをピックアップ。新聞や雑誌など12の媒体から、
はてなブックマークで注目されているホットなニュースを厳選してお届けします。
はてなウェブサービスで提供されているリソースを利用して、PHPとJavaScriptとJSONによって構築された、いわゆるAjaxベースのマッシュアップ(MashUp)コンテンツです。主なブラウザの最新バージョンへの対応を確認しているので(Macを除く)、JavaScriptが利用できる環境にあるのならば、閲覧することができると思います。
Ajaxベースのマッシュアップの主な利点は以下の通り。
- クライアント側での処理が多いので、サーバへの負荷が比較的少ない。
- ページの読込みにストレスを感じない場合が多い。
- システム構築が楽。
- 自分でデータを用意する必要がない。
- メンテナンスフリーで常に最新情報が表示される。
この中で最も嬉しいのが、5.の「メンテナンスフリーで常に最新情報」です。サイトの運営をやっていて何が一番大変かと言うと、コンテンツを充実させることです。はてなウェブサービスが続く限り、その重労働から解放されるのですから素晴らしいとしか言いようがありません。
ところで、「
ニュースのソムリエ」は、大袈裟に言えば「集合知としてのニュース」なのかな、と考えています。
- 利用者の多い代表的な12の商業媒体のニュースが対象。
- その中から「はてなブックマーク」で選別された人気のあるニュースを抽出。
- 1日4回、最新の情報を自動的に取得。(※詳しくは後述)
1.でニュースの内容や文章の質を確保し、2.で人気のあるニュースを選別し、3.で常に最新のニュースを提供する。システム構築者の意志が介在するのは12の媒体を選んだことだけで、後は人気のあるニュースだけが自動的に選別されるという訳です。
一昔前だったら、少なくとも個人や零細企業レベルでは実現できなかったことが、今では3日もあればできてしまうというのですから、何だか凄い時代ですね。。
ちなみに、以下のような流れでニュースの見出し等を取得しています。
- [HTML]: 誰かがページにアクセスする。
- [JavaScript]: データが格納されているページを非同期通信(XMLHttpRequest)で呼び出す。
- [PHP]: 呼び出されたページがキャッシュされているか、あるいは前回のキャッシュから6時間以上経過していないかを確認する。
- [PHP]: (※処理が以下のように分岐)
- キャッシュされたJSONデータを呼び出して、JavaScriptに渡す。
- 指定されたはてなブックマークのRSSを呼び出して必要なデータを取得した上で、はてなブックマーク件数も取得し、情報を加工した上でJSONデータとして保存。同時に、このJSONデータを、JavaScriptに渡す。
- [JavaScript]: 取得したJSONデータを加工した上で、ニュースを表示する。
12の媒体について6時間ごとにニュースのデータとブックマーク件数を取得する仕様ですので、はてなへのアクセスは1日あたり最大で「12ページ×4回×2件=96回」となります。1日100回前後のアクセスならば、常識の範囲内ではないかと考えています。
取得したデータは軽量のJSONデータとして一時的に保存するだけで、データベースには一切格納しません。もちろんデータベースを利用すると、いろいろな機能を付加することができて面白いのですが、その分サーバに負荷もかかるので痛し痒しなのです。今回は、熟考の末、機能アップをはかることはやめました。
今後もAjaxベースのマッシュアップ(MashUp)コンテンツを作成していくことになると思いますが、他者が提供するリソースに依存するのは怖いので、マッシュアップについてはほどほどにする予定です。