最新の日記 日記一覧 前の月 次の月 前の年 次の年 短縮 ログイン 凍結中

Diary

N2Wiki > Diary > 2008 > 06 > 22

2008-06-22 (日) 自動凍結[N2Wiki][Wiki][掲示板]

ひっそりとN2Wikiの機能を紹介する日記(第1回)

この N2Wiki のようなできたばかりの新参 Wiki エンジンにも、スパムボットたちはやってきて、あやしげなリンクの書き込みをする機会をうかがっているようです。
驚いたことに、一ヶ月以上前の時点で既にスパム書き込みの被害を受けてます。
当時の N2Wiki には、特にユーザー制限はなく誰でも書き込めるようになっていました。
Wiki を利用するユーザー自身が、互いに Wiki 管理のために少しずつ自分の時間を提供して、多数の人力による修正や管理が行われるのが、Wiki 的理想なのだとは思うのですが、ほぼ設置した本人のみが管理してるような Wiki だと、そうも言ってられません。
というわけで、やはり、「ページの凍結」に相当する機能は必要だと思うのです。
凍結機能を実装するにあたり、次のようなことを考えました。

 掲示板:
   自分の書き込みが他人に書き換えられることがない
   いったん書き込むと本人にも書き換えられない

 理想的なWiki:
   誰の書き込みでも書き換えられる
   いつでも誰でも書き換えられる

こうした掲示板とWikiの違いを、「ページの凍結」という機能を通して考えてみると、

 掲示板:
   書き込まれた瞬間に凍結されている

 理想的なWiki:
   永久に凍結されない

こうみなせるのではないかと。
今、Wikiページの「寿命」のようなものを考えたとすると、「生まれた瞬間に死んでいる(凍結されている)」のが掲示板的なシステムであり、「永久に死なない(凍結されない)」のが、理想的なWikiシステムであろう、と。
とすれば、「寿命」を自由に設定することのできるシステムであれば、「寿命 = 0」の極限で「掲示板的なシステム」を、「寿命 = +∞」の極限で「理想的なWikiシステム」を表現できるスケーラビリティのあるシステムになるのではないか?
こんなことを考えました。
と、いうわけで、(前置きが長い)
すべての N2Wiki のページには「寿命」= 凍結猶予期間 が存在します。
凍結猶予期間はページ毎に設定できますが、特に指定しない場合には、上位のページの設定を継承します。
たとえば、 /Diary は、凍結猶予期間が0分に設定されているため、/Diary/2008/06/20 や /Diary/2008/06/22 などのページは個別に設定しなくても凍結猶予期間0分で生まれてくることになります。
ところで、凍結猶予期間の起点となるのは、そのページの最終更新日時です。
したがって、たとえ凍結猶予期間が1時間であったとしても、その時間内にページの更新があれば、凍結猶予期間はそこから1時間に変更されます。
アクティブに書き換えが行われているページは凍結が延長され、ページの書き換えが起こらなくなって一定時間が経過した段階で、そのページは自動的に凍結されることになります。
凍結されたページは、そのページに対する権限をもつ管理者だけが編集することができます。
管理者はタイムスタンプを更新せずに編集を行うことで、ページを凍結したままの書き換えを行えます。
また、管理者はタイムスタンプを更新することでページの凍結を解除することができます。(これ以外の凍結解除方法はいまのところ存在しません。)
N2Wikiの右上隅には、赤を背景色とした「凍結中」あるいは、緑を背景色とした「編集可」の文字が見られると思います。
凍結中
↑こんなやつのことです。
目安になるようにと、凍結猶予期間の残り時間が少なくなるにつれ、この背景色は緑から赤へと連続的に変化するようにしてあります。
(変色のタイミングはリロード毎)
現在、この N2Wiki のデフォルトの凍結猶予期間は7日に設定されています。/Noteなどのページはこのデフォルト設定を継承しています。
デフォルト値としてどのくらいが適切なのかよくわかりません。
特に根拠なく7日にしてあります。
実装にあたっては、Delayed Indexing: http://c2.com/cgi/wiki?DelayedIndexingが参考になりました。
また、「凍結中」の背景色の変色のアイデアは、増井先生のWebページの鮮度を視覚化する. Unix Magazine, Vol. 18, No. 8, 2003.(PDF)を参考にしたものです。


この記事へのコメント

最初の一行だけ表示されています

     全部 最新10 
    お名前:

    四零七八を半角数字で