新規記事投稿 フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 一括表示 改 がもうそろそろ完成
Date: 1998/02/21 21:34:25
Reference: mesh.forum.3/00133

2月21日に、^\^ Shigeさんは書きました。

>投稿記事の容量対策として一括表示機能の応用が紹介されていたので
>それをもう一歩勧めてローカルマシン(オフラインと言った方がいいのか?)での参照を前提として
>・gzipで圧縮
>・各会議室のindex.htmlにgzipファイルのリンクを
>・リンクを使えるようアンカータグのリファレンスを相対パスに置き換え
> アーカイブ間のジャンプも可(但しアーカイブする記事数が固定となっている)
>・フォロー/キャンセルのCGIリンクの削除
>・管理者コードのチェックによる不用意な圧縮操作を抑止
>等などです。
>
おー、すばらしいです。(^^)/
次版に入れようと思っていた機能はほとんど先取りしてますね。
是非公開して下さい。これで、次版に入れるのサボれるかな。
# 嘘々、チャンと付けますよ。(^^)
# でも、次版が公開されるのはいつになるか分かったものじゃないし... (^^;;

拡張機能は幾らあっても好みで取捨選択できますから、決して無駄になることは
ありませんので気兼ね無く公開して下さい。

特に最近Biglobeの非S号機のユーザにも容量チェックを厳しくしますと言うメールが
来たばかりで、皆さん契約容量を増やそうか記事を削除しようか悩んでいるところだと
思いますので、ちょうど良いタイミングです。(^^)
# やはり「うぇぶ会議室」のユーザはBiglobeの人たちが圧倒的に多いですし。

一つだけ、次版とのバッティングしそうなのが、管理者コードですね。

次版では、$forum'master_passwd と言う変数に管理者用マスターパスワードを
暗号化した物を設定して、これで各種の管理作業を認証しています。変数の設定は
セキュリティ設定用ファイルか site.pl のいずれかで、

$master_passwd = 'ru2OGquaWBbFQ';

の様な設定をしています。
# ちなみにこれは 'test' と言う文字列を暗号化した物です。

認証は当然、

if ($forum'master_passwd eq '') {
	# マスターパスワードが設定されてない。
} elsif (crypt($passwd, $forum'master_passwd) ne $forum'master_passwd) {
	# マスターパスワードが間違っている。
}

の様な感じですね。

>後は会議室のcontentsの底上げと圧縮済み記事の削除ができれば
>循環型会議室の完成\(^o^)/
>ですが,この辺はちょっとまだ怖いので手作業で様子を見ようかと思います。
>
そうですね、この辺はエラーに対する万全の対策をとらないとcontentsファイルや
記事を失ってしまいますので要注意ですね。

contentsファイルの更新を行なう時には、新しいcontentsファイルを別の名前で
作って置いてから、最後に rename('contents.new', contents); の様にして
古いファイルに上書きします。perlのrename()は最終的にはシステムコールの
rename()を呼び出し、この動作はatomic(動作の間に他の動作が入らない動作)で
あるため安全にファイル更新をすることが出来ます。こうすれば、いついかなる時に
システムからシグナルを受けてプロセスが死んでしまってもファイルは保全され、
突然contentsファイルが消えてしまうような事故は防げます。