RSSだけのブログ? / 重要なのは Permalink と RSS

最近RSS関連の有益な情報をたくさん配信してくださっているRSSマーケティングガイドさんに、面白い記事が上がっていました。

HTMLバージョンが無いRSSで配信されるだけのブログってありでしょうか?あるブロガーの一言が少しだけ話題になっているようです。

ということで、特定の情報を特定のユーザーだけに配信したい、という目的であればRSSだけのブログでいいんじゃないかというお話です。RSSによる全文配信が普通になりつつある昨今、自分のサイトのリピーターと思われるユーザーはそのほとんどがフィードリーダーで情報を読み、そこで完結しているのだからHTMLバージョンいらないじゃないと。HTMLに来るユーザーは検索エンジン経由のユーザーで(一見さんだから)そこでは有益なコミュニケーションが難しいなどなど。

そういえば以前にもギークな人たちの間でそんな話題になったことがあったなあなんて思いながら読んでいました。確かに特定のユーザー向けだけならRSS onlyなブログっていうのもありはありでしょうね。が、ことビジネスがどうだとか、ウェブの広がりてきなことを考えると、ここで例のロングテイルの話が出てきて、HTMLバージョンは絶対必要だ、という話になるでしょうね。

さて、続く文の中で「おっ」と思ったのはこれです。

で、続けて「ブログのコアな要素はパーマリンクじゃないかな。で、次がRSS。結局この2つが一番利用されているでしょう。」と返信しているのです。

ブログのコアな要素は PermalinkRSS、という台詞。ちょうど先日の Blog Hackers Conference で同じようなことを話して来たのです。そのスライドがこれです。

(ここからコメントとかトラックバックは重要じゃないよ、という乱暴なところまではいかないです。) ブログによって広まった一番重要な要素は、やはり Permalink の概念です。1つの記事に1つの決まったURLが割り当てられる。記事を、特定の話題についての"ひとまとまりの情報"というリソースとみたてて、そこに恒久的な URI をひとつ割り当てる。これにより、URI に対する HTTP GET 操作のみで目的とする情報が交換できるようになりました。

あるURLを記述しても、その先にある情報の粒度がばらばらだったこれまでのウェブから、Permalink を用いれば、目的の情報をURLとしてあらわせるという、最小単位が記事単位に変わったウェブ。ウェブの根底に根ざす REST アーキテクチャのレイヤと、情報のレイヤがようやく足並みを揃えたわけです。

これは地味なようで結構大きな革命です。なんでか、というのははてなブックマークを見ていただければ一目瞭然でしょう。特定の情報が特定のURIによって交換できるからこそ、それをブックマークできるのであり、そこから注目のものを抽出することができるようになったんです。あるURIの中に異なるいくつもの情報が含まれている状況に、ソーシャルブックマークのようなアプリケーションを用意したとしてもうまく機能しなかっただろうと思います。

RSS によって XML 化されるウェブ?

と、書いてて思ったんですが、全文掲載した RSSXSLT を当ててウェブブラウザ向けのコンテンツとして、CMS からは RSS しか出力しない、なんていうツールが当たり前になって、検索エンジンRSSを拾いに来るみたいな世界はアリかもしれないですね。XHTML ではなく、RSS により XML 化されるウェブの世界。アプローチとしては面白いかも。

物を選んでから何かをさせる - オブジェクト指向のお話

ときどき「オブジェクト指向でプログラミングをするというのはどういうことなの?」と聞かれるときがあります。そんなときにうーん、オブジェクト指向ってどう説明したらいいものか...犬がワンって吼えるでしょ...ああ、これじゃわからん、などと頭を悩ませるのですが、ふと 憂鬱なプログラマのためのオブジェクト指向開発講座 (DDJ Selection) から学んだ、Windows の UI の話が分かりやすいと思いました。

MacintoshWindowsGUIオブジェクト指向だ、というのが書籍の中にある説明です。(P.300 ぐらいから解説されています。) ファイルの削除、という動作を思い浮かべてみましょう。このとき行う操作は、

  1. まずファイルをマウスで選択する
  2. 右クリックして操作一覧を出す
  3. 削除する

という動作になります。(ドラッグ&ドロップでごみ箱に入れる、というのもありますね。) これを目を細めてよーくみてみると

  1. 物を選ぶ
  2. それを消す

ということをしています。決して、

  1. 消すという命令を出しておいて
  2. 物を選ぶ

ということはしていません。最初に物を選んで、後から消す、ということを命令するんです。

UNIXコマンドラインからファイルを消す場合は、

$ rm foobar.txt

という感じで、消すという動作を最初に決めてから、次に消す対象を選んでいます。これはオブジェクト指向じゃないですね。(なので、コマンドラインからの操作は、慣れないと難しいんだろうなあと思います)

つまり、物を選んでから何をさせるかを決める。これを一度理解できると、オブジェクト指向がよく分かるようになる...はずです。(笑)

この物を選んでから何かをさせる、というのはどうやら人間が何かをするときの基本のようです。カップラーメンを持ってからフタを開ける、ポットを持ってからお湯を注ぐ、お箸を持ってから麺をすくう。

人の自然の振る舞いはオブジェクト指向、それ故にユーザーインタフェースを作るときにも心がけておくと、どうやら使いやすいアプリケーションになりやすいようです。ファイルを選択させてから、そのファイルに対して行う動作を決めさせる、文章を選択させてから、それに何をするかを決めさせる、などなど。

ちょっと話がずれました。この物を選んでからほげる、っていうので考えるようになると、デザインパターンも理解しやすいんじゃないでしょうか。Templateメソッドは、物を取り出してAという動作をさせる、そのAが空になっててサブクラスごとにAを決めましょう、とか Factoryパターンは、Aという動作をさせることはきまってるけど何に対してAをさせるかが決まっておらず、その何を決定するロジックをクラスの中に内包しちゃえ、とか。

結城さんの名著 増補改訂版Java言語で学ぶデザインパターン入門 ではよく「インタフェースでプログラミングする」というキーワードが出てきます。(ここでいうインタフェースは Java の interface、つまり実装と切り離されたメソッドのことです。) これも、「物を選んで何をさせるかが決まるの法則があるのだから、そのプログラムに何を登場させて、それぞれに何をさせるかが決まれば、メソッドの中のロジックは後回しにプログラミングができる」という風に理解できます。

Blog Hackers Conference 2005 の打ち上げのときに、プログラムをどうやって書き始めるかという話で盛り上がりました。まずはじめにデータベース周りをオブジェクトにする、つまり物を作ってから書き始める人、紙に簡単なフローを描いてから作る人などなど。で、注目の宮川さんは、最初にメインプログラムの中にオブジェクトと、そのオブジェクトに何をさせるかを書くそうです。つまり、インタフェースでプログラミングをしているそう。だから宮川さんのソースは綺麗なんだな、という秘訣がわかったり。

そんなことを考えながら歩いて会社から帰ってきました。

憂鬱なプログラマのためのオブジェクト指向開発講座 (DDJ Selection)

憂鬱なプログラマのためのオブジェクト指向開発講座 (DDJ Selection)