X



トップページ運用情報
1001コメント375KB
bbs.cgi再開発プロジェクト6
レス数が1000を超えています。これ以上書き込みはできません。
0002動け動けウゴウゴ2ちゃんねる
垢版 |
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/
0003動け動けウゴウゴ2ちゃんねる
垢版 |
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/
0004讃岐 ◆IamaVIPdCI
垢版 |
NGNG
>>1
ぼみょー
0005讃岐
垢版 |
2005/04/10(日) 16:53:50ID:affrfPZA0
>>1
ぼみょー
0006動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/10(日) 19:34:26ID:RGQJw3jU0
> 名前がデフォルト名無しさんの場合はDATに書き込まず、
> 表示するときにSETTING.TXTから読んで付けるようにしたら?
> 結構削減されるような気がスルですが。
でも、名無しさんの名前が変更になった場合、古い発言でも名前が変わるわけですよね。なんかそれは嫌な気が。
0008動け動けウゴウゴ2ちゃんねる
垢版 |
NGNG
DATの削減ってそれほど優先度たかいの?
2005にしたのを考えてそうは思わないけど。
曜日を足したいなら2001年08月26日以前みたいに西暦を2桁にしてもよかったのに。
それなら、リンクつけないってのが最優先じゃない?

(read.cgiってSETTING.TXT読んでるんですか?)
0009動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/10(日) 20:06:57ID:a6rtBqIi0
bbs.cgiの今後の方向性が示されてれば的外れな提案とかが無くていいと思うけど
そのへんはどうなんでしょ?
0012動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/10(日) 21:31:55ID:bLJalbEm0
>>11
いや、DAT頭にある名無しとSETTING.TXTのとが違ったら、それはちゃんと名無しの名前を書き込むのよ。
で、次スレからはDAT頭の名無しも変わって省略とする。

bbs.cgiの負荷コストがかかりそうなので、却下されそうだな〜。
単純な思いつきで書いたので流して〜。
0016FOX ★
垢版 |
NGNG
転送量をふやしたいから → 容量食うようにする
とか
人減らしたいから → ファイルopen数増やして全体にもっさりにする
とか

目的を書かなきゃ手段ばかりかかれても
混乱するばかりかな。
0020動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/16(土) 22:12:28ID:FazSDHGa0
>を& amp;に変換するのって必要ある?
<側だけ処理すればタグは禁止できるような。
(ブラウザによっては駄目なのかな)
0021動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/16(土) 22:30:18ID:eAUBMe3V0
確かにブラウザの表示は問題ないかもしれないが、気持ち悪いな。
というか、URIの&は&に置換するべきだと思う。
0024†正座会場 ◆jmq5OZqMNg
垢版 |
NGNG
 
0026root▲ ★
垢版 |
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
0028root▲ ★
垢版 |
NGNG
>>27
きたきた(w。

これから外出してしまうので、あとで、これやりませんか。
IsKoukokuのコストを半分にするだけで、相当効果あるらしいです。
0029FOX ★
垢版 |
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 '';
}
0032FOX ★
垢版 |
NGNG
1) Shift Jis でリストを作る
2) リストには上限を作る (たとえば 200)

ですなぁ

ex10, live20 で Iskoukoku するーにしてみた
0035動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/23(土) 00:11:59ID:8gV5d4mD0
リニアサーチしているからO(n)オーダになるのはしょうがないな……

Perlバインディング使ってcdbサーチにするとか、ハッシュサーチにするとか、
B-Treeサーチにするとか。
0036動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/23(土) 00:14:04ID:8gV5d4mD0
ん、まてよ。
「書き込みの中にNGワードが有ればTrue」
というのと
「NGワード自体をリファレンスで返す」
という処理があるのね。

前者だけでも既存のモジュールで追い出せばO(log n)の速度になると思うけど。
0038root▲ ★
垢版 |
NGNG
今日のex10の様子を見る限り、
この部分のチューニングは、すんごい効果あるってことすね。
0039未承諾酩酊※ ◆TWARamEjuA
垢版 |
NGNG
NGワードが普通の文字列だったなら。。。
正規表現文字列だからちょと難儀かもかも。@「検索」に関してはむちむち♪

とりあえず、Jcodeを外したものを用意しておりますです。
0040動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/23(土) 00:49:53ID:rE0tuwui0
軽くなったところで。
本文だけじゃなく名前欄やメール欄をIsKoukokuのチェック対象にするのは難しいでしょうか。
0042動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/23(土) 00:58:40ID:rE0tuwui0
名前欄・メール欄・本文を連結したバッファを作って一回でチェックならどうでしょう。
(連結による誤判定も起こる可能性はありますが)
0044root▲ ★
垢版 |
NGNG
>>39
まずはjcodeをはずすだけで、相当効果あると思います。
酩酊じゃなくなった時点で、おじさんとも調整しながら。
0045◆cZfSunOs.U
垢版 |
2005/04/23(土) 01:13:32ID:P1wP/4lM0
まぁ Shift JIS でやるという方向ならどうでもいいかも知れませんが,
もし文字コード変換するとしたら,Text::Iconv モジュール使えば
ネイティブの iconv() 使う分 Perl で書いてある jcode よりは軽いかと.
0046動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/23(土) 01:18:26ID:rE0tuwui0
>>43
名前欄にURL貼るタイプの広告は現状報告→ログ掘り→プロバイダ規制と人手をかけ
かつ巻き添え規制もあるんで、例えば>>42みたいなやりかたで簡略化できないかなと。
0047未承諾酩酊※ ◆TWARamEjuA
垢版 |
NGNG
>>44
あにやんが戻るのは夜更け頃ですよね(苦笑)
ってことで、とりあえず「改正IsKOUKOKU」部を晒しておきますですです。

>>45
文字コード変換のメインは、実のところ「半角カナ→全角カナ」だったりしますので、その部分を超ーwwwwwwっ簡略化してみたですです♪
0048未承諾酩酊※ ◆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しなきゃなので、いきなり全鯖に導入しちゃうと気持ちよく叩かれるですです♪
0049root▲ ★
垢版 |
NGNG
>>45
たしかに、でかいすね。
今ならText::Iconvのほうがよさげ。

でも、いわゆるWindowsの機種依存文字、大丈夫かしら。

>>47
了解です。
0050root▲ ★
垢版 |
NGNG
おぉ。 >>48

で、入れるならリスト側と同時にやる必要ありと。
0051root▲ ★
垢版 |
NGNG
あ、そっか。

つまり、ロックなシステムのほうも、いじる必要があるってことすね。
やはり同期とって、すすめるが吉かなと。
0052未承諾酩酊※ ◆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基地
0054未承諾酩酊※ ◆TWARamEjuA
垢版 |
NGNG
>>51
登録/変更・削除部分とリスト更新部分は非同期になっているので前者を無効にすれば、テスト的運用が出来るかと思いますです♪
このあたりは秘密基地をご案内してみようかしら。。。
0055未承諾酩酊※ ◆TWARamEjuA
垢版 |
NGNG
>>53
えっと、さしあたっては、大丈夫かと思いますですです。
でもってもし必要になればそのときって事でm(_ _)m深謝
0057root▲ ★
垢版 |
NGNG
>>56
はい、そのつもりです。

でも、プロファイルする時はspeedycgiをいったん素のperlに戻さないとだめみたいですね。
speedycgi + >>25 のやつで qb6 でやったら、バックエンドが core dump しました。
0058root▲ ★
垢版 |
NGNG
>>55
了解です。
でも、とりあえず入れておきました。
0060root▲ ★
垢版 |
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
を実行すると、プロファイリングの結果が画面に表示される
0061動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/23(土) 02:39:40ID:q2W93/1G0
へぇ、数字で与えるとその数字にあたるキャラクタにマッチして
マッチしたキャラクタが数字になって出てくるのか。
初めて知った。よーし、パパ早速使っちゃうぞーっ!!
0062動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/23(土) 02:43:02ID:lDiLScJr0
処理が前とあんまり変わっていない上に半角カナ以外も変換しちゃってるけど
少しでも軽くなってればいいってことかな。
0063◆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; # 合致したるらリファレンスを返す。
}
0064FOX ★
垢版 |
2005/04/23(土) 04:37:10ID:???0
私もまたまた酩酊ってことで
あした読んでみます、、、
0065未承諾広告※ ◆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 '';
}
0066埼玉mikky ◆jM/TIxxEd.
垢版 |
NGNG
ねえねえ、疑問なんですけど2chはなんでdat使ってるんですか?
頻繁にアクセスされるスレは、
データベース使って、全部メモリテーブルに入れちゃったらいいじゃないですか。
メモリに入れておくと、ディスクまで取りに行くより全然速いですよ。
それに、ファイルのオープンクローズばかりだと
ファイルディスプリプタの消費が凄いだろうし、非効率じゃないですかねぇ。
0067動け動けウゴウゴ2ちゃんねる
垢版 |
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
  同意。

へー、マッチして出てきた文字列からそのまま数字を引けばその差の数値がでてくるのか。
初めて知った。よーし、ママも早速つかっちゃうぞー!!
0068埼玉mikky ◆jM/TIxxEd.
垢版 |
NGNG
>>67
DB化といえばそうだけど、ただ単にDB使った掲示板みたいに
データをDBに入れるわけじゃないからねぇ。
メモリテーブルを使うメリットないとは思えないけど、
まあ、いろいろ考え方はあるからねぇ。
0070埼玉mikky ◆jM/TIxxEd.
垢版 |
NGNG
せっかくアイデア出しても煽られるだけで終わったか、、、
なんというか寂しいね。
0071未承諾広告※ ◆TWARamEjuA
垢版 |
NGNG
劇的な結果が出るようならばやってみたいですよねぇ。
例えば、今ある50近い鯖がたった10台のTigerに収まっちゃうとかとか。
0078root▲ ★
垢版 |
NGNG
>>72
そういったノーマライズ(正規化)って、そのためのライブラリがあるかも。
0079root▲ ★
垢版 |
NGNG
例えばIDN::Nameprepとかが使えるのかもしれないけど、UTF-8ベースだし。

で、そういった正規化が必要なのは、濁点・半濁点と、あと何かあるのかしら。
0080 ◆WMaLhm.gkw
垢版 |
2005/04/24(日) 11:50:21ID:A4V8DF7T0
全角カタカナと半角カタカナを区別なく処理したいときは、
全角カタカナを半角カタカナにして情報量減らすんだっけか。

ガ→ガ  ガ→ガ  カ゛→ガ  カ゛→ガ
0081動け動けウゴウゴ2ちゃんねる
垢版 |
2005/04/24(日) 12:47:15ID:Ff0eXWtu0
>> 74

perl がどんな C を吐くかわからないが、あんまりよくなさげだったら、
IsKoukoku や IsKoukoku の中の"半角カナ→全角カナ変換"だけでも C で書いて、
入れ換えてみるのは。
0086動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/03(火) 14:03:33ID:oTGNOSTA0
bbs.cgiってフォーム処理とDAT出力くらいしかやってないように
見られるんだけど、めんどいことやってるのかな?

C+++FastCGIとかでわりと簡単に書き直せたりしたりとかしない?

・・・と思ってたけど、Perlで十分なら必要ないか。
0087動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/03(火) 17:36:51ID:2fo/jDCM0
>>86
実はいちばんめんどいのが各種チェックや統計処理だったり。

DNS化している部分もあるけど、やっぱり問題なのはディスクI/Oなのでしょうな
0088動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/03(火) 23:10:32ID:oTGNOSTA0
>>87
>実はいちばんめんどいのが各種チェックや統計処理だったり。

各種チェックってアクセス禁止IPのチェックとかDATファイルの1000オーバチェック
とかですかね・・・?確かにめんどそうだなぁ。

>DNS化している部分もあるけど、
素でDomain Name Systemかと思ったw
Digital Nervous Systemって抽象的でなにを言っているのかわからんけど、
高速にアクセスできるシステムって解釈でいいのかな

スレ汚しすいません
0089動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/03(火) 23:23:50ID:Qj6XBp5n0
DNSはDomainNameSystemの意味だよ。
つまり、書き込みが規制対象かどうかをDNSのプロトコルでリクエストして
その結果で判定しているということ。
0090動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/03(火) 23:44:45ID:4DLXOziK0
・書き換えがあまり発生せず
・反映速度の要求もシビアで無い
・複数ホストから同一データを参照する
というようなデータの場合はDNSを転用するってことでしょ。
スパムフィルターとしてRBLという実績がある方法。
0092動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/04(水) 00:14:30ID:GM4RRXgJ0
DNSって名前解決ぐらいにしか使われないんだと思ってたけど、
>>89-90でわけわかんなくなりましたorz

勉強して出直してきます・・・
009592
垢版 |
2005/05/05(木) 00:40:22ID:uwCu+mh10
ググってみました。

2ch運用サーバの中に、禁止ホストのブラックリストを保持していて、
リクエストがある度にそのリストを参照している、
という解釈でよろしいのでしょうか?
0096動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/05(木) 01:01:33ID:Cycs06qd0
>リクエストがある度にそのリストを参照している、
このへんが細かい点で違うが、まぁ結果的にはそういうことになるからいいか。
0097動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/05(木) 12:49:13ID:lrCXGanj0
一番大きなコストなのはRockのチェックのはず。
ここをウィルスチェッカー級の早さでチェックできればいうことないんですがねー

