peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。
【開発環境の工事現場】
また挑戦。@2ch掲示板 http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/
関連スレなどは >>2-5 くらい
bbs.cgi再開発プロジェクト6
レス数が1000を超えています。これ以上書き込みはできません。
2005/04/10(日) 16:15:47ID:a6rtBqIi0
2005/04/10(日) 16:16:36ID:a6rtBqIi0
【前スレ】
bbs.cgi 再開発プロジェクト
http://qb3.2ch.net/operate/kako/1053/10530/1053067870.html
bbs.cgi再開発プロジェクト2
http://qb3.2ch.net/operate/kako/1069/10691/1069144193.html
bbs.cgi再開発プロジェクト3
http://qb5.2ch.net/test/read.cgi/operate/1076666901/
bbs.cgi再開発プロジェクト4
http://qb5.2ch.net/test/read.cgi/operate/1101984763/
bbs.cgi再開発プロジェクト5
http://qb5.2ch.net/test/read.cgi/operate/1103495887/
bbs.cgi 再開発プロジェクト
http://qb3.2ch.net/operate/kako/1053/10530/1053067870.html
bbs.cgi再開発プロジェクト2
http://qb3.2ch.net/operate/kako/1069/10691/1069144193.html
bbs.cgi再開発プロジェクト3
http://qb5.2ch.net/test/read.cgi/operate/1076666901/
bbs.cgi再開発プロジェクト4
http://qb5.2ch.net/test/read.cgi/operate/1101984763/
bbs.cgi再開発プロジェクト5
http://qb5.2ch.net/test/read.cgi/operate/1103495887/
2005/04/10(日) 16:18:13ID:a6rtBqIi0
【関連スレ】
【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part17
http://qb5.2ch.net/test/read.cgi/operate/1107376477/
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/
◆ 全サーバトリップ統一作戦
http://qb3.2ch.net/test/read.cgi/operate/1067245837/
bby -- スレッド情報一元管理システム構築スレ2
http://qb5.2ch.net/test/read.cgi/operate/1086868799/
【広告・宣伝】Rock54【自動排除】 4
http://qb5.2ch.net/test/read.cgi/operate/1083063122/
【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part17
http://qb5.2ch.net/test/read.cgi/operate/1107376477/
read.cgi再開発スレ Part2
http://qb5.2ch.net/test/read.cgi/operate/1105909861/
◆ 全サーバトリップ統一作戦
http://qb3.2ch.net/test/read.cgi/operate/1067245837/
bby -- スレッド情報一元管理システム構築スレ2
http://qb5.2ch.net/test/read.cgi/operate/1086868799/
【広告・宣伝】Rock54【自動排除】 4
http://qb5.2ch.net/test/read.cgi/operate/1083063122/
4讃岐 ◆IamaVIPdCI
NGNG >>1
ぼみょー
ぼみょー
5讃岐
2005/04/10(日) 16:53:50ID:affrfPZA0 >>1
ぼみょー
ぼみょー
2005/04/10(日) 19:34:26ID:RGQJw3jU0
> 名前がデフォルト名無しさんの場合はDATに書き込まず、
> 表示するときにSETTING.TXTから読んで付けるようにしたら?
> 結構削減されるような気がスルですが。
でも、名無しさんの名前が変更になった場合、古い発言でも名前が変わるわけですよね。なんかそれは嫌な気が。
> 表示するときにSETTING.TXTから読んで付けるようにしたら?
> 結構削減されるような気がスルですが。
でも、名無しさんの名前が変更になった場合、古い発言でも名前が変わるわけですよね。なんかそれは嫌な気が。
2005/04/10(日) 19:37:16ID:k8/TEzrI0
嫌モナにも、専ブラがSETTING.TXT読まなくちゃいけなくなるよそれ
NGNG
DATの削減ってそれほど優先度たかいの?
2005にしたのを考えてそうは思わないけど。
曜日を足したいなら2001年08月26日以前みたいに西暦を2桁にしてもよかったのに。
それなら、リンクつけないってのが最優先じゃない?
(read.cgiってSETTING.TXT読んでるんですか?)
2005にしたのを考えてそうは思わないけど。
曜日を足したいなら2001年08月26日以前みたいに西暦を2桁にしてもよかったのに。
それなら、リンクつけないってのが最優先じゃない?
(read.cgiってSETTING.TXT読んでるんですか?)
2005/04/10(日) 20:06:57ID:a6rtBqIi0
bbs.cgiの今後の方向性が示されてれば的外れな提案とかが無くていいと思うけど
そのへんはどうなんでしょ?
そのへんはどうなんでしょ?
2005/04/10(日) 20:47:33ID:bLJalbEm0
>>6
そんじゃ、DATの頭にデフォルト名無しを取り込んでおいて、それ展開するとか。
そんじゃ、DATの頭にデフォルト名無しを取り込んでおいて、それ展開するとか。
NGNG
2005/04/10(日) 21:31:55ID:bLJalbEm0
>>11
いや、DAT頭にある名無しとSETTING.TXTのとが違ったら、それはちゃんと名無しの名前を書き込むのよ。
で、次スレからはDAT頭の名無しも変わって省略とする。
bbs.cgiの負荷コストがかかりそうなので、却下されそうだな〜。
単純な思いつきで書いたので流して〜。
いや、DAT頭にある名無しとSETTING.TXTのとが違ったら、それはちゃんと名無しの名前を書き込むのよ。
で、次スレからはDAT頭の名無しも変わって省略とする。
bbs.cgiの負荷コストがかかりそうなので、却下されそうだな〜。
単純な思いつきで書いたので流して〜。
2005/04/10(日) 23:58:40ID:GvAuiQsq0
DATとかSETTING.TXTやるぐらいならSQL使ったほうがましだと思うが?
14FOX ★
NGNG 何のために?
NGNG
というか変にごちゃごちゃやると(ry
動いているものに手を入れたくな(ry
動いているものに手を入れたくな(ry
16FOX ★
NGNG 転送量をふやしたいから → 容量食うようにする
とか
人減らしたいから → ファイルopen数増やして全体にもっさりにする
とか
目的を書かなきゃ手段ばかりかかれても
混乱するばかりかな。
とか
人減らしたいから → ファイルopen数増やして全体にもっさりにする
とか
目的を書かなきゃ手段ばかりかかれても
混乱するばかりかな。
2005/04/11(月) 01:34:04ID:Aw1HHl/R0
>>16
手段が目的に決まってるだろーが。終了。
手段が目的に決まってるだろーが。終了。
2005/04/11(月) 08:20:15ID:1RHO3vpt0
本7だったら相手にするだけ時間の無駄。
2005/04/11(月) 12:46:51ID:p1SWkTi/0
>>16
さりげない揶揄にワロタ
さりげない揶揄にワロタ
2005/04/16(土) 22:12:28ID:FazSDHGa0
>を& amp;に変換するのって必要ある?
<側だけ処理すればタグは禁止できるような。
(ブラウザによっては駄目なのかな)
<側だけ処理すればタグは禁止できるような。
(ブラウザによっては駄目なのかな)
2005/04/16(土) 22:30:18ID:eAUBMe3V0
確かにブラウザの表示は問題ないかもしれないが、気持ち悪いな。
というか、URIの&は&に置換するべきだと思う。
というか、URIの&は&に置換するべきだと思う。
2005/04/17(日) 00:03:51ID:6o0jruEh0
http://なんとかかんとか?hoge=foo&amp=bar
とかなっているとアレだもんな
とかなっているとアレだもんな
2005/04/19(火) 00:22:23ID:xt+Ii/KI0
連投チェックに引っかかった時のメッセージ変わったんだね
24†正座会場 ◆jmq5OZqMNg
NGNG25root▲ ★
NGNG26root▲ ★
NGNG 今は時間とれないので、とりあえず餌だけまいておこう。
qb6でやってみた(単にtestというレスの投稿)。
うーん、IsKoukokuがこんなに重いとは。
あと、jcodeの処理も結構重いのね。
Total Elapsed Time = 0.801193 Seconds
User+System Time = 0.175342 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
58.1 0.102 0.125 1 0.1016 0.1252 main::IsKoukoku
35.3 0.062 0.055 2853 0.0000 0.0000 jcode::convert
26.8 0.047 0.024 2853 0.0000 0.0000 jcode::euc2euc
22.2 0.039 0.225 1 0.0390 0.2251 main::bbs_entryXXX
13.1 0.023 0.008 2853 0.0000 0.0000 jcode::h2z_euc
13.1 0.023 0.023 10 0.0023 0.0023 LWP::UserAgent::BEGIN
9.12 0.016 0.016 3 0.0052 0.0052 Net::DNS::Packet::dn_comp
9.12 0.016 0.039 2853 0.0000 0.0000 jcode::to
9.12 0.016 0.024 2853 0.0000 0.0000 jcode::euc
8.55 0.015 0.113 14 0.0011 0.0080 main::BEGIN
8.55 0.015 0.153 1 0.0155 0.1531 main::bbs_main
8.55 0.015 0.037 10 0.0015 0.0037 Net::DNS::Resolver::Base::BEGIN
4.56 0.008 0.008 1 0.0078 0.0078 Carp::shortmess
4.56 0.008 0.008 9 0.0009 0.0009 Socket::inet_aton
4.56 0.008 0.008 15 0.0005 0.0005 HTTP::Message::_elem
qb6でやってみた(単にtestというレスの投稿)。
うーん、IsKoukokuがこんなに重いとは。
あと、jcodeの処理も結構重いのね。
Total Elapsed Time = 0.801193 Seconds
User+System Time = 0.175342 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
58.1 0.102 0.125 1 0.1016 0.1252 main::IsKoukoku
35.3 0.062 0.055 2853 0.0000 0.0000 jcode::convert
26.8 0.047 0.024 2853 0.0000 0.0000 jcode::euc2euc
22.2 0.039 0.225 1 0.0390 0.2251 main::bbs_entryXXX
13.1 0.023 0.008 2853 0.0000 0.0000 jcode::h2z_euc
13.1 0.023 0.023 10 0.0023 0.0023 LWP::UserAgent::BEGIN
9.12 0.016 0.016 3 0.0052 0.0052 Net::DNS::Packet::dn_comp
9.12 0.016 0.039 2853 0.0000 0.0000 jcode::to
9.12 0.016 0.024 2853 0.0000 0.0000 jcode::euc
8.55 0.015 0.113 14 0.0011 0.0080 main::BEGIN
8.55 0.015 0.153 1 0.0155 0.1531 main::bbs_main
8.55 0.015 0.037 10 0.0015 0.0037 Net::DNS::Resolver::Base::BEGIN
4.56 0.008 0.008 1 0.0078 0.0078 Carp::shortmess
4.56 0.008 0.008 9 0.0009 0.0009 Socket::inet_aton
4.56 0.008 0.008 15 0.0005 0.0005 HTTP::Message::_elem
27FOX ★
NGNG ほぅ
29FOX ★
NGNG sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ
# 読み込む。。。
my @Rock_word = @FOX_Ro54;
# EUC に変換して半角カナ→全角カナにしてして。
# まず対象となる文字列を変換。
$In_Strings = jcode::euc($In_Strings , 'sjis', 'z');
# NG ワードも変換。ついでに NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
eval { $In_Strings =~m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために。。。
return '' if $@; # 不正 NG ワードがあったときは OK とする。
if ($In_Strings =~m<$NG_word>) { # NG ワードをチェック。
$NG_word_ref->[0] = &jcode::sjis($&, 'euc'); # 該当すれば NG ワードを sjis に戻して。。。
return $NG_word_ref; # リファレンスを返す。
}
}
return '';
}
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ
# 読み込む。。。
my @Rock_word = @FOX_Ro54;
# EUC に変換して半角カナ→全角カナにしてして。
# まず対象となる文字列を変換。
$In_Strings = jcode::euc($In_Strings , 'sjis', 'z');
# NG ワードも変換。ついでに NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
eval { $In_Strings =~m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために。。。
return '' if $@; # 不正 NG ワードがあったときは OK とする。
if ($In_Strings =~m<$NG_word>) { # NG ワードをチェック。
$NG_word_ref->[0] = &jcode::sjis($&, 'euc'); # 該当すれば NG ワードを sjis に戻して。。。
return $NG_word_ref; # リファレンスを返す。
}
}
return '';
}
2005/04/22(金) 19:34:00ID:eRSH3+Ow0
jcodeを2853回も呼ぶのは妥当なの?みたいなw
31未承諾広告※ ◆TWARamEjuA
NGNG ではラムを飲みつつ待機していまつ♪
Shift_JIS のを丁稚どんにお渡しするようにすれば桶ですよね?
Shift_JIS のを丁稚どんにお渡しするようにすれば桶ですよね?
32FOX ★
NGNG 1) Shift Jis でリストを作る
2) リストには上限を作る (たとえば 200)
ですなぁ
ex10, live20 で Iskoukoku するーにしてみた
2) リストには上限を作る (たとえば 200)
ですなぁ
ex10, live20 で Iskoukoku するーにしてみた
2005/04/22(金) 21:09:44ID:EY6AyDui0
あれ?なんでsjisでリスト?気のせいかな。。。
2005/04/23(土) 00:11:59ID:8gV5d4mD0
リニアサーチしているからO(n)オーダになるのはしょうがないな……
Perlバインディング使ってcdbサーチにするとか、ハッシュサーチにするとか、
B-Treeサーチにするとか。
Perlバインディング使ってcdbサーチにするとか、ハッシュサーチにするとか、
B-Treeサーチにするとか。
2005/04/23(土) 00:14:04ID:8gV5d4mD0
ん、まてよ。
「書き込みの中にNGワードが有ればTrue」
というのと
「NGワード自体をリファレンスで返す」
という処理があるのね。
前者だけでも既存のモジュールで追い出せばO(log n)の速度になると思うけど。
「書き込みの中にNGワードが有ればTrue」
というのと
「NGワード自体をリファレンスで返す」
という処理があるのね。
前者だけでも既存のモジュールで追い出せばO(log n)の速度になると思うけど。
2005/04/23(土) 00:30:21ID:8gV5d4mD0
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_bigdata.html#cdb
38root▲ ★
NGNG 今日のex10の様子を見る限り、
この部分のチューニングは、すんごい効果あるってことすね。
この部分のチューニングは、すんごい効果あるってことすね。
39未承諾酩酊※ ◆TWARamEjuA
NGNG NGワードが普通の文字列だったなら。。。
正規表現文字列だからちょと難儀かもかも。@「検索」に関してはむちむち♪
とりあえず、Jcodeを外したものを用意しておりますです。
正規表現文字列だからちょと難儀かもかも。@「検索」に関してはむちむち♪
とりあえず、Jcodeを外したものを用意しておりますです。
2005/04/23(土) 00:49:53ID:rE0tuwui0
軽くなったところで。
本文だけじゃなく名前欄やメール欄をIsKoukokuのチェック対象にするのは難しいでしょうか。
本文だけじゃなく名前欄やメール欄をIsKoukokuのチェック対象にするのは難しいでしょうか。
2005/04/23(土) 00:58:40ID:rE0tuwui0
名前欄・メール欄・本文を連結したバッファを作って一回でチェックならどうでしょう。
(連結による誤判定も起こる可能性はありますが)
(連結による誤判定も起こる可能性はありますが)
2005/04/23(土) 01:06:24ID:+E0bkwNw0
>>40
どんな目的でそれをやるか書かないと
どんな目的でそれをやるか書かないと
45▲ ◆cZfSunOs.U
2005/04/23(土) 01:13:32ID:P1wP/4lM0 まぁ Shift JIS でやるという方向ならどうでもいいかも知れませんが,
もし文字コード変換するとしたら,Text::Iconv モジュール使えば
ネイティブの iconv() 使う分 Perl で書いてある jcode よりは軽いかと.
もし文字コード変換するとしたら,Text::Iconv モジュール使えば
ネイティブの iconv() 使う分 Perl で書いてある jcode よりは軽いかと.
2005/04/23(土) 01:18:26ID:rE0tuwui0
47未承諾酩酊※ ◆TWARamEjuA
NGNG48未承諾酩酊※ ◆TWARamEjuA
NGNG ●改正IsKoukoku
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ
# 半角カナ→全角カナ変換テーブルの作成(むずかしいことはしない♪けれども直接書くと0x5Cが出てくるから16進文字列に)
# qw|。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト
# ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゛ ゜|;
my @Z_kana = (
'8142','8175','8176','8141','8145','8392','8340','8342','8344','8346','8348','8383','8385','8387','8362','815B',
'8341','8343','8345','8347','8349','834A','834C','834E','8350','8352','8354','8356','8358','835A','835C','835E',
'8360','8363','8365','8367','8369','836A','836B','836C','836D','836E','8371','8374','8377','837A','837D','837E',
'8380','8381','8382','8384','8386','8388','8389','838A','838B','838C','838D','838F','8393','814A','814B'
);
# ハシュにしてして。
my %Kana2Z = map +($_, pack("H4", $Z_kana[$_ - 0xA1])), (0xA1 .. 0xDF);
# 読み込む。。。
my @Rock_word = @FOX_Ro54;
# まず検索対象となる文字列を半角カナ→全角カナ変換。
$In_Strings =~ s/([0xA1-0xDF])/$Kana2Z[$1 - 0xA1]/g;
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map( [ (split /<>/)[5,6,7] ] ), @Rock_word;
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
$NG_word =~ s/([0xA1-0xDF])/$Kana2Z[$1 - 0xA1]/g; # 半角カナ→全角カナ変換。
eval { $In_Strings =~ m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために♪
if ($@){ return '' } # 不正 NG ワードがあったときは OK とする。
if ($In_Strings =~ m<$NG_word>) { # NG ワードをチェック。
return $NG_word_ref; # 合致したるらリファレンスを返す。
}
}
return '';
}
添削激しくキボンヌですm(_ _)m
ただし、リスト側もeuc→Shift_JISしなきゃなので、いきなり全鯖に導入しちゃうと気持ちよく叩かれるですです♪
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ
# 半角カナ→全角カナ変換テーブルの作成(むずかしいことはしない♪けれども直接書くと0x5Cが出てくるから16進文字列に)
# qw|。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト
# ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゛ ゜|;
my @Z_kana = (
'8142','8175','8176','8141','8145','8392','8340','8342','8344','8346','8348','8383','8385','8387','8362','815B',
'8341','8343','8345','8347','8349','834A','834C','834E','8350','8352','8354','8356','8358','835A','835C','835E',
'8360','8363','8365','8367','8369','836A','836B','836C','836D','836E','8371','8374','8377','837A','837D','837E',
'8380','8381','8382','8384','8386','8388','8389','838A','838B','838C','838D','838F','8393','814A','814B'
);
# ハシュにしてして。
my %Kana2Z = map +($_, pack("H4", $Z_kana[$_ - 0xA1])), (0xA1 .. 0xDF);
# 読み込む。。。
my @Rock_word = @FOX_Ro54;
# まず検索対象となる文字列を半角カナ→全角カナ変換。
$In_Strings =~ s/([0xA1-0xDF])/$Kana2Z[$1 - 0xA1]/g;
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map( [ (split /<>/)[5,6,7] ] ), @Rock_word;
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
$NG_word =~ s/([0xA1-0xDF])/$Kana2Z[$1 - 0xA1]/g; # 半角カナ→全角カナ変換。
eval { $In_Strings =~ m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために♪
if ($@){ return '' } # 不正 NG ワードがあったときは OK とする。
if ($In_Strings =~ m<$NG_word>) { # NG ワードをチェック。
return $NG_word_ref; # 合致したるらリファレンスを返す。
}
}
return '';
}
添削激しくキボンヌですm(_ _)m
ただし、リスト側もeuc→Shift_JISしなきゃなので、いきなり全鯖に導入しちゃうと気持ちよく叩かれるですです♪
51root▲ ★
NGNG あ、そっか。
つまり、ロックなシステムのほうも、いじる必要があるってことすね。
やはり同期とって、すすめるが吉かなと。
つまり、ロックなシステムのほうも、いじる必要があるってことすね。
やはり同期とって、すすめるが吉かなと。
52未承諾酩酊※ ◆TWARamEjuA
NGNG >>48
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map( [ (split /<>/)[5,6,7] ] ), @Rock_word;
↓
@Rock_word = map( [ (split /<>/)[5,6,7] ], @Rock_word);
こうだよなぁ。。。
Text::Iconv って標準では入っていないのね(泪)
Encode.pmって使ってみようかなぁ@Rock54基地
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map( [ (split /<>/)[5,6,7] ] ), @Rock_word;
↓
@Rock_word = map( [ (split /<>/)[5,6,7] ], @Rock_word);
こうだよなぁ。。。
Text::Iconv って標準では入っていないのね(泪)
Encode.pmって使ってみようかなぁ@Rock54基地
53root▲ ★
NGNG うわわ。banana238に入れればよい?
54未承諾酩酊※ ◆TWARamEjuA
NGNG2005/04/23(土) 01:45:43ID:wSlmOpQB0
プロファイリング見て効果を確認しながらやってみては。
釈迦に説法ですが
釈迦に説法ですが
57root▲ ★
NGNG2005/04/23(土) 01:52:48ID:wSlmOpQB0
>>57
あー手間がかかるんですね。失礼しました。こうゆうのワクワクしますよね
あー手間がかかるんですね。失礼しました。こうゆうのワクワクしますよね
60root▲ ★
NGNG >>59
するですね。でも私よりも、FOXさんがするんじゃないかな。
qb6でのプロファイリングの方法を書いておこう。
これで、おじさんもりっぱなプロファイラー。
1)bbs.cgiの1行目を、
#!/usr/local/bin/perl -d:DProf
に変える
(qb6のbbs.cgiの3行目に既に書いてあるので、それを1行目に移すだけ)
2)普通に書き込みやスレ立てをする(bbs.cgiを起動する)
3)同じディレクトリに tmon.out というファイルができるので、それに対して、
dprofpp tmon.out
を実行すると、プロファイリングの結果が画面に表示される
するですね。でも私よりも、FOXさんがするんじゃないかな。
qb6でのプロファイリングの方法を書いておこう。
これで、おじさんもりっぱなプロファイラー。
1)bbs.cgiの1行目を、
#!/usr/local/bin/perl -d:DProf
に変える
(qb6のbbs.cgiの3行目に既に書いてあるので、それを1行目に移すだけ)
2)普通に書き込みやスレ立てをする(bbs.cgiを起動する)
3)同じディレクトリに tmon.out というファイルができるので、それに対して、
dprofpp tmon.out
を実行すると、プロファイリングの結果が画面に表示される
2005/04/23(土) 02:39:40ID:q2W93/1G0
へぇ、数字で与えるとその数字にあたるキャラクタにマッチして
マッチしたキャラクタが数字になって出てくるのか。
初めて知った。よーし、パパ早速使っちゃうぞーっ!!
マッチしたキャラクタが数字になって出てくるのか。
初めて知った。よーし、パパ早速使っちゃうぞーっ!!
2005/04/23(土) 02:43:02ID:lDiLScJr0
処理が前とあんまり変わっていない上に半角カナ以外も変換しちゃってるけど
少しでも軽くなってればいいってことかな。
少しでも軽くなってればいいってことかな。
63▲ ◆cZfSunOs.U
2005/04/23(土) 02:44:23ID:P1wP/4lM0 >eval { $In_Strings =~ m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために♪
>if ($@) { return '' } # 不正 NG ワードがあったときは OK とする。
>if ($In_Strings =~ m<$NG_word>) { # NG ワードをチェック。
> return $NG_word_ref; # 合致したるらリファレンスを返す。
>}
この部分はこうすると regex match の実行1回だけで済むかな......
my $matched = eval { $In_Strings =~ m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために♪
if ($@) { return '' } # 不正 NG ワードがあったときは OK とする。
if ($matched) { # NG ワードをチェック。
return $NG_word_ref; # 合致したるらリファレンスを返す。
}
>if ($@) { return '' } # 不正 NG ワードがあったときは OK とする。
>if ($In_Strings =~ m<$NG_word>) { # NG ワードをチェック。
> return $NG_word_ref; # 合致したるらリファレンスを返す。
>}
この部分はこうすると regex match の実行1回だけで済むかな......
my $matched = eval { $In_Strings =~ m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために♪
if ($@) { return '' } # 不正 NG ワードがあったときは OK とする。
if ($matched) { # NG ワードをチェック。
return $NG_word_ref; # 合致したるらリファレンスを返す。
}
64FOX ★
2005/04/23(土) 04:37:10ID:???0 私もまたまた酩酊ってことで
あした読んでみます、、、
あした読んでみます、、、
65未承諾広告※ ◆TWARamEjuA
NGNG 読み返してみるとボロボロだったり、、、(汗)
●改訂IsKoukoku改訂1版
→変換テーブルを単純配列にした(ハシュにする必要はなかった)
→不正NGワードがあったとき、そのままOKとしていたところを次のNGワードを探索するようにした
→不正チェックと正式チェックをまとめて1回にした( >>63 )
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ
# 半角カナ→全角カナ変換テーブルの作成(むずかしいことはしない♪けれども直接書くと0x5Cが出てくるから16進文字列に)
# qw|。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト
# ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゛ ゜|;
my @Kana2Z = (
0x8142,0x8175,0x8176,0x8141,0x8145,0x8392,0x8340,0x8342,0x8344,0x8346,0x8348,0x8383,0x8385,0x8387,0x8362,0x815B,
0x8341,0x8343,0x8345,0x8347,0x8349,0x834A,0x834C,0x834E,0x8350,0x8352,0x8354,0x8356,0x8358,0x835A,0x835C,0x835E,
0x8360,0x8363,0x8365,0x8367,0x8369,0x836A,0x836B,0x836C,0x836D,0x836E,0x8371,0x8374,0x8377,0x837A,0x837D,0x837E,
0x8380,0x8381,0x8382,0x8384,0x8386,0x8388,0x8389,0x838A,0x838B,0x838C,0x838D,0x838F,0x8393,0x814A,0x814B
);
# 読み込む。。。
my @Rock_word = @FOX_Ro54;
# まず検索対象となる文字列を半角カナ→全角カナ変換。
$In_Strings =~ s/([\xA1-\xDF])/$Kana2Z[$1 - 0xA1]/g;
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map [ (split /<>/)[5,6,7] ] , @Rock_word;
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
$NG_word =~ s/([\xA1-\xDF])/$Kana2Z[$1 - 0xA1]/g; # 半角カナ→全角カナ変換。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したるらリファレンスを返す。
elsif ($@) { next } # 不正 NG ワードがあったときは次の NG ワードへ。
}
return '';
}
●改訂IsKoukoku改訂1版
→変換テーブルを単純配列にした(ハシュにする必要はなかった)
→不正NGワードがあったとき、そのままOKとしていたところを次のNGワードを探索するようにした
→不正チェックと正式チェックをまとめて1回にした( >>63 )
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ
# 半角カナ→全角カナ変換テーブルの作成(むずかしいことはしない♪けれども直接書くと0x5Cが出てくるから16進文字列に)
# qw|。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト
# ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゛ ゜|;
my @Kana2Z = (
0x8142,0x8175,0x8176,0x8141,0x8145,0x8392,0x8340,0x8342,0x8344,0x8346,0x8348,0x8383,0x8385,0x8387,0x8362,0x815B,
0x8341,0x8343,0x8345,0x8347,0x8349,0x834A,0x834C,0x834E,0x8350,0x8352,0x8354,0x8356,0x8358,0x835A,0x835C,0x835E,
0x8360,0x8363,0x8365,0x8367,0x8369,0x836A,0x836B,0x836C,0x836D,0x836E,0x8371,0x8374,0x8377,0x837A,0x837D,0x837E,
0x8380,0x8381,0x8382,0x8384,0x8386,0x8388,0x8389,0x838A,0x838B,0x838C,0x838D,0x838F,0x8393,0x814A,0x814B
);
# 読み込む。。。
my @Rock_word = @FOX_Ro54;
# まず検索対象となる文字列を半角カナ→全角カナ変換。
$In_Strings =~ s/([\xA1-\xDF])/$Kana2Z[$1 - 0xA1]/g;
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map [ (split /<>/)[5,6,7] ] , @Rock_word;
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
$NG_word =~ s/([\xA1-\xDF])/$Kana2Z[$1 - 0xA1]/g; # 半角カナ→全角カナ変換。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したるらリファレンスを返す。
elsif ($@) { next } # 不正 NG ワードがあったときは次の NG ワードへ。
}
return '';
}
66埼玉mikky ◆jM/TIxxEd.
NGNG ねえねえ、疑問なんですけど2chはなんでdat使ってるんですか?
頻繁にアクセスされるスレは、
データベース使って、全部メモリテーブルに入れちゃったらいいじゃないですか。
メモリに入れておくと、ディスクまで取りに行くより全然速いですよ。
それに、ファイルのオープンクローズばかりだと
ファイルディスプリプタの消費が凄いだろうし、非効率じゃないですかねぇ。
頻繁にアクセスされるスレは、
データベース使って、全部メモリテーブルに入れちゃったらいいじゃないですか。
メモリに入れておくと、ディスクまで取りに行くより全然速いですよ。
それに、ファイルのオープンクローズばかりだと
ファイルディスプリプタの消費が凄いだろうし、非効率じゃないですかねぇ。
2005/04/23(土) 10:51:38ID:q2W93/1G0
>>66
http://qb5.2ch.net/test/read.cgi/operate/1103495887/965 :動け動けウゴウゴ2ちゃんねる :sage :2005/04/08(金) 23:30:02 ID:OLl7UjV20
「bbs.cgiスレでXML化を言い出す奴=Java屋の会社に入った新入社員」
「bbs.cgiスレでMySQL化を言い出す奴=オープンソースWebASPを聞きかじった新入社員」
http://qb5.2ch.net/test/read.cgi/operate/1103495887/971 :ひろゆき@どうやら管理人 ★ :2005/04/09(土) 04:27:14 ID:???0 (p)?###
>>965
同意。
へー、マッチして出てきた文字列からそのまま数字を引けばその差の数値がでてくるのか。
初めて知った。よーし、ママも早速つかっちゃうぞー!!
http://qb5.2ch.net/test/read.cgi/operate/1103495887/965 :動け動けウゴウゴ2ちゃんねる :sage :2005/04/08(金) 23:30:02 ID:OLl7UjV20
「bbs.cgiスレでXML化を言い出す奴=Java屋の会社に入った新入社員」
「bbs.cgiスレでMySQL化を言い出す奴=オープンソースWebASPを聞きかじった新入社員」
http://qb5.2ch.net/test/read.cgi/operate/1103495887/971 :ひろゆき@どうやら管理人 ★ :2005/04/09(土) 04:27:14 ID:???0 (p)?###
>>965
同意。
へー、マッチして出てきた文字列からそのまま数字を引けばその差の数値がでてくるのか。
初めて知った。よーし、ママも早速つかっちゃうぞー!!
68埼玉mikky ◆jM/TIxxEd.
NGNG >>67
DB化といえばそうだけど、ただ単にDB使った掲示板みたいに
データをDBに入れるわけじゃないからねぇ。
メモリテーブルを使うメリットないとは思えないけど、
まあ、いろいろ考え方はあるからねぇ。
DB化といえばそうだけど、ただ単にDB使った掲示板みたいに
データをDBに入れるわけじゃないからねぇ。
メモリテーブルを使うメリットないとは思えないけど、
まあ、いろいろ考え方はあるからねぇ。
2005/04/23(土) 11:18:48ID:6bukU/2/0
70埼玉mikky ◆jM/TIxxEd.
NGNG せっかくアイデア出しても煽られるだけで終わったか、、、
なんというか寂しいね。
なんというか寂しいね。
71未承諾広告※ ◆TWARamEjuA
NGNG 劇的な結果が出るようならばやってみたいですよねぇ。
例えば、今ある50近い鯖がたった10台のTigerに収まっちゃうとかとか。
例えば、今ある50近い鯖がたった10台のTigerに収まっちゃうとかとか。
2005/04/23(土) 12:24:04ID:mRDogzLo0
2005/04/23(土) 14:48:09ID:TdJ7gg7q0
man perlcompile
man perlcc
/* perl を C に変換して */ コンパイルしてみては。
man perlcc
/* perl を C に変換して */ コンパイルしてみては。
2005/04/23(土) 23:02:23ID:f/pBGuZN0
>>73
すでにやってますがw
すでにやってますがw
2005/04/24(日) 02:02:27ID:FSwUijWd0
「完璧なアイデアを出すよりも、動くコードを出す奴が評価される」
プログラマ世界の鉄則。
プログラマ世界の鉄則。
2005/04/24(日) 02:11:08ID:evOCb0dX0
コンパイルしてある場合でも、evalの部分はやっぱりPerlで解釈しながら動くのかな。
forechループをevalにする例
http://x68000.q-e-d.net/~68user/webcgi/search-1.html
forechループをevalにする例
http://x68000.q-e-d.net/~68user/webcgi/search-1.html
79root▲ ★
NGNG 例えばIDN::Nameprepとかが使えるのかもしれないけど、UTF-8ベースだし。
で、そういった正規化が必要なのは、濁点・半濁点と、あと何かあるのかしら。
で、そういった正規化が必要なのは、濁点・半濁点と、あと何かあるのかしら。
全角カタカナと半角カタカナを区別なく処理したいときは、
全角カタカナを半角カタカナにして情報量減らすんだっけか。
ガ→ガ ガ→ガ カ゛→ガ カ゛→ガ
全角カタカナを半角カタカナにして情報量減らすんだっけか。
ガ→ガ ガ→ガ カ゛→ガ カ゛→ガ
2005/04/24(日) 12:47:15ID:Ff0eXWtu0
>> 74
perl がどんな C を吐くかわからないが、あんまりよくなさげだったら、
IsKoukoku や IsKoukoku の中の"半角カナ→全角カナ変換"だけでも C で書いて、
入れ換えてみるのは。
perl がどんな C を吐くかわからないが、あんまりよくなさげだったら、
IsKoukoku や IsKoukoku の中の"半角カナ→全角カナ変換"だけでも C で書いて、
入れ換えてみるのは。
2005/05/02(月) 03:17:41ID:68k7qPdk0
というか全部Cで書くのってだめなんすか?
2005/05/02(月) 16:43:11ID:6dv2zm420
1.言いだしっぺルール
2.メンテナンスコスト
3.perlはちゃんと書けば速い
2.メンテナンスコスト
3.perlはちゃんと書けば速い
2005/05/03(火) 05:40:58ID:9hjYG5x6O
で、ちゃんと書かれてるの?
2005/05/03(火) 07:38:42ID:4DLXOziK0
ちゃんと書いてある部分もあるだろうし、ちゃんとしていない部分もあるだろう。
2005/05/03(火) 14:03:33ID:oTGNOSTA0
bbs.cgiってフォーム処理とDAT出力くらいしかやってないように
見られるんだけど、めんどいことやってるのかな?
C+++FastCGIとかでわりと簡単に書き直せたりしたりとかしない?
・・・と思ってたけど、Perlで十分なら必要ないか。
見られるんだけど、めんどいことやってるのかな?
C+++FastCGIとかでわりと簡単に書き直せたりしたりとかしない?
・・・と思ってたけど、Perlで十分なら必要ないか。
2005/05/03(火) 17:36:51ID:2fo/jDCM0
2005/05/03(火) 23:10:32ID:oTGNOSTA0
>>87
>実はいちばんめんどいのが各種チェックや統計処理だったり。
各種チェックってアクセス禁止IPのチェックとかDATファイルの1000オーバチェック
とかですかね・・・?確かにめんどそうだなぁ。
>DNS化している部分もあるけど、
素でDomain Name Systemかと思ったw
Digital Nervous Systemって抽象的でなにを言っているのかわからんけど、
高速にアクセスできるシステムって解釈でいいのかな
スレ汚しすいません
>実はいちばんめんどいのが各種チェックや統計処理だったり。
各種チェックってアクセス禁止IPのチェックとかDATファイルの1000オーバチェック
とかですかね・・・?確かにめんどそうだなぁ。
>DNS化している部分もあるけど、
素でDomain Name Systemかと思ったw
Digital Nervous Systemって抽象的でなにを言っているのかわからんけど、
高速にアクセスできるシステムって解釈でいいのかな
スレ汚しすいません
2005/05/03(火) 23:23:50ID:Qj6XBp5n0
DNSはDomainNameSystemの意味だよ。
つまり、書き込みが規制対象かどうかをDNSのプロトコルでリクエストして
その結果で判定しているということ。
つまり、書き込みが規制対象かどうかをDNSのプロトコルでリクエストして
その結果で判定しているということ。
2005/05/03(火) 23:44:45ID:4DLXOziK0
・書き換えがあまり発生せず
・反映速度の要求もシビアで無い
・複数ホストから同一データを参照する
というようなデータの場合はDNSを転用するってことでしょ。
スパムフィルターとしてRBLという実績がある方法。
・反映速度の要求もシビアで無い
・複数ホストから同一データを参照する
というようなデータの場合はDNSを転用するってことでしょ。
スパムフィルターとしてRBLという実績がある方法。
2005/05/03(火) 23:51:15ID:Kx8XfPBE0
分散データベースである必要はあるのか?って気はするが、あるんだろうな
2005/05/04(水) 00:14:30ID:GM4RRXgJ0
2005/05/04(水) 00:38:12ID:zXm56+aF0
DNSを転用するのはキャッシュが効くから元サーバーの負荷が減るってのもある。
2005/05/04(水) 11:47:18ID:keskHAhd0
>>92
DNSBLでググってみて。
DNSBLでググってみて。
9592
2005/05/05(木) 00:40:22ID:uwCu+mh10 ググってみました。
2ch運用サーバの中に、禁止ホストのブラックリストを保持していて、
リクエストがある度にそのリストを参照している、
という解釈でよろしいのでしょうか?
2ch運用サーバの中に、禁止ホストのブラックリストを保持していて、
リクエストがある度にそのリストを参照している、
という解釈でよろしいのでしょうか?
2005/05/05(木) 01:01:33ID:Cycs06qd0
>リクエストがある度にそのリストを参照している、
このへんが細かい点で違うが、まぁ結果的にはそういうことになるからいいか。
このへんが細かい点で違うが、まぁ結果的にはそういうことになるからいいか。
2005/05/05(木) 12:49:13ID:lrCXGanj0
一番大きなコストなのはRockのチェックのはず。
ここをウィルスチェッカー級の早さでチェックできればいうことないんですがねー
シマンテックあたりに相談したらおもしろいかもと煽ってみる
ここをウィルスチェッカー級の早さでチェックできればいうことないんですがねー
シマンテックあたりに相談したらおもしろいかもと煽ってみる
2005/05/06(金) 01:48:15ID:ukefjV1X0
待ちガイルがソニックブームを出すか、サマーソルトを出すかみたいにすれば速くならね?
必殺技が多すぎて大して速くなる訳でもないか。
必殺技が多すぎて大して速くなる訳でもないか。
99>>20で
2005/05/08(日) 15:32:47ID:r8qXmxcZ0 / `、 \ ___|_|」
/ ̄ ̄\ | ヽ / |__ |
'" ̄ヽ ヽ!! |,," ヘ < | |
ヽ ゙!!!、 ,,-' iヽ── / 丿 /
|||l ゙゙ヽ、ll,,‐''''"" | ヽ||||||||| ヽ/
|||l ___,,,,,, ゙l ,,,,, \||||||||| _
||!' /ヽ、 ;::''“”“~`゙>┴<;''“”~` /\ |'" ̄| | |
\ / |ミミヽ──‐'"ノ≡- ゙'──''彡| |、 | | | |
 ̄| |ミミミ/"~( ,-、 ,:‐、 ) '彡|| |、/ / | |
ヽ、l| |ミミミ| |、─\\\\ |彡l| |/ /_ | |
\/|l |ミミミ| \_/ ̄\\\\''|l/  ̄/ | |
\ ノ l|ミミミ| \二二\\\\ フ | |
 ̄\ l|ミミミ|  ̄ ̄ ̄\\\\ \ | |
| \ ヽ\ミヽ  ̄ ̄"' \\\\ / |_|
/ \ヽ、ヾ''''ヽ、_____//\\\\ /
/ ヽ ゙ヽ─、──────'/| \\\\ ̄/
. / ゙\ \ / / \__\\\\
───'''" ̄ ̄ ゙゙̄ヽ、__,,/,-'''" \\\\
/ ̄ ̄\ | ヽ / |__ |
'" ̄ヽ ヽ!! |,," ヘ < | |
ヽ ゙!!!、 ,,-' iヽ── / 丿 /
|||l ゙゙ヽ、ll,,‐''''"" | ヽ||||||||| ヽ/
|||l ___,,,,,, ゙l ,,,,, \||||||||| _
||!' /ヽ、 ;::''“”“~`゙>┴<;''“”~` /\ |'" ̄| | |
\ / |ミミヽ──‐'"ノ≡- ゙'──''彡| |、 | | | |
 ̄| |ミミミ/"~( ,-、 ,:‐、 ) '彡|| |、/ / | |
ヽ、l| |ミミミ| |、─\\\\ |彡l| |/ /_ | |
\/|l |ミミミ| \_/ ̄\\\\''|l/  ̄/ | |
\ ノ l|ミミミ| \二二\\\\ フ | |
 ̄\ l|ミミミ|  ̄ ̄ ̄\\\\ \ | |
| \ ヽ\ミヽ  ̄ ̄"' \\\\ / |_|
/ \ヽ、ヾ''''ヽ、_____//\\\\ /
/ ヽ ゙ヽ─、──────'/| \\\\ ̄/
. / ゙\ \ / / \__\\\\
───'''" ̄ ̄ ゙゙̄ヽ、__,,/,-'''" \\\\
2005/05/09(月) 21:27:58ID:2gFvXXn20
subject.txtの1行分を256バイト固定長とかにしたら、ランダムアクセスやソートを速くできるかな。
2005/05/10(火) 09:59:41ID:MB/Dkquo0
2005/05/12(木) 12:49:27ID:8ihXrdSb0
>> 101
固定長で Index を付けられるシステムを見たけど、すごいよ。
open(file, index, ...)
write("AA");
write("CC");
write("BB");
index をレコード全体に設定したとして、と上のように書くと、
open(file, index, ...)
read(buf);
read(buf);
read(buf);
とやると、
"AA"
"BB"
"CC"
って読み出せる処理系だった。
データベースなんか要らないわけだ。
UNIX 系ではないのでここでは全く関係ないのではあるが。
固定長で Index を付けられるシステムを見たけど、すごいよ。
open(file, index, ...)
write("AA");
write("CC");
write("BB");
index をレコード全体に設定したとして、と上のように書くと、
open(file, index, ...)
read(buf);
read(buf);
read(buf);
とやると、
"AA"
"BB"
"CC"
って読み出せる処理系だった。
データベースなんか要らないわけだ。
UNIX 系ではないのでここでは全く関係ないのではあるが。
2005/05/13(金) 00:54:36ID:aRboB1hz0
投稿時の並び替えとかレス数の書き換え等が、
アドレス決めうちのメモリコピーのみで可能になるのがメリット?
subject.txtの書き換えなんて元々大したことなさそうだから意味内科。
アドレス決めうちのメモリコピーのみで可能になるのがメリット?
subject.txtの書き換えなんて元々大したことなさそうだから意味内科。
2005/05/13(金) 09:09:29ID:BWd7ZxwZ0
2005/05/16(月) 08:17:39ID:buj4assb0
実際のシステム開発でもそうだけど、運用(障害対応等)や移行を無視した案ってのは、机上の九龍なんだよね
たとえば、datに依存したツールが2ch内外に何本あるのかとか
たとえば、datに依存したツールが2ch内外に何本あるのかとか
106動け動けウゴウゴ2ちゃんねる
2005/05/16(月) 15:59:06ID:HwKEKcal0 >机上の九龍
ウマイ!
ウマイ!
107動け動けウゴウゴ2ちゃんねる
2005/05/16(月) 16:06:31ID:woCxAXtK0 まぁそういうタイトルの漫画あったけどな
108タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 05:05:07ID:YLieYBBt0 まず、はじめに、perl少ししか読めません。スマソ。
文字コード問題。
例えば、WinXPだと、ベースをunicodeで処理すると、高速なんです。
>>45>>49>>52にも指摘があるのですが、その辺の最適化どうでしょうか。
次に、
NGワード.txtを正規表現にする案
-----NGWord.txt------
(?:ぬる|だめ)ぽ
^(?:.\w{2,3}|厨房|てっここ|こっこて|保守|ジュ|て(?:st|すと?)|テスト?|[あ-ん]っ(?:かり|くる)|さいたま)$
fusianasan
tanasin
unko
ウザッ
ウゼェ
うぜぇ
お(?:ま[いえ]|前)ら
---------------
で、これを
a = LineToArray("NGWord.txt"); // 読み込む
r = eval("(" + a.join("|") + ")");
$matched = r.match($In_Strings);
こういうのはどうでしょう。
あと、ぜんぜん関係ないけど、
逆保守(糞スレを保守)ツールに弱すぎると思います。
とりあえず、厨房板をサンプルにしますよ。
具体的には、レス数は適当ですけど、
・130レス以上位に伸びたスレは(伸びるごとに5段階ぐらいで)より落ちないように措置をする。
・20レス以下のものをもっと優先的に落とす。
文字コード問題。
例えば、WinXPだと、ベースをunicodeで処理すると、高速なんです。
>>45>>49>>52にも指摘があるのですが、その辺の最適化どうでしょうか。
次に、
NGワード.txtを正規表現にする案
-----NGWord.txt------
(?:ぬる|だめ)ぽ
^(?:.\w{2,3}|厨房|てっここ|こっこて|保守|ジュ|て(?:st|すと?)|テスト?|[あ-ん]っ(?:かり|くる)|さいたま)$
fusianasan
tanasin
unko
ウザッ
ウゼェ
うぜぇ
お(?:ま[いえ]|前)ら
---------------
で、これを
a = LineToArray("NGWord.txt"); // 読み込む
r = eval("(" + a.join("|") + ")");
$matched = r.match($In_Strings);
こういうのはどうでしょう。
あと、ぜんぜん関係ないけど、
逆保守(糞スレを保守)ツールに弱すぎると思います。
とりあえず、厨房板をサンプルにしますよ。
具体的には、レス数は適当ですけど、
・130レス以上位に伸びたスレは(伸びるごとに5段階ぐらいで)より落ちないように措置をする。
・20レス以下のものをもっと優先的に落とす。
109タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 05:16:54ID:YLieYBBt0 禁止ホストのブラックリストを正規表現にする案とか
110タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 05:28:56ID:YLieYBBt0 わざわざ毎回TXTを読んでるなら、改善の余地あり。
if (fileIsUpdate($NGWordTXT))
rNGWord = makeR($NGWordTXT);
$bufFileLm = ""; // LastModified
function fileIsUpdate(file)
{
$lm = GetFile(file).DateLastModified;
if (fileLm == lm)
return false;
fileLm = lm;
return true;
}
if (fileIsUpdate($NGWordTXT))
rNGWord = makeR($NGWordTXT);
$bufFileLm = ""; // LastModified
function fileIsUpdate(file)
{
$lm = GetFile(file).DateLastModified;
if (fileLm == lm)
return false;
fileLm = lm;
return true;
}
111タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 05:33:30ID:YLieYBBt0 r = eval("/(" + a.join("|") + ")/ig"); // >>108の訂正
112タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 05:38:52ID:YLieYBBt0 WinXPだと、List.TXT を unicode で保存しておくと読み書きが早い。
113タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 05:54:55ID:YLieYBBt0 dat落ちに関しては、準良スレが圧縮ごとにポロポロ落ちていきますよ。
114タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 06:16:00ID:YLieYBBt0 そか、過疎板のdat落ちを調整すれば、もっと人が増えると思う。
115タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 06:32:56ID:YLieYBBt0 eval で 正規表現を使うとき、
空白行を飛ばしておく。
つまり、そうしないと /a||b/ とかになって、
つまりすべての表現にマッチしてしまう。(すべて規制してしまう)
同じように、間違った行を追加するリスクがあります。
たとえば、(?:a||b)とか、
[a-z{2,12}\.dqn\.co\.jp ([a-z]{2,12}\.dqn\.co\.jp )
これを eval すると、危険です。
テスト追加してから、本追加すべきです。
空白行を飛ばしておく。
つまり、そうしないと /a||b/ とかになって、
つまりすべての表現にマッチしてしまう。(すべて規制してしまう)
同じように、間違った行を追加するリスクがあります。
たとえば、(?:a||b)とか、
[a-z{2,12}\.dqn\.co\.jp ([a-z]{2,12}\.dqn\.co\.jp )
これを eval すると、危険です。
テスト追加してから、本追加すべきです。
116未承諾広告※ ◆TWARamEjuA
NGNG 毎回読み込み問題。
→Speedyのおかげ?で船が自爆すると再読込になっているのかな。
うにコード処理。
→Perl5.8.x以降、内部ではそうなっています。なので、euc-jpにしたりしても同様な負荷が掛かるかも。
正規表現の誤登録。
→配布する前。登録/変更の際にチェックしています。(なんでもRockチェック)
|(or)の利用。
→BBRの絡みがあるので現状では。。。
→Speedyのおかげ?で船が自爆すると再読込になっているのかな。
うにコード処理。
→Perl5.8.x以降、内部ではそうなっています。なので、euc-jpにしたりしても同様な負荷が掛かるかも。
正規表現の誤登録。
→配布する前。登録/変更の際にチェックしています。(なんでもRockチェック)
|(or)の利用。
→BBRの絡みがあるので現状では。。。
117タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 07:29:52ID:YLieYBBt0 OK
118タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 07:45:59ID:YLieYBBt0 @Rock_word をグローバルにして LastModified 使うってのはどうです?
2005/05/17(火) 08:12:31ID:8VTiZqr70
なにこの低脳('A`)
2005/05/17(火) 10:34:17ID:dccFnq280
朝っぱらから元気ですなぁ
121未承諾広告※ ◆TWARamEjuA
NGNG2005/05/17(火) 13:38:11ID:yss/U/KY0
とりあえずISBN4-87311-130-7のフクロウ本は読んでないだろ。この人。
123FOX ★
2005/05/17(火) 13:41:06ID:???0 毎回読み込み問題。
→Speedyのおかげ?で船が自爆すると再読込になっているのかな。
なってるなってる
→Speedyのおかげ?で船が自爆すると再読込になっているのかな。
なってるなってる
124タソキ@妄想系統 ◆Ver7J.....
2005/05/17(火) 20:23:58ID:YLieYBBt0 なるほど、Rockリストも出航時に読み込みですか。
>>29 >@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;
ここで bbs.cgi が呼び出されるたびに jcode を呼びまくっていると思いました。
具体的には、 Rockリストの数 x3回以上、最低でも600回以上は呼んでいると理解しています。
>>32 >リストには上限を作る (たとえば 200)
jcode も船が出航する際にだけ呼びまくればいかがでしょうか。
それとも、>>65 の改訂IsKoukoku は既に稼動済みですか?
>>119
未承諾広告※ ◆TWARamEjuA さん、丁寧なレスをありがとうございます。
で許せ
>>120 悪夢で目が覚めて気づいたらこんなところでレスをしていました。
>>122 教唆thx スマソ そんな鈍器みたいな本は読んだことないんですけど、
明示的な指摘をお願いします。あと、ID がウキョー。
>>29 >@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;
ここで bbs.cgi が呼び出されるたびに jcode を呼びまくっていると思いました。
具体的には、 Rockリストの数 x3回以上、最低でも600回以上は呼んでいると理解しています。
>>32 >リストには上限を作る (たとえば 200)
jcode も船が出航する際にだけ呼びまくればいかがでしょうか。
それとも、>>65 の改訂IsKoukoku は既に稼動済みですか?
>>119
未承諾広告※ ◆TWARamEjuA さん、丁寧なレスをありがとうございます。
で許せ
>>120 悪夢で目が覚めて気づいたらこんなところでレスをしていました。
>>122 教唆thx スマソ そんな鈍器みたいな本は読んだことないんですけど、
明示的な指摘をお願いします。あと、ID がウキョー。
125埼玉mikky ◆jM/TIxxEd.
2005/05/17(火) 21:31:16ID:w7QmQGw30 。
126動け動けウゴウゴ2ちゃんねる
2005/05/17(火) 22:37:03ID:JHtbUZVW0 http://www.toshinari.net/ここのCGIを改造してサブスクライバIDや固体情報を取得してみる方法はある?
127未承諾広告※ ◆TWARamEjuA
NGNG128タソキ@妄想系統 ◆Ver7J.....
2005/05/18(水) 08:14:12ID:lWek53Vj0 出航時に、ついでに、
# 不正 NG ワードがあったときは splice関数で除去しておく♪
eval { $In_Strings =~m<$NG_word> };
splice(@Rock_word, i, 1); # i は配列のインデックス
とかどうでしょう?
perlがわからないのですが、
@Rock_word に splice が使えると解釈しています。
当然、上記のコードは雰囲気だけ醸し出しているってことでお願いします。
ほかには、[5,6,7]は[5]にしてもいいように見えますけど、合ってますか?
# 不正 NG ワードがあったときは splice関数で除去しておく♪
eval { $In_Strings =~m<$NG_word> };
splice(@Rock_word, i, 1); # i は配列のインデックス
とかどうでしょう?
perlがわからないのですが、
@Rock_word に splice が使えると解釈しています。
当然、上記のコードは雰囲気だけ醸し出しているってことでお願いします。
ほかには、[5,6,7]は[5]にしてもいいように見えますけど、合ってますか?
129タソキ@妄想系統 ◆Ver7J.....
2005/05/18(水) 08:16:15ID:lWek53Vj0130タソキ@妄想系統 ◆Ver7J.....
2005/05/18(水) 08:18:23ID:lWek53Vj0 外でやると、
splice(@FOX_Ro54, i, 1); # i は配列のインデックス
です。
splice(@FOX_Ro54, i, 1); # i は配列のインデックス
です。
131タソキ@妄想系統 ◆Ver7J.....
2005/05/18(水) 08:38:56ID:lWek53Vj0 偽perl言語で書くとこんな感じですよ。
i = 0, n = @FOX_Ro54.length;
while (i < n)
if (eval { $In_Strings =~m<@FOX_Ro54[i][0]> })
splice((@FOX_Ro54, i, 1);
else
i++;
もしくは
for (i = 0; i < n; i++) {
if (eval { $In_Strings =~m<$@FOX_Ro54[i][0]> }) {
splice(@FOX_Ro54, i, 1);
i--;
continue;
}
i = 0, n = @FOX_Ro54.length;
while (i < n)
if (eval { $In_Strings =~m<@FOX_Ro54[i][0]> })
splice((@FOX_Ro54, i, 1);
else
i++;
もしくは
for (i = 0; i < n; i++) {
if (eval { $In_Strings =~m<$@FOX_Ro54[i][0]> }) {
splice(@FOX_Ro54, i, 1);
i--;
continue;
}
132タソキ@妄想系統 ◆Ver7J.....
2005/05/18(水) 08:42:23ID:lWek53Vj0 違った、n にすると配列の長さの変動に対応できないので、
n は全部 @FOX_Ro54.length に置き換えですね。
n は全部 @FOX_Ro54.length に置き換えですね。
133FOX ★
2005/05/18(水) 14:20:46ID:???0 それらは各サーバに配る前にやっておくべきでは?
134未承諾広告※ ◆TWARamEjuA
NGNG >>133
やってますやってます(照)
# NG ワードのエラーチェック
eval {
my $Test_String = "This is a TEST.";
$Test_String =~ m<$FORM{$key}>;
};
if ($@) { # エラーがあればエラー
my $message = $@;
$message =~ s/^(.*) at .*$/$1/;
Error('22',$message);
}
# code は危険だから鰓に。
Error('23') if $FORM{$key} =~ /\(\?+?\{.+}\)/;
# コメントだけやん(汗)@2004/11/13
Error('26', <<"EOS") if $FORM{$key} =~ /^\(\?#[^\)]+?\)?$/;
<dl>
<dt>登録しようとしたNGワード
<dd><span class="NG_word">$FORM{$key}</span>
</dl>
EOS
# なんでも NG をチェックしてみる。改
my $Match_over = eval {
my $count;
my $Test_Strings =<<"EOS";
長いので省略。。
やってますやってます(照)
# NG ワードのエラーチェック
eval {
my $Test_String = "This is a TEST.";
$Test_String =~ m<$FORM{$key}>;
};
if ($@) { # エラーがあればエラー
my $message = $@;
$message =~ s/^(.*) at .*$/$1/;
Error('22',$message);
}
# code は危険だから鰓に。
Error('23') if $FORM{$key} =~ /\(\?+?\{.+}\)/;
# コメントだけやん(汗)@2004/11/13
Error('26', <<"EOS") if $FORM{$key} =~ /^\(\?#[^\)]+?\)?$/;
<dl>
<dt>登録しようとしたNGワード
<dd><span class="NG_word">$FORM{$key}</span>
</dl>
EOS
# なんでも NG をチェックしてみる。改
my $Match_over = eval {
my $count;
my $Test_Strings =<<"EOS";
長いので省略。。
135タソキ@妄想系統 ◆Ver7J.....
2005/05/18(水) 19:42:49ID:lWek53Vj0 >>133-134 なーるほど
$FOX_Ro54 と @Rock_word を分けたままで、[5,6,7]のmanmarで、作ってみました。
例によって、perlっぽいやつになっております。
# 外で、 @Rock_word を regExpでコンパイルしておく。
foreach (@Rock_word)
$_[0] = qr/$_->[0]/;
# では NG ワードのチェック。
my $n = $Rock_word;
foreach my $i ( 0 .. $n )
if ($In_Strings =~ /$Rock_word->[$i]->[0]/)
return $i; # インデックスを返す。
return -1;
}
$nKoukoku = IsKoukoku();
if (0 <= $nKoukoku) # NG ワードを含む
$FOX_Ro54->[$nKoukoku]->[5]; # NG ワードを参照する
else
$FOX_Ro54 と @Rock_word を分けたままで、[5,6,7]のmanmarで、作ってみました。
例によって、perlっぽいやつになっております。
# 外で、 @Rock_word を regExpでコンパイルしておく。
foreach (@Rock_word)
$_[0] = qr/$_->[0]/;
# では NG ワードのチェック。
my $n = $Rock_word;
foreach my $i ( 0 .. $n )
if ($In_Strings =~ /$Rock_word->[$i]->[0]/)
return $i; # インデックスを返す。
return -1;
}
$nKoukoku = IsKoukoku();
if (0 <= $nKoukoku) # NG ワードを含む
$FOX_Ro54->[$nKoukoku]->[5]; # NG ワードを参照する
else
2005/05/19(木) 00:50:32ID:3hYRxH7n0
正規表現をコンパイルしておくのはかなりよさそう。
137タソキ@妄想系統 ◆Ver7J.....
NGNG # 入力要素の体裁(コントロールコードや<>を除く)
ここの正規表現もコンパイルするといいかもしれません。
文字列が1000文字以上の場合があるからです。
ここの正規表現もコンパイルするといいかもしれません。
文字列が1000文字以上の場合があるからです。
138タソキ@妄想系統 ◆Ver7J.....
NGNG FOX Cawaii
投稿内容が大きすぎます!") if $ENV{'CONTENT_LENGTH'} > 16000;
ここは、シビアに、
256 FROM 256 mail 4096 MESSAGE 256 subject 10 key 10 time
足して4884
6000-7000ぐらいでどうかと思います。
投稿内容が大きすぎます!") if $ENV{'CONTENT_LENGTH'} > 16000;
ここは、シビアに、
256 FROM 256 mail 4096 MESSAGE 256 subject 10 key 10 time
足して4884
6000-7000ぐらいでどうかと思います。
139タソキ@妄想系統 ◆Ver7J.....
NGNG http://dso.2ch.net/test/read.cgi/myanmar/1101890385/7
bbq&bbm(焼済) > barbon(焼) のほうが、いいかも。
bbq&bbm(焼済) > barbon(焼) のほうが、いいかも。
140タソキ@妄想系統 ◆Ver7J.....
NGNG >>139はそういえばクロール規制が入ったから、効果不明です。
141タソキ@妄想系統 ◆Ver7J.....
NGNG クロールbarbon > bbq&bbm(焼済) > カキコbarbon(焼)
142タソキ@妄想系統 ◆Ver7J.....
NGNG でもbarbonはリスト数が少ないからそれいいのか。スマソ
143タソキ@妄想系統 ◆Ver7J.....
NGNG では、bbq&bbmの正規表現のコンパイルをする。
144タソキ@妄想系統 ◆Ver7J.....
NGNG # POST入力情報を取得($FORM{}に格納)
ここの正規表現も>>137と同じですね。
ここの正規表現も>>137と同じですね。
2005/05/22(日) 10:36:19ID:bxf7r0yz0
どうして纏めて書けないんだ。
146タソキ@妄想系統 ◆Ver7J.....
NGNG 纏めて書く理由がないから。
2005/05/22(日) 11:01:51ID:bxf7r0yz0
無駄に消費するなら纏めてかけ。
独り言はチラシの裏
独り言はチラシの裏
148タソキ@妄想系統 ◆Ver7J.....
NGNG 「纏めて書くと見やすいよ。少しづつ挑戦してみなよ」
とでも励まされれば、この世代は喜んで挑戦すると思います。
反対に、「どうして纏めて書けないんだ。この人。」
などと、具体的な指摘や理由がなく、怒り・呵責な表現の場合には、
誰しもが、毎回イヤイヤ纏めるか、その必要がない場合には反発すると思います。
コーチングなどうまく人を参加させるマネージャーの基本だと思います。
とでも励まされれば、この世代は喜んで挑戦すると思います。
反対に、「どうして纏めて書けないんだ。この人。」
などと、具体的な指摘や理由がなく、怒り・呵責な表現の場合には、
誰しもが、毎回イヤイヤ纏めるか、その必要がない場合には反発すると思います。
コーチングなどうまく人を参加させるマネージャーの基本だと思います。
2005/05/22(日) 11:20:46ID:bxf7r0yz0
別に励ますつもりも無い。それに俺には君のマネージャじゃない。
チャット感覚で連投するくらいならまとめた方がいいし、
独り言のようにさえ見えてしまう。
最初の意見
やった事
結果
それからでてきた疑問
それに対する自分なりの考察
それだけ書けば十分だろう。
自分ひとりで完結することなら、わざわざ>>143のように宣言する必要も無いし。
チャット感覚で連投するくらいならまとめた方がいいし、
独り言のようにさえ見えてしまう。
最初の意見
やった事
結果
それからでてきた疑問
それに対する自分なりの考察
それだけ書けば十分だろう。
自分ひとりで完結することなら、わざわざ>>143のように宣言する必要も無いし。
150タソキ@妄想系統 ◆Ver7J.....
NGNG ですよね、僕も部下じゃないし。
151タソキ@妄想系統 ◆Ver7J.....
NGNG2005/05/22(日) 11:39:54ID:bxf7r0yz0
なるほど。自分に足りないものが良くわかるな。どうも。
2005/05/22(日) 16:31:14ID:uY2IH94F0
どうでもいいが、ブレストとかコーチング以前に「協調性」を常識レベルにしてくれ。
協調性がある人間になってからブレストだとかを言い出すもんだ。
協調性がある人間になってからブレストだとかを言い出すもんだ。
154動け動けウゴウゴ2ちゃんねる
2005/05/22(日) 22:06:43ID:7OBk4/8A0 ねえ、いい加減、cgiからphpにしてみたら?
2005/05/22(日) 22:15:24ID:1Wzo/8RX0
言い出しっぺの法則が発動しました
2005/05/22(日) 22:54:44ID:uY2IH94F0
>154
・「cgiからphp」って何ですか? perlからphpにしてみたらというなら意味が分かりますけど
・mod_perlとmod_phpの速度差が大して無いことについて説明して
・「cgiからphp」って何ですか? perlからphpにしてみたらというなら意味が分かりますけど
・mod_perlとmod_phpの速度差が大して無いことについて説明して
2005/05/23(月) 01:13:23ID:8CnNC34o0
↓ここでjspを提案する香具師登場
2005/05/23(月) 04:54:09ID:Gx0M/2C00
│ ,
│ /⌒⌒⌒\
│ ≡ /∽∽∽∽∽\
│ ∽∽∽∽∽∽∽∽
│≡ , ⌒⌒ヽ ||
│ リノヽ、卯) |
│ ≡ ,9、゚ ヮ゚ノミ |
│ Oミi本iミつノ
↓ ノ(_リ⊃⊃
│ /⌒⌒⌒\
│ ≡ /∽∽∽∽∽\
│ ∽∽∽∽∽∽∽∽
│≡ , ⌒⌒ヽ ||
│ リノヽ、卯) |
│ ≡ ,9、゚ ヮ゚ノミ |
│ Oミi本iミつノ
↓ ノ(_リ⊃⊃
2005/05/23(月) 06:31:23ID:lGl7TkL40
↓jspって何?PSPの新バージョン?
2005/05/23(月) 06:37:48ID:O0qd3lZA0
|
| _ ∩
| ⊂/ ノ )
| / / ∨
↓ し'⌒∪
| _ ∩
| ⊂/ ノ )
| / / ∨
↓ し'⌒∪
161タソキ@妄想系統 ◆Ver7J.....
2005/05/23(月) 07:15:41ID:26kSalUN0 考察としては、その辺がコンパイルしてあれば、
サイバーシンドロームとかから串を2000本位集めてきて、
マルチスレッド型でDOS攻撃しても屁でもなくなるだろうってことですよ。
>>153 協調性でググッたら余計に混乱しました。
協調性度チェックテスト ポイント:40/100
http://www.heartful-smile.com/07/07-342.html
ちょっとマイペースで気分屋さん的なところがあるかも
サイバーシンドロームとかから串を2000本位集めてきて、
マルチスレッド型でDOS攻撃しても屁でもなくなるだろうってことですよ。
>>153 協調性でググッたら余計に混乱しました。
協調性度チェックテスト ポイント:40/100
http://www.heartful-smile.com/07/07-342.html
ちょっとマイペースで気分屋さん的なところがあるかも
2005/05/23(月) 07:49:51ID:bJCCkeuw0
運営はとても参考になります
嵐の
嵐の
163タソキ@妄想系統 ◆Ver7J.....
2005/05/23(月) 08:16:15ID:26kSalUN0164動け動けウゴウゴ2ちゃんねる
2005/05/23(月) 08:20:24ID:bJCCkeuw0 .,, ,, __ ,,,_ _,,,
,i´'i、 ./ヽ | | ,、 | │ 〔'l、ヽ
ヽ. ,〉,/` / r、| | ,,i´ ゙l _ノ .゙l--,, |,,》,ヾ
゙'ジ ,/` l゙ ゜ ド .、 | | ゙l| |
,,--′ ‘"゙"゙゙l `'i、 .,イ l └I |゙゙゙} .|| |
|、 ,,,---" / / | | | │ .| |l゙ .l
ト'ア ./ ,/ | | | | l゙ | |゙l .| .
| l゙ 、 'i、 | | | _、 | l゙ l゙ .| }-'''.
| ヽ,,--'゙゙| ll! | | '" | .l゙ .l゙ ノ |
ヽ _,ノ | | ゙l │〈,. | l 丿
゙'''ー'''" ‘゙゙" ゙"″ ゙""'''"
/.──┬ /⌒ヽ
/| ┌─┐| ノ
| └─┘| |
| J ○
,i´'i、 ./ヽ | | ,、 | │ 〔'l、ヽ
ヽ. ,〉,/` / r、| | ,,i´ ゙l _ノ .゙l--,, |,,》,ヾ
゙'ジ ,/` l゙ ゜ ド .、 | | ゙l| |
,,--′ ‘"゙"゙゙l `'i、 .,イ l └I |゙゙゙} .|| |
|、 ,,,---" / / | | | │ .| |l゙ .l
ト'ア ./ ,/ | | | | l゙ | |゙l .| .
| l゙ 、 'i、 | | | _、 | l゙ l゙ .| }-'''.
| ヽ,,--'゙゙| ll! | | '" | .l゙ .l゙ ノ |
ヽ _,ノ | | ゙l │〈,. | l 丿
゙'''ー'''" ‘゙゙" ゙"″ ゙""'''"
/.──┬ /⌒ヽ
/| ┌─┐| ノ
| └─┘| |
| J ○
2005/05/23(月) 08:21:48ID:wiySXr/N0
こうやって関係の無いどうでもいい話を保身のために持ち込むのが荒らしなんだよな。
166タソキ@妄想系統 ◆Ver7J.....
2005/05/23(月) 08:23:50ID:26kSalUN0 >>165
オマエモナー
オマエモナー
2005/05/23(月) 08:24:23ID:ZKjUUOu80
運営に気に入られようったって他所で荒らしやってんじゃ意味無いんだぞ<雑音先生
2005/05/23(月) 08:31:39ID:wiySXr/N0
>>166
何がお前もなんでしょうかね。
何がお前もなんでしょうかね。
169タソキ@妄想系統 ◆Ver7J.....
2005/05/23(月) 08:32:13ID:26kSalUN0 もう2年ぐらい荒らしやってないけど、
あなたは運営板の古い人なの?
あなたは運営板の古い人なの?
2005/05/23(月) 08:34:17ID:wiySXr/N0
今現にここで釣られて荒らしている事実
171タソキ@妄想系統 ◆Ver7J.....
2005/05/23(月) 08:37:39ID:26kSalUN0 どっちかっていうと、気に入られたっていうより、
率直に削除人が連携して荒らしを煽る風土をどうにかできないかって思ったね。
うまく提示できたね。
率直に削除人が連携して荒らしを煽る風土をどうにかできないかって思ったね。
うまく提示できたね。
2005/05/23(月) 08:43:24ID:wiySXr/N0
この程度もスルーしないのに提示したとか言っちゃってるのが笑える。
積み重ねてきたものが無い奴ほど 〜は使えない とか言うのを信じて自分はそうじゃないと安心することでしか
自分の中での自分の地位を確立出来んのだよな。
積み重ねてきたものが無い奴ほど 〜は使えない とか言うのを信じて自分はそうじゃないと安心することでしか
自分の中での自分の地位を確立出来んのだよな。
173タソキ@妄想系統 ◆Ver7J.....
2005/05/23(月) 08:48:35ID:26kSalUN0 他の板まで連携したまま煽りに行く人を数人認識してるからさ。
つまり、ID:wiySXr/N0の何か行動を変化させたいんだよ。
そこが凄く引っかかってここに来てみたわけ。
あと、トオルさんになにか力を貸したい。
つまり、ID:wiySXr/N0の何か行動を変化させたいんだよ。
そこが凄く引っかかってここに来てみたわけ。
あと、トオルさんになにか力を貸したい。
2005/05/23(月) 08:49:38ID:ItxmM2UD0
何でもいいけど雑談なら下げて。朝忙しいのに読んじゃうから。
2005/05/23(月) 08:53:11ID:wiySXr/N0
俺がそいつだとでも思ってんのかね。
煽ってる奴は同一人物でいつもまとまって行動しているとでも言うのか。
煽ってる奴は同一人物でいつもまとまって行動しているとでも言うのか。
176タソキ@妄想系統 ◆Ver7J.....
2005/05/23(月) 08:53:51ID:26kSalUN02005/05/23(月) 08:55:05ID:DksikMMa0
いつの間にやら、変なのに居付かれてしまいましたなぁ('A`)
2005/05/23(月) 08:57:56ID:wiySXr/N0
179タソキ@妄想系統 ◆Ver7J.....
2005/05/23(月) 08:58:24ID:26kSalUN0 とにかくオレを2年以上前のことを持ち出して、
ウォッチしてたまに煽る削除人が何人かいるわけだろ?
オレの何が君を一番傷つけたの?
ウォッチしてたまに煽る削除人が何人かいるわけだろ?
オレの何が君を一番傷つけたの?
2005/05/23(月) 09:01:04ID:DksikMMa0
あー、恒例の人格批判かー('A`)
どっか行ってー
どっか行ってー
2005/05/23(月) 09:02:34ID:wiySXr/N0
訳がわからん。
俺は君のことなんぞここでしか見てないし、
煽ってる奴は削除人だなんてなんて短絡思考だ。
俺は君のことなんぞここでしか見てないし、
煽ってる奴は削除人だなんてなんて短絡思考だ。
182タソキ@妄想系統 ◆Ver7J.....
2005/05/23(月) 09:27:09ID:26kSalUN0 >>181
そうか。じゃあ、俺もなぜ運営の人に煽られまくるのか訳がわからんけど、
僕は荒らしという人格としてここに参加したのだけれど、
それが気に入られなかったということですよね。
煽ってる奴は削除人だなんての、ここの96とか、
http://ex.2ch.net/wall/kako/1005/10056/1005649648.html
他板で、こういうこともあったんですよ。
972 名前: 妄想 04/07/19 14:23 ID:1u1bJEHx
もし俺に恨みがあるとしたら、あぼーん砲のボケカスしかいないし、
そいつの名前は今いる人★の可能性が高い。
975 名前: 名無しさん 04/07/19 14:25 ID:???
>>972
憶測でもの言うな
976 名前: 名無しさん 04/07/19 14:25 ID:???
>>972
何言ってんだこのアホは?
そうか。じゃあ、俺もなぜ運営の人に煽られまくるのか訳がわからんけど、
僕は荒らしという人格としてここに参加したのだけれど、
それが気に入られなかったということですよね。
煽ってる奴は削除人だなんての、ここの96とか、
http://ex.2ch.net/wall/kako/1005/10056/1005649648.html
他板で、こういうこともあったんですよ。
972 名前: 妄想 04/07/19 14:23 ID:1u1bJEHx
もし俺に恨みがあるとしたら、あぼーん砲のボケカスしかいないし、
そいつの名前は今いる人★の可能性が高い。
975 名前: 名無しさん 04/07/19 14:25 ID:???
>>972
憶測でもの言うな
976 名前: 名無しさん 04/07/19 14:25 ID:???
>>972
何言ってんだこのアホは?
2005/05/23(月) 09:35:08ID:wiySXr/N0
俺は運営の人じゃないし、他板で972のような書き込みを見たら975と同じ反応をするだろうな。
それに96がどうして君を煽ってるのは削除人だっていう証拠になる。
それに96がどうして君を煽ってるのは削除人だっていう証拠になる。
184ヾ(゚パ)ノ ◆f0.zuburi6
NGNG2005/05/23(月) 09:42:13ID:wiySXr/N0
>>184
ごめんなさい。
ごめんなさい。
NGNG
sage
187讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG 転載しておきます
408: ◆TWARamEjuA 2005/05/30 00:22:59 in+4hgAJ0 [sage]
さてさて。
Rock54にて仮に対応をしてきたのですが、そろそろBBRが破綻しそうになって参りました(滂沱)
といいますのも、BBRに登録されているクエリの大半が、このウイルス関連のものに埋まってきましたものでして。
実のところ、DB_File::BTREE にしているにもかかわらずその容量が300MBにも達しております。
そこで願わくば、このウイルス対策として個別のルーチンにて対応頂けるとありがたいかと思いまして。。。>bbs.cgiの中の人
さて如何なものでしょうか。いろいろなご意見をお待ちしておりますm
408: ◆TWARamEjuA 2005/05/30 00:22:59 in+4hgAJ0 [sage]
さてさて。
Rock54にて仮に対応をしてきたのですが、そろそろBBRが破綻しそうになって参りました(滂沱)
といいますのも、BBRに登録されているクエリの大半が、このウイルス関連のものに埋まってきましたものでして。
実のところ、DB_File::BTREE にしているにもかかわらずその容量が300MBにも達しております。
そこで願わくば、このウイルス対策として個別のルーチンにて対応頂けるとありがたいかと思いまして。。。>bbs.cgiの中の人
さて如何なものでしょうか。いろいろなご意見をお待ちしておりますm
2005/05/30(月) 01:37:45ID:UtFyGIqu0
思い切ってPHPにしてみては?
ApacheにPHPモジュールを組み込んだ状態でコンパイルしてしまえば
オーバヘッドも少なくなりますし。
ApacheにPHPモジュールを組み込んだ状態でコンパイルしてしまえば
オーバヘッドも少なくなりますし。
2005/05/30(月) 03:45:46ID:UtFyGIqu0
今ってDSOでしたっけ?
1.bbs.cgiをApacheの組み込んでしまう
2.httpデーモンをカーネルに入れてしまう
今みたいな山田君の襲撃が今後起こらないとも限らないので
汎用性を考えればPHPですね・・・(とPHPを強く推してみる。
PHPをコンパイルして組み込めば更に早くなりますしね。
Denyテーブルってどれぐらいの容量(レコード数)を管理されてるのですか?
今の攻撃で正規表現で弾いてれば、これまたレスポンスが悪くなりますし。。
1.bbs.cgiをApacheの組み込んでしまう
2.httpデーモンをカーネルに入れてしまう
今みたいな山田君の襲撃が今後起こらないとも限らないので
汎用性を考えればPHPですね・・・(とPHPを強く推してみる。
PHPをコンパイルして組み込めば更に早くなりますしね。
Denyテーブルってどれぐらいの容量(レコード数)を管理されてるのですか?
今の攻撃で正規表現で弾いてれば、これまたレスポンスが悪くなりますし。。
2005/05/30(月) 04:41:07ID:QME7DIPQ0
汎用性って必要?
2005/05/30(月) 05:44:59ID:UtFyGIqu0
>>193
それからそれから、リストの並びを「ヒット率の高いもの順」に替えてみました。
引っかかるのは簡単に引っかかるようにと。
でも「善良な書き込みほど負荷が掛かる」に対してはなにも太刀打ち出来ないでいます(泪)
それからそれから、リストの並びを「ヒット率の高いもの順」に替えてみました。
引っかかるのは簡単に引っかかるようにと。
でも「善良な書き込みほど負荷が掛かる」に対してはなにも太刀打ち出来ないでいます(泪)
2005/05/30(月) 08:35:07ID:NO7z0FeU0
>>187
RockDBは何かしらの形でストライピングがいりますねぇ
RockDBは何かしらの形でストライピングがいりますねぇ
2005/05/30(月) 09:28:56ID:GeNtN3/e0
2005/05/30(月) 10:50:40ID:MS5mtWpH0
198root▲ ★
NGNG ということで、また、じわじわと増えてきたですね。
http://mumumu.mu/mrtg/mrtg-rrd.cgi/bbqbbx/bbr.html
Rockは「最後の手段」なので、そこに行く前に止める
(こないだおじさんがやった対症療法みたいに)必要がありそう。
あわせて >>187 >>193-194 が当面の課題か。
http://mumumu.mu/mrtg/mrtg-rrd.cgi/bbqbbx/bbr.html
Rockは「最後の手段」なので、そこに行く前に止める
(こないだおじさんがやった対症療法みたいに)必要がありそう。
あわせて >>187 >>193-194 が当面の課題か。
2005/05/30(月) 15:42:43ID:oT4SOxuh0
とりあえずいつもの「ハンマーをもらった子どもは何でも釘に見える」の啓蒙だよー
PerlよりPHPの方が軽くて速いは本当?(CGI編)
http://www.hippo2000.info/perl/tbench.htm
「Perlは遅いし大規模開発に向かない」というのはPerl4時代の話。
PHPだから早いわけでもない。
どちらかというと「どっちに慣れた人がたくさんいるか」という運用面での話しになる。
PerlよりPHPの方が軽くて速いは本当?(CGI編)
http://www.hippo2000.info/perl/tbench.htm
「Perlは遅いし大規模開発に向かない」というのはPerl4時代の話。
PHPだから早いわけでもない。
どちらかというと「どっちに慣れた人がたくさんいるか」という運用面での話しになる。
2005/05/30(月) 16:14:39ID:UtFyGIqu0
NGNG
>>200
じゃ数百回のループテストを公開でやってみたら?
じゃ数百回のループテストを公開でやってみたら?
2005/05/30(月) 20:42:43ID:K+Y+oK7W0
phpってソケット使える?
もし使えるなら実験してもいいよ
注意:php単独で使えるという前提 ( =~ apache等のwebを使用しない)
もし使えるなら実験してもいいよ
注意:php単独で使えるという前提 ( =~ apache等のwebを使用しない)
2005/05/30(月) 22:46:17ID:UtFyGIqu0
2005/05/30(月) 23:17:01ID:31RcjPGy0
亜種の出る速度から考えて正直対症療法に意味があるとは思えないけど
2005/05/30(月) 23:17:38ID:31RcjPGy0
参考になる実験結果も持ってないのにどうしてそんなphpを力いっぱい押せるんだか
2005/05/30(月) 23:47:10ID:cvk6biLo0
っていうか、どんな言語でも(たとえ水平マイクロアセンブラでも)、今から新規に作り直せば、
今のbbs.cgiよりきれいに違いない
そんなの自慢にもならん
今のbbs.cgiよりきれいに違いない
そんなの自慢にもならん
2005/05/30(月) 23:55:23ID:RGXs7Ntx0
作り直せというのは大分前からのこと。
仕様変更だって、1ヶ月前から告知したら専ブラも対応できるのに。
面倒なんですと。
仕様変更だって、1ヶ月前から告知したら専ブラも対応できるのに。
面倒なんですと。
2005/05/31(火) 00:08:01ID:NuMPfTs10
個人的な負荷実験結果でこの際100万アクセスって言われてる
ここでPHPの有効性を実際に実験したいってのが本音です。
ここでPHPの有効性を実際に実験したいってのが本音です。
2005/05/31(火) 00:26:27ID:jGPtv+4B0
口でいう奴よりも手を動かす奴のほうがすごい法則
2005/05/31(火) 03:42:02ID:TIbffBNl0
しこしこ
2005/05/31(火) 11:10:12ID:86o0U8t20
どのみち山田対策のからみもあって大幅な仕様変更やらなきゃいけないような悪寒がするけど・・・・
2005/05/31(火) 11:12:53ID:pIF7DXcf0
PHP使ってるサイトを良く見ますけど、どのサイトもクソ重いです…。
いかにPHPが優れていようと今の2chのcgiより重かったら何にもならないです。
いかにPHPが優れていようと今の2chのcgiより重かったら何にもならないです。
2005/05/31(火) 11:21:28ID:0jYZZ9Q30
phpも便利な言語だし好きだけどperlと比べてそれほどメリットはないよ。
perl捨ててphpにしようとかphp妄信者の寝言はもうたくさん。
それでもphpにしようとかいうひとはphpでbbs.cgi,read.cgi相当の祖体ぐらいだしてからにしてくれよ。
perl捨ててphpにしようとかphp妄信者の寝言はもうたくさん。
それでもphpにしようとかいうひとはphpでbbs.cgi,read.cgi相当の祖体ぐらいだしてからにしてくれよ。
2005/05/31(火) 11:24:48ID:0jYZZ9Q30
2005/05/31(火) 11:32:53ID:jGPtv+4B0
>214
御託はいいからさ
>213を嫁。
御託はいいからさ
>213を嫁。
2005/05/31(火) 11:36:19ID:0jYZZ9Q30
2005/05/31(火) 11:50:14ID:86o0U8t20
確かにphpは3.0が出た当時はまだperlに比べてアドバンテージがあった。
apacheモジュール実装然り、初心者にわかりやすく多くのDBとの連携のあるAPI群。
この当時ってperl5がでるかでないかぐらいじゃなかったかしら。
基本的にperlとjavaの弟分みたいなところがあるし、
両者がチューンがすすみ、PerlもSpeedyCGIやmod_perlなどのラッパーが充実してきた今、あまりアドバンテージは感じられないな。
apacheモジュール実装然り、初心者にわかりやすく多くのDBとの連携のあるAPI群。
この当時ってperl5がでるかでないかぐらいじゃなかったかしら。
基本的にperlとjavaの弟分みたいなところがあるし、
両者がチューンがすすみ、PerlもSpeedyCGIやmod_perlなどのラッパーが充実してきた今、あまりアドバンテージは感じられないな。
2005/05/31(火) 11:53:50ID:86o0U8t20
スクリプト言語の位置づけとコンパイル言語の位置づけを比較すると
shはアセンブラ
perlはC
rubyはC++/Java
phpはVB
ってところなのかな。
shはアセンブラ
perlはC
rubyはC++/Java
phpはVB
ってところなのかな。
2005/05/31(火) 12:01:03ID:0jYZZ9Q30
2005/05/31(火) 12:09:41ID:QiMRSrT20
言語の優位性語るスレじゃないのに
根本的な解決策にはならんでしょ
根本的な解決策にはならんでしょ
2005/05/31(火) 12:20:06ID:86o0U8t20
2005/05/31(火) 16:56:28ID:iy9dpxZMO
Perl信者テライタスwwwwwww
224stream ◆ap/yuix/tw
NGNG またいつものパターンですか
225root▲ ★
NGNG >>215
今は全部、speedycgiにしました。
perlccはしょせん、単なる毎回ロードするバイナリ。
で、ここでは「中身を何で書くか」といった、手段のことを言うんではなくて、
まずは目的のことを話してほしいなと。
まずは目的があったうえで、それにあった手段を選ぶわけで。
今は全部、speedycgiにしました。
perlccはしょせん、単なる毎回ロードするバイナリ。
で、ここでは「中身を何で書くか」といった、手段のことを言うんではなくて、
まずは目的のことを話してほしいなと。
まずは目的があったうえで、それにあった手段を選ぶわけで。
2005/05/31(火) 17:13:26ID:86o0U8t20
で、現状の問題点
・より確実な山田対策
・IsKoukoku
違ったら指摘よろ
あとなんかありましたっけ?
・より確実な山田対策
・IsKoukoku
違ったら指摘よろ
あとなんかありましたっけ?
227讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG それでおk
2005/05/31(火) 21:18:29ID:xnXA6jy30
山田について説明希望
2005/05/31(火) 21:20:19ID:aHPOndkO0
検索して
2005/05/31(火) 21:22:59ID:2uvrcdmn0
こんやが、
231ヾ(゚パ)ノ ◆f0.zuburi6
2005/05/31(火) 21:24:50ID:X5FkKZ+T0 武田
2005/05/31(火) 22:10:01ID:J6kC1tX50
233タソキ@妄想系統 ◆Ver7J.....
2005/05/31(火) 22:50:24ID:9aqh9O8n0 cgi 外部での対策
ウイルスの対策告知・啓蒙
http://tmp5.2ch.net/download/ の head.txt に、
山田ウイルスなんとかかんとかですです。。 とか。
# この板書けるのかしらはグローバルに
YamadaBarbon() # ブロック10回超えたら 12時間 これにかかると閃き。パラメータ適当
barbon
bbq bbm
samba
@GB # 格納
@GB =~ # 変換 重いと思われる。
# 一般的なエラーはここでまとめて
IsKoukoku # 重いと思われる。
# このスレッド書けるのかしら
# 書き込み確認/書き込み警告
負荷対策として
正規表現と文字列と eval の処理コストが高いので、
正規表現はコンパイルし、文字列はグローバルにする。
eval は外に出す。
# speedycgi のご利益はこういう風に受けるものだろうと思われる
@rMESSAGE = (qr/\r//g,
qr/\n/ <br> /g;
);
if (/MESSAGE/) {
$FORM{$_} =~ /@rMESSAGE[0]/;
$FORM{$_} =~ /@rMESSAGE[1]/;
ウイルスの対策告知・啓蒙
http://tmp5.2ch.net/download/ の head.txt に、
山田ウイルスなんとかかんとかですです。。 とか。
# この板書けるのかしらはグローバルに
YamadaBarbon() # ブロック10回超えたら 12時間 これにかかると閃き。パラメータ適当
barbon
bbq bbm
samba
@GB # 格納
@GB =~ # 変換 重いと思われる。
# 一般的なエラーはここでまとめて
IsKoukoku # 重いと思われる。
# このスレッド書けるのかしら
# 書き込み確認/書き込み警告
負荷対策として
正規表現と文字列と eval の処理コストが高いので、
正規表現はコンパイルし、文字列はグローバルにする。
eval は外に出す。
# speedycgi のご利益はこういう風に受けるものだろうと思われる
@rMESSAGE = (qr/\r//g,
qr/\n/ <br> /g;
);
if (/MESSAGE/) {
$FORM{$_} =~ /@rMESSAGE[0]/;
$FORM{$_} =~ /@rMESSAGE[1]/;
234タソキ@妄想系統 ◆Ver7J.....
2005/05/31(火) 22:53:30ID:9aqh9O8n0 山田ワクチンを作り、
重いところを軽くして山田耐性を上げる。
重いところを軽くして山田耐性を上げる。
235動け動けウゴウゴ2ちゃんねる
2005/06/01(水) 01:01:49ID:4S6eve7r0 スラッシュ入りとそうでないのにリストを分けて、入ってないレスの時はスラッシュ入りを回さないとか。
2005/06/01(水) 07:16:37ID:bf9SHC1F0
rockのファイルってジンギスカンしてます?
まあそれ以前の問題かもしれませんが・・・
関連でこんなんはっときます
ttp://www.oracle.co.jp/interactive/Techniques/VLDB/Basic/step08.html
まあそれ以前の問題かもしれませんが・・・
関連でこんなんはっときます
ttp://www.oracle.co.jp/interactive/Techniques/VLDB/Basic/step08.html
237235
2005/06/01(水) 10:31:09ID:3nHEF7NN0 メアドやドメイン名だけだとスラッシュ入らんな。ドットでチェックすればいいのかな。
238235
2005/06/01(水) 10:56:56ID:3nHEF7NN0 NGワードを「スラッシュ入り」「スラッシュ無しドット入り」「スラッシュ無しドット無し」の3つにあらかじめ分けておく。
「スラッシュ無しドット無し」のNGワードチェック。
本文にドットがあるかチェックして入ってたら「スラッシュ無しドット入り」のNGワードチェック。
本文にスラッシュがあるかチェックして入ってたら「スラッシュ入り」のNGワードチェック。
問題は正規表現と整合性がとれるかなんだが、俺はPerlわからんから予想できん。
「スラッシュ無しドット無し」のNGワードチェック。
本文にドットがあるかチェックして入ってたら「スラッシュ無しドット入り」のNGワードチェック。
本文にスラッシュがあるかチェックして入ってたら「スラッシュ入り」のNGワードチェック。
問題は正規表現と整合性がとれるかなんだが、俺はPerlわからんから予想できん。
2005/06/01(水) 11:10:50ID:zzFYRbIx0
とりあえず、仕組みやコードについてアドバイスしたいのなら、
Rock54プロジェクト関連の全ての過去ログに目を通してから語った方が
ええよ。
そうしないと話がループして不毛になるから。
過去ログや関連スレを探すのも2chのプロジェクトに参加するための最低限の
スキルだから、どこにあるか分からないとか言わないでね。
Rock54プロジェクト関連の全ての過去ログに目を通してから語った方が
ええよ。
そうしないと話がループして不毛になるから。
過去ログや関連スレを探すのも2chのプロジェクトに参加するための最低限の
スキルだから、どこにあるか分からないとか言わないでね。
じっけん結果。
RegExpのコンパイルは、あまり効果がなかったみたい。
Benchmark: timing 5 iterations of a, b, c...
a: 46 wallclock secs (42.39 usr + 0.01 sys = 42.40 CPU) @ 0.12/s (n=5)
b: 43 wallclock secs (25.86 usr + 0.03 sys = 25.89 CPU) @ 0.19/s (n=5)
c: 28 wallclock secs (26.54 usr + 0.02 sys = 26.56 CPU) @ 0.19/s (n=5)
s/iter a c b
a 8.48 -- -37% -39%
c 5.31 60% -- -3%
b 5.18 64% 3% --
RegExpのコンパイルは、あまり効果がなかったみたい。
Benchmark: timing 5 iterations of a, b, c...
a: 46 wallclock secs (42.39 usr + 0.01 sys = 42.40 CPU) @ 0.12/s (n=5)
b: 43 wallclock secs (25.86 usr + 0.03 sys = 25.89 CPU) @ 0.19/s (n=5)
c: 28 wallclock secs (26.54 usr + 0.02 sys = 26.56 CPU) @ 0.19/s (n=5)
s/iter a c b
a 8.48 -- -37% -39%
c 5.31 60% -- -3%
b 5.18 64% 3% --
#!/usr/local/bin/perl
use strict;
# use warnings;
use Jcode;
use Benchmark qw(:all);
########
# めいんるーちん
MAIN:
{
# 主要ファイル名
my $Rock54_PATH = qq|./|;
my $Rock54_List = qq|$Rock54_PATH/Rock54.txt|;
my $Rock54_List2 = qq|$Rock54_PATH/Rock54-1.txt|;
my $Rock54_DAT = qq|$Rock54_PATH/000.txt|;
my $reply = timethese( 5, {
'a' => \&IsKoukoku1,
'b' => \&IsKoukoku2,
'c' => \&IsKoukoku3,
});
cmpthese $reply;
exit;
use strict;
# use warnings;
use Jcode;
use Benchmark qw(:all);
########
# めいんるーちん
MAIN:
{
# 主要ファイル名
my $Rock54_PATH = qq|./|;
my $Rock54_List = qq|$Rock54_PATH/Rock54.txt|;
my $Rock54_List2 = qq|$Rock54_PATH/Rock54-1.txt|;
my $Rock54_DAT = qq|$Rock54_PATH/000.txt|;
my $reply = timethese( 5, {
'a' => \&IsKoukoku1,
'b' => \&IsKoukoku2,
'c' => \&IsKoukoku3,
});
cmpthese $reply;
exit;
# 従来の方法?
sub IsKoukoku1 {
# bbs.cgi の初めのところみたいところ。
# NGファイルの読み込み
open Rock54, $Rock54_List or die "$!:[$Rock54_List]";
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
my @Rock_word = map [ (split /<>/)[5,6,7] ] , <Rock54>;
close Rock54;
# 索敵ファイルを読み込み(operate/1064936147.datを利用[820レス/504KB])
open DAT_File, $Rock54_DAT or die $!;
my @DAT = map((split /<>/)[3], <DAT_File>); # 本文だけ抽出。
close DAT_File;
# ここからがIsKoukokuの本体みたいなところ。
# 総レス数(820)を10倍界王拳
foreach my $In_Strings ((@DAT) x 100){
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
$In_Strings = jcode->euc($In_Strings , 'sjis', 'z'); # 本文を半角カナ→全角カナ変換。
my $NG_word = jcode->euc($NG_word_ref->[0], 'euc', 'z'); # リファレンスから取り出して半角カナ→全角カナ変換。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { last } # 合致したら。。。
elsif ($@) { last } # 不正 NG ワードがあったら。。。
}
}
}
sub IsKoukoku1 {
# bbs.cgi の初めのところみたいところ。
# NGファイルの読み込み
open Rock54, $Rock54_List or die "$!:[$Rock54_List]";
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
my @Rock_word = map [ (split /<>/)[5,6,7] ] , <Rock54>;
close Rock54;
# 索敵ファイルを読み込み(operate/1064936147.datを利用[820レス/504KB])
open DAT_File, $Rock54_DAT or die $!;
my @DAT = map((split /<>/)[3], <DAT_File>); # 本文だけ抽出。
close DAT_File;
# ここからがIsKoukokuの本体みたいなところ。
# 総レス数(820)を10倍界王拳
foreach my $In_Strings ((@DAT) x 100){
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
$In_Strings = jcode->euc($In_Strings , 'sjis', 'z'); # 本文を半角カナ→全角カナ変換。
my $NG_word = jcode->euc($NG_word_ref->[0], 'euc', 'z'); # リファレンスから取り出して半角カナ→全角カナ変換。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { last } # 合致したら。。。
elsif ($@) { last } # 不正 NG ワードがあったら。。。
}
}
}
# あらかじめ、カナ変換をしておく。
sub IsKoukoku2{
# bbs.cgi の初めのところみたいところ。
# NGファイルの読み込み
open Rock54, $Rock54_List or die $!;
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてカナ変換してして。
my @Rock_word =
map [ jcode->euc($_->[0], 'euc', 'z'), $_->[1,2] ],
map [ (split /<>/)[5,6,7] ],
<Rock54>;
close Rock54;
# 索敵ファイルを読み込み(operate/1064936147.datを利用[820レス/504KB])
open DAT_File, $Rock54_DAT or die $!;
my @DAT = map((split /<>/)[3], <DAT_File>); # 本文だけ抽出。
close DAT_File;
# ここからがIsKoukokuの本体みたいなところ。
# 総レス数(820)を10倍界王拳
foreach my $In_Strings ((@DAT) x 100){
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
$In_Strings = jcode->euc($In_Strings , 'sjis', 'z'); # 本文を半角カナ→全角カナ変換。
my $NG_word = $NG_word_ref->[0]; # リファレンスから取り出し。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { last } # 合致したら。。。
elsif ($@) { last } # 不正 NG ワードがあったら。。。
}
}
}
sub IsKoukoku2{
# bbs.cgi の初めのところみたいところ。
# NGファイルの読み込み
open Rock54, $Rock54_List or die $!;
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてカナ変換してして。
my @Rock_word =
map [ jcode->euc($_->[0], 'euc', 'z'), $_->[1,2] ],
map [ (split /<>/)[5,6,7] ],
<Rock54>;
close Rock54;
# 索敵ファイルを読み込み(operate/1064936147.datを利用[820レス/504KB])
open DAT_File, $Rock54_DAT or die $!;
my @DAT = map((split /<>/)[3], <DAT_File>); # 本文だけ抽出。
close DAT_File;
# ここからがIsKoukokuの本体みたいなところ。
# 総レス数(820)を10倍界王拳
foreach my $In_Strings ((@DAT) x 100){
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
$In_Strings = jcode->euc($In_Strings , 'sjis', 'z'); # 本文を半角カナ→全角カナ変換。
my $NG_word = $NG_word_ref->[0]; # リファレンスから取り出し。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { last } # 合致したら。。。
elsif ($@) { last } # 不正 NG ワードがあったら。。。
}
}
}
# あらかじめ、カナ変換してRegExpをコンパイルしておく。
sub IsKoukoku3{
# bbs.cgi の初めのところみたいところ。
# NGファイルの読み込み(RegExpコンパイル済み)
open Rock54, $Rock54_List or die $!;
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
my @Rock_word =
map [ qr|$_->[0]|, $_->[1,2] ],
map [ jcode->euc($_->[0], 'euc', 'z'), $_->[1,2] ],
map [ (split /<>/)[5,6,7] ],
<Rock54>;
close Rock54;
# 索敵ファイルを読み込み(operate/1064936147.datを利用[820レス/504KB])
open DAT_File, $Rock54_DAT or die $!;
my @DAT = map((split /<>/)[3], <DAT_File>); # 本文だけ抽出。
close DAT_File;
# ここからがIsKoukokuの本体みたいなところ。
# 総レス数(820)を10倍界王拳
foreach my $In_Strings ((@DAT) x 100){
$In_Strings = jcode->euc($In_Strings , 'sjis', 'z'); # 先に、本文を半角カナ→全角カナ変換。
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから取り出し。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { last } # 合致したら。。。
elsif ($@) { last } # 不正 NG ワードがあったら。。。
}
}
}
}
__END__
sub IsKoukoku3{
# bbs.cgi の初めのところみたいところ。
# NGファイルの読み込み(RegExpコンパイル済み)
open Rock54, $Rock54_List or die $!;
# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
my @Rock_word =
map [ qr|$_->[0]|, $_->[1,2] ],
map [ jcode->euc($_->[0], 'euc', 'z'), $_->[1,2] ],
map [ (split /<>/)[5,6,7] ],
<Rock54>;
close Rock54;
# 索敵ファイルを読み込み(operate/1064936147.datを利用[820レス/504KB])
open DAT_File, $Rock54_DAT or die $!;
my @DAT = map((split /<>/)[3], <DAT_File>); # 本文だけ抽出。
close DAT_File;
# ここからがIsKoukokuの本体みたいなところ。
# 総レス数(820)を10倍界王拳
foreach my $In_Strings ((@DAT) x 100){
$In_Strings = jcode->euc($In_Strings , 'sjis', 'z'); # 先に、本文を半角カナ→全角カナ変換。
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから取り出し。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { last } # 合致したら。。。
elsif ($@) { last } # 不正 NG ワードがあったら。。。
}
}
}
}
__END__
○えんばいろめんと
jcode.plがうまく動かなかったのでJcode.pmで。
$ uname -a
Linux tierra.baila6.jp 2.4.27-0vl7.5 #1 Tue May 17 13:33:27 JST 2005 i686 unknown
$ dmesg | grep Hz
Detected 1050.026 MHz processor.
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
なキカイで。。。
jcode.plがうまく動かなかったのでJcode.pmで。
$ uname -a
Linux tierra.baila6.jp 2.4.27-0vl7.5 #1 Tue May 17 13:33:27 JST 2005 i686 unknown
$ dmesg | grep Hz
Detected 1050.026 MHz processor.
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
なキカイで。。。
246タソキ@妄想系統 ◆Ver7J.....
2005/06/02(木) 08:45:31ID:VnP48VQZ0 ということは perl での正規表現のコンパイルは意味がないけれど、
文字列をあらかじめ宣言しておくことは効果があるってことですよね
文字列をあらかじめ宣言しておくことは効果があるってことですよね
2005/06/04(土) 03:35:19ID:6UTTXnDi0
ここで良いのか分からないけど、、、
「スレッドストッパー」が働いたときに、subback.html等に
レス数の増加が反映されないのはどうなんでしょうか?
http://qb5.2ch.net/test/read.cgi/operate/1117803694/l50
↑スレッドストッパーを入れて28だけど、、
http://qb5.2ch.net/operate/subback.html
↑ここでは27となっている。
「スレッドストッパー」が働いたときに、subback.html等に
レス数の増加が反映されないのはどうなんでしょうか?
http://qb5.2ch.net/test/read.cgi/operate/1117803694/l50
↑スレッドストッパーを入れて28だけど、、
http://qb5.2ch.net/operate/subback.html
↑ここでは27となっている。
2005/06/04(土) 03:40:59ID:z2pnxTOZ0
250root▲ ★
NGNG >>248
単純に、スレッドストッパーさんはsubject.txtやsubback.htmlの更新、
場合によってはindex.htmlの書き換えといった、
とってもコストのかかる重い処理を、一切やってないってことですね。
そもそも正直、必要性を感じないし。
単純に、スレッドストッパーさんはsubject.txtやsubback.htmlの更新、
場合によってはindex.htmlの書き換えといった、
とってもコストのかかる重い処理を、一切やってないってことですね。
そもそも正直、必要性を感じないし。
251root▲ ★
2005/06/04(土) 22:00:50ID:???0 IsKoukokuの軽量化が急務っぽいので、
やろうと思うです。
ex11とanimeのbbs.cgi船の重さが15倍ぐらい違うのを見たら、
決断せざるを得ないすね。で、これをせめて10倍ぐらいにはしたいなと。
で、すみませんがこれって今どんな状況で、どう進めればいいんでしたっけか。
やろうと思うです。
ex11とanimeのbbs.cgi船の重さが15倍ぐらい違うのを見たら、
決断せざるを得ないすね。で、これをせめて10倍ぐらいにはしたいなと。
で、すみませんがこれって今どんな状況で、どう進めればいいんでしたっけか。
252ピロリ
2005/06/04(土) 22:07:37ID:ir56pciX0 1) まず 山田関係は全部外す
2) 上限を設定する
3) すべて ShiftJis に変更したものを bbs.cgi で回す
2) 上限を設定する
3) すべて ShiftJis に変更したものを bbs.cgi で回す
253root▲ ★
2005/06/04(土) 22:12:10ID:???0 >>252
どもです。反応はや。
Perlぜんぜんだめなひと(Cならまぁぼちぼちですが)ですが、
やれることをやってみようかと。
1) 3) は、脳内にあったです。
で、2) は「登録できるデータの上限」を設定するっていうことかしら。
どもです。反応はや。
Perlぜんぜんだめなひと(Cならまぁぼちぼちですが)ですが、
やれることをやってみようかと。
1) 3) は、脳内にあったです。
で、2) は「登録できるデータの上限」を設定するっていうことかしら。
254ピロリ
2005/06/04(土) 22:13:16ID:ir56pciX0 そうですー
せいぜい 200とか
広告爆撃対策だとこれくらいでたりるんでは? (推測)
せいぜい 200とか
広告爆撃対策だとこれくらいでたりるんでは? (推測)
256root▲ ★
2005/06/04(土) 22:19:35ID:???0 で、SJISでやるのと、マッチングするところのコストを下げる(上限とか、場合によってはdbにするとか)のが、
鍵なのかしら。
鍵なのかしら。
257ピロリ
2005/06/04(土) 22:20:05ID:ir56pciX0 まったくそうは思っていなかったり、
Rockにたよりすぎですよ
url 以下のは全部外すべきかと
Rockにたよりすぎですよ
url 以下のは全部外すべきかと
258ピロリ
2005/06/04(土) 22:20:47ID:ir56pciX0 本当は 半角英数字だけだから
マッチングにこまるとは全く思っていないです
マッチングにこまるとは全く思っていないです
259root▲ ★
2005/06/04(土) 22:26:59ID:???0 >>257
> Rockにたよりすぎですよ
ふむ。
ざっと中身見てみましたが、目視で8割ぐらいがURLっぽいかんじですかね。
そうじゃないのは意外に少ないみたい。
あとは、そのURLっぽいのが本当に全部必要なのかとか、
もし必要ならハッシュ入れたりしてそこのコストを下げられないかとか、
そういう話ですか。
で、マッチングは正規表現使ってるですね。
regexpの高速なやつがあれば、相当変わるような予感も。
> Rockにたよりすぎですよ
ふむ。
ざっと中身見てみましたが、目視で8割ぐらいがURLっぽいかんじですかね。
そうじゃないのは意外に少ないみたい。
あとは、そのURLっぽいのが本当に全部必要なのかとか、
もし必要ならハッシュ入れたりしてそこのコストを下げられないかとか、
そういう話ですか。
で、マッチングは正規表現使ってるですね。
regexpの高速なやつがあれば、相当変わるような予感も。
260ピロリ
2005/06/04(土) 22:28:35ID:ir56pciX0 だいたい 50% を撃退するのに 10円かかるとします。
20円かければ 100% 撃退できる? そんなばかな事はありません。
残り 50% の50%だから 75% ですね、期待できるのは、
さらに 10円かける(都合30円)かけると 87.25% 、
まだ 100% ではありません。
これを 100% にしようとして、1500円くらいかけている段階かしら?
わたしは 30円くらいでいいと思っています。
あとはポリシーの問題化と、
あくまで100%を目指すなら、それもありかと。たんたんとやるだけ。
20円かければ 100% 撃退できる? そんなばかな事はありません。
残り 50% の50%だから 75% ですね、期待できるのは、
さらに 10円かける(都合30円)かけると 87.25% 、
まだ 100% ではありません。
これを 100% にしようとして、1500円くらいかけている段階かしら?
わたしは 30円くらいでいいと思っています。
あとはポリシーの問題化と、
あくまで100%を目指すなら、それもありかと。たんたんとやるだけ。
261讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG http://←この部分外して登録とか
262ピロリ
2005/06/04(土) 22:29:24ID:ir56pciX0 あっ ちと数字またがったか、
いつものことで
いつものことで
265root▲ ★
2005/06/04(土) 22:32:13ID:???0 まずは、EUC→SJISに変えてみるだけで、相当効果ある気がするです。
前にやったプロファイリングの結果では、jcodeが相当重かったような。
もう1回qb6でプロファイリングしてみるです。
前にやったプロファイリングの結果では、jcodeが相当重かったような。
もう1回qb6でプロファイリングしてみるです。
266reffi@報告人 ★
2005/06/04(土) 22:32:53ID:???0 登録数を下げる方法としては強制時限消去ってのはどうでしょうか?
例えば登録後、30日でデータベースから強制削除
※システムに負担がかかっているのなら新システムの構築か人的資源の投入のどっちが
いいかってところですね
例えば登録後、30日でデータベースから強制削除
※システムに負担がかかっているのなら新システムの構築か人的資源の投入のどっちが
いいかってところですね
これかな、
%Time ExclSec CumulS #Calls sec/call Csec/c Name
58.1 0.102 0.125 1 0.1016 0.1252 main::IsKoukoku
35.3 0.062 0.055 2853 0.0000 0.0000 jcode::convert
26.8 0.047 0.024 2853 0.0000 0.0000 jcode::euc2euc
22.2 0.039 0.225 1 0.0390 0.2251 main::bbs_entryXXX
13.1 0.023 0.008 2853 0.0000 0.0000 jcode::h2z_euc
13.1 0.023 0.023 10 0.0023 0.0023 LWP::UserAgent::BEGIN
9.12 0.016 0.016 3 0.0052 0.0052 Net::DNS::Packet::dn_comp
9.12 0.016 0.039 2853 0.0000 0.0000 jcode::to
9.12 0.016 0.024 2853 0.0000 0.0000 jcode::euc
%Time ExclSec CumulS #Calls sec/call Csec/c Name
58.1 0.102 0.125 1 0.1016 0.1252 main::IsKoukoku
35.3 0.062 0.055 2853 0.0000 0.0000 jcode::convert
26.8 0.047 0.024 2853 0.0000 0.0000 jcode::euc2euc
22.2 0.039 0.225 1 0.0390 0.2251 main::bbs_entryXXX
13.1 0.023 0.008 2853 0.0000 0.0000 jcode::h2z_euc
13.1 0.023 0.023 10 0.0023 0.0023 LWP::UserAgent::BEGIN
9.12 0.016 0.016 3 0.0052 0.0052 Net::DNS::Packet::dn_comp
9.12 0.016 0.039 2853 0.0000 0.0000 jcode::to
9.12 0.016 0.024 2853 0.0000 0.0000 jcode::euc
268root▲ ★
2005/06/04(土) 22:34:54ID:???02005/06/04(土) 22:41:50ID:5JYtZIYC0
rock word検索毎に毎回jcodeを呼び出してたときのデータじゃなかったっけ?
274讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG 登録一週間で一定の量までいってなければ削除とか
275root▲ ★
NGNG で、内部データをSJIS化するには、どういう手順でやればいいのかしら。
丁稚どんの改良が必要?
あと、いわゆる「表」みたいな字の対策も入れる必要があるような予感も。
丁稚どんの改良が必要?
あと、いわゆる「表」みたいな字の対策も入れる必要があるような予感も。
2005/06/04(土) 22:45:32ID:oewniHwY0
レスにurl入ってるかどうか調べて、入ってない場合はチェックを一部省略するってやってますか?
278ピロリ
2005/06/04(土) 22:47:41ID:ir56pciX0 #################################################################################################
#罠、罠、罠、罠、罠に
#入力:
#IsKoukoku(対象文字列[Shift_JIS],Rock54のファイル名) 現状は無し。sub で定義中。
#返り血ぶしゅー:
#OK ならば 空文字列(偽)
#NG ならば (規制文字列(真)[Shift_JIS], MD5値, フラグ)の配列へのリファレンス
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ
# 読み込む。。。
my @Rock_word = @FOX_Ro54;
# EUC に変換して半角カナ→全角カナにしてして。
# まず対象となる文字列を変換。
$In_Strings = jcode::euc($In_Strings , 'sjis', 'z');
# NG ワードも変換。ついでに NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
eval { $In_Strings =~m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために。。。
return '' if $@; # 不正 NG ワードがあったときは OK とする。
if ($In_Strings =~m<$NG_word>) { # NG ワードをチェック。
$NG_word_ref->[0] = &jcode::sjis($&, 'euc'); # 該当すれば NG ワードを sjis に戻して。。。
return $NG_word_ref; # リファレンスを返す。
}
}
return '';
}
#罠、罠、罠、罠、罠に
#入力:
#IsKoukoku(対象文字列[Shift_JIS],Rock54のファイル名) 現状は無し。sub で定義中。
#返り血ぶしゅー:
#OK ならば 空文字列(偽)
#NG ならば (規制文字列(真)[Shift_JIS], MD5値, フラグ)の配列へのリファレンス
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ
# 読み込む。。。
my @Rock_word = @FOX_Ro54;
# EUC に変換して半角カナ→全角カナにしてして。
# まず対象となる文字列を変換。
$In_Strings = jcode::euc($In_Strings , 'sjis', 'z');
# NG ワードも変換。ついでに NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;
# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
eval { $In_Strings =~m<$NG_word> }; # NG ワード自体をチェック。以前の失敗を繰り返さないために。。。
return '' if $@; # 不正 NG ワードがあったときは OK とする。
if ($In_Strings =~m<$NG_word>) { # NG ワードをチェック。
$NG_word_ref->[0] = &jcode::sjis($&, 'euc'); # 該当すれば NG ワードを sjis に戻して。。。
return $NG_word_ref; # リファレンスを返す。
}
}
return '';
}
2005/06/04(土) 22:47:56ID:5JYtZIYC0
280reffi@報告人 ★
2005/06/04(土) 22:49:57ID:???0 >275
この辺ですか?
(5.8以降限定ですけど)
ttp://www.fl.reitaku-u.ac.jp/~schiba/perl/perlEncoding.html#shiftjis
この辺ですか?
(5.8以降限定ですけど)
ttp://www.fl.reitaku-u.ac.jp/~schiba/perl/perlEncoding.html#shiftjis
2005/06/04(土) 22:52:58ID:5JYtZIYC0
正規表現を使う必要のあるNGワードって意外と少ない気もするが
Rockだとそうでもないのかな?
固定文字列の検索なら工夫の余地が大きいと思うんだけど
Rockだとそうでもないのかな?
固定文字列の検索なら工夫の余地が大きいと思うんだけど
2005/06/04(土) 23:00:49ID:5JYtZIYC0
map { &jcode::euc($_, 'euc', 'z') } @Rock_word
これは単なる半全角変換だっけ?
これは単なる半全角変換だっけ?
まずは、>>243 の方法ってのはいかがでしょうか?
>>240 にて、
s/iter a c b
a 8.48 -- -37% -39%
c 5.31 60% -- -3%
b 5.18 64% 3% --
と、対比64%との数値が出ていることですので。。。
IsKoukokuの中で、NGワードファイルのeuc→Shift_JISを行っているものを、
NGワードファイルを読み込んできたときに変換しておくという手法です。
(参照:>>127)
あと、リストのShift_JIS化はかなり躊躇しております。
いかんせん、Shift_JISによる文字化けを回避するために、
登録所ではすべてをeuc-jpで処理をしていることもありまして。
(登録者がエスケープを気にしなくても良いようにとの思いで登録所を作成した経緯もありますのでm(_ _)m深謝)
それからそれから。
NGワードリストの並びですが、以前は、有効期限が長い物順に並べておりましたが、
現在では、BBRからの返りが多い物順に替えてあります。
ので、多少減らしても大丈夫かもしれないです。
しかし、200という数ではかなり漏れが出てしまうかもしれないです。。。
BBRの返りを見ても、最低でも、1500近くは必要かもです。
>>240 にて、
s/iter a c b
a 8.48 -- -37% -39%
c 5.31 60% -- -3%
b 5.18 64% 3% --
と、対比64%との数値が出ていることですので。。。
IsKoukokuの中で、NGワードファイルのeuc→Shift_JISを行っているものを、
NGワードファイルを読み込んできたときに変換しておくという手法です。
(参照:>>127)
あと、リストのShift_JIS化はかなり躊躇しております。
いかんせん、Shift_JISによる文字化けを回避するために、
登録所ではすべてをeuc-jpで処理をしていることもありまして。
(登録者がエスケープを気にしなくても良いようにとの思いで登録所を作成した経緯もありますのでm(_ _)m深謝)
それからそれから。
NGワードリストの並びですが、以前は、有効期限が長い物順に並べておりましたが、
現在では、BBRからの返りが多い物順に替えてあります。
ので、多少減らしても大丈夫かもしれないです。
しかし、200という数ではかなり漏れが出てしまうかもしれないです。。。
BBRの返りを見ても、最低でも、1500近くは必要かもです。
286 ◆WMaLhm.gkw
2005/06/04(土) 23:36:16ID:64YlXvAF0 rockリストに変更があったときに、NGワード・MD5値・フラグだけをShiftJIS化したサブセットも作ることにして、それを元にして判定しましょ……ってこと?
2005/06/04(土) 23:56:28ID:gNaPLbTW0
対象リストに載っているデータを
SJISに直すと共に、べた書きのPerlプログラムに直すスクリプトを作る。
そして、bbs.cgiではこれをソースとして動かす。
SpeedyCGIでコンパイルは10分に1回なんだから無問題。
とか。
SJISに直すと共に、べた書きのPerlプログラムに直すスクリプトを作る。
そして、bbs.cgiではこれをソースとして動かす。
SpeedyCGIでコンパイルは10分に1回なんだから無問題。
とか。
289ピロリ
2005/06/04(土) 23:57:02ID:ir56pciX0 ちといろいろ忘れたので復習が寺
各サーバの丁稚どんは原本を定期的に引っ張ってくる
1) 原本ってどこにあるんでしたっけ? bbq.2ch.net ?
2) 原本を出力するときに \t 区切りの Shift Jis にしておけば一番お特?
各サーバの丁稚どんは原本を定期的に引っ張ってくる
1) 原本ってどこにあるんでしたっけ? bbq.2ch.net ?
2) 原本を出力するときに \t 区切りの Shift Jis にしておけば一番お特?
2005/06/05(日) 00:06:20ID:m8q3xj0O0
そうだけど
毎回ファイルに載ってる全部を読みながら正規表現のコンパイルをして云々・・・と比べて
1/((呼び出される回数/10分)/プロセス数)・・・見込みで1/10-1/100程度にはなるかと。
毎回ファイルに載ってる全部を読みながら正規表現のコンパイルをして云々・・・と比べて
1/((呼び出される回数/10分)/プロセス数)・・・見込みで1/10-1/100程度にはなるかと。
293root▲ ★
NGNG あ、まずエラーにならないことをqb6で確認するです。
294ピロリ
2005/06/05(日) 00:13:41ID:hV/aUjEj0 まったー
295ピロリ
2005/06/05(日) 00:14:42ID:hV/aUjEj0 読み込んだときに変換するのは激しく反対。
配布前になされるべきです
配布前になされるべきです
296root▲ ★
NGNG ふむ。
ということは、各サーバに置かれる時点でSJISもので全角半角もなされたものにすべきと。
つまり、丁稚側でやるべきってことかな。
ということは、各サーバに置かれる時点でSJISもので全角半角もなされたものにすべきと。
つまり、丁稚側でやるべきってことかな。
297ピロリ
2005/06/05(日) 00:16:20ID:hV/aUjEj0 系の入り口or最終段階で encode , decode が入るのは
当然ですが、途中段階で interpliter がはいるなんてシステムは
激しく反対。
中身は「ただのブツ」意味の無いものであるべきです
当然ですが、途中段階で interpliter がはいるなんてシステムは
激しく反対。
中身は「ただのブツ」意味の無いものであるべきです
298root▲ ★
NGNG リストのおおもと EUC
↓
配布用マスター SJIS
↓
各サーバに配布
↓
そのまま利用
っていうふうにすれば、いいような。
↓
配布用マスター SJIS
↓
各サーバに配布
↓
そのまま利用
っていうふうにすれば、いいような。
299ピロリ
2005/06/05(日) 00:24:10ID:hV/aUjEj0 んだんだ
300ピロリ
2005/06/05(日) 00:25:24ID:hV/aUjEj0 そうすれば
改修するところは
1) マスター作り部
2) IsKoukoku内の処理
ということになり、今後の改修もここだけになるッス
改修するところは
1) マスター作り部
2) IsKoukoku内の処理
ということになり、今後の改修もここだけになるッス
2005/06/05(日) 00:29:53ID:5aS7YfV20
NG_wordに正規表現使ってないならEUCに変換なんてしないで
index()でいいんだけどな
index()でいいんだけどな
あり得る手段としては、「DATをeuc-jpにする」というのもある香奈♪
それはさておき、、、
となると、かなり大変だよなぁ。。。
●Rock54側でやるべき事。
・配布用リストを変換しておく。
1. 全角カナ→全角カナ+半角カナにしてor設定(ex.がんばる→(が|ガ|(ガ))(ん|ン|ン)(ば|バ|(バ))(る|ル|ル)
2. euc-jp→Shift_JISする際に、誤認をするものにエスケープを施す(「表」とか「ー」とか)
3. euc-jp→Shift_JISにする。
こんな感じかな?
#banana238から追い出されそうな悪寒(苦笑)@負荷増大
それはさておき、、、
となると、かなり大変だよなぁ。。。
●Rock54側でやるべき事。
・配布用リストを変換しておく。
1. 全角カナ→全角カナ+半角カナにしてor設定(ex.がんばる→(が|ガ|(ガ))(ん|ン|ン)(ば|バ|(バ))(る|ル|ル)
2. euc-jp→Shift_JISする際に、誤認をするものにエスケープを施す(「表」とか「ー」とか)
3. euc-jp→Shift_JISにする。
こんな感じかな?
#banana238から追い出されそうな悪寒(苦笑)@負荷増大
303root▲ ★
NGNG >>302
1. って、やらなくてもいいようになるといいなと。
「がんばる」は「がんばる」だけRockできれば、それでいいんじゃないかなと。
で、「ガンバル」もRockしたければ、単にもう1行入れればいいんではと。
1. って、やらなくてもいいようになるといいなと。
「がんばる」は「がんばる」だけRockできれば、それでいいんじゃないかなと。
で、「ガンバル」もRockしたければ、単にもう1行入れればいいんではと。
>>302
と、書いてみたものの、、、
→1. 全角カナ→全角カナ+半角カナにしてor設定(ex.がんばる→(が|ガ|(ガ))(ん|ン|ン)(ば|バ|(バ))(る|ル|ル)
こんなことしてたら、ますます負荷が「お互いに(Rock54基地でも各鯖でも)」掛かるよなぁ。。。
やっぱりいっそのこと、リストには半角英数記号以外禁止にしちゃおうよ♪
と、書いてみたものの、、、
→1. 全角カナ→全角カナ+半角カナにしてor設定(ex.がんばる→(が|ガ|(ガ))(ん|ン|ン)(ば|バ|(バ))(る|ル|ル)
こんなことしてたら、ますます負荷が「お互いに(Rock54基地でも各鯖でも)」掛かるよなぁ。。。
やっぱりいっそのこと、リストには半角英数記号以外禁止にしちゃおうよ♪
305root▲ ★
NGNG 2. と 3. は、それで問題ないとおもうです。
306ピロリ
2005/06/05(日) 00:38:32ID:hV/aUjEj0 #banana238から追い出されそうな悪寒(苦笑)@負荷増大
この部部が理解できなかったり、
投稿毎に(bananaで 5万/day) 処理していることが
どうして出来ないのかがわからないのだ。
この部部が理解できなかったり、
投稿毎に(bananaで 5万/day) 処理していることが
どうして出来ないのかがわからないのだ。
>>303
荒らす人は徹底的に荒らしたいらしいので、もっといろんな描き方をしてくるですです(苦笑)
がんばる
ガんばる
がンばる
:
:
が ん ば る
:
(わはは)
URIとmailアドレスと思しきもの、電話番号と思しきものに限定しちゃって、無差別コピペは別管轄にしちゃうとかとか。
荒らす人は徹底的に荒らしたいらしいので、もっといろんな描き方をしてくるですです(苦笑)
がんばる
ガんばる
がンばる
:
:
が ん ば る
:
(わはは)
URIとmailアドレスと思しきもの、電話番号と思しきものに限定しちゃって、無差別コピペは別管轄にしちゃうとかとか。
2005/06/05(日) 00:44:56ID:b15c92rk0
マルチバイト文字非対応でいいなら、それが一番楽そうですね
310ピロリ
2005/06/05(日) 00:45:32ID:hV/aUjEj0 Rock54 はあらし撃退にも使えるけど
広告爆撃対策が本業かと、
広告爆撃対策が本業かと、
2005/06/05(日) 01:07:04ID:10zmJNsO0
>>308
それはログで実証されていますか?
Rockに限らず「これこれこういう方法で回避できるから無駄だ」とやりもせずに
決めつける人大杉ですが実際に「これこれこういう方法」を使う人は意外と少ないものです。
そして「これこれこういう方法」を実際に使われてくると破綻します(例: 山田)
それはログで実証されていますか?
Rockに限らず「これこれこういう方法で回避できるから無駄だ」とやりもせずに
決めつける人大杉ですが実際に「これこれこういう方法」を使う人は意外と少ないものです。
そして「これこれこういう方法」を実際に使われてくると破綻します(例: 山田)
314ピロリ
2005/06/05(日) 01:34:15ID:hV/aUjEj0 うーん
一所懸命考えたけど、やっぱりわからん
現在は 240万投稿 x 2700 回 変換しているですよね、
それを bbs.cgi 船進水時にやるとして
どれくらいになるかな、10万 x 2700 回くらい?
それを配布元でやれば、データが一日に100回更新されたとして
100 x 2700 回だけで済むようになると思うんだが
何が違うんだろう・・・
一所懸命考えたけど、やっぱりわからん
現在は 240万投稿 x 2700 回 変換しているですよね、
それを bbs.cgi 船進水時にやるとして
どれくらいになるかな、10万 x 2700 回くらい?
それを配布元でやれば、データが一日に100回更新されたとして
100 x 2700 回だけで済むようになると思うんだが
何が違うんだろう・・・
>>314
bbs.cgiが動いている鯖での変換「以外」の負荷の掛かり具合がよく判っていないので、
ただ単にbanana238でも大丈夫なのかな?と危惧しているところです。
(bbs.cgiが動いている鯖でのpsやtopコマンドの値は知りうることが出来ませんから)
ひとまず「案ずるより産むが易し」ってことで、変換作業をしているですですm(_ _)m
bbs.cgiが動いている鯖での変換「以外」の負荷の掛かり具合がよく判っていないので、
ただ単にbanana238でも大丈夫なのかな?と危惧しているところです。
(bbs.cgiが動いている鯖でのpsやtopコマンドの値は知りうることが出来ませんから)
ひとまず「案ずるより産むが易し」ってことで、変換作業をしているですですm(_ _)m
基地の方では、切り替える準備が出来ました。
>>278 を以下のようにスキーリさせることができるかと♪
#################################################################################################
#罠、罠、罠、罠、罠に
#入力:
#IsKoukoku(対象文字列[Shift_JIS],Rock54のファイル名) 現状は無し。sub で定義中。
#返り血ぶしゅー:
#OK ならば 空文字列(偽)
#NG ならば (規制文字列(真)[Shift_JIS], MD5値, フラグ)のリストへのリファレンス
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # 長いので代入
# 読み込む。。。
# my @Rock_word = @FOX_Ro54; # メモリの無駄なので省略してみました。
# では NG ワードのチェック。
foreach my $NG_word_ref (@FOX_Ro54){
if (my $matched = eval{$In_Strings =~ m<$NG_word_ref->[0]>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
return '';
}
配布が始まりましたら、基地の方でもリスタートを掛けていきますです。
(多少のタイムラグは致し方ないですよね(苦笑)@しばらくは文字コードの違いでスルーされる現象)
>>278 を以下のようにスキーリさせることができるかと♪
#################################################################################################
#罠、罠、罠、罠、罠に
#入力:
#IsKoukoku(対象文字列[Shift_JIS],Rock54のファイル名) 現状は無し。sub で定義中。
#返り血ぶしゅー:
#OK ならば 空文字列(偽)
#NG ならば (規制文字列(真)[Shift_JIS], MD5値, フラグ)のリストへのリファレンス
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # 長いので代入
# 読み込む。。。
# my @Rock_word = @FOX_Ro54; # メモリの無駄なので省略してみました。
# では NG ワードのチェック。
foreach my $NG_word_ref (@FOX_Ro54){
if (my $matched = eval{$In_Strings =~ m<$NG_word_ref->[0]>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
return '';
}
配布が始まりましたら、基地の方でもリスタートを掛けていきますです。
(多少のタイムラグは致し方ないですよね(苦笑)@しばらくは文字コードの違いでスルーされる現象)
318ピロリ
2005/06/05(日) 02:29:46ID:hV/aUjEj0 おっ
qb6 に早速入れてみます。
qb6 に早速入れてみます。
320ピロリ
2005/06/05(日) 02:34:41ID:hV/aUjEj0 if (my $matched = eval{$In_Strings =~ m<$NG_word_ref->[0]>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
ここで 500 error になるっす
ここで 500 error になるっす
321水色@飛行石 ★
2005/06/05(日) 02:34:48ID:???0 おー。
323ピロリ
2005/06/05(日) 02:37:06ID:hV/aUjEj0 いやいや
まず動くかどうかでして、
まず動くかどうかでして、
324ピロリ
2005/06/05(日) 02:38:07ID:hV/aUjEj0 つまり 正しく動くかどうかじゃなくて
動くかどうかの確認をしたいと、 @qb6
動くかどうかの確認をしたいと、 @qb6
326讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG おー
2005/06/05(日) 02:44:49ID:VDikHqT00
アローがデリミタと被っているのでは…
>>320
if (my $matched = eval{$In_Strings =~ m<$NG_word_ref->[0]>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
を、以下の2行に。。。m(_ _)m深謝
my $NG_word = $NG_word_ref->[0]; # リファレンスから取り出し。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
>>324
そのままですと、全部の鯖にいる丁稚どんを呼び出してしまいますので(汗)
ひとまず基地からはqb6の丁稚どんだけを呼び出すようにしますですです。
if (my $matched = eval{$In_Strings =~ m<$NG_word_ref->[0]>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
を、以下の2行に。。。m(_ _)m深謝
my $NG_word = $NG_word_ref->[0]; # リファレンスから取り出し。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
>>324
そのままですと、全部の鯖にいる丁稚どんを呼び出してしまいますので(汗)
ひとまず基地からはqb6の丁稚どんだけを呼び出すようにしますですです。
331ピロリ
2005/06/05(日) 02:53:17ID:hV/aUjEj0 んじゃ 配布しまーす
333ピロリ
2005/06/05(日) 02:55:05ID:hV/aUjEj0 指示にしたがいますー
まだ全サーバ配布はやってません
まだ全サーバ配布はやってません
qb5.2ch.net<>200 OK<>Sat, 04 Jun 2005 17:34:18 GMT<>236589<>
qb6.2ch.net<>200 OK<>Sat, 04 Jun 2005 17:59:09 GMT<>236544<>
リストは行き渡っています。。。
qb6.2ch.net<>200 OK<>Sat, 04 Jun 2005 17:59:09 GMT<>236544<>
リストは行き渡っています。。。
337ピロリ
2005/06/05(日) 03:06:03ID:hV/aUjEj0 どんな時にどんなメッセージが出るんでしたっけ?
340讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG 普通の書き込みがずっと吸収されてる…
341ピロリ
2005/06/05(日) 03:09:00ID:hV/aUjEj0 あと三発で「Rockは人生だ」でしたっけ?
BBX チェック(2ちゃんねるで広告爆撃したホストなどが、登録されています。)
La ROCA es la vida.(-_-)
;; ANSWER SECTION (1 record)
227.33.105.220.bbx.2ch.net.2048INTXT"shutouted by BBX: 220.105.33.227"
ひっかかりました(照)
La ROCA es la vida.(-_-)
;; ANSWER SECTION (1 record)
227.33.105.220.bbx.2ch.net.2048INTXT"shutouted by BBX: 220.105.33.227"
ひっかかりました(照)
2005/06/05(日) 03:15:37ID:10zmJNsO0
肝心の負荷は?
もしかして、qb6ではIsKoukokuを呼び出しているところが他のとはちょと違うのかな?
・さくらか咲かない。
・BBRが返ってこない。
という症状が現れています。
・さくらか咲かない。
・BBRが返ってこない。
という症状が現れています。
350ピロリ
2005/06/05(日) 03:28:54ID:hV/aUjEj0 確認してみますー
351ピロリ
2005/06/05(日) 03:30:18ID:hV/aUjEj0 スルーするかどうかの違いはありますが
他には制御に違いはないようです
他には制御に違いはないようです
353ピロリ
2005/06/05(日) 03:33:54ID:hV/aUjEj0 りょうかいですー
配布しますー
配布しますー
354ピロリ
2005/06/05(日) 03:35:02ID:hV/aUjEj0 あっ anime が IsKoukoku するーになってる
配布しなおしますー
配布しなおしますー
355root▲ ★
NGNG animeサーバの船を爆破しました。
なんか、うそみたいに軽いかも。
一桁数値が低くなった、、、。
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
22033 ch2anime 96 0 10508K 9796K select 3 0:01 1.03% 0.83% speedy_back
22031 ch2anime 96 0 10740K 9992K select 0 0:01 0.48% 0.39% speedy_back
なんか、うそみたいに軽いかも。
一桁数値が低くなった、、、。
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
22033 ch2anime 96 0 10508K 9796K select 3 0:01 1.03% 0.83% speedy_back
22031 ch2anime 96 0 10740K 9992K select 0 0:01 0.48% 0.39% speedy_back
356root▲ ★
NGNG な、なんだ。
もう1回。
もう1回。
357root▲ ★
NGNG animeサーバ、IsKoukokuが有効になったやつが入ったのを確認しました。
確認中。
確認中。
359root▲ ★
NGNG いいかんじみたい。
時間帯を比較しないとわからないけど、
やはり、一桁負荷が低くなったようです。
コード変換って、すごく重いのね。
時間帯を比較しないとわからないけど、
やはり、一桁負荷が低くなったようです。
コード変換って、すごく重いのね。
361root▲ ★
NGNG animeサーバ、SJISバージョンに切り替わったようです。
362root▲ ★
NGNG んでは、qb6でプロファイリングしてみるです。
メインのほうではなく、もとの1行目をさわるです。とお知らせ。
メインのほうではなく、もとの1行目をさわるです。とお知らせ。
363root▲ ★
NGNG わーい。
%dprofpp tmon.out
Total Elapsed Time = 0.773049 Seconds
User+System Time = 0.242963 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
12.7 0.031 0.045 11 0.0028 0.0041 Net::DNS::Resolver::Base::BEGIN
9.47 0.023 0.107 1 0.0234 0.1069 main::bbs_entryXXX
9.47 0.023 0.030 10 0.0023 0.0030 LWP::UserAgent::BEGIN
9.47 0.023 0.041 1 0.0233 0.0411 main::bbs_main
6.59 0.016 0.128 19 0.0008 0.0067 main::BEGIN
6.59 0.016 0.015 1 0.0156 0.0154 LWP::Protocol::implementor
3.29 0.008 0.008 49 0.0002 0.0002 Exporter::import
3.29 0.008 0.008 6 0.0013 0.0013 Exporter::heavy_export
3.29 0.008 0.008 1 0.0078 0.0078 main::initFOX
3.29 0.008 0.008 1 0.0078 0.0078 main::MakeWorkFile
3.29 0.008 0.008 1 0.0078 0.0078 vars::BEGIN
3.29 0.008 0.008 4 0.0019 0.0019 HTTP::Response::BEGIN
3.29 0.008 0.060 6 0.0013 0.0101 Net::DNS::Resolver::BEGIN
3.29 0.008 0.007 6 0.0013 0.0012 CGI::BEGIN
3.29 0.008 0.008 1 0.0078 0.0077 BSDPAN::Override::import
%dprofpp tmon.out
Total Elapsed Time = 0.773049 Seconds
User+System Time = 0.242963 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
12.7 0.031 0.045 11 0.0028 0.0041 Net::DNS::Resolver::Base::BEGIN
9.47 0.023 0.107 1 0.0234 0.1069 main::bbs_entryXXX
9.47 0.023 0.030 10 0.0023 0.0030 LWP::UserAgent::BEGIN
9.47 0.023 0.041 1 0.0233 0.0411 main::bbs_main
6.59 0.016 0.128 19 0.0008 0.0067 main::BEGIN
6.59 0.016 0.015 1 0.0156 0.0154 LWP::Protocol::implementor
3.29 0.008 0.008 49 0.0002 0.0002 Exporter::import
3.29 0.008 0.008 6 0.0013 0.0013 Exporter::heavy_export
3.29 0.008 0.008 1 0.0078 0.0078 main::initFOX
3.29 0.008 0.008 1 0.0078 0.0078 main::MakeWorkFile
3.29 0.008 0.008 1 0.0078 0.0078 vars::BEGIN
3.29 0.008 0.008 4 0.0019 0.0019 HTTP::Response::BEGIN
3.29 0.008 0.060 6 0.0013 0.0101 Net::DNS::Resolver::BEGIN
3.29 0.008 0.007 6 0.0013 0.0012 CGI::BEGIN
3.29 0.008 0.008 1 0.0078 0.0077 BSDPAN::Override::import
2005/06/05(日) 04:09:59ID:Vv3vrarN0
1/10と言っても1が0.1になったというよりは10が1になったような感じだけど
367root▲ ★
NGNG 最初、計測したときにIsKoukokuスルーされてるんじゃないかと、心配になりました。
でも、そんなことはないみたいです。
でも、そんなことはないみたいです。
ちょっと、ヤバ目の不具合発見
rockに引っかかった時に本来ならばrockワード以外は書けるはずなのに全く書けなく
なってます。
(引っかかった以降全て吸い込まれて書けない)
ケーブルでこれ出ちゃうと該当回線が書けなくなって巻き添えが大量に出てしまいます。
(既に引っかかってるところも出てます。)
rockに引っかかった時に本来ならばrockワード以外は書けるはずなのに全く書けなく
なってます。
(引っかかった以降全て吸い込まれて書けない)
ケーブルでこれ出ちゃうと該当回線が書けなくなって巻き添えが大量に出てしまいます。
(既に引っかかってるところも出てます。)
369root▲ ★
NGNG371root▲ ★
NGNG # では NG ワードのチェック。
foreach my $NG_word_ref (@FOX_Ro54)
{
my $NG_word = $NG_word_ref->[0]; # リファレンスから取り出し。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG
_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
return '';
ここが、いまいちな予感。
foreach my $NG_word_ref (@FOX_Ro54)
{
my $NG_word = $NG_word_ref->[0]; # リファレンスから取り出し。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG
_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
return '';
ここが、いまいちな予感。
373ピロリ
2005/06/05(日) 04:26:40ID:hV/aUjEj0 わーい
まずはヨロ個簿絵
まずはヨロ個簿絵
375ピロリ
2005/06/05(日) 04:26:57ID:hV/aUjEj0 ちとみてきます
377root▲ ★
NGNG で、直ったら、
BBXの登録アドレスを1回クリーンアップしないと、いけなそうっすね。
そのへんは、ぼちぼちと。
BBXの登録アドレスを1回クリーンアップしないと、いけなそうっすね。
そのへんは、ぼちぼちと。
378FOX ★
2005/06/05(日) 04:29:25ID:???0 うん 書けない。。。
★使うっす
★使うっす
379大佐は疲労困憊φ ◆K76a0xu20c
NGNG380FOX ★
2005/06/05(日) 04:31:08ID:???0 んじゃ
まず スルー版は配布しまーす
まず スルー版は配布しまーす
381root▲ ★
NGNG 直し方待ちで。
なんか、本文内にNGワードがなくてもNGワードがあったことにされているみたい。
なんか、本文内にNGワードがなくてもNGワードがあったことにされているみたい。
# NG ワードも変換。ついでに NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;
この部分が抜けていました、、、(汗)
でもってこの部分は出航の時だけで桶のはずなので、、、
# Rock54リストを読みこむ
open Rock54_List, "ファイルの場所";
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <Rock54_List>;
close Rock54_List;
のように入れてもらえればー
@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;
この部分が抜けていました、、、(汗)
でもってこの部分は出航の時だけで桶のはずなので、、、
# Rock54リストを読みこむ
open Rock54_List, "ファイルの場所";
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <Rock54_List>;
close Rock54_List;
のように入れてもらえればー
383FOX ★
2005/06/05(日) 04:34:02ID:???0 スルー版配布完 10min まつ
qb6 だけ on にします
qb6 だけ on にします
385FOX ★
2005/06/05(日) 04:35:54ID:???0 qb6 を on 版にした。
386FOX ★
2005/06/05(日) 04:37:00ID:???0 open(ADFILE,"内緒");
@FOX_Ro54 = <ADFILE>;
close(ADFILE);
現在の読み込み部
@FOX_Ro54 = <ADFILE>;
close(ADFILE);
現在の読み込み部
387FOX ★
2005/06/05(日) 04:38:34ID:???0 open(ADFILE,"内緒");
#@FOX_Ro54 = <ADFILE>;
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;
close(ADFILE);
にしてみた @qb6
#@FOX_Ro54 = <ADFILE>;
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;
close(ADFILE);
にしてみた @qb6
>>386
open(ADFILE,"内緒");
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>; # ここで変換
close(ADFILE);
ですー
あー、このあたりもスキーリさせれば良かったのか、、、orz...
open(ADFILE,"内緒");
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>; # ここで変換
close(ADFILE);
ですー
あー、このあたりもスキーリさせれば良かったのか、、、orz...
>>387-388
ですですー
ですですー
393FOX ★
2005/06/05(日) 04:42:08ID:???0 落着いて待ってます…
=≡= ∧_∧
/ (・∀・ )
〆 ┌ | | .∈≡∋
|| γ ⌒ヽヽコノ ||
|| .| |:::|∪〓 ||
./|\人 _.ノノ _||_. /|\
=≡= ∧_∧
/ (・∀・ )
〆 ┌ | | .∈≡∋
|| γ ⌒ヽヽコノ ||
|| .| |:::|∪〓 ||
./|\人 _.ノノ _||_. /|\
>>392
はい。そうなるですm(_ _)m
はい。そうなるですm(_ _)m
2005/06/05(日) 04:44:37ID:Eclfk4XM0
てst
397モーマン☆鯛。@p2
2005/06/05(日) 04:44:46ID:CusxkNZG0 いっぷくしつつ10分まつとか
398動け動けウゴウゴ2ちゃんねる
2005/06/05(日) 04:45:23ID:dSP9Z3eN0 なんとなくまんこ
2005/06/05(日) 04:46:00ID:C31UvYa30
直りました。 お疲れ様
400root▲ ★
NGNG クリアできたはず。< BBX
401root▲ ★
NGNG で、
> ・このバージョンを配布する
お願いします。>FOXさん
> ・このバージョンを配布する
お願いします。>FOXさん
403reffi@報告人 ★
NGNG また書けなくなりそうのでキャップ使うか
>402
クリアした状態でもう一度テストしてきます。
(わざとrockされてからの通常書き込み)
>402
クリアした状態でもう一度テストしてきます。
(わざとrockされてからの通常書き込み)
404reffi@報告人 ★
2005/06/05(日) 04:51:19ID:???0 >402
rockした後で正常に書き込みは出来ましたけど一発サクラになってます。
(IP変えた後なのにrockワード書いただけで吸い込まれた)
rockした後で正常に書き込みは出来ましたけど一発サクラになってます。
(IP変えた後なのにrockワード書いただけで吸い込まれた)
405reffi@報告人 ★
2005/06/05(日) 04:56:33ID:???0 テストして報告してるのが漏れしかいないので更にテスター募集
運用情報(金)で改善版動いているのでよろしくお願いします。
運用情報(金)で改善版動いているのでよろしくお願いします。
406FOX ★
2005/06/05(日) 05:02:07ID:???0 配布しますか、
みんながテスター
みんながテスター
NGNG
409FOX ★
2005/06/05(日) 05:03:28ID:???0 配布したです。
410reffi@報告人 ★
2005/06/05(日) 05:03:43ID:???0 募集したらテストしてもらっているようです。
※テスターの人へ
不具合報告等はこちらまで
※テスターの人へ
不具合報告等はこちらまで
411root▲ ★
NGNG 現在、glist / klist とも、初期化した状態です。>未承諾広告さん、ALL
412● ◆ANGLERlqvM
NGNG さくら、非さくら、BBR共に正常に取れていますですです。
(吸い込み動作も確認取れました。)
BBX チェック(2ちゃんねるで広告爆撃したホストなどが、登録されています。)
La ROCA es la vida.(-_-)
;; ANSWER SECTION (1 record)
48.33.105.220.bbx.2ch.net.2048INTXT"shutouted by BBX: 220.105.33.48"
Monazilla/1.00 MAKA/1.0b
(吸い込み動作も確認取れました。)
BBX チェック(2ちゃんねるで広告爆撃したホストなどが、登録されています。)
La ROCA es la vida.(-_-)
;; ANSWER SECTION (1 record)
48.33.105.220.bbx.2ch.net.2048INTXT"shutouted by BBX: 220.105.33.48"
Monazilla/1.00 MAKA/1.0b
414root▲ ★
NGNG DNS側、正常に見えます。
異常なパケットの増加等、観測されていません。
DB登録部分も正常。
異常なパケットの増加等、観測されていません。
DB登録部分も正常。
415FOX ★
2005/06/05(日) 05:08:03ID:???0 大変です
お腹ぐるぐるしています
旅にでます
お腹ぐるぐるしています
旅にでます
416root▲ ★
NGNG417root▲ ★
NGNG で、今 220.105.33.48 を bbxdel しておきました。
>>415
お、お、お大事にです(汗)
>>416
NG ワード履歴。
履歴。[総数 5]
トラップ日時 IPアドレス フラグ サブスクライバ 鯖名/板/
2005/06/05/(日) 05:03:16 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:53 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:44 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:34 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:00:48 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
桶みたいですよね♪
お、お、お大事にです(汗)
>>416
NG ワード履歴。
履歴。[総数 5]
トラップ日時 IPアドレス フラグ サブスクライバ 鯖名/板/
2005/06/05/(日) 05:03:16 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:53 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:44 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:34 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:00:48 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
桶みたいですよね♪
上手いこと動いてる悪寒。qb6
IP繋ぎなおしても動作正常に見えました。
Monazilla/1.00Hotzonu/2.0
IP繋ぎなおしても動作正常に見えました。
Monazilla/1.00Hotzonu/2.0
421root▲ ★
NGNG >>420
# ./main/bbxdump.pl -kC | grep 219.98.185.135
219.98.185.135 Sat Jun 4 13:10:03 2005
これも、これから消しておきます。
# ./main/bbxdump.pl -kC | grep 219.98.185.135
219.98.185.135 Sat Jun 4 13:10:03 2005
これも、これから消しておきます。
422FOX ★
2005/06/05(日) 05:14:11ID:???0 ok?
425FOX ★
2005/06/05(日) 05:16:13ID:???0 わーい
426root▲ ★
NGNG で、Rock54で登録されたIPアドレスのリストをいったんクリアしたので、
一時的に広告貼られるかもですが、
業者さんが自ら貼ろうとしていくことにより、
時間を追って、正常に戻っていくかと。
一時的に広告貼られるかもですが、
業者さんが自ら貼ろうとしていくことにより、
時間を追って、正常に戻っていくかと。
暫し観測ってところでしょうか。
何だかモヤモヤしていたのがすっきりとした感じです。
みなさんありがとうございましたですですm(_ _)m深謝
何だか、次の目標みたいなのが見え隠れしてきたような♪
何だかモヤモヤしていたのがすっきりとした感じです。
みなさんありがとうございましたですですm(_ _)m深謝
何だか、次の目標みたいなのが見え隠れしてきたような♪
428root▲ ★
NGNG 落ち着いたら、再度 bbs.cgi をプロファイリングしてみるです。@ qb6
429root▲ ★
NGNG 順調に(普通のペースで) klist が増えていっているようなので、
問題なさげですね。
Rock54システム側は、どんなかんじかしら。>未承諾広告さん
問題なさげですね。
Rock54システム側は、どんなかんじかしら。>未承諾広告さん
430reffi@報告人 ★
2005/06/05(日) 05:22:08ID:???0 これでようやく一段落かな
作業してくれた人、乙でした〜〜〜
※もし直せる人が寝た状態だったら恐ろしいことになってた悪寒
(報告によると公式p2はおろか携帯も巻き添えが及んでいたらしいです。)
作業してくれた人、乙でした〜〜〜
※もし直せる人が寝た状態だったら恐ろしいことになってた悪寒
(報告によると公式p2はおろか携帯も巻き添えが及んでいたらしいです。)
432root▲ ★
NGNG 了解です。>>431
で、今のままだと統計見るのに影響があるので、
今日のはずかしい記録(wを、これから消しておくです。>未承諾さん
http://mumumu.mu/mrtg/mrtg-rrd.cgi/bbqbbx/bbr.html
で、今のままだと統計見るのに影響があるので、
今日のはずかしい記録(wを、これから消しておくです。>未承諾さん
http://mumumu.mu/mrtg/mrtg-rrd.cgi/bbqbbx/bbr.html
434root▲ ★
NGNG さっきのは、ちゃんと通ってなかったっぽいです。
こんどのは、それっぽいです。
確実に、コストは下がってるですね。
%dprofpp tmon.out
Total Elapsed Time = 0.599639 Seconds
User+System Time = 0.302764 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
12.8 0.039 0.039 1 0.0391 0.0391 main::initFOX
10.2 0.031 0.031 1 0.0312 0.0312 main::IsKoukoku
10.2 0.031 0.125 1 0.0312 0.1251 main::bbs_entryXXX
7.60 0.023 0.128 19 0.0012 0.0067 main::BEGIN
5.28 0.016 0.023 10 0.0016 0.0023 LWP::UserAgent::BEGIN
4.95 0.015 0.059 1 0.0155 0.0592 main::bbs_main
4.95 0.015 0.037 11 0.0014 0.0034 Net::DNS::Resolver::Base::BEGIN
2.64 0.008 0.008 1 0.0078 0.0078 Carp::shortmess
2.64 0.008 0.008 5 0.0016 0.0016 DynaLoader::dl_load_file
2.64 0.008 0.008 49 0.0002 0.0002 Exporter::import
2.64 0.008 0.008 8 0.0010 0.0010 Net::HTTP::Methods::my_readline
2.64 0.008 0.008 4 0.0020 0.0019 Net::DNS::Header::new
2.64 0.008 0.008 3 0.0026 0.0026 HTTP::Message::content
2.64 0.008 0.008 1 0.0078 0.0077 Fh::BEGIN
2.64 0.008 0.008 4 0.0019 0.0019 HTTP::Response::BEGIN
こんどのは、それっぽいです。
確実に、コストは下がってるですね。
%dprofpp tmon.out
Total Elapsed Time = 0.599639 Seconds
User+System Time = 0.302764 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
12.8 0.039 0.039 1 0.0391 0.0391 main::initFOX
10.2 0.031 0.031 1 0.0312 0.0312 main::IsKoukoku
10.2 0.031 0.125 1 0.0312 0.1251 main::bbs_entryXXX
7.60 0.023 0.128 19 0.0012 0.0067 main::BEGIN
5.28 0.016 0.023 10 0.0016 0.0023 LWP::UserAgent::BEGIN
4.95 0.015 0.059 1 0.0155 0.0592 main::bbs_main
4.95 0.015 0.037 11 0.0014 0.0034 Net::DNS::Resolver::Base::BEGIN
2.64 0.008 0.008 1 0.0078 0.0078 Carp::shortmess
2.64 0.008 0.008 5 0.0016 0.0016 DynaLoader::dl_load_file
2.64 0.008 0.008 49 0.0002 0.0002 Exporter::import
2.64 0.008 0.008 8 0.0010 0.0010 Net::HTTP::Methods::my_readline
2.64 0.008 0.008 4 0.0020 0.0019 Net::DNS::Header::new
2.64 0.008 0.008 3 0.0026 0.0026 HTTP::Message::content
2.64 0.008 0.008 1 0.0078 0.0077 Fh::BEGIN
2.64 0.008 0.008 4 0.0019 0.0019 HTTP::Response::BEGIN
436root▲ ★
NGNG で、
@FOX_Ro54 = <ADFILE> ;
を、
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;
にした分、initFOX のコストが少し上がったと。
でも、全体のコストは下がったと、そんなかんじか。
@FOX_Ro54 = <ADFILE> ;
を、
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;
にした分、initFOX のコストが少し上がったと。
でも、全体のコストは下がったと、そんなかんじか。
437root▲ ★
NGNG …でも、initFOX は上のほうにもあるように、船が出港する時しか通らないから、
全体としては、大幅にコスト下がってるですね。
1回目で 1/4 ということは(>>434-435)、
常駐型なら、ほんとに 1/10 にはなっている気がするです。
というわけで、関係した方々、おつでした。
これで、某サーバのスレ保持数を 700 でキープできるといいなと。
(ちょっと、500にするのは負けっぽいなと)
全体としては、大幅にコスト下がってるですね。
1回目で 1/4 ということは(>>434-435)、
常駐型なら、ほんとに 1/10 にはなっている気がするです。
というわけで、関係した方々、おつでした。
これで、某サーバのスレ保持数を 700 でキープできるといいなと。
(ちょっと、500にするのは負けっぽいなと)
2005/06/05(日) 05:52:04ID:lDRHu7D40
現時点でIskoukokuスルーになっている鯖は?
2005/06/05(日) 05:57:20ID:CusxkNZG0
4時頃にいきなり公式p2でdat取得済みのスレのスレタイのみが文字化けしてしまったのもこれが原因でしょうか?
ちなみに面白news板でdat取得済みのスレに起こった不具合のようですが
この場合、一旦ログを削除してdatを再取得しなければ直りませんかね?
ちなみに面白news板でdat取得済みのスレに起こった不具合のようですが
この場合、一旦ログを削除してdatを再取得しなければ直りませんかね?
2005/06/05(日) 06:17:17ID:lDRHu7D40
>>440
コストが減った事でその鯖群に戻す予定はないの?
コストが減った事でその鯖群に戻す予定はないの?
2005/06/05(日) 06:30:22ID:Udm1KQ0E0
懲罰鯖なんだから必要なしでいいんじゃない?
2005/06/05(日) 10:21:11ID:3ZFpX0H70
445一2ちゃんねら
2005/06/05(日) 15:32:51ID:qwR0dPua0 root▲ ★ さん、明け方まで乙でした。
いつも運営ありがとうございます。
どうぞお体にお気をつけて・・・。
いつも運営ありがとうございます。
どうぞお体にお気をつけて・・・。
2005/06/05(日) 16:44:10ID:3ZFpX0H70
>>308
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Mm][Oo][Rr][Ee]/);
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Mm][Oo][Nn][Ee][Yy]/);
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Pp][LlIi][SsZz]/);
$blacklist{$allunID} += 2 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz]/);
$blacklist{$allunID} += 5 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz][SsZz]/);
$blacklist{$allunID} += 10 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz][SsZz][SsZz][SsZz]/);
(chat)荒らしくたばれ(謎
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Mm][Oo][Rr][Ee]/);
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Mm][Oo][Nn][Ee][Yy]/);
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Pp][LlIi][SsZz]/);
$blacklist{$allunID} += 2 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz]/);
$blacklist{$allunID} += 5 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz][SsZz]/);
$blacklist{$allunID} += 10 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz][SsZz][SsZz][SsZz]/);
(chat)荒らしくたばれ(謎
2005/06/05(日) 17:56:13ID:zc3KDxSN0
449root▲ ★
NGNG 1時間ばかり前から、ex9 ex10 の IsKoukoku 有効にしてみた。
2005/06/06(月) 01:36:13ID:QKBCUdccO
現在2chで使用されているPerlは5.6より前のものなんですか?
451FOX ★
2005/06/06(月) 01:38:49ID:???0 いろいろじゃないかなぁ
version 意識したことはないっす
banana601(etc3)
This is perl, v5.6.1 built for i386-freebsd
version 意識したことはないっす
banana601(etc3)
This is perl, v5.6.1 built for i386-freebsd
2005/06/06(月) 02:14:55ID:QKBCUdccO
5.6以上なのであれば、
文字コードの変換にはXSのJcodeが使えたのでは。
PurePerlのjcode.plよりは負荷も少ないと思われますが。
文字コードの変換にはXSのJcodeが使えたのでは。
PurePerlのjcode.plよりは負荷も少ないと思われますが。
453root▲ ★
NGNG2005/06/06(月) 02:32:23ID:QKBCUdccO
そうでしたか。失礼。
上のソースを見たところ&jcode::*となっていたので
てっきりjcode.plを使っているものかと思いこんでいました。
上のソースを見たところ&jcode::*となっていたので
てっきりjcode.plを使っているものかと思いこんでいました。
455root▲ ★
NGNG >>454
jcode.pl 「も」使っているようですよ。
何せ、つぎはぎのソースなんで。
昨年のSpeedyCGI対応の時、
おじさんががんがってきれいにしてくれたので、前よりは「読もうかなぁ」という気にはなるですけど。
jcode.pl 「も」使っているようですよ。
何せ、つぎはぎのソースなんで。
昨年のSpeedyCGI対応の時、
おじさんががんがってきれいにしてくれたので、前よりは「読もうかなぁ」という気にはなるですけど。
2005/06/06(月) 02:59:09ID:QKBCUdccO
と言うと、大本の開発陣は運営側には回ってはいないのでしょうか。
このスレッドをみる限り、リアルタイムで、
それも高頻度でソースの書き換えが行われている様ですが
不特定多数が半端な理解で改造チックな改変を繰り返していると
いずれ対応出来なくなる可能性もあるのでは。
せめて構文チェックくらいはサーバに上げる前に:P
このスレッドをみる限り、リアルタイムで、
それも高頻度でソースの書き換えが行われている様ですが
不特定多数が半端な理解で改造チックな改変を繰り返していると
いずれ対応出来なくなる可能性もあるのでは。
せめて構文チェックくらいはサーバに上げる前に:P
457FOX ★
2005/06/06(月) 03:00:21ID:???0 もう六年もそれを・・・
NGNG
まぁ今ちゃんと動いてるんだし、書き直ししなくてもとりあえずは問題ないんじゃない?
NGNG
2005/06/06(月) 03:09:30ID:enB61RF60
まずくなったらその時考えよう(・∀・)
461stream ◆ap/yuix/tw
NGNG うへへ
2005/06/06(月) 03:13:23ID:QKBCUdccO
なんか偉そうなこと言っちゃいましたが
まあ、なんだ、その。頑張って下さい。( ̄∀ ̄)
私も一Perlerとしてこのスレッドに貢献出来るよう
身勝手ながら努めさせていただきます。
では。よい夜を。
まあ、なんだ、その。頑張って下さい。( ̄∀ ̄)
私も一Perlerとしてこのスレッドに貢献出来るよう
身勝手ながら努めさせていただきます。
では。よい夜を。
2005/06/06(月) 04:01:43ID:utjWLPN60
「説教するならコードをくれ」安達祐実
>>444
リファレンスをファイルに書き出してそれを配布して、、、読み込んでも使えないよね?@やってみたけれどもやっぱりダメだった。
でも、わざわざcsv形式にするよか、リファレンスにした方がsplitしないぶん楽になれるかなぁと。
>>453
Jcodeも0.88から2.00に一気に変わったので、要チェックかもです♪@Encodeのwrapperに
>>455
.plと.pmをごちゃ混ぜにするとまずいかもです。。。
.pmは下位互換があるので、.plは外した方がよいかも。。。
require './jcode.pl';
の行で読み込んでいます。
>>456
use strict;
use warnings;
を入れて、あにさんを悩ましてみたい衝動はいつもありますwwwWwww
>>462
よろしくですですm(_ _)m深謝
# Shift_JIS にしたことで、4,50個ほどエラーが出ているもよりです(苦笑)@NGワード
リファレンスをファイルに書き出してそれを配布して、、、読み込んでも使えないよね?@やってみたけれどもやっぱりダメだった。
でも、わざわざcsv形式にするよか、リファレンスにした方がsplitしないぶん楽になれるかなぁと。
>>453
Jcodeも0.88から2.00に一気に変わったので、要チェックかもです♪@Encodeのwrapperに
>>455
.plと.pmをごちゃ混ぜにするとまずいかもです。。。
.pmは下位互換があるので、.plは外した方がよいかも。。。
require './jcode.pl';
の行で読み込んでいます。
>>456
use strict;
use warnings;
を入れて、あにさんを悩ましてみたい衝動はいつもありますwwwWwww
>>462
よろしくですですm(_ _)m深謝
# Shift_JIS にしたことで、4,50個ほどエラーが出ているもよりです(苦笑)@NGワード
2005/06/06(月) 12:02:51ID:0dq56pC0O
JcodeがEncodeのラッパーになるのは5.8.1から。
というかPerl5.8.2を入れて
use encoding
use Encode qw/encode decoge/
した方がJcodeより速い希ガス
というかPerl5.8.2を入れて
use encoding
use Encode qw/encode decoge/
した方がJcodeより速い希ガス
466stream ◆ap/yuix/tw
NGNG ふと思いついたんだけど、過去の突発的な荒らしなどに対して、bbs.cgiに細工をして対処をしたことがあったと思うんだけど、
もう不要な処理については削除すれば、軽くなったりしないのかな。
思いついたもの
1.レスアンカーを付けまくる嵐が出たから、レスアンカーの数を制限した
2.一部の広告荒らしに対し、自動的にそのURLを消去し、名前をfusianaにする
もう不要な処理については削除すれば、軽くなったりしないのかな。
思いついたもの
1.レスアンカーを付けまくる嵐が出たから、レスアンカーの数を制限した
2.一部の広告荒らしに対し、自動的にそのURLを消去し、名前をfusianaにする
467stream ◆ap/yuix/tw
NGNG 「思いついた」というより、「思い出した」だな
2005/06/06(月) 21:02:50ID:i4YGKP210
bbs.cgiの朗読会を開こう
1行目から読んでいって
「この規制なんで入れたんだっけ?」
「あ、あの祭りのときだ」
「もういらないよね」
「じゃあ外そう」
1行目から読んでいって
「この規制なんで入れたんだっけ?」
「あ、あの祭りのときだ」
「もういらないよね」
「じゃあ外そう」
469タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/06(月) 21:40:57ID:TeQoYgbS0 おつdeath death。。
直感的レスを発動させます。
>>311 >正規表現の高速なやつを入れてみるぐらいか。
対象 : IsKoukoku 10.2
>>452-455 >>464 >jcode.pl をはずす。
対象 : 全体 弱い
>>465 >というかPerl5.8.2を入れて use encoding use Encode qw/encode decoge/
対象 : 全体 強い
>>468 >bbs.cgiの朗読会
対象 : main::BEGIN ? 7.60
>>434
UserAgent::BEGIN 5.28 もIsKousokuみたいなことになってるかもと”予測”。
直感的レスを発動させます。
>>311 >正規表現の高速なやつを入れてみるぐらいか。
対象 : IsKoukoku 10.2
>>452-455 >>464 >jcode.pl をはずす。
対象 : 全体 弱い
>>465 >というかPerl5.8.2を入れて use encoding use Encode qw/encode decoge/
対象 : 全体 強い
>>468 >bbs.cgiの朗読会
対象 : main::BEGIN ? 7.60
>>434
UserAgent::BEGIN 5.28 もIsKousokuみたいなことになってるかもと”予測”。
470タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/06(月) 21:44:54ID:TeQoYgbS0 UserAgent::BEGIN は関係なかったです。
471タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/07(火) 08:08:39ID:FCha78oI0 IsKoukoku の eval を外してみて計測してみるとかいかがでしょう。
472タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/07(火) 09:26:54ID:FCha78oI0 Shift JIS で起こる問題は、
バイトに変換して末尾が5Cの文字は、
エスケープする必要があるということです。
リストのメンテナンスがめんどくさくなる。
対策として、
euc-jp だったリストを unicode にして、
initFOX で変換してみる。
unicode の配列を Shift JIS に変換 # こっちのほうが変換が早いかもしれない。
euc-jp の配列を Shift JIS に変換 # 以前
Shift JIS の CSV型.txt(エスケープに問題がある) を読み込む # 現在
バイトに変換して末尾が5Cの文字は、
エスケープする必要があるということです。
リストのメンテナンスがめんどくさくなる。
対策として、
euc-jp だったリストを unicode にして、
initFOX で変換してみる。
unicode の配列を Shift JIS に変換 # こっちのほうが変換が早いかもしれない。
euc-jp の配列を Shift JIS に変換 # 以前
Shift JIS の CSV型.txt(エスケープに問題がある) を読み込む # 現在
2005/06/07(火) 12:03:34ID:AAvAUAYU0
2ch全体をeucで作り直すとかw
2005/06/07(火) 12:57:08ID:tM9aFKYiO
>>472
それはencodingプラグマで解決出来ませんでしょうか?
@IsKoukokuネタ
過去ログにあったアイデアなのですが、正規表現を一つにまとめてみるのはどうでしょう。
例:
use warnings "uninitialized"; #リストが空の時の警告回避
$Ro=qr/@{["(".join(")|(", map {$_->[0]} @FOX_Ro54).")"]}/o;
...
過去ログ内の話によると、やや効果があったようです。
よろしかったらお試ししあれ。
(チェックしてませんが。)
それはencodingプラグマで解決出来ませんでしょうか?
@IsKoukokuネタ
過去ログにあったアイデアなのですが、正規表現を一つにまとめてみるのはどうでしょう。
例:
use warnings "uninitialized"; #リストが空の時の警告回避
$Ro=qr/@{["(".join(")|(", map {$_->[0]} @FOX_Ro54).")"]}/o;
...
過去ログ内の話によると、やや効果があったようです。
よろしかったらお試ししあれ。
(チェックしてませんが。)
2005/06/07(火) 12:59:23ID:tM9aFKYiO
× use (ry
〇 no (ry
〇 no (ry
2005/06/07(火) 15:52:02ID:HQbFVFHx0
>>464
Shift_JISがどの段階でエラーを起こしているのか分からないが、
ファイルの読み込みの段階なら、Shift_JIS1文字にマッチする正規表現を
使って切り分ければ良いし、(エンコードよりはコストが安いはず)、正規表現の段階なら
Shift_JIS文字列だけquotemetaすれば良いし、Perlスクリプト内の埋め込み文字列に問題があるなら、
chop($a = <<'EOF')
aaaa
EOF
でOK。
Shift_JISがどの段階でエラーを起こしているのか分からないが、
ファイルの読み込みの段階なら、Shift_JIS1文字にマッチする正規表現を
使って切り分ければ良いし、(エンコードよりはコストが安いはず)、正規表現の段階なら
Shift_JIS文字列だけquotemetaすれば良いし、Perlスクリプト内の埋め込み文字列に問題があるなら、
chop($a = <<'EOF')
aaaa
EOF
でOK。
2005/06/07(火) 17:39:29ID:LLOWUNeo0
2005/06/07(火) 22:47:25ID:fi6yLSjv0
> 正規表現の段階なら
> Shift_JIS文字列だけquotemetaすれば良いし、
> Shift_JIS文字列だけquotemetaすれば良いし、
479476
2005/06/08(水) 12:25:18ID:DTGWGuO70 >>477
NGワード内って正規表現交じりですか?そうでないならばっさりquotemetaすれば良いし、
Shift_JIS部分だけquotemetaするコードくらいなら書きますよ。
あと、済んだことだけど、
# 読み込む。。。
# my @Rock_word = @FOX_Ro54; # メモリの無駄なので省略してみました。
こういう場合は参照使えばメモリ食わないんではないかと。
性能には一切貢献しないと思うけど、
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # 長いので代入
こういうのも
my $In_Strings = \$GB->{FORM}->{'MESSAGE'}; # 長いので代入
こうして$$In_Stringsで使った方が若干メモリ(と文字列コピーにかかるコスト)はお徳。
もう一点。eval使ってるのは正規表現エラー回避のトラップでしょうか?
コケるような正規表現が混じってる可能性があるなら、
>>474
の策は、@FOX_Ro54に1つでも不備があると全部のチェックがコケますね。
NGワードに正規表現が一切ないという仮定なら、事前に@FOX_Ro54の中身を
丸ごとquotemetaすれば、正規表現でコケないはずなのでevalは外せるのでは。
NGワード内って正規表現交じりですか?そうでないならばっさりquotemetaすれば良いし、
Shift_JIS部分だけquotemetaするコードくらいなら書きますよ。
あと、済んだことだけど、
# 読み込む。。。
# my @Rock_word = @FOX_Ro54; # メモリの無駄なので省略してみました。
こういう場合は参照使えばメモリ食わないんではないかと。
性能には一切貢献しないと思うけど、
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # 長いので代入
こういうのも
my $In_Strings = \$GB->{FORM}->{'MESSAGE'}; # 長いので代入
こうして$$In_Stringsで使った方が若干メモリ(と文字列コピーにかかるコスト)はお徳。
もう一点。eval使ってるのは正規表現エラー回避のトラップでしょうか?
コケるような正規表現が混じってる可能性があるなら、
>>474
の策は、@FOX_Ro54に1つでも不備があると全部のチェックがコケますね。
NGワードに正規表現が一切ないという仮定なら、事前に@FOX_Ro54の中身を
丸ごとquotemetaすれば、正規表現でコケないはずなのでevalは外せるのでは。
480476
2005/06/08(水) 15:50:17ID:DTGWGuO70 > Shift_JIS部分だけquotemetaするコードくらいなら書きますよ。
とか言うほどの事じゃなかった。むしろテストの方が大変だった。
必要な作業だったのかどうか謎だけど一応上げておきます。
perl5.00503でテスト。
(票表十){2}
とか問題ありそうなShift_JIS + 正規表現交じりでやってみたけどOKでした。
foreach my $NG_word_ref (@FOX_Ro54){
my $NG_word = $NG_word_ref->[0]; # エスケープしたままじゃ他で使えないのでコピー
next unless $NG_word; # 空文字列ならスキップ
$NG_word =~ s/((?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+)/quotemeta($1)/geo;
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
○チェック文字列1 - (票表十){2}
○チェック文字列2 - 十予約表
○In_Strings - ああ票表十票表十予約表いい
■裸の場合。
> /([\){2}/: unmatched [] in regexp at ./check.pl line 22.
> /\驅/: trailing \ in regexp at ./check.pl line 22.
■正規表現を噛ませた場合
> found.
> found.
とか言うほどの事じゃなかった。むしろテストの方が大変だった。
必要な作業だったのかどうか謎だけど一応上げておきます。
perl5.00503でテスト。
(票表十){2}
とか問題ありそうなShift_JIS + 正規表現交じりでやってみたけどOKでした。
foreach my $NG_word_ref (@FOX_Ro54){
my $NG_word = $NG_word_ref->[0]; # エスケープしたままじゃ他で使えないのでコピー
next unless $NG_word; # 空文字列ならスキップ
$NG_word =~ s/((?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+)/quotemeta($1)/geo;
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
○チェック文字列1 - (票表十){2}
○チェック文字列2 - 十予約表
○In_Strings - ああ票表十票表十予約表いい
■裸の場合。
> /([\){2}/: unmatched [] in regexp at ./check.pl line 22.
> /\驅/: trailing \ in regexp at ./check.pl line 22.
■正規表現を噛ませた場合
> found.
> found.
リストは、正規表現文字列が連なっております。
例えば。
(\.|.|/|/)(3|3|4|4|6|6|8|8|9|9 ...長いので省略。
↓Shift_JISですと、こうなります。
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE .|.|/|/)(3|3|4|4|6|6|8|8|9|9 ...長いので省略。
/が、バけていますよね♪([/] = 0x815E)
→こういう場合は参照使えばメモリ食わないんではないかと。
それ以前に、IsKoukokuでしか利用されていませんので、そのまま利用しました。
リファレンスにしろグローバルを触っちゃいますし。
→こうして$$In_Stringsで使った方が若干メモリ(と文字列コピーにかかるコスト)はお徳。
でもって、こう書いちゃうと中の人が呑み屋さんに繰り出しちゃう恐れがあるので避けていたりもしますです(w
→もう一点。eval使ってるのは正規表現エラー回避のトラップでしょうか?
ですです。
発行元でもチェックを行っていますが、以前と同じ失敗(すべてRockされる)を繰り返さないようにと、あえてそのようにしてあります。
例えば。
(\.|.|/|/)(3|3|4|4|6|6|8|8|9|9 ...長いので省略。
↓Shift_JISですと、こうなります。
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE .|.|/|/)(3|3|4|4|6|6|8|8|9|9 ...長いので省略。
/が、バけていますよね♪([/] = 0x815E)
→こういう場合は参照使えばメモリ食わないんではないかと。
それ以前に、IsKoukokuでしか利用されていませんので、そのまま利用しました。
リファレンスにしろグローバルを触っちゃいますし。
→こうして$$In_Stringsで使った方が若干メモリ(と文字列コピーにかかるコスト)はお徳。
でもって、こう書いちゃうと中の人が呑み屋さんに繰り出しちゃう恐れがあるので避けていたりもしますです(w
→もう一点。eval使ってるのは正規表現エラー回避のトラップでしょうか?
ですです。
発行元でもチェックを行っていますが、以前と同じ失敗(すべてRockされる)を繰り返さないようにと、あえてそのようにしてあります。
2005/06/08(水) 19:06:25ID:DTGWGuO70
>>481
その文字列でチェックしてみたんですが、
5.00503ではエラー起きませんね。省略部分に何かあるんではないでしょうか?
> (\.|.|/|/)(3|3|4|4|6|6|8|8|9|9
これの8ビット目が立ってるバイトを「#」に置き換えると↓こんな感じです。
(.|#D|/|#^)(3|#R|4|#S|6|#U|8|#W|9|#X
「^」は一応メタキャラですが文頭にないので素通りのようです。最後、括弧が閉じてないので
勝手に閉じ括弧付けて実験しました。
もし全文か、他のお題があればこっちでチェックしますよ。
でもこの手のエラーはおそらく>>480のコードで全部解決するんじゃないかと思います。
参照とevalに関しては了解です。
その文字列でチェックしてみたんですが、
5.00503ではエラー起きませんね。省略部分に何かあるんではないでしょうか?
> (\.|.|/|/)(3|3|4|4|6|6|8|8|9|9
これの8ビット目が立ってるバイトを「#」に置き換えると↓こんな感じです。
(.|#D|/|#^)(3|#R|4|#S|6|#U|8|#W|9|#X
「^」は一応メタキャラですが文頭にないので素通りのようです。最後、括弧が閉じてないので
勝手に閉じ括弧付けて実験しました。
もし全文か、他のお題があればこっちでチェックしますよ。
でもこの手のエラーはおそらく>>480のコードで全部解決するんじゃないかと思います。
参照とevalに関しては了解です。
483476
2005/06/09(木) 12:03:19ID:NnR04xax0 evalってコスト高いんじゃ……?と思ったのでベンチ取ってみた。
@FOX_Ro54が2048個のチェックを1000回。
Benchmark: timing 1000 iterations of with_eval, with_noeval...
with_eval: 159 wallclock secs (158.80 usr + 0.02 sys = 158.82 CPU) @ 6.30/s (n=1000)
with_noeval: 155 wallclock secs (154.28 usr + 0.05 sys = 154.33 CPU) @ 6.48/s (n=1000)
誤差の範囲内なので、運用上の安全を考えると現状維持で良いと思った。>>480のコードのベンチも取ってみた。
ついでにJcode.pmで双方ともEUCに変換した時の結果も。
Benchmark: timing 1000 iterations of with_jcode, with_noreg, with_reg...
with_jcode: 493 wallclock secs (490.95 usr + 0.07 sys = 491.02 CPU) @ 2.04/s (n=1000)
with_noreg: 124 wallclock secs (123.99 usr + 0.04 sys = 124.03 CPU) @ 8.06/s (n=1000)
with_reg: 159 wallclock secs (158.80 usr + 0.02 sys = 158.82 CPU) @ 6.30/s (n=1000)
割と予想通りの結果。落としどころとしては悪くないんでは。>Shift_JISのquotemeta
"Rock54_List"ファイルにquotemetaしたものを突っ込んでおくというのもアリだけど、目視やエディタでの編集ができなくなります。
IsKoukokuでしか使わないのなら、Rock54読み込み時に先にquotemetaしとくってのはアリかも知れません。
@FOX_Ro54が2048個のチェックを1000回。
Benchmark: timing 1000 iterations of with_eval, with_noeval...
with_eval: 159 wallclock secs (158.80 usr + 0.02 sys = 158.82 CPU) @ 6.30/s (n=1000)
with_noeval: 155 wallclock secs (154.28 usr + 0.05 sys = 154.33 CPU) @ 6.48/s (n=1000)
誤差の範囲内なので、運用上の安全を考えると現状維持で良いと思った。>>480のコードのベンチも取ってみた。
ついでにJcode.pmで双方ともEUCに変換した時の結果も。
Benchmark: timing 1000 iterations of with_jcode, with_noreg, with_reg...
with_jcode: 493 wallclock secs (490.95 usr + 0.07 sys = 491.02 CPU) @ 2.04/s (n=1000)
with_noreg: 124 wallclock secs (123.99 usr + 0.04 sys = 124.03 CPU) @ 8.06/s (n=1000)
with_reg: 159 wallclock secs (158.80 usr + 0.02 sys = 158.82 CPU) @ 6.30/s (n=1000)
割と予想通りの結果。落としどころとしては悪くないんでは。>Shift_JISのquotemeta
"Rock54_List"ファイルにquotemetaしたものを突っ込んでおくというのもアリだけど、目視やエディタでの編集ができなくなります。
IsKoukokuでしか使わないのなら、Rock54読み込み時に先にquotemetaしとくってのはアリかも知れません。
>>483
エロエロとありがとうですm(_ _)m深謝
ただ、、、今、家にあるメインの林檎機が昇天されましたので、対応が出来ないで居ますですぅぅぅ(滂沱)
♪実はすべての作業を林檎機でやっているものでして・・・
エロエロとありがとうですm(_ _)m深謝
ただ、、、今、家にあるメインの林檎機が昇天されましたので、対応が出来ないで居ますですぅぅぅ(滂沱)
♪実はすべての作業を林檎機でやっているものでして・・・
2005/06/09(木) 18:20:52ID:b8qRY6Z90
quotemetaを使わずに
s/(?<=[\x81-\x9F\xE0-\xFC])[\[\\\]\^\{\|\}]/\\$&/g
とかでも(やってることはあんまり違わないか)
s/(?<=[\x81-\x9F\xE0-\xFC])[\[\\\]\^\{\|\}]/\\$&/g
とかでも(やってることはあんまり違わないか)
486476
2005/06/09(木) 20:08:30ID:NnR04xax0 >>485
それだとエラーが出ますね。例えば、
"ワ[a]"
だと「ワ」は2バイト目も8bitが立っているので検索がスキップされますよね。
で、2バイト目と3バイト目の組み合わせをShift_JISの「充」と間違えて開き角括弧
「 [ 」をエスケープしてしまいます。
それだとエラーが出ますね。例えば、
"ワ[a]"
だと「ワ」は2バイト目も8bitが立っているので検索がスキップされますよね。
で、2バイト目と3バイト目の組み合わせをShift_JISの「充」と間違えて開き角括弧
「 [ 」をエスケープしてしまいます。
2005/06/09(木) 20:50:47ID:b8qRY6Z90
>>486
おお、そうだ。
おお、そうだ。
2005/06/09(木) 23:45:12ID:b8qRY6Z90
もしかしてこうすればいいのか?(未テスト)
s/([\x81-\x9F\xE0-\xFC])([\[\\\]\^\{\|\}\x81-\x9F\xE0-\xFC])/$1\\$2/g
s/([\x81-\x9F\xE0-\xFC])([\[\\\]\^\{\|\}\x81-\x9F\xE0-\xFC])/$1\\$2/g
489476
2005/06/10(金) 00:51:10ID:C8+6ZCy40 >>488
30秒考えた限りでは問題なさそう。ただ、ベンチ取った結果、quotemetaとほとんど
コスト同じなんだよね。2、3回やってみたけど誤差前後1秒以内。
with_reg1: 146 wallclock secs (144.33 usr + 0.05 sys = 144.38 CPU) @ 6.93/s (n=1000)
with_reg2: 145 wallclock secs (144.18 usr + 0.05 sys = 144.23 CPU) @ 6.93/s (n=1000)
となるとquotemetaの方が安全かなとは思う(自分贔屓ですんません)。
30秒考えた限りでは問題なさそう。ただ、ベンチ取った結果、quotemetaとほとんど
コスト同じなんだよね。2、3回やってみたけど誤差前後1秒以内。
with_reg1: 146 wallclock secs (144.33 usr + 0.05 sys = 144.38 CPU) @ 6.93/s (n=1000)
with_reg2: 145 wallclock secs (144.18 usr + 0.05 sys = 144.23 CPU) @ 6.93/s (n=1000)
となるとquotemetaの方が安全かなとは思う(自分贔屓ですんません)。
2005/06/10(金) 01:11:38ID:Mm/OM+6u0
491タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/10(金) 08:39:08ID:klkomdbB0 >>483ナイスゥ
中の人が呑み屋さんに繰り出しちゃわないようにまとめてみます。
Shift_JIS の場合、エスケープする必要あり。
エスケープしておくと、リストの編集がはげしくめんどい。
解決方法
1、encodingプラグマでエンコードする
2、Shift_JIS文字列だけquotemetaする (エンコードよりはコストが安いはず)
後者のほうが処理コストが安い。
中の人が呑み屋さんに繰り出しちゃわないようにまとめてみます。
Shift_JIS の場合、エスケープする必要あり。
エスケープしておくと、リストの編集がはげしくめんどい。
解決方法
1、encodingプラグマでエンコードする
2、Shift_JIS文字列だけquotemetaする (エンコードよりはコストが安いはず)
後者のほうが処理コストが安い。
492476
2005/06/10(金) 11:20:46ID:C8+6ZCy40 >>484
ご愁傷さまです。早い復活を祈ってます。
>>480
あと若干ソースを変更。空文字チェックは直前の方がより安全ってのと、evalの結果の代入は
必要ないかと。
foreach my $NG_word_ref (@FOX_Ro54){
my $NG_word = $NG_word_ref->[0]; # エスケープしたままじゃ他で使えないのでコピー
$NG_word =~ s/((?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+)/quotemeta($1)/geo;
next unless $NG_word; # 空文字列ならスキップ
eval{$main::In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
ご愁傷さまです。早い復活を祈ってます。
>>480
あと若干ソースを変更。空文字チェックは直前の方がより安全ってのと、evalの結果の代入は
必要ないかと。
foreach my $NG_word_ref (@FOX_Ro54){
my $NG_word = $NG_word_ref->[0]; # エスケープしたままじゃ他で使えないのでコピー
$NG_word =~ s/((?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+)/quotemeta($1)/geo;
next unless $NG_word; # 空文字列ならスキップ
eval{$main::In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
493476
2005/06/10(金) 11:23:23ID:C8+6ZCy40 × eval{$main::In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
○ eval{$In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
失礼。
○ eval{$In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
失礼。
496476
2005/06/11(土) 01:23:50ID:VA/kMcZN0 >>494
お疲れ様です。とりあえず、
next unless $NG_word; # 空文字列ならスキップ
これはevalの直前に入れた方がいいと思うです。evalと同じくfail safeってことで。
極端な話、use strictしてないんだったら、quotemetaをtypoしただけで
NG_wordが全部空文字列(投稿が全部エラー)になるわけで。
お疲れ様です。とりあえず、
next unless $NG_word; # 空文字列ならスキップ
これはevalの直前に入れた方がいいと思うです。evalと同じくfail safeってことで。
極端な話、use strictしてないんだったら、quotemetaをtypoしただけで
NG_wordが全部空文字列(投稿が全部エラー)になるわけで。
s/([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])(?<!\\[^$\$\(\)\*\+\-\.\?\[\|\]\^\{\|\}])/quotemeta $1/ego;
が、今のところいー感じです♪
が、今のところいー感じです♪
klistに不具合がでていたその要因がわかりました。
IsKoukouの中にある、、、
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
を、、、
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { $NG_word_ref->[0] = $&; return $NG_word_ref; } # 合致したらNGワード部分の摘出とリファレンスを返す。
のように$&を返すようにしていただけるとありがたいですm(_ _)m
IsKoukouの中にある、、、
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
を、、、
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { $NG_word_ref->[0] = $&; return $NG_word_ref; } # 合致したらNGワード部分の摘出とリファレンスを返す。
のように$&を返すようにしていただけるとありがたいですm(_ _)m
2005/06/12(日) 17:28:29ID:/I3kxr/A0
【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part18
http://qb5.2ch.net/test/read.cgi/operate/1115133136/741 より
741 名前:root▲ ★[sage] 投稿日:2005/06/12(日) 17:17:42 ID:???0 BE:3831067-##
bbs.cgi 暴走対策として、RLimitCPU を 10 から 5 に変更。
どうも、スレ立てに暴走へと繋がる爆弾がひそんでいるような気がするですね。
だそうですが。
http://qb5.2ch.net/test/read.cgi/operate/1115133136/741 より
741 名前:root▲ ★[sage] 投稿日:2005/06/12(日) 17:17:42 ID:???0 BE:3831067-##
bbs.cgi 暴走対策として、RLimitCPU を 10 から 5 に変更。
どうも、スレ立てに暴走へと繋がる爆弾がひそんでいるような気がするですね。
だそうですが。
503▲ ◆cZfSunOs.U
2005/06/12(日) 18:07:45ID:uT21qpVz0 今は subject.txt や index.html の更新時にロックしてないらしいので,
競合した時に意図せぬ動作につながっている,とかも考えられなくもないですね.
subject.txt のレス数について,単純にインクリメントするだけだとずれてくので
dat 中のレス数を毎回数え直さないといけないってのも,ロックしてない故の
競合によって起きてるような気もします.
で,対策ですが,まず考えられるのはきちんとロックするということですね.
それ以外の方法としては,message queue を利用して,bbs.cgi からは
subject.txt 等の更新要求を mq に放り込んで,別途走らせておく
更新用デーモンが mq から要求を取り出して処理する,って感じでしょうか.
mq を利用する方法なら,ロックしなくても処理がシリアライズされますし,
その更新用デーモンを C で書いて subject の並べ替えを例えば mmap() して
memmove() するような処理にすれば,今の Perl の処理よりも軽くできると思います.
競合した時に意図せぬ動作につながっている,とかも考えられなくもないですね.
subject.txt のレス数について,単純にインクリメントするだけだとずれてくので
dat 中のレス数を毎回数え直さないといけないってのも,ロックしてない故の
競合によって起きてるような気もします.
で,対策ですが,まず考えられるのはきちんとロックするということですね.
それ以外の方法としては,message queue を利用して,bbs.cgi からは
subject.txt 等の更新要求を mq に放り込んで,別途走らせておく
更新用デーモンが mq から要求を取り出して処理する,って感じでしょうか.
mq を利用する方法なら,ロックしなくても処理がシリアライズされますし,
その更新用デーモンを C で書いて subject の並べ替えを例えば mmap() して
memmove() するような処理にすれば,今の Perl の処理よりも軽くできると思います.
506root▲ ★
NGNG むこうで聞いてみるか。
507root▲ ★
NGNG さて、どうも配布用DBがこわれてるっぽいと。
で、配布用DBを作っているやつがおかしくなったらしいと。
質問・雑談スレ174@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1118562549/625-646
で、配布用DBを作っているやつがおかしくなったらしいと。
質問・雑談スレ174@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1118562549/625-646
508root▲ ★
NGNG ということで、この問題は後で別途ということに。
>>501
if (my $matched = eval{$In_Strings =~ m<$NG_word> ? return $& : return undef}) {
$NG_word_ref->[0] = $matched; return $NG_word_ref
} # 合致したらNGワード部分の摘出とリファレンスを返す。
もしかするとこうかもしれませんですm(_ _)m深謝
if (my $matched = eval{$In_Strings =~ m<$NG_word> ? return $& : return undef}) {
$NG_word_ref->[0] = $matched; return $NG_word_ref
} # 合致したらNGワード部分の摘出とリファレンスを返す。
もしかするとこうかもしれませんですm(_ _)m深謝
>>509
訂正前に送信しちゃってごめんなさいです。
if (my $matched = eval{ return $In_Strings =~ m<$NG_word> ? $& : undef }) {
$NG_word_ref->[0] = $matched; return $NG_word_ref
} # 合致したらNGワード部分の摘出とリファレンスを返す。
ですm(_ _)m深謝
訂正前に送信しちゃってごめんなさいです。
if (my $matched = eval{ return $In_Strings =~ m<$NG_word> ? $& : undef }) {
$NG_word_ref->[0] = $matched; return $NG_word_ref
} # 合致したらNGワード部分の摘出とリファレンスを返す。
ですm(_ _)m深謝
512root▲ ★
NGNG if (my $matched = eval{ return $In_Strings =~ m<$NG_word> ? $& : undef }) {
$NG_word_ref->[0] = $matched; return $NG_word_ref;
} # 合致したらNGワード部分の摘出とリファレンスを返す。
これを配布しました。
$NG_word_ref->[0] = $matched; return $NG_word_ref;
} # 合致したらNGワード部分の摘出とリファレンスを返す。
これを配布しました。
514stream ◆ap/yuix/tw
NGNG 名前欄に山崎渉が入ってるとfusianaになる機能とか、
そんな感じのいろんな過去の遺物を取り払ったら負荷が減ったりしないかな
そんな感じのいろんな過去の遺物を取り払ったら負荷が減ったりしないかな
516root▲ ★
NGNG ちなみに某京ぽんから「む山崎渉」って名前欄に入れているので、
この機能なくなると、ちょっと困っちゃったりして(w。
この機能なくなると、ちょっと困っちゃったりして(w。
517讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG fusianasanじゃないのかw
2005/06/15(水) 13:16:52ID:XFl23xTO0
だったら
fusianasanでリモホ表示を無くし、
もっと簡単な文字でリモホ表示ができるようになれば良いじゃないか、とか思った。
誰も使わんような文字とかで、被害が出ない程度に。
fusianasanでリモホ表示を無くし、
もっと簡単な文字でリモホ表示ができるようになれば良いじゃないか、とか思った。
誰も使わんような文字とかで、被害が出ない程度に。
2005/06/15(水) 21:00:21ID:u+DtC+Eo0
>>518
> fusianasanでリモホ表示を無くし、
それをやった場合、
・メリット = もしかしたら軽くなるかもしれないが、不明
・デメリット = もしかしたら何が起きるか、不明
最低限でもメリットがデメリットを下回らないことが確実であることが
開発の条件だと思うです。
> fusianasanでリモホ表示を無くし、
それをやった場合、
・メリット = もしかしたら軽くなるかもしれないが、不明
・デメリット = もしかしたら何が起きるか、不明
最低限でもメリットがデメリットを下回らないことが確実であることが
開発の条件だと思うです。
2005/06/16(木) 01:15:09ID:/BCKYOVZ0
>>518
・デメリット = たくさん考えられたフューザネイザン等のコピペが意味を成さなくなる。
・デメリット = たくさん考えられたフューザネイザン等のコピペが意味を成さなくなる。
2005/06/16(木) 14:39:21ID:X1yfjbM90
>>520
それは過去の遺物として残ったりして良いんじゃないのかな・・・?
それは過去の遺物として残ったりして良いんじゃないのかな・・・?
522root▲ ★
NGNG Perlのできない私が(りゃ。
とりあえず、LAとれそうなことはわかった。
#! /usr/local/bin/perl
use strict;
sub mumumuGetLA
{
use Sys::CpuLoad;
my ($GB) = @_;
my @load;
@load = Sys::CpuLoad::load();
$GB->{LOADAVG} = $load[0];
}
my $GBX = {};
$GBX->{LOADAVG} = 0.0;
mumumuGetLA($GBX);
print $GBX->{LOADAVG}, "\n";
exit 0;
とりあえず、LAとれそうなことはわかった。
#! /usr/local/bin/perl
use strict;
sub mumumuGetLA
{
use Sys::CpuLoad;
my ($GB) = @_;
my @load;
@load = Sys::CpuLoad::load();
$GB->{LOADAVG} = $load[0];
}
my $GBX = {};
$GBX->{LOADAVG} = 0.0;
mumumuGetLA($GBX);
print $GBX->{LOADAVG}, "\n";
exit 0;
523root▲ ★
NGNG #! /usr/local/bin/perl
use strict;
sub mumumuGetMaxLA
{
my ($GB) = @_;
my $servertype = "";
if($servertype = /cobra/) { $GB->{MAXLOADAVG} = 30.0; } # cobra
elsif($servertype = /tiger/) { $GB->{MAXLOADAVG} = 20.0; } # tiger
elsif($servertype = /banana/) { $GB->{MAXLOADAVG} = 4.0; } # banana
else { $GB->{MAXLOADAVG} = 4.0; } # unknown
}
sub mumumuGetServerType
{
use Sys::Hostname;
my $hostname = "";
$hostname = hostname();
if($hostname =~ /cobra/ ||
$hostname =~ /oyster/) { return "cobra"; }
elsif($hostname =~ /tiger/) { return "tiger"; }
elsif($hostname =~ /banana/) { return "banana"; }
else { return "unknown"; }
}
# main
my $GBX = {};
$GBX->{MAXLOADAVG} = 0.0;
&mumumuGetMaxLA($GBX);
print $GBX->{MAXLOADAVG}, "\n";
exit 0;
use strict;
sub mumumuGetMaxLA
{
my ($GB) = @_;
my $servertype = "";
if($servertype = /cobra/) { $GB->{MAXLOADAVG} = 30.0; } # cobra
elsif($servertype = /tiger/) { $GB->{MAXLOADAVG} = 20.0; } # tiger
elsif($servertype = /banana/) { $GB->{MAXLOADAVG} = 4.0; } # banana
else { $GB->{MAXLOADAVG} = 4.0; } # unknown
}
sub mumumuGetServerType
{
use Sys::Hostname;
my $hostname = "";
$hostname = hostname();
if($hostname =~ /cobra/ ||
$hostname =~ /oyster/) { return "cobra"; }
elsif($hostname =~ /tiger/) { return "tiger"; }
elsif($hostname =~ /banana/) { return "banana"; }
else { return "unknown"; }
}
# main
my $GBX = {};
$GBX->{MAXLOADAVG} = 0.0;
&mumumuGetMaxLA($GBX);
print $GBX->{MAXLOADAVG}, "\n";
exit 0;
524root▲ ★
NGNG あ、呼ぶところを入れてないね。
525root▲ ★
NGNG こんな感じか。
サーバタイプとってくるところは、外出ししといたほうがよさそうだから、
ちょっと冗長だけど、こうしておこう。
#! /usr/local/bin/perl
use strict;
sub mumumuGetMaxLA
{
my ($GB) = @_;
my $servertype = "";
$servertype = &mumumuGetServerType;
if($servertype =~ /cobra/) { $GB->{MAXLOADAVG} = 30.0; } # cobra
elsif($servertype =~ /tiger/) { $GB->{MAXLOADAVG} = 20.0; } # tiger
elsif($servertype =~ /banana/) { $GB->{MAXLOADAVG} = 4.0; } # banana
else { $GB->{MAXLOADAVG} = 4.0; } # unknown
}
sub mumumuGetServerType
{
use Sys::Hostname;
my $hostname = "";
$hostname = hostname();
if($hostname =~ /cobra/ ||
$hostname =~ /oyster/) { return "cobra"; }
elsif($hostname =~ /tiger/) { return "tiger"; }
elsif($hostname =~ /banana/) { return "banana"; }
else { return "unknown"; }
}
# main
my $GBX = {};
$GBX->{MAXLOADAVG} = 0.0;
&mumumuGetMaxLA($GBX);
print $GBX->{MAXLOADAVG}, "\n";
exit 0;
サーバタイプとってくるところは、外出ししといたほうがよさそうだから、
ちょっと冗長だけど、こうしておこう。
#! /usr/local/bin/perl
use strict;
sub mumumuGetMaxLA
{
my ($GB) = @_;
my $servertype = "";
$servertype = &mumumuGetServerType;
if($servertype =~ /cobra/) { $GB->{MAXLOADAVG} = 30.0; } # cobra
elsif($servertype =~ /tiger/) { $GB->{MAXLOADAVG} = 20.0; } # tiger
elsif($servertype =~ /banana/) { $GB->{MAXLOADAVG} = 4.0; } # banana
else { $GB->{MAXLOADAVG} = 4.0; } # unknown
}
sub mumumuGetServerType
{
use Sys::Hostname;
my $hostname = "";
$hostname = hostname();
if($hostname =~ /cobra/ ||
$hostname =~ /oyster/) { return "cobra"; }
elsif($hostname =~ /tiger/) { return "tiger"; }
elsif($hostname =~ /banana/) { return "banana"; }
else { return "unknown"; }
}
# main
my $GBX = {};
$GBX->{MAXLOADAVG} = 0.0;
&mumumuGetMaxLA($GBX);
print $GBX->{MAXLOADAVG}, "\n";
exit 0;
2005/06/17(金) 16:35:12ID:DURZUdCm0
>>525
乙です。
全体に言えることなんだけど、$GBみたいなグローバル変数的な参照変数を
あちこちの関数で持ちまわるよりも、関数はLoadAve. だけ返すようにして、
呼び出し元で明示的に$GB->[MAXLOADAVG]などに格納してやる方が
トレースはしやすいかと思います。
&mumumuGetMaxLA($GBX);
だと、$GBXのどこをどういじられたのか見当つかないわけでして、
$GBX->[MAXLOADAVG] = &mumumuGetMaxLA();
の方が明示的かな、と。それから
if($servertype =~ /cobra/) { $GB->{MAXLOADAVG} = 30.0; } # cobra
elsif($servertype =~ /tiger/) { $GB->{MAXLOADAVG} = 20.0; } # tiger
elsif($servertype =~ /banana/) { $GB->{MAXLOADAVG} = 4.0; } # banana
else { $GB->{MAXLOADAVG} = 4.0; } # unknown
おせっかいだとは思うんだけど、こういう書き方はタイプミスで泣きやすいです。
連想配列のキーの場合、綴りが間違っていてもwarningが出ないので。
perl5であることが前提だけど、理想的には$GBのようなものは用途別に分けて
それぞれblessしてやって、getMaxLAのような関連関数はパッケージに全部突っ込んで、
new関数でイニシャル時にガツガツ値を入れていく方がすっきりするとは思うんだけど、
1から作り直しになるやね。んでもそろそろClassの概念を入れる時期には来てるかと。あと
mumumuGetMaxLA
mumumuGetServerType
mumumuGetLA
こういう命名規則に頼るならpackage宣言しちゃった方が早いんではないかと思います。
乙です。
全体に言えることなんだけど、$GBみたいなグローバル変数的な参照変数を
あちこちの関数で持ちまわるよりも、関数はLoadAve. だけ返すようにして、
呼び出し元で明示的に$GB->[MAXLOADAVG]などに格納してやる方が
トレースはしやすいかと思います。
&mumumuGetMaxLA($GBX);
だと、$GBXのどこをどういじられたのか見当つかないわけでして、
$GBX->[MAXLOADAVG] = &mumumuGetMaxLA();
の方が明示的かな、と。それから
if($servertype =~ /cobra/) { $GB->{MAXLOADAVG} = 30.0; } # cobra
elsif($servertype =~ /tiger/) { $GB->{MAXLOADAVG} = 20.0; } # tiger
elsif($servertype =~ /banana/) { $GB->{MAXLOADAVG} = 4.0; } # banana
else { $GB->{MAXLOADAVG} = 4.0; } # unknown
おせっかいだとは思うんだけど、こういう書き方はタイプミスで泣きやすいです。
連想配列のキーの場合、綴りが間違っていてもwarningが出ないので。
perl5であることが前提だけど、理想的には$GBのようなものは用途別に分けて
それぞれblessしてやって、getMaxLAのような関連関数はパッケージに全部突っ込んで、
new関数でイニシャル時にガツガツ値を入れていく方がすっきりするとは思うんだけど、
1から作り直しになるやね。んでもそろそろClassの概念を入れる時期には来てるかと。あと
mumumuGetMaxLA
mumumuGetServerType
mumumuGetLA
こういう命名規則に頼るならpackage宣言しちゃった方が早いんではないかと思います。
527root▲ ★
NGNG MAXLOADAVGは1回だけ調べればいいので、ぐろーばるー(FOX)のほうに入れよう。
2005/06/17(金) 16:41:23ID:xq5cod4F0
>>528
つか、場合によってはshでも十分でしょう・・・
つか、場合によってはshでも十分でしょう・・・
2005/06/17(金) 16:47:02ID:DURZUdCm0
>>528
Perlの前はawk使いだったのでshは苦手ですw
参加できるのか分からないけど、できることがあればやりますよ。言い出しっぺの法則ですし。
全体のソースは見てないのですが、グローバル変数をあちこちに引きずる方式で
拡張を続けるといずれ破綻するような気がします。
Perlの前はawk使いだったのでshは苦手ですw
参加できるのか分からないけど、できることがあればやりますよ。言い出しっぺの法則ですし。
全体のソースは見てないのですが、グローバル変数をあちこちに引きずる方式で
拡張を続けるといずれ破綻するような気がします。
531root▲ ★
NGNG $FOX->{MAXLOADAVG} = &mumumuGetMaxLA();
にしました。
これは、船が出港する時に1回だけ実行。
で、$GB->{LOADAVG} (こっちは毎回調査)と $FOX->{MAXLOADAVG} を比較して、
$GB->{LOADAVG} 以上だったら、特殊処理っていうかんじで。
にしました。
これは、船が出港する時に1回だけ実行。
で、$GB->{LOADAVG} (こっちは毎回調査)と $FOX->{MAXLOADAVG} を比較して、
$GB->{LOADAVG} 以上だったら、特殊処理っていうかんじで。
532root▲ ★
NGNG で、
$GBX->{LOADAVG} = &mumumuGetLA();
にした。
確かにこのほうが、わかりやすいですね。
$GBX->{LOADAVG} = &mumumuGetLA();
にした。
確かにこのほうが、わかりやすいですね。
533root▲ ★
NGNG で、mumumuMaxLACheckを作った。
sub mumumuMaxLACheck
{
my ($GB) = @_;
if($GB->{LOADAVG} ge $FOX->{MAXLOADAVG}) { return 1; }
else { return 0; }
}
これで、処理部分からこれを呼んでチェック。
sub mumumuMaxLACheck
{
my ($GB) = @_;
if($GB->{LOADAVG} ge $FOX->{MAXLOADAVG}) { return 1; }
else { return 0; }
}
これで、処理部分からこれを呼んでチェック。
534root▲ ★
NGNG 基本的に、$FOX が船が出航する時に1度だけ作られて、
$GB が船に乗る客ごとに作られているようです。
何せ、ドキュメントも仕様書も何にもないので(そういうもんらしいです)、
ソースからおじさんの心を、読み取っていくしかないわけで。
$GB が船に乗る客ごとに作られているようです。
何せ、ドキュメントも仕様書も何にもないので(そういうもんらしいです)、
ソースからおじさんの心を、読み取っていくしかないわけで。
2005/06/17(金) 17:56:52ID:DURZUdCm0
536root▲ ★
NGNG537毒さぼ
2005/06/17(金) 18:37:31ID:JW+0RdvC0 geだと文字列比較になるね。(>=が一般の数字比較)
例えば、$aaaが'100'、$bbbが'25' だとしたら、
($aaa >= $bbb) は真になる(100のほうが25より大きい)けど、
($aaa ge $bbb) は偽になっちゃう。('1'より'2'のほうが辞書で後に出てくる)
例えば、$aaaが'100'、$bbbが'25' だとしたら、
($aaa >= $bbb) は真になる(100のほうが25より大きい)けど、
($aaa ge $bbb) は偽になっちゃう。('1'より'2'のほうが辞書で後に出てくる)
2005/06/17(金) 18:43:35ID:xq5cod4F0
>>536
というより、クリティカルなところは公表しないほうが無難かと
というより、クリティカルなところは公表しないほうが無難かと
2005/06/17(金) 18:53:11ID:MsktfovF0
むぎゅ。
>>530
ふむ。
ふむ。
2005/06/17(金) 19:29:32ID:Oo+hRM1L0
マミ… クリィミーマミ…
yasuさんか
yasuさんか
2005/06/17(金) 20:51:21ID:DURZUdCm0
>>548
携帯用c.2chのphpを解読中でーす。
携帯用c.2chのphpを解読中でーす。
2005/06/17(金) 23:18:54ID:DURZUdCm0
2005/06/17(金) 23:28:12ID:Oo+hRM1L0
聡明期からか
すげえな
すげえな
2005/06/17(金) 23:44:30ID:g+uG/BcP0
perlerさん並の理解力と柔軟性を期待
2005/06/17(金) 23:57:14ID:DURZUdCm0
2005/06/18(土) 01:18:32ID:P97ComF00
KヨNTさんとかRes9ueとかですよねぇ。。。@グロ引きずりまわして破綻
この辺の改造依頼は基本的には断っていたりしてして(苦笑)
さてと、そろそろ林檎機がくるのでまずは基地の修繕かなぁ。。。
(SweepさんとBBRさんがごきげんななめ@coreをエレエレ中)
この辺の改造依頼は基本的には断っていたりしてして(苦笑)
さてと、そろそろ林檎機がくるのでまずは基地の修繕かなぁ。。。
(SweepさんとBBRさんがごきげんななめ@coreをエレエレ中)
558555
2005/06/18(土) 09:59:40ID:FstfHQuj0 >>558
再構築おつです。
人の書いたPerlの保守って、Cとかと比較してもなんか相当大変みたいですね。
(「みたい」っていうのは、感覚では理解しているが単に自分が体験していないってことです)
本業方面の知り合いのところに約10年近く「つぎはぎんぐ」されてきた
約37,000行のPerlとかありますが、もう、すごい状態みたいです。
ブログにも少し書きましたが、もう「神の領域」ってやつらしく。
そのPerlは主に書いたやつ(二人)が現役だそうで、
今でもきちんとメンテされてるみたいですが、
その二人がいなくなると(以下略。
再構築おつです。
人の書いたPerlの保守って、Cとかと比較してもなんか相当大変みたいですね。
(「みたい」っていうのは、感覚では理解しているが単に自分が体験していないってことです)
本業方面の知り合いのところに約10年近く「つぎはぎんぐ」されてきた
約37,000行のPerlとかありますが、もう、すごい状態みたいです。
ブログにも少し書きましたが、もう「神の領域」ってやつらしく。
そのPerlは主に書いたやつ(二人)が現役だそうで、
今でもきちんとメンテされてるみたいですが、
その二人がいなくなると(以下略。
2005/06/18(土) 15:24:40ID:AVxh77pL0
・LAが基準値以上なら、IsKoukokuを船が死ぬまでスルーにした。
・animeサーバは、subject.txt/subback.htmlさぼりを発動させるレベルを
他のtigerサーバよりやや低めにした(基準値に対する率が違う)
・animeサーバは、subject.txt/subback.htmlさぼりを発動させるレベルを
他のtigerサーバよりやや低めにした(基準値に対する率が違う)
2005/06/18(土) 20:03:56ID:FstfHQuj0
>>559
> 人の書いたPerlの保守って、Cとかと比較してもなんか相当大変みたいですね。
CはCで大変だと思うけどね。C書く人ってPerlに比べてトリッキーなコード好む人多いし。
> 約37,000行のPerlとかありますが、もう、すごい状態みたいです。
すごいっちゃーすごいけど、その前になんとかならなかったのかなあ……。
しかし今目の前にある「破綻しちゃった」大量のコードを読んでると、多分どうにもならなかったんだろうなあ
という空気が伝わってきたり。
>>561
乙です。ここじゃスレ違いだとは思うんだけど、Apacheのセッションタイムアウトって
やたら長いけどこれ攻撃に使われたりしない?あるいはブラウザの誤動作でゾンビコネクションで
MAX_CONNECTが埋まっちゃったりとか。
さっきqb5.2ch.netに繋いだまま放置プレイ食らわせたら7分50秒も回線あけて待っててくれたよ。
> 人の書いたPerlの保守って、Cとかと比較してもなんか相当大変みたいですね。
CはCで大変だと思うけどね。C書く人ってPerlに比べてトリッキーなコード好む人多いし。
> 約37,000行のPerlとかありますが、もう、すごい状態みたいです。
すごいっちゃーすごいけど、その前になんとかならなかったのかなあ……。
しかし今目の前にある「破綻しちゃった」大量のコードを読んでると、多分どうにもならなかったんだろうなあ
という空気が伝わってきたり。
>>561
乙です。ここじゃスレ違いだとは思うんだけど、Apacheのセッションタイムアウトって
やたら長いけどこれ攻撃に使われたりしない?あるいはブラウザの誤動作でゾンビコネクションで
MAX_CONNECTが埋まっちゃったりとか。
さっきqb5.2ch.netに繋いだまま放置プレイ食らわせたら7分50秒も回線あけて待っててくれたよ。
2005/06/18(土) 20:16:09ID:mpr8OfG00
>>551
いへいへ私のことです(照)
いへいへ私のことです(照)
565だんしゃくねこ
2005/06/18(土) 22:35:00ID:ApFHTIkz0 │_A
│・−・) なんかローカルルールのリンク変更をしても、
↓ ⊂) livenhkのindex.htmlがちっとも更新されないんだけど(head.txtは更新されてる)
LAが高い時にindex.htmlも更新されないようになってますか?
(この時間のlive16のLAはそんなに高くない気もするけど)
ちなみにdomeも微妙にしばらくindexが更新されてなかったっす。
│・−・) なんかローカルルールのリンク変更をしても、
↓ ⊂) livenhkのindex.htmlがちっとも更新されないんだけど(head.txtは更新されてる)
LAが高い時にindex.htmlも更新されないようになってますか?
(この時間のlive16のLAはそんなに高くない気もするけど)
ちなみにdomeも微妙にしばらくindexが更新されてなかったっす。
2005/06/18(土) 22:40:11ID:ixn9Ucb10
2005/06/18(土) 23:44:03ID:P97ComF00
>>565
これ?
http://qb5.2ch.net/test/read.cgi/operate/1103495887/843
843 :FOX ★ [sage] :2005/03/23(水) 03:46:03 ID:???0
index.html subback.html の更新をたまにサボるようにした。
subject.txt は従来どおり更新してます
対象サーバ
ex10 live20 live16 live15
これ?
http://qb5.2ch.net/test/read.cgi/operate/1103495887/843
843 :FOX ★ [sage] :2005/03/23(水) 03:46:03 ID:???0
index.html subback.html の更新をたまにサボるようにした。
subject.txt は従来どおり更新してます
対象サーバ
ex10 live20 live16 live15
568だんしゃくねこ
2005/06/19(日) 00:11:28ID:7GiTNm0Z0 >>567
│_A
│・−・) うん、、まぁ、本当はそのルーチンを流用してると思うんだけど、
↓ ⊂) subback.htmlとsubject.txtって書いてあるし、
なんかLAがそんなに高くなさそうなのにそうなったのが気になって、
│_A
│・−・) うん、、まぁ、本当はそのルーチンを流用してると思うんだけど、
↓ ⊂) subback.htmlとsubject.txtって書いてあるし、
なんかLAがそんなに高くなさそうなのにそうなったのが気になって、
2005/06/19(日) 00:20:42ID:HonutV4K0
570root▲ ★
NGNG571root▲ ★
NGNG で、subject.txt / subback.html ではなく index.html / subback.html なので、
bbs.cgi の私が書いたコメントを直しておいたです。
なにせ、Perl も bbs.cgi も、未知の世界がたくさん。
bbs.cgi の私が書いたコメントを直しておいたです。
なにせ、Perl も bbs.cgi も、未知の世界がたくさん。
572だんしゃくねこ
2005/06/19(日) 20:00:38ID:7GiTNm0Z0573SweetRock ★
2005/06/19(日) 23:51:07ID:???02005/06/20(月) 05:32:32ID:idSWnAhx0
575root▲ ★
NGNG live系は、pidをある一定数で割った余りが0の時だけindex.html/subback.htmlを書き換える、
という実装になっているようです。
>>573
わたし的にはシステム負荷以外に特に止めておく理由はないので、
今夜あたりに復活してみるかも。
という実装になっているようです。
>>573
わたし的にはシステム負荷以外に特に止めておく理由はないので、
今夜あたりに復活してみるかも。
576root▲ ★
NGNG tmp5のIsKoukokuを復活しました。
山田ウイルスを撃退した、おじさんに感謝で。
山田ウイルスを撃退した、おじさんに感謝で。
577だんしゃくねこ
2005/06/21(火) 00:39:06ID:dkib8z350578root▲ ★
NGNG >>577
なるほど。
でもLAは所詮リアルタイムじゃないんで、
こっち(index.html / subback.html)は、あまりこれではやりたくなかったり。
(そもそもlive20等はIsKoukokuチェックなし)
なるほど。
でもLAは所詮リアルタイムじゃないんで、
こっち(index.html / subback.html)は、あまりこれではやりたくなかったり。
(そもそもlive20等はIsKoukokuチェックなし)
2005/06/21(火) 15:26:54ID:x2Bt2xzo0
そういえばやっているかもでしょうけど、
スレ立てやdat落ちのタイミングとindex/subback更新を同期にできませんかね?
・sageなしスレ立てまたはdat落ちがあったらindex/subback更新
・sageスレ立てしたらsubbackのみ更新
・sageレス投稿時に更新しない
スレ立てやdat落ちのタイミングとindex/subback更新を同期にできませんかね?
・sageなしスレ立てまたはdat落ちがあったらindex/subback更新
・sageスレ立てしたらsubbackのみ更新
・sageレス投稿時に更新しない
580root▲ ★
NGNG スレ立てはふつうに同期になっているはず。
sageレス投稿時更新しないというのは、cha2でやってるんでしたっけか。
dat落ちは別の人(f22)がやっているからなぁ。
sageレス投稿時更新しないというのは、cha2でやってるんでしたっけか。
dat落ちは別の人(f22)がやっているからなぁ。
581root▲ ★
NGNG 同じ●で1時間あたりに1サーバに立てられる最大スレッド数を制限できる機能を
qb6のbbs.cgiに実装してみたんですが、これって需要ありますかね。
主に、●でのスレ立て荒らし対策の一つになるかなと。
ちなみに、★(φ ★含む)とIsKoukokuを切っている状態
(live系/ex11や負荷が高い時)の場合、この処理はスキップ。
スレ立てでも●じゃない時や、スレ立てじゃない時は従来通り。
qb6のbbs.cgiに実装してみたんですが、これって需要ありますかね。
主に、●でのスレ立て荒らし対策の一つになるかなと。
ちなみに、★(φ ★含む)とIsKoukokuを切っている状態
(live系/ex11や負荷が高い時)の場合、この処理はスキップ。
スレ立てでも●じゃない時や、スレ立てじゃない時は従来通り。
582root▲ ★
NGNG 最大数は可変ですが、とりあえずデフォルトは10(1時間に10個まで立てられる)ぐらいかしら。
583root▲ ★
NGNG おじさんと若者へ(馴れ合いごめん):
・Sambaのアレと同じ場所にカウントのファイルを作るです。
・ファイル名に使うときに、/ は _ に変えているです。
・先頭に "." つけているので、あれを数えているところには影響しないはずです。
・Sambaのアレと同じ場所にカウントのファイルを作るです。
・ファイル名に使うときに、/ は _ に変えているです。
・先頭に "." つけているので、あれを数えているところには影響しないはずです。
2005/06/22(水) 02:41:18ID:BLJmkowo0
鯖単位だよね? 10個どころか5個くらいでもあんまり困る人はいないような。
そもそもスレってそんなに短時間にたくさん立てるもんじゃないと思うですよ。
荒らし以外で1時間に5本以上同一鯖内でスレが立てられなくて困る人なんて
●を使ってスレ立て代行をやっている人くらいしか思いつかない。★はスルー
だから記者とかは関係ないわけだし。
そもそもスレってそんなに短時間にたくさん立てるもんじゃないと思うですよ。
荒らし以外で1時間に5本以上同一鯖内でスレが立てられなくて困る人なんて
●を使ってスレ立て代行をやっている人くらいしか思いつかない。★はスルー
だから記者とかは関係ないわけだし。
585root▲ ★
NGNG 例えば、●荒らしが横行しているらしい(あまり確認していないのでよくわかりません)
news だけ5個にするとかも技術的にはできなくはないわけですが、さて。
れふぃさんとかの意見が、聞きたいかも。
news だけ5個にするとかも技術的にはできなくはないわけですが、さて。
れふぃさんとかの意見が、聞きたいかも。
587reffi@報告人 ★
2005/06/22(水) 03:01:59ID:???0 N速のスレ立て魔ですけど、ここ見ると傾向がわかると思います。
(最近、建てている傾向)
時間当たりのスレ立て数制限はある程度効果があると思いますがそれだと今度は制限
いっぱい建ててまた次の時間帯に建てるとかやってきそうなので何処まで効果があるか
疑問です。
やっぱり地道に●停止が一番効果があると思います。
●による荒らし報告専用スレッド8
http://qb5.2ch.net/test/read.cgi/sec2chd/1114660322/580-
(最近、建てている傾向)
時間当たりのスレ立て数制限はある程度効果があると思いますがそれだと今度は制限
いっぱい建ててまた次の時間帯に建てるとかやってきそうなので何処まで効果があるか
疑問です。
やっぱり地道に●停止が一番効果があると思います。
●による荒らし報告専用スレッド8
http://qb5.2ch.net/test/read.cgi/sec2chd/1114660322/580-
588水色@飛行石 ★
2005/06/22(水) 03:07:58ID:???0 10個で困る人はー、まずいないと思いますー。
まー、荒らす人は10本立てていくでしょうけどー。
けど、あんまし細かい数字まで出さない方がいいと思いますー。
その制限いっぱいで立てようとするはずですからー。
そいで毎日、せっせと立てて増やして保守するかなーと。
まー、荒らす人は10本立てていくでしょうけどー。
けど、あんまし細かい数字まで出さない方がいいと思いますー。
その制限いっぱいで立てようとするはずですからー。
そいで毎日、せっせと立てて増やして保守するかなーと。
590reffi@報告人 ★
2005/06/22(水) 03:25:15ID:???0 >589
了解しました。
多分、殴り込みがある可能性が高いのでそれだけは覚悟した方がいいですよ(苦笑
了解しました。
多分、殴り込みがある可能性が高いのでそれだけは覚悟した方がいいですよ(苦笑
591root▲ ★
NGNG BBS.CGI - 2005/06/22
592root▲ ★
NGNG >>590
殴り込みですか。
とりあえず、管理人はこう↓言っているのと、
スレッドの「立てやすさ(TATESUGI値に対する)」は変わらないわけで、
まずは、実験かなと。
http://qb5.2ch.net/test/read.cgi/sec2chd/1118208864/85
85 名前: [―{}@{}@{}-] ひろゆき@どうやら管理人 ★[] 投稿日:2005/06/08(水) 16:24:41 ID:??? ?###
書き込みの機能は、●の価格の対価ではないので、
自由に止められるわけで、
お金の問題とは無関係です。
殴り込みですか。
とりあえず、管理人はこう↓言っているのと、
スレッドの「立てやすさ(TATESUGI値に対する)」は変わらないわけで、
まずは、実験かなと。
http://qb5.2ch.net/test/read.cgi/sec2chd/1118208864/85
85 名前: [―{}@{}@{}-] ひろゆき@どうやら管理人 ★[] 投稿日:2005/06/08(水) 16:24:41 ID:??? ?###
書き込みの機能は、●の価格の対価ではないので、
自由に止められるわけで、
お金の問題とは無関係です。
2005/06/22(水) 13:03:53ID:euuUPlT80
2005/06/22(水) 13:22:10ID:4fep6rSi0
携帯のID生成と同じルーチンを使って●IDからID精製できないかな?
これだと●+串の組み合わせでもIDが固定になるような気がするんだけど。
これだと●+串の組み合わせでもIDが固定になるような気がするんだけど。
2005/06/22(水) 13:47:44ID:AziVoMRy0
2005/06/22(水) 13:48:23ID:4fep6rSi0
駄目っすか?
規制議論板でよく●+串で荒らしてるって報告がよく来るんですけど、(実際はいろんな人がスレたてたりレスしたりしてる)
そういう主張で報告しにくる方々の動きを止めれるかなあと。
規制議論板でよく●+串で荒らしてるって報告がよく来るんですけど、(実際はいろんな人がスレたてたりレスしたりしてる)
そういう主張で報告しにくる方々の動きを止めれるかなあと。
2005/06/22(水) 13:49:55ID:mnrqWpCd0
そんなことで止まるなら苦労しない
600FOX ★
2005/06/22(水) 14:11:18ID:???0 噂を信じちゃいけないよ〜♪
規制情報板の報告を実際に食べてみて
自分で実態を感じ取ってすすめた方が良いと思います。
かくいうわたしも噂を流している張本人ですが、
噂であらしが止まるのだ !!
うっひっひ
規制情報板の報告を実際に食べてみて
自分で実態を感じ取ってすすめた方が良いと思います。
かくいうわたしも噂を流している張本人ですが、
噂であらしが止まるのだ !!
うっひっひ
601讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG 止まるまで待てばいいのさ〜
602root▲ ★
NGNG >>600
果実をもっと食わないとだめですか。
おじさんが戻ってくるまでの「鬼の井沼」だと思っていたんですが、、、。
今回のはここ見て、なんかなぁと思って、入れてみたです。
↓
●による荒らし報告専用スレッド8
http://qb5.2ch.net/test/read.cgi/sec2chd/1114660322/
果実をもっと食わないとだめですか。
おじさんが戻ってくるまでの「鬼の井沼」だと思っていたんですが、、、。
今回のはここ見て、なんかなぁと思って、入れてみたです。
↓
●による荒らし報告専用スレッド8
http://qb5.2ch.net/test/read.cgi/sec2chd/1114660322/
604root▲ ★
NGNG605FOX ★
2005/06/22(水) 14:40:00ID:???0 作るのは一向に構わないというか、みんな大歓迎かと。
いざというときの武器ですし、
newsでやっているのはほんの一握りで、またnews板はほっておけば
どんどん落ちるくらいのパワーがあるです。
一番気にかけなきゃならないのは 投稿数で300位以下の板たち
2ちゃんねるで一番重要な板たちと思っています。
ほんの小さな爆撃でも壊滅します。
たとえば、スレ潰しが実況板であったとしてもたいした被害ではないです。
それを跳ね返すだけのパワーを持っています。
いざというときの武器ですし、
newsでやっているのはほんの一握りで、またnews板はほっておけば
どんどん落ちるくらいのパワーがあるです。
一番気にかけなきゃならないのは 投稿数で300位以下の板たち
2ちゃんねるで一番重要な板たちと思っています。
ほんの小さな爆撃でも壊滅します。
たとえば、スレ潰しが実況板であったとしてもたいした被害ではないです。
それを跳ね返すだけのパワーを持っています。
606root▲ ★
NGNG >>605
なるほど、第三段落は非常に重要ですね。
私は「大きい板」のサーバについ目が行きがちなのですが(そんなことばかりしているし)、
そういった「普通の板」「相対的に小さな板」こそ手厚くすべきというのには、同意します。
そういえば、Rock54やSamba24を作るきっかけになったのも、
そのへんの板のためだったような(特にRock54)。
news4vipとか、Rock54がなくても、場合によってはSamba24すらなくても、
板としては機能するわけで(何をもって「機能」とするかは議論の対象外で)。
なるほど、第三段落は非常に重要ですね。
私は「大きい板」のサーバについ目が行きがちなのですが(そんなことばかりしているし)、
そういった「普通の板」「相対的に小さな板」こそ手厚くすべきというのには、同意します。
そういえば、Rock54やSamba24を作るきっかけになったのも、
そのへんの板のためだったような(特にRock54)。
news4vipとか、Rock54がなくても、場合によってはSamba24すらなくても、
板としては機能するわけで(何をもって「機能」とするかは議論の対象外で)。
607root▲ ★
NGNG だらだらと、案を書いておいたり。
「さる」と「かに」でしたっけ。
「さる」 = サルのように1回覚えたことを何度も何度も繰り返す = 1スレにどかどか爆撃
「かに」 = カニのように横歩きで多数のスレを荒らしたり(かにA)、スレ立て爆撃をしたりする(かにB)
●での「かにB」行為についてはある程度歯止めができたわけですが、
「さる」と「かにA」にも、おんなじようなことするのは、ありやなしや。
「さる」「かにA」に対して何かするとすれば、
1時間にレスできる数とか言う実装になるのかしら、やっぱ。
とすると例えば、
・●での1レス = 1ポイント
・●でのスレ立て = 15ポイント
とかにして、1時間で例えば150ポイントまで使えるようにするとか、そんな実装なのかしらね。
「さる」と「かに」でしたっけ。
「さる」 = サルのように1回覚えたことを何度も何度も繰り返す = 1スレにどかどか爆撃
「かに」 = カニのように横歩きで多数のスレを荒らしたり(かにA)、スレ立て爆撃をしたりする(かにB)
●での「かにB」行為についてはある程度歯止めができたわけですが、
「さる」と「かにA」にも、おんなじようなことするのは、ありやなしや。
「さる」「かにA」に対して何かするとすれば、
1時間にレスできる数とか言う実装になるのかしら、やっぱ。
とすると例えば、
・●での1レス = 1ポイント
・●でのスレ立て = 15ポイント
とかにして、1時間で例えば150ポイントまで使えるようにするとか、そんな実装なのかしらね。
609root▲ ★
NGNG610FOX ★
2005/06/22(水) 16:53:26ID:???0 そのあらしが起こっている頻度が重要かと、
「2ちゃんねるが大変になるほど起っていない」といサンコンかと思っとります。
つまりほとんどあらされていない!!
「2ちゃんねるが大変になるほど起っていない」といサンコンかと思っとります。
つまりほとんどあらされていない!!
611FOX ★
2005/06/22(水) 16:57:29ID:???0 あと、何かをやるとメリット(目的の達成)を得られる代わりに
デメリット(失われるもの)も当然付いてきます。
Rockで URL だけに絞っていたりするのもそれが理由だったり、
デメリット(失われるもの)も当然付いてきます。
Rockで URL だけに絞っていたりするのもそれが理由だったり、
613root▲ ★
NGNG >>611
そですね。
メリットとデメリットを秤にかけて、考えるってかんじで。
例えば Rock の処理はご存知のように相当重いわけですが、
あれは「重くてもやる必要がある」から、やっているってことですね。
で、その必要がないとか相対的に薄いところは、
そういうところを手抜いたりすると。
例えば正直、今のnews4vipに業者ががんがって広告をどんどんぶち込んだとしても
「業者クオリティタカス」とか何とか言って、遊びの対象になるだけだったり(適当な推測)。
そですね。
メリットとデメリットを秤にかけて、考えるってかんじで。
例えば Rock の処理はご存知のように相当重いわけですが、
あれは「重くてもやる必要がある」から、やっているってことですね。
で、その必要がないとか相対的に薄いところは、
そういうところを手抜いたりすると。
例えば正直、今のnews4vipに業者ががんがって広告をどんどんぶち込んだとしても
「業者クオリティタカス」とか何とか言って、遊びの対象になるだけだったり(適当な推測)。
614root▲ ★
NGNG 同じIPアドレスだと、同じ日には同じIDが出る、というのは、ほんとなのかどうなのか。
2005/06/22(水) 22:05:05ID:mnrqWpCd0
違うのですか?
種が同じでホストも同じならIDも同じになるとしか思えないのですが。
種が同じでホストも同じならIDも同じになるとしか思えないのですが。
2005/06/22(水) 22:06:10ID:mnrqWpCd0
質雑見て気がついた。
今は種が違うから違う月の同じ日では同じにならないのではなかったでしょうか。
今は種が違うから違う月の同じ日では同じにならないのではなかったでしょうか。
618桶屋
2005/06/22(水) 22:11:26ID:47I+grU70 sport2鯖の話が混じっているのかとも思った。
619root▲ ★
NGNG sports2は、どうも常に同じIDが出るみたいですね。
例えば公式p2とか、毎日同じだとか、なんとか。
例えば公式p2とか、毎日同じだとか、なんとか。
620讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG スポーツ2は公式p2から書けないですよ
622root▲ ★
NGNG623桶屋
2005/06/22(水) 22:26:06ID:b8Mc/K1W0 sport2鯖は放置されているから。
質問者の方が背景を詳しく説明してくれなかったら状況はよくわかりません。
1ヶ月の時間をいただけるのなら実験してもいいですが、ソースを覗いた方が早いと思いますよ。(;^ ^
質問者の方が背景を詳しく説明してくれなかったら状況はよくわかりません。
1ヶ月の時間をいただけるのなら実験してもいいですが、ソースを覗いた方が早いと思いますよ。(;^ ^
624●
2005/06/23(木) 00:35:17ID:zro7njUC0 オイオイ!●規制直せよ!鯖強化に貢献しているんだろ!(#゚Д゚)ゴルァ!!
625讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG あなたの●は規制されてませんよ?
2005/06/23(木) 00:43:26ID:otPCM4Ns0
>>624
スレを一時間に10っこいじょうたてるのですか(汁
スレを一時間に10っこいじょうたてるのですか(汁
628讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG 申請スレが必要になるのかな?
629root▲ ★
NGNG >>628
いまのところ、まだ超実験中なので、まだいらないっす。
たぶんほとんどの板は安全側に振った一定値にしておけばよくって、
2、3の特殊な板だけ別途特別な値を設定するかんじになると思っているので、
たぶん、ほとんど設定変更の必要もないかなと。
いまのところ、まだ超実験中なので、まだいらないっす。
たぶんほとんどの板は安全側に振った一定値にしておけばよくって、
2、3の特殊な板だけ別途特別な値を設定するかんじになると思っているので、
たぶん、ほとんど設定変更の必要もないかなと。
630ヽ( ・∀・)ノ ≡●ウンコー ◆worRE2unko
NGNG >>584
あの、別に今のままでもそんなに問題無いんだけど
初心者板http://etc3.2ch.net/qa/って立ってるスレのほとんどが糞スレで
実際機能してるスレってあんまり無い状況です
一番消費してる『もの凄い勢いで誰かが質問に答えるスレ』は
住人が少なくなる時間だとスレ立てれる人がいなくなることがあって
しばらく待ってる間に人がいなくなるのを防ぐために、
一辺に大量にスレを立てておくことがあるんだけど
それをやるのに初心者板の規制解除して欲しいのだけれども駄目ですか?
この板はスレ立て荒らしされても迷惑する人いないと思うのだけど
あの、別に今のままでもそんなに問題無いんだけど
初心者板http://etc3.2ch.net/qa/って立ってるスレのほとんどが糞スレで
実際機能してるスレってあんまり無い状況です
一番消費してる『もの凄い勢いで誰かが質問に答えるスレ』は
住人が少なくなる時間だとスレ立てれる人がいなくなることがあって
しばらく待ってる間に人がいなくなるのを防ぐために、
一辺に大量にスレを立てておくことがあるんだけど
それをやるのに初心者板の規制解除して欲しいのだけれども駄目ですか?
この板はスレ立て荒らしされても迷惑する人いないと思うのだけど
2005/06/23(木) 13:47:34ID:We0905PS0
632root▲ ★
NGNG 別のことの副産物だったりするのですが、BBS_SLIP=checkedな板で、
AIR-EDGE PHONEからだと"H"と表示っていうのが出ると、うれしい人っているのかしら。
(今この機能はオフになっています)
ほんとは"O"にしたいところなんですが、
携帯で言う固有番号みたいなのって送ってくるんでしたっけ。
AIR-EDGE PHONEからだと"H"と表示っていうのが出ると、うれしい人っているのかしら。
(今この機能はオフになっています)
ほんとは"O"にしたいところなんですが、
携帯で言う固有番号みたいなのって送ってくるんでしたっけ。
633讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG2005/06/23(木) 22:53:01ID:QxdAbKwg0
たぶんなし
635root▲ ★
NGNG >>633-634
そですか。
んじゃ、取り扱いの都合上、O にはできないですね。
かと言って、ちょっと 0 なのはいまいちなのですよね。いろいろと。
で、識別子そのものはつけておきたかったりするわけですが、
H でいいのかしら。
そですか。
んじゃ、取り扱いの都合上、O にはできないですね。
かと言って、ちょっと 0 なのはいまいちなのですよね。いろいろと。
で、識別子そのものはつけておきたかったりするわけですが、
H でいいのかしら。
636讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG H"とかw
637root▲ ★
NGNG 二文字には、したくないし。
638讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG WかH
が無難かと
が無難かと
640root▲ ★
NGNG ダブルクォートはちと特殊な文字だから、ちょっといやん。
W = WILLCOMですか。
メーカー名由来は、ちと微妙かも。
W = WILLCOMですか。
メーカー名由来は、ちと微妙かも。
2005/06/23(木) 23:12:50ID:QxdAbKwg0
O0とくればoしかあるまい
つか何をもってAIR-EDGE PHONEと判定するわけ? IPアドレス?
AIR-EDGE PHONEて、センター以外の一般ISPに繋ぐことが出来るんだが。
AIR-EDGE PHONEて、センター以外の一般ISPに繋ぐことが出来るんだが。
644root▲ ★
NGNG645root▲ ★
NGNG >>643
> AIR-EDGE PHONEて、センター以外の一般ISPに繋ぐことが出来るんだが。
知ってるですよ。京ぽんユーザなんで。
その時は当然PCと判断されるわけですが、
味ぽんや京ぽんのブラウザはリファラ吐いてくれないから、ここには書けないっすね。
> AIR-EDGE PHONEて、センター以外の一般ISPに繋ぐことが出来るんだが。
知ってるですよ。京ぽんユーザなんで。
その時は当然PCと判断されるわけですが、
味ぽんや京ぽんのブラウザはリファラ吐いてくれないから、ここには書けないっすね。
646root▲ ★
NGNG PCと、はちと不適切ですね。
「携帯でも公式p2でもない」と判断されるってことです。
「携帯でも公式p2でもない」と判断されるってことです。
2005/06/23(木) 23:40:48ID:tc5u2ePT0
端末がAIR-EDGE PHONEであることの判別ではなく
アクセス元のIPがAIR-EDGE PHONEセンターであるという判別ですね
アクセス元のIPがAIR-EDGE PHONEセンターであるという判別ですね
2005/06/23(木) 23:48:30ID:IAjuJN5f0
えーと、そのセンターにH"以外からも接続出来るのですか?
#やり方を教えろというわけではありません。
#やり方を教えろというわけではありません。
2005/06/23(木) 23:50:36ID:g3sJnHMw0
識別するとどういうメリットがあるの?
652root▲ ★
NGNG2005/06/23(木) 23:57:11ID:IAjuJN5f0
>>652
特殊な例(出来る出来ないはおいといて)を除き、o=H" という解釈でOKですね?
特殊な例(出来る出来ないはおいといて)を除き、o=H" という解釈でOKですね?
654む P221119009159.ppp.prin.ne.jp
2005/06/24(金) 00:07:18ID:g0fG5wWDo AIR-EDGE PHONEセンター経由ってことですね。
もしそうなってなかった場合、
ここで報告いただけると助かるです。
もしそうなってなかった場合、
ここで報告いただけると助かるです。
2005/06/24(金) 00:09:52ID:8Hf9fVCV0
まあ、単純なprin一括規制から脱皮する可能性があるなら応援してもよさげ>識別
2005/06/24(金) 00:10:10ID:xiZxEbeE0
PCからでも、AIR-EDGEで(というかH"のPIAFSでも?)PRINで接続したらIPは同じになるのでは?
658P221119007168.ppp.prin.ne.jp
2005/06/24(金) 00:11:01ID:qtwXzmxmo P2がPなんだからHでもいいやんと思うのは俺だけ?
o→激しくダサい
o→激しくダサい
2005/06/24(金) 00:11:02ID:T4aiLaEN0
>>652
携帯の識別の場合PCとは規制方法が違うので意味があるというのはわかるんだけど
AIR-EDGE PHONEとPCって規制方法って違ったりするの?
(単なるISPの違いとの区別がよくわかってなかったり。)
携帯の識別の場合PCとは規制方法が違うので意味があるというのはわかるんだけど
AIR-EDGE PHONEとPCって規制方法って違ったりするの?
(単なるISPの違いとの区別がよくわかってなかったり。)
パピコ記念のテスト
Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0
Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0
そりゃUA違うしな
Monazilla/1.00 kage/0.99.1.1153 (1000)
Monazilla/1.00 kage/0.99.1.1153 (1000)
2005/06/24(金) 00:17:21ID:Bzb8/f1PP
664む P221119009159.ppp.prin.ne.jp
2005/06/24(金) 00:17:59ID:g0fG5wWDo おぉ、そですか。
であれば、味ぽんを切ってしまえば、この特殊処理しなくていいのね。
でも奥様が味ぽんのうちは、絶対そんなことできないわけで。
であれば、味ぽんを切ってしまえば、この特殊処理しなくていいのね。
でも奥様が味ぽんのうちは、絶対そんなことできないわけで。
2005/06/24(金) 00:21:29ID:izGLkW05o
666root▲ ★
NGNG きたくで。
>>659
今は prin.ne.jp が規制されれば、出自に関係なく巻き添えですね。
それ(規制の方法論)も含めてよりうまくできる道はあるのか、
あるいは実は携帯荒らしみたいに京ぽん荒らしがいたりするのかとか、
そういうことを、知っておきたいわけで。
>>659
今は prin.ne.jp が規制されれば、出自に関係なく巻き添えですね。
それ(規制の方法論)も含めてよりうまくできる道はあるのか、
あるいは実は携帯荒らしみたいに京ぽん荒らしがいたりするのかとか、
そういうことを、知っておきたいわけで。
2005/06/24(金) 00:27:09ID:cetU9eEYo
テスト
2005/06/24(金) 00:29:36ID:e5bWae1/0
670root▲ ★
NGNG2005/06/24(金) 00:35:01ID:yqNIRM/n0
テストはテストスレで
名前欄にはなるべくtasukeruyoで
名前欄にはなるべくtasukeruyoで
673root▲ ★
NGNG というわけで、あるIPアドレスがあるCIDRブロックに入っているかを、
Perlでうまく調べる方法って、どうすればいいのかしら。
具体的にはあるIPアドレスが、61.204.3.0/25 に入っているかいないかを
さくっとコール一発で、調べたいわけです。
Perlでうまく調べる方法って、どうすればいいのかしら。
具体的にはあるIPアドレスが、61.204.3.0/25 に入っているかいないかを
さくっとコール一発で、調べたいわけです。
http://ex10.2ch.net/test/read.cgi/morningcoffee/1119539572/47
>47 :ZC******.ppp.dion.ne.jp :2005/06/24(金) 00:33:59 o
>ふしあなしてみた
これはなにですか
>47 :ZC******.ppp.dion.ne.jp :2005/06/24(金) 00:33:59 o
>ふしあなしてみた
これはなにですか
2005/06/24(金) 00:37:27ID:yqNIRM/n0
prinとdionは同じ施設使ってるですよ
ソースはwhois
ソースはwhois
続報
58 47 2005/06/24(金) 00:36:43 0
繋ぎ直したらでなくなったみたい
だそうです
58 47 2005/06/24(金) 00:36:43 0
繋ぎ直したらでなくなったみたい
だそうです
678root▲ ★
NGNG ははぁ、虫ですね。
つまり、もともと虫がいたと。
(判別部分のアルゴリズムは、前のバージョンと変えていません)
221.119.26.185 が、221.119.2 にマッチしちゃってるわけね。
なんだかなぁ。
つまり、もともと虫がいたと。
(判別部分のアルゴリズムは、前のバージョンと変えていません)
221.119.26.185 が、221.119.2 にマッチしちゃってるわけね。
なんだかなぁ。
2005/06/24(金) 00:40:30ID:0G1cfbjq0
質雑のFAQ修正はこんな感じですか。
Q.IDの後ろに付いてる0とかOとかPとかoってなに?
A.書込み手段を区別する目印です。
PC等が 0 (ゼロ) 、携帯が O (大文字のオー)、 P は公式p2( http://p2.2ch.net/ )
それ以外(Air H"等)が o (小文字のオー)からです。
荒らし対策の一環として、一部の板に便宜上導入されています。
Q.IDの後ろに付いてる0とかOとかPとかoってなに?
A.書込み手段を区別する目印です。
PC等が 0 (ゼロ) 、携帯が O (大文字のオー)、 P は公式p2( http://p2.2ch.net/ )
それ以外(Air H"等)が o (小文字のオー)からです。
荒らし対策の一環として、一部の板に便宜上導入されています。
2005/06/24(金) 00:41:40ID:Ud6A2wHe0
携帯もキャリア別に末尾変えるべきかと
681root▲ ★
NGNG >>679
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
が、正しいです。
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
が、正しいです。
とりあえず、IR-EDGEPHONEセンターとPRINは
課金条件とかが違うから名前を変えているけれど
中身は同じなんじゃないかと。だからIPも同じになると。
憶測なんだけど。
でもAPの電話番号は違うんだよね
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
課金条件とかが違うから名前を変えているけれど
中身は同じなんじゃないかと。だからIPも同じになると。
憶測なんだけど。
でもAPの電話番号は違うんだよね
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
2005/06/24(金) 00:43:25ID:skdIbacY0
684root▲ ★
NGNG >>680
それは一瞬考えたんですが、今の目的(荒らしの出自判定)からは、
その必要ないと思っているです。
なんでかというと「xxのキャリアからの荒らしだ」ということは規制方法論的には全く
区別していなくて、いずれの携帯キャリアも全く同じ方法で、規制しているからですね。
もしが「auだけ特殊な規制処理」とか「DoCoMoだけ特殊な規制処理」とかしているんであれば、
区別する意味はあるわけですけど。
それは一瞬考えたんですが、今の目的(荒らしの出自判定)からは、
その必要ないと思っているです。
なんでかというと「xxのキャリアからの荒らしだ」ということは規制方法論的には全く
区別していなくて、いずれの携帯キャリアも全く同じ方法で、規制しているからですね。
もしが「auだけ特殊な規制処理」とか「DoCoMoだけ特殊な規制処理」とかしているんであれば、
区別する意味はあるわけですけど。
685root▲ ★
NGNG で、今入っている o 判定ルーチンにはバグがあるです。
(もともとあったのが、今回判明した)。
ということで今出る o は、必ずしも正確なものではないです。
めしくったら、ちと直してみるか。
(もともとあったのが、今回判明した)。
ということで今出る o は、必ずしも正確なものではないです。
めしくったら、ちと直してみるか。
2005/06/24(金) 00:47:21ID:yPAq0Ytf0
うむ。
末尾「o」はいい感じですね。
それよりも、root氏って京ぽなー??
末尾「o」はいい感じですね。
それよりも、root氏って京ぽなー??
2005/06/24(金) 00:51:39ID:0G1cfbjq0
ではこんな感じで。(種別の並びをあわせてみました)
Q.IDの後ろに付いてるOとかPとかoとか0ってなに?
A.書込み手段を区別する目印です。
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
荒らし対策の一環として、一部の板に便宜上導入されています。
Q.IDの後ろに付いてるOとかPとかoとか0ってなに?
A.書込み手段を区別する目印です。
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
荒らし対策の一環として、一部の板に便宜上導入されています。
2005/06/24(金) 00:55:08ID:am8Tfv680
Oと0の分け方は大雑把なのに、AIR-EDGE PHONEセンター経由だけ識別されるのは、ちょっといやーかもです。
0→Oへ分類変えされるならいいけど。
AIR-EDGE PHONEセンターからの荒しって多いんですか?
0→Oへ分類変えされるならいいけど。
AIR-EDGE PHONEセンターからの荒しって多いんですか?
692root▲ ★
NGNG >>683
http://search.cpan.org/dist/Net-CIDR-Lite/
こっちのほうが、軽くて速いらしいです。
とりあえず、試してみるか。
今の o 表示は、これからとりあえずいったんオフにするです。
http://search.cpan.org/dist/Net-CIDR-Lite/
こっちのほうが、軽くて速いらしいです。
とりあえず、試してみるか。
今の o 表示は、これからとりあえずいったんオフにするです。
2005/06/24(金) 01:33:13ID:am8Tfv680
2005/06/24(金) 01:34:26ID:0G1cfbjq0
おっ、質雑のほうへ転載していただいた方乙です。
2005/06/24(金) 01:34:56ID:skdIbacY0
696root▲ ★
NGNG >>695
どもです。
軽いといってもちょっとコストのかかりそうな処理なので、
SpeedyCGIの特性を生かして、$cidr->add() は出航時の1回だけにしました。
こうしておけば、重い初期化と登録は1回だけで済むはずかなと。
こんなかんじで。$FOX は出航時に初期化して使う一連のグローバル変数群。
use Net::CIDR::Lite;
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new;
# IPアドレスブロック一覧(CIDR形式)
# アドレスレンジが追加された場合、ここに加えていく
# http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
my @airedgecidr = (
"61.198.142.0/24",
"61.198.249.0/24", "61.198.250.0/24",
"61.198.253.0/24", "61.198.254.0/24", "61.198.255.0/24",
"61.204.0.0/24",
"61.204.3.0/25",
"61.204.4.0/24",
"61.204.6.0/25",
"210.168.246.0/24", "210.168.247.0/24",
"211.18.235.0/24",
"211.18.238.0/24", "211.18.239.0/24",
"219.108.0.0/24", "219.108.1.0/24", "219.108.2.0/24", "219.108.3.0/24",
"219.108.4.0/24", "219.108.5.0/24", "219.108.6.0/24", "219.108.7.0/24",
"221.119.0.0/24", "221.119.1.0/24", "221.119.2.0/24", "221.119.3.0/24",
"221.119.4.0/24", "221.119.5.0/24", "221.119.6.0/24", "221.119.7.0/24",
"221.119.8.0/24", "221.119.9.0/24" );
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
どもです。
軽いといってもちょっとコストのかかりそうな処理なので、
SpeedyCGIの特性を生かして、$cidr->add() は出航時の1回だけにしました。
こうしておけば、重い初期化と登録は1回だけで済むはずかなと。
こんなかんじで。$FOX は出航時に初期化して使う一連のグローバル変数群。
use Net::CIDR::Lite;
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new;
# IPアドレスブロック一覧(CIDR形式)
# アドレスレンジが追加された場合、ここに加えていく
# http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
my @airedgecidr = (
"61.198.142.0/24",
"61.198.249.0/24", "61.198.250.0/24",
"61.198.253.0/24", "61.198.254.0/24", "61.198.255.0/24",
"61.204.0.0/24",
"61.204.3.0/25",
"61.204.4.0/24",
"61.204.6.0/25",
"210.168.246.0/24", "210.168.247.0/24",
"211.18.235.0/24",
"211.18.238.0/24", "211.18.239.0/24",
"219.108.0.0/24", "219.108.1.0/24", "219.108.2.0/24", "219.108.3.0/24",
"219.108.4.0/24", "219.108.5.0/24", "219.108.6.0/24", "219.108.7.0/24",
"221.119.0.0/24", "221.119.1.0/24", "221.119.2.0/24", "221.119.3.0/24",
"221.119.4.0/24", "221.119.5.0/24", "221.119.6.0/24", "221.119.7.0/24",
"221.119.8.0/24", "221.119.9.0/24" );
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
697root▲ ★
NGNG で、チェック用サブルーチンはこんなふう。
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
$FOX->{AIREDGECIDR}->find($raddr);
}
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
$FOX->{AIREDGECIDR}->find($raddr);
}
698root▲ ★
NGNG こうだった。
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
return $FOX->{AIREDGECIDR}->find($raddr);
}
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
return $FOX->{AIREDGECIDR}->find($raddr);
}
699root▲ ★
NGNG2005/06/24(金) 08:21:00ID:M5iaI72S0
>>696
NetCIDRは、配列の参照受け取ったりはしないの?
まあ、数十回のコピーならさしてコストかかんないだろうけど。
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
↓の方がPerl的かも。処理速度は殆ど変わらんと思うけど。
foreach my $cidr (@airedgecidr){
$FOX->{AIREDGECIDR}->add($cidr);
}
>>697-698
Perlの世界では暗黙に最後の評価値がretrurn値になるので、
どっちでもOKですよ。前者の記法を好む人も多い。
こちらは完全に好みの問題だけど。
しかしこれ関数化する意味あるの?@FOXが呼び出し元のスコープにないとか?
NetCIDRは、配列の参照受け取ったりはしないの?
まあ、数十回のコピーならさしてコストかかんないだろうけど。
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
↓の方がPerl的かも。処理速度は殆ど変わらんと思うけど。
foreach my $cidr (@airedgecidr){
$FOX->{AIREDGECIDR}->add($cidr);
}
>>697-698
Perlの世界では暗黙に最後の評価値がretrurn値になるので、
どっちでもOKですよ。前者の記法を好む人も多い。
こちらは完全に好みの問題だけど。
しかしこれ関数化する意味あるの?@FOXが呼び出し元のスコープにないとか?
2005/06/24(金) 08:27:05ID:skdIbacY0
2005/06/24(金) 08:31:08ID:skdIbacY0
あらかぶりましたわ
703root▲ ★
NGNG >>700
下の3行のほうがよさげですね。それにしてみるです。
(そのへんの作法にくわしくなかったりします)
で、SpeedyCGI 化している今の bbs.cgi では、
出航時に1回しか設定しないところ(SETTING.TXT / 広告チェック用リスト / ローカルルール等)は、
まとめて一発関数呼んで(initFOX)、そこでやっているです。
で、上記は、initFOX内に追加したと。
下の3行のほうがよさげですね。それにしてみるです。
(そのへんの作法にくわしくなかったりします)
で、SpeedyCGI 化している今の bbs.cgi では、
出航時に1回しか設定しないところ(SETTING.TXT / 広告チェック用リスト / ローカルルール等)は、
まとめて一発関数呼んで(initFOX)、そこでやっているです。
で、上記は、initFOX内に追加したと。
704ヽ( ・∀・)ノ ≡●ウンコー ◆worRE2unko
NGNG >>631
時間によってかなり人数違うの
時間によってかなり人数違うの
705FOX ★
2005/06/24(金) 13:59:27ID:???0 そして、あとから読む人がまた悩むのであった、、、
706讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG エェェ(´Д`)ェェエ
707root▲ ★
NGNG >>705
できるだけ「おじさんのインデント」とか「おじさんの書き方」に合わせるようには、
しているわけです。サブルーチンやら変数の使い方やらも。
…しかし、難しい問題ですね。
心が通じ合わないと、だめなのかしら。
できるだけ「おじさんのインデント」とか「おじさんの書き方」に合わせるようには、
しているわけです。サブルーチンやら変数の使い方やらも。
…しかし、難しい問題ですね。
心が通じ合わないと、だめなのかしら。
2005/06/24(金) 14:36:48ID:M5iaI72S0
>>700
自己レス。
> NetCIDRは、配列の参照受け取ったりはしないの?
http://search.cpan.org/~dougw/Net-CIDR-Lite-0.17/Lite.pm
しないっぽい。
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new(@airedgecidr);
ってのはできるらしいが、全部add_any()に投げられちゃうらしいので
プログラマ的にはちょっと気持ち悪いかな。
>>703
んーとよく分からないんだけど、mumumuIsIP4AirEdgePhone()の呼び出し元からは
@FOXが参照できないってこと?
自己レス。
> NetCIDRは、配列の参照受け取ったりはしないの?
http://search.cpan.org/~dougw/Net-CIDR-Lite-0.17/Lite.pm
しないっぽい。
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new(@airedgecidr);
ってのはできるらしいが、全部add_any()に投げられちゃうらしいので
プログラマ的にはちょっと気持ち悪いかな。
>>703
んーとよく分からないんだけど、mumumuIsIP4AirEdgePhone()の呼び出し元からは
@FOXが参照できないってこと?
709FOX ★
2005/06/24(金) 14:38:33ID:???0 わたしにあわせる必要はまったくなく、、、
でも return は明示的にすべきでしょ
Perl の良さである「だれでもできる」を殺していると思う
でも return は明示的にすべきでしょ
Perl の良さである「だれでもできる」を殺していると思う
710root▲ ★
NGNG >>708
あぁ、そういう意味ですか。
つまり、
if(&mumumuIsIP4AirEdgePhone($raddr)) {
なんちゃら;
}
じゃなくて、
if($FOX->{AIREDGECIDR}->find($raddr)) {
なんちゃら;
}
ていいんじゃないかってゆうことですね。
確かにそうですが、どっちが作法としていいのか、っていう話なのかなと。
あぁ、そういう意味ですか。
つまり、
if(&mumumuIsIP4AirEdgePhone($raddr)) {
なんちゃら;
}
じゃなくて、
if($FOX->{AIREDGECIDR}->find($raddr)) {
なんちゃら;
}
ていいんじゃないかってゆうことですね。
確かにそうですが、どっちが作法としていいのか、っていう話なのかなと。
711root▲ ★
NGNG2005/06/24(金) 14:42:19ID:qV+vDjG60
俺も暗黙の返り値ってのはあんま好きじゃないなー
古いタイプなのかも
古いタイプなのかも
713FOX ★
2005/06/24(金) 14:42:54ID:???0 >Perlの世界では暗黙に最後の評価値がretrurn値になるので、
これをやられると、みんなが辛いということなんですが、
これをやられると、みんなが辛いということなんですが、
715root▲ ★
NGNG >>714
…と私もおもたので、今のは前者になっているです。
で、難民のほうで頼んだ例のPerlモジュール入れていただけると、qb6のを配ることができるですね。
(qb6ではqw()でローカルに読ませてテストしたので、今配ると他で動かないです)
…と私もおもたので、今のは前者になっているです。
で、難民のほうで頼んだ例のPerlモジュール入れていただけると、qb6のを配ることができるですね。
(qb6ではqw()でローカルに読ませてテストしたので、今配ると他で動かないです)
2005/06/24(金) 15:05:13ID:M5iaI72S0
>>710
そゆことです。
何やってるのか関数名で見通したい、というのなら前者って感じですかね。
全体構造が分からないんで的違いな話になる可能性大ですが、どちらにせよ
$FOX->{AIREDGECIDR}は同じファイル内でだけ呼ぶようにしたらいいんじゃ
ないかなと思うです。その結果が前者なんであれば前者がベターですね。
そゆことです。
何やってるのか関数名で見通したい、というのなら前者って感じですかね。
全体構造が分からないんで的違いな話になる可能性大ですが、どちらにせよ
$FOX->{AIREDGECIDR}は同じファイル内でだけ呼ぶようにしたらいいんじゃ
ないかなと思うです。その結果が前者なんであれば前者がベターですね。
2005/06/24(金) 19:42:05ID:j6fIYZld0
ごめんなさい
ちょこっとエジでテスト
ちょこっとエジでテスト
719サザン ★
NGNG qb6 の bbs.cgi は全サーバに配っちゃダメなんですよね?
721サザン ★
NGNG >>720
いやー、特に急ぎではないです。
質問・雑談スレ178@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1119446519/666
この辺を入れました。
いやー、特に急ぎではないです。
質問・雑談スレ178@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1119446519/666
この辺を入れました。
724root▲ ★
NGNG そう言っていただけると、信じてました。
愛があれば、年の差なんて。
愛があれば、年の差なんて。
725サザン ★
NGNG 今はギクシャクしてますけど、少しずつ仲良くなっていきます、、
えぇ、サーバとですよ。
えぇ、サーバとですよ。
2005/06/25(土) 00:34:36ID:qDyC1RFhO
セックルキター
2005/06/25(土) 00:38:02ID:gieTPTdE0
ウホッ!
2005/06/25(土) 01:44:13ID:tFnzMa950
ここが夜中に発展場と化している件。
2005/06/25(土) 04:19:06ID:uwvlpLto0
今日は別なスレに行ってるみたいね
730だんしゃくねこ
2005/06/25(土) 05:31:34ID:A51tnjWK0 │_A
│・−・) きゃー
↓ ⊂)
│・−・) きゃー
↓ ⊂)
731宿酔 ◆TWARamEjuA
NGNG えぇ、呑みすぎました。。。
2005/06/25(土) 14:13:26ID:984XqAIa0
すんげーどうでもいいけど、
foreach (@airedgecidr){
$FOX->{AIREDGECIDR}->add($_);
}
こうすると0.01マイクロ秒くらい速くなったり。。
foreach (@airedgecidr){
$FOX->{AIREDGECIDR}->add($_);
}
こうすると0.01マイクロ秒くらい速くなったり。。
735外野ァァン
2005/06/27(月) 11:56:40ID:ADqKwFtG0 AirH"判別、復活?
2005/06/28(火) 16:50:03ID:LQgu/qx+0
0 O o P がおっぱいに見えたから、
題して「おっぱい作戦」だな
題して「おっぱい作戦」だな
738▲ ◆cZfSunOs.U
2005/06/30(木) 23:46:01ID:rETl+gr10 実装済:
subject.txt, subback.html, dat/*.dat 更新
あぼーん
dat/*.dat から subject.txt, subback.html 再生成
未実装:
index.html, html/*.html 更新
他板へのスレ移動 etc...
とりあえず↑ってところですが http://sunos.saita.ma/bbsd.c
全部実装すると雪だるま対応仕様になりますが,とりあえず今の段階でも
subject.txt 更新等の重い処理を bbs.cgi から抜き出して軽量化にはなると思います.
使用法: bbsd [-cfh] [-b bindaddr] [-d docroot] [-i subjects_interval] [-I setting_interval] [-n nthreads] [-p port] [-s servername]
-b bindaddr: UDP ソケットを bind するアドレスを指定 [default: 127.0.0.1]
-c: 入力のバイトシーケンスチェックを行う (環境変数 LANG/LC_CTYPE/LC_ALL に依存)
-d docroot: httpd の document root [default: /usr/local/apache2/htdocs]
-f: フォアグラウンドで実行
-h: ヘルプ表示
-i subjects_interval: subject.txt 等の更新間隔(秒) [default: 5]
-I setting_interval: SETTING.TXT のチェック間隔(秒) [default: 60]
-p port: UDP ソケットのポート番号 [default: 2222]
-s servername: httpd のサーバ名 [default: www.example.com]
-DUSE_THREADS 付きでビルドするとマルチスレッド版になり,このオプションが追加.
-n nthreads: worker スレッド数 [default: 4]
んで,例えばこんな感じで起動する,と.
su ch2qb5 -c 'LANG=ja_JP.SJIS bbsd -c -d/home/ch2qb5/htdocs -sqb5.2ch.net'
bbs.cgi からの呼び出し法は
----------------------------------------------------------------------
use Socket;
use constant BBSD_HOST => inet_aton('127.0.0.1');
use constant BBSD_PORT => 2222;
use constant BBSD_TIMEOUT => 1;
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || return "$!";
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || return "$!";
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
return $str;
}
----------------------------------------------------------------------
subject.txt, subback.html, dat/*.dat 更新
あぼーん
dat/*.dat から subject.txt, subback.html 再生成
未実装:
index.html, html/*.html 更新
他板へのスレ移動 etc...
とりあえず↑ってところですが http://sunos.saita.ma/bbsd.c
全部実装すると雪だるま対応仕様になりますが,とりあえず今の段階でも
subject.txt 更新等の重い処理を bbs.cgi から抜き出して軽量化にはなると思います.
使用法: bbsd [-cfh] [-b bindaddr] [-d docroot] [-i subjects_interval] [-I setting_interval] [-n nthreads] [-p port] [-s servername]
-b bindaddr: UDP ソケットを bind するアドレスを指定 [default: 127.0.0.1]
-c: 入力のバイトシーケンスチェックを行う (環境変数 LANG/LC_CTYPE/LC_ALL に依存)
-d docroot: httpd の document root [default: /usr/local/apache2/htdocs]
-f: フォアグラウンドで実行
-h: ヘルプ表示
-i subjects_interval: subject.txt 等の更新間隔(秒) [default: 5]
-I setting_interval: SETTING.TXT のチェック間隔(秒) [default: 60]
-p port: UDP ソケットのポート番号 [default: 2222]
-s servername: httpd のサーバ名 [default: www.example.com]
-DUSE_THREADS 付きでビルドするとマルチスレッド版になり,このオプションが追加.
-n nthreads: worker スレッド数 [default: 4]
んで,例えばこんな感じで起動する,と.
su ch2qb5 -c 'LANG=ja_JP.SJIS bbsd -c -d/home/ch2qb5/htdocs -sqb5.2ch.net'
bbs.cgi からの呼び出し法は
----------------------------------------------------------------------
use Socket;
use constant BBSD_HOST => inet_aton('127.0.0.1');
use constant BBSD_PORT => 2222;
use constant BBSD_TIMEOUT => 1;
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || return "$!";
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || return "$!";
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
return $str;
}
----------------------------------------------------------------------
739▲ ◆cZfSunOs.U
2005/06/30(木) 23:47:02ID:rETl+gr10 で,書き込み処理はこんな感じで.
my $errmsg = bbsd($bbs, $key, $datline);
$bbs は板の指定(operate),$key はスレッドキー(1113117347),
$datline は *.dat への出力と同じ形式の文字列.
name<>email<>date etc.<>message<>[title]
正常に処理されると $errmsg は空文字列で,エラーが発生した場合は
それを示す文字列になります.
この bbsd は subject データをオンメモリで保持するため,
他のプログラムが subject.txt 等を変更しても bbsd によって
上書きされてしまうので,あぼーんや subject 再生成等の機能も
搭載しました.
レスの通常あぼーん:
my $errmsg = bbsd($bbs, "delete:$key", $range);
レスの透明あぼーん:
my $errmsg = bbsd($bbs, "tdelete:$key", $range);
スレッドのゴミ箱逝き:
my $errmsg = bbsd($bbs, "delete:$key", '*');
スレッドのファイル自体削除:
my $errmsg = bbsd($bbs, "tdelete:$key", '*');
$range は例えば "2-19,22,24,26-29" のようなレス番指定.
subject.txt 等の再生成:
my $errmsg = bbsd($bbs, 'repair');
この処理は時間がかかりそうなら BBSD_TIMEOUT はもっと長い方がいいかも知れません.
もっとも,UDP ソケットキューがあふれてリクエストが破棄されているとかでない限り
タイムアウトになっても処理自体は行われますが.
my $errmsg = bbsd($bbs, $key, $datline);
$bbs は板の指定(operate),$key はスレッドキー(1113117347),
$datline は *.dat への出力と同じ形式の文字列.
name<>email<>date etc.<>message<>[title]
正常に処理されると $errmsg は空文字列で,エラーが発生した場合は
それを示す文字列になります.
この bbsd は subject データをオンメモリで保持するため,
他のプログラムが subject.txt 等を変更しても bbsd によって
上書きされてしまうので,あぼーんや subject 再生成等の機能も
搭載しました.
レスの通常あぼーん:
my $errmsg = bbsd($bbs, "delete:$key", $range);
レスの透明あぼーん:
my $errmsg = bbsd($bbs, "tdelete:$key", $range);
スレッドのゴミ箱逝き:
my $errmsg = bbsd($bbs, "delete:$key", '*');
スレッドのファイル自体削除:
my $errmsg = bbsd($bbs, "tdelete:$key", '*');
$range は例えば "2-19,22,24,26-29" のようなレス番指定.
subject.txt 等の再生成:
my $errmsg = bbsd($bbs, 'repair');
この処理は時間がかかりそうなら BBSD_TIMEOUT はもっと長い方がいいかも知れません.
もっとも,UDP ソケットキューがあふれてリクエストが破棄されているとかでない限り
タイムアウトになっても処理自体は行われますが.
2005/07/01(金) 14:35:23ID:UUYAgp820
2005/07/01(金) 14:43:09ID:t9ua+Um40
じっけん!じっけん!
743讃岐フォアンフォアン▲ ◆SANUKIvwUE
NGNG ワクワクテカテカ
745▲ ◆cZfSunOs.U
2005/07/02(土) 01:27:22ID:YxODQddI0 おっと >>738 close() 入れないと......
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || (close(SOCK), return "$!");
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || (close(SOCK), return "$!");
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
close(SOCK);
return $str;
}
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || (close(SOCK), return "$!");
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || (close(SOCK), return "$!");
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
close(SOCK);
return $str;
}
746● ◆ANGLERlqvM
NGNG ここまで来たんですね。
もう、凄いとしか。。。
もう、凄いとしか。。。
2005/07/02(土) 09:28:05ID:ZRfZC6Ox0
ああ、和菓子職人が仕上げていく様子を、横で(口を緩めて)眺めている感覚。
2005/07/02(土) 11:59:59ID:TINNy+yho
ID末尾の識別子について
WILLCOMの「端末だけ」を識別することに何の意味があるのでしょう?("ポン厨"とか言われるのですが)
味/京ポンのような接続環境は、ダイアルアップ接続なPDA/モバイルなどもそうでしょう。
そして、コピペに不自由なWILLCOM端末を使うより、PDA/モバイルなどを使う方が悪質な荒らしが可能と思います。
繋ぐたびにIDが変わるISPのくくりで識別するというなら、まだ納得できます。
要はprinならセンターと分ける必要はなくて、同じ識別をしたらということです。dionとかも。
WILLCOMの「端末だけ」を識別することに何の意味があるのでしょう?("ポン厨"とか言われるのですが)
味/京ポンのような接続環境は、ダイアルアップ接続なPDA/モバイルなどもそうでしょう。
そして、コピペに不自由なWILLCOM端末を使うより、PDA/モバイルなどを使う方が悪質な荒らしが可能と思います。
繋ぐたびにIDが変わるISPのくくりで識別するというなら、まだ納得できます。
要はprinならセンターと分ける必要はなくて、同じ識別をしたらということです。dionとかも。
749root▲ ★
NGNG >>748
技術的には bbs.cgi での「特別扱い具合」を示しているですね。
つまり、bbs.cgi 内で他の端末よりも手厚く取り扱っているわけです。
で、私自身も京ぽん使いで、o が出る板(こことか)にちょくちょく書いているですが、
あんまりそうゆうこと言われたことないです。
技術的には bbs.cgi での「特別扱い具合」を示しているですね。
つまり、bbs.cgi 内で他の端末よりも手厚く取り扱っているわけです。
で、私自身も京ぽん使いで、o が出る板(こことか)にちょくちょく書いているですが、
あんまりそうゆうこと言われたことないです。
2005/07/02(土) 18:39:02ID:8PRXTeyH0
2005/07/02(土) 19:08:59ID:0Im+zYFu0
2005/07/02(土) 19:27:39ID:pqeP7+DPO
煽る奴は無視すればいいだけ
2005/07/02(土) 19:30:55ID:8UGV20P00
>システム用件と業務用件を切り分け出来ていない見本で砂
そうですねっ
* 挑発には乗らない。挑発するような人の意見は、たいてい誰も重要視しません。
そうですねっ
* 挑発には乗らない。挑発するような人の意見は、たいてい誰も重要視しません。
2005/07/02(土) 20:01:46ID:C+lXVmU/0
どうせ識別されるとマズいようなレスばっかりしてるんだろ
755748
2005/07/02(土) 22:09:17ID:KCuDl3J/o >>749
あーなるほど・・・、味ポンのブラウザがリファラ吐かないってやつですか。
しかし、京ポンはリファラ吐くにもかかわらず、味ポンルートで処理されるようになってしまったのですね。
なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
そのためリファラを無視するようにしたんじゃなかったですかね。なんか本末転倒…。
あーなるほど・・・、味ポンのブラウザがリファラ吐かないってやつですか。
しかし、京ポンはリファラ吐くにもかかわらず、味ポンルートで処理されるようになってしまったのですね。
なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
そのためリファラを無視するようにしたんじゃなかったですかね。なんか本末転倒…。
756root▲ ★
2005/07/03(日) 00:18:13ID:???0 >>750
そうか。
でも、それで著しく不公平になったとは思えないんで
(AIR-EDGE PHONEユーザが日本全体で1000人しかいないとかだったら、
ひょっとすると不公平なのかもかもだけど)、
変える気は今のところないです。すんません。
そうか。
でも、それで著しく不公平になったとは思えないんで
(AIR-EDGE PHONEユーザが日本全体で1000人しかいないとかだったら、
ひょっとすると不公平なのかもかもだけど)、
変える気は今のところないです。すんません。
757root▲ ★
NGNG >>755
で、2ちゃんねるではだいぶ前からリファラの有無のチェックはしているので
(少なくとも味ぽんや京ぽんが出るのよりも前から)、
なので、
> なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
> そのためリファラを無視するようにしたんじゃなかったですかね。
というのは正確ではなくて、
味ぽんからの書き込みに対応するために、AIR-EDGE PHONEセンターからの
アクセスではリファラを無視するようにした
というのが、たぶん正しいと思われるです。
当時、不動楽さん(= クラシックさん)がそのように対応したはず。
で、2ちゃんねるではだいぶ前からリファラの有無のチェックはしているので
(少なくとも味ぽんや京ぽんが出るのよりも前から)、
なので、
> なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
> そのためリファラを無視するようにしたんじゃなかったですかね。
というのは正確ではなくて、
味ぽんからの書き込みに対応するために、AIR-EDGE PHONEセンターからの
アクセスではリファラを無視するようにした
というのが、たぶん正しいと思われるです。
当時、不動楽さん(= クラシックさん)がそのように対応したはず。
758755:748
2005/07/03(日) 04:40:33ID:tQyFxUHBo >>757
それは味ポン互換のUAの場合ですね。
UAがOperaの場合はPCルートなので、クラシックから書き込みしようとするとリファラで書けませんでした。
で、具体的には分からないのですが、味ポンと同じようにリファラを無視するようにしたのではないでしょうか。
リファラがi2ch.netの場合の書き込みをOKにしたわけではないようですし。
↓このあたり
携帯→2ch運用情報スレッド12
http://qb5.2ch.net/test/read.cgi/operate/1094575260/346-
京ポンに関しては必要以上に面倒なことをやってる気がするですよ。
それは味ポン互換のUAの場合ですね。
UAがOperaの場合はPCルートなので、クラシックから書き込みしようとするとリファラで書けませんでした。
で、具体的には分からないのですが、味ポンと同じようにリファラを無視するようにしたのではないでしょうか。
リファラがi2ch.netの場合の書き込みをOKにしたわけではないようですし。
↓このあたり
携帯→2ch運用情報スレッド12
http://qb5.2ch.net/test/read.cgi/operate/1094575260/346-
京ポンに関しては必要以上に面倒なことをやってる気がするですよ。
759root▲ ★
NGNG >>758
ふむ。
そのスレの384にこんな書き込みがあるので、確かに当時、何かしているようですね。
384 名前:不動楽 ★[sage] 投稿日:04/09/19 23:07:56 ID:???
>>381
IP帯域及びリファラエラーの調整してみました。
どうでしょ?
今のbbs.cgiでは、
・AIR-EDGE PHONEセンターのIPアドレスレンジからの接続だったら(*1)、
・リファラの扱いは他の携帯電話と同じ扱いにするけど、
・識別情報が来ないので、ID生成やSamba24はPCと同じに扱う
って、なっているです。
ようは、携帯とPCの中間みたいな扱いですね。
AIR-EDGE PHONEも識別情報を送ってきてくれると、楽なんですが。
(*1)http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
ふむ。
そのスレの384にこんな書き込みがあるので、確かに当時、何かしているようですね。
384 名前:不動楽 ★[sage] 投稿日:04/09/19 23:07:56 ID:???
>>381
IP帯域及びリファラエラーの調整してみました。
どうでしょ?
今のbbs.cgiでは、
・AIR-EDGE PHONEセンターのIPアドレスレンジからの接続だったら(*1)、
・リファラの扱いは他の携帯電話と同じ扱いにするけど、
・識別情報が来ないので、ID生成やSamba24はPCと同じに扱う
って、なっているです。
ようは、携帯とPCの中間みたいな扱いですね。
AIR-EDGE PHONEも識別情報を送ってきてくれると、楽なんですが。
(*1)http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
760root▲ ★
NGNG (以下余談)
そういえば、AIR-EDGE PHONEでできるゲームか何かで、
識別情報を送ってこないのを悪用(?)して、
1台の電話機で複数個参加するとかやっている人が横行しているとか、いないとか。
次の京ぽんでは識別情報を送るようになってほしいなぁと、ゆっておこう。
そういえば、AIR-EDGE PHONEでできるゲームか何かで、
識別情報を送ってこないのを悪用(?)して、
1台の電話機で複数個参加するとかやっている人が横行しているとか、いないとか。
次の京ぽんでは識別情報を送るようになってほしいなぁと、ゆっておこう。
NGNG
コロプラノコトカ-------Σ(゚д゚)
762名無し募集中。。。
2005/07/06(水) 23:13:29ID:0YvouOu40 なんでわざわざ何で書き込んでるとかわかるようにするの
2005/07/07(木) 00:14:45ID:nVkQbPw9P
prin規制が掛かりました。今回の原因はPC用のprinが原因の様です。
AIR-EDGEセンター接続かどうかが判別できるようなった今、センター接続を規制の対象から外して頂くことはできないものでしょうか?
AIR-EDGEセンター接続かどうかが判別できるようなった今、センター接続を規制の対象から外して頂くことはできないものでしょうか?
2005/07/07(木) 00:33:53ID:c6DvOwmQ0
きっとスレ違い
たぶん板違い
たぶん板違い
765ちょろ ★
2005/07/12(火) 19:01:24ID:???0 再確認でーす
IsKoukoku は bbspinkや2ch のbananaサーバで
するーする事は絶対にない
あってますか?
IsKoukoku は bbspinkや2ch のbananaサーバで
するーする事は絶対にない
あってますか?
766む@移動中 P221119009166.ppp.prin.ne.jp
2005/07/12(火) 19:03:52ID:RwUQLwO2o 次オンラインになったら、
レスするです。
レスするです。
767だんしゃくねこ
2005/07/12(火) 19:06:42ID:SdZyUpa80768root▲ ★
NGNG ○ 現在のbbs.cgiにおける、IsKoukokuを実行するかを決めるアルゴリズム:
1) まずIsKoukokuを実行するかどうかは、
bbs_mainの最初のほうで、mumumuIsIsKoukoku関数を呼んで
その結果をもとに決めている。
2) 1) は1投稿ごとに呼ばれ、チェックされる
3) 2) でいったん「IsKoukokuを実行しない状況」と判断したら、
mumumuIsIsKoukokuの呼び出しそのものをキャンセルし、
その船が自爆するまでの間、ずっと「IsKoukokuを実行しない状況」になる
4) mumumuIsIsKoukokuでは、以下のアルゴリズムにより判断する
a) リストにあるサーバ(特別サーバ)かどうか調べ、もしそうならIsKoukokuは実行しない
現在の特別サーバのリスト:
live16, live20, live21, ex11
b) その瞬間のサーバのLAを調べ、一定の閾値以上だったらIsKoukokuは実行しない
現在の閾値:
cobra 30.0
tiger 20.0
banana 4.0
5) 現在IsKoukokuを実行している状態かそうでない状態かは、
各板のindex.htmlに「+Rock54」と出ているかいないかで判断できる
している状態:
BBS.CGI - 2005/07/05 (SpeedyCGI) +Rock54 +BBQ/BBM +Samba24=10
していない状態(例: news4vip)
BBS.CGI - 2005/07/05 (SpeedyCGI) +BBQ/BBM +Samba24=15
1) まずIsKoukokuを実行するかどうかは、
bbs_mainの最初のほうで、mumumuIsIsKoukoku関数を呼んで
その結果をもとに決めている。
2) 1) は1投稿ごとに呼ばれ、チェックされる
3) 2) でいったん「IsKoukokuを実行しない状況」と判断したら、
mumumuIsIsKoukokuの呼び出しそのものをキャンセルし、
その船が自爆するまでの間、ずっと「IsKoukokuを実行しない状況」になる
4) mumumuIsIsKoukokuでは、以下のアルゴリズムにより判断する
a) リストにあるサーバ(特別サーバ)かどうか調べ、もしそうならIsKoukokuは実行しない
現在の特別サーバのリスト:
live16, live20, live21, ex11
b) その瞬間のサーバのLAを調べ、一定の閾値以上だったらIsKoukokuは実行しない
現在の閾値:
cobra 30.0
tiger 20.0
banana 4.0
5) 現在IsKoukokuを実行している状態かそうでない状態かは、
各板のindex.htmlに「+Rock54」と出ているかいないかで判断できる
している状態:
BBS.CGI - 2005/07/05 (SpeedyCGI) +Rock54 +BBQ/BBM +Samba24=10
していない状態(例: news4vip)
BBS.CGI - 2005/07/05 (SpeedyCGI) +BBQ/BBM +Samba24=15
769root▲ ★
NGNG ということで、>>765 の結論ですが、
2ちゃんねる/PINKちゃんねるのいずれも共通に、
1) 負荷が上がって、サーバが苦しくなってきた場合、
自動的にIsKoukokuをするーするようになる
2) 負荷が下がると、順次船が入れ替わっていくことにより
自動的にIsKoukokuをするーしなくなる
という動作をします。
これにより特にサーバに書き込み集中で負荷がかかった時に
「手でbbs.cgiやread.cgiを止めて冷やさなければいけない」とか、
「bbs.cgiの爆発時にbbs.cgiの処理が転んでしまう」
といったことの回数が、減ったように思います。
animeサーバもこれともうひとつの安全装置を入れてから、
例の「土曜夕方のどーん」にも、耐えられるようになりました。
2ちゃんねる/PINKちゃんねるのいずれも共通に、
1) 負荷が上がって、サーバが苦しくなってきた場合、
自動的にIsKoukokuをするーするようになる
2) 負荷が下がると、順次船が入れ替わっていくことにより
自動的にIsKoukokuをするーしなくなる
という動作をします。
これにより特にサーバに書き込み集中で負荷がかかった時に
「手でbbs.cgiやread.cgiを止めて冷やさなければいけない」とか、
「bbs.cgiの爆発時にbbs.cgiの処理が転んでしまう」
といったことの回数が、減ったように思います。
animeサーバもこれともうひとつの安全装置を入れてから、
例の「土曜夕方のどーん」にも、耐えられるようになりました。
770root▲ ★
NGNG ということで、以上です。
なお、もうひとつの安全装置は
・LAが閾値を超えたら、index.html / subback.html の更新をある程度さぼる
となっているです。
なお、もうひとつの安全装置は
・LAが閾値を超えたら、index.html / subback.html の更新をある程度さぼる
となっているです。
771ちょろ ★
2005/07/12(火) 20:36:20ID:???0 広告爆撃が増加してきたんで
ISKoukoku はスキップしないでくださいー
したとしても、live系だけかと、
2ch&bbspink の banana サーバは絶対にスキップしないでください
ISKoukoku はスキップしないでくださいー
したとしても、live系だけかと、
2ch&bbspink の banana サーバは絶対にスキップしないでください
772root▲ ★
NGNG773ちょろ ★
2005/07/12(火) 20:39:08ID:???0 ex11 はどっちでもいいような、
774root▲ ★
NGNG ただし、animeサーバでのLA=20でのIsKoukokuスキップだけは、
従来どおりとさせていただきます。
これが働くのは、1週間のうちの5分だけのはずです。
従来どおりとさせていただきます。
これが働くのは、1週間のうちの5分だけのはずです。
776ちょろ ★
2005/07/12(火) 20:43:12ID:???0 あと 通称形態バーボンの早期投入が望まれています。 from 規制議論板
777ちょろ ★
2005/07/12(火) 20:43:24ID:???0 携帯だった
779root▲ ★
NGNG BBS.CGI - 2005/07/12
- banana サーバではLAに関係なく、常にIsKoukokuを実行
- ただし「特別サーバ」に指定したらするー
- banana サーバではLAに関係なく、常にIsKoukokuを実行
- ただし「特別サーバ」に指定したらするー
780ちょろ ★
2005/07/12(火) 21:12:30ID:???0 game10
game9
etc4
life7
hobby7
もスルーして欲しくないです。
game9
etc4
life7
hobby7
もスルーして欲しくないです。
781root▲ ★
NGNG 携帯Rock54ってのも、ありなのかな。
自動バーボンというか、自動BBMか。
自動バーボンというか、自動BBMか。
782root▲ ★
NGNG783root▲ ★
NGNG でもetc4は、電車男の時がちょっぴり心配かもね。
ま、いっか。その時はその時ということで。
ま、いっか。その時はその時ということで。
785ちょろ ★
2005/07/12(火) 21:24:48ID:???0 うーん
基本的には、、、全部onにして欲しいんだが、
なぜかというと、on/off は私たちには通常わからないので
効いているのか/いないのか
設定したのが あっているのか/あっていないのか
等がわからないのだ、「あぁ スルーしているから仕方ないんだよね」
で話しは終わってしまって、だれもそれ以上は深く考えないで
結局効いていないという風になってしまうのだ、
liveとex11以外は効かせて欲しいです
(anime は shar だかを ex11 に移転すればいいのかな?)
規制情報板まわりのコストがはげしく上昇しています。
基本的には、、、全部onにして欲しいんだが、
なぜかというと、on/off は私たちには通常わからないので
効いているのか/いないのか
設定したのが あっているのか/あっていないのか
等がわからないのだ、「あぁ スルーしているから仕方ないんだよね」
で話しは終わってしまって、だれもそれ以上は深く考えないで
結局効いていないという風になってしまうのだ、
liveとex11以外は効かせて欲しいです
(anime は shar だかを ex11 に移転すればいいのかな?)
規制情報板まわりのコストがはげしく上昇しています。
2005/07/12(火) 21:26:24ID:0+KohaPe0
788▲ ◆SANUKI/VII
NGNG あと、ex10&ex11のBBMが動いてない気がするんですけど…
789root▲ ★
NGNG ・bananaサーバでは必ず実行
・他の該当するサーバ(live系とex11)では必ず実行しない
・それ以外は必ず実行
にしました。
>>788
ex10とかex11のように常時投稿数が多いサーバは、
たまに自動的に止まる(安全装置が働く)ようです。
理由は、、、ううむ。
live系ですらこのような状況で止まることはないようなので、
単なる投稿数ではない、何か別の理由を疑い始めています。
・他の該当するサーバ(live系とex11)では必ず実行しない
・それ以外は必ず実行
にしました。
>>788
ex10とかex11のように常時投稿数が多いサーバは、
たまに自動的に止まる(安全装置が働く)ようです。
理由は、、、ううむ。
live系ですらこのような状況で止まることはないようなので、
単なる投稿数ではない、何か別の理由を疑い始めています。
790root▲ ★
NGNG ・bananaサーバでは必ず実行
・他のサーバ(tiger/cobra)のうち該当するサーバ(live系とex11)では実行しない
・それ以外のサーバは必ず実行
にしました。
IsKoukoku周りでLAで動的に判定する部分のコードは、全てコメントアウトしました。
# いったん、オフライン。
・他のサーバ(tiger/cobra)のうち該当するサーバ(live系とex11)では実行しない
・それ以外のサーバは必ず実行
にしました。
IsKoukoku周りでLAで動的に判定する部分のコードは、全てコメントアウトしました。
# いったん、オフライン。
792ちょろ ★
2005/07/12(火) 21:42:37ID:???0 はーい
今晩 bbs.cgi さわります
samba値を SETTING.TXT で指定
今晩 bbs.cgi さわります
samba値を SETTING.TXT で指定
793桶屋
2005/07/12(火) 21:46:04ID:aFhCYHbJ0 おおっ、ついに!
2005/07/12(火) 21:59:34ID:rWGBNCgJ0
SETTING.TXTを変更するCGIも忘れずにー
796桶屋
2005/07/12(火) 22:07:50ID:aFhCYHbJ0 ん?
変更人さんのお仕事を、サーバの管理者に一元して移してしまうということですか?
変更人さんのお仕事を、サーバの管理者に一元して移してしまうということですか?
2005/07/12(火) 22:16:55ID:FtnWrdWf0
700以上って・・・恐ろしい数ですね。
2005/07/12(火) 22:49:00ID:fwwlW4liO
で、いくつにするの?
60くらい?
60くらい?
799む P221119009124.ppp.prin.ne.jp
2005/07/12(火) 22:54:19ID:BoWTin/Io というわけで、携帯バーボンは若者にがんがってもらっちゃうてして、
私は凄腕さんと、Rock54の携帯用拡張、名付けてRock54Mをやることにしよう。
で、Rock54Mからは将来的に、自動的にBBMに突っ込んでしまうようにしよう。
私は凄腕さんと、Rock54の携帯用拡張、名付けてRock54Mをやることにしよう。
で、Rock54Mからは将来的に、自動的にBBMに突っ込んでしまうようにしよう。
800CamelRock ★
2005/07/12(火) 23:14:48ID:???0 わーい
2005/07/12(火) 23:52:16ID:fNDV0xfS0
記念パピコ
802root▲ ★
NGNG Rock54Mはbanana238に作ることになるわけだけど(今のRock54に同居)、
その作業は、システムの検査が終わった後で。
基本的には、今まで「無駄弾」を撃っていた
携帯からの広告投入に対応する器を作って、そこに入れ込むってかんじで。
その作業は、システムの検査が終わった後で。
基本的には、今まで「無駄弾」を撃っていた
携帯からの広告投入に対応する器を作って、そこに入れ込むってかんじで。
803root▲ ★
NGNG で、banana238のシステムそのものは健康であることが判明したため、
こっちは、たんたんと。
こっちは、たんたんと。
804root▲ ★
NGNG で、ネットワーク的には、
今までBBXに行っていた携帯からの広告投げの弾(無駄弾)を、
BBN(仮称)にとばすようにするだけなので、238の負荷は変化ないです。
あとは、単独スレ立ててそっちでやるかな。
今までBBXに行っていた携帯からの広告投げの弾(無駄弾)を、
BBN(仮称)にとばすようにするだけなので、238の負荷は変化ないです。
あとは、単独スレ立ててそっちでやるかな。
2005/07/13(水) 01:45:07ID:FrLVYDzQO
携帯ユーザーとして、詳細キボンヌ
2005/07/13(水) 01:53:36ID:AqB4ODOL0
>>805
Rockに登録されてる広告をマルチしてる携帯を自動的に永久アク禁にするシステム。
Rockに登録されてる広告をマルチしてる携帯を自動的に永久アク禁にするシステム。
807root▲ ★
NGNGNGNG
http://headline.2ch.net/test/read.cgi/bbynews/1121188566/
【音楽】サマソニにディープ・パープル出演決定!!【SUMMER SONIC 2005】
http://news18.2ch.net/test/read.cgi/mnewsplus/1121188566/
1 :starmanφ ★ :2005/07/13(水) 02:16:06 ID:???0
【音楽】サマソニにディープ・パープル出演決定!!【SUMMER SONIC 2005】
http://news18.2ch.net/test/read.cgi/mnewsplus/1121188566/
1 :starmanφ ★ :2005/07/13(水) 02:16:06 ID:???0
NGNG
やば、誤爆。
810タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/07/14(木) 02:20:47ID:fa4sKur90 bbsテーブルには、729板登録されています。
811動け動けウゴウゴ2ちゃんねる
2005/07/17(日) 01:43:54ID:MavNy2ze0 BBSが止まってますと表示されますが、何が原因でしょうか?
NGNG
>>811
掲示板システムの意味のBBSじゃないから気にしないで由
掲示板システムの意味のBBSじゃないから気にしないで由
813動け動けウゴウゴ2ちゃんねる
2005/07/17(日) 01:46:24ID:MavNy2ze0 ありがおう
814動け動けウゴウゴ2ちゃんねる
2005/07/18(月) 21:40:37ID:Cy7spHeg0 ここはレベルが高いインターネッツですね
2005/07/21(木) 14:58:02ID:pJtSBEAy0
>>522
糞コードだけど、これはダメ?
use strict;
print "Content-type: text/html\n\n";
chomp (my $uptime = `uptime`);
$uptime =~ /load average: ([0-9\.]+), ([0-9\.]+), ([0-9\.]+)/;
print "1min:$1, 5min:$2, 15min:$3";
糞コードだけど、これはダメ?
use strict;
print "Content-type: text/html\n\n";
chomp (my $uptime = `uptime`);
$uptime =~ /load average: ([0-9\.]+), ([0-9\.]+), ([0-9\.]+)/;
print "1min:$1, 5min:$2, 15min:$3";
816一般民
2005/07/21(木) 15:01:46ID:Jxz++eR80 お忙しいところすみません、一般民としてなのですが…
Over1000したときに出る『Over 1000 Thread』
に、日付と時刻を入れるのがよいかと思ったのですが。
普通のレスと同じ様な要領でも結構ですし。
Over1000したときに出る『Over 1000 Thread』
に、日付と時刻を入れるのがよいかと思ったのですが。
普通のレスと同じ様な要領でも結構ですし。
2005/07/21(木) 15:04:11ID:OShkCw3P0
1000の日時と大差ない気が
2005/07/21(木) 15:07:56ID:01ZGX+wVP
だとread.cgiで1000の日時を表示するようにした方が・・・
ってこれはread.cgiスレ行きだなw
ってこれはread.cgiスレ行きだなw
2005/07/21(木) 15:08:42ID:I4CPx6uW0
2005/07/21(木) 15:10:47ID:I4CPx6uW0
2005/07/21(木) 15:12:24ID:01ZGX+wVP
2005/07/21(木) 15:15:25ID:I4CPx6uW0
2005/07/21(木) 15:16:02ID:OlL03Us70
それ以前になぜ弄る必要があるかって話しだな
そのままでも不都合はないのに
そのままでも不都合はないのに
2005/07/21(木) 15:33:02ID:DHHT4d3K0
同意、1000の日時とほとんど同じだから変える必要ないよ
2005/07/21(木) 15:43:29ID:01ZGX+wVP
1001行ったスレは1000の日時が●無しでは分からないと思われ。
2005/07/21(木) 15:58:55ID:pJtSBEAy0
2005/07/21(木) 17:28:05ID:eGLeaMlD0
>最終時刻の件
1000未到達スレとの区別をしないといけなくなるし、
1001連続で終わるケースを考えるとさらに複雑に。。。
よって実現させるならbbs.cgiをいじる方がいいと思う
1000未到達スレとの区別をしないといけなくなるし、
1001連続で終わるケースを考えるとさらに複雑に。。。
よって実現させるならbbs.cgiをいじる方がいいと思う
2005/07/21(木) 17:41:50ID:C7Rtf7f70
>>815
Linuxだと
# uptime ; cat /proc/loadavg
05:37PM up 321 days, 20:27, 2 users, load average: 0.01, 0.03, 0.05
0.01 0.03 0.05 1/71 25924
とかあるんだがポータビリティ考えると使わない方が良いのかな?
Linuxだと
# uptime ; cat /proc/loadavg
05:37PM up 321 days, 20:27, 2 users, load average: 0.01, 0.03, 0.05
0.01 0.03 0.05 1/71 25924
とかあるんだがポータビリティ考えると使わない方が良いのかな?
2005/07/21(木) 17:52:01ID:6ungblET0
確かに普通だと完走したスレはいつ完走したのかわからんかった
2005/07/21(木) 18:56:39ID:I4CPx6uW0
>>828
つ ttp://search.cpan.org/src/CLINTDW/Sys-CpuLoad-0.03/CpuLoad.pm
つ ttp://search.cpan.org/src/CLINTDW/Sys-CpuLoad-0.03/CpuLoad.pm
2005/07/24(日) 08:36:16ID:7+XtBgBCO
open LA, 'uptime |';
$la = <LA>;
close LA;
んーわざわざモジュールを使わなくてもいいような。。
$la = <LA>;
close LA;
んーわざわざモジュールを使わなくてもいいような。。
2005/07/24(日) 08:39:10ID:eC9SVQJd0
重くていいならね
2005/07/24(日) 12:37:16ID:Wnx52BAf0
ていうかたかだか20レスの流れぐらい嫁と
2005/07/24(日) 19:21:34ID:83etqMa80
>>832とCpuLoad.pmの中身が実質同じである件
my $fh=new IO::File('/usr/bin/uptime|');
if (defined $fh) {
my $line = <$fh>;
$fh->close();
if ($line =~ /(\d+\.\d+)\s*,\s+(\d+\.\d+)\s*,\s+(\d+\.\d+)\s*$/) {
return ($1, $2, $3);
} # if we can parse the output of /usr/bin/uptime
} # if we could run /usr/bin/uptime
my $fh=new IO::File('/usr/bin/uptime|');
if (defined $fh) {
my $line = <$fh>;
$fh->close();
if ($line =~ /(\d+\.\d+)\s*,\s+(\d+\.\d+)\s*,\s+(\d+\.\d+)\s*$/) {
return ($1, $2, $3);
} # if we can parse the output of /usr/bin/uptime
} # if we could run /usr/bin/uptime
836▲ ◆cZfSunOs.U
2005/07/25(月) 00:08:26ID:/c/mWtbr0 ・ FreeBSD / OpenBSD は getloadavg() 実行
・ Linux は /proc/loadavg 読み出し
・ それ以外は /usr/bin/uptime 実行
ってなってますね<Sys::CpuLoad
っていうか Solaris でも getloadavg() あるんで......
--- README Tue Mar 19 08:24:02 2002
+++ README Tue Mar 19 08:24:02 2002
@@ -9,7 +9,7 @@
TO-DO
- - Better getloadavg() support. Currently FreeBSD and OpenBSD
+ - Better getloadavg() support. Currently FreeBSD, OpenBSD and Solaris
are supported. To improve upon this, see the next item below.
- Instead of hard coding preprocessor macros around getloadavg(),
try to compile C code snippets to see if getloadavg() is supported.
--- CpuLoad.pm Tue Mar 19 08:41:39 2002
+++ CpuLoad.pm Tue Mar 19 08:41:39 2002
@@ -54,8 +54,8 @@
sub load {
- # handle bsd getloadavg(). Read the README about why it is freebsd/openbsd.
- if ($cache eq 'getloadavg()' or lc $^O eq 'freebsd' or lc $^O eq 'openbsd' ) {
+ # handle bsd getloadavg(). Read the README about why it is freebsd/openbsd/solaris.
+ if ($cache eq 'getloadavg()' or lc $^O eq 'freebsd' or lc $^O eq 'openbsd' or lc $^O eq 'solaris') {
$cache = 'getloadavg()';
return getbsdload()
}
--- CpuLoad.xs Tue Mar 19 08:16:14 2002
+++ CpuLoad.xs Tue Mar 19 08:16:14 2002
@@ -18,7 +18,7 @@
PREINIT:
double loadavg[3];
PPCODE:
-#if defined(__FreeBSD__) || defined(__OpenBSD__)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || (defined(__sun__) && defined(__svr4__))
getloadavg(loadavg, 3);
#endif
EXTEND(SP, 3);
・ Linux は /proc/loadavg 読み出し
・ それ以外は /usr/bin/uptime 実行
ってなってますね<Sys::CpuLoad
っていうか Solaris でも getloadavg() あるんで......
--- README Tue Mar 19 08:24:02 2002
+++ README Tue Mar 19 08:24:02 2002
@@ -9,7 +9,7 @@
TO-DO
- - Better getloadavg() support. Currently FreeBSD and OpenBSD
+ - Better getloadavg() support. Currently FreeBSD, OpenBSD and Solaris
are supported. To improve upon this, see the next item below.
- Instead of hard coding preprocessor macros around getloadavg(),
try to compile C code snippets to see if getloadavg() is supported.
--- CpuLoad.pm Tue Mar 19 08:41:39 2002
+++ CpuLoad.pm Tue Mar 19 08:41:39 2002
@@ -54,8 +54,8 @@
sub load {
- # handle bsd getloadavg(). Read the README about why it is freebsd/openbsd.
- if ($cache eq 'getloadavg()' or lc $^O eq 'freebsd' or lc $^O eq 'openbsd' ) {
+ # handle bsd getloadavg(). Read the README about why it is freebsd/openbsd/solaris.
+ if ($cache eq 'getloadavg()' or lc $^O eq 'freebsd' or lc $^O eq 'openbsd' or lc $^O eq 'solaris') {
$cache = 'getloadavg()';
return getbsdload()
}
--- CpuLoad.xs Tue Mar 19 08:16:14 2002
+++ CpuLoad.xs Tue Mar 19 08:16:14 2002
@@ -18,7 +18,7 @@
PREINIT:
double loadavg[3];
PPCODE:
-#if defined(__FreeBSD__) || defined(__OpenBSD__)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || (defined(__sun__) && defined(__svr4__))
getloadavg(loadavg, 3);
#endif
EXTEND(SP, 3);
2005/07/25(月) 10:07:48ID:yHxLJjI00
手元のlinuxでもgetloadavg()ありますな
2005/07/25(月) 11:32:16ID:8fb/Mp/40
一応貼り。
830 名前:マァヴ(゚赫゚;) ◆jxAYUMI09s :2005/07/25(月) 00:37:05 ?###
HNに顔文字入れようと思うと、「;」から先がクッキーに残らないのでめんどくさいんだな(^_^;)これが
835 名前:▲ ◆cZfSunOs.U :2005/07/25(月) 00:44:26
>>830
>「;」から先がクッキーに残らない
index.html や read.cgi 出力での JavaScript コードを http://www2.2ch.net/snow/index.js
に入れ替えて,bbs.cgi での NAME, MAIL の Cookie 設定を JavaScript 側に移管すると,
それも解決しますけどね.
830 名前:マァヴ(゚赫゚;) ◆jxAYUMI09s :2005/07/25(月) 00:37:05 ?###
HNに顔文字入れようと思うと、「;」から先がクッキーに残らないのでめんどくさいんだな(^_^;)これが
835 名前:▲ ◆cZfSunOs.U :2005/07/25(月) 00:44:26
>>830
>「;」から先がクッキーに残らない
index.html や read.cgi 出力での JavaScript コードを http://www2.2ch.net/snow/index.js
に入れ替えて,bbs.cgi での NAME, MAIL の Cookie 設定を JavaScript 側に移管すると,
それも解決しますけどね.
839動け動けウゴウゴ2ちゃんねる
2005/08/08(月) 19:30:09ID:tRVacNbU0840▲ ◆cZfSunOs.U
2005/08/09(火) 19:59:03ID:PPUhO8ll0 http://qb5.2ch.net/test/read.cgi/operate/1123079563/891-897n
に出ているような不正バイトシーケンスが含まれたカキコは,
bbsd で LANG=ja_JP.SJIS にして -c オプションを有効にすれば弾けます.
バックエンド (live22) 側に余力があるならご検討を......
に出ているような不正バイトシーケンスが含まれたカキコは,
bbsd で LANG=ja_JP.SJIS にして -c オプションを有効にすれば弾けます.
バックエンド (live22) 側に余力があるならご検討を......
841root▲ ★
NGNG >>840
んと、携帯の顔文字とかSJISの範囲外の文字とかは、どうするのがよいかしら。
あ、bbsdさんがSETTING.TXTのUNICODEのやつを読んで、セットされていたら
はじくのをスキップすればいいのかな。
んと、携帯の顔文字とかSJISの範囲外の文字とかは、どうするのがよいかしら。
あ、bbsdさんがSETTING.TXTのUNICODEのやつを読んで、セットされていたら
はじくのをスキップすればいいのかな。
842▲ ◆cZfSunOs.U
2005/08/10(水) 01:57:00ID:boqmM/Zu0 >>841 弾くのは Shift JIS のバイトシーケンスとして矛盾がある場合なので
(実際上は FreeBSD のロケール / mbstowcs() の実装に依存しますが),
例えば &#xxxx; の形式(実体参照)であれば無問題ですね.
(実際上は FreeBSD のロケール / mbstowcs() の実装に依存しますが),
例えば &#xxxx; の形式(実体参照)であれば無問題ですね.
2005/08/10(水) 05:52:29ID:fcX2OmXh0
( ´D`)<???
845▲ ◆cZfSunOs.U
2005/08/10(水) 08:14:49ID:boqmM/Zu0 >>843 ん〜と......細かい部分は OS のロケール実装に依存するかとは思いますが,
機種依存文字か否かということとバイトシーケンスとして正当か不当かというのは
必ずしも同一ではないですね.機種依存文字というのはベンダ定義文字や
ユーザ定義文字に該当するのでしょうが,その部分は単に opaque に扱うだけで,
個々のコードがどんな文字を表しているかまでは関知しないので.
不正バイトシーケンスというのは例えば Shift JIS の1バイト目で
文字列が途切れているなどの場合ですが,機種依存文字であっても
Shift JIS の1バイト目・2バイト目のペアの並びとして矛盾がなければ,
それは不正バイトシーケンスということにはならないです.
機種依存文字か否かということとバイトシーケンスとして正当か不当かというのは
必ずしも同一ではないですね.機種依存文字というのはベンダ定義文字や
ユーザ定義文字に該当するのでしょうが,その部分は単に opaque に扱うだけで,
個々のコードがどんな文字を表しているかまでは関知しないので.
不正バイトシーケンスというのは例えば Shift JIS の1バイト目で
文字列が途切れているなどの場合ですが,機種依存文字であっても
Shift JIS の1バイト目・2バイト目のペアの並びとして矛盾がなければ,
それは不正バイトシーケンスということにはならないです.
846root▲ ★
NGNG2005/08/11(木) 15:16:33ID:+abyIG1W0
AIR-EDGE PHONEマーク "o" って意味あるんですか?
全規制が回避できないのなら、やめて欲しいです。
全規制が回避できないのなら、やめて欲しいです。
2005/08/11(木) 15:46:17ID:U0AGiWd70
>>847
Q.IDの後ろに付いてるOとかPとかoとか0ってなに?
A.書込み手段を区別する目印です。
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
荒らし対策の一環として、一部の板に便宜上導入されています。
テンプレ貼れないの人はチェック
http://sv2ch.baila6.jp/chk_proxy.cgi
下の方のBBXチェックで
La ROCA es la vida.( ̄ー ̄)ニヤリッ
と出てる人はその書き込みを諦めましょう
諦めず連投しているとアク禁等になります
Q.IDの後ろに付いてるOとかPとかoとか0ってなに?
A.書込み手段を区別する目印です。
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。
荒らし対策の一環として、一部の板に便宜上導入されています。
テンプレ貼れないの人はチェック
http://sv2ch.baila6.jp/chk_proxy.cgi
下の方のBBXチェックで
La ROCA es la vida.( ̄ー ̄)ニヤリッ
と出てる人はその書き込みを諦めましょう
諦めず連投しているとアク禁等になります
849▲ ◆cZfSunOs.U
2005/08/13(土) 14:56:02ID:67wqN99Q0 機種依存文字ってのはこのあたりですかね.
http://www.freebsd.org/cgi/man.cgi?query=mskanji
The first ranges ......
0xED - 0xEE (not JIS: NEC-selected IBM extended characters),
0xF0 - 0xF9 (not JIS: user defined), or
0xFA - 0xFC (not JIS: IBM extended characters).
sunos.saita.ma で拝借している tiger 上で確認したところ,
そのあたりのレンジのキャラクタもちゃんとパスするようです.
ただ,FreeBSD の mbstowcs() では,"\x81<" のように < が Shift JIS の
2バイト目として食われてしまうケースを弾けないということもわかったので
(< は Shift JIS の2バイト目としては不正なので弾くべきではあるんですが),
mbrlen() でもうちょっと細かくチェックするように変更しました.
----------------------------------------------------------------------
で,bbsd の方もマターリと改良を加えていました.live22 姉妹再稼働の際には更新をお願いします.
http://sunos.saita.ma/bbsd.c
・ -b オプションで IP アドレスだけでなくホスト名も使用可能に.
(今後雪だるま系鯖が増えた場合,プライベートアドレスも
ホスト名で管理できた方が便利と思われるため)
・ worker スレッド数を可変式に.-n オプションでの指定は
-n [nthr_min-]nthr_max (デフォルト: max = 32, min = ceil(max / 8))
・ ステータス情報を取得可能に.
my $statmsg = bbsd($bbs, 'stat', "$logfilename:$logline"); # Perl スクリプト中
bbs.pl 板名 stat logfilename:logline # コマンドライン
("$logfilename:$logline" として : を含まない文字列を適当に指定すればログ出力せず)
ただ,sub bbsd {} 中で
recv(SOCK, $str, 256, 0) || (close(SOCK), return "$!");
となっている部分を
recv(SOCK, $str, 2048, 0) || (close(SOCK), return "$!");
ぐらいにしておかないと,返ってきた文字列が尻切れになってしまいます.
その部分を修正した bbs.pl, bbs_load.pl:
http://sunos.saita.ma/bbsd/bbs.pl
http://sunos.saita.ma/bbsd/bbs_load.pl
http://www.freebsd.org/cgi/man.cgi?query=mskanji
The first ranges ......
0xED - 0xEE (not JIS: NEC-selected IBM extended characters),
0xF0 - 0xF9 (not JIS: user defined), or
0xFA - 0xFC (not JIS: IBM extended characters).
sunos.saita.ma で拝借している tiger 上で確認したところ,
そのあたりのレンジのキャラクタもちゃんとパスするようです.
ただ,FreeBSD の mbstowcs() では,"\x81<" のように < が Shift JIS の
2バイト目として食われてしまうケースを弾けないということもわかったので
(< は Shift JIS の2バイト目としては不正なので弾くべきではあるんですが),
mbrlen() でもうちょっと細かくチェックするように変更しました.
----------------------------------------------------------------------
で,bbsd の方もマターリと改良を加えていました.live22 姉妹再稼働の際には更新をお願いします.
http://sunos.saita.ma/bbsd.c
・ -b オプションで IP アドレスだけでなくホスト名も使用可能に.
(今後雪だるま系鯖が増えた場合,プライベートアドレスも
ホスト名で管理できた方が便利と思われるため)
・ worker スレッド数を可変式に.-n オプションでの指定は
-n [nthr_min-]nthr_max (デフォルト: max = 32, min = ceil(max / 8))
・ ステータス情報を取得可能に.
my $statmsg = bbsd($bbs, 'stat', "$logfilename:$logline"); # Perl スクリプト中
bbs.pl 板名 stat logfilename:logline # コマンドライン
("$logfilename:$logline" として : を含まない文字列を適当に指定すればログ出力せず)
ただ,sub bbsd {} 中で
recv(SOCK, $str, 256, 0) || (close(SOCK), return "$!");
となっている部分を
recv(SOCK, $str, 2048, 0) || (close(SOCK), return "$!");
ぐらいにしておかないと,返ってきた文字列が尻切れになってしまいます.
その部分を修正した bbs.pl, bbs_load.pl:
http://sunos.saita.ma/bbsd/bbs.pl
http://sunos.saita.ma/bbsd/bbs_load.pl
2005/08/17(水) 11:37:40ID:pNvdhSzi0
>652 >666等を読むと、AIR-EDGE PHONEセンターのID識別子導入は、
荒らし調査のための暫定的な措置のように感じるんですが、外すことはないですか?
その識別子導入の元ネタであろうと思われる、
AIR-EDGE PHONEセンターとその他のPRINの個別規制の方はどうでしょうか?
あと、携帯関連板での荒らしへの予防策として、
携帯キャリア(通信方式やIP接続サービス)別の識別子を携帯関連4板への導入を提案します。
そのときはAIR-EDGE PHONEセンターも区別されるべきですね。
荒らし調査のための暫定的な措置のように感じるんですが、外すことはないですか?
その識別子導入の元ネタであろうと思われる、
AIR-EDGE PHONEセンターとその他のPRINの個別規制の方はどうでしょうか?
あと、携帯関連板での荒らしへの予防策として、
携帯キャリア(通信方式やIP接続サービス)別の識別子を携帯関連4板への導入を提案します。
そのときはAIR-EDGE PHONEセンターも区別されるべきですね。
2005/08/17(水) 16:40:02ID:28w04LSko
2005/08/17(水) 16:58:21ID:roDSAVCk0
確かキャリア識別はする必要無いと言明していたな。
それが分かった所で規制する側には何もメリットは無いし、抑止効果のための識別じゃないからね。
パソコンのOSを識別するようなもん。
それが分かった所で規制する側には何もメリットは無いし、抑止効果のための識別じゃないからね。
パソコンのOSを識別するようなもん。
2005/08/17(水) 18:58:42ID:ix6djCUE0
0とPは荒らし対策、oはbbs.cgi内で一寸特殊な処理をしているので
rootさんが参考に入れてるんじゃなかったっけ
rootさんが参考に入れてるんじゃなかったっけ
2005/08/17(水) 19:10:42ID:HN+ypvhTP
>>853
Pも特殊処理(全規制スルー)だったような。
Pも特殊処理(全規制スルー)だったような。
855動け動けウゴウゴ2ちゃんねる
2005/08/31(水) 16:17:34ID:ERQCF2M70 ?
856動け動けウゴウゴ2ちゃんねる
2005/09/06(火) 12:47:53ID:muLUKym50 AIR-EDGE PHONEユーザーだけど、早くID末尾のoを外して欲しい。
857動け動けウゴウゴ2ちゃんねる
2005/09/06(火) 12:59:34ID:THbn48S/0 221
858root▲ ★
2005/09/09(金) 01:42:43ID:???0 BBS.CGI - 2005/09/09
222.13.35.0/24 だったら Client_IP: を調べて、あればログに残す。
これで、Willcomへの通報は可能になったはず。
222.13.35.0/24 だったら Client_IP: を調べて、あればログに残す。
これで、Willcomへの通報は可能になったはず。
859ちょろ ★
2005/09/09(金) 01:44:25ID:???0 Client_IP をログに残すなら
判定しなくてもいいのでは?
判定しなくてもいいのでは?
860root▲ ★
2005/09/09(金) 01:52:13ID:???0 >>859
最初はそう思ってたんですが、どうもGoogleしてみると、Client_IP: = HTTP_CLIENT_IP は、
非常に簡単に偽装できるらしいんですよ。
で「ここから来るHTTP_CLIENT_IPだけは信用する」っていうふうにしたと。
判定を増やすコストは、例のCIDRのパッケージを使っているので、
現在のbbs.cgiの合計コストから考えて、十分に小さいと判断したです。
最初はそう思ってたんですが、どうもGoogleしてみると、Client_IP: = HTTP_CLIENT_IP は、
非常に簡単に偽装できるらしいんですよ。
で「ここから来るHTTP_CLIENT_IPだけは信用する」っていうふうにしたと。
判定を増やすコストは、例のCIDRのパッケージを使っているので、
現在のbbs.cgiの合計コストから考えて、十分に小さいと判断したです。
で、以下余談なので帽子脱ごうと。
私が今回対応している理由のひとつは、自分も奥様もAIR-EDGE PHONEというか、
prinユーザだったりするからだったりします。
ppp.prin.ne.jpを永久全規制とかされたら奥様に何て言われるだろうか、、、
と思うと、書けないperlも書けたりするようです。
私が今回対応している理由のひとつは、自分も奥様もAIR-EDGE PHONEというか、
prinユーザだったりするからだったりします。
ppp.prin.ne.jpを永久全規制とかされたら奥様に何て言われるだろうか、、、
と思うと、書けないperlも書けたりするようです。
862● ◆ANGLERlqvM
NGNG (´-`;).。oO(苦労してますね。。。)
2005/09/10(土) 17:54:49ID:Oz0EJ4RnO
やっぱり自分に都合のいいことはやるんだね。
グローバルIPをもってない人はもってください、と同じで、全規制されたら違う手段を使ってください、だろうに。
グローバルIPをもってない人はもってください、と同じで、全規制されたら違う手段を使ってください、だろうに。
2005/09/10(土) 18:05:36ID:/WEUY0t90
個人サイトですべての利用者が平等な必要があるのかと
865動け動けウゴウゴ2ちゃんねる
2005/09/10(土) 18:05:54ID:zB9Y0vkN0 http://qb5.2ch.net/test/read.cgi/operate/1125748886/716
↑どういう仕組みで止めてるの?
↑どういう仕組みで止めてるの?
2005/09/10(土) 18:09:36ID:r7NgOcl/0
Client_IPをログに残すだけなら判定は後回しでもいいんじゃ?と思った
(とりあえず記録しといて問題が起きたときに信用できるか調べる)
(とりあえず記録しといて問題が起きたときに信用できるか調べる)
2005/09/10(土) 18:28:06ID:B2Wejsug0
>>861
ほんとは夫婦で●共有しているくせに
ほんとは夫婦で●共有しているくせに
2005/09/10(土) 20:40:30ID:tC7Do3ra0
オレもAIR-EDGE PHONEユーザーだから応援する。
しかしJRCやめて早く新しい機種でないかなぁ。
しかしJRCやめて早く新しい機種でないかなぁ。
2005/09/11(日) 13:52:26ID:uh2Q9bvo0
>>861
あのーp2経由で2ちゃんに参加するってぇのは駄目なの?
あのーp2経由で2ちゃんに参加するってぇのは駄目なの?
2005/09/12(月) 20:19:17ID:35vELVZ60
そのクレカ、名義人本人以外が使って良いの?
2005/09/12(月) 20:25:08ID:jtpZdRO+0
本人が別々のクレカで二つ買ったのをひとつ与えてるんだろう。
というかスレ違い。粗探しはよそで。
というかスレ違い。粗探しはよそで。
2005/09/12(月) 21:48:56ID:35vELVZ60
叩きたいわけじゃないよ
何かあった時保障がないんじゃないかとちょっと心配しただけ
今は本人確認うるさいし
本人が良いならそれでいいんだけど
何かあった時保障がないんじゃないかとちょっと心配しただけ
今は本人確認うるさいし
本人が良いならそれでいいんだけど
2005/09/12(月) 23:02:56ID:az9VaDrT0
>本人が良いならそれでいいんだけど
余計なお世話と分かっているのに続けるのは粘着への第一歩かと。
余計なお世話と分かっているのに続けるのは粘着への第一歩かと。
2005/09/13(火) 14:10:17ID:aDy7aNWL0
愛があれば大丈夫です。
でも、愛が無くなった時が大変です。
でも、愛が無くなった時が大変です。
2005/09/15(木) 17:40:25ID:qMrRVxhX0
>>875
コラッ!本人を目の前にしてそんなこと言うんじゃありません!
コラッ!本人を目の前にしてそんなこと言うんじゃありません!
877動け動けウゴウゴ2ちゃんねる
2005/09/17(土) 12:48:38ID:VBcpY5C10 >>875
それなんてきみまろ?
それなんてきみまろ?
878動け動けウゴウゴ2ちゃんねる
2005/09/21(水) 22:02:20ID:fVZ+dGIa0 >>864
必要はないが利用者が騒ぐだけ
必要はないが利用者が騒ぐだけ
2005/09/21(水) 22:14:28ID:RbGH9Mto0
で?
2005/09/22(木) 17:08:12ID:QnTbAkUhO
ど?
881動け動けウゴウゴ2ちゃんねる
2005/09/22(木) 17:38:23ID:8luWl9mk0 う?
882動け動けウゴウゴ2ちゃんねる
2005/10/09(日) 23:46:12ID:o192VLCT0 よ?
2005/10/15(土) 13:05:17ID:XEAlpA8H0
か?
884root▲ ★
2005/10/21(金) 20:42:04ID:???0 BBS.CGI - 2005/10/21
live16/20/22 を対象に、緊急時に発動するしかけを投入。
live16/20/22 を対象に、緊急時に発動するしかけを投入。
2005/10/21(金) 20:48:12ID:ym2sR/ej0
おつです
887動け動けウゴウゴ2ちゃんねる
2005/10/24(月) 14:31:01ID:b+V7uzLR0 「書きこみ&クッキー確認」の画面で、
[上記全てを承諾して書き込む]を押さずに、ブラウザの「戻る」機能で戻った場合、
次回以降、確認画面が出ずに、いきなり書き込めてしまいます。
このバグを悪用して、
俺は2chに書き込んではいるが、投稿確認に書かれた事項は承諾していない
と主張している困ったさんがいます。
簡単に直せるなら、直してもらえないでしょうか。
(そうすると、その人は書き込まなくなるでしょうから、
その人によるスレの話題の激しい脱線・罵り合いから、
スレが救われます。)
[上記全てを承諾して書き込む]を押さずに、ブラウザの「戻る」機能で戻った場合、
次回以降、確認画面が出ずに、いきなり書き込めてしまいます。
このバグを悪用して、
俺は2chに書き込んではいるが、投稿確認に書かれた事項は承諾していない
と主張している困ったさんがいます。
簡単に直せるなら、直してもらえないでしょうか。
(そうすると、その人は書き込まなくなるでしょうから、
その人によるスレの話題の激しい脱線・罵り合いから、
スレが救われます。)
888▲ ◆SANUKI/VII
NGNG …
890▲ ◆SANUKI/VII
NGNG [上記すべてを承諾して書き込む]じゃなくて、
ワンクリみたいに強制的に承諾させちゃえばいいんじゃない?w
ワンクリみたいに強制的に承諾させちゃえばいいんじゃない?w
892674○part18 ◆IiIGjn5YT2
2005/10/24(月) 15:07:16ID:6jlOsF770 専ブラ側でも対応が必要になってきますね、この問題。
cookieがセットされていないなら承諾画面を出してformに
「bbs.cgiしか知らないテンポラリキー\0名前欄\0メールアドレス欄\0本文」
のハッシュ(md5かなにか?)をhiddenで入れておく。
でもって、実際の書き込み時にcookieをセットする、という形にならざるをえないのではないかと。
コスト削減のためにID算出と同じ種を使っても良いかも。
cookieがセットされていないなら承諾画面を出してformに
「bbs.cgiしか知らないテンポラリキー\0名前欄\0メールアドレス欄\0本文」
のハッシュ(md5かなにか?)をhiddenで入れておく。
でもって、実際の書き込み時にcookieをセットする、という形にならざるをえないのではないかと。
コスト削減のためにID算出と同じ種を使っても良いかも。
893674●part18 ◆IiIGjn5YT2
2005/10/24(月) 15:09:44ID:6jlOsF770 あ、リモホを入れていないのは携帯など毎回代わってしまうところを考慮に入れているからです。
2005/10/24(月) 15:36:15ID:Uzh/6H5L0
対応策として・・・
・クッキーに承諾したフラグを入れる入れないの問題
・カキコボタンにtarget=newを仕込むようにして新しい開くようにしてブラウザでバックできなくする
なんかがおもいつきでかけますが・・・どうでしょう>rootさん
・クッキーに承諾したフラグを入れる入れないの問題
・カキコボタンにtarget=newを仕込むようにして新しい開くようにしてブラウザでバックできなくする
なんかがおもいつきでかけますが・・・どうでしょう>rootさん
2005/10/24(月) 15:37:57ID:zrtRI6jl0
>>894
馬鹿は引っ込んでろ
馬鹿は引っ込んでろ
2005/10/24(月) 15:38:43ID:Uzh/6H5L0
>>894
あっと、これの後者はw3mとかのテキストブラウザの場合には使えませんね・・・
テキストブラウザでどれだけカキコがあるかにもよると思いますが、
かなり多いようであればnewWindow案は棄却だと思います。
あっと、これの後者はw3mとかのテキストブラウザの場合には使えませんね・・・
テキストブラウザでどれだけカキコがあるかにもよると思いますが、
かなり多いようであればnewWindow案は棄却だと思います。
897674●part18 ◆IiIGjn5YT2
2005/10/24(月) 15:41:06ID:6jlOsF770 >>894
二番目は意味がないです。
このケースではブラウザのバックボタンがつかえるかどうかはさしたる意味を持ちません。
それだけなら元のwindowでもう一度書き込みボタンを押せば突破できてしまいます。
二番目は意味がないです。
このケースではブラウザのバックボタンがつかえるかどうかはさしたる意味を持ちません。
それだけなら元のwindowでもう一度書き込みボタンを押せば突破できてしまいます。
2005/10/24(月) 15:48:33ID:Uzh/6H5L0
2005/10/24(月) 16:27:35ID:2Gpt3UV80
>>889
「この画面を表示させた後の書き込みは、すべて上記内容を承諾したものとみなします。」の
一文でも書き加えればいいと思われ。
で、そうするとボタンのキャプションがくどいから、ボタンは「書き込む」だけに変更。
大人の世界の内容なんだからシステムで解決できないなら
大人らしく承諾させる内容だけで勝負を。
「この画面を表示させた後の書き込みは、すべて上記内容を承諾したものとみなします。」の
一文でも書き加えればいいと思われ。
で、そうするとボタンのキャプションがくどいから、ボタンは「書き込む」だけに変更。
大人の世界の内容なんだからシステムで解決できないなら
大人らしく承諾させる内容だけで勝負を。
2005/10/24(月) 17:04:56ID:2Gpt3UV80
ボタンを押させる事が重要なのか。
それなら表示されるのと同じ内容をどこかにまとめておいて、
初回は強制表示で、2回目以降は表示させなくする判定をread.cgiで読み取って
read.cgiの書き込みボタンのキャプションを「○○を承諾して書き込み」に置き換えて、
承諾させる内容をまとめたページへの○○ってリンクを表示させるとか。
専用ブラウザは使うこと自体承諾したようなものだと思うし。
それなら表示されるのと同じ内容をどこかにまとめておいて、
初回は強制表示で、2回目以降は表示させなくする判定をread.cgiで読み取って
read.cgiの書き込みボタンのキャプションを「○○を承諾して書き込み」に置き換えて、
承諾させる内容をまとめたページへの○○ってリンクを表示させるとか。
専用ブラウザは使うこと自体承諾したようなものだと思うし。
2005/10/24(月) 17:23:35ID:uzN2YoDz0
今
U) bbs.cgiにアクセス
B) クッキーが無い
B) 確認画面&クッキー発行(←表示した段階で発行!)
U)承諾ボタン押して送信 or 承諾ボタン押さず再度投稿
B) クッキーがある&その他問題無し
B) 投稿完了
変更案
U) bbs.cgiにアクセス
B) クッキーが無い
B) 確認画面
U) 承諾ボタンを押す
B) もし($FORM{'submit'} が "承諾云々")なら {クッキー発行};
&他各種投稿の処理
B) 投稿完了 or 何かエラー(←この返事の段階で発行!)
U = ユーザーの操作
B = bbs.cgiの処理
U) bbs.cgiにアクセス
B) クッキーが無い
B) 確認画面&クッキー発行(←表示した段階で発行!)
U)承諾ボタン押して送信 or 承諾ボタン押さず再度投稿
B) クッキーがある&その他問題無し
B) 投稿完了
変更案
U) bbs.cgiにアクセス
B) クッキーが無い
B) 確認画面
U) 承諾ボタンを押す
B) もし($FORM{'submit'} が "承諾云々")なら {クッキー発行};
&他各種投稿の処理
B) 投稿完了 or 何かエラー(←この返事の段階で発行!)
U = ユーザーの操作
B = bbs.cgiの処理
>>902
手元に承諾form同等の機能だけもったform置いたら突破できますよ、それ。
手元に承諾form同等の機能だけもったform置いたら突破できますよ、それ。
2005/10/24(月) 17:41:20ID:uzN2YoDz0
承諾するとは言ったがその利用規約を承諾した覚えは無い。
というのが通用するならね。
というのが通用するならね。
2005/10/24(月) 17:42:55ID:uzN2YoDz0
投稿規約を承諾するとは言ったが投稿規約を承諾した覚えは無い
の方が良いかな。
の方が良いかな。
2005/10/24(月) 17:44:15ID:uzN2YoDz0
荒らし対策じゃないんで、投稿を防ぐ必要は無いんだよね、別に。
承諾さえされれば。
承諾さえされれば。
2005/10/24(月) 20:15:37ID:dTT/EBc00
>>901
それで解決ですな
それで解決ですな
2005/10/24(月) 21:19:20ID:b+V7uzLR0
承諾したくない困った人は、これを改良したとしても、
前回は承諾フォームが出て承諾して書き込んだが、
今回は承諾フォームが出なかったので、表示されもしない内容に承諾できるわけがない、承諾していない
と言い出すと思う。
書き込む度に、確認・承諾フォームを表示しないようにするのは、なぜでしょう。
転送量が厳しいから、その節約のためでしょうか。
前回は承諾フォームが出て承諾して書き込んだが、
今回は承諾フォームが出なかったので、表示されもしない内容に承諾できるわけがない、承諾していない
と言い出すと思う。
書き込む度に、確認・承諾フォームを表示しないようにするのは、なぜでしょう。
転送量が厳しいから、その節約のためでしょうか。
2005/10/24(月) 22:07:15ID:qWPT8NKZ0
つまりクッキーを持ってると表示されない・書き込めるということなら、確認画面を表示したことを
クッキーで確認していることとクッキーとともに書き込むデータをそぅしんしてきたら
自動的に確認画面の内容を承諾したとみなすと確認画面に書いてしまえばいいかも。
クッキーで確認していることとクッキーとともに書き込むデータをそぅしんしてきたら
自動的に確認画面の内容を承諾したとみなすと確認画面に書いてしまえばいいかも。
2005/10/24(月) 22:35:14ID:+k9SoKLc0
つーかシステム側で対応しなくても http://info.2ch.net/guide/ あたりに
2chは以下の条件を承諾した方のみ書き込み可能です。
・投稿者は、投稿に関して発生する責任が全て投稿者に帰すことを承諾します。
・投稿者は、話題と無関係な広告の投稿に関して、相応の費用を支払うことを承諾します
こんな感じの項目を作ればいいんじゃないの?
2chは以下の条件を承諾した方のみ書き込み可能です。
・投稿者は、投稿に関して発生する責任が全て投稿者に帰すことを承諾します。
・投稿者は、話題と無関係な広告の投稿に関して、相応の費用を支払うことを承諾します
こんな感じの項目を作ればいいんじゃないの?
2005/10/24(月) 22:44:31ID:qWPT8NKZ0
2005/10/24(月) 23:05:11ID:JW5bc+/z0
【きちんと】設置された承諾画面を【わざわざ】回避する措置を講じる者は
その時点で、それ相応の責任を負うと言わざるを得ないかと 何というか
その時点で、それ相応の責任を負うと言わざるを得ないかと 何というか
2005/10/24(月) 23:32:12ID:g/PC7NDH0
一つの方法は、承諾ボタンと同時に、拒否ボタンを作っておくことかな
そして「拒否ボタンを押す以外の否認の方法はありません」とでも書く。
いずれにせよ、言い逃れができない形にしないと、たとえば2ch発の
書籍を作ったりする際にいろいろ問題が発生してしまいそうな気もする。
そして「拒否ボタンを押す以外の否認の方法はありません」とでも書く。
いずれにせよ、言い逃れができない形にしないと、たとえば2ch発の
書籍を作ったりする際にいろいろ問題が発生してしまいそうな気もする。
2005/10/25(火) 01:09:02ID:x9TmyNgO0
まあ、建前で表示してるだけだし。
2005/10/25(火) 01:19:46ID:PSbrr/As0
>>914
建前…っても、
http://www.itmedia.co.jp/news/bursts/0204/15/13.html
みたいに、書籍の出版・販売差し止めと賠償を認めた判決もあるし。
2ちゃんねる編の書籍もある以上、あまりないがしろにするのもどうかと。
「拒否ボタン」いいね。
建前…っても、
http://www.itmedia.co.jp/news/bursts/0204/15/13.html
みたいに、書籍の出版・販売差し止めと賠償を認めた判決もあるし。
2ちゃんねる編の書籍もある以上、あまりないがしろにするのもどうかと。
「拒否ボタン」いいね。
2005/10/25(火) 08:01:32ID:x9TmyNgO0
通常の利用ではありえない方法で、規約に同意したかのような
データを送信して、そうであるから規約には同意していないのだ、
というのが通用するかどうかのな。
掲示板での議論ではなく、裁判で。
だから、まあ、建前を通していれば、不利になる事態は
そうは無いかな、とか。
そういった点で、通常の利用方法で、承諾しなくても承諾と
見なされている現状の改善が議題なわけだね。
データを送信して、そうであるから規約には同意していないのだ、
というのが通用するかどうかのな。
掲示板での議論ではなく、裁判で。
だから、まあ、建前を通していれば、不利になる事態は
そうは無いかな、とか。
そういった点で、通常の利用方法で、承諾しなくても承諾と
見なされている現状の改善が議題なわけだね。
2005/10/25(火) 08:16:28ID:x9TmyNgO0
承諾を回避して「そんな規約シラネ」というなら、拒否ボタンが
有ろうが無かろうが「そんな規約シラネ」なだけじゃん。
有ろうが無かろうが「そんな規約シラネ」なだけじゃん。
2005/10/25(火) 08:23:43ID:PSbrr/As0
承諾メッセージは送信時に明示されるからいいとして、
裁判だと、「不具合があるのを知っていたにも関わらず対策をとらなかった」
式の判断で負けちゃう場合もありますよ。(心配性)
無理でなければ、なんらかの対策をとってほしいです。
裁判だと、「不具合があるのを知っていたにも関わらず対策をとらなかった」
式の判断で負けちゃう場合もありますよ。(心配性)
無理でなければ、なんらかの対策をとってほしいです。
2005/10/25(火) 08:34:51ID:x9TmyNgO0
承諾が必要な事を知りながら承諾を偽装した
と判断される事を心配しようよ。
と判断される事を心配しようよ。
2005/10/25(火) 08:36:46ID:x9TmyNgO0
荒らし対策と規約承諾を別々のクッキーで扱うのが面倒なら、
>>910をしつつ、投稿ボタンを全て「規約を承諾して書き込む」
にして、
もし ($FORM{'submit'} が "承諾云々" ではない) なら
{DispError("ERROR!","規約を承諾しないと投稿できません!");}
とか
専ブラが全滅だけどね。対応されるまで。
>>910をしつつ、投稿ボタンを全て「規約を承諾して書き込む」
にして、
もし ($FORM{'submit'} が "承諾云々" ではない) なら
{DispError("ERROR!","規約を承諾しないと投稿できません!");}
とか
専ブラが全滅だけどね。対応されるまで。
2005/10/25(火) 08:39:35ID:PSbrr/As0
2005/10/25(火) 09:19:32ID:8gkXZmw80
まあ、最近インスパイアのこともあってぴりぴりしてるから
これを機に徹底的に話し合って詰めた方がいいかもね。
これを機に徹底的に話し合って詰めた方がいいかもね。
2005/10/25(火) 21:03:44ID:Y9ML3vBs0
924root▲ ★
2005/10/25(火) 21:25:44ID:???0 というか、あんなに防御していたのに、
スレッドが80超えちゃってたのがなぁ。
たぶんほとんど同時に何十本とスレ立て要求が来て、一気に追い込まれたんだと思われ。
何か、工夫が必要ですね。
スレ立て処理を実行中の船は、スレ立て処理をしないようにするとか。
グローバル変数でできるような気がするので、後で、考えてみよう。
スレッドが80超えちゃってたのがなぁ。
たぶんほとんど同時に何十本とスレ立て要求が来て、一気に追い込まれたんだと思われ。
何か、工夫が必要ですね。
スレ立て処理を実行中の船は、スレ立て処理をしないようにするとか。
グローバル変数でできるような気がするので、後で、考えてみよう。
2005/10/26(水) 01:25:19ID:KEQJ4CBE0
>>923
Monazilla/2.0 ですか?
Monazilla/2.0 ですか?
926root▲ ★
2005/10/26(水) 11:45:03ID:???0 うーむ、同じスレッドキーのスレができないようにするところって、
激しくうーむなような。
激しくうーむなような。
2005/10/26(水) 12:22:51ID:s6PZNUUX0
どうしたの?
安易なロック方式として、スレを立てるところで
どこか(板単位で分離が好ましい?)にunixtime%閾値をファイル名として/dev/nullからでもsymlinkを貼ってみて、
失敗したらスレたて拒否。成功したら建てる。
ガベージコレクトのタイミングで一番新しいヤツ以外を削除するようにすればおっけ。
マルチスレッド/タスクを考慮するならこれが一番コストがかからないと思いますがどうです?
閾値はスレたての最大間隔ね。最小1秒になることもあるけど2スレ連続ならまぁ許容範囲内ではないかと。
どこか(板単位で分離が好ましい?)にunixtime%閾値をファイル名として/dev/nullからでもsymlinkを貼ってみて、
失敗したらスレたて拒否。成功したら建てる。
ガベージコレクトのタイミングで一番新しいヤツ以外を削除するようにすればおっけ。
マルチスレッド/タスクを考慮するならこれが一番コストがかからないと思いますがどうです?
閾値はスレたての最大間隔ね。最小1秒になることもあるけど2スレ連続ならまぁ許容範囲内ではないかと。
2005/10/26(水) 13:03:24ID:BcSDlqwC0
ん?
Perlでのまともなlockの方法って、2年ほど前の再開発スレでrootさんが話題にしてましたよね。
そのレベルは脱した上で「うーむ」なことに成っているのだと解釈。
Perlでのまともなlockの方法って、2年ほど前の再開発スレでrootさんが話題にしてましたよね。
そのレベルは脱した上で「うーむ」なことに成っているのだと解釈。
2005/10/26(水) 13:24:34ID:s6PZNUUX0
ほぼ同時にスレ立て要求→同時に数十本もスレ立っちゃった→スレッドキーみんな同じだ→しかも今夜が山だ
こんなところ?
こんなところ?
931root▲ ★
2005/10/26(水) 13:29:31ID:???0 今の bbs.cgi は、同じスレッドキーのやつが立たないようにするコードが
ちゃんと入っているです。
ようは、その実装方法がうーむだと。
ちゃんと入っているです。
ようは、その実装方法がうーむだと。
932root▲ ★
2005/10/26(水) 13:51:08ID:???0 do {
#サブジェクトがあれば新規スレなのでキーを現在に設定
$GB->{FORM}->{'key'} = $GB->{NOWTIME};
#.datファイルの設定
$DATAFILE = $GB->{DATPATH} . $GB->{FORM}->{'key'} . ".dat";
} while ( -e $DATAFILE ) ;
これって、$DATAFILE が既に存在してたら、無限ループに陥るんではないかしら。
#サブジェクトがあれば新規スレなのでキーを現在に設定
$GB->{FORM}->{'key'} = $GB->{NOWTIME};
#.datファイルの設定
$DATAFILE = $GB->{DATPATH} . $GB->{FORM}->{'key'} . ".dat";
} while ( -e $DATAFILE ) ;
これって、$DATAFILE が既に存在してたら、無限ループに陥るんではないかしら。
933stream ◆ap/yuix/tw
2005/10/26(水) 14:15:06ID:qwHTUNtV0 不動楽さんが入れたやつですね
2chの動作報告はここで。 パート15
http://qb5.2ch.net/test/read.cgi/operate/1090485214/676-685
==========================================
676 削除車 ★[sage] 04/11/01 23:25:56 ID:???
お疲れさまです。ちょっとご相談があります。
最近ニュース速報(VIP)が、非常に板飛び回数が多いです。
少しお話を窺ったところ、同じタイミングでスレが立ったときに合体を起こして、板が飛ぶみたいです。
お手数ですが、ちょっとcgiの方を確認していただけますか?
(それとも一般的なことで、VIPでたまたま多く発生しているだけなんでしょうか)
よろしくお願いします。
★板のスレ一覧復帰&修正依頼21★
http://qb5.2ch.net/test/read.cgi/operate/1096548247/677-682
679 不動楽 ★ [sage] 04/11/02 00:45:12 ID:???
>>676
原因らしき個所は炙り出せたのですが、
その変数にからむ処理を上から眺めていきますので、
少しお時間を頂きたいです。
>(それとも一般的なことで、VIPでたまたま多く発生しているだけなんでしょうか)
ex7だけでなく、全板のbbs.cgiで同じことが起こる可能性があるようです。
684 root▲ ★ [sage] 04/11/02 02:08:27 ID:???
直すときには、安易な flock() は控えてほしいなぁと強くおながいしておきますです。
685 不動楽 ★ [sage] 04/11/02 02:13:12 ID:???
>>684
排他処理をしていないのが原因、というわけではないので大丈夫かと思うです。
==========================================
2chの動作報告はここで。 パート15
http://qb5.2ch.net/test/read.cgi/operate/1090485214/676-685
==========================================
676 削除車 ★[sage] 04/11/01 23:25:56 ID:???
お疲れさまです。ちょっとご相談があります。
最近ニュース速報(VIP)が、非常に板飛び回数が多いです。
少しお話を窺ったところ、同じタイミングでスレが立ったときに合体を起こして、板が飛ぶみたいです。
お手数ですが、ちょっとcgiの方を確認していただけますか?
(それとも一般的なことで、VIPでたまたま多く発生しているだけなんでしょうか)
よろしくお願いします。
★板のスレ一覧復帰&修正依頼21★
http://qb5.2ch.net/test/read.cgi/operate/1096548247/677-682
679 不動楽 ★ [sage] 04/11/02 00:45:12 ID:???
>>676
原因らしき個所は炙り出せたのですが、
その変数にからむ処理を上から眺めていきますので、
少しお時間を頂きたいです。
>(それとも一般的なことで、VIPでたまたま多く発生しているだけなんでしょうか)
ex7だけでなく、全板のbbs.cgiで同じことが起こる可能性があるようです。
684 root▲ ★ [sage] 04/11/02 02:08:27 ID:???
直すときには、安易な flock() は控えてほしいなぁと強くおながいしておきますです。
685 不動楽 ★ [sage] 04/11/02 02:13:12 ID:???
>>684
排他処理をしていないのが原因、というわけではないので大丈夫かと思うです。
==========================================
934root▲ ★
2005/10/26(水) 14:19:31ID:???0 それについて書こうと思ったら、>>933 が。
それは、これですね。
上記よりも後、最後ところでやっているです。
if($GB->{FORM}->{'subject'} ne "" && -e $DATAFILE){
&DispError2($GB,"ERROR!","ERROR:板飛びそうなので、またの機会にどうぞ。。。");
}
ということで、それはクラシックさんが入れたところではないと思います。
昔からあったところだと思う。
*以下推測*
たぶん、昔は do 〜 while のところでもtime; していたんでしょう。
それなら、1秒経てば条件が変わります(ループを抜けるかは別)。
それは、これですね。
上記よりも後、最後ところでやっているです。
if($GB->{FORM}->{'subject'} ne "" && -e $DATAFILE){
&DispError2($GB,"ERROR!","ERROR:板飛びそうなので、またの機会にどうぞ。。。");
}
ということで、それはクラシックさんが入れたところではないと思います。
昔からあったところだと思う。
*以下推測*
たぶん、昔は do 〜 while のところでもtime; していたんでしょう。
それなら、1秒経てば条件が変わります(ループを抜けるかは別)。
935root▲ ★
2005/10/26(水) 14:20:57ID:???0 コピペみすった。
コメントつきなので、ほぼ間違いないです。
#==================================================
# 板飛び回避策
#==================================================
if($GB->{FORM}->{'subject'} ne "" && -e $DATAFILE){
&DispError2($GB,"ERROR!","ERROR:板飛びそうなので、またの機会にどうぞ。。。");
}
コメントつきなので、ほぼ間違いないです。
#==================================================
# 板飛び回避策
#==================================================
if($GB->{FORM}->{'subject'} ne "" && -e $DATAFILE){
&DispError2($GB,"ERROR!","ERROR:板飛びそうなので、またの機会にどうぞ。。。");
}
936root▲ ★
2005/10/26(水) 14:39:15ID:???0 で、ここの制御を変えようと思うわけです。
安易に、
・live系は既にあったらごめんなさい
・他はスレッドキーを+1しながら、最大3回ぐらい試してみる
ってことにしようかなと。
安易に、
・live系は既にあったらごめんなさい
・他はスレッドキーを+1しながら、最大3回ぐらい試してみる
ってことにしようかなと。
937root▲ ★
2005/10/26(水) 16:22:21ID:???0 BBS.CGI - 2005/10/26
$GB->{FORM}->{'key'} = &mumumuAllocateThreadKey($GB);
$DATAFILE = $GB->{DATPATH} . $GB->{FORM}->{'key'} . ".dat";
にした。
で、mumumu AllocateThreadKeyの中身は >>936 にしたつもり。
これで、
・bbs.cgi謎の暴走
・スレ立て混雑時にサーバ劇重
が、少しでも改善されるといいかなと。
$GB->{FORM}->{'key'} = &mumumuAllocateThreadKey($GB);
$DATAFILE = $GB->{DATPATH} . $GB->{FORM}->{'key'} . ".dat";
にした。
で、mumumu AllocateThreadKeyの中身は >>936 にしたつもり。
これで、
・bbs.cgi謎の暴走
・スレ立て混雑時にサーバ劇重
が、少しでも改善されるといいかなと。
スレッドキーは毎秒かわるんでしたっけ、でしたらこんなのはどうですか?
0. ロックの待ち番号を0で初期化
1. ロックの待ち番号をファイル名にして/dev/nullからsymlinkしてみる
成功; → 6へ
2. ロックの待ち番号を1カウントアップ
3. ロックの待ち番号最大値を超えてるかチェック
超えてる: → 建てたい人大杉表示にして諦める
4. 1秒まつ
5. 1へ
6. ロックの待ち番号が0か?
はい: 9へ
7. 0.5秒待つ。
8. ロックの待ち番号-1をsymlinkしてみる
失敗: → 7へ
成功:
ロックの待ち番号をunlink
ロックの待ち番号を-1
6へ
9. スレたて処理
0. ロックの待ち番号を0で初期化
1. ロックの待ち番号をファイル名にして/dev/nullからsymlinkしてみる
成功; → 6へ
2. ロックの待ち番号を1カウントアップ
3. ロックの待ち番号最大値を超えてるかチェック
超えてる: → 建てたい人大杉表示にして諦める
4. 1秒まつ
5. 1へ
6. ロックの待ち番号が0か?
はい: 9へ
7. 0.5秒待つ。
8. ロックの待ち番号-1をsymlinkしてみる
失敗: → 7へ
成功:
ロックの待ち番号をunlink
ロックの待ち番号を-1
6へ
9. スレたて処理
939root▲ ★
2005/10/26(水) 16:30:25ID:???0 >>938
最初はそういうのを考えていたんですが、
1秒とか0.5秒とか待つのが、いやだったです。
スレッドキーは所詮本当の時間とあっている必要はないので、
・live系はごめんなさい
・通常系は 0 +1 +2 を試して、だめならごめんなさい
ぐらいのいい加減さにして、一刻も早くbbs.cgiに終わっていただくことにしました。
最初はそういうのを考えていたんですが、
1秒とか0.5秒とか待つのが、いやだったです。
スレッドキーは所詮本当の時間とあっている必要はないので、
・live系はごめんなさい
・通常系は 0 +1 +2 を試して、だめならごめんなさい
ぐらいのいい加減さにして、一刻も早くbbs.cgiに終わっていただくことにしました。
それだと、多台数とかからスレたて攻撃が同時に来たときにやっぱり被害が起こることは避けれないと思いますがどうでしょう。
2005/10/26(水) 16:50:01ID:BcSDlqwC0
計算量がO(n * log n)で収まれば収束しないか?
2005/10/26(水) 16:51:55ID:/5B2u2B30
メモリ上に前回のスレキーを持たせたファイルを置いてそれを参照
とかは無理だろうしなぁ…
(素人案だし毎回読み込みとか(ry)
とかは無理だろうしなぁ…
(素人案だし毎回読み込みとか(ry)
943root▲ ★
2005/10/26(水) 17:00:02ID:???0 >>940
if ( ! -e datファイル ) {
return それでOKよん;
} elsif ( ! live系 ) {
for ( $i = 0; $i < $maxtries; $i++) {
スレッドキーを一つずつ増やして存在チェックし、なかったやつを
return これ使ってちょ;
}
&error(ごめんなさい);
って、なっています。
というわけでおっしゃるとおり、タイミングにより突破もありえます。
その場合は、>>935 でひっかかると。
でもそれにしても、ほんとうは完璧じゃないです。
雪だるま作戦では、このへんはバックエンドプロセスに依頼する形になるので、
その時に、きちんと対応することになるかなと。
if ( ! -e datファイル ) {
return それでOKよん;
} elsif ( ! live系 ) {
for ( $i = 0; $i < $maxtries; $i++) {
スレッドキーを一つずつ増やして存在チェックし、なかったやつを
return これ使ってちょ;
}
&error(ごめんなさい);
って、なっています。
というわけでおっしゃるとおり、タイミングにより突破もありえます。
その場合は、>>935 でひっかかると。
でもそれにしても、ほんとうは完璧じゃないです。
雪だるま作戦では、このへんはバックエンドプロセスに依頼する形になるので、
その時に、きちんと対応することになるかなと。
944root▲ ★
2005/10/26(水) 17:03:08ID:???0 てなわけで、-e でdatファイルの存在をチェックしていたり、
924の処理のところみたいに utime でdatのタイムスタンプ更新したりすることは
雪だるま環境ではそのままではむりぽなわけで、
そういったAPIを、入れ込んでほしいということなわけです。
一つ海外出張がキャンセルになってちょっと落ち着いたので、
このへんを、ぼちぼちあっちですすめようかなと。> SunOSさん
924の処理のところみたいに utime でdatのタイムスタンプ更新したりすることは
雪だるま環境ではそのままではむりぽなわけで、
そういったAPIを、入れ込んでほしいということなわけです。
一つ海外出張がキャンセルになってちょっと落ち着いたので、
このへんを、ぼちぼちあっちですすめようかなと。> SunOSさん
946▲ ◆cZfSunOs.U
2005/10/26(水) 22:28:35ID:ICyD85HJ0 ん〜と,現在の bbsd ではスレ立て時の key をインクリメントしながら一定回数(現在は16)
リトライするようになっています.その際,open() を O_CREAT|O_EXCL フラグ付きで
呼び出しているため,ファイルの存在確認と生成はアトミックになっているはずです.
当初はスレ立て時の key としては bbsd 側の現在時刻を用いていましたが,
それだと headline に渡す key とのずれが生じる問題も発生したため,
現在は bbs.cgi 側から渡された key を使用するようになっています.
ただ,上記の key のインクリメントが発生するとやはりずれが生じることに
なるので,そこの調整をする仕組みが必要になりますかね.
リトライするようになっています.その際,open() を O_CREAT|O_EXCL フラグ付きで
呼び出しているため,ファイルの存在確認と生成はアトミックになっているはずです.
当初はスレ立て時の key としては bbsd 側の現在時刻を用いていましたが,
それだと headline に渡す key とのずれが生じる問題も発生したため,
現在は bbs.cgi 側から渡された key を使用するようになっています.
ただ,上記の key のインクリメントが発生するとやはりずれが生じることに
なるので,そこの調整をする仕組みが必要になりますかね.
947▲ ◆cZfSunOs.U
2005/10/26(水) 22:37:27ID:ICyD85HJ0 単純に,bbsd 側ではリトライせず,key をインクリメントした上でのリトライは
bbs.cgi 側に任せるという形でもいいんですかね.同じ key を持つ dat が
存在した場合,bbsd は EEXIST に相当するエラーメッセージを返すことになるんで.
bbs.cgi 側に任せるという形でもいいんですかね.同じ key を持つ dat が
存在した場合,bbsd は EEXIST に相当するエラーメッセージを返すことになるんで.
2005/10/27(木) 01:37:41ID:MHLp6DNM0
ロックのループにはまった時はスレキーとかに使うUNIX時間なんかを
新たに取り直した方がよくね?
でもスレ立て処理は排他ロックさせずに複数同時進行してそうだし、
ロックのループが1秒待ちでもなさそうだから関係ない話か。
新たに取り直した方がよくね?
でもスレ立て処理は排他ロックさせずに複数同時進行してそうだし、
ロックのループが1秒待ちでもなさそうだから関係ない話か。
951▲ ◆cZfSunOs.U
2005/10/27(木) 19:57:03ID:SzSv4IzM0 >>949 成功時は key,失敗時はエラーメッセージを返し,戻り値が
数値か文字列かを bbs.cgi 側で判定してもらうというのはどうでしょうか?
スレ立てが失敗する原因は EEXIST 以外にもあり得るので
(といっても実際はまれでしょうが),エラーの内容がわかった方が
異常発見もしやすくなるかと思いますし.
数値か文字列かを bbs.cgi 側で判定してもらうというのはどうでしょうか?
スレ立てが失敗する原因は EEXIST 以外にもあり得るので
(といっても実際はまれでしょうが),エラーの内容がわかった方が
異常発見もしやすくなるかと思いますし.
953root▲ ★
NGNG ということで、立てました。
【雪だるま】bbsd⇔各cgi間のI/F仕様について考え・詰めていくスレッド
http://qb5.2ch.net/test/read.cgi/operate/1130482779/
ぼちぼち、すすめていこうかと。
【雪だるま】bbsd⇔各cgi間のI/F仕様について考え・詰めていくスレッド
http://qb5.2ch.net/test/read.cgi/operate/1130482779/
ぼちぼち、すすめていこうかと。
2005/10/29(土) 12:11:11ID:nNATzveB0
てすと
955▲
2005/10/30(日) 04:51:30ID:R0mqD16u0 キャップの▲ってなんか意味あるとですか?
2ch全板で合計して 平均何秒ごとくらいにスレが立っているのでしょうかえ?
2ch全板で合計して 平均何秒ごとくらいにスレが立っているのでしょうかえ?
2005/10/30(日) 14:29:53ID:xwQs58530
957root▲ ★
NGNG うーむ、
$GB->{MD5DATE} = sprintf("%04d_%02d_%02d",
substr($year + 1900, -2), $mon + 1, $mday);
これ、substrのところがたぶん -4 の間違いなんだと思うけど、
ここを変えるとこのあとのIDの種ファイルを更新するところで、
「日付変わった」と思われて、IDが変わっちゃうですね。
まずoperate2で試して、ID変わっちゃうとしたら、
23:00過ぎに、やることにしよう。そうしよう。
$GB->{MD5DATE} = sprintf("%04d_%02d_%02d",
substr($year + 1900, -2), $mon + 1, $mday);
これ、substrのところがたぶん -4 の間違いなんだと思うけど、
ここを変えるとこのあとのIDの種ファイルを更新するところで、
「日付変わった」と思われて、IDが変わっちゃうですね。
まずoperate2で試して、ID変わっちゃうとしたら、
23:00過ぎに、やることにしよう。そうしよう。
958root▲ ★
NGNG これ直したら、SunOS さんのからの質問 [1-2] のところの仕様が確定すると。
959root▲ ★
NGNG960どくどくさぼてん
2005/10/31(月) 18:52:32ID:e+pnaIH20 そもそも-4というよりは、
× substr($year + 1900, -2)
○ $year + 1900
みたいなかんじっぽいな
%04dに文字列渡してどうするんじゃと
× substr($year + 1900, -2)
○ $year + 1900
みたいなかんじっぽいな
%04dに文字列渡してどうするんじゃと
962root▲ ★
NGNG その直上のここは、どうすればいいべか。
$GB->{DATE} = sprintf("%02d/%02d/%02d %02d:%02d:%02d",
substr($year + 1900, -2), $mon + 1, $mday, $hour, $min, $sec);
$GB->{DATE} = sprintf("%02d/%02d/%02d %02d:%02d:%02d",
substr($year + 1900, -2), $mon + 1, $mday, $hour, $min, $sec);
2005/10/31(月) 18:56:20ID:tkwMzh3I0
2005/10/31(月) 18:59:17ID:tkwMzh3I0
ってか $GB->{DATE} って何に使うんですか?
2005/10/31(月) 19:00:53ID:tkwMzh3I0
>>957が -4 だと思ったのはなぜ?
その部分だけ見た場合は、現実的(2chがいつまで存在するか)に考えて、 -4でも-2でも変わんないと思うし
その部分だけ見た場合は、現実的(2chがいつまで存在するか)に考えて、 -4でも-2でも変わんないと思うし
966どくどくさぼてん
2005/10/31(月) 19:01:46ID:e+pnaIH20 >>962
ん?なんだそら?それ現在dat及びに出力される形式と違ってるみたいけど
どっかべつのところでつかってるんだろか
どうしてもそれで直したければ
substr($year + 1900, -2) → $year % 100
てところじゃないんすかね
ん?なんだそら?それ現在dat及びに出力される形式と違ってるみたいけど
どっかべつのところでつかってるんだろか
どうしてもそれで直したければ
substr($year + 1900, -2) → $year % 100
てところじゃないんすかね
967root▲ ★
NGNG 投稿日: とか、あと内部的にいくつか。
968root▲ ★
NGNG969root▲ ★
NGNG IDを、じゃなくて、IDの種をか。
970るぅりん☆6歳@ギコナビ ◆IAc6UigumM
2005/10/31(月) 20:29:08ID:MAFKa8FN0 >966
後半、正解
後半、正解
2005/10/31(月) 21:44:31ID:FYOQZkFB0
気づいたときに自然な方法に修正しないと、バグが仕様化して後で痛い目を見る。
……と、厳密なのって日本人エンジニアとポーランド人数学者の特徴だよな。そのノリは好きだけど。
……と、厳密なのって日本人エンジニアとポーランド人数学者の特徴だよな。そのノリは好きだけど。
2005/10/31(月) 22:28:24ID:381okt4U0
2005/11/01(火) 01:53:58ID:RDlLoN8A0
あるスレッドの次スレという物が立ったらあるスレッドを速攻で足切りにできませんかねぇ?
スレを立てた人間によるスレストというか。
次スレが立った、じゃあ(無駄なレスで)埋めるって流れが嫌いなだけですけどね。
スレを立てた人間によるスレストというか。
次スレが立った、じゃあ(無駄なレスで)埋めるって流れが嫌いなだけですけどね。
2005/11/01(火) 03:47:02ID:ZJKg5H9y0
次スレ立ての競争が無意味に苛烈になるだけなのでとても賛成できない。
めちゃめちゃなスレを立てておいて「次スレ」と主張し、現行スレを無理矢理
足切りに…なんて事をする輩が湧くのが目に見えているぞ。
「スレッドは1000ぎりぎりまで使い切ってから移行しましょう」という運動でも
立ち上げる方がまだ現実的だよ。
めちゃめちゃなスレを立てておいて「次スレ」と主張し、現行スレを無理矢理
足切りに…なんて事をする輩が湧くのが目に見えているぞ。
「スレッドは1000ぎりぎりまで使い切ってから移行しましょう」という運動でも
立ち上げる方がまだ現実的だよ。
2005/11/01(火) 09:50:27ID:OIcg6Yo20
1000で自動次スレ立ては?
2005/11/01(火) 10:16:41ID:cAD241lE0
2005/11/01(火) 12:41:21ID:FnB9EIr90
そもそもそんなシステムが必要な理由からしてわからないですよ。
2005/11/01(火) 14:30:49ID:rk1nvBlM0
そろそろスレ違いなんで、雑談スレへでもどうぞって感じ
2005/11/02(水) 02:28:21ID:U9irf3Pa0
>>980
すんません、投げるところを間違えたみたいですね。
とにかく、このスレッドみたいに980を超えた後、埋めるかとか言い出す奴とか
実際に埋めてしまう奴とかを撲滅できればいいんですよ。
終わり際に見苦しいというか。
すんません、投げるところを間違えたみたいですね。
とにかく、このスレッドみたいに980を超えた後、埋めるかとか言い出す奴とか
実際に埋めてしまう奴とかを撲滅できればいいんですよ。
終わり際に見苦しいというか。
982名無しさんの助言 ◆JogenOuJ66
2005/11/02(水) 08:37:09ID:7i0vAmj10 見苦しいのは同意。でも撲滅しなきゃいけないという使命感は要らないと思われ。
そーゆー使命感ばかりに凝り固まると、潔癖君になっちゃうぞ。
そーゆー使命感ばかりに凝り固まると、潔癖君になっちゃうぞ。
2005/11/02(水) 09:08:51ID:U9irf3Pa0
やや潔癖症がはいってるから気になるのだが。
2005/11/02(水) 09:23:44ID:1dG8QrWJP
程良い汚さが2chの魅力ですよ
2005/11/02(水) 16:03:05ID:AkEhFrGj0
で、ここもそろそろ次スレお願いします
2005/11/02(水) 16:18:18ID:GALgU8v20
2005/11/02(水) 16:38:45ID:o9pnyDkb0
新機能の要望ならこっちのはずだが
◆新機能をねだるスレ@運用情報◆ Part2
http://qb5.2ch.net/test/read.cgi/operate/1112024113/
関係ないスレでいろいろ喚くのも荒らしと変わらんよ
◆新機能をねだるスレ@運用情報◆ Part2
http://qb5.2ch.net/test/read.cgi/operate/1112024113/
関係ないスレでいろいろ喚くのも荒らしと変わらんよ
988root▲ ★
NGNG 友人の話では、Perl では /i の処理がめちゃんこ遅いという話があるらしい。
つまり、
if($ENV{'SERVER_NAME'} =~ /2ch\.net/i)
みたいなのも、ちりも積もれば山となる可能性ありと。
つまり、
if($ENV{'SERVER_NAME'} =~ /2ch\.net/i)
みたいなのも、ちりも積もれば山となる可能性ありと。
990▲ ◆SANUKI/VII
2005/11/02(水) 16:48:34ID:j49UPKofP iってまだあったっけ?
992root▲ ★
NGNG 気づいたところは、私のほうでも取っておくです。
今ざっと見直してみましたが、たぶん、もうそんなにないと思いますです。
で、次スレの予感か。
今ざっと見直してみましたが、たぶん、もうそんなにないと思いますです。
で、次スレの予感か。
993root▲ ★
NGNG 次立ててくるです。
994root▲ ★
NGNG bbs.cgi再開発プロジェクト7
http://qb5.2ch.net/test/read.cgi/operate/1130918407/
http://qb5.2ch.net/test/read.cgi/operate/1130918407/
Pで書くならCを知っていた方がよい。
Cで書くならAを知っていたほうが良いってことで、
一行(1ステップ)は一行なんだけど
使うと払わなきゃならない料金が違うのよネ
1円のもあれば 100万円のもある
正規表現は1,000万くらいか、
Cで書くならAを知っていたほうが良いってことで、
一行(1ステップ)は一行なんだけど
使うと払わなきゃならない料金が違うのよネ
1円のもあれば 100万円のもある
正規表現は1,000万くらいか、
2005/11/02(水) 17:18:09ID:olBNsUSy0
ふんふん
997root▲ ★
NGNG >>995
そですね。
なんか、組み込み系をやってた人の発想っぽいですね。それ。
そうゆう人かしら。
1000万は(いつものように)誇大表現ですけど、
方向性はそのとおりかもです。
# 知能によって船を作ったり爆破したりするあのサブルーチン群と、
# トラックバック系のサブルーチン群を、
# そのうち別ファイルにするかも、かも。
そですね。
なんか、組み込み系をやってた人の発想っぽいですね。それ。
そうゆう人かしら。
1000万は(いつものように)誇大表現ですけど、
方向性はそのとおりかもです。
# 知能によって船を作ったり爆破したりするあのサブルーチン群と、
# トラックバック系のサブルーチン群を、
# そのうち別ファイルにするかも、かも。
999root▲ ★
NGNG トラックバック系については、ソースの可読性ですね。
どうせ全部で使うので、単純に可読性だけです。
ということで、そろそろ1000か。
どうせ全部で使うので、単純に可読性だけです。
ということで、そろそろ1000か。
10011001
Over 1000Thread このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【八潮市道路陥没】運転手の救出活動を再開…作業用スロープが完成し重機でがれきの撤去始める ★8 [Ailuropoda melanoleuca★]
- 元フジ・笠井信輔アナ、古巣のやり直し会見に「最初にこれをやっていれば…」「相談役の動向に注目しているなと」…再生願う [jinjin★]
- 【テレビ】朝から「ACすら流れないんだが…」 フジテレビの“異変”にネットざわつく 「ケーブルTVみたい」「ずっと番宣が流れてる」 [冬月記者★]
- バイクとクルマの“いいとこ取り”車検なしで保険も税金も安価な250ccのトライクが登場 [おっさん友の会★]
- エアコン暖房を一晩中つけっぱなしにしていると、電気代はどうなるのか 家電のプロが回答 [お断り★]
- 中居正広の記事を訂正した『週刊文春』関係者をTBSが取材 「あの時点ではきっちりと分かっていなかったということです」と回答 [冬月記者★]
- 寝れない中2女子が質問に答えるよ
- ガチもんのjcです寝れない
- 元フジ長谷川豊、笠井と佐々木からおすぎへ上納されたことを告発 [579392623]
- 【謎】ビートたけしにあって、松本人志になかったもの [312375913]
- 【悲報】大韓民国🇰🇷さん、唯一のキムチを🇨🇳中国父さんに取られて終わるwwwwwwwwwwwwwwwwwwwwwwwwwwww [316257979]
- 夜の踊り子ง👶ว♪🌃🏡