diff の RSS が抱えてるっぽい問題と自分のスタンス
辺りを読んで、現在 RSS 1.0 で最新の diff だけを配信している rssdiff.inc.php はちとまずいなぁという思いが少し強くなった。(以前から使いにくさは感じている。)
RDF 的な意味のおかしさ
RSS 1.0 は RDF の縛りを受ける。RSS1.0によるdiff配信に反対 を読むと「diff のページへリンクを張っている RSS」として提供する分には問題なさそう。diff の RSS なんだから別にいいじゃんと思っていたがかずひこ氏が Hiki の RSS 出力をマシにしよう計画 で
「content とか言っておきながら差分だけですか?」というのが気にならないでもないのですが、description のところに「わかりやすく」差分を見せるのも難しいような気がします。
となんか変だなと感じていたのも根っこはこの部分なんだな。きっと。
しかし逆に diff にリンク貼られてもあまり嬉しくないんだよなぁ。これは diff を pre で表示しちゃう PukiWiki の特性かもしれないけど。少しでも文章が長いととにかく横にスクロールさせなきゃならなくて見にくい。
RSS 2.0 だとこの辺の diff にリンクすべきという問題は解決できるんだろうか? 解決できるなら RSS 2.0 という選択肢はがぜん現実味を帯びてくるな。
人間にも意味が分からなくなる可能性
これはおおいにありうる。自分のように細かく修正を保存しながら書いていくタイプの人間が使っている Wiki では diff があまりに断片的になりすぎて使いものにならなくなる可能性は高い。ただしこれには解決策とあまり問題にならないのではないかという2つの解答が自分の中にある
diff の基点を明示できるようにしたらどうか?
現在の Wiki のインターフェイスにこういうものは存在していないが、近いものは KakiWiki である。使ったことはないが、KakiWiki にはスナップショットを保存するという機能がある。これは実は自分の考える理想の Wiki に少し近い。自分の現在考える理想の Wiki は cvs commit のような明示的なアクションで snapshot を保存し、diff はそこからの差分を表示するという形のものである。commit を自動で毎回行い、権限の管理を行わないという方法もあるだろうし、commit の権限を core member に限定してしまうという方法もありだと思う。個人的には core member に限定して commit 時にちゃんと log を書くという方法の方が嬉しい。断っておくがここで編集の権限と commit の権限はベツモノである。あ、例えばこれを利用すれば特定のリビジョンにロールバックするのも簡単にできそうだ。
こうすると細かく保存しながらある程度まとまったところで commit、変更点を分かりやすく書くことで追跡を容易にするという芸当が可能だ。
「細かく保存しなければよい」という選択肢もあるが、指が無意識のうちに保存のための動作を行うようなタイプも居るのだ。細かく保存せずに長文を書くなんてちょっと昔の安定しない OS を使ったことのある人間や冬の北陸に住んだことのある人間1には恐ろしくてとてもできない。これは Web アプリでも同じだ。
当然のことながら Wiki 上でコミュニケーションまでやってしまっているような使い方ではこういう方法は採用しにくいだろう。が、これはそもそもそういう使い方は Wiki としてどうなのか?という疑問の方が強いので考慮しないことにする。
あまり気にしなくてもよいか?
まず前提があって、自分は Wiki の RSS をすべて diff にするということは考えていない。RSS も目的別にあってしかるべきだと思う。だから diff についての RSS ですべてをまかなう気はないし、diff の RSS では一見については考える必要はないと思っている。diff の RSS を必要としているのはリピータである。しかも荒らしを見つけてくれるようなディープなリピータ(小人さんとも言う)である。どちらかというと core member。diff の RSS はそういうユーザーにフォーカスされていていいと思う。
もちろんフォーカスされていても時間が経てば diff だけ見ても何がなんだか分からないということはあるだろうけど、そういう場合は諦めて全文読み直してくれってことだ。RSS が万能である必要もないと思う。
しかしあれだなー。こういうネタのときは TrackBack 送れないのはもどかしいなぁ。やっぱ引っ越しますか。
太平洋側だといつ夕立が降るか分からないような、そんなスリリングな状況を想像すると分かりやすいかもしれない。 ↩