シマンテックあたりに相談したらおもしろいかもと煽ってみる
0098動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/06(金) 01:48:15ID:ukefjV1X0
待ちガイルがソニックブームを出すか、サマーソルトを出すかみたいにすれば速くならね?
必殺技が多すぎて大して速くなる訳でもないか。
0099>>20で
垢版 |
2005/05/08(日) 15:32:47ID:r8qXmxcZ0
     /              `、       \   ___|_|」
  / ̄ ̄\              | ヽ      /  |__  |
'" ̄ヽ     ヽ!!           |,," ヘ    <       | |
ヽ          ゙!!!、        ,,-'   iヽ── /      丿 /
|||l            ゙゙ヽ、ll,,‐''''""     | ヽ|||||||||      ヽ/
|||l     ___,,,,,,   ゙l    ,,,,,    \|||||||||      _
||!'    /ヽ、 ;::''“”“~`゙>┴<;''“”~` /\ |'" ̄|     | |
\  /  |ミミヽ──‐'"ノ≡- ゙'──''彡| |、 |    |     | |
   ̄|    |ミミミ/"~( ,-、 ,:‐、 ) '彡|| |、/   /      | |
 ヽ、l|    |ミミミ|  |、─\\\\ |彡l| |/  /_     | |
  \/|l    |ミミミ| \_/ ̄\\\\''|l/    ̄/     | |
  \ ノ   l|ミミミ|  \二二\\\\     フ      | |
    ̄\  l|ミミミ|    ̄ ̄ ̄\\\\    \     | |
    | \ ヽ\ミヽ    ̄ ̄"'  \\\\   /    |_|
    /  \ヽ、ヾ''''ヽ、_____//\\\\ /
  /  ヽ ゙ヽ─、──────'/|   \\\\ ̄/
. /       ゙\ \     / / \__\\\\
   ───'''" ̄ ̄ ゙゙̄ヽ、__,,/,-'''"      \\\\
0101動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/10(火) 09:59:41ID:MB/Dkquo0
>>100
資源の問題はおいといて、
\0 で埋める -> そういうのを考えてない処理系でバグが出る(特にC)。バカなエディタでは開けない
デリミタで区切って空白で埋める -> カラムの拡張性を殺す
というデメリットはあるんではないかと。

可読テキストデータを固定長にするメリットってそんなに大きい?
今までその手の試みが吉と出たことがないんだよな、経験上。

>>97
時間ができたら見てみます。
0102動け動けウゴウゴ2ちゃんねる
垢版 |
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 系ではないのでここでは全く関係ないのではあるが。
0103動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/13(金) 00:54:36ID:aRboB1hz0
投稿時の並び替えとかレス数の書き換え等が、
アドレス決めうちのメモリコピーのみで可能になるのがメリット?

subject.txtの書き換えなんて元々大したことなさそうだから意味内科。
0104動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/13(金) 09:09:29ID:BWd7ZxwZ0
>>102
ごめん、丸一晩考えたんだが何が凄いのかさっぱり分からん。
>>103
ベンチ取ってみりゃ分かるけど、固定長にしようが\n区切りにしようが
一旦ドカっとバッファに溜めたヤツを切り分けることに違いないんだから、
減らせる負荷なんて知れてる。regexをバンバン使ってるような処理系で
そんなことしても全く無意味どころかデメリットの方が大きいと思う。
0105動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/16(月) 08:17:39ID:buj4assb0
実際のシステム開発でもそうだけど、運用(障害対応等)や移行を無視した案ってのは、机上の九龍なんだよね
たとえば、datに依存したツールが2ch内外に何本あるのかとか
0106動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/16(月) 15:59:06ID:HwKEKcal0
>机上の九龍
ウマイ!
0107動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/16(月) 16:06:31ID:woCxAXtK0
まぁそういうタイトルの漫画あったけどな
0108タソキ@妄想系統 ◆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レス以下のものをもっと優先的に落とす。
0109タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/17(火) 05:16:54ID:YLieYBBt0
禁止ホストのブラックリストを正規表現にする案とか
0110タソキ@妄想系統 ◆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;
}
0111タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/17(火) 05:33:30ID:YLieYBBt0
r = eval("/(" + a.join("|") + ")/ig"); // >>108の訂正
0112タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/17(火) 05:38:52ID:YLieYBBt0
WinXPだと、List.TXT を unicode で保存しておくと読み書きが早い。
0113タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/17(火) 05:54:55ID:YLieYBBt0
dat落ちに関しては、準良スレが圧縮ごとにポロポロ落ちていきますよ。
0114タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/17(火) 06:16:00ID:YLieYBBt0
そか、過疎板のdat落ちを調整すれば、もっと人が増えると思う。
0115タソキ@妄想系統 ◆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 すると、危険です。

テスト追加してから、本追加すべきです。
0116未承諾広告※ ◆TWARamEjuA
垢版 |
NGNG
毎回読み込み問題。
→Speedyのおかげ?で船が自爆すると再読込になっているのかな。

うにコード処理。
→Perl5.8.x以降、内部ではそうなっています。なので、euc-jpにしたりしても同様な負荷が掛かるかも。

正規表現の誤登録。
→配布する前。登録/変更の際にチェックしています。(なんでもRockチェック)

|(or)の利用。
→BBRの絡みがあるので現状では。。。
0117タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/17(火) 07:29:52ID:YLieYBBt0
OK
0118タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/17(火) 07:45:59ID:YLieYBBt0
@Rock_word をグローバルにして LastModified 使うってのはどうです?
0121未承諾広告※ ◆TWARamEjuA
垢版 |
NGNG
>>118
船が出航する際に取得するだけなので、そこまで厳密でなくてもよいのかな。
更新がなければ無駄にはなるけれども、そこまでまだシビアな状態ではないような悪寒も。
0123FOX ★
垢版 |
2005/05/17(火) 13:41:06ID:???0
毎回読み込み問題。
→Speedyのおかげ?で船が自爆すると再読込になっているのかな。

なってるなってる
0124タソキ@妄想系統 ◆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 がウキョー。
0125埼玉mikky ◆jM/TIxxEd.
垢版 |
2005/05/17(火) 21:31:16ID:w7QmQGw30
0126動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/17(火) 22:37:03ID:JHtbUZVW0
http://www.toshinari.net/ここのCGIを改造してサブスクライバIDや固体情報を取得してみる方法はある?
0127未承諾広告※ ◆TWARamEjuA
垢版 |
NGNG
>>124
  <q cite=" >>29 ">@Rock_word = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } @Rock_word;</q>

あーこれは、IsKoukokuの外でやっちゃうと桶ですね♪
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } map { &jcode::euc($_, 'euc', 'z') } <リストのファイルハンドル>;
0128タソキ@妄想系統 ◆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]にしてもいいように見えますけど、合ってますか?
0129タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/18(水) 08:16:15ID:lWek53Vj0
>>125
0130タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/18(水) 08:18:23ID:lWek53Vj0
外でやると、
splice(@FOX_Ro54, i, 1); # i は配列のインデックス
です。
0131タソキ@妄想系統 ◆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;
    }
0132タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/18(水) 08:42:23ID:lWek53Vj0
違った、n にすると配列の長さの変動に対応できないので、
n は全部 @FOX_Ro54.length に置き換えですね。
0133FOX ★
垢版 |
2005/05/18(水) 14:20:46ID:???0
それらは各サーバに配る前にやっておくべきでは?
0134未承諾広告※ ◆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";
長いので省略。。
0135タソキ@妄想系統 ◆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
0137タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
# 入力要素の体裁(コントロールコードや<>を除く)
ここの正規表現もコンパイルするといいかもしれません。
文字列が1000文字以上の場合があるからです。
0138タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
FOX Cawaii

投稿内容が大きすぎます!") if $ENV{'CONTENT_LENGTH'} > 16000;

ここは、シビアに、
256 FROM 256 mail 4096 MESSAGE 256 subject 10 key 10 time
足して4884

6000-7000ぐらいでどうかと思います。
0140タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
>>139はそういえばクロール規制が入ったから、効果不明です。
0141タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
クロールbarbon > bbq&bbm(焼済) > カキコbarbon(焼)
0142タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
でもbarbonはリスト数が少ないからそれいいのか。スマソ
0143タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
では、bbq&bbmの正規表現のコンパイルをする。
0144タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
# POST入力情報を取得($FORM{}に格納)
ここの正規表現も>>137と同じですね。
0146タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
纏めて書く理由がないから。
0148タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
「纏めて書くと見やすいよ。少しづつ挑戦してみなよ」
とでも励まされれば、この世代は喜んで挑戦すると思います。
反対に、「どうして纏めて書けないんだ。この人。」
などと、具体的な指摘や理由がなく、怒り・呵責な表現の場合には、
誰しもが、毎回イヤイヤ纏めるか、その必要がない場合には反発すると思います。

コーチングなどうまく人を参加させるマネージャーの基本だと思います。
0149動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/22(日) 11:20:46ID:bxf7r0yz0
別に励ますつもりも無い。それに俺には君のマネージャじゃない。
チャット感覚で連投するくらいならまとめた方がいいし、
独り言のようにさえ見えてしまう。

最初の意見
やった事
結果
それからでてきた疑問
それに対する自分なりの考察

それだけ書けば十分だろう。
自分ひとりで完結することなら、わざわざ>>143のように宣言する必要も無いし。
0150タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
ですよね、僕も部下じゃないし。
0151タソキ@妄想系統 ◆Ver7J.....
垢版 |
NGNG
>>149僕はその指摘を貴重な意見としてよく考させてもらいます。
ID:bxf7r0yz0さんも>>145-150のプロセスをもう一度見直してもらえると何か進展できると思います。
ブレインストーミングについても調べてみてください。
0153動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/22(日) 16:31:14ID:uY2IH94F0
どうでもいいが、ブレストとかコーチング以前に「協調性」を常識レベルにしてくれ。
協調性がある人間になってからブレストだとかを言い出すもんだ。
0154動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/22(日) 22:06:43ID:7OBk4/8A0
ねえ、いい加減、cgiからphpにしてみたら?
0156動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/22(日) 22:54:44ID:uY2IH94F0
>154
・「cgiからphp」って何ですか? perlからphpにしてみたらというなら意味が分かりますけど
・mod_perlとmod_phpの速度差が大して無いことについて説明して

0158動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/23(月) 04:54:09ID:Gx0M/2C00
│         ,
│      /⌒⌒⌒\
│  ≡ /∽∽∽∽∽\
│   ∽∽∽∽∽∽∽∽
│≡   , ⌒⌒ヽ ||
│     リノヽ、卯) |
│ ≡  ,9、゚ ヮ゚ノミ |
│    Oミi本iミつノ
↓     ノ(_リ⊃⊃
0160動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/23(月) 06:37:48ID:O0qd3lZA0

|         _ ∩
|      ⊂/  ノ )
|      /   / ∨
↓      し'⌒∪
0161タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/23(月) 07:15:41ID:26kSalUN0
考察としては、その辺がコンパイルしてあれば、
サイバーシンドロームとかから串を2000本位集めてきて、
マルチスレッド型でDOS攻撃しても屁でもなくなるだろうってことですよ。


>>153 協調性でググッたら余計に混乱しました。
協調性度チェックテスト ポイント:40/100
http://www.heartful-smile.com/07/07-342.html
ちょっとマイペースで気分屋さん的なところがあるかも
0163タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/23(月) 08:16:15ID:26kSalUN0
>>162
協調性でググってみれ。
協調性のあるやつは使えねーって順番に言ってるぞ。
0164動け動けウゴウゴ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   ○   
0166タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/23(月) 08:23:50ID:26kSalUN0
>>165
オマエモナー
0169タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/23(月) 08:32:13ID:26kSalUN0
もう2年ぐらい荒らしやってないけど、
あなたは運営板の古い人なの?
0171タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/23(月) 08:37:39ID:26kSalUN0
どっちかっていうと、気に入られたっていうより、
率直に削除人が連携して荒らしを煽る風土をどうにかできないかって思ったね。
うまく提示できたね。
0172動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/23(月) 08:43:24ID:wiySXr/N0
この程度もスルーしないのに提示したとか言っちゃってるのが笑える。
積み重ねてきたものが無い奴ほど 〜は使えない とか言うのを信じて自分はそうじゃないと安心することでしか
自分の中での自分の地位を確立出来んのだよな。
0173タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/23(月) 08:48:35ID:26kSalUN0
他の板まで連携したまま煽りに行く人を数人認識してるからさ。
つまり、ID:wiySXr/N0の何か行動を変化させたいんだよ。
そこが凄く引っかかってここに来てみたわけ。
あと、トオルさんになにか力を貸したい。
0175動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/23(月) 08:53:11ID:wiySXr/N0
俺がそいつだとでも思ってんのかね。
煽ってる奴は同一人物でいつもまとまって行動しているとでも言うのか。
0176タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/23(月) 08:53:51ID:26kSalUN0
>>174 OK
>>172 もうオレはこのスレの糞荒らしでいいからさ、
何が気に入らないのオレの?ぶっちゃけちゃってよ。
0178動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/23(月) 08:57:56ID:wiySXr/N0
>>162が自分の事だと勘違いして荒らしてしまう所と
荒らしと自分でわかってる者の相手をしてしまう所>>161>>163

こんなのもスルーできないなら、迷惑をかけるだけだから運営で作戦に参加しようなんて
思わんほうがいい。
0179タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/05/23(月) 08:58:24ID:26kSalUN0
とにかくオレを2年以上前のことを持ち出して、
ウォッチしてたまに煽る削除人が何人かいるわけだろ?
オレの何が君を一番傷つけたの?
0181動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/23(月) 09:02:34ID:wiySXr/N0
訳がわからん。
俺は君のことなんぞここでしか見てないし、
煽ってる奴は削除人だなんてなんて短絡思考だ。
0182タソキ@妄想系統 ◆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
何言ってんだこのアホは?
0183動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/23(月) 09:35:08ID:wiySXr/N0
俺は運営の人じゃないし、他板で972のような書き込みを見たら975と同じ反応をするだろうな。
それに96がどうして君を煽ってるのは削除人だっていう証拠になる。
0184ヾ(゚パ)ノ ◆f0.zuburi6
垢版 |
NGNG
とりあえずスレ違いな話題は移動ヨロ

一個聞きたい>>182
漏れはperlとか良く判らんけど,>>135 で「perlっぽいやつ」でどういうことやねん。
「ぽいやつ」で作らんといてくれるー?

はよねーよー
0187讃岐フォアンフォアン▲ ◆MylTDX..QI
垢版 |
NGNG
転載しておきます


408: ◆TWARamEjuA 2005/05/30 00:22:59 in+4hgAJ0 [sage]
さてさて。
Rock54にて仮に対応をしてきたのですが、そろそろBBRが破綻しそうになって参りました(滂沱)
といいますのも、BBRに登録されているクエリの大半が、このウイルス関連のものに埋まってきましたものでして。
実のところ、DB_File::BTREE にしているにもかかわらずその容量が300MBにも達しております。

そこで願わくば、このウイルス対策として個別のルーチンにて対応頂けるとありがたいかと思いまして。。。>bbs.cgiの中の人
さて如何なものでしょうか。いろいろなご意見をお待ちしておりますm
0188動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/30(月) 01:37:45ID:UtFyGIqu0
思い切ってPHPにしてみては?

ApacheにPHPモジュールを組み込んだ状態でコンパイルしてしまえば
オーバヘッドも少なくなりますし。
0189root▲ ★
垢版 |
NGNG
SpeedyCGI にする前なら、それもありかもだったんですけどね。>>188
0190動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/30(月) 03:45:46ID:UtFyGIqu0
今ってDSOでしたっけ?

1.bbs.cgiをApacheの組み込んでしまう
2.httpデーモンをカーネルに入れてしまう

今みたいな山田君の襲撃が今後起こらないとも限らないので
汎用性を考えればPHPですね・・・(とPHPを強く推してみる。
PHPをコンパイルして組み込めば更に早くなりますしね。

Denyテーブルってどれぐらいの容量(レコード数)を管理されてるのですか?
今の攻撃で正規表現で弾いてれば、これまたレスポンスが悪くなりますし。。
0193 ◆TWARamEjuA
垢版 |
NGNG
>>187
転載、ありがとうですm(_ _)m

あと、IsKoukoku問題。 >>127 (リストの変換を出航の時だけにする)を実施すれば、ひとまず負荷は半減するかと思いますです。
0194 ◆TWARamEjuA
垢版 |
NGNG
>>193
それからそれから、リストの並びを「ヒット率の高いもの順」に替えてみました。
引っかかるのは簡単に引っかかるようにと。

でも「善良な書き込みほど負荷が掛かる」に対してはなにも太刀打ち出来ないでいます(泪)
0196動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/30(月) 09:28:56ID:GeNtN3/e0
>>187
協力したいんだけど、bbs.cgiは随分長いこと見てなくてRock54って何?
って状態なんですが、どの辺りのスレから追えばみなさんに追いつけます?
0199動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/30(月) 15:42:43ID:oT4SOxuh0
とりあえずいつもの「ハンマーをもらった子どもは何でも釘に見える」の啓蒙だよー

PerlよりPHPの方が軽くて速いは本当?(CGI編)
http://www.hippo2000.info/perl/tbench.htm

「Perlは遅いし大規模開発に向かない」というのはPerl4時代の話。
PHPだから早いわけでもない。
どちらかというと「どっちに慣れた人がたくさんいるか」という運用面での話しになる。
0202動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/30(月) 20:42:43ID:K+Y+oK7W0
phpってソケット使える?


もし使えるなら実験してもいいよ
注意:php単独で使えるという前提 ( =~ apache等のwebを使用しない)
0203動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/30(月) 22:46:17ID:UtFyGIqu0
>>201
数百じゃ話にならんよ。。。
日曜プログラマでシコシコやる分には良いが。。
24時間との単位で負荷テストしないと。

>>202
ソケットもサポしてます。
Ver4以降からコマンドラインもサポしてますよ。
0206動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/30(月) 23:47:10ID:cvk6biLo0
っていうか、どんな言語でも(たとえ水平マイクロアセンブラでも)、今から新規に作り直せば、
今のbbs.cgiよりきれいに違いない
そんなの自慢にもならん
0207動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/30(月) 23:55:23ID:RGXs7Ntx0
作り直せというのは大分前からのこと。
仕様変更だって、1ヶ月前から告知したら専ブラも対応できるのに。
面倒なんですと。
0208動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/31(火) 00:08:01ID:NuMPfTs10
個人的な負荷実験結果でこの際100万アクセスって言われてる
ここでPHPの有効性を実際に実験したいってのが本音です。
0212動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/31(火) 11:12:53ID:pIF7DXcf0
PHP使ってるサイトを良く見ますけど、どのサイトもクソ重いです…。
いかにPHPが優れていようと今の2chのcgiより重かったら何にもならないです。
0213動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/31(火) 11:21:28ID:0jYZZ9Q30
phpも便利な言語だし好きだけどperlと比べてそれほどメリットはないよ。
perl捨ててphpにしようとかphp妄信者の寝言はもうたくさん。

それでもphpにしようとかいうひとはphpでbbs.cgi,read.cgi相当の祖体ぐらいだしてからにしてくれよ。
0214動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/31(火) 11:24:48ID:0jYZZ9Q30
>>212
大抵のところはphpを生で使ってるから重い。
スクリプトはそのままで、アクセラレータエンジン入れればだいぶ軽くなるんだがね。
0215 ◆TWARamEjuA
垢版 |
NGNG
同じような手法として、perlccなんてのがあったりするです。
live系はそうしているんだっけ?
0218動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/31(火) 11:50:14ID:86o0U8t20
確かにphpは3.0が出た当時はまだperlに比べてアドバンテージがあった。
apacheモジュール実装然り、初心者にわかりやすく多くのDBとの連携のあるAPI群。
この当時ってperl5がでるかでないかぐらいじゃなかったかしら。

基本的にperlとjavaの弟分みたいなところがあるし、
両者がチューンがすすみ、PerlもSpeedyCGIやmod_perlなどのラッパーが充実してきた今、あまりアドバンテージは感じられないな。
0219動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/31(火) 11:53:50ID:86o0U8t20
スクリプト言語の位置づけとコンパイル言語の位置づけを比較すると

shはアセンブラ
perlはC
rubyはC++/Java
phpはVB

ってところなのかな。
0220動け動けウゴウゴ2ちゃんねる
垢版 |
2005/05/31(火) 12:01:03ID:0jYZZ9Q30
>>219
それは激しく異論があるぞ。
VBなんぞと一緒にするなよ。というかそれだけ言語じゃなくて処理系名かよ:p
だいたいどういう視点での位置づけなんだ?
0224stream ◆ap/yuix/tw
垢版 |
NGNG
またいつものパターンですか
0225root▲ ★
垢版 |
NGNG
>>215
今は全部、speedycgiにしました。
perlccはしょせん、単なる毎回ロードするバイナリ。

で、ここでは「中身を何で書くか」といった、手段のことを言うんではなくて、
まずは目的のことを話してほしいなと。

まずは目的があったうえで、それにあった手段を選ぶわけで。
0233タソキ@妄想系統 ◆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]/;
0235動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/01(水) 01:01:49ID:4S6eve7r0
スラッシュ入りとそうでないのにリストを分けて、入ってないレスの時はスラッシュ入りを回さないとか。
0236動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/01(水) 07:16:37ID:bf9SHC1F0
rockのファイルってジンギスカンしてます?
まあそれ以前の問題かもしれませんが・・・

関連でこんなんはっときます
ttp://www.oracle.co.jp/interactive/Techniques/VLDB/Basic/step08.html
0237235
垢版 |
2005/06/01(水) 10:31:09ID:3nHEF7NN0
メアドやドメイン名だけだとスラッシュ入らんな。ドットでチェックすればいいのかな。
0238235
垢版 |
2005/06/01(水) 10:56:56ID:3nHEF7NN0
NGワードを「スラッシュ入り」「スラッシュ無しドット入り」「スラッシュ無しドット無し」の3つにあらかじめ分けておく。

「スラッシュ無しドット無し」のNGワードチェック。
本文にドットがあるかチェックして入ってたら「スラッシュ無しドット入り」のNGワードチェック。
本文にスラッシュがあるかチェックして入ってたら「スラッシュ入り」のNGワードチェック。

問題は正規表現と整合性がとれるかなんだが、俺はPerlわからんから予想できん。
0239動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/01(水) 11:10:50ID:zzFYRbIx0
とりあえず、仕組みやコードについてアドバイスしたいのなら、
Rock54プロジェクト関連の全ての過去ログに目を通してから語った方が
ええよ。
そうしないと話がループして不毛になるから。
過去ログや関連スレを探すのも2chのプロジェクトに参加するための最低限の
スキルだから、どこにあるか分からないとか言わないでね。
0240 ◆TWARamEjuA
垢版 |
NGNG
じっけん結果。
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% --
0241 ◆TWARamEjuA
垢版 |
NGNG
#!/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;
0242 ◆TWARamEjuA
垢版 |
NGNG
# 従来の方法?
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 ワードがあったら。。。
}
}
}
0243 ◆TWARamEjuA
垢版 |
NGNG
# あらかじめ、カナ変換をしておく。
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 ワードがあったら。。。
}
}
}
0244 ◆TWARamEjuA
垢版 |
NGNG
# あらかじめ、カナ変換して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__
0245 ◆TWARamEjuA
垢版 |
NGNG
○えんばいろめんと
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

なキカイで。。。
0246タソキ@妄想系統 ◆Ver7J.....
垢版 |
2005/06/02(木) 08:45:31ID:VnP48VQZ0
ということは perl での正規表現のコンパイルは意味がないけれど、
文字列をあらかじめ宣言しておくことは効果があるってことですよね
0249動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/04(土) 03:40:59ID:z2pnxTOZ0
>>248
スレッドストッパーとか無関係にそうなることがあると思ってたけど。
時々更新をサボるみたいね。しかもいつ更新されるかわからないw
0250root▲ ★
垢版 |
NGNG
>>248
単純に、スレッドストッパーさんはsubject.txtやsubback.htmlの更新、
場合によってはindex.htmlの書き換えといった、
とってもコストのかかる重い処理を、一切やってないってことですね。

そもそも正直、必要性を感じないし。
0251root▲ ★
垢版 |
2005/06/04(土) 22:00:50ID:???0
IsKoukokuの軽量化が急務っぽいので、
やろうと思うです。

ex11とanimeのbbs.cgi船の重さが15倍ぐらい違うのを見たら、
決断せざるを得ないすね。で、これをせめて10倍ぐらいにはしたいなと。

で、すみませんがこれって今どんな状況で、どう進めればいいんでしたっけか。
0252ピロリ
垢版 |
2005/06/04(土) 22:07:37ID:ir56pciX0
1) まず 山田関係は全部外す
2) 上限を設定する
3) すべて ShiftJis に変更したものを bbs.cgi で回す
0253root▲ ★
垢版 |
2005/06/04(土) 22:12:10ID:???0
>>252
どもです。反応はや。

Perlぜんぜんだめなひと(Cならまぁぼちぼちですが)ですが、
やれることをやってみようかと。

1) 3) は、脳内にあったです。
で、2) は「登録できるデータの上限」を設定するっていうことかしら。
0254ピロリ
垢版 |
2005/06/04(土) 22:13:16ID:ir56pciX0
そうですー 

せいぜい 200とか
広告爆撃対策だとこれくらいでたりるんでは? (推測)
0255root▲ ★
垢版 |
2005/06/04(土) 22:17:08ID:???0
>>254
今、2753行あるみたいです。
中身見てみないとですが、200じゃぜんぜんたりなさげな予感。
0256root▲ ★
垢版 |
2005/06/04(土) 22:19:35ID:???0
で、SJISでやるのと、マッチングするところのコストを下げる(上限とか、場合によってはdbにするとか)のが、
鍵なのかしら。
0257ピロリ
垢版 |
2005/06/04(土) 22:20:05ID:ir56pciX0
まったくそうは思っていなかったり、

Rockにたよりすぎですよ

url 以下のは全部外すべきかと
0258ピロリ
垢版 |
2005/06/04(土) 22:20:47ID:ir56pciX0
本当は 半角英数字だけだから
マッチングにこまるとは全く思っていないです
0259root▲ ★
垢版 |
2005/06/04(土) 22:26:59ID:???0
>>257
> Rockにたよりすぎですよ

ふむ。

ざっと中身見てみましたが、目視で8割ぐらいがURLっぽいかんじですかね。
そうじゃないのは意外に少ないみたい。

あとは、そのURLっぽいのが本当に全部必要なのかとか、
もし必要ならハッシュ入れたりしてそこのコストを下げられないかとか、
そういう話ですか。

で、マッチングは正規表現使ってるですね。
regexpの高速なやつがあれば、相当変わるような予感も。
0260ピロリ
垢版 |
2005/06/04(土) 22:28:35ID:ir56pciX0
だいたい 50% を撃退するのに 10円かかるとします。
20円かければ 100% 撃退できる? そんなばかな事はありません。
残り 50% の50%だから 75% ですね、期待できるのは、
さらに 10円かける(都合30円)かけると 87.25% 、
まだ 100% ではありません。

これを 100% にしようとして、1500円くらいかけている段階かしら?

わたしは 30円くらいでいいと思っています。
あとはポリシーの問題化と、
あくまで100%を目指すなら、それもありかと。たんたんとやるだけ。
0262ピロリ
垢版 |
2005/06/04(土) 22:29:24ID:ir56pciX0
あっ ちと数字またがったか、
いつものことで
0265root▲ ★
垢版 |
2005/06/04(土) 22:32:13ID:???0
まずは、EUC→SJISに変えてみるだけで、相当効果ある気がするです。
前にやったプロファイリングの結果では、jcodeが相当重かったような。

もう1回qb6でプロファイリングしてみるです。
0266reffi@報告人 ★
垢版 |
2005/06/04(土) 22:32:53ID:???0
登録数を下げる方法としては強制時限消去ってのはどうでしょうか?
例えば登録後、30日でデータベースから強制削除


※システムに負担がかかっているのなら新システムの構築か人的資源の投入のどっちが
 いいかってところですね
0267 ◆IDaU21y6wI
垢版 |
NGNG
これかな、

%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
0268root▲ ★
垢版 |
2005/06/04(土) 22:34:54ID:???0
>>260
同じこと考えてたです。
ETCが米国の同じようなシステムと比べて、バカ高になったのと同じですね。

ポリシーの問題なんで、1500円かける道もあるかと。
まずはできることをやってみて本当は1500円じゃなかったら、
とりあえず問題を先送りはできるのかしら。

>>264
あ、Perlできるやつがきた。
0269root▲ ★
垢版 |
2005/06/04(土) 22:35:57ID:???0
>>267
あ、それそれ。

jcode: がすごいですね。
実はSJISでデータ持たせるだけで、解決すると言ってます?
0270 ◆IDaU21y6wI
垢版 |
NGNG
jcode が主な要因っぽいですね。

EUC to SJIS は効果がありそうな予感。
0272ピロリ
垢版 |
2005/06/04(土) 22:43:17ID:ir56pciX0
>>271
今も相変わらずですよん
0273root▲ ★
垢版 |
NGNG
>>271
今も変えてないんではないかしら。
それとも、変わったんだっけ。
0275root▲ ★
垢版 |
NGNG
で、内部データをSJIS化するには、どういう手順でやればいいのかしら。
丁稚どんの改良が必要?

あと、いわゆる「表」みたいな字の対策も入れる必要があるような予感も。
0277ピロリ
垢版 |
2005/06/04(土) 22:46:25ID:ir56pciX0
>>276
この部分のコードは公開されています四
0278ピロリ
垢版 |
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 '';
}
0279動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/04(土) 22:47:56ID:5JYtZIYC0
>>272-273
あ、いや別に今は変わってると言いたいのではなくて
単なる説明のつもりでした。

それより書き込みのURLらしき部分だけ処理してみるとか?
0280reffi@報告人 ★
垢版 |
2005/06/04(土) 22:49:57ID:???0
>275
この辺ですか?
(5.8以降限定ですけど)

ttp://www.fl.reitaku-u.ac.jp/~schiba/perl/perlEncoding.html#shiftjis
0281root▲ ★
垢版 |
NGNG
ちと、めし落ち。

改めて眺めてみましたが、
>>278 のうち、コード変換部分がなくなるだけでも、相当かもすね。
0282動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/04(土) 22:52:58ID:5JYtZIYC0
正規表現を使う必要のあるNGワードって意外と少ない気もするが
Rockだとそうでもないのかな?
固定文字列の検索なら工夫の余地が大きいと思うんだけど
0284 ◆TWARamEjuA
垢版 |
NGNG
まずは、>>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近くは必要かもです。
0285root▲ ★
垢版 |
NGNG
>>284
ご本尊、こられましたか。

ちと、お風呂入ったりしてからで。
0286 ◆WMaLhm.gkw
垢版 |
2005/06/04(土) 23:36:16ID:64YlXvAF0
rockリストに変更があったときに、NGワード・MD5値・フラグだけをShiftJIS化したサブセットも作ることにして、それを元にして判定しましょ……ってこと?
0287 ◆TWARamEjuA
垢版 |
NGNG
>>285
自鯖のperl入れ替えであたふたしている最中なのでレスポンスが悪いかもしれないですm(_ _)m

>>286
実は既に、管理用と配布用とで分けてありますです。(配布用は3要素のみ/管理用のファイルの半分の量です)
0288動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/04(土) 23:56:28ID:gNaPLbTW0
対象リストに載っているデータを
SJISに直すと共に、べた書きのPerlプログラムに直すスクリプトを作る。
そして、bbs.cgiではこれをソースとして動かす。
SpeedyCGIでコンパイルは10分に1回なんだから無問題。
とか。
0289ピロリ
垢版 |
2005/06/04(土) 23:57:02ID:ir56pciX0
ちといろいろ忘れたので復習が寺

各サーバの丁稚どんは原本を定期的に引っ張ってくる
1) 原本ってどこにあるんでしたっけ? bbq.2ch.net ?
2) 原本を出力するときに \t 区切りの Shift Jis にしておけば一番お特?


0290ピロリ
垢版 |
2005/06/04(土) 23:58:12ID:ir56pciX0
>>288

いっそうの船が10分に一回では?
ちがうのかな、、
0291動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/05(日) 00:06:20ID:m8q3xj0O0
そうだけど
毎回ファイルに載ってる全部を読みながら正規表現のコンパイルをして云々・・・と比べて
1/((呼び出される回数/10分)/プロセス数)・・・見込みで1/10-1/100程度にはなるかと。
0292root▲ ★
垢版 |
NGNG
さて。

>>284
ということは、6割ぐらいにはなるってかんじですか。
anime サーバで、しこんでみるです。
0293root▲ ★
垢版 |
NGNG
あ、まずエラーにならないことをqb6で確認するです。
0294ピロリ
垢版 |
2005/06/05(日) 00:13:41ID:hV/aUjEj0
まったー
0295ピロリ
垢版 |
2005/06/05(日) 00:14:42ID:hV/aUjEj0
読み込んだときに変換するのは激しく反対。
配布前になされるべきです
0296root▲ ★
垢版 |
NGNG
ふむ。

ということは、各サーバに置かれる時点でSJISもので全角半角もなされたものにすべきと。
つまり、丁稚側でやるべきってことかな。
0297ピロリ
垢版 |
2005/06/05(日) 00:16:20ID:hV/aUjEj0
系の入り口or最終段階で encode , decode が入るのは
当然ですが、途中段階で interpliter がはいるなんてシステムは
激しく反対。

中身は「ただのブツ」意味の無いものであるべきです
0298root▲ ★
垢版 |
NGNG
リストのおおもと EUC

配布用マスター SJIS

各サーバに配布

そのまま利用

っていうふうにすれば、いいような。
0299ピロリ
垢版 |
2005/06/05(日) 00:24:10ID:hV/aUjEj0
んだんだ
0300ピロリ
垢版 |
2005/06/05(日) 00:25:24ID:hV/aUjEj0
そうすれば
改修するところは

1) マスター作り部
2) IsKoukoku内の処理

ということになり、今後の改修もここだけになるッス
0302 ◆TWARamEjuA
垢版 |
NGNG
あり得る手段としては、「DATをeuc-jpにする」というのもある香奈♪

それはさておき、、、
となると、かなり大変だよなぁ。。。

●Rock54側でやるべき事。
・配布用リストを変換しておく。
1. 全角カナ→全角カナ+半角カナにしてor設定(ex.がんばる→(が|ガ|(ガ))(ん|ン|ン)(ば|バ|(バ))(る|ル|ル)
2. euc-jp→Shift_JISする際に、誤認をするものにエスケープを施す(「表」とか「ー」とか)
3. euc-jp→Shift_JISにする。

こんな感じかな?

#banana238から追い出されそうな悪寒(苦笑)@負荷増大
0303root▲ ★
垢版 |
NGNG
>>302
1. って、やらなくてもいいようになるといいなと。

「がんばる」は「がんばる」だけRockできれば、それでいいんじゃないかなと。
で、「ガンバル」もRockしたければ、単にもう1行入れればいいんではと。
0304 ◆TWARamEjuA
垢版 |
NGNG
>>302
と、書いてみたものの、、、
→1. 全角カナ→全角カナ+半角カナにしてor設定(ex.がんばる→(が|ガ|(ガ))(ん|ン|ン)(ば|バ|(バ))(る|ル|ル)
こんなことしてたら、ますます負荷が「お互いに(Rock54基地でも各鯖でも)」掛かるよなぁ。。。

やっぱりいっそのこと、リストには半角英数記号以外禁止にしちゃおうよ♪
0305root▲ ★
垢版 |
NGNG
2. と 3. は、それで問題ないとおもうです。
0306ピロリ
垢版 |
2005/06/05(日) 00:38:32ID:hV/aUjEj0
#banana238から追い出されそうな悪寒(苦笑)@負荷増大


この部部が理解できなかったり、
投稿毎に(bananaで 5万/day) 処理していることが
どうして出来ないのかがわからないのだ。
0307root▲ ★
垢版 |
NGNG
>>304
あ、かぶったですね。
全角と半角をそこまでやらなくても、正規表現パターンが減るだけで、
かなり負荷下がるような予感。
0308 ◆TWARamEjuA
垢版 |
NGNG
>>303
荒らす人は徹底的に荒らしたいらしいので、もっといろんな描き方をしてくるですです(苦笑)
がんばる
ガんばる
がンばる


が ん ば  る

(わはは)

URIとmailアドレスと思しきもの、電話番号と思しきものに限定しちゃって、無差別コピペは別管轄にしちゃうとかとか。
0310ピロリ
垢版 |
2005/06/05(日) 00:45:32ID:hV/aUjEj0
Rock54 はあらし撃退にも使えるけど
広告爆撃対策が本業かと、
0311root▲ ★
垢版 |
NGNG
>>308
まぁ、>>310 すね。
あとは、正規表現の高速なやつを入れてみるぐらいか。

いずれにせよ、なるはやで>>298にしたいなと思うです。
0312 ◆TWARamEjuA
垢版 |
NGNG
>>306
banana238さんではRock54以外にもBBXやBBR、別プロセスとなるf22baseや、headline、itadaki、statsが同居していますから、
多少不安があったりもしまして。
単純にbbs処理とは異質なものでもありますし。

>>310
本来の本業に専念した方が、問題を切り分けるのには適しているですよね。
荒らしさんには、専属の特殊部隊を結成してみるとか。
0313動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/05(日) 01:07:04ID:10zmJNsO0
>>308
それはログで実証されていますか?
Rockに限らず「これこれこういう方法で回避できるから無駄だ」とやりもせずに
決めつける人大杉ですが実際に「これこれこういう方法」を使う人は意外と少ないものです。
そして「これこれこういう方法」を実際に使われてくると破綻します(例: 山田)
0314ピロリ
垢版 |
2005/06/05(日) 01:34:15ID:hV/aUjEj0
うーん
一所懸命考えたけど、やっぱりわからん

現在は 240万投稿 x 2700 回 変換しているですよね、
それを bbs.cgi 船進水時にやるとして
どれくらいになるかな、10万 x 2700 回くらい?
それを配布元でやれば、データが一日に100回更新されたとして
100 x 2700 回だけで済むようになると思うんだが

何が違うんだろう・・・
0315 ◆TWARamEjuA
垢版 |
NGNG
>>314
bbs.cgiが動いている鯖での変換「以外」の負荷の掛かり具合がよく判っていないので、
ただ単にbanana238でも大丈夫なのかな?と危惧しているところです。
(bbs.cgiが動いている鯖でのpsやtopコマンドの値は知りうることが出来ませんから)

ひとまず「案ずるより産むが易し」ってことで、変換作業をしているですですm(_ _)m
0316root▲ ★
垢版 |
NGNG
>>315
最終行に、同意っすね。
うむ、うむ。

# ちと、今日はおねむかも。
# ちょっと別のスレで別のじっけんしてくるです。
0317 ◆TWARamEjuA
垢版 |
NGNG
基地の方では、切り替える準備が出来ました。

>>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 '';
}

配布が始まりましたら、基地の方でもリスタートを掛けていきますです。
(多少のタイムラグは致し方ないですよね(苦笑)@しばらくは文字コードの違いでスルーされる現象)
0318ピロリ
垢版 |
2005/06/05(日) 02:29:46ID:hV/aUjEj0
おっ

qb6 に早速入れてみます。
0320ピロリ
垢版 |
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 になるっす
0322 ◆TWARamEjuA
垢版 |
NGNG
>>318
あ、、、
丁稚どんがそのままなので、全鯖に配布されちゃうです(汗)

ので、qb6用の丁稚どんも用意しましょうか?
0323ピロリ
垢版 |
2005/06/05(日) 02:37:06ID:hV/aUjEj0
いやいや
まず動くかどうかでして、

0324ピロリ
垢版 |
2005/06/05(日) 02:38:07ID:hV/aUjEj0
つまり 正しく動くかどうかじゃなくて
動くかどうかの確認をしたいと、 @qb6
0325ピロリ
垢版 |
2005/06/05(日) 02:38:52ID:hV/aUjEj0
>>320 の行をコメントアウトすると動く(書き込める)です
0328 ◆TWARamEjuA
垢版 |
NGNG
>>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の丁稚どんだけを呼び出すようにしますですです。
0329ピロリ
垢版 |
2005/06/05(日) 02:50:32ID:hV/aUjEj0
>>327
うごいたー @qb6

全サーバに配布していいですか?
0330 ◆TWARamEjuA
垢版 |
NGNG
>>328
→ひとまず基地からはqb6の丁稚どんだけを呼び出すようにしますですです。
スタンバイ出来ました。
0331ピロリ
垢版 |
2005/06/05(日) 02:53:17ID:hV/aUjEj0
んじゃ 配布しまーす
0332 ◆TWARamEjuA
垢版 |
NGNG
ひとまずqb6「だけ」配布完了した模様です。@新ファイル
0333ピロリ
垢版 |
2005/06/05(日) 02:55:05ID:hV/aUjEj0
指示にしたがいますー

まだ全サーバ配布はやってません
0334 ◆TWARamEjuA
垢版 |
NGNG
ちょと様子見しています。
船が自爆しないからかな?
0335 ◆TWARamEjuA
垢版 |
NGNG
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<>

リストは行き渡っています。。。
0336 ◆Reffi/bQ.c
垢版 |
2005/06/05(日) 03:05:17ID:dBvuVsfA0
rockテストやってきて吸い込まれるのは確認しましたがエラーメッセーが出ないですね。
0337ピロリ
垢版 |
2005/06/05(日) 03:06:03ID:hV/aUjEj0
どんな時にどんなメッセージが出るんでしたっけ?
0339root▲ ★
垢版 |
NGNG
>>338
× エラー
○ エラーメッセージ

>>337
通常 ただ吸い込まれる
いっぱつもの さくらが咲いてますよ
0341ピロリ
垢版 |
2005/06/05(日) 03:09:00ID:hV/aUjEj0
あと三発で「Rockは人生だ」でしたっけ?
0342 ◆Reffi/bQ.c
垢版 |
NGNG
了解しますた。
さくらが咲くurlはわからないのでそっちの検証は無理ですけど無事に稼働しているよう
です。
あとはコストの削減具合の観察ですね。
0343 ◆TWARamEjuA
垢版 |
NGNG
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"

ひっかかりました(照)
0346ピロリ
垢版 |
2005/06/05(日) 03:15:03ID:hV/aUjEj0
>>345
ほんとだ、吸い込まれる仕様ですね
0348root▲ ★
垢版 |
NGNG
>>347
配布が終わったら、animeサーバあたりの様子と、
qb6 でのプロファイリングを再度やってみるです。
0349 ◆TWARamEjuA
垢版 |
NGNG
もしかして、qb6ではIsKoukokuを呼び出しているところが他のとはちょと違うのかな?
・さくらか咲かない。
・BBRが返ってこない。
という症状が現れています。
0350ピロリ
垢版 |
2005/06/05(日) 03:28:54ID:hV/aUjEj0
確認してみますー
0351ピロリ
垢版 |
2005/06/05(日) 03:30:18ID:hV/aUjEj0
スルーするかどうかの違いはありますが
他には制御に違いはないようです
0353ピロリ
垢版 |
2005/06/05(日) 03:33:54ID:hV/aUjEj0
りょうかいですー

配布しますー
0354ピロリ
垢版 |
2005/06/05(日) 03:35:02ID:hV/aUjEj0
あっ anime が IsKoukoku するーになってる

配布しなおしますー
0355root▲ ★
垢版 |
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
0357root▲ ★
垢版 |
NGNG
animeサーバ、IsKoukokuが有効になったやつが入ったのを確認しました。
確認中。
0359root▲ ★
垢版 |
NGNG
いいかんじみたい。

時間帯を比較しないとわからないけど、
やはり、一桁負荷が低くなったようです。

コード変換って、すごく重いのね。
0361root▲ ★
垢版 |
NGNG
animeサーバ、SJISバージョンに切り替わったようです。
0362root▲ ★
垢版 |
NGNG
んでは、qb6でプロファイリングしてみるです。
メインのほうではなく、もとの1行目をさわるです。とお知らせ。
0363root▲ ★
垢版 |
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
0364root▲ ★
垢版 |
NGNG
で、>>362 は元に戻しました。

>>26 と比較すると、効果は明白ですね。
コストが 1/10 以下になったんではないかと。
0365 ◆Reffi/bQ.c
垢版 |
NGNG
>26と>363の簡単な比較データ(何故か円換算)

>26のコスト 14330円
>363のコスト 118円


※ここまで下がれば大成功ですね。
0367root▲ ★
垢版 |
NGNG
最初、計測したときにIsKoukokuスルーされてるんじゃないかと、心配になりました。
でも、そんなことはないみたいです。
0368 ◆Reffi/bQ.c
垢版 |
NGNG
ちょっと、ヤバ目の不具合発見
rockに引っかかった時に本来ならばrockワード以外は書けるはずなのに全く書けなく
なってます。
(引っかかった以降全て吸い込まれて書けない)
ケーブルでこれ出ちゃうと該当回線が書けなくなって巻き添えが大量に出てしまいます。
(既に引っかかってるところも出てます。)
0370 ◆Reffi/bQ.c
垢版 |
NGNG
>369
多分、>368で巻き添えが大量に出ているかも
改善するまでqb6以外は元に戻した方がいいかも
0371root▲ ★
垢版 |
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 '';

ここが、いまいちな予感。
0373ピロリ
垢版 |
2005/06/05(日) 04:26:40ID:hV/aUjEj0
わーい

まずはヨロ個簿絵
0375ピロリ
垢版 |
2005/06/05(日) 04:26:57ID:hV/aUjEj0
ちとみてきます
0377root▲ ★
垢版 |
NGNG
で、直ったら、
BBXの登録アドレスを1回クリーンアップしないと、いけなそうっすね。

そのへんは、ぼちぼちと。
0378FOX ★
垢版 |
2005/06/05(日) 04:29:25ID:???0
うん 書けない。。。
★使うっす
0380FOX ★
垢版 |
2005/06/05(日) 04:31:08ID:???0
んじゃ
まず スルー版は配布しまーす
0381root▲ ★
垢版 |
NGNG
直し方待ちで。

なんか、本文内にNGワードがなくてもNGワードがあったことにされているみたい。
0382 ◆TWARamEjuA
垢版 |
NGNG
# 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;

のように入れてもらえればー
0383FOX ★
垢版 |
2005/06/05(日) 04:34:02ID:???0
スルー版配布完 10min まつ

qb6 だけ on にします
0384root▲ ★
垢版 |
NGNG
>>382
おじさんの間違いを防ぐために、もう1度サブルーチン全体をばさっと貼りましょー。
0385FOX ★
垢版 |
2005/06/05(日) 04:35:54ID:???0
qb6 を on 版にした。
0386FOX ★
垢版 |
2005/06/05(日) 04:37:00ID:???0
open(ADFILE,"内緒");
@FOX_Ro54 = <ADFILE>;
close(ADFILE);

現在の読み込み部
0387FOX ★
垢版 |
2005/06/05(日) 04:38:34ID:???0
open(ADFILE,"内緒");
#@FOX_Ro54 = <ADFILE>;
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;
close(ADFILE);

にしてみた @qb6
0389 ◆TWARamEjuA
垢版 |
NGNG
>>386
open(ADFILE,"内緒");
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>; # ここで変換
close(ADFILE);

ですー

あー、このあたりもスキーリさせれば良かったのか、、、orz...
0391 ◆Reffi/bQ.c
垢版 |
NGNG
さっき、qb6でテストしましたけどまだ吸い込まれてます。
0392root▲ ★
垢版 |
NGNG
>>390
ということは、

・いったん BBX の IP アドレスリストをクリアする
・このバージョンを配布する
・ようすをみる

でいいのかな。
0393FOX ★
垢版 |
2005/06/05(日) 04:42:08ID:???0
                  落着いて待ってます…

         =≡= ∧_∧
          /   (・∀・ )
        〆   ┌  |    | .∈≡∋
         ||  γ ⌒ヽヽコノ   ||
         || .|   |:::|∪〓  ||
        ./|\人 _.ノノ _||_. /|\
0394root▲ ★
垢版 |
NGNG
>>392
> ・いったん BBX の IP アドレスリストをクリアする

を、やってきます。
0398動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/05(日) 04:45:23ID:dSP9Z3eN0
なんとなくまんこ
0401root▲ ★
垢版 |
NGNG
で、
> ・このバージョンを配布する

お願いします。>FOXさん
0402FOX ★
垢版 |
2005/06/05(日) 04:47:42ID:???0
>>391 が気になるのじゃがいも
0403reffi@報告人 ★
垢版 |
NGNG
また書けなくなりそうのでキャップ使うか


>402
クリアした状態でもう一度テストしてきます。
(わざとrockされてからの通常書き込み)
0404reffi@報告人 ★
垢版 |
2005/06/05(日) 04:51:19ID:???0
>402
rockした後で正常に書き込みは出来ましたけど一発サクラになってます。
(IP変えた後なのにrockワード書いただけで吸い込まれた)
0405reffi@報告人 ★
垢版 |
2005/06/05(日) 04:56:33ID:???0
テストして報告してるのが漏れしかいないので更にテスター募集
運用情報(金)で改善版動いているのでよろしくお願いします。
0406FOX ★
垢版 |
2005/06/05(日) 05:02:07ID:???0
配布しますか、

みんながテスター
0409FOX ★
垢版 |
2005/06/05(日) 05:03:28ID:???0
配布したです。
0410reffi@報告人 ★
垢版 |
2005/06/05(日) 05:03:43ID:???0
募集したらテストしてもらっているようです。


※テスターの人へ
 不具合報告等はこちらまで
0411root▲ ★
垢版 |
NGNG
現在、glist / klist とも、初期化した状態です。>未承諾広告さん、ALL
0413p2048-ipad03otsu.shiga.ocn.ne.jp(220.105.33.48) ◆TWARamEjuA
垢版 |
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
0414root▲ ★
垢版 |
NGNG
DNS側、正常に見えます。
異常なパケットの増加等、観測されていません。

DB登録部分も正常。
0415FOX ★
垢版 |
2005/06/05(日) 05:08:03ID:???0
大変です

お腹ぐるぐるしています
旅にでます
0416root▲ ★
垢版 |
NGNG
>>413
# ./main/bbxdump.pl -kC | grep 220.105.33.48
220.105.33.48 Sat Jun 4 13:03:16 2005
0417root▲ ★
垢版 |
NGNG
で、今 220.105.33.48 を bbxdel しておきました。
0418 ◆TWARamEjuA
垢版 |
NGNG
>>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/

桶みたいですよね♪
0419root▲ ★
垢版 |
NGNG
>>418
よさげですね。

しばらく観察するです。

>>415
お帰りをお待ちしております。
0421root▲ ★
垢版 |
NGNG
>>420
# ./main/bbxdump.pl -kC | grep 219.98.185.135
219.98.185.135 Sat Jun 4 13:10:03 2005

これも、これから消しておきます。
0425FOX ★
垢版 |
2005/06/05(日) 05:16:13ID:???0
わーい
0426root▲ ★
垢版 |
NGNG
で、Rock54で登録されたIPアドレスのリストをいったんクリアしたので、
一時的に広告貼られるかもですが、
業者さんが自ら貼ろうとしていくことにより、
時間を追って、正常に戻っていくかと。
0427 ◆TWARamEjuA
垢版 |
NGNG
暫し観測ってところでしょうか。
何だかモヤモヤしていたのがすっきりとした感じです。
みなさんありがとうございましたですですm(_ _)m深謝

何だか、次の目標みたいなのが見え隠れしてきたような♪
0428root▲ ★
垢版 |
NGNG
落ち着いたら、再度 bbs.cgi をプロファイリングしてみるです。@ qb6
0429root▲ ★
垢版 |
NGNG
順調に(普通のペースで) klist が増えていっているようなので、
問題なさげですね。

Rock54システム側は、どんなかんじかしら。>未承諾広告さん
0430reffi@報告人 ★
垢版 |
2005/06/05(日) 05:22:08ID:???0
これでようやく一段落かな
作業してくれた人、乙でした〜〜〜


※もし直せる人が寝た状態だったら恐ろしいことになってた悪寒
 (報告によると公式p2はおろか携帯も巻き添えが及んでいたらしいです。)
0431 ◆TWARamEjuA
垢版 |
NGNG
>>429
おおむね順調です。
細かいところの修正点などは仮眠を取ってからにしようかと(苦笑)
0433 ◆TWARamEjuA
垢版 |
NGNG
>>430
デリファレンス出来ない状態でしたので、
eval{$In_Strings =~ m<>}
となっていて何もかも捕獲される状態になっていましたから、、、(汗)
0434root▲ ★
垢版 |
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
0435root▲ ★
垢版 |
NGNG
>>434
>>26 と比較すると、目視で 1/4 ぐらいにはなったのかな。
かなり、いいかんじだと思われ。
0436root▲ ★
垢版 |
NGNG
で、
@FOX_Ro54 = <ADFILE> ;

を、

@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;

にした分、initFOX のコストが少し上がったと。
でも、全体のコストは下がったと、そんなかんじか。
0437root▲ ★
垢版 |
NGNG
…でも、initFOX は上のほうにもあるように、船が出港する時しか通らないから、
全体としては、大幅にコスト下がってるですね。

1回目で 1/4 ということは(>>434-435)、
常駐型なら、ほんとに 1/10 にはなっている気がするです。

というわけで、関係した方々、おつでした。

これで、某サーバのスレ保持数を 700 でキープできるといいなと。
(ちょっと、500にするのは負けっぽいなと)
0439動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/05(日) 05:57:20ID:CusxkNZG0
4時頃にいきなり公式p2でdat取得済みのスレのスレタイのみが文字化けしてしまったのもこれが原因でしょうか?
ちなみに面白news板でdat取得済みのスレに起こった不具合のようですが
この場合、一旦ログを削除してdatを再取得しなければ直りませんかね?
0443root▲ ★
垢版 |
NGNG
>>441
live16 20 21 ex11 は、私は戻す気ないです。
他は、状況を見ながらかなと。
0445一2ちゃんねら
垢版 |
2005/06/05(日) 15:32:51ID:qwR0dPua0
root▲ ★ さん、明け方まで乙でした。
いつも運営ありがとうございます。
どうぞお体にお気をつけて・・・。
0446動け動けウゴウゴ2ちゃんねる
垢版 |
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)荒らしくたばれ(謎
0448root▲ ★
垢版 |
NGNG
>>447
今日は日曜(負荷高い日)なんで、時間とれたらコソーリやるかも。
0449root▲ ★
垢版 |
NGNG
1時間ばかり前から、ex9 ex10 の IsKoukoku 有効にしてみた。
0451FOX ★
垢版 |
2005/06/06(月) 01:38:49ID:???0
いろいろじゃないかなぁ
version 意識したことはないっす

banana601(etc3)
This is perl, v5.6.1 built for i386-freebsd
0452動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/06(月) 02:14:55ID:QKBCUdccO
5.6以上なのであれば、
文字コードの変換にはXSのJcodeが使えたのでは。
PurePerlのjcode.plよりは負荷も少ないと思われますが。
0453root▲ ★
垢版 |
NGNG
>>450
banana - FreeBSD 5.2.1R/5.3R - Perl 5.6.1/5.8.5
tiger - FreeBSD 5.3R/5.4R - Perl 5.8.5/5.8.6
cobra - FreeBSD 5.4R - Perl 5.8.6

>>452
Jcodeは前に頼まれて、全サーバに入れてあるです。
0454動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/06(月) 02:32:23ID:QKBCUdccO
そうでしたか。失礼。

上のソースを見たところ&jcode::*となっていたので
てっきりjcode.plを使っているものかと思いこんでいました。
0455root▲ ★
垢版 |
NGNG
>>454
jcode.pl 「も」使っているようですよ。
何せ、つぎはぎのソースなんで。

昨年のSpeedyCGI対応の時、
おじさんががんがってきれいにしてくれたので、前よりは「読もうかなぁ」という気にはなるですけど。
0456動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/06(月) 02:59:09ID:QKBCUdccO
と言うと、大本の開発陣は運営側には回ってはいないのでしょうか。

このスレッドをみる限り、リアルタイムで、
それも高頻度でソースの書き換えが行われている様ですが
不特定多数が半端な理解で改造チックな改変を繰り返していると
いずれ対応出来なくなる可能性もあるのでは。

せめて構文チェックくらいはサーバに上げる前に:P
0457FOX ★
垢版 |
2005/06/06(月) 03:00:21ID:???0
もう六年もそれを・・・
0462動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/06(月) 03:13:23ID:QKBCUdccO
なんか偉そうなこと言っちゃいましたが

まあ、なんだ、その。頑張って下さい。( ̄∀ ̄)
私も一Perlerとしてこのスレッドに貢献出来るよう
身勝手ながら努めさせていただきます。

では。よい夜を。
0464 ◆TWARamEjuA
垢版 |
NGNG
>>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ワード
0465動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/06(月) 12:02:51ID:0dq56pC0O
JcodeがEncodeのラッパーになるのは5.8.1から。

というかPerl5.8.2を入れて
use encoding
use Encode qw/encode decoge/
した方がJcodeより速い希ガス
0466stream ◆ap/yuix/tw
垢版 |
NGNG
ふと思いついたんだけど、過去の突発的な荒らしなどに対して、bbs.cgiに細工をして対処をしたことがあったと思うんだけど、
もう不要な処理については削除すれば、軽くなったりしないのかな。

思いついたもの
1.レスアンカーを付けまくる嵐が出たから、レスアンカーの数を制限した
2.一部の広告荒らしに対し、自動的にそのURLを消去し、名前をfusianaにする
0468動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/06(月) 21:02:50ID:i4YGKP210
bbs.cgiの朗読会を開こう
1行目から読んでいって
「この規制なんで入れたんだっけ?」
「あ、あの祭りのときだ」
「もういらないよね」
「じゃあ外そう」
0469タソキ@妄想系統 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みたいなことになってるかもと”予測”。
0472タソキ@妄想系統 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(エスケープに問題がある) を読み込む # 現在
0474動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/07(火) 12:57:08ID:tM9aFKYiO
>>472
それはencodingプラグマで解決出来ませんでしょうか?

@IsKoukokuネタ
過去ログにあったアイデアなのですが、正規表現を一つにまとめてみるのはどうでしょう。

例:
use warnings "uninitialized"; #リストが空の時の警告回避
$Ro=qr/@{["(".join(")|(", map {$_->[0]} @FOX_Ro54).")"]}/o;
...

過去ログ内の話によると、やや効果があったようです。
よろしかったらお試ししあれ。
(チェックしてませんが。)
0476動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/07(火) 15:52:02ID:HQbFVFHx0
>>464
Shift_JISがどの段階でエラーを起こしているのか分からないが、
ファイルの読み込みの段階なら、Shift_JIS1文字にマッチする正規表現を
使って切り分ければ良いし、(エンコードよりはコストが安いはず)、正規表現の段階なら
Shift_JIS文字列だけquotemetaすれば良いし、Perlスクリプト内の埋め込み文字列に問題があるなら、

chop($a = <<'EOF')
aaaa
EOF

でOK。
0479476
垢版 |
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は外せるのでは。
0480476
垢版 |
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.
0481 ◆TWARamEjuA
垢版 |
NGNG
リストは、正規表現文字列が連なっております。
例えば。
(\.|.|/|/)(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される)を繰り返さないようにと、あえてそのようにしてあります。
0482動け動けウゴウゴ2ちゃんねる
垢版 |
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に関しては了解です。
0483476
垢版 |
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しとくってのはアリかも知れません。
0484 ◆TWARamEjuA
垢版 |
NGNG
>>483
エロエロとありがとうですm(_ _)m深謝
ただ、、、今、家にあるメインの林檎機が昇天されましたので、対応が出来ないで居ますですぅぅぅ(滂沱)
♪実はすべての作業を林檎機でやっているものでして・・・
0486476
垢版 |
2005/06/09(木) 20:08:30ID:NnR04xax0
>>485
それだとエラーが出ますね。例えば、

"ワ[a]"

だと「ワ」は2バイト目も8bitが立っているので検索がスキップされますよね。
で、2バイト目と3バイト目の組み合わせをShift_JISの「充」と間違えて開き角括弧
「 [ 」をエスケープしてしまいます。
0489476
垢版 |
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の方が安全かなとは思う(自分贔屓ですんません)。
0491タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
垢版 |
2005/06/10(金) 08:39:08ID:klkomdbB0
>>483ナイスゥ

中の人が呑み屋さんに繰り出しちゃわないようにまとめてみます。

Shift_JIS の場合、エスケープする必要あり。
エスケープしておくと、リストの編集がはげしくめんどい。

解決方法
 1、encodingプラグマでエンコードする
 2、Shift_JIS文字列だけquotemetaする (エンコードよりはコストが安いはず)
後者のほうが処理コストが安い。
0492476
垢版 |
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 ワードがあったり引っかからなければスキップ
}
0493476
垢版 |
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; # 合致したらリファレンスを返す。

失礼。
0494 ◆TWARamEjuA
垢版 |
NGNG
えっと、エスケープ処理は基地側で執り行おうと思っておりますので、IsKoukokuはそのままで桶になるかと♪
0496476
垢版 |
2005/06/11(土) 01:23:50ID:VA/kMcZN0
>>494
お疲れ様です。とりあえず、

 next unless $NG_word; # 空文字列ならスキップ 

これはevalの直前に入れた方がいいと思うです。evalと同じくfail safeってことで。
極端な話、use strictしてないんだったら、quotemetaをtypoしただけで
NG_wordが全部空文字列(投稿が全部エラー)になるわけで。
0497 ◆TWARamEjuA
垢版 |
NGNG
s/([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])(?<!\\[^$\$\(\)\*\+\-\.\?\[\|\]\^\{\|\}])/quotemeta $1/ego;

が、今のところいー感じです♪
0498 ◆TWARamEjuA
垢版 |
NGNG
>>497
が、今のところいー感じです♪→×
が、今のところいー感じです♪@基地内での実験
0499 ◆TWARamEjuA
垢版 |
2005/06/11(土) 20:59:51ID:SiXhhBIF0
>>498
んでは、エスケープされたリストを配布する段取りをしてみるです。
不具合が出たらでたで。。。
0500 ◆TWARamEjuA
垢版 |
2005/06/11(土) 22:35:39ID:SiXhhBIF0
>>499
エスケープされたリストを配布してみました。
何かあるようでしたら何かしらのレスポンスよろしこですですm(_ _)m
0501 ◆TWARamEjuA
垢版 |
2005/06/12(日) 09:37:16ID:rq4KONmV0
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
0502動け動けウゴウゴ2ちゃんねる
垢版 |
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 に変更。
どうも、スレ立てに暴走へと繋がる爆弾がひそんでいるような気がするですね。

だそうですが。
0503◆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 の処理よりも軽くできると思います.
0505root▲ ★
垢版 |
NGNG
移動しました。

>>499-500
なるほど、これですか(今頃気づくやつ)。

さて、まずは原因をつかまないと。
0508root▲ ★
垢版 |
NGNG
ということで、この問題は後で別途ということに。
0509 ◆TWARamEjuA
垢版 |
2005/06/13(月) 20:11:46ID:omwZrjjJ0
>>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深謝
0510 ◆TWARamEjuA
垢版 |
2005/06/13(月) 20:13:27ID:omwZrjjJ0
>>509
訂正前に送信しちゃってごめんなさいです。

if (my $matched = eval{ return $In_Strings =~ m<$NG_word> ? $& : undef }) {
$NG_word_ref->[0] = $matched; return $NG_word_ref
} # 合致したらNGワード部分の摘出とリファレンスを返す。

ですm(_ _)m深謝
0511root▲ ★
垢版 |
NGNG
>>510 を qb6 に入れて試して、エラーがなかったら配布するです。
0512root▲ ★
垢版 |
NGNG
if (my $matched = eval{ return $In_Strings =~ m<$NG_word> ? $& : undef }) {
$NG_word_ref->[0] = $matched; return $NG_word_ref;
} # 合致したらNGワード部分の摘出とリファレンスを返す。

これを配布しました。
0514stream ◆ap/yuix/tw
垢版 |
NGNG
名前欄に山崎渉が入ってるとfusianaになる機能とか、
そんな感じのいろんな過去の遺物を取り払ったら負荷が減ったりしないかな
0515root▲ ★
垢版 |
NGNG
>>514
塵も積もれば(りゃ ってかんじですか。

また暇を見てプロファイリングしてみて、重いところを重点的に、
ってかんじですかね。
0516root▲ ★
垢版 |
NGNG
ちなみに某京ぽんから「む山崎渉」って名前欄に入れているので、
この機能なくなると、ちょっと困っちゃったりして(w。
0518動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/15(水) 13:16:52ID:XFl23xTO0
だったら

fusianasanでリモホ表示を無くし、
もっと簡単な文字でリモホ表示ができるようになれば良いじゃないか、とか思った。

誰も使わんような文字とかで、被害が出ない程度に。
0519動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/15(水) 21:00:21ID:u+DtC+Eo0
>>518
> fusianasanでリモホ表示を無くし、

それをやった場合、

・メリット = もしかしたら軽くなるかもしれないが、不明
・デメリット = もしかしたら何が起きるか、不明

最低限でもメリットがデメリットを下回らないことが確実であることが
開発の条件だと思うです。
0522root▲ ★
垢版 |
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;
0523root▲ ★
垢版 |
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;
0525root▲ ★
垢版 |
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;
0526動け動けウゴウゴ2ちゃんねる
垢版 |
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宣言しちゃった方が早いんではないかと思います。
0527root▲ ★
垢版 |
NGNG
MAXLOADAVGは1回だけ調べればいいので、ぐろーばるー(FOX)のほうに入れよう。
0528root▲ ★
垢版 |
NGNG
>>526
うわあ。ありがとうです。

Perlって、ぜんぜんやったことないんですよ。
shで暮らしていたので。
0530動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/17(金) 16:47:02ID:DURZUdCm0
>>528
Perlの前はawk使いだったのでshは苦手ですw
参加できるのか分からないけど、できることがあればやりますよ。言い出しっぺの法則ですし。
全体のソースは見てないのですが、グローバル変数をあちこちに引きずる方式で
拡張を続けるといずれ破綻するような気がします。
0531root▲ ★
垢版 |
NGNG
$FOX->{MAXLOADAVG} = &mumumuGetMaxLA();

にしました。
これは、船が出港する時に1回だけ実行。

で、$GB->{LOADAVG} (こっちは毎回調査)と $FOX->{MAXLOADAVG} を比較して、
$GB->{LOADAVG} 以上だったら、特殊処理っていうかんじで。
0532root▲ ★
垢版 |
NGNG
で、
$GBX->{LOADAVG} = &mumumuGetLA();

にした。
確かにこのほうが、わかりやすいですね。
0533root▲ ★
垢版 |
NGNG
で、mumumuMaxLACheckを作った。

sub mumumuMaxLACheck
{
my ($GB) = @_;

if($GB->{LOADAVG} ge $FOX->{MAXLOADAVG}) { return 1; }
else { return 0; }
}

これで、処理部分からこれを呼んでチェック。
0534root▲ ★
垢版 |
NGNG
基本的に、$FOX が船が出航する時に1度だけ作られて、
$GB が船に乗る客ごとに作られているようです。

何せ、ドキュメントも仕様書も何にもないので(そういうもんらしいです)、
ソースからおじさんの心を、読み取っていくしかないわけで。
0535動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/17(金) 17:56:52ID:DURZUdCm0
>>533
> if($GB->{LOADAVG} ge $FOX->{MAXLOADAVG}) { return 1; } 

数値比較なら

if($GB->{LOADAVG} >= $FOX->{MAXLOADAVG}) { return 1; } 

にしないとマズいんではないかと。

>>534
なるほど。ソースは基本的に非公開なんでしょうか?
0536root▲ ★
垢版 |
NGNG
>>535
そうなんですか(何も知らないのです)。
変えておきます。

>>534
ひ(りゃ の方針により、全面公開することは控えています。
広告チェック部分とか、公開できるところは公開していますです。
0537毒さぼ
垢版 |
2005/06/17(金) 18:37:31ID:JW+0RdvC0
geだと文字列比較になるね。(>=が一般の数字比較)
例えば、$aaaが'100'、$bbbが'25' だとしたら、
($aaa >= $bbb) は真になる(100のほうが25より大きい)けど、
($aaa ge $bbb) は偽になっちゃう。('1'より'2'のほうが辞書で後に出てくる)
0538root▲ ★
垢版 |
NGNG
>>537
直したです。
というか、私がいじるようじゃ、まずいんですよ。(す)

BBS.CGI - 2005/06/17
0540root▲ ★
垢版 |
NGNG
>>539
むろんひ(りゃ の「公開しない」は、そういう方針からですね。
0545root▲ ★
垢版 |
NGNG
>>530
…下2行は、確かにそうですね。

というかこの問題は、なかなかに難しい(テクニカルにじゃなくて)のかもなと。
0547 ◆mami/ZczII
垢版 |
2005/06/17(金) 20:35:24ID:6y9xGyFjO
>>545
グローバル変数はまだ使い慣れてないので、
頃合いの勘が働かないです。
たった数ファイルなのに「どこで定義されているんだー!」状態です。

>>546
まみらですよ。
0548動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/17(金) 20:51:21ID:DURZUdCm0
>>545
経験上、一度拡散したグローバルスコープな変数や関数は収拾するのが大変だし、
それで破綻しちゃったシステムもたくさん見てるので……。

スコープを意識せず書かれたソースコードは、全体を見渡さないと構造が把握できないように
なっているものが多く、ソースコードの総量が1人の人間が把握しきれる量を超えた時点で
誰も理解できない代物になってしまい、保守が不可能に→破綻となっちゃったりするわけです。

>>547
グローバルスコープな書き方の欠点がまさにそれですよね。てことは、グローバル変数は
実装上止むを得ず使ってるんでしょうか?
0551 ◆mami/ZczII
垢版 |
2005/06/17(金) 22:55:06ID:6y9xGyFjO
>>550
ん?私の事ですか?
人員を増やしても良いと思ってはいます。
0552動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/17(金) 23:18:54ID:DURZUdCm0
>>551
人員増やすなら立候補したいんだけど、その場合どうればいい?
携帯は経験浅いが、Perlなら10年以上Webプログラムとして書いてる。
0557 ◆TWARamEjuA
垢版 |
2005/06/18(土) 07:52:36ID:lPNKO7CS0
KヨNTさんとかRes9ueとかですよねぇ。。。@グロ引きずりまわして破綻
この辺の改造依頼は基本的には断っていたりしてして(苦笑)

さてと、そろそろ林檎機がくるのでまずは基地の修繕かなぁ。。。
(SweepさんとBBRさんがごきげんななめ@coreをエレエレ中)
0558555
垢版 |
2005/06/18(土) 09:59:40ID:FstfHQuj0
>>556
上がってないと専用ブラウザでも見れないっすね……。

>>557
お疲れです。

いや、Webに限っては大手企業でも結構そういう事があるんですよこれが。
まあ自分で蒔いた種なんですが、保守しきれなくなったプログラマが夜逃げとか。
……で、今その夜逃げしたプログラマが書いたとされるWebプログラムの再構築を
やってたりしますw

あとフリーウェアの開発が途中で止まっちゃって、かといってソースコードも開示しないって
事例が多いのもそういうのが原因だったりすることが多いんじゃないかな。
0559 ◆MUMUMUhnYI
垢版 |
NGNG
>>558
再構築おつです。
人の書いたPerlの保守って、Cとかと比較してもなんか相当大変みたいですね。
(「みたい」っていうのは、感覚では理解しているが単に自分が体験していないってことです)

本業方面の知り合いのところに約10年近く「つぎはぎんぐ」されてきた
約37,000行のPerlとかありますが、もう、すごい状態みたいです。
ブログにも少し書きましたが、もう「神の領域」ってやつらしく。

そのPerlは主に書いたやつ(二人)が現役だそうで、
今でもきちんとメンテされてるみたいですが、
その二人がいなくなると(以下略。
0561 ◆MUMUMUhnYI
垢版 |
NGNG
・LAが基準値以上なら、IsKoukokuを船が死ぬまでスルーにした。
・animeサーバは、subject.txt/subback.htmlさぼりを発動させるレベルを
他のtigerサーバよりやや低めにした(基準値に対する率が違う)
0562動け動けウゴウゴ2ちゃんねる
垢版 |
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秒も回線あけて待っててくれたよ。
0563動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/18(土) 20:16:09ID:mpr8OfG00
>>562
>C書く人ってPerlに比べてトリッキーなコード好む人多いし。
いやいや、一行でいかに複雑なコードをかけるか競ってるのなんてPerlだけですし。
0565だんしゃくねこ
垢版 |
2005/06/18(土) 22:35:00ID:ApFHTIkz0
│_A
│・−・) なんかローカルルールのリンク変更をしても、
↓ ⊂)  livenhkのindex.htmlがちっとも更新されないんだけど(head.txtは更新されてる)
      LAが高い時にindex.htmlも更新されないようになってますか?
      (この時間のlive16のLAはそんなに高くない気もするけど)
      ちなみにdomeも微妙にしばらくindexが更新されてなかったっす。
0568だんしゃくねこ
垢版 |
2005/06/19(日) 00:11:28ID:7GiTNm0Z0
>>567
│_A
│・−・) うん、、まぁ、本当はそのルーチンを流用してると思うんだけど、
↓ ⊂)  subback.htmlとsubject.txtって書いてあるし、
      なんかLAがそんなに高くなさそうなのにそうなったのが気になって、
0570root▲ ★
垢版 |
NGNG
>>568
>>567 ということですね。はい。

私はそこの部分に、LAが高い時という処理を「追加」したので、
>>567 はやはり生きているです。

>>562
セッションタイムアウトについては、peko作戦スレでやりますか。
0571root▲ ★
垢版 |
NGNG
で、subject.txt / subback.html ではなく index.html / subback.html なので、
bbs.cgi の私が書いたコメントを直しておいたです。

なにせ、Perl も bbs.cgi も、未知の世界がたくさん。
0572だんしゃくねこ
垢版 |
2005/06/19(日) 20:00:38ID:7GiTNm0Z0
│_A
│・−・) あれ、>>567が原因ってことっすか?
↓ ⊂)  いちおう言っておくと、昨日は22:30になっても、index.htmlが22:01ころのままずっと変化なしだったのね、、
      その間に700レスくらいついてたはずだけど、index.htmlは更新されてなかったと。。
      で、それ全部が>>567起因とは考えにくいので追加したが効いてるのかなぁ、、と。
      でもその時間のlive16のLAが、1.0以上な様子もなかったので。
0573SweetRock ★
垢版 |
2005/06/19(日) 23:51:07ID:???0
>>440-443
tmp5のIskoukokuですが
戻す予定はないのでしょうか

板の性質上(というと語弊があるかな?)
どうしても大量になりがちなので、、

まだ、様子見筒という
段階でしょうか?
0575root▲ ★
垢版 |
NGNG
live系は、pidをある一定数で割った余りが0の時だけindex.html/subback.htmlを書き換える、
という実装になっているようです。

>>573
わたし的にはシステム負荷以外に特に止めておく理由はないので、
今夜あたりに復活してみるかも。
0576root▲ ★
垢版 |
NGNG
tmp5のIsKoukokuを復活しました。
山田ウイルスを撃退した、おじさんに感謝で。
0577だんしゃくねこ
垢版 |
2005/06/21(火) 00:39:06ID:dkib8z350
>>575
│_A
│;・−・) 了解いたしました、pidが10で割り切れるとき、ですか、、
↓ ⊂)   なんか更新される時はとことん更新されなくなるのね、、
       秒数がint(LA+1)とかで割り切れたとき、とかそんな感じのほうがいいような気がするけど、、まぁいいか、、
>>576
感謝感謝。。
0578root▲ ★
垢版 |
NGNG
>>577
なるほど。

でもLAは所詮リアルタイムじゃないんで、
こっち(index.html / subback.html)は、あまりこれではやりたくなかったり。
(そもそもlive20等はIsKoukokuチェックなし)
0579動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/21(火) 15:26:54ID:x2Bt2xzo0
そういえばやっているかもでしょうけど、
スレ立てやdat落ちのタイミングとindex/subback更新を同期にできませんかね?

・sageなしスレ立てまたはdat落ちがあったらindex/subback更新
・sageスレ立てしたらsubbackのみ更新
・sageレス投稿時に更新しない
0580root▲ ★
垢版 |
NGNG
スレ立てはふつうに同期になっているはず。
sageレス投稿時更新しないというのは、cha2でやってるんでしたっけか。
dat落ちは別の人(f22)がやっているからなぁ。
0581root▲ ★
垢版 |
NGNG
同じ●で1時間あたりに1サーバに立てられる最大スレッド数を制限できる機能を
qb6のbbs.cgiに実装してみたんですが、これって需要ありますかね。

主に、●でのスレ立て荒らし対策の一つになるかなと。

ちなみに、★(φ ★含む)とIsKoukokuを切っている状態
(live系/ex11や負荷が高い時)の場合、この処理はスキップ。

スレ立てでも●じゃない時や、スレ立てじゃない時は従来通り。
0582root▲ ★
垢版 |
NGNG
最大数は可変ですが、とりあえずデフォルトは10(1時間に10個まで立てられる)ぐらいかしら。
0583root▲ ★
垢版 |
NGNG
おじさんと若者へ(馴れ合いごめん):

・Sambaのアレと同じ場所にカウントのファイルを作るです。
・ファイル名に使うときに、/ は _ に変えているです。
・先頭に "." つけているので、あれを数えているところには影響しないはずです。
0584動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/22(水) 02:41:18ID:BLJmkowo0
鯖単位だよね? 10個どころか5個くらいでもあんまり困る人はいないような。

そもそもスレってそんなに短時間にたくさん立てるもんじゃないと思うですよ。
荒らし以外で1時間に5本以上同一鯖内でスレが立てられなくて困る人なんて
●を使ってスレ立て代行をやっている人くらいしか思いつかない。★はスルー
だから記者とかは関係ないわけだし。
0585root▲ ★
垢版 |
NGNG
例えば、●荒らしが横行しているらしい(あまり確認していないのでよくわかりません)
news だけ5個にするとかも技術的にはできなくはないわけですが、さて。

れふぃさんとかの意見が、聞きたいかも。
0587reffi@報告人 ★
垢版 |
2005/06/22(水) 03:01:59ID:???0
N速のスレ立て魔ですけど、ここ見ると傾向がわかると思います。
(最近、建てている傾向)
時間当たりのスレ立て数制限はある程度効果があると思いますがそれだと今度は制限
いっぱい建ててまた次の時間帯に建てるとかやってきそうなので何処まで効果があるか
疑問です。
やっぱり地道に●停止が一番効果があると思います。


●による荒らし報告専用スレッド8
http://qb5.2ch.net/test/read.cgi/sec2chd/1114660322/580-
0588水色@飛行石 ★
垢版 |
2005/06/22(水) 03:07:58ID:???0
10個で困る人はー、まずいないと思いますー。

まー、荒らす人は10本立てていくでしょうけどー。

けど、あんまし細かい数字まで出さない方がいいと思いますー。

その制限いっぱいで立てようとするはずですからー。
そいで毎日、せっせと立てて増やして保守するかなーと。
0589root▲ ★
垢版 |
NGNG
>>587-588
まぁ、負荷はそれほどでもないし、とりあえずやってみて考えますか。
今のやつを配ります。
0590reffi@報告人 ★
垢版 |
2005/06/22(水) 03:25:15ID:???0
>589
了解しました。
多分、殴り込みがある可能性が高いのでそれだけは覚悟した方がいいですよ(苦笑
0592root▲ ★
垢版 |
NGNG
>>590
殴り込みですか。

とりあえず、管理人はこう↓言っているのと、
スレッドの「立てやすさ(TATESUGI値に対する)」は変わらないわけで、
まずは、実験かなと。

http://qb5.2ch.net/test/read.cgi/sec2chd/1118208864/85
85 名前: [―{}@{}@{}-] ひろゆき@どうやら管理人 ★[] 投稿日:2005/06/08(水) 16:24:41 ID:??? ?###
書き込みの機能は、●の価格の対価ではないので、
自由に止められるわけで、
お金の問題とは無関係です。
0594動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/22(水) 13:22:10ID:4fep6rSi0
携帯のID生成と同じルーチンを使って●IDからID精製できないかな?
これだと●+串の組み合わせでもIDが固定になるような気がするんだけど。
0595root▲ ★
垢版 |
NGNG
●をタネにIDを作るというアイディアですか。>>594

ちと、微妙かも。あんまり魅力を感じないような。
0597動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/22(水) 13:48:23ID:4fep6rSi0
駄目っすか?
規制議論板でよく●+串で荒らしてるって報告がよく来るんですけど、(実際はいろんな人がスレたてたりレスしたりしてる)
そういう主張で報告しにくる方々の動きを止めれるかなあと。
0599root▲ ★
垢版 |
NGNG
>>597
そういうのよく見るんで、とりあえずリミッター入れてみたと。
今見る限りでは、あんまり文句出てなさげで。

設定値は、機を見てぼちぼち調整してみようかなと。
0600FOX ★
垢版 |
2005/06/22(水) 14:11:18ID:???0
噂を信じちゃいけないよ〜♪

規制情報板の報告を実際に食べてみて
自分で実態を感じ取ってすすめた方が良いと思います。

かくいうわたしも噂を流している張本人ですが、
噂であらしが止まるのだ !!

うっひっひ
0602root▲ ★
垢版 |
NGNG
>>600
果実をもっと食わないとだめですか。
おじさんが戻ってくるまでの「鬼の井沼」だと思っていたんですが、、、。

今回のはここ見て、なんかなぁと思って、入れてみたです。

●による荒らし報告専用スレッド8
http://qb5.2ch.net/test/read.cgi/sec2chd/1114660322/
0603FOX ★
垢版 |
2005/06/22(水) 14:20:14ID:???0
>>602
そのスレで●からのあらしを探すのは至難の業だったりします。
0604root▲ ★
垢版 |
NGNG
>>603
…みたいですね。(それも読んだです)

というか今回のターゲットは主にnews板と、●+p2(= 讃岐荒らし)なわけで。
普段見ない >>602 のスレをついふらふらと見てしまって、
newsの●でのスレ立て荒らしってすごいんだなぁとか、ついふと思っちゃったわけで。
(newsの●でのスレ立ては、ご存知のように明らかにそれとわかるようになっている)

そう思っちゃった時点で、既にかなりの割合で「負けている」わけなんですが(なんかねぇ)。

今は「ふと思いついて、使えそうな道具を作ってみた」状態ってってかんじですかね。
0605FOX ★
垢版 |
2005/06/22(水) 14:40:00ID:???0
作るのは一向に構わないというか、みんな大歓迎かと。
いざというときの武器ですし、

newsでやっているのはほんの一握りで、またnews板はほっておけば
どんどん落ちるくらいのパワーがあるです。

一番気にかけなきゃならないのは 投稿数で300位以下の板たち
2ちゃんねるで一番重要な板たちと思っています。
ほんの小さな爆撃でも壊滅します。

たとえば、スレ潰しが実況板であったとしてもたいした被害ではないです。
それを跳ね返すだけのパワーを持っています。
0606root▲ ★
垢版 |
NGNG
>>605
なるほど、第三段落は非常に重要ですね。

私は「大きい板」のサーバについ目が行きがちなのですが(そんなことばかりしているし)、
そういった「普通の板」「相対的に小さな板」こそ手厚くすべきというのには、同意します。

そういえば、Rock54やSamba24を作るきっかけになったのも、
そのへんの板のためだったような(特にRock54)。

news4vipとか、Rock54がなくても、場合によってはSamba24すらなくても、
板としては機能するわけで(何をもって「機能」とするかは議論の対象外で)。
0607root▲ ★
垢版 |
NGNG
だらだらと、案を書いておいたり。

「さる」と「かに」でしたっけ。

「さる」 = サルのように1回覚えたことを何度も何度も繰り返す = 1スレにどかどか爆撃
「かに」 = カニのように横歩きで多数のスレを荒らしたり(かにA)、スレ立て爆撃をしたりする(かにB)

●での「かにB」行為についてはある程度歯止めができたわけですが、
「さる」と「かにA」にも、おんなじようなことするのは、ありやなしや。

「さる」「かにA」に対して何かするとすれば、
1時間にレスできる数とか言う実装になるのかしら、やっぱ。

とすると例えば、

・●での1レス = 1ポイント
・●でのスレ立て = 15ポイント

とかにして、1時間で例えば150ポイントまで使えるようにするとか、そんな実装なのかしらね。
0608root▲ ★
垢版 |
NGNG
比率はあくまで「仮定」なので、考え方だけです。>>607
そもそもほんとにやるのかどうかも、よくわからないし。
0609root▲ ★
垢版 |
NGNG
で、個人的な意見を書いておくと、>>607 みたいなのは、
今の bbs.cgi 側ではあんまりやりたくないかもですね。

フロント側(例えば公式p2とか)で実装するのは、面白いかもしれないですけど。
0610FOX ★
垢版 |
2005/06/22(水) 16:53:26ID:???0
そのあらしが起こっている頻度が重要かと、

「2ちゃんねるが大変になるほど起っていない」といサンコンかと思っとります。
つまりほとんどあらされていない!!
0611FOX ★
垢版 |
2005/06/22(水) 16:57:29ID:???0
あと、何かをやるとメリット(目的の達成)を得られる代わりに
デメリット(失われるもの)も当然付いてきます。

Rockで URL だけに絞っていたりするのもそれが理由だったり、
0612root▲ ★
垢版 |
NGNG
>>610
ふむ。
「困っているものから手をつける」ってことですか。

ここ関連はまた何か、思いついたらってかんじで。
0613root▲ ★
垢版 |
NGNG
>>611
そですね。
メリットとデメリットを秤にかけて、考えるってかんじで。

例えば Rock の処理はご存知のように相当重いわけですが、
あれは「重くてもやる必要がある」から、やっているってことですね。

で、その必要がないとか相対的に薄いところは、
そういうところを手抜いたりすると。

例えば正直、今のnews4vipに業者ががんがって広告をどんどんぶち込んだとしても
「業者クオリティタカス」とか何とか言って、遊びの対象になるだけだったり(適当な推測)。
0614root▲ ★
垢版 |
NGNG
同じIPアドレスだと、同じ日には同じIDが出る、というのは、ほんとなのかどうなのか。
0616動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/22(水) 22:06:10ID:mnrqWpCd0
質雑見て気がついた。
今は種が違うから違う月の同じ日では同じにならないのではなかったでしょうか。
0617root▲ ★
垢版 |
NGNG
>>616 が正しいと思っているわけだけど、
ほんとにそうなのかどうか。
0618桶屋
垢版 |
2005/06/22(水) 22:11:26ID:47I+grU70
sport2鯖の話が混じっているのかとも思った。
0619root▲ ★
垢版 |
NGNG
sports2は、どうも常に同じIDが出るみたいですね。
例えば公式p2とか、毎日同じだとか、なんとか。
0623桶屋
垢版 |
2005/06/22(水) 22:26:06ID:b8Mc/K1W0
sport2鯖は放置されているから。

質問者の方が背景を詳しく説明してくれなかったら状況はよくわかりません。
1ヶ月の時間をいただけるのなら実験してもいいですが、ソースを覗いた方が早いと思いますよ。(;^ ^
0624
垢版 |
2005/06/23(木) 00:35:17ID:zro7njUC0
オイオイ!●規制直せよ!鯖強化に貢献しているんだろ!(#゚Д゚)ゴルァ!!
0627root▲ ★
垢版 |
NGNG
newsの自治スレにおじゃましてきました。

>>626
今、newsは4ですね。5つ目でひっかかると。
で、この値はもっと適切な値があれば、変更できるです。
0629root▲ ★
垢版 |
NGNG
>>628
いまのところ、まだ超実験中なので、まだいらないっす。

たぶんほとんどの板は安全側に振った一定値にしておけばよくって、
2、3の特殊な板だけ別途特別な値を設定するかんじになると思っているので、
たぶん、ほとんど設定変更の必要もないかなと。
0630ヽ( ・∀・)ノ ≡●ウンコー ◆worRE2unko
垢版 |
NGNG
>>584
あの、別に今のままでもそんなに問題無いんだけど
初心者板http://etc3.2ch.net/qa/って立ってるスレのほとんどが糞スレで
実際機能してるスレってあんまり無い状況です

一番消費してる『もの凄い勢いで誰かが質問に答えるスレ』は
住人が少なくなる時間だとスレ立てれる人がいなくなることがあって
しばらく待ってる間に人がいなくなるのを防ぐために、
一辺に大量にスレを立てておくことがあるんだけど
それをやるのに初心者板の規制解除して欲しいのだけれども駄目ですか?
この板はスレ立て荒らしされても迷惑する人いないと思うのだけど
0631動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/23(木) 13:47:34ID:We0905PS0
スレがものすごい勢いで立ってるVIPとかは
逆にログインしない方がスレ立てしやすかったりして

>>630
住人が少ないのに消費が早いってのはどうなんだろ
0632root▲ ★
垢版 |
NGNG
別のことの副産物だったりするのですが、BBS_SLIP=checkedな板で、
AIR-EDGE PHONEからだと"H"と表示っていうのが出ると、うれしい人っているのかしら。
(今この機能はオフになっています)

ほんとは"O"にしたいところなんですが、
携帯で言う固有番号みたいなのって送ってくるんでしたっけ。
0635root▲ ★
垢版 |
NGNG
>>633-634
そですか。

んじゃ、取り扱いの都合上、O にはできないですね。
かと言って、ちょっと 0 なのはいまいちなのですよね。いろいろと。

で、識別子そのものはつけておきたかったりするわけですが、
H でいいのかしら。
0640root▲ ★
垢版 |
NGNG
ダブルクォートはちと特殊な文字だから、ちょっといやん。

W = WILLCOMですか。
メーカー名由来は、ちと微妙かも。
0643P061198142083.ppp.prin.ne.jp
垢版 |
2005/06/23(木) 23:30:04ID:cik1mIHi0
つか何をもってAIR-EDGE PHONEと判定するわけ? IPアドレス?
AIR-EDGE PHONEて、センター以外の一般ISPに繋ぐことが出来るんだが。
0645root▲ ★
垢版 |
NGNG
>>643
> AIR-EDGE PHONEて、センター以外の一般ISPに繋ぐことが出来るんだが。

知ってるですよ。京ぽんユーザなんで。

その時は当然PCと判断されるわけですが、
味ぽんや京ぽんのブラウザはリファラ吐いてくれないから、ここには書けないっすね。
0646root▲ ★
垢版 |
NGNG
PCと、はちと不適切ですね。
「携帯でも公式p2でもない」と判断されるってことです。
0647動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/23(木) 23:40:48ID:tc5u2ePT0
端末がAIR-EDGE PHONEであることの判別ではなく
アクセス元のIPがAIR-EDGE PHONEセンターであるという判別ですね
0648root▲ ★
垢版 |
NGNG
>>647
ですね。
で、>>632 の第2段落を再確認したわけで。

ということで、>>641 を採用するです。
0650動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/23(木) 23:48:30ID:IAjuJN5f0
えーと、そのセンターにH"以外からも接続出来るのですか?
#やり方を教えろというわけではありません。
0652root▲ ★
垢版 |
NGNG
荒らしの出自判別がしやすくなるですね。>>651

>>650
わからないです。

もしそういうことができて、それを利用した荒らし行為が多く出回ったら、
AIR-EDGE PHONEからの書き込みは全面的に(りゃ にするしかないかと。
0654P221119009159.ppp.prin.ne.jp
垢版 |
2005/06/24(金) 00:07:18ID:g0fG5wWDo
AIR-EDGE PHONEセンター経由ってことですね。
もしそうなってなかった場合、
ここで報告いただけると助かるです。
0658P221119007168.ppp.prin.ne.jp
垢版 |
2005/06/24(金) 00:11:01ID:qtwXzmxmo
P2がPなんだからHでもいいやんと思うのは俺だけ?


o→激しくダサい
0659動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/24(金) 00:11:02ID:T4aiLaEN0
>>652
携帯の識別の場合PCとは規制方法が違うので意味があるというのはわかるんだけど
AIR-EDGE PHONEとPCって規制方法って違ったりするの?
(単なるISPの違いとの区別がよくわかってなかったり。)
0664P221119009159.ppp.prin.ne.jp
垢版 |
2005/06/24(金) 00:17:59ID:g0fG5wWDo
おぉ、そですか。
であれば、味ぽんを切ってしまえば、この特殊処理しなくていいのね。

でも奥様が味ぽんのうちは、絶対そんなことできないわけで。
0666root▲ ★
垢版 |
NGNG
きたくで。

>>659
今は prin.ne.jp が規制されれば、出自に関係なく巻き添えですね。

それ(規制の方法論)も含めてよりうまくできる道はあるのか、
あるいは実は携帯荒らしみたいに京ぽん荒らしがいたりするのかとか、
そういうことを、知っておきたいわけで。
0670root▲ ★
垢版 |
NGNG
>>668
確かにそうかもですね。

というか、公式p2以外のものをサービス名やメーカー名にバインドした名前にするのは
やはりいまいちだなと、>>641 を読んでおもたわけです。

これまでもIだったのがaになったり、
JだったのがVになったり、ことによるとVからYにさらに変わる(これはないか)
とかいうことは、常にあるわけで。
0671root▲ ★
垢版 |
NGNG
>>669
ほほう。

/25 のところのチェックを、きちんと実装しないといかんかもですね。
今は(もともとbbs.cgiがそうだったように)、まじめにやってないです。
0673root▲ ★
垢版 |
NGNG
というわけで、あるIPアドレスがあるCIDRブロックに入っているかを、
Perlでうまく調べる方法って、どうすればいいのかしら。

具体的にはあるIPアドレスが、61.204.3.0/25 に入っているかいないかを
さくっとコール一発で、調べたいわけです。
0677 ◆QANoNotan.
垢版 |
2005/06/24(金) 00:37:53ID:gTCgmqQY0
続報
58 47 2005/06/24(金) 00:36:43 0
繋ぎ直したらでなくなったみたい

だそうです
0678root▲ ★
垢版 |
NGNG
ははぁ、虫ですね。

つまり、もともと虫がいたと。
(判別部分のアルゴリズムは、前のバージョンと変えていません)

221.119.26.185 が、221.119.2 にマッチしちゃってるわけね。
なんだかなぁ。
0679動け動けウゴウゴ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 (小文字のオー)からです。
 荒らし対策の一環として、一部の板に便宜上導入されています。
0681root▲ ★
垢版 |
NGNG
>>679
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。

が、正しいです。
0682P061204003192.ppp.prin.ne.jp(61.204.3.192)
垢版 |
2005/06/24(金) 00:43:12ID:BgGEEPRio
とりあえず、IR-EDGEPHONEセンターとPRINは
課金条件とかが違うから名前を変えているけれど
中身は同じなんじゃないかと。だからIPも同じになると。
憶測なんだけど。
でもAPの電話番号は違うんだよね
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
0684root▲ ★
垢版 |
NGNG
>>680
それは一瞬考えたんですが、今の目的(荒らしの出自判定)からは、
その必要ないと思っているです。

なんでかというと「xxのキャリアからの荒らしだ」ということは規制方法論的には全く
区別していなくて、いずれの携帯キャリアも全く同じ方法で、規制しているからですね。

もしが「auだけ特殊な規制処理」とか「DoCoMoだけ特殊な規制処理」とかしているんであれば、
区別する意味はあるわけですけど。
0685root▲ ★
垢版 |
NGNG
で、今入っている o 判定ルーチンにはバグがあるです。
(もともとあったのが、今回判明した)。

ということで今出る o は、必ずしも正確なものではないです。
めしくったら、ちと直してみるか。
0687root▲ ★
垢版 |
NGNG
>>683
どもです。すばらしい。

さくっと入れてもらう必要ありですね。
これ入れると規制方面では応用範囲が広そうですね。
いいかんじかなと。
0688root▲ ★
垢版 |
NGNG
>>686
…です。

というわけで、ぼちぼちおかずがテーブルに並び始めた模様。
0689動け動けウゴウゴ2ちゃんねる
垢版 |
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 (ゼロ)です。
 荒らし対策の一環として、一部の板に便宜上導入されています。
0690動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/24(金) 00:55:08ID:am8Tfv680
Oと0の分け方は大雑把なのに、AIR-EDGE PHONEセンター経由だけ識別されるのは、ちょっといやーかもです。
0→Oへ分類変えされるならいいけど。
AIR-EDGE PHONEセンターからの荒しって多いんですか?
0691root▲ ★
垢版 |
NGNG
>>689
いいかんじ。

>>690
それも含めて、現状を知りたいなと。< 荒らしが多いかどうか
で、端末固有情報が来るなら、Oでも問題ないわけですが、、、。
0695動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/24(金) 01:34:56ID:skdIbacY0
>>692
そのようですね
おいらもNet::CIDRを試してみて重いと感じたから
Liteも試してみて、軽くて速いからLiteにしるって書きにきたとこです
0696root▲ ★
垢版 |
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]);
}
0697root▲ ★
垢版 |
NGNG
で、チェック用サブルーチンはこんなふう。

#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;

# CIDRリストに該当があるかどうかチェックする
$FOX->{AIREDGECIDR}->find($raddr);
}
0698root▲ ★
垢版 |
NGNG
こうだった。

#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;

# CIDRリストに該当があるかどうかチェックする
return $FOX->{AIREDGECIDR}->find($raddr);
}
0700動け動けウゴウゴ2ちゃんねる
垢版 |
2005/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が呼び出し元のスコープにないとか?
0703root▲ ★
垢版 |
NGNG
>>700
下の3行のほうがよさげですね。それにしてみるです。
(そのへんの作法にくわしくなかったりします)

で、SpeedyCGI 化している今の bbs.cgi では、
出航時に1回しか設定しないところ(SETTING.TXT / 広告チェック用リスト / ローカルルール等)は、
まとめて一発関数呼んで(initFOX)、そこでやっているです。
で、上記は、initFOX内に追加したと。
0705FOX ★
垢版 |
2005/06/24(金) 13:59:27ID:???0
そして、あとから読む人がまた悩むのであった、、、
0707root▲ ★
垢版 |
NGNG
>>705
できるだけ「おじさんのインデント」とか「おじさんの書き方」に合わせるようには、
しているわけです。サブルーチンやら変数の使い方やらも。

…しかし、難しい問題ですね。
心が通じ合わないと、だめなのかしら。
0708動け動けウゴウゴ2ちゃんねる
垢版 |
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が参照できないってこと?
0709FOX ★
垢版 |
2005/06/24(金) 14:38:33ID:???0
わたしにあわせる必要はまったくなく、、、

でも return は明示的にすべきでしょ
Perl の良さである「だれでもできる」を殺していると思う
0710root▲ ★
垢版 |
NGNG
>>708
あぁ、そういう意味ですか。

つまり、

if(&mumumuIsIP4AirEdgePhone($raddr)) {
なんちゃら;
}

じゃなくて、

if($FOX->{AIREDGECIDR}->find($raddr)) {
なんちゃら;
}

ていいんじゃないかってゆうことですね。
確かにそうですが、どっちが作法としていいのか、っていう話なのかなと。
0711root▲ ★
垢版 |
NGNG
>>709
> でも return は明示的にすべきでしょ

私も、そう思っているです。
で、>>698 と。

で、おじさんに合わせているというよりか、
今主にいじっている人の流儀に合わせるみたいなかんじですね。

私が間違って中身をいじってしまうぐらいですから、それなりにきれいになっているわけですが、
今でも「たぶんこことこことここは、書いた人が違うんだろうなぁ」みたいなところは、
たくさんたくさんあるようです。
0713FOX ★
垢版 |
2005/06/24(金) 14:42:54ID:???0
>Perlの世界では暗黙に最後の評価値がretrurn値になるので、

これをやられると、みんなが辛いということなんですが、
0714FOX ★
垢版 |
2005/06/24(金) 14:43:33ID:???0
>>710
それは前者がよいような
0715root▲ ★
垢版 |
NGNG
>>714
…と私もおもたので、今のは前者になっているです。

で、難民のほうで頼んだ例のPerlモジュール入れていただけると、qb6のを配ることができるですね。
(qb6ではqw()でローカルに読ませてテストしたので、今配ると他で動かないです)
0716動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/24(金) 15:05:13ID:M5iaI72S0
>>710
そゆことです。
何やってるのか関数名で見通したい、というのなら前者って感じですかね。

全体構造が分からないんで的違いな話になる可能性大ですが、どちらにせよ
$FOX->{AIREDGECIDR}は同じファイル内でだけ呼ぶようにしたらいいんじゃ
ないかなと思うです。その結果が前者なんであれば前者がベターですね。
0717root▲ ★
垢版 |
NGNG
>>716
なるほどです。
この辺の作法はプログラミング言語が違っても、
そんなに変わるところじゃないですしね。

「その結果」ということで、問題ないです。
0719サザン ★
垢版 |
NGNG
qb6 の bbs.cgi は全サーバに配っちゃダメなんですよね?
0720root▲ ★
垢版 |
NGNG
>>719
あ、今はまだだめです。

配る必要、あるですか?
あるなら、緊急に対応することになるです。
0722root▲ ★
垢版 |
NGNG
>>721
おぉ、了解です。

で、私からの愛をメールで送っておいたです。
よろしければ、受け取っていただけると。
0724root▲ ★
垢版 |
NGNG
そう言っていただけると、信じてました。

愛があれば、年の差なんて。
0725サザン ★
垢版 |
NGNG
今はギクシャクしてますけど、少しずつ仲良くなっていきます、、



えぇ、サーバとですよ。
0732動け動けウゴウゴ2ちゃんねる
垢版 |
2005/06/25(土) 14:13:26ID:984XqAIa0
すんげーどうでもいいけど、
foreach (@airedgecidr){
  $FOX->{AIREDGECIDR}->add($_);
}
こうすると0.01マイクロ秒くらい速くなったり。。
0736root▲ ★
垢版 |
NGNG
>>735
こんどはうまくいっているみたい。

0 O o P 関連でもし誤判定があったら、ここに報告よろしくです。
0738◆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;
}
----------------------------------------------------------------------
0739◆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 ソケットキューがあふれてリクエストが破棄されているとかでない限り
タイムアウトになっても処理自体は行われますが.
0744 ◆TWARamEjuA
垢版 |
NGNG
でぇもん君かぁ。。。
うん。おそらく最終形態かなぁ。。。
0745◆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;
}
0748動け動けウゴウゴ2ちゃんねる
垢版 |
2005/07/02(土) 11:59:59ID:TINNy+yho
ID末尾の識別子について
WILLCOMの「端末だけ」を識別することに何の意味があるのでしょう?("ポン厨"とか言われるのですが)
味/京ポンのような接続環境は、ダイアルアップ接続なPDA/モバイルなどもそうでしょう。
そして、コピペに不自由なWILLCOM端末を使うより、PDA/モバイルなどを使う方が悪質な荒らしが可能と思います。
繋ぐたびにIDが変わるISPのくくりで識別するというなら、まだ納得できます。
要はprinならセンターと分ける必要はなくて、同じ識別をしたらということです。dionとかも。
0749root▲ ★
垢版 |
NGNG
>>748
技術的には bbs.cgi での「特別扱い具合」を示しているですね。
つまり、bbs.cgi 内で他の端末よりも手厚く取り扱っているわけです。

で、私自身も京ぽん使いで、o が出る板(こことか)にちょくちょく書いているですが、
あんまりそうゆうこと言われたことないです。
0750動け動けウゴウゴ2ちゃんねる
垢版 |
2005/07/02(土) 18:39:02ID:8PRXTeyH0
>>749
あなたは名無しでレスしないから,気にならないのは当たり前です.
ここが匿名掲示板だということをもう少し考慮していただけると嬉しい.
0751動け動けウゴウゴ2ちゃんねる
垢版 |
2005/07/02(土) 19:08:59ID:0Im+zYFu0
>>750
確かにな

荒らし&言い掛かりを付けたい奴には、どんなしょーもない手掛かりでも
鬼の首を取ったものだからな > 0 O o P の識別
0753動け動けウゴウゴ2ちゃんねる
垢版 |
2005/07/02(土) 19:30:55ID:8UGV20P00
>システム用件と業務用件を切り分け出来ていない見本で砂

そうですねっ

* 挑発には乗らない。挑発するような人の意見は、たいてい誰も重要視しません。
0755748
垢版 |
2005/07/02(土) 22:09:17ID:KCuDl3J/o
>>749
あーなるほど・・・、味ポンのブラウザがリファラ吐かないってやつですか。

しかし、京ポンはリファラ吐くにもかかわらず、味ポンルートで処理されるようになってしまったのですね。
なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
そのためリファラを無視するようにしたんじゃなかったですかね。なんか本末転倒…。
0756root▲ ★
垢版 |
2005/07/03(日) 00:18:13ID:???0
>>750
そうか。

でも、それで著しく不公平になったとは思えないんで
(AIR-EDGE PHONEユーザが日本全体で1000人しかいないとかだったら、
ひょっとすると不公平なのかもかもだけど)、
変える気は今のところないです。すんません。
0757root▲ ★
垢版 |
NGNG
>>755
で、2ちゃんねるではだいぶ前からリファラの有無のチェックはしているので
(少なくとも味ぽんや京ぽんが出るのよりも前から)、

なので、
> なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
> そのためリファラを無視するようにしたんじゃなかったですかね。

というのは正確ではなくて、

味ぽんからの書き込みに対応するために、AIR-EDGE PHONEセンターからの
アクセスではリファラを無視するようにした

というのが、たぶん正しいと思われるです。

当時、不動楽さん(= クラシックさん)がそのように対応したはず。
0758755: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-

京ポンに関しては必要以上に面倒なことをやってる気がするですよ。
0759root▲ ★
垢版 |
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
0760root▲ ★
垢版 |
NGNG
(以下余談)

そういえば、AIR-EDGE PHONEでできるゲームか何かで、
識別情報を送ってこないのを悪用(?)して、
1台の電話機で複数個参加するとかやっている人が横行しているとか、いないとか。

次の京ぽんでは識別情報を送るようになってほしいなぁと、ゆっておこう。
0762名無し募集中。。。
垢版 |
2005/07/06(水) 23:13:29ID:0YvouOu40
なんでわざわざ何で書き込んでるとかわかるようにするの
0763動け動けウゴウゴ2ちゃんねる
垢版 |
2005/07/07(木) 00:14:45ID:nVkQbPw9P
prin規制が掛かりました。今回の原因はPC用のprinが原因の様です。
AIR-EDGEセンター接続かどうかが判別できるようなった今、センター接続を規制の対象から外して頂くことはできないものでしょうか?
0765ちょろ ★
垢版 |
2005/07/12(火) 19:01:24ID:???0
再確認でーす

IsKoukoku は bbspinkや2ch のbananaサーバで
するーする事は絶対にない

あってますか?
0767だんしゃくねこ
垢版 |
2005/07/12(火) 19:06:42ID:SdZyUpa80
│_A
│・−・) >>522-561を見る限り、
↓ ⊂)  LAが高かったらIsKoukokuスルーはどの鯖にも入ってそうっすね
0768root▲ ★
垢版 |
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
0769root▲ ★
垢版 |
NGNG
ということで、>>765 の結論ですが、
2ちゃんねる/PINKちゃんねるのいずれも共通に、

1) 負荷が上がって、サーバが苦しくなってきた場合、
自動的にIsKoukokuをするーするようになる

2) 負荷が下がると、順次船が入れ替わっていくことにより
自動的にIsKoukokuをするーしなくなる

という動作をします。

これにより特にサーバに書き込み集中で負荷がかかった時に
「手でbbs.cgiやread.cgiを止めて冷やさなければいけない」とか、
「bbs.cgiの爆発時にbbs.cgiの処理が転んでしまう」
といったことの回数が、減ったように思います。

animeサーバもこれともうひとつの安全装置を入れてから、
例の「土曜夕方のどーん」にも、耐えられるようになりました。
0770root▲ ★
垢版 |
NGNG
ということで、以上です。

なお、もうひとつの安全装置は
・LAが閾値を超えたら、index.html / subback.html の更新をある程度さぼる

となっているです。
0771ちょろ ★
垢版 |
2005/07/12(火) 20:36:20ID:???0
広告爆撃が増加してきたんで
ISKoukoku はスキップしないでくださいー

したとしても、live系だけかと、
2ch&bbspink の banana サーバは絶対にスキップしないでください
0772root▲ ★
垢版 |
NGNG
>>771
了解です。

これから、LAでのIsKoukoku閾値チェックの部分をはずします。 in bbs.cgi
ex11 (news4vip) は、どうしましょうか。
0773ちょろ ★
垢版 |
2005/07/12(火) 20:39:08ID:???0
ex11 はどっちでもいいような、
0774root▲ ★
垢版 |
NGNG
ただし、animeサーバでのLA=20でのIsKoukokuスキップだけは、
従来どおりとさせていただきます。

これが働くのは、1週間のうちの5分だけのはずです。
0776ちょろ ★
垢版 |
2005/07/12(火) 20:43:12ID:???0
あと 通称形態バーボンの早期投入が望まれています。 from 規制議論板
0777ちょろ ★
垢版 |
2005/07/12(火) 20:43:24ID:???0
携帯だった
0778root▲ ★
垢版 |
NGNG
>>776-777
若者の動向を、どうこうしないといけないのかしら。

# 大学生は、そろそろしけーんのシーズンかも。
0779root▲ ★
垢版 |
NGNG
BBS.CGI - 2005/07/12

- banana サーバではLAに関係なく、常にIsKoukokuを実行
- ただし「特別サーバ」に指定したらするー
0780ちょろ ★
垢版 |
2005/07/12(火) 21:12:30ID:???0
game10
game9
etc4
life7
hobby7
もスルーして欲しくないです。
0781root▲ ★
垢版 |
NGNG
携帯Rock54ってのも、ありなのかな。
自動バーボンというか、自動BBMか。
0782root▲ ★
垢版 |
NGNG
>>780
了解です。

tiger では LA=20 で発動なので運良くこれまで一度も起こっていませんが、
ex/anime/news以外は、bananaと同じ処理にしておきます。
0783root▲ ★
垢版 |
NGNG
でもetc4は、電車男の時がちょっぴり心配かもね。
ま、いっか。その時はその時ということで。
0785ちょろ ★
垢版 |
2005/07/12(火) 21:24:48ID:???0
うーん
基本的には、、、全部onにして欲しいんだが、

なぜかというと、on/off は私たちには通常わからないので
効いているのか/いないのか
設定したのが あっているのか/あっていないのか
等がわからないのだ、「あぁ スルーしているから仕方ないんだよね」
で話しは終わってしまって、だれもそれ以上は深く考えないで
結局効いていないという風になってしまうのだ、

liveとex11以外は効かせて欲しいです
(anime は shar だかを ex11 に移転すればいいのかな?)

規制情報板まわりのコストがはげしく上昇しています。
0789root▲ ★
垢版 |
NGNG
・bananaサーバでは必ず実行
・他の該当するサーバ(live系とex11)では必ず実行しない
・それ以外は必ず実行

にしました。

>>788
ex10とかex11のように常時投稿数が多いサーバは、
たまに自動的に止まる(安全装置が働く)ようです。
理由は、、、ううむ。

live系ですらこのような状況で止まることはないようなので、
単なる投稿数ではない、何か別の理由を疑い始めています。
0790root▲ ★
垢版 |
NGNG
・bananaサーバでは必ず実行
・他のサーバ(tiger/cobra)のうち該当するサーバ(live系とex11)では実行しない
・それ以外のサーバは必ず実行

にしました。
IsKoukoku周りでLAで動的に判定する部分のコードは、全てコメントアウトしました。

# いったん、オフライン。
0792ちょろ ★
垢版 |
2005/07/12(火) 21:42:37ID:???0
はーい

今晩 bbs.cgi さわります
samba値を SETTING.TXT で指定
0793桶屋
垢版 |
2005/07/12(火) 21:46:04ID:aFhCYHbJ0
おおっ、ついに!
0795 ◆TWARamEjuA
垢版 |
NGNG
>>794
F22のように、一元管理をすると楽かもね♪
各鯖にそれぞれログオンするよりも、どこかの鯖で全板を管理しちゃうとかとか。

でも700板以上あるのよねぇ(汗)@SETTING.TXTの数
0796桶屋
垢版 |
2005/07/12(火) 22:07:50ID:aFhCYHbJ0
ん?
変更人さんのお仕事を、サーバの管理者に一元して移してしまうということですか?
0799P221119009124.ppp.prin.ne.jp
垢版 |
2005/07/12(火) 22:54:19ID:BoWTin/Io
というわけで、携帯バーボンは若者にがんがってもらっちゃうてして、
私は凄腕さんと、Rock54の携帯用拡張、名付けてRock54Mをやることにしよう。

で、Rock54Mからは将来的に、自動的にBBMに突っ込んでしまうようにしよう。
0802root▲ ★
垢版 |
NGNG
Rock54Mはbanana238に作ることになるわけだけど(今のRock54に同居)、
その作業は、システムの検査が終わった後で。

基本的には、今まで「無駄弾」を撃っていた
携帯からの広告投入に対応する器を作って、そこに入れ込むってかんじで。
0803root▲ ★
垢版 |
NGNG
で、banana238のシステムそのものは健康であることが判明したため、
こっちは、たんたんと。
0804root▲ ★
垢版 |
NGNG
で、ネットワーク的には、
今までBBXに行っていた携帯からの広告投げの弾(無駄弾)を、
BBN(仮称)にとばすようにするだけなので、238の負荷は変化ないです。

あとは、単独スレ立ててそっちでやるかな。
0811動け動けウゴウゴ2ちゃんねる
垢版 |
2005/07/17(日) 01:43:54ID:MavNy2ze0
BBSが止まってますと表示されますが、何が原因でしょうか?
0813動け動けウゴウゴ2ちゃんねる
垢版 |
2005/07/17(日) 01:46:24ID:MavNy2ze0
ありがおう
0814動け動けウゴウゴ2ちゃんねる
垢版 |
2005/07/18(月) 21:40:37ID:Cy7spHeg0
ここはレベルが高いインターネッツですね
0815動け動けウゴウゴ2ちゃんねる
垢版 |
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";
0816一般民
垢版 |
2005/07/21(木) 15:01:46ID:Jxz++eR80
お忙しいところすみません、一般民としてなのですが…
Over1000したときに出る『Over 1000 Thread』
に、日付と時刻を入れるのがよいかと思ったのですが。
普通のレスと同じ様な要領でも結構ですし。
0827動け動けウゴウゴ2ちゃんねる
垢版 |
2005/07/21(木) 17:28:05ID:eGLeaMlD0
>最終時刻の件

1000未到達スレとの区別をしないといけなくなるし、
1001連続で終わるケースを考えるとさらに複雑に。。。

よって実現させるならbbs.cgiをいじる方がいいと思う
0828動け動けウゴウゴ2ちゃんねる
垢版 |
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
とかあるんだがポータビリティ考えると使わない方が良いのかな?
0831 ◆TWARamEjuA
垢版 |
NGNG
>>815
→print "Content-type: text/html\n\n";
print "Content-type: text/plain\n\n";
ですね♪
0835動け動けウゴウゴ2ちゃんねる
垢版 |
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
0836◆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);
0838動け動けウゴウゴ2ちゃんねる
垢版 |
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 側に移管すると,
それも解決しますけどね.
0841root▲ ★
垢版 |
NGNG
>>840
んと、携帯の顔文字とかSJISの範囲外の文字とかは、どうするのがよいかしら。
あ、bbsdさんがSETTING.TXTのUNICODEのやつを読んで、セットされていたら
はじくのをスキップすればいいのかな。
0842◆cZfSunOs.U
垢版 |
2005/08/10(水) 01:57:00ID:boqmM/Zu0
>>841 弾くのは Shift JIS のバイトシーケンスとして矛盾がある場合なので
(実際上は FreeBSD のロケール / mbstowcs() の実装に依存しますが),
例えば &#xxxx; の形式(実体参照)であれば無問題ですね.
0843root▲ ★
垢版 |
NGNG
>>842
なるほどです。

んじゃ、丸付き数字とかののたんの口とかはイカンのではないかしら。
0845◆cZfSunOs.U
垢版 |
2005/08/10(水) 08:14:49ID:boqmM/Zu0
>>843 ん〜と......細かい部分は OS のロケール実装に依存するかとは思いますが,
機種依存文字か否かということとバイトシーケンスとして正当か不当かというのは
必ずしも同一ではないですね.機種依存文字というのはベンダ定義文字や
ユーザ定義文字に該当するのでしょうが,その部分は単に opaque に扱うだけで,
個々のコードがどんな文字を表しているかまでは関知しないので.
不正バイトシーケンスというのは例えば Shift JIS の1バイト目で
文字列が途切れているなどの場合ですが,機種依存文字であっても
Shift JIS の1バイト目・2バイト目のペアの並びとして矛盾がなければ,
それは不正バイトシーケンスということにはならないです.
0846root▲ ★
垢版 |
NGNG
>>845
なるほど、確かにそうですね。
SJISの「ルール」で合格であれば大丈夫という実装も、ありえるです。

帰国後落ち着いたらいろいろと動かし始める皮算用なので、その時にでも。
0848動け動けウゴウゴ2ちゃんねる
垢版 |
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.( ̄ー ̄)ニヤリッ
と出てる人はその書き込みを諦めましょう
諦めず連投しているとアク禁等になります
0849◆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
0850動け動けウゴウゴ2ちゃんねる
垢版 |
2005/08/17(水) 11:37:40ID:pNvdhSzi0
>652 >666等を読むと、AIR-EDGE PHONEセンターのID識別子導入は、
荒らし調査のための暫定的な措置のように感じるんですが、外すことはないですか?
その識別子導入の元ネタであろうと思われる、
AIR-EDGE PHONEセンターとその他のPRINの個別規制の方はどうでしょうか?

あと、携帯関連板での荒らしへの予防策として、
携帯キャリア(通信方式やIP接続サービス)別の識別子を携帯関連4板への導入を提案します。
そのときはAIR-EDGE PHONEセンターも区別されるべきですね。
0851動け動けウゴウゴ2ちゃんねる
垢版 |
2005/08/17(水) 16:40:02ID:28w04LSko
>>850
携帯からの荒らしだと(運営が)分かりやすくするための識別ですよ。
荒らし「予防」のための識別じゃないと思いますがね。
0852動け動けウゴウゴ2ちゃんねる
垢版 |
2005/08/17(水) 16:58:21ID:roDSAVCk0
確かキャリア識別はする必要無いと言明していたな。
それが分かった所で規制する側には何もメリットは無いし、抑止効果のための識別じゃないからね。
パソコンのOSを識別するようなもん。
0853動け動けウゴウゴ2ちゃんねる
垢版 |
2005/08/17(水) 18:58:42ID:ix6djCUE0
0とPは荒らし対策、oはbbs.cgi内で一寸特殊な処理をしているので
rootさんが参考に入れてるんじゃなかったっけ
0855動け動けウゴウゴ2ちゃんねる
垢版 |
2005/08/31(水) 16:17:34ID:ERQCF2M70
?
0856動け動けウゴウゴ2ちゃんねる
垢版 |
2005/09/06(火) 12:47:53ID:muLUKym50
AIR-EDGE PHONEユーザーだけど、早くID末尾のoを外して欲しい。
0857動け動けウゴウゴ2ちゃんねる
垢版 |
2005/09/06(火) 12:59:34ID:THbn48S/0
221
0858root▲ ★
垢版 |
2005/09/09(金) 01:42:43ID:???0
BBS.CGI - 2005/09/09

222.13.35.0/24 だったら Client_IP: を調べて、あればログに残す。
これで、Willcomへの通報は可能になったはず。
0859ちょろ ★
垢版 |
2005/09/09(金) 01:44:25ID:???0
Client_IP をログに残すなら
判定しなくてもいいのでは?
0860root▲ ★
垢版 |
2005/09/09(金) 01:52:13ID:???0
>>859
最初はそう思ってたんですが、どうもGoogleしてみると、Client_IP: = HTTP_CLIENT_IP は、
非常に簡単に偽装できるらしいんですよ。

で「ここから来るHTTP_CLIENT_IPだけは信用する」っていうふうにしたと。
判定を増やすコストは、例のCIDRのパッケージを使っているので、
現在のbbs.cgiの合計コストから考えて、十分に小さいと判断したです。
0861 ◆MUMUMUhnYI
垢版 |
2005/09/09(金) 01:57:01ID:6Qh68yEr0
で、以下余談なので帽子脱ごうと。

私が今回対応している理由のひとつは、自分も奥様もAIR-EDGE PHONEというか、
prinユーザだったりするからだったりします。

ppp.prin.ne.jpを永久全規制とかされたら奥様に何て言われるだろうか、、、
と思うと、書けないperlも書けたりするようです。
0863名無しさん@そうだ選挙に行こう
垢版 |
2005/09/10(土) 17:54:49ID:Oz0EJ4RnO
やっぱり自分に都合のいいことはやるんだね。
グローバルIPをもってない人はもってください、と同じで、全規制されたら違う手段を使ってください、だろうに。
0866名無しさん@そうだ選挙に行こう
垢版 |
2005/09/10(土) 18:09:36ID:r7NgOcl/0
Client_IPをログに残すだけなら判定は後回しでもいいんじゃ?と思った
(とりあえず記録しといて問題が起きたときに信用できるか調べる)
0870 ◆MUMUMUhnYI
垢版 |
2005/09/12(月) 13:24:17ID:z6uNMUY90
>>867
私の名義の2枚のクレカで1つずつ買って、そのうちのひとつを奥様が占有使用しているです。
(奥様はクレカ作ってないんで)
0873動け動けウゴウゴ2ちゃんねる
垢版 |
2005/09/12(月) 21:48:56ID:35vELVZ60
叩きたいわけじゃないよ
何かあった時保障がないんじゃないかとちょっと心配しただけ
今は本人確認うるさいし
本人が良いならそれでいいんだけど
0874動け動けウゴウゴ2ちゃんねる
垢版 |
2005/09/12(月) 23:02:56ID:az9VaDrT0
>本人が良いならそれでいいんだけど

余計なお世話と分かっているのに続けるのは粘着への第一歩かと。
0877動け動けウゴウゴ2ちゃんねる
垢版 |
2005/09/17(土) 12:48:38ID:VBcpY5C10
>>875
それなんてきみまろ?
0878動け動けウゴウゴ2ちゃんねる
垢版 |
2005/09/21(水) 22:02:20ID:fVZ+dGIa0
>>864
必要はないが利用者が騒ぐだけ
0881動け動けウゴウゴ2ちゃんねる
垢版 |
2005/09/22(木) 17:38:23ID:8luWl9mk0
う?
0882動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/09(日) 23:46:12ID:o192VLCT0
よ?
0884root▲ ★
垢版 |
2005/10/21(金) 20:42:04ID:???0
BBS.CGI - 2005/10/21

live16/20/22 を対象に、緊急時に発動するしかけを投入。
0885root▲ ★
垢版 |
2005/10/21(金) 20:44:05ID:???0
しかけを投入 => しかけの暫定版をとりあえず投入。>>884
0887動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 14:31:01ID:b+V7uzLR0
「書きこみ&クッキー確認」の画面で、

[上記全てを承諾して書き込む]を押さずに、ブラウザの「戻る」機能で戻った場合、
次回以降、確認画面が出ずに、いきなり書き込めてしまいます。

このバグを悪用して、
俺は2chに書き込んではいるが、投稿確認に書かれた事項は承諾していない
と主張している困ったさんがいます。

簡単に直せるなら、直してもらえないでしょうか。
(そうすると、その人は書き込まなくなるでしょうから、
その人によるスレの話題の激しい脱線・罵り合いから、
スレが救われます。)
0889root▲ ★
垢版 |
2005/10/24(月) 14:45:28ID:???0
>>887
この話は前から出ているですね。

クッキー使っているわけですが、
*技術的に*、どうするのがいいんだべか。
0890◆SANUKI/VII
垢版 |
NGNG
[上記すべてを承諾して書き込む]じゃなくて、
ワンクリみたいに強制的に承諾させちゃえばいいんじゃない?w
0891 ◆TWARamEjuA
垢版 |
NGNG
>>889
ポチっとな♪する前に食わせちゃっているからかな。
ポチっとな♪したあとに食べさせれば。。。
0892674○part18 ◆IiIGjn5YT2
垢版 |
2005/10/24(月) 15:07:16ID:6jlOsF770
専ブラ側でも対応が必要になってきますね、この問題。

cookieがセットされていないなら承諾画面を出してformに
「bbs.cgiしか知らないテンポラリキー\0名前欄\0メールアドレス欄\0本文」
のハッシュ(md5かなにか?)をhiddenで入れておく。
でもって、実際の書き込み時にcookieをセットする、という形にならざるをえないのではないかと。
コスト削減のためにID算出と同じ種を使っても良いかも。
0893674●part18 ◆IiIGjn5YT2
垢版 |
2005/10/24(月) 15:09:44ID:6jlOsF770
あ、リモホを入れていないのは携帯など毎回代わってしまうところを考慮に入れているからです。
0894動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 15:36:15ID:Uzh/6H5L0
対応策として・・・

・クッキーに承諾したフラグを入れる入れないの問題
・カキコボタンにtarget=newを仕込むようにして新しい開くようにしてブラウザでバックできなくする

なんかがおもいつきでかけますが・・・どうでしょう>rootさん
0896動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 15:38:43ID:Uzh/6H5L0
>>894
あっと、これの後者はw3mとかのテキストブラウザの場合には使えませんね・・・

テキストブラウザでどれだけカキコがあるかにもよると思いますが、
かなり多いようであればnewWindow案は棄却だと思います。
0897674●part18 ◆IiIGjn5YT2
垢版 |
2005/10/24(月) 15:41:06ID:6jlOsF770
>>894
二番目は意味がないです。
このケースではブラウザのバックボタンがつかえるかどうかはさしたる意味を持ちません。
それだけなら元のwindowでもう一度書き込みボタンを押せば突破できてしまいます。
0899動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 16:27:35ID:2Gpt3UV80
>>889
「この画面を表示させた後の書き込みは、すべて上記内容を承諾したものとみなします。」の
一文でも書き加えればいいと思われ。
で、そうするとボタンのキャプションがくどいから、ボタンは「書き込む」だけに変更。

大人の世界の内容なんだからシステムで解決できないなら
大人らしく承諾させる内容だけで勝負を。
0900 ◆IiIGjn5YT2
垢版 |
2005/10/24(月) 16:49:22ID:6jlOsF770
>>899
ゴネ厨がそれで納得するかどうかは難しいと思います。
法的に無効な契約とされかねませんし。
0901動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 17:04:56ID:2Gpt3UV80
ボタンを押させる事が重要なのか。
それなら表示されるのと同じ内容をどこかにまとめておいて、
初回は強制表示で、2回目以降は表示させなくする判定をread.cgiで読み取って
read.cgiの書き込みボタンのキャプションを「○○を承諾して書き込み」に置き換えて、
承諾させる内容をまとめたページへの○○ってリンクを表示させるとか。
専用ブラウザは使うこと自体承諾したようなものだと思うし。
0902動け動けウゴウゴ2ちゃんねる
垢版 |
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の処理
0903 ◆IiIGjn5YT2
垢版 |
2005/10/24(月) 17:40:19ID:6jlOsF770
>>902
手元に承諾form同等の機能だけもったform置いたら突破できますよ、それ。
0908動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 21:19:20ID:b+V7uzLR0
承諾したくない困った人は、これを改良したとしても、
前回は承諾フォームが出て承諾して書き込んだが、
今回は承諾フォームが出なかったので、表示されもしない内容に承諾できるわけがない、承諾していない
と言い出すと思う。

書き込む度に、確認・承諾フォームを表示しないようにするのは、なぜでしょう。
転送量が厳しいから、その節約のためでしょうか。
0909動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 22:07:15ID:qWPT8NKZ0
つまりクッキーを持ってると表示されない・書き込めるということなら、確認画面を表示したことを
クッキーで確認していることとクッキーとともに書き込むデータをそぅしんしてきたら
自動的に確認画面の内容を承諾したとみなすと確認画面に書いてしまえばいいかも。
0910動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 22:35:14ID:+k9SoKLc0
つーかシステム側で対応しなくても http://info.2ch.net/guide/ あたりに

2chは以下の条件を承諾した方のみ書き込み可能です。
・投稿者は、投稿に関して発生する責任が全て投稿者に帰すことを承諾します。
・投稿者は、話題と無関係な広告の投稿に関して、相応の費用を支払うことを承諾します

こんな感じの項目を作ればいいんじゃないの?
0912動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 23:05:11ID:JW5bc+/z0
【きちんと】設置された承諾画面を【わざわざ】回避する措置を講じる者は
その時点で、それ相応の責任を負うと言わざるを得ないかと 何というか
0913動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/24(月) 23:32:12ID:g/PC7NDH0
一つの方法は、承諾ボタンと同時に、拒否ボタンを作っておくことかな
そして「拒否ボタンを押す以外の否認の方法はありません」とでも書く。

いずれにせよ、言い逃れができない形にしないと、たとえば2ch発の
書籍を作ったりする際にいろいろ問題が発生してしまいそうな気もする。
0916動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/25(火) 08:01:32ID:x9TmyNgO0
通常の利用ではありえない方法で、規約に同意したかのような
データを送信して、そうであるから規約には同意していないのだ、
というのが通用するかどうかのな。
掲示板での議論ではなく、裁判で。

だから、まあ、建前を通していれば、不利になる事態は
そうは無いかな、とか。

そういった点で、通常の利用方法で、承諾しなくても承諾と
見なされている現状の改善が議題なわけだね。
0917動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/25(火) 08:16:28ID:x9TmyNgO0
承諾を回避して「そんな規約シラネ」というなら、拒否ボタンが
有ろうが無かろうが「そんな規約シラネ」なだけじゃん。
0918動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/25(火) 08:23:43ID:PSbrr/As0
承諾メッセージは送信時に明示されるからいいとして、
裁判だと、「不具合があるのを知っていたにも関わらず対策をとらなかった」
式の判断で負けちゃう場合もありますよ。(心配性)

無理でなければ、なんらかの対策をとってほしいです。
0920動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/25(火) 08:36:46ID:x9TmyNgO0
荒らし対策と規約承諾を別々のクッキーで扱うのが面倒なら、
>>910をしつつ、投稿ボタンを全て「規約を承諾して書き込む」
にして、
もし ($FORM{'submit'} が "承諾云々" ではない) なら
{DispError("ERROR!","規約を承諾しないと投稿できません!");}
とか

専ブラが全滅だけどね。対応されるまで。
0921動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/25(火) 08:39:35ID:PSbrr/As0
>>919
2ちゃんねる側が原告ならそれはありだけど、
被告側ではその意見はあまり意味がないな。

裁判ネタはこれ以上はスレ違い。
0922動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/25(火) 09:19:32ID:8gkXZmw80
まあ、最近インスパイアのこともあってぴりぴりしてるから
これを機に徹底的に話し合って詰めた方がいいかもね。
0923動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/25(火) 21:03:44ID:Y9ML3vBs0
>>920
専用ブラウザに対しては、UserAgentを見て従来通りの動作にする、というのはどうでしょう。
それを恒久策にするか、移行が済むまでにするかは、考えないといけないけど。
0924root▲ ★
垢版 |
2005/10/25(火) 21:25:44ID:???0
というか、あんなに防御していたのに、
スレッドが80超えちゃってたのがなぁ。

たぶんほとんど同時に何十本とスレ立て要求が来て、一気に追い込まれたんだと思われ。

何か、工夫が必要ですね。
スレ立て処理を実行中の船は、スレ立て処理をしないようにするとか。

グローバル変数でできるような気がするので、後で、考えてみよう。
0926root▲ ★
垢版 |
2005/10/26(水) 11:45:03ID:???0
うーむ、同じスレッドキーのスレができないようにするところって、
激しくうーむなような。
0928 ◆IiIGjn5YT2
垢版 |
2005/10/26(水) 13:01:14ID:tPRUqC8Y0
安易なロック方式として、スレを立てるところで
どこか(板単位で分離が好ましい?)にunixtime%閾値をファイル名として/dev/nullからでもsymlinkを貼ってみて、
失敗したらスレたて拒否。成功したら建てる。
ガベージコレクトのタイミングで一番新しいヤツ以外を削除するようにすればおっけ。
マルチスレッド/タスクを考慮するならこれが一番コストがかからないと思いますがどうです?
閾値はスレたての最大間隔ね。最小1秒になることもあるけど2スレ連続ならまぁ許容範囲内ではないかと。
0929動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/26(水) 13:03:24ID:BcSDlqwC0
ん?
Perlでのまともなlockの方法って、2年ほど前の再開発スレでrootさんが話題にしてましたよね。
そのレベルは脱した上で「うーむ」なことに成っているのだと解釈。
0930動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/26(水) 13:24:34ID:s6PZNUUX0
ほぼ同時にスレ立て要求→同時に数十本もスレ立っちゃった→スレッドキーみんな同じだ→しかも今夜が山だ

こんなところ?
0931root▲ ★
垢版 |
2005/10/26(水) 13:29:31ID:???0
今の bbs.cgi は、同じスレッドキーのやつが立たないようにするコードが
ちゃんと入っているです。

ようは、その実装方法がうーむだと。
0932root▲ ★
垢版 |
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 が既に存在してたら、無限ループに陥るんではないかしら。
0933stream ◆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
排他処理をしていないのが原因、というわけではないので大丈夫かと思うです。
==========================================
0934root▲ ★
垢版 |
2005/10/26(水) 14:19:31ID:???0
それについて書こうと思ったら、>>933 が。

それは、これですね。
上記よりも後、最後ところでやっているです。

if($GB->{FORM}->{'subject'} ne "" && -e $DATAFILE){
&DispError2($GB,"ERROR!","ERROR:板飛びそうなので、またの機会にどうぞ。。。");
}

ということで、それはクラシックさんが入れたところではないと思います。
昔からあったところだと思う。

*以下推測*

たぶん、昔は do 〜 while のところでもtime; していたんでしょう。
それなら、1秒経てば条件が変わります(ループを抜けるかは別)。
0935root▲ ★
垢版 |
2005/10/26(水) 14:20:57ID:???0
コピペみすった。

コメントつきなので、ほぼ間違いないです。

#==================================================
# 板飛び回避策
#==================================================
if($GB->{FORM}->{'subject'} ne "" && -e $DATAFILE){
&DispError2($GB,"ERROR!","ERROR:板飛びそうなので、またの機会にどうぞ。。。");
}
0936root▲ ★
垢版 |
2005/10/26(水) 14:39:15ID:???0
で、ここの制御を変えようと思うわけです。
安易に、

・live系は既にあったらごめんなさい
・他はスレッドキーを+1しながら、最大3回ぐらい試してみる

ってことにしようかなと。
0937root▲ ★
垢版 |
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謎の暴走
・スレ立て混雑時にサーバ劇重

が、少しでも改善されるといいかなと。
0938 ◆IiIGjn5YT2
垢版 |
2005/10/26(水) 16:27:27ID:tPRUqC8Y0
スレッドキーは毎秒かわるんでしたっけ、でしたらこんなのはどうですか?

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. スレたて処理
0939root▲ ★
垢版 |
2005/10/26(水) 16:30:25ID:???0
>>938
最初はそういうのを考えていたんですが、
1秒とか0.5秒とか待つのが、いやだったです。

スレッドキーは所詮本当の時間とあっている必要はないので、
・live系はごめんなさい
・通常系は 0 +1 +2 を試して、だめならごめんなさい

ぐらいのいい加減さにして、一刻も早くbbs.cgiに終わっていただくことにしました。
0940 ◆IiIGjn5YT2
垢版 |
2005/10/26(水) 16:45:26ID:tPRUqC8Y0
それだと、多台数とかからスレたて攻撃が同時に来たときにやっぱり被害が起こることは避けれないと思いますがどうでしょう。
0942動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/26(水) 16:51:55ID:/5B2u2B30
メモリ上に前回のスレキーを持たせたファイルを置いてそれを参照
とかは無理だろうしなぁ…
(素人案だし毎回読み込みとか(ry)
0943root▲ ★
垢版 |
2005/10/26(水) 17:00:02ID:???0
>>940
if ( ! -e datファイル ) {
return それでOKよん;
} elsif ( ! live系 ) {
for ( $i = 0; $i < $maxtries; $i++) {
スレッドキーを一つずつ増やして存在チェックし、なかったやつを
return これ使ってちょ;
}
&error(ごめんなさい);

って、なっています。

というわけでおっしゃるとおり、タイミングにより突破もありえます。

その場合は、>>935 でひっかかると。
でもそれにしても、ほんとうは完璧じゃないです。

雪だるま作戦では、このへんはバックエンドプロセスに依頼する形になるので、
その時に、きちんと対応することになるかなと。
0944root▲ ★
垢版 |
2005/10/26(水) 17:03:08ID:???0
てなわけで、-e でdatファイルの存在をチェックしていたり、
924の処理のところみたいに utime でdatのタイムスタンプ更新したりすることは
雪だるま環境ではそのままではむりぽなわけで、
そういったAPIを、入れ込んでほしいということなわけです。

一つ海外出張がキャンセルになってちょっと落ち着いたので、
このへんを、ぼちぼちあっちですすめようかなと。> SunOSさん
0945root▲ ★
垢版 |
2005/10/26(水) 19:05:46ID:???0
で、>>937 により「ごめんなさいリミッター第二弾」が実装されました。
どのくらい、発動しているんだろうか。
0946◆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 のインクリメントが発生するとやはりずれが生じることに
なるので,そこの調整をする仕組みが必要になりますかね.
0947◆cZfSunOs.U
垢版 |
2005/10/26(水) 22:37:27ID:ICyD85HJ0
単純に,bbsd 側ではリトライせず,key をインクリメントした上でのリトライは
bbs.cgi 側に任せるという形でもいいんですかね.同じ key を持つ dat が
存在した場合,bbsd は EEXIST に相当するエラーメッセージを返すことになるんで.
0948root▲ ★
垢版 |
NGNG
>>946-947
なるほど、なるほど。

bbsdについては、そのうちoperateにスレ立てるかも。
(いろんな意味でhtml化されてほしいし)
0949root▲ ★
垢版 |
NGNG
で、スレ立てのAPIの戻りで、実際に立ったスレのキー(だめなら-1)を、
戻すとかすればいいと思うです。>>946-947
0950動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/27(木) 01:37:41ID:MHLp6DNM0
ロックのループにはまった時はスレキーとかに使うUNIX時間なんかを
新たに取り直した方がよくね?
でもスレ立て処理は排他ロックさせずに複数同時進行してそうだし、
ロックのループが1秒待ちでもなさそうだから関係ない話か。
0951◆cZfSunOs.U
垢版 |
2005/10/27(木) 19:57:03ID:SzSv4IzM0
>>949 成功時は key,失敗時はエラーメッセージを返し,戻り値が
数値か文字列かを bbs.cgi 側で判定してもらうというのはどうでしょうか?
スレ立てが失敗する原因は EEXIST 以外にもあり得るので
(といっても実際はまれでしょうが),エラーの内容がわかった方が
異常発見もしやすくなるかと思いますし.
0952root▲ ★
垢版 |
NGNG
>>951
悪くないと思いますです。

週末あたりから、APIを詰めていくスレをoperateに立てようかと。
ほんじつは、ここまで。
0955
垢版 |
2005/10/30(日) 04:51:30ID:R0mqD16u0
キャップの▲ってなんか意味あるとですか?
2ch全板で合計して 平均何秒ごとくらいにスレが立っているのでしょうかえ?
0957root▲ ★
垢版 |
NGNG
うーむ、

$GB->{MD5DATE} = sprintf("%04d_%02d_%02d",
substr($year + 1900, -2), $mon + 1, $mday);

これ、substrのところがたぶん -4 の間違いなんだと思うけど、
ここを変えるとこのあとのIDの種ファイルを更新するところで、
「日付変わった」と思われて、IDが変わっちゃうですね。

まずoperate2で試して、ID変わっちゃうとしたら、
23:00過ぎに、やることにしよう。そうしよう。
0958root▲ ★
垢版 |
NGNG
これ直したら、SunOS さんのからの質問 [1-2] のところの仕様が確定すると。
0960どくどくさぼてん
垢版 |
2005/10/31(月) 18:52:32ID:e+pnaIH20
そもそも-4というよりは、
 × substr($year + 1900, -2)
 ○ $year + 1900
みたいなかんじっぽいな
%04dに文字列渡してどうするんじゃと
0962root▲ ★
垢版 |
NGNG
その直上のここは、どうすればいいべか。

$GB->{DATE} = sprintf("%02d/%02d/%02d %02d:%02d:%02d",
substr($year + 1900, -2), $mon + 1, $mday, $hour, $min, $sec);
0965動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/31(月) 19:00:53ID:tkwMzh3I0
>>957が -4 だと思ったのはなぜ?
その部分だけ見た場合は、現実的(2chがいつまで存在するか)に考えて、 -4でも-2でも変わんないと思うし
0966どくどくさぼてん
垢版 |
2005/10/31(月) 19:01:46ID:e+pnaIH20
>>962
ん?なんだそら?それ現在dat及びに出力される形式と違ってるみたいけど
どっかべつのところでつかってるんだろか

どうしてもそれで直したければ
substr($year + 1900, -2) → $year % 100
てところじゃないんすかね
0967root▲ ★
垢版 |
NGNG
投稿日: とか、あと内部的にいくつか。
0968root▲ ★
垢版 |
NGNG
>>965
IDを格納するところで、YYYY_MM_DD を日付として使っているです。
で、0005_10_31 というのは「自然じゃない」ので、
2005_10_31 を格納したかったに違いないと。

>>966
なるほど、100で割ったあまりにすればいいわけか。
そうするです。
0971 ◆TWARamEjuA
垢版 |
NGNG
もすかすて、$GB->{MD5DATE} ってば、ID生成のためだけに使われているのならばそのまま放置しても良さそうな♪
0972動け動けウゴウゴ2ちゃんねる
垢版 |
2005/10/31(月) 21:44:31ID:FYOQZkFB0
気づいたときに自然な方法に修正しないと、バグが仕様化して後で痛い目を見る。

……と、厳密なのって日本人エンジニアとポーランド人数学者の特徴だよな。そのノリは好きだけど。
0974 ◆TWARamEjuA
垢版 |
NGNG
>>972
いへいへ、いつも私はそうしています(哀)@気が付いたらゴニョゴニョ

>>973
そういう発想がいちばん痛い目に遭うって気もしますですです(照)@そういうのからはもう足を洗いました♪

やっぱり一度は整理整頓してみたいよなぁ(苦笑)@bbs.cgi
0975動け動けウゴウゴ2ちゃんねる
垢版 |
2005/11/01(火) 01:53:58ID:RDlLoN8A0
あるスレッドの次スレという物が立ったらあるスレッドを速攻で足切りにできませんかねぇ?
スレを立てた人間によるスレストというか。
次スレが立った、じゃあ(無駄なレスで)埋めるって流れが嫌いなだけですけどね。
0976動け動けウゴウゴ2ちゃんねる
垢版 |
2005/11/01(火) 03:47:02ID:ZJKg5H9y0
次スレ立ての競争が無意味に苛烈になるだけなのでとても賛成できない。
めちゃめちゃなスレを立てておいて「次スレ」と主張し、現行スレを無理矢理
足切りに…なんて事をする輩が湧くのが目に見えているぞ。

「スレッドは1000ぎりぎりまで使い切ってから移行しましょう」という運動でも
立ち上げる方がまだ現実的だよ。
0978動け動けウゴウゴ2ちゃんねる
垢版 |
2005/11/01(火) 10:16:41ID:cAD241lE0
>>975>>977も、ちょっと考えればシステム的にどうやっても無理ってわかりそうなもんだけど。
自動的に正しい判断ができる拠り所がない。
個人がきっちり常に管理してる掲示版であれば可能かもしれんけど。

>>975
正式な次スレが立ったという判定はどうするん?
スレ立てた人って常駐してるわけじゃないし、そもそも立てる人って単に立てられる人なだけ場合も多々ある。
代行する人もいるんだし。
またその人が正しい判断をする人かどうかもわからん。

>>977
次スレが必要あるかどうかの判断は?
必要な場合だとしも、スレタイは?テンプレは?汎用的にやろうとすると無理。
0981動け動けウゴウゴ2ちゃんねる
垢版 |
2005/11/02(水) 02:28:21ID:U9irf3Pa0
>>980
すんません、投げるところを間違えたみたいですね。

とにかく、このスレッドみたいに980を超えた後、埋めるかとか言い出す奴とか
実際に埋めてしまう奴とかを撲滅できればいいんですよ。
終わり際に見苦しいというか。
0982名無しさんの助言 ◆JogenOuJ66
垢版 |
2005/11/02(水) 08:37:09ID:7i0vAmj10
見苦しいのは同意。でも撲滅しなきゃいけないという使命感は要らないと思われ。

そーゆー使命感ばかりに凝り固まると、潔癖君になっちゃうぞ。
0986動け動けウゴウゴ2ちゃんねる
垢版 |
2005/11/02(水) 16:18:18ID:GALgU8v20
>>981
わかってないね
975みたいな機能つけたら糞次スレ立てまくりスレストしまくりの
荒らしに利用されるのが目に見えてる
提案内容がお粗末過ぎるんだよ
0988root▲ ★
垢版 |
NGNG
友人の話では、Perl では /i の処理がめちゃんこ遅いという話があるらしい。

つまり、
if($ENV{'SERVER_NAME'} =~ /2ch\.net/i)

みたいなのも、ちりも積もれば山となる可能性ありと。
0989 ◆SSu.zv/rvs
垢版 |
2005/11/02(水) 16:48:01ID:4sehsTr40
ほとんど /i は取ったつもりだけど・・・
0991root▲ ★
垢版 |
NGNG
>>989
多くはないみたいですが、いくつか散見されるようです。
(>>988 は実際のソースからのコピペ)
0992root▲ ★
垢版 |
NGNG
気づいたところは、私のほうでも取っておくです。
今ざっと見直してみましたが、たぶん、もうそんなにないと思いますです。

で、次スレの予感か。
0995 ◆SSu.zv/rvs
垢版 |
2005/11/02(水) 17:11:19ID:4sehsTr40
Pで書くならCを知っていた方がよい。
Cで書くならAを知っていたほうが良いってことで、

一行(1ステップ)は一行なんだけど
使うと払わなきゃならない料金が違うのよネ

1円のもあれば 100万円のもある
正規表現は1,000万くらいか、
0997root▲ ★
垢版 |
NGNG
>>995
そですね。

なんか、組み込み系をやってた人の発想っぽいですね。それ。
そうゆう人かしら。

1000万は(いつものように)誇大表現ですけど、
方向性はそのとおりかもです。

# 知能によって船を作ったり爆破したりするあのサブルーチン群と、
# トラックバック系のサブルーチン群を、
# そのうち別ファイルにするかも、かも。
0998root▲ ★
垢版 |
NGNG
>>997 は、どっか(dsoとか?)で、
占有するメモリとかが節約できるかどうか試してみてから、判断しようかなと。
0999root▲ ★
垢版 |
NGNG
トラックバック系については、ソースの可読性ですね。
どうせ全部で使うので、単純に可読性だけです。

ということで、そろそろ1000か。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況