先日からいくつかの機能を管理下のWikiに導入しました。それらとそのほかの細かい内容の報告です。
今回管理化のWikiのいくつかには『Note機能』を導入しました。これはWikiのそれぞれのページにそのページ関して討論するためのページを作成できるようにするものです1。この機能はSkyrimWikiJPでまず導入した後、OblivionWikiJP、OblivionJPModWikiにも導入を図りました。機能自体は極めてシンプルなので致命的な問題はないようですが、導入の際にいくつかミスをしてしまいました。
まずはSkyrimWikiJPで階層化されたページのNoteが上手く作成できない(テンプレートが読み込まれない)問題を発生させてしまいました。これは当方の単純な設定し忘れが原因です。現在は上手く出来る筈です。次に、これはNote機能と直には関係ないのですが、OblivionJPModWikiでNoteページを作成したページが閲覧できなくなるという問題が発生しました。これは当時Note機能以外の改造をWikiにしたのですがそこでミスをしたのが原因です。詳しく言うと、Noteページが作成されるとその作成元ページの右上のリンクが変化します。その為に出力されるHTMLが変化するので、Wikiプログラム側は新規に新しいHTMLを作成して送信しようとします。このHTML作成部分でエラーを発生させてしまったので見れなくなったのです。で、Noteを作成してないページでブラウザキャッシュが残っているものは普通にそのキャッシュから読み込まれるので問題が露見しなかったと言うわけです。このローカルのブラウザキャッシュを使用してもらうシステムは当方が組み込んだわけですが、そのせいで問題露見が遅れたのは「う~む…」といった感じです。今後は実際の環境でのチェック時はローカルプロクシでその辺のHTTPヘッダを削る処理を入れた方がよさげと思いました。
また、editlog機能の導入も行いました。これはちょっと物足りないPukiWikiの差分保存機能を強化する事が開発理由です。この機能はSkyrimWikiJP、OblivionWikiJPに導入しています(各ページのメニューの最終更新の後ろの+部分クリックで起動)。PukiWikiのバックアップや差分機能はあまりにそのバックアップが多くなると処理に必要なメモリサイズがサーバ側から割り当てられている上限を簡単に超えてしまい、ページの編集すら出来なくなってしまいます2。大きめなページでこれは顕著です。また、バックアップの削除は一括でしか行えません。特定の投稿の差分のみ削除ってのが出来ません。今回はこれらの不満解消を図りました。
実装的には単純で、投稿時にそのデータをキャッチしてデータを保存するだけです。よって表示周りのコードのほうで手間が掛かりました。データの保存はファイルを使うかDB使うかをちょっと考えた結果、SQLiteを使う事にしました。更新が頻繁なWikiではDBファイルのサイズが大きくなる可能性を踏まえ、月別ログ及び現行ログ(データ数上限を設定したもの)の複数ログ形式で作成しました。また、投稿者のIDも作成して表示するようにしたので荒らし対策にも使えます。当初はデータ数が多い場合、表示に時間が掛かるようになった3のでキャッシュ機能も導入しました。
この機能がまともに動く事が確認されたらPukiWikiデフォルトの差分やバックアップ機能は最小限な設定にしてしまうのもありかもしれません。
ついでなので。
ここ暫くはリアルの関係で実際のWeb管理作業はまとめてやる様にしています。管理作業というと、具体的にはメールの確認やお返事、全Wikiの運営やフォーラムのチェック、実際の編集のまずいとこがないかざっとチェック、関連スレッドの保管とNamazuインデックス作成等々です。で、実際1週間分を一気に処理する場合大体4時間は必要です4。これが2週間分以降になると+1~2時間/1週間分位になります。まとめてやると或る程度効率化が図れるので所要時間の増加度は幾らか下がるのです。まとめてやらなかった時期は1日1時間位は普通に食っていました。生活とか時間とか金とか関わってくるとこの時間というものは地味に馬鹿にならないものだという事は結構な方もお分かりでしょう。実際自分もまとめてやるようにしてからようやく気づいたくらいですから。
勿論『こんなに大変なんだからいたわってくれ』とか馬鹿な事を主張する為にこんな事を書いているのでは有りません。だったら管理人なんてやらない方がよっぽど自分の為に時間が使えます。好きで私はやっているのですからそんな事を主張するつもりは全くありません。ただ、此方の情報を出来るだけ公開する事、即ち本件では『管理者はどんなことやっているのか』をお伝えする事、それが利用者の皆さんと管理者の間の距離感を少しでも減らすのが大事だと考えたからです。雲の上の神みたいに思われて遠慮され過ぎるような事は多分Wikiの為に良くありません。
そんな風に考えていますので、何か思いついた事がありましたら遠慮なく仰って下さい。能力的とか此方の好みとか現実性がないとかポリシーに反するとかいう内容であって恐らく採用出来なさそうな物であっても、優先順位を付けてきちんと判断している(つもり)ですし、『おまえのかーちゃん、でべそ!』とかそんなんでない限りは気を悪くする事はないです。寧ろ言って頂いた方が改善点が見つかるので凄く助かるのです。遠慮しないでバンバン言い捨てしてください。
……でも、出来ましたら要望とか言って頂く場合は私が受信しやすいチャンネル(運営ページとかblogとか)に投げて頂けると嬉しいです。例えばスレなんて殆ど追えていませんし5。そこだけは済みません、わがままですがご容赦下さい。
- WikipediaのNoteと似た様な感じ [↩]
- よって投稿毎に差分を保存する設定はあまり推奨されていない [↩]
- 更新頻度チェック機能が重さの原因 [↩]
- Webプログラムの修正・情報収集・改善・書下ろし?の時間は含めていません。お気づきの方も居られるでしょうが、こっちの方が時間食いだったりします。また、上記の作業は出来る限り効率化の為の工夫を行っているのでこれ以上の短縮化はあまり望めません。…最近はNamazuインデックス作成処理よりも、スレッドのDB(12345678のスレタイは~、何のスレの何番目のスレ、云々を整理する為)作成の方が手間掛かってます。●有るとはいえ、乱立とか追跡とかしゃれにならんとです [↩]
- 高速流し読みしても10分/スレ、腰をすえるなら20-分/スレは必要。それでも最近のSkyrim系スレは読みきれない [↩]