bbs.cgi再開発プロジェクト6

このエントリーをはてなブックマークに追加
1動け動けウゴウゴ2ちゃんねる
peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。

【開発環境の工事現場】
また挑戦。@2ch掲示板  http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/

関連スレなどは >>2-5 くらい
2動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 16:16:36 ID: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/
3動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 16:18:13 ID: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/
4讃岐 ◆IamaVIPdCI :2005/04/10(日) 16:48:10 ID:wOtRWd3N0 BE:4530825-###
>>1
ぼみょー
5讃岐:2005/04/10(日) 16:53:50 ID:affrfPZA0
>>1
ぼみょー
6動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 19:34:26 ID:RGQJw3jU0
> 名前がデフォルト名無しさんの場合はDATに書き込まず、
> 表示するときにSETTING.TXTから読んで付けるようにしたら?
> 結構削減されるような気がスルですが。
でも、名無しさんの名前が変更になった場合、古い発言でも名前が変わるわけですよね。なんかそれは嫌な気が。
7動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 19:37:16 ID:k8/TEzrI0
嫌モナにも、専ブラがSETTING.TXT読まなくちゃいけなくなるよそれ
8動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 20:01:10 ID:2OFDq5e40 BE:2394522-
DATの削減ってそれほど優先度たかいの?
2005にしたのを考えてそうは思わないけど。
曜日を足したいなら2001年08月26日以前みたいに西暦を2桁にしてもよかったのに。
それなら、リンクつけないってのが最優先じゃない?

(read.cgiってSETTING.TXT読んでるんですか?)
9動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 20:06:57 ID:a6rtBqIi0
bbs.cgiの今後の方向性が示されてれば的外れな提案とかが無くていいと思うけど
そのへんはどうなんでしょ?
10動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 20:47:33 ID:bLJalbEm0
>>6
そんじゃ、DATの頭にデフォルト名無しを取り込んでおいて、それ展開するとか。
11動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 20:55:02 ID:tLZu60sb0 BE:23940858-
>>10
スレッドの途中で名無しが変わった場合は?
スレ内で同じ名前を見つけたら参照するとかの方がまだマシかと。
12動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 21:31:55 ID:bLJalbEm0
>>11
いや、DAT頭にある名無しとSETTING.TXTのとが違ったら、それはちゃんと名無しの名前を書き込むのよ。
で、次スレからはDAT頭の名無しも変わって省略とする。

bbs.cgiの負荷コストがかかりそうなので、却下されそうだな〜。
単純な思いつきで書いたので流して〜。
13動け動けウゴウゴ2ちゃんねる:2005/04/10(日) 23:58:40 ID:GvAuiQsq0
DATとかSETTING.TXTやるぐらいならSQL使ったほうがましだと思うが?
14FOX ★:2005/04/11(月) 00:06:45 ID:???0 BE:101010757-###
何のために?
15動け動けウゴウゴ2ちゃんねる:2005/04/11(月) 00:58:53 ID:i2AJJS9O0 BE:2815834-
というか変にごちゃごちゃやると(ry
動いているものに手を入れたくな(ry
16FOX ★:2005/04/11(月) 01:01:39 ID:???0 BE:233766599-###
転送量をふやしたいから → 容量食うようにする
とか
人減らしたいから → ファイルopen数増やして全体にもっさりにする
とか

目的を書かなきゃ手段ばかりかかれても
混乱するばかりかな。
17動け動けウゴウゴ2ちゃんねる:2005/04/11(月) 01:34:04 ID:Aw1HHl/R0
>>16
手段が目的に決まってるだろーが。終了。
18動け動けウゴウゴ2ちゃんねる:2005/04/11(月) 08:20:15 ID:1RHO3vpt0
本7だったら相手にするだけ時間の無駄。
19動け動けウゴウゴ2ちゃんねる:2005/04/11(月) 12:46:51 ID:p1SWkTi/0
>>16
さりげない揶揄にワロタ
20動け動けウゴウゴ2ちゃんねる:2005/04/16(土) 22:12:28 ID:FazSDHGa0
>を& amp;に変換するのって必要ある?
<側だけ処理すればタグは禁止できるような。
(ブラウザによっては駄目なのかな)
21動け動けウゴウゴ2ちゃんねる:2005/04/16(土) 22:30:18 ID:eAUBMe3V0
確かにブラウザの表示は問題ないかもしれないが、気持ち悪いな。
というか、URIの&は&に置換するべきだと思う。
22動け動けウゴウゴ2ちゃんねる:2005/04/17(日) 00:03:51 ID:6o0jruEh0
http://なんとかかんとか?hoge=foo&amp=bar
とかなっているとアレだもんな
23動け動けウゴウゴ2ちゃんねる:2005/04/19(火) 00:22:23 ID:xt+Ii/KI0
連投チェックに引っかかった時のメッセージ変わったんだね
24†正座会場 ◆jmq5OZqMNg :2005/04/20(水) 08:27:09 ID:36lfOMVA0 BE:7249853-
 
25root▲ ★:2005/04/22(金) 19:21:28 ID:???0 BE:1095034-##
Perlのプロファイリング
http://naoya.dyndns.org/~naoya/mt/archives/001159.html

bbs.cgiの「どこが」重いのかを調べるのに、使えそう。
26root▲ ★:2005/04/22(金) 19:24:42 ID:???0 BE:2189164-##
今は時間とれないので、とりあえず餌だけまいておこう。

qb6でやってみた(単にtestというレスの投稿)。

うーん、IsKoukokuがこんなに重いとは。
あと、jcodeの処理も結構重いのね。

Total Elapsed Time = 0.801193 Seconds
User+System Time = 0.175342 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
58.1 0.102 0.125 1 0.1016 0.1252 main::IsKoukoku
35.3 0.062 0.055 2853 0.0000 0.0000 jcode::convert
26.8 0.047 0.024 2853 0.0000 0.0000 jcode::euc2euc
22.2 0.039 0.225 1 0.0390 0.2251 main::bbs_entryXXX
13.1 0.023 0.008 2853 0.0000 0.0000 jcode::h2z_euc
13.1 0.023 0.023 10 0.0023 0.0023 LWP::UserAgent::BEGIN
9.12 0.016 0.016 3 0.0052 0.0052 Net::DNS::Packet::dn_comp
9.12 0.016 0.039 2853 0.0000 0.0000 jcode::to
9.12 0.016 0.024 2853 0.0000 0.0000 jcode::euc
8.55 0.015 0.113 14 0.0011 0.0080 main::BEGIN
8.55 0.015 0.153 1 0.0155 0.1531 main::bbs_main
8.55 0.015 0.037 10 0.0015 0.0037 Net::DNS::Resolver::Base::BEGIN
4.56 0.008 0.008 1 0.0078 0.0078 Carp::shortmess
4.56 0.008 0.008 9 0.0009 0.0009 Socket::inet_aton
4.56 0.008 0.008 15 0.0005 0.0005 HTTP::Message::_elem
27FOX ★:2005/04/22(金) 19:27:48 ID:???0 BE:155844296-###
ほぅ
28root▲ ★:2005/04/22(金) 19:29:33 ID:???0 BE:4925669-##
>>27
きたきた(w。

これから外出してしまうので、あとで、これやりませんか。
IsKoukokuのコストを半分にするだけで、相当効果あるらしいです。
29FOX ★:2005/04/22(金) 19:33:47 ID:???0 BE:181818397-###
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 '';
}
30動け動けウゴウゴ2ちゃんねる:2005/04/22(金) 19:34:00 ID:eRSH3+Ow0
jcodeを2853回も呼ぶのは妥当なの?みたいなw
31未承諾広告※ ◆TWARamEjuA :2005/04/22(金) 20:30:22 ID:Q0gtYQFl0 BE:2178454-##
ではラムを飲みつつ待機していまつ♪

Shift_JIS のを丁稚どんにお渡しするようにすれば桶ですよね?
32FOX ★:2005/04/22(金) 20:30:58 ID:???0 BE:80808274-###
1) Shift Jis でリストを作る
2) リストには上限を作る (たとえば 200)

ですなぁ

ex10, live20 で Iskoukoku するーにしてみた
33動け動けウゴウゴ2ちゃんねる:2005/04/22(金) 21:09:44 ID:EY6AyDui0
あれ?なんでsjisでリスト?気のせいかな。。。
34未承諾広告※ ◆TWARamEjuA :2005/04/22(金) 21:22:49 ID:Q0gtYQFl0 BE:1742944-##
>>32
> 2) リストには上限を作る (たとえば 200)
構造上「さくら」のみになるかもかもですです♪
35動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 00:11:59 ID:8gV5d4mD0
リニアサーチしているからO(n)オーダになるのはしょうがないな……

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

前者だけでも既存のモジュールで追い出せばO(log n)の速度になると思うけど。
37動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 00:30:21 ID:8gV5d4mD0
38root▲ ★:2005/04/23(土) 00:33:02 ID:???0 BE:1641863-##
今日のex10の様子を見る限り、
この部分のチューニングは、すんごい効果あるってことすね。
39未承諾酩酊※ ◆TWARamEjuA :2005/04/23(土) 00:36:50 ID:giiMJFr+0 BE:2941439-##
NGワードが普通の文字列だったなら。。。
正規表現文字列だからちょと難儀かもかも。@「検索」に関してはむちむち♪

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

>>45
文字コード変換のメインは、実のところ「半角カナ→全角カナ」だったりしますので、その部分を超ーwwwwwwっ簡略化してみたですです♪
48未承諾酩酊※ ◆TWARamEjuA :2005/04/23(土) 01:20:59 ID:giiMJFr+0 BE:4901459-##
●改正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しなきゃなので、いきなり全鯖に導入しちゃうと気持ちよく叩かれるですです♪
49root▲ ★:2005/04/23(土) 01:21:20 ID:???0 BE:2736465-##
>>45
たしかに、でかいすね。
今ならText::Iconvのほうがよさげ。

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

>>47
了解です。
50root▲ ★:2005/04/23(土) 01:22:02 ID:???0 BE:729942-##
おぉ。 >>48

で、入れるならリスト側と同時にやる必要ありと。
51root▲ ★:2005/04/23(土) 01:29:45 ID:???0 BE:5746379-##
あ、そっか。

つまり、ロックなシステムのほうも、いじる必要があるってことすね。
やはり同期とって、すすめるが吉かなと。
52未承諾酩酊※ ◆TWARamEjuA :2005/04/23(土) 01:34:33 ID:giiMJFr+0 BE:871542-##
>>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基地
53root▲ ★:2005/04/23(土) 01:39:43 ID:???0 BE:3648285-##
うわわ。banana238に入れればよい?
54未承諾酩酊※ ◆TWARamEjuA :2005/04/23(土) 01:40:42 ID:giiMJFr+0 BE:1089825-##
>>51
登録/変更・削除部分とリスト更新部分は非同期になっているので前者を無効にすれば、テスト的運用が出来るかと思いますです♪
このあたりは秘密基地をご案内してみようかしら。。。
55未承諾酩酊※ ◆TWARamEjuA :2005/04/23(土) 01:41:36 ID:giiMJFr+0 BE:4900695-##
>>53
えっと、さしあたっては、大丈夫かと思いますですです。
でもってもし必要になればそのときって事でm(_ _)m深謝
56動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 01:45:43 ID:wSlmOpQB0
プロファイリング見て効果を確認しながらやってみては。
釈迦に説法ですが
57root▲ ★:2005/04/23(土) 01:49:29 ID:???0 BE:1824454-##
>>56
はい、そのつもりです。

でも、プロファイルする時はspeedycgiをいったん素のperlに戻さないとだめみたいですね。
speedycgi + >>25 のやつで qb6 でやったら、バックエンドが core dump しました。
58root▲ ★:2005/04/23(土) 01:52:08 ID:???0 BE:2189164-##
>>55
了解です。
でも、とりあえず入れておきました。
59動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 01:52:48 ID:wSlmOpQB0
>>57
あー手間がかかるんですね。失礼しました。こうゆうのワクワクしますよね
60root▲ ★:2005/04/23(土) 02:01:56 ID:???0 BE:5746379-##
>>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
を実行すると、プロファイリングの結果が画面に表示される
61動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 02:39:40 ID:q2W93/1G0
へぇ、数字で与えるとその数字にあたるキャラクタにマッチして
マッチしたキャラクタが数字になって出てくるのか。
初めて知った。よーし、パパ早速使っちゃうぞーっ!!
62動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 02:43:02 ID:lDiLScJr0
処理が前とあんまり変わっていない上に半角カナ以外も変換しちゃってるけど
少しでも軽くなってればいいってことかな。
63▲ ◆cZfSunOs.U :2005/04/23(土) 02:44:23 ID: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; # 合致したるらリファレンスを返す。
}
64FOX ★:2005/04/23(土) 04:37:10 ID:???0
私もまたまた酩酊ってことで
あした読んでみます、、、
65未承諾広告※ ◆TWARamEjuA :2005/04/23(土) 10:03:51 ID:giiMJFr+0 BE:1089825-##
読み返してみるとボロボロだったり、、、(汗)
●改訂IsKoukoku改訂1版
→変換テーブルを単純配列にした(ハシュにする必要はなかった)
→不正NGワードがあったとき、そのままOKとしていたところを次のNGワードを探索するようにした
→不正チェックと正式チェックをまとめて1回にした( >>63 )

sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # shift or return ''; # 入力無しなら (・∀・) カエレ

# 半角カナ→全角カナ変換テーブルの作成(むずかしいことはしない♪けれども直接書くと0x5Cが出てくるから16進文字列に)
# qw|。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト
# ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゛ ゜|;
my @Kana2Z = (
0x8142,0x8175,0x8176,0x8141,0x8145,0x8392,0x8340,0x8342,0x8344,0x8346,0x8348,0x8383,0x8385,0x8387,0x8362,0x815B,
0x8341,0x8343,0x8345,0x8347,0x8349,0x834A,0x834C,0x834E,0x8350,0x8352,0x8354,0x8356,0x8358,0x835A,0x835C,0x835E,
0x8360,0x8363,0x8365,0x8367,0x8369,0x836A,0x836B,0x836C,0x836D,0x836E,0x8371,0x8374,0x8377,0x837A,0x837D,0x837E,
0x8380,0x8381,0x8382,0x8384,0x8386,0x8388,0x8389,0x838A,0x838B,0x838C,0x838D,0x838F,0x8393,0x814A,0x814B
);

# 読み込む。。。
my @Rock_word = @FOX_Ro54;

# まず検索対象となる文字列を半角カナ→全角カナ変換。
$In_Strings =~ s/([\xA1-\xDF])/$Kana2Z[$1 - 0xA1]/g;

# NG ワード要素を NG ワード、MD5値、フラグの 3 要素だけにしてリファレンスにしてして。
@Rock_word = map [ (split /<>/)[5,6,7] ] , @Rock_word;

# では NG ワードのチェック。
foreach my $NG_word_ref (@Rock_word){
my $NG_word = $NG_word_ref->[0]; # リファレンスから NG ワードを取り出す。
$NG_word =~ s/([\xA1-\xDF])/$Kana2Z[$1 - 0xA1]/g; # 半角カナ→全角カナ変換。
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したるらリファレンスを返す。
elsif ($@) { next } # 不正 NG ワードがあったときは次の NG ワードへ。
}
return '';
}
66埼玉mikky ◆jM/TIxxEd. :2005/04/23(土) 10:28:52 ID:6CJhnrVX0 BE:52484235-##
ねえねえ、疑問なんですけど2chはなんでdat使ってるんですか?
頻繁にアクセスされるスレは、
データベース使って、全部メモリテーブルに入れちゃったらいいじゃないですか。
メモリに入れておくと、ディスクまで取りに行くより全然速いですよ。
それに、ファイルのオープンクローズばかりだと
ファイルディスプリプタの消費が凄いだろうし、非効率じゃないですかねぇ。
67動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 10:51:38 ID: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
  同意。

へー、マッチして出てきた文字列からそのまま数字を引けばその差の数値がでてくるのか。
初めて知った。よーし、ママも早速つかっちゃうぞー!!
68埼玉mikky ◆jM/TIxxEd. :2005/04/23(土) 11:02:42 ID:6CJhnrVX0 BE:122462257-##
>>67
DB化といえばそうだけど、ただ単にDB使った掲示板みたいに
データをDBに入れるわけじゃないからねぇ。
メモリテーブルを使うメリットないとは思えないけど、
まあ、いろいろ考え方はあるからねぇ。
69動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 11:18:48 ID:6bukU/2/0
>>68
じゃあ貴方が作ってください。
期待してます。頑張ってくださいね。
70埼玉mikky ◆jM/TIxxEd. :2005/04/23(土) 11:21:57 ID:6CJhnrVX0 BE:31490633-##
せっかくアイデア出しても煽られるだけで終わったか、、、
なんというか寂しいね。
71未承諾広告※ ◆TWARamEjuA :2005/04/23(土) 11:29:23 ID:giiMJFr+0 BE:1743528-##
劇的な結果が出るようならばやってみたいですよねぇ。
例えば、今ある50近い鯖がたった10台のTigerに収まっちゃうとかとか。
72動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 12:24:04 ID:mRDogzLo0
>>65
濁点・半濁点を含むNGワードを半角で書かれると
ヒットしなくなる予感(「ガ」は「カ゛」ではなく「ガ」)
73動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 14:48:09 ID:TdJ7gg7q0
man perlcompile
man perlcc

/* perl を C に変換して */ コンパイルしてみては。
74動け動けウゴウゴ2ちゃんねる:2005/04/23(土) 23:02:23 ID:f/pBGuZN0
>>73
すでにやってますがw
75未承諾酩酊※ ◆TWARamEjuA :2005/04/24(日) 01:05:01 ID:Xxj6SzT30 BE:980633-##
>>72
そだよなぁ。。。
マンドクセ。。。
76動け動けウゴウゴ2ちゃんねる:2005/04/24(日) 02:02:27 ID:FSwUijWd0
「完璧なアイデアを出すよりも、動くコードを出す奴が評価される」
プログラマ世界の鉄則。
77動け動けウゴウゴ2ちゃんねる:2005/04/24(日) 02:11:08 ID:evOCb0dX0
コンパイルしてある場合でも、evalの部分はやっぱりPerlで解釈しながら動くのかな。

forechループをevalにする例
http://x68000.q-e-d.net/~68user/webcgi/search-1.html
78root▲ ★:2005/04/24(日) 02:53:32 ID:???0 BE:2188883-##
>>72
そういったノーマライズ(正規化)って、そのためのライブラリがあるかも。
79root▲ ★:2005/04/24(日) 03:01:18 ID:???0 BE:7387799-##
例えばIDN::Nameprepとかが使えるのかもしれないけど、UTF-8ベースだし。

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

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

perl がどんな C を吐くかわからないが、あんまりよくなさげだったら、
IsKoukoku や IsKoukoku の中の"半角カナ→全角カナ変換"だけでも C で書いて、
入れ換えてみるのは。
82動け動けウゴウゴ2ちゃんねる:2005/05/02(月) 03:17:41 ID:68k7qPdk0
というか全部Cで書くのってだめなんすか?
83動け動けウゴウゴ2ちゃんねる:2005/05/02(月) 16:43:11 ID:6dv2zm420
1.言いだしっぺルール
2.メンテナンスコスト
3.perlはちゃんと書けば速い
84動け動けウゴウゴ2ちゃんねる:2005/05/03(火) 05:40:58 ID:9hjYG5x6O
で、ちゃんと書かれてるの?
85動け動けウゴウゴ2ちゃんねる:2005/05/03(火) 07:38:42 ID:4DLXOziK0
ちゃんと書いてある部分もあるだろうし、ちゃんとしていない部分もあるだろう。
86動け動けウゴウゴ2ちゃんねる:2005/05/03(火) 14:03:33 ID:oTGNOSTA0
bbs.cgiってフォーム処理とDAT出力くらいしかやってないように
見られるんだけど、めんどいことやってるのかな?

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

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

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

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

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

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

勉強して出直してきます・・・
93動け動けウゴウゴ2ちゃんねる:2005/05/04(水) 00:38:12 ID:zXm56+aF0
DNSを転用するのはキャッシュが効くから元サーバーの負荷が減るってのもある。
94動け動けウゴウゴ2ちゃんねる:2005/05/04(水) 11:47:18 ID:keskHAhd0
>>92
DNSBLでググってみて。
9592:2005/05/05(木) 00:40:22 ID:uwCu+mh10
ググってみました。

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

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

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

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

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

同じように、間違った行を追加するリスクがあります。
たとえば、(?:a||b)とか、
[a-z{2,12}\.dqn\.co\.jp   ([a-z]{2,12}\.dqn\.co\.jp ) 
これを eval すると、危険です。

テスト追加してから、本追加すべきです。
116未承諾広告※ ◆TWARamEjuA :2005/05/17(火) 07:22:07 ID:9/rk/uOV0 BE:6861479-#
毎回読み込み問題。
→Speedyのおかげ?で船が自爆すると再読込になっているのかな。

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

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

|(or)の利用。
→BBRの絡みがあるので現状では。。。
117タソキ@妄想系統 ◆Ver7J..... :2005/05/17(火) 07:29:52 ID:YLieYBBt0
OK
118タソキ@妄想系統 ◆Ver7J..... :2005/05/17(火) 07:45:59 ID:YLieYBBt0
@Rock_word をグローバルにして LastModified 使うってのはどうです?
119動け動けウゴウゴ2ちゃんねる:2005/05/17(火) 08:12:31 ID:8VTiZqr70
なにこの低脳('A`)
120動け動けウゴウゴ2ちゃんねる:2005/05/17(火) 10:34:17 ID:dccFnq280
朝っぱらから元気ですなぁ
121未承諾広告※ ◆TWARamEjuA :2005/05/17(火) 12:51:31 ID:oI6FF7Fe0 BE:1307726-#
>>118
船が出航する際に取得するだけなので、そこまで厳密でなくてもよいのかな。
更新がなければ無駄にはなるけれども、そこまでまだシビアな状態ではないような悪寒も。
122動け動けウゴウゴ2ちゃんねる:2005/05/17(火) 13:38:11 ID:yss/U/KY0
とりあえずISBN4-87311-130-7のフクロウ本は読んでないだろ。この人。
123FOX ★:2005/05/17(火) 13:41:06 ID:???0
毎回読み込み問題。
→Speedyのおかげ?で船が自爆すると再読込になっているのかな。

なってるなってる
124タソキ@妄想系統 ◆Ver7J..... :2005/05/17(火) 20:23:58 ID: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 がウキョー。
125埼玉mikky ◆jM/TIxxEd. :2005/05/17(火) 21:31:16 ID:w7QmQGw30
126動け動けウゴウゴ2ちゃんねる:2005/05/17(火) 22:37:03 ID:JHtbUZVW0
127未承諾広告※ ◆TWARamEjuA :2005/05/18(水) 01:09:52 ID:C8D+dO8j0 BE:6099078-#
>>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') } <リストのファイルハンドル>;
128タソキ@妄想系統 ◆Ver7J..... :2005/05/18(水) 08:14:12 ID:lWek53Vj0
出航時に、ついでに、
# 不正 NG ワードがあったときは splice関数で除去しておく♪
eval { $In_Strings =~m<$NG_word> };
splice(@Rock_word, i, 1); # i は配列のインデックス
とかどうでしょう?

perlがわからないのですが、
@Rock_word に splice が使えると解釈しています。
当然、上記のコードは雰囲気だけ醸し出しているってことでお願いします。

ほかには、[5,6,7]は[5]にしてもいいように見えますけど、合ってますか?
129タソキ@妄想系統 ◆Ver7J..... :2005/05/18(水) 08:16:15 ID:lWek53Vj0
>>125
130タソキ@妄想系統 ◆Ver7J..... :2005/05/18(水) 08:18:23 ID:lWek53Vj0
外でやると、
splice(@FOX_Ro54, i, 1); # i は配列のインデックス
です。
131タソキ@妄想系統 ◆Ver7J..... :2005/05/18(水) 08:38:56 ID: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;
    }
132タソキ@妄想系統 ◆Ver7J..... :2005/05/18(水) 08:42:23 ID:lWek53Vj0
違った、n にすると配列の長さの変動に対応できないので、
n は全部 @FOX_Ro54.length に置き換えですね。
133FOX ★:2005/05/18(水) 14:20:46 ID:???0
それらは各サーバに配る前にやっておくべきでは?
134未承諾広告※ ◆TWARamEjuA :2005/05/18(水) 18:55:18 ID:C8D+dO8j0 BE:1743528-#
>>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";
長いので省略。。
135タソキ@妄想系統 ◆Ver7J..... :2005/05/18(水) 19:42:49 ID: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
136動け動けウゴウゴ2ちゃんねる:2005/05/19(木) 00:50:32 ID:3hYRxH7n0
正規表現をコンパイルしておくのはかなりよさそう。
137タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 09:08:55 ID:269xFx4b0 BE:25456436-
# 入力要素の体裁(コントロールコードや<>を除く)
ここの正規表現もコンパイルするといいかもしれません。
文字列が1000文字以上の場合があるからです。
138タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 09:47:21 ID:269xFx4b0 BE:19799827-
FOX Cawaii

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

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

6000-7000ぐらいでどうかと思います。
139タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 10:08:16 ID:269xFx4b0 BE:79195687-
http://dso.2ch.net/test/read.cgi/myanmar/1101890385/7
bbq&bbm(焼済) > barbon(焼) のほうが、いいかも。
140タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 10:11:47 ID:269xFx4b0 BE:49497375-
>>139はそういえばクロール規制が入ったから、効果不明です。
141タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 10:14:57 ID:269xFx4b0 BE:12728333-
クロールbarbon > bbq&bbm(焼済) > カキコbarbon(焼)
142タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 10:17:08 ID:269xFx4b0 BE:59397067-
でもbarbonはリスト数が少ないからそれいいのか。スマソ
143タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 10:19:34 ID:269xFx4b0 BE:16970843-
では、bbq&bbmの正規表現のコンパイルをする。
144タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 10:31:19 ID:269xFx4b0 BE:21213735-
# POST入力情報を取得($FORM{}に格納)
ここの正規表現も>>137と同じですね。
145動け動けウゴウゴ2ちゃんねる:2005/05/22(日) 10:36:19 ID:bxf7r0yz0
どうして纏めて書けないんだ。
146タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 10:55:36 ID:269xFx4b0 BE:11313942-
纏めて書く理由がないから。
147動け動けウゴウゴ2ちゃんねる:2005/05/22(日) 11:01:51 ID:bxf7r0yz0
無駄に消費するなら纏めてかけ。
独り言はチラシの裏
148タソキ@妄想系統 ◆Ver7J..... :2005/05/22(日) 11:09:28 ID:269xFx4b0 BE:8485823-
「纏めて書くと見やすいよ。少しづつ挑戦してみなよ」
とでも励まされれば、この世代は喜んで挑戦すると思います。
反対に、「どうして纏めて書けないんだ。この人。」
などと、具体的な指摘や理由がなく、怒り・呵責な表現の場合には、
誰しもが、毎回イヤイヤ纏めるか、その必要がない場合には反発すると思います。

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

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

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

157動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 01:13:23 ID:8CnNC34o0
↓ここでjspを提案する香具師登場
158動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 04:54:09 ID:Gx0M/2C00
│         ,
│      /⌒⌒⌒\
│  ≡ /∽∽∽∽∽\
│   ∽∽∽∽∽∽∽∽
│≡   , ⌒⌒ヽ ||
│     リノヽ、卯) |
│ ≡  ,9、゚ ヮ゚ノミ |
│    Oミi本iミつノ
↓     ノ(_リ⊃⊃
159動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 06:31:23 ID:lGl7TkL40
↓jspって何?PSPの新バージョン?
160動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 06:37:48 ID:O0qd3lZA0

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


>>153 協調性でググッたら余計に混乱しました。
協調性度チェックテスト ポイント:40/100
http://www.heartful-smile.com/07/07-342.html
ちょっとマイペースで気分屋さん的なところがあるかも
162動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 07:49:51 ID:bJCCkeuw0
運営はとても参考になります

嵐の
163タソキ@妄想系統 ◆Ver7J..... :2005/05/23(月) 08:16:15 ID:26kSalUN0
>>162
協調性でググってみれ。
協調性のあるやつは使えねーって順番に言ってるぞ。
164動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:20:24 ID: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   ○   
165動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:21:48 ID:wiySXr/N0
こうやって関係の無いどうでもいい話を保身のために持ち込むのが荒らしなんだよな。
166タソキ@妄想系統 ◆Ver7J..... :2005/05/23(月) 08:23:50 ID:26kSalUN0
>>165
オマエモナー
167動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:24:23 ID:ZKjUUOu80
運営に気に入られようったって他所で荒らしやってんじゃ意味無いんだぞ<雑音先生
168動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:31:39 ID:wiySXr/N0
>>166
何がお前もなんでしょうかね。
169タソキ@妄想系統 ◆Ver7J..... :2005/05/23(月) 08:32:13 ID:26kSalUN0
もう2年ぐらい荒らしやってないけど、
あなたは運営板の古い人なの?
170動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:34:17 ID:wiySXr/N0
今現にここで釣られて荒らしている事実
171タソキ@妄想系統 ◆Ver7J..... :2005/05/23(月) 08:37:39 ID:26kSalUN0
どっちかっていうと、気に入られたっていうより、
率直に削除人が連携して荒らしを煽る風土をどうにかできないかって思ったね。
うまく提示できたね。
172動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:43:24 ID:wiySXr/N0
この程度もスルーしないのに提示したとか言っちゃってるのが笑える。
積み重ねてきたものが無い奴ほど 〜は使えない とか言うのを信じて自分はそうじゃないと安心することでしか
自分の中での自分の地位を確立出来んのだよな。
173タソキ@妄想系統 ◆Ver7J..... :2005/05/23(月) 08:48:35 ID:26kSalUN0
他の板まで連携したまま煽りに行く人を数人認識してるからさ。
つまり、ID:wiySXr/N0の何か行動を変化させたいんだよ。
そこが凄く引っかかってここに来てみたわけ。
あと、トオルさんになにか力を貸したい。
174動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:49:38 ID:ItxmM2UD0
何でもいいけど雑談なら下げて。朝忙しいのに読んじゃうから。
175動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:53:11 ID:wiySXr/N0
俺がそいつだとでも思ってんのかね。
煽ってる奴は同一人物でいつもまとまって行動しているとでも言うのか。
176タソキ@妄想系統 ◆Ver7J..... :2005/05/23(月) 08:53:51 ID:26kSalUN0
>>174 OK
>>172 もうオレはこのスレの糞荒らしでいいからさ、
何が気に入らないのオレの?ぶっちゃけちゃってよ。
177動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:55:05 ID:DksikMMa0
いつの間にやら、変なのに居付かれてしまいましたなぁ('A`)
178動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 08:57:56 ID:wiySXr/N0
>>162が自分の事だと勘違いして荒らしてしまう所と
荒らしと自分でわかってる者の相手をしてしまう所>>161>>163

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

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

はよねーよー
185動け動けウゴウゴ2ちゃんねる:2005/05/23(月) 09:42:13 ID:wiySXr/N0
>>184
ごめんなさい。
186動け動けウゴウゴ2ちゃんねる:2005/05/24(火) 01:38:47 ID:EWUpRluA0 BE:176274847-
sage
187讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/05/30(月) 00:42:03 ID:l5lGsiR90 BE:12684847-##
転載しておきます


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

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

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

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

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

Denyテーブルってどれぐらいの容量(レコード数)を管理されてるのですか?
今の攻撃で正規表現で弾いてれば、これまたレスポンスが悪くなりますし。。
191動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 04:41:07 ID:QME7DIPQ0
汎用性って必要?
192動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 05:44:59 ID:UtFyGIqu0
>>191
言葉が悪かった。

×汎用性
○メンテナンス性
193 ◆TWARamEjuA :2005/05/30(月) 07:21:07 ID:in+4hgAJ0 BE:2178645-#
>>187
転載、ありがとうですm(_ _)m

あと、IsKoukoku問題。 >>127 (リストの変換を出航の時だけにする)を実施すれば、ひとまず負荷は半減するかと思いますです。
194 ◆TWARamEjuA :2005/05/30(月) 07:28:21 ID:in+4hgAJ0 BE:2287837-#
>>193
それからそれから、リストの並びを「ヒット率の高いもの順」に替えてみました。
引っかかるのは簡単に引っかかるようにと。

でも「善良な書き込みほど負荷が掛かる」に対してはなにも太刀打ち出来ないでいます(泪)
195動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 08:35:07 ID:NO7z0FeU0
>>187
RockDBは何かしらの形でストライピングがいりますねぇ
196動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 09:28:56 ID:GeNtN3/e0
>>187
協力したいんだけど、bbs.cgiは随分長いこと見てなくてRock54って何?
って状態なんですが、どの辺りのスレから追えばみなさんに追いつけます?
197動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 10:50:40 ID:MS5mtWpH0
198root▲ ★:2005/05/30(月) 12:06:08 ID:???0 BE:1459744-##
ということで、また、じわじわと増えてきたですね。
http://mumumu.mu/mrtg/mrtg-rrd.cgi/bbqbbx/bbr.html

Rockは「最後の手段」なので、そこに行く前に止める
(こないだおじさんがやった対症療法みたいに)必要がありそう。

あわせて >>187 >>193-194 が当面の課題か。
199動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 15:42:43 ID:oT4SOxuh0
とりあえずいつもの「ハンマーをもらった子どもは何でも釘に見える」の啓蒙だよー

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

「Perlは遅いし大規模開発に向かない」というのはPerl4時代の話。
PHPだから早いわけでもない。
どちらかというと「どっちに慣れた人がたくさんいるか」という運用面での話しになる。
200動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 16:14:39 ID:UtFyGIqu0
>>199
10回程度のループテストでは参考にならないでしょう。。。
201動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 16:19:26 ID:DEBrQjMS0 BE:11374278-##
>>200
じゃ数百回のループテストを公開でやってみたら?
202動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 20:42:43 ID:K+Y+oK7W0
phpってソケット使える?


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

>>202
ソケットもサポしてます。
Ver4以降からコマンドラインもサポしてますよ。
204動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 23:17:01 ID:31RcjPGy0
亜種の出る速度から考えて正直対症療法に意味があるとは思えないけど
205動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 23:17:38 ID:31RcjPGy0
参考になる実験結果も持ってないのにどうしてそんなphpを力いっぱい押せるんだか
206動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 23:47:10 ID:cvk6biLo0
っていうか、どんな言語でも(たとえ水平マイクロアセンブラでも)、今から新規に作り直せば、
今のbbs.cgiよりきれいに違いない
そんなの自慢にもならん
207動け動けウゴウゴ2ちゃんねる:2005/05/30(月) 23:55:23 ID:RGXs7Ntx0
作り直せというのは大分前からのこと。
仕様変更だって、1ヶ月前から告知したら専ブラも対応できるのに。
面倒なんですと。
208動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 00:08:01 ID:NuMPfTs10
個人的な負荷実験結果でこの際100万アクセスって言われてる
ここでPHPの有効性を実際に実験したいってのが本音です。
209動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 00:26:27 ID:jGPtv+4B0
口でいう奴よりも手を動かす奴のほうがすごい法則
210動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 03:42:02 ID:TIbffBNl0
しこしこ
211動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 11:10:12 ID:86o0U8t20
どのみち山田対策のからみもあって大幅な仕様変更やらなきゃいけないような悪寒がするけど・・・・
212動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 11:12:53 ID:pIF7DXcf0
PHP使ってるサイトを良く見ますけど、どのサイトもクソ重いです…。
いかにPHPが優れていようと今の2chのcgiより重かったら何にもならないです。
213動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 11:21:28 ID:0jYZZ9Q30
phpも便利な言語だし好きだけどperlと比べてそれほどメリットはないよ。
perl捨ててphpにしようとかphp妄信者の寝言はもうたくさん。

それでもphpにしようとかいうひとはphpでbbs.cgi,read.cgi相当の祖体ぐらいだしてからにしてくれよ。
214動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 11:24:48 ID:0jYZZ9Q30
>>212
大抵のところはphpを生で使ってるから重い。
スクリプトはそのままで、アクセラレータエンジン入れればだいぶ軽くなるんだがね。
215 ◆TWARamEjuA :2005/05/31(火) 11:32:15 ID:3gnhlYFA0 BE:5227968-#
同じような手法として、perlccなんてのがあったりするです。
live系はそうしているんだっけ?
216動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 11:32:53 ID:jGPtv+4B0
>214
御託はいいからさ
>213を嫁。
217動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 11:36:19 ID:0jYZZ9Q30
>>216 >>213>>214は間違いなく漏れな訳だが。
218動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 11:50:14 ID:86o0U8t20
確かにphpは3.0が出た当時はまだperlに比べてアドバンテージがあった。
apacheモジュール実装然り、初心者にわかりやすく多くのDBとの連携のあるAPI群。
この当時ってperl5がでるかでないかぐらいじゃなかったかしら。

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

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

ってところなのかな。
220動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 12:01:03 ID:0jYZZ9Q30
>>219
それは激しく異論があるぞ。
VBなんぞと一緒にするなよ。というかそれだけ言語じゃなくて処理系名かよ:p
だいたいどういう視点での位置づけなんだ?
221動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 12:09:41 ID:QiMRSrT20
言語の優位性語るスレじゃないのに
根本的な解決策にはならんでしょ
222動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 12:20:06 ID:86o0U8t20
>>220
単に初心者のとっつきやすさという観点からくっつけただけです

異論も出るのも当然ですね、スマソ吊ってきます
223動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 16:56:28 ID:iy9dpxZMO
Perl信者テライタスwwwwwww
224stream ◆ap/yuix/tw :2005/05/31(火) 16:57:25 ID:A4nmIY+T0 BE:40408597-#
またいつものパターンですか
225root▲ ★:2005/05/31(火) 17:07:17 ID:???0 BE:4377986-##
>>215
今は全部、speedycgiにしました。
perlccはしょせん、単なる毎回ロードするバイナリ。

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

まずは目的があったうえで、それにあった手段を選ぶわけで。
226動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 17:13:26 ID:86o0U8t20
で、現状の問題点

・より確実な山田対策
・IsKoukoku

違ったら指摘よろ
あとなんかありましたっけ?
227讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/05/31(火) 17:28:12 ID:Vg5Kegkq0 BE:9060454-##
それでおk
228動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 21:18:29 ID:xnXA6jy30
山田について説明希望
229動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 21:20:19 ID:aHPOndkO0
検索して
230動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 21:22:59 ID:2uvrcdmn0
こんやが、
231ヾ(゚パ)ノ ◆f0.zuburi6 :2005/05/31(火) 21:24:50 ID:X5FkKZ+T0
武田
232動け動けウゴウゴ2ちゃんねる:2005/05/31(火) 22:10:01 ID:J6kC1tX50
233タソキ@妄想系統 ◆Ver7J..... :2005/05/31(火) 22:50:24 ID: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]/;
234タソキ@妄想系統 ◆Ver7J..... :2005/05/31(火) 22:53:30 ID:9aqh9O8n0
山田ワクチンを作り、
重いところを軽くして山田耐性を上げる。
235動け動けウゴウゴ2ちゃんねる:2005/06/01(水) 01:01:49 ID:4S6eve7r0
スラッシュ入りとそうでないのにリストを分けて、入ってないレスの時はスラッシュ入りを回さないとか。
236動け動けウゴウゴ2ちゃんねる:2005/06/01(水) 07:16:37 ID:bf9SHC1F0
rockのファイルってジンギスカンしてます?
まあそれ以前の問題かもしれませんが・・・

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

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

問題は正規表現と整合性がとれるかなんだが、俺はPerlわからんから予想できん。
239動け動けウゴウゴ2ちゃんねる:2005/06/01(水) 11:10:50 ID:zzFYRbIx0
とりあえず、仕組みやコードについてアドバイスしたいのなら、
Rock54プロジェクト関連の全ての過去ログに目を通してから語った方が
ええよ。
そうしないと話がループして不毛になるから。
過去ログや関連スレを探すのも2chのプロジェクトに参加するための最低限の
スキルだから、どこにあるか分からないとか言わないでね。
240 ◆TWARamEjuA :2005/06/02(木) 07:17:27 ID:Fiy+l0hS0 BE:3920966-#
じっけん結果。
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% --
241 ◆TWARamEjuA :2005/06/02(木) 07:17:53 ID:Fiy+l0hS0 BE:654023-#
#!/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;
242 ◆TWARamEjuA :2005/06/02(木) 07:18:23 ID:Fiy+l0hS0 BE:3921449-#
# 従来の方法?
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 ワードがあったら。。。
}
}
}
243 ◆TWARamEjuA :2005/06/02(木) 07:19:03 ID:Fiy+l0hS0 BE:7841298-#
# あらかじめ、カナ変換をしておく。
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 ワードがあったら。。。
}
}
}
244 ◆TWARamEjuA :2005/06/02(木) 07:19:18 ID:Fiy+l0hS0 BE:3050047-#
# あらかじめ、カナ変換して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__
245 ◆TWARamEjuA :2005/06/02(木) 07:23:18 ID:Fiy+l0hS0 BE:654023-#
○えんばいろめんと
jcode.plがうまく動かなかったのでJcode.pmで。

$ uname -a
Linux tierra.baila6.jp 2.4.27-0vl7.5 #1 Tue May 17 13:33:27 JST 2005 i686 unknown

$ dmesg | grep Hz
Detected 1050.026 MHz processor.
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

なキカイで。。。
246タソキ@妄想系統 ◆Ver7J..... :2005/06/02(木) 08:45:31 ID:VnP48VQZ0
ということは perl での正規表現のコンパイルは意味がないけれど、
文字列をあらかじめ宣言しておくことは効果があるってことですよね
247タソキ@妄想系統 ◆Ver7J..... :2005/06/02(木) 08:59:58 ID:VnP48VQZ0
>>240が読めませんが、そう解釈しました。
248動け動けウゴウゴ2ちゃんねる:2005/06/04(土) 03:35:19 ID:6UTTXnDi0
ここで良いのか分からないけど、、、
「スレッドストッパー」が働いたときに、subback.html等に
レス数の増加が反映されないのはどうなんでしょうか?

http://qb5.2ch.net/test/read.cgi/operate/1117803694/l50
↑スレッドストッパーを入れて28だけど、、

http://qb5.2ch.net/operate/subback.html
↑ここでは27となっている。
249動け動けウゴウゴ2ちゃんねる:2005/06/04(土) 03:40:59 ID:z2pnxTOZ0
>>248
スレッドストッパーとか無関係にそうなることがあると思ってたけど。
時々更新をサボるみたいね。しかもいつ更新されるかわからないw
250root▲ ★:2005/06/04(土) 06:11:39 ID:???0 BE:3648285-##
>>248
単純に、スレッドストッパーさんはsubject.txtやsubback.htmlの更新、
場合によってはindex.htmlの書き換えといった、
とってもコストのかかる重い処理を、一切やってないってことですね。

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

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

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

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

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

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

Rockにたよりすぎですよ

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

ふむ。

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

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

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

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

わたしは 30円くらいでいいと思っています。
あとはポリシーの問題化と、
あくまで100%を目指すなら、それもありかと。たんたんとやるだけ。
261讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/04(土) 22:29:13 ID:cmkT2Hd90 BE:16308094-##
http://←この部分外して登録とか
262ピロリ:2005/06/04(土) 22:29:24 ID:ir56pciX0
あっ ちと数字またがったか、
いつものことで
263ピロリ:2005/06/04(土) 22:29:54 ID:ir56pciX0
>>261
個数の問題だッたり
264 ◆IDaU21y6wI :2005/06/04(土) 22:31:16 ID:xAOzrwAH0 BE:21290742-#
記念カキコ
265root▲ ★:2005/06/04(土) 22:32:13 ID:???0
まずは、EUC→SJISに変えてみるだけで、相当効果ある気がするです。
前にやったプロファイリングの結果では、jcodeが相当重かったような。

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


※システムに負担がかかっているのなら新システムの構築か人的資源の投入のどっちが
 いいかってところですね
267 ◆IDaU21y6wI :2005/06/04(土) 22:34:44 ID:xAOzrwAH0 BE:21290742-#
これかな、

%Time ExclSec CumulS #Calls sec/call Csec/c Name
58.1 0.102 0.125 1 0.1016 0.1252 main::IsKoukoku
35.3 0.062 0.055 2853 0.0000 0.0000 jcode::convert
26.8 0.047 0.024 2853 0.0000 0.0000 jcode::euc2euc
22.2 0.039 0.225 1 0.0390 0.2251 main::bbs_entryXXX
13.1 0.023 0.008 2853 0.0000 0.0000 jcode::h2z_euc
13.1 0.023 0.023 10 0.0023 0.0023 LWP::UserAgent::BEGIN
9.12 0.016 0.016 3 0.0052 0.0052 Net::DNS::Packet::dn_comp
9.12 0.016 0.039 2853 0.0000 0.0000 jcode::to
9.12 0.016 0.024 2853 0.0000 0.0000 jcode::euc
268root▲ ★:2005/06/04(土) 22:34:54 ID:???0
>>260
同じこと考えてたです。
ETCが米国の同じようなシステムと比べて、バカ高になったのと同じですね。

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

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

jcode: がすごいですね。
実はSJISでデータ持たせるだけで、解決すると言ってます?
270 ◆IDaU21y6wI :2005/06/04(土) 22:38:23 ID:xAOzrwAH0 BE:31936526-#
jcode が主な要因っぽいですね。

EUC to SJIS は効果がありそうな予感。
271動け動けウゴウゴ2ちゃんねる:2005/06/04(土) 22:41:50 ID:5JYtZIYC0
rock word検索毎に毎回jcodeを呼び出してたときのデータじゃなかったっけ?
272ピロリ:2005/06/04(土) 22:43:17 ID:ir56pciX0
>>271
今も相変わらずですよん
273root▲ ★:2005/06/04(土) 22:43:37 ID:???0 BE:4104959-##
>>271
今も変えてないんではないかしら。
それとも、変わったんだっけ。
274讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/04(土) 22:43:43 ID:cmkT2Hd90 BE:6343027-##
登録一週間で一定の量までいってなければ削除とか
275root▲ ★:2005/06/04(土) 22:45:16 ID:???0 BE:2188883-##
で、内部データをSJIS化するには、どういう手順でやればいいのかしら。
丁稚どんの改良が必要?

あと、いわゆる「表」みたいな字の対策も入れる必要があるような予感も。
276動け動けウゴウゴ2ちゃんねる:2005/06/04(土) 22:45:32 ID:oewniHwY0
レスにurl入ってるかどうか調べて、入ってない場合はチェックを一部省略するってやってますか?
277ピロリ:2005/06/04(土) 22:46:25 ID:ir56pciX0
>>276
この部分のコードは公開されています四
278ピロリ:2005/06/04(土) 22:47:41 ID: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 '';
}
279動け動けウゴウゴ2ちゃんねる:2005/06/04(土) 22:47:56 ID:5JYtZIYC0
>>272-273
あ、いや別に今は変わってると言いたいのではなくて
単なる説明のつもりでした。

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

ttp://www.fl.reitaku-u.ac.jp/~schiba/perl/perlEncoding.html#shiftjis
281root▲ ★:2005/06/04(土) 22:51:18 ID:???0 BE:1459744-##
ちと、めし落ち。

改めて眺めてみましたが、
>>278 のうち、コード変換部分がなくなるだけでも、相当かもすね。
282動け動けウゴウゴ2ちゃんねる:2005/06/04(土) 22:52:58 ID:5JYtZIYC0
正規表現を使う必要のあるNGワードって意外と少ない気もするが
Rockだとそうでもないのかな?
固定文字列の検索なら工夫の余地が大きいと思うんだけど
283動け動けウゴウゴ2ちゃんねる:2005/06/04(土) 23:00:49 ID:5JYtZIYC0
map { &jcode::euc($_, 'euc', 'z') } @Rock_word
これは単なる半全角変換だっけ?
284 ◆TWARamEjuA :2005/06/04(土) 23:32:22 ID:clwQaXYe0 BE:3812257-#
まずは、>>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近くは必要かもです。
285root▲ ★:2005/06/04(土) 23:34:58 ID:???0 BE:4378368-##
>>284
ご本尊、こられましたか。

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

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

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


290ピロリ:2005/06/04(土) 23:58:12 ID:ir56pciX0
>>288

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

>>284
ということは、6割ぐらいにはなるってかんじですか。
anime サーバで、しこんでみるです。
293root▲ ★:2005/06/05(日) 00:08:33 ID:???0 BE:4469377-##
あ、まずエラーにならないことをqb6で確認するです。
294ピロリ:2005/06/05(日) 00:13:41 ID:hV/aUjEj0
まったー
295ピロリ:2005/06/05(日) 00:14:42 ID:hV/aUjEj0
読み込んだときに変換するのは激しく反対。
配布前になされるべきです
296root▲ ★:2005/06/05(日) 00:15:53 ID:???0 BE:1459744-##
ふむ。

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

中身は「ただのブツ」意味の無いものであるべきです
298root▲ ★:2005/06/05(日) 00:20:18 ID:???0 BE:2919348-##
リストのおおもと EUC

配布用マスター SJIS

各サーバに配布

そのまま利用

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

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

ということになり、今後の改修もここだけになるッス
301動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 00:29:53 ID:5aS7YfV20
NG_wordに正規表現使ってないならEUCに変換なんてしないで
index()でいいんだけどな
302 ◆TWARamEjuA :2005/06/05(日) 00:34:30 ID:TPn54rPk0 BE:5336677-#
あり得る手段としては、「DATをeuc-jpにする」というのもある香奈♪

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

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

こんな感じかな?

#banana238から追い出されそうな悪寒(苦笑)@負荷増大
303root▲ ★:2005/06/05(日) 00:37:48 ID:???0 BE:2736656-##
>>302
1. って、やらなくてもいいようになるといいなと。

「がんばる」は「がんばる」だけRockできれば、それでいいんじゃないかなと。
で、「ガンバル」もRockしたければ、単にもう1行入れればいいんではと。
304 ◆TWARamEjuA :2005/06/05(日) 00:38:14 ID:TPn54rPk0 BE:3049474-#
>>302
と、書いてみたものの、、、
→1. 全角カナ→全角カナ+半角カナにしてor設定(ex.がんばる→(が|ガ|(ガ))(ん|ン|ン)(ば|バ|(バ))(る|ル|ル)
こんなことしてたら、ますます負荷が「お互いに(Rock54基地でも各鯖でも)」掛かるよなぁ。。。

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


この部部が理解できなかったり、
投稿毎に(bananaで 5万/day) 処理していることが
どうして出来ないのかがわからないのだ。
307root▲ ★:2005/06/05(日) 00:39:20 ID:???0 BE:1277827-##
>>304
あ、かぶったですね。
全角と半角をそこまでやらなくても、正規表現パターンが減るだけで、
かなり負荷下がるような予感。
308 ◆TWARamEjuA :2005/06/05(日) 00:43:38 ID:TPn54rPk0 BE:4574467-#
>>303
荒らす人は徹底的に荒らしたいらしいので、もっといろんな描き方をしてくるですです(苦笑)
がんばる
ガんばる
がンばる


が ん ば  る

(わはは)

URIとmailアドレスと思しきもの、電話番号と思しきものに限定しちゃって、無差別コピペは別管轄にしちゃうとかとか。
309動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 00:44:56 ID:b15c92rk0
マルチバイト文字非対応でいいなら、それが一番楽そうですね
310ピロリ:2005/06/05(日) 00:45:32 ID:hV/aUjEj0
Rock54 はあらし撃退にも使えるけど
広告爆撃対策が本業かと、
311root▲ ★:2005/06/05(日) 00:47:31 ID:???0 BE:2189838-##
>>308
まぁ、>>310 すね。
あとは、正規表現の高速なやつを入れてみるぐらいか。

いずれにせよ、なるはやで>>298にしたいなと思うです。
312 ◆TWARamEjuA :2005/06/05(日) 00:54:34 ID:TPn54rPk0 BE:4900695-#
>>306
banana238さんではRock54以外にもBBXやBBR、別プロセスとなるf22baseや、headline、itadaki、statsが同居していますから、
多少不安があったりもしまして。
単純にbbs処理とは異質なものでもありますし。

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

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

何が違うんだろう・・・
315 ◆TWARamEjuA :2005/06/05(日) 02:00:07 ID:TPn54rPk0 BE:3484984-#
>>314
bbs.cgiが動いている鯖での変換「以外」の負荷の掛かり具合がよく判っていないので、
ただ単にbanana238でも大丈夫なのかな?と危惧しているところです。
(bbs.cgiが動いている鯖でのpsやtopコマンドの値は知りうることが出来ませんから)

ひとまず「案ずるより産むが易し」ってことで、変換作業をしているですですm(_ _)m
316root▲ ★:2005/06/05(日) 02:02:01 ID:???0 BE:730324-##
>>315
最終行に、同意っすね。
うむ、うむ。

# ちと、今日はおねむかも。
# ちょっと別のスレで別のじっけんしてくるです。
317 ◆TWARamEjuA :2005/06/05(日) 02:28:03 ID:TPn54rPk0 BE:2940293-#
基地の方では、切り替える準備が出来ました。

>>278 を以下のようにスキーリさせることができるかと♪
#################################################################################################
#罠、罠、罠、罠、罠に
#入力:
#IsKoukoku(対象文字列[Shift_JIS],Rock54のファイル名) 現状は無し。sub で定義中。
#返り血ぶしゅー:
#OK ならば 空文字列(偽)
#NG ならば (規制文字列(真)[Shift_JIS], MD5値, フラグ)のリストへのリファレンス
sub IsKoukoku
{
my ($GB) = @_;
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # 長いので代入

# 読み込む。。。
# my @Rock_word = @FOX_Ro54; # メモリの無駄なので省略してみました。

# では NG ワードのチェック。
foreach my $NG_word_ref (@FOX_Ro54){
if (my $matched = eval{$In_Strings =~ m<$NG_word_ref->[0]>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
return '';
}

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

qb6 に早速入れてみます。
319root▲ ★:2005/06/05(日) 02:30:30 ID:???0 BE:5837388-##
おぉ。

>>318
おまかせするです。わくわく。
320ピロリ:2005/06/05(日) 02:34:41 ID:hV/aUjEj0
if (my $matched = eval{$In_Strings =~ m<$NG_word_ref->[0]>}) { return $NG_word_ref } # 合致したらリファレンスを返す。

 ここで 500 error になるっす
321水色@飛行石 ★:2005/06/05(日) 02:34:48 ID:???0
おー。
322 ◆TWARamEjuA :2005/06/05(日) 02:35:55 ID:TPn54rPk0 BE:2614346-#
>>318
あ、、、
丁稚どんがそのままなので、全鯖に配布されちゃうです(汗)

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

324ピロリ:2005/06/05(日) 02:38:07 ID:hV/aUjEj0
つまり 正しく動くかどうかじゃなくて
動くかどうかの確認をしたいと、 @qb6
325ピロリ:2005/06/05(日) 02:38:52 ID:hV/aUjEj0
>>320 の行をコメントアウトすると動く(書き込める)です
326讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/05(日) 02:42:27 ID:CusxkNZG0 BE:28992588-##
おー
327動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 02:44:49 ID:VDikHqT00
アローがデリミタと被っているのでは…
328 ◆TWARamEjuA :2005/06/05(日) 02:47:01 ID:TPn54rPk0 BE:5880896-#
>>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の丁稚どんだけを呼び出すようにしますですです。
329ピロリ:2005/06/05(日) 02:50:32 ID:hV/aUjEj0
>>327
うごいたー @qb6

全サーバに配布していいですか?
330 ◆TWARamEjuA :2005/06/05(日) 02:50:43 ID:TPn54rPk0 BE:3267465-#
>>328
→ひとまず基地からはqb6の丁稚どんだけを呼び出すようにしますですです。
スタンバイ出来ました。
331ピロリ:2005/06/05(日) 02:53:17 ID:hV/aUjEj0
んじゃ 配布しまーす
332 ◆TWARamEjuA :2005/06/05(日) 02:54:09 ID:TPn54rPk0 BE:1743528-#
ひとまずqb6「だけ」配布完了した模様です。@新ファイル
333ピロリ:2005/06/05(日) 02:55:05 ID:hV/aUjEj0
指示にしたがいますー

まだ全サーバ配布はやってません
334 ◆TWARamEjuA :2005/06/05(日) 03:00:19 ID:TPn54rPk0 BE:2178454-#
ちょと様子見しています。
船が自爆しないからかな?
335 ◆TWARamEjuA :2005/06/05(日) 03:03:25 ID:TPn54rPk0 BE:6861097-#
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<>

リストは行き渡っています。。。
336 ◆Reffi/bQ.c :2005/06/05(日) 03:05:17 ID:dBvuVsfA0
rockテストやってきて吸い込まれるのは確認しましたがエラーメッセーが出ないですね。
337ピロリ:2005/06/05(日) 03:06:03 ID:hV/aUjEj0
どんな時にどんなメッセージが出るんでしたっけ?
338root▲ ★:2005/06/05(日) 03:06:29 ID:???0 BE:1094843-##
>>336
花が咲くとき以外は、エラー出ないはず。
339root▲ ★:2005/06/05(日) 03:07:29 ID:???0 BE:4378368-##
>>338
× エラー
○ エラーメッセージ

>>337
通常 ただ吸い込まれる
いっぱつもの さくらが咲いてますよ
340讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/05(日) 03:08:25 ID:CusxkNZG0 BE:13590465-##
普通の書き込みがずっと吸収されてる…
341ピロリ:2005/06/05(日) 03:09:00 ID:hV/aUjEj0
あと三発で「Rockは人生だ」でしたっけ?
342 ◆Reffi/bQ.c :2005/06/05(日) 03:09:20 ID:dBvuVsfA0 BE:182687797-##
了解しますた。
さくらが咲くurlはわからないのでそっちの検証は無理ですけど無事に稼働しているよう
です。
あとはコストの削減具合の観察ですね。
343 ◆TWARamEjuA :2005/06/05(日) 03:10:08 ID:TPn54rPk0 BE:1634235-#
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"

ひっかかりました(照)
344 ◆Reffi/bQ.c :2005/06/05(日) 03:10:23 ID:dBvuVsfA0 BE:182687797-##
あれれ
普通の書き込みも吸い込まれてる(滝汗
345root▲ ★:2005/06/05(日) 03:10:57 ID:???0 BE:1460328-##
>>341
今は、それコメントアウトされてたような。
346ピロリ:2005/06/05(日) 03:15:03 ID:hV/aUjEj0
>>345
ほんとだ、吸い込まれる仕様ですね
347動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 03:15:37 ID:10zmJNsO0
肝心の負荷は?
348root▲ ★:2005/06/05(日) 03:23:24 ID:???0 BE:4925096-##
>>347
配布が終わったら、animeサーバあたりの様子と、
qb6 でのプロファイリングを再度やってみるです。
349 ◆TWARamEjuA :2005/06/05(日) 03:27:46 ID:GPDrF8up0 BE:4901459-#
もしかして、qb6ではIsKoukokuを呼び出しているところが他のとはちょと違うのかな?
・さくらか咲かない。
・BBRが返ってこない。
という症状が現れています。
350ピロリ:2005/06/05(日) 03:28:54 ID:hV/aUjEj0
確認してみますー
351ピロリ:2005/06/05(日) 03:30:18 ID:hV/aUjEj0
スルーするかどうかの違いはありますが
他には制御に違いはないようです
352 ◆TWARamEjuA :2005/06/05(日) 03:33:19 ID:GPDrF8up0 BE:3267656-#
>>351
了解ですー

とりあえずやっちゃてみます?@全鯖配布
353ピロリ:2005/06/05(日) 03:33:54 ID:hV/aUjEj0
りょうかいですー

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

配布しなおしますー
355root▲ ★:2005/06/05(日) 03:36:19 ID:???0 BE:4377986-##
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
356root▲ ★:2005/06/05(日) 03:36:36 ID:???0 BE:4377986-##
な、なんだ。
もう1回。
357root▲ ★:2005/06/05(日) 03:38:38 ID:???0 BE:1642436-##
animeサーバ、IsKoukokuが有効になったやつが入ったのを確認しました。
確認中。
358 ◆TWARamEjuA :2005/06/05(日) 03:41:16 ID:GPDrF8up0 BE:4900695-#
ではでは、全鯖開始ONにしますですー@リスト
359root▲ ★:2005/06/05(日) 03:41:42 ID:???0 BE:2736465-##
いいかんじみたい。

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

コード変換って、すごく重いのね。
360root▲ ★:2005/06/05(日) 03:42:06 ID:???0 BE:4925096-##
>>358
OKです。観察を継続。
361root▲ ★:2005/06/05(日) 03:47:44 ID:???0 BE:5746379-##
animeサーバ、SJISバージョンに切り替わったようです。
362root▲ ★:2005/06/05(日) 03:51:36 ID:???0 BE:1916137-##
んでは、qb6でプロファイリングしてみるです。
メインのほうではなく、もとの1行目をさわるです。とお知らせ。
363root▲ ★:2005/06/05(日) 03:55:13 ID:???0 BE:4469377-##
わーい。

%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
364root▲ ★:2005/06/05(日) 03:57:48 ID:???0 BE:730324-##
で、>>362 は元に戻しました。

>>26 と比較すると、効果は明白ですね。
コストが 1/10 以下になったんではないかと。
365 ◆Reffi/bQ.c :2005/06/05(日) 04:08:03 ID:yCZjMTdF0 BE:104393366-##
>26と>363の簡単な比較データ(何故か円換算)

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


※ここまで下がれば大成功ですね。
366動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 04:09:59 ID:Vv3vrarN0
1/10と言っても1が0.1になったというよりは10が1になったような感じだけど
367root▲ ★:2005/06/05(日) 04:10:46 ID:???0 BE:2189164-##
最初、計測したときにIsKoukokuスルーされてるんじゃないかと、心配になりました。
でも、そんなことはないみたいです。
368 ◆Reffi/bQ.c :2005/06/05(日) 04:13:35 ID:yCZjMTdF0 BE:115992858-##
ちょっと、ヤバ目の不具合発見
rockに引っかかった時に本来ならばrockワード以外は書けるはずなのに全く書けなく
なってます。
(引っかかった以降全て吸い込まれて書けない)
ケーブルでこれ出ちゃうと該当回線が書けなくなって巻き添えが大量に出てしまいます。
(既に引っかかってるところも出てます。)
369root▲ ★:2005/06/05(日) 04:16:55 ID:???0 BE:3283294-##
なんか、変かも。
こんなにひっかかるわけないし。

http://mumumu.mu/mrtg/mrtg-rrd.cgi/bbqbbx/
370 ◆Reffi/bQ.c :2005/06/05(日) 04:20:59 ID:yCZjMTdF0 BE:115992285-##
>369
多分、>368で巻き添えが大量に出ているかも
改善するまでqb6以外は元に戻した方がいいかも
371root▲ ★:2005/06/05(日) 04:24:16 ID:???0 BE:1277827-##
# では 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 '';

ここが、いまいちな予感。
372 ◆TWARamEjuA :2005/06/05(日) 04:26:32 ID:sQF81xsP0 BE:7841489-#
あ、なっとく。。。
373ピロリ:2005/06/05(日) 04:26:40 ID:hV/aUjEj0
わーい

まずはヨロ個簿絵
374root▲ ★:2005/06/05(日) 04:26:51 ID:???0 BE:2188883-##
>>372
どうすればよい?
375ピロリ:2005/06/05(日) 04:26:57 ID:hV/aUjEj0
ちとみてきます
376FOX ★:2005/06/05(日) 04:28:50 ID:???0
>>372
どうすればよい?
377root▲ ★:2005/06/05(日) 04:29:16 ID:???0 BE:5837388-##
で、直ったら、
BBXの登録アドレスを1回クリーンアップしないと、いけなそうっすね。

そのへんは、ぼちぼちと。
378FOX ★:2005/06/05(日) 04:29:25 ID:???0
うん 書けない。。。
★使うっす
379大佐は疲労困憊φ ◆K76a0xu20c :2005/06/05(日) 04:30:20 ID:Ygs05Pio0 BE:40721235-###
http://qb5.2ch.net/test/read.cgi/sec2chd/1117705579/
ここでかなりの人が報告してますねぇ・・・・

僕も引っ掛かってましたが。
380FOX ★:2005/06/05(日) 04:31:08 ID:???0
んじゃ
まず スルー版は配布しまーす
381root▲ ★:2005/06/05(日) 04:31:42 ID:???0 BE:2189164-##
直し方待ちで。

なんか、本文内にNGワードがなくてもNGワードがあったことにされているみたい。
382 ◆TWARamEjuA :2005/06/05(日) 04:33:19 ID:sQF81xsP0 BE:1307243-#
# 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;

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

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

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

にしてみた @qb6
388root▲ ★:2005/06/05(日) 04:39:26 ID:???0 BE:1276872-##
>>382 >>387
…ということは、これで OK なのかしら。
389 ◆TWARamEjuA :2005/06/05(日) 04:39:45 ID:sQF81xsP0 BE:4900695-#
>>386
open(ADFILE,"内緒");
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>; # ここで変換
close(ADFILE);

ですー

あー、このあたりもスキーリさせれば良かったのか、、、orz...
390 ◆TWARamEjuA :2005/06/05(日) 04:40:28 ID:sQF81xsP0 BE:2941439-#
>>387-388
ですですー
391 ◆Reffi/bQ.c :2005/06/05(日) 04:41:23 ID:yCZjMTdF0 BE:34798234-##
さっき、qb6でテストしましたけどまだ吸い込まれてます。
392root▲ ★:2005/06/05(日) 04:41:50 ID:???0 BE:3648285-##
>>390
ということは、

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

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

         =≡= ∧_∧
          /   (・∀・ )
        〆   ┌  |    | .∈≡∋
         ||  γ ⌒ヽヽコノ   ||
         || .|   |:::|∪〓  ||
        ./|\人 _.ノノ _||_. /|\
394root▲ ★:2005/06/05(日) 04:42:14 ID:???0 BE:6567089-##
>>392
> ・いったん BBX の IP アドレスリストをクリアする

を、やってきます。
395 ◆TWARamEjuA :2005/06/05(日) 04:42:25 ID:sQF81xsP0 BE:653832-#
>>392
はい。そうなるですm(_ _)m
396動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 04:44:37 ID:Eclfk4XM0
てst
397モーマン☆鯛。@p2:2005/06/05(日) 04:44:46 ID:CusxkNZG0
いっぷくしつつ10分まつとか
398動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 04:45:23 ID:dSP9Z3eN0
なんとなくまんこ
399動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 04:46:00 ID:C31UvYa30
直りました。 お疲れ様
400root▲ ★:2005/06/05(日) 04:46:42 ID:???0 BE:1915373-##
クリアできたはず。< BBX
401root▲ ★:2005/06/05(日) 04:47:21 ID:???0 BE:1642829-##
で、
> ・このバージョンを配布する

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


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

みんながテスター
407動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 05:02:46 ID:sHXPHnDW0 BE:14292746-##
>>405
ん?
またいつぞやのように「未承諾広告は氏ね」とかけばええのか?
408root▲ ★:2005/06/05(日) 05:02:56 ID:???0 BE:5107687-##
DNS側は準備OKのはず。>>406
409FOX ★:2005/06/05(日) 05:03:28 ID:???0
配布したです。
410reffi@報告人 ★:2005/06/05(日) 05:03:43 ID:???0
募集したらテストしてもらっているようです。


※テスターの人へ
 不具合報告等はこちらまで
411root▲ ★:2005/06/05(日) 05:04:03 ID:???0 BE:729942-##
現在、glist / klist とも、初期化した状態です。>未承諾広告さん、ALL
412● ◆ANGLERlqvM :2005/06/05(日) 05:04:10 ID:SN6QvNVW0 BE:2015036-##
qb6 ちゃんと動いてる悪寒。
テストですぅ
http://qb6.2ch.net/test/read.cgi/operate2/1104421903/144-
413p2048-ipad03otsu.shiga.ocn.ne.jp(220.105.33.48) ◆TWARamEjuA :2005/06/05(日) 05:04:41 ID:sQF81xsP0 BE:5336677-#
さくら、非さくら、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
414root▲ ★:2005/06/05(日) 05:07:18 ID:???0 BE:2462393-##
DNS側、正常に見えます。
異常なパケットの増加等、観測されていません。

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

お腹ぐるぐるしています
旅にでます
416root▲ ★:2005/06/05(日) 05:08:05 ID:???0 BE:1276872-##
>>413
# ./main/bbxdump.pl -kC | grep 220.105.33.48
220.105.33.48 Sat Jun 4 13:03:16 2005
417root▲ ★:2005/06/05(日) 05:09:59 ID:???0 BE:3831067-##
で、今 220.105.33.48 を bbxdel しておきました。
418 ◆TWARamEjuA :2005/06/05(日) 05:10:23 ID:sQF81xsP0 BE:2614638-#
>>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/

桶みたいですよね♪
419root▲ ★:2005/06/05(日) 05:11:59 ID:???0 BE:1276872-##
>>418
よさげですね。

しばらく観察するです。

>>415
お帰りをお待ちしております。
420p62b987.hyognt01.ap.so-net.ne.jp(219.98.185.135) ◆ANGLERlqvM :2005/06/05(日) 05:12:12 ID:LGCH4tNX0 BE:3133474-##
上手いこと動いてる悪寒。qb6
IP繋ぎなおしても動作正常に見えました。
Monazilla/1.00Hotzonu/2.0
421root▲ ★:2005/06/05(日) 05:13:30 ID:???0 BE:547632-##
>>420
# ./main/bbxdump.pl -kC | grep 219.98.185.135
219.98.185.135 Sat Jun 4 13:10:03 2005

これも、これから消しておきます。
422FOX ★:2005/06/05(日) 05:14:11 ID:???0
ok?
423root▲ ★:2005/06/05(日) 05:14:55 ID:???0 BE:3830876-##
>>421 done.
424root▲ ★:2005/06/05(日) 05:15:19 ID:???0 BE:1916137-##
>>422
大丈夫っぽいです。
425FOX ★:2005/06/05(日) 05:16:13 ID:???0
わーい
426root▲ ★:2005/06/05(日) 05:17:31 ID:???0 BE:1824645-##
で、Rock54で登録されたIPアドレスのリストをいったんクリアしたので、
一時的に広告貼られるかもですが、
業者さんが自ら貼ろうとしていくことにより、
時間を追って、正常に戻っていくかと。
427 ◆TWARamEjuA :2005/06/05(日) 05:17:40 ID:sQF81xsP0 BE:1634235-#
暫し観測ってところでしょうか。
何だかモヤモヤしていたのがすっきりとした感じです。
みなさんありがとうございましたですですm(_ _)m深謝

何だか、次の目標みたいなのが見え隠れしてきたような♪
428root▲ ★:2005/06/05(日) 05:19:34 ID:???0 BE:3284249-##
落ち着いたら、再度 bbs.cgi をプロファイリングしてみるです。@ qb6
429root▲ ★:2005/06/05(日) 05:22:05 ID:???0 BE:1460328-##
順調に(普通のペースで) klist が増えていっているようなので、
問題なさげですね。

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


※もし直せる人が寝た状態だったら恐ろしいことになってた悪寒
 (報告によると公式p2はおろか携帯も巻き添えが及んでいたらしいです。)
431 ◆TWARamEjuA :2005/06/05(日) 05:24:26 ID:sQF81xsP0 BE:3050047-#
>>429
おおむね順調です。
細かいところの修正点などは仮眠を取ってからにしようかと(苦笑)
432root▲ ★:2005/06/05(日) 05:25:48 ID:???0 BE:1094562-##
了解です。>>431

で、今のままだと統計見るのに影響があるので、
今日のはずかしい記録(wを、これから消しておくです。>未承諾さん

http://mumumu.mu/mrtg/mrtg-rrd.cgi/bbqbbx/bbr.html
433 ◆TWARamEjuA :2005/06/05(日) 05:26:34 ID:sQF81xsP0 BE:436122-#
>>430
デリファレンス出来ない状態でしたので、
eval{$In_Strings =~ m<>}
となっていて何もかも捕獲される状態になっていましたから、、、(汗)
434root▲ ★:2005/06/05(日) 05:40:33 ID:???0 BE:1368735-##
さっきのは、ちゃんと通ってなかったっぽいです。
こんどのは、それっぽいです。

確実に、コストは下がってるですね。

%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
435root▲ ★:2005/06/05(日) 05:42:04 ID:???0 BE:730324-##
>>434
>>26 と比較すると、目視で 1/4 ぐらいにはなったのかな。
かなり、いいかんじだと思われ。
436root▲ ★:2005/06/05(日) 05:45:45 ID:???0 BE:1642436-##
で、
@FOX_Ro54 = <ADFILE> ;

を、

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

にした分、initFOX のコストが少し上がったと。
でも、全体のコストは下がったと、そんなかんじか。
437root▲ ★:2005/06/05(日) 05:49:49 ID:???0 BE:1094562-##
…でも、initFOX は上のほうにもあるように、船が出港する時しか通らないから、
全体としては、大幅にコスト下がってるですね。

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

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

これで、某サーバのスレ保持数を 700 でキープできるといいなと。
(ちょっと、500にするのは負けっぽいなと)
438動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 05:52:04 ID:lDRHu7D40
現時点でIskoukokuスルーになっている鯖は?
439動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 05:57:20 ID:CusxkNZG0
4時頃にいきなり公式p2でdat取得済みのスレのスレタイのみが文字化けしてしまったのもこれが原因でしょうか?
ちなみに面白news板でdat取得済みのスレに起こった不具合のようですが
この場合、一旦ログを削除してdatを再取得しなければ直りませんかね?
440root▲ ★:2005/06/05(日) 06:11:11 ID:???0 BE:2189164-##
>>438
live16 live20 live21
ex9 ex10 ex11
tmp5

>>439
違うような気がするです。
441動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 06:17:17 ID:lDRHu7D40
>>440
コストが減った事でその鯖群に戻す予定はないの?
442動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 06:30:22 ID:Udm1KQ0E0
懲罰鯖なんだから必要なしでいいんじゃない?
443root▲ ★:2005/06/05(日) 06:40:13 ID:???0 BE:547823-##
>>441
live16 20 21 ex11 は、私は戻す気ないです。
他は、状況を見ながらかなと。
444動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 10:21:11 ID:3ZFpX0H70
>>436
その部分
外部に出せないかな?



と本気で思う
445一2ちゃんねら:2005/06/05(日) 15:32:51 ID:qwR0dPua0
root▲ ★ さん、明け方まで乙でした。
いつも運営ありがとうございます。
どうぞお体にお気をつけて・・・。
446動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 16:44:10 ID: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)荒らしくたばれ(謎
447動け動けウゴウゴ2ちゃんねる:2005/06/05(日) 17:56:13 ID:zc3KDxSN0
>>440-443
試しに負荷試験やってみれば?
すぐ止められる状況じゃないとだめだろうけど。
448root▲ ★:2005/06/05(日) 18:43:20 ID:???0 BE:4925096-##
>>447
今日は日曜(負荷高い日)なんで、時間とれたらコソーリやるかも。
449root▲ ★:2005/06/05(日) 20:44:58 ID:???0 BE:5746379-##
1時間ばかり前から、ex9 ex10 の IsKoukoku 有効にしてみた。
450動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 01:36:13 ID:QKBCUdccO
現在2chで使用されているPerlは5.6より前のものなんですか?
451FOX ★:2005/06/06(月) 01:38:49 ID:???0
いろいろじゃないかなぁ
version 意識したことはないっす

banana601(etc3)
This is perl, v5.6.1 built for i386-freebsd
452動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 02:14:55 ID:QKBCUdccO
5.6以上なのであれば、
文字コードの変換にはXSのJcodeが使えたのでは。
PurePerlのjcode.plよりは負荷も少ないと思われますが。
453root▲ ★:2005/06/06(月) 02:24:57 ID:???0 BE:1368353-##
>>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は前に頼まれて、全サーバに入れてあるです。
454動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 02:32:23 ID:QKBCUdccO
そうでしたか。失礼。

上のソースを見たところ&jcode::*となっていたので
てっきりjcode.plを使っているものかと思いこんでいました。
455root▲ ★:2005/06/06(月) 02:36:20 ID:???0 BE:3283766-##
>>454
jcode.pl 「も」使っているようですよ。
何せ、つぎはぎのソースなんで。

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

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

せめて構文チェックくらいはサーバに上げる前に:P
457FOX ★:2005/06/06(月) 03:00:21 ID:???0
もう六年もそれを・・・
458動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 03:02:48 ID:WNaqgJ4P0 BE:3046853-##
まぁ今ちゃんと動いてるんだし、書き直ししなくてもとりあえずは問題ないんじゃない?
459動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 03:03:08 ID:WNaqgJ4P0 BE:7311694-##
>>458>>457
460動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 03:09:30 ID:enB61RF60
まずくなったらその時考えよう(・∀・)
461stream ◆ap/yuix/tw :2005/06/06(月) 03:10:58 ID:qGVq9MHd0 BE:16035555-#
うへへ
462動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 03:13:23 ID:QKBCUdccO
なんか偉そうなこと言っちゃいましたが

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

では。よい夜を。
463動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 04:01:43 ID:utjWLPN60
「説教するならコードをくれ」安達祐実
464 ◆TWARamEjuA :2005/06/06(月) 08:01:39 ID:QnmvX2jK0 BE:1307243-#
>>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ワード
465動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 12:02:51 ID:0dq56pC0O
JcodeがEncodeのラッパーになるのは5.8.1から。

というかPerl5.8.2を入れて
use encoding
use Encode qw/encode decoge/
した方がJcodeより速い希ガス
466stream ◆ap/yuix/tw :2005/06/06(月) 16:19:29 ID:qGVq9MHd0 BE:12828454-#
ふと思いついたんだけど、過去の突発的な荒らしなどに対して、bbs.cgiに細工をして対処をしたことがあったと思うんだけど、
もう不要な処理については削除すれば、軽くなったりしないのかな。

思いついたもの
1.レスアンカーを付けまくる嵐が出たから、レスアンカーの数を制限した
2.一部の広告荒らしに対し、自動的にそのURLを消去し、名前をfusianaにする
467stream ◆ap/yuix/tw :2005/06/06(月) 18:34:09 ID:qGVq9MHd0 BE:10262944-#
「思いついた」というより、「思い出した」だな
468動け動けウゴウゴ2ちゃんねる:2005/06/06(月) 21:02:50 ID:i4YGKP210
bbs.cgiの朗読会を開こう
1行目から読んでいって
「この規制なんで入れたんだっけ?」
「あ、あの祭りのときだ」
「もういらないよね」
「じゃあ外そう」
469タソキ@妄想系統 1/10 ☆ ◆Ver7J..... :2005/06/06(月) 21:40:57 ID: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みたいなことになってるかもと”予測”。
470タソキ@妄想系統 1/10 ☆ ◆Ver7J..... :2005/06/06(月) 21:44:54 ID:TeQoYgbS0
UserAgent::BEGIN は関係なかったです。
471タソキ@妄想系統 1/10 ☆ ◆Ver7J..... :2005/06/07(火) 08:08:39 ID:FCha78oI0
IsKoukoku の eval を外してみて計測してみるとかいかがでしょう。
472タソキ@妄想系統 1/10 ☆ ◆Ver7J..... :2005/06/07(火) 09:26:54 ID:FCha78oI0
Shift JIS で起こる問題は、
バイトに変換して末尾が5Cの文字は、
エスケープする必要があるということです。
リストのメンテナンスがめんどくさくなる。

対策として、
euc-jp だったリストを unicode にして、
initFOX で変換してみる。
unicode の配列を Shift JIS に変換 # こっちのほうが変換が早いかもしれない。
euc-jp の配列を Shift JIS に変換 # 以前
Shift JIS の CSV型.txt(エスケープに問題がある) を読み込む # 現在
473動け動けウゴウゴ2ちゃんねる:2005/06/07(火) 12:03:34 ID:AAvAUAYU0
2ch全体をeucで作り直すとかw
474動け動けウゴウゴ2ちゃんねる:2005/06/07(火) 12:57:08 ID:tM9aFKYiO
>>472
それはencodingプラグマで解決出来ませんでしょうか?

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

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

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

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

でOK。
477動け動けウゴウゴ2ちゃんねる:2005/06/07(火) 17:39:29 ID:LLOWUNeo0
>>476
正規表現の所でえらー

アルファベットだけの所で巻き添えも出やすくなりそう
478動け動けウゴウゴ2ちゃんねる:2005/06/07(火) 22:47:25 ID:fi6yLSjv0
> 正規表現の段階なら
> Shift_JIS文字列だけquotemetaすれば良いし、
479476:2005/06/08(水) 12:25:18 ID: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は外せるのでは。
480476:2005/06/08(水) 15:50:17 ID: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.
481 ◆TWARamEjuA :2005/06/08(水) 16:30:15 ID:pgAoBpPW0 BE:6099078-#
リストは、正規表現文字列が連なっております。
例えば。
(\.|.|/|/)(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される)を繰り返さないようにと、あえてそのようにしてあります。
482動け動けウゴウゴ2ちゃんねる:2005/06/08(水) 19:06:25 ID: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に関しては了解です。
483476:2005/06/09(木) 12:03:19 ID: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しとくってのはアリかも知れません。
484 ◆TWARamEjuA :2005/06/09(木) 15:31:18 ID:vy/zxLpj0 BE:1960463-#
>>483
エロエロとありがとうですm(_ _)m深謝
ただ、、、今、家にあるメインの林檎機が昇天されましたので、対応が出来ないで居ますですぅぅぅ(滂沱)
♪実はすべての作業を林檎機でやっているものでして・・・
485動け動けウゴウゴ2ちゃんねる:2005/06/09(木) 18:20:52 ID:b8qRY6Z90
quotemetaを使わずに
s/(?<=[\x81-\x9F\xE0-\xFC])[\[\\\]\^\{\|\}]/\\$&/g
とかでも(やってることはあんまり違わないか)
486476:2005/06/09(木) 20:08:30 ID:NnR04xax0
>>485
それだとエラーが出ますね。例えば、

"ワ[a]"

だと「ワ」は2バイト目も8bitが立っているので検索がスキップされますよね。
で、2バイト目と3バイト目の組み合わせをShift_JISの「充」と間違えて開き角括弧
「 [ 」をエスケープしてしまいます。
487動け動けウゴウゴ2ちゃんねる:2005/06/09(木) 20:50:47 ID:b8qRY6Z90
>>486
おお、そうだ。
488動け動けウゴウゴ2ちゃんねる:2005/06/09(木) 23:45:12 ID:b8qRY6Z90
もしかしてこうすればいいのか?(未テスト)
s/([\x81-\x9F\xE0-\xFC])([\[\\\]\^\{\|\}\x81-\x9F\xE0-\xFC])/$1\\$2/g
489476:2005/06/10(金) 00:51:10 ID: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の方が安全かなとは思う(自分贔屓ですんません)。
490動け動けウゴウゴ2ちゃんねる:2005/06/10(金) 01:11:38 ID:Mm/OM+6u0
>>489
はやさの問題ではなくて気分の問題だったり.
>quotemetaの方が安全かなとは思う
同意w
491タソキ@妄想系統 1/10 ☆ ◆Ver7J..... :2005/06/10(金) 08:39:08 ID:klkomdbB0
>>483ナイスゥ

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

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

解決方法
 1、encodingプラグマでエンコードする
 2、Shift_JIS文字列だけquotemetaする (エンコードよりはコストが安いはず)
後者のほうが処理コストが安い。
492476:2005/06/10(金) 11:20:46 ID: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 ワードがあったり引っかからなければスキップ
}
493476:2005/06/10(金) 11:23:23 ID:C8+6ZCy40
×   eval{$main::In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
○   eval{$In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。

失礼。
494 ◆TWARamEjuA :2005/06/10(金) 17:24:44 ID:OGUiEi3G0 BE:2614638-#
えっと、エスケープ処理は基地側で執り行おうと思っておりますので、IsKoukokuはそのままで桶になるかと♪
495root▲ ★:2005/06/11(土) 00:49:53 ID:???0 BE:5837388-##
>>494
りよかいです。
496476:2005/06/11(土) 01:23:50 ID:VA/kMcZN0
>>494
お疲れ様です。とりあえず、

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

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

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

だそうですが。
503▲ ◆cZfSunOs.U :2005/06/12(日) 18:07:45 ID:uT21qpVz0
今は subject.txt や index.html の更新時にロックしてないらしいので,
競合した時に意図せぬ動作につながっている,とかも考えられなくもないですね.
subject.txt のレス数について,単純にインクリメントするだけだとずれてくので
dat 中のレス数を毎回数え直さないといけないってのも,ロックしてない故の
競合によって起きてるような気もします.

で,対策ですが,まず考えられるのはきちんとロックするということですね.
それ以外の方法としては,message queue を利用して,bbs.cgi からは
subject.txt 等の更新要求を mq に放り込んで,別途走らせておく
更新用デーモンが mq から要求を取り出して処理する,って感じでしょうか.
mq を利用する方法なら,ロックしなくても処理がシリアライズされますし,
その更新用デーモンを C で書いて subject の並べ替えを例えば mmap() して
memmove() するような処理にすれば,今の Perl の処理よりも軽くできると思います.
504root▲ ★:2005/06/13(月) 04:54:11 ID:???0 BE:5107878-##
>>501
BBS.CGI - 2005/06/13
505root▲ ★:2005/06/13(月) 14:58:01 ID:???0 BE:3283766-##
移動しました。

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

さて、まずは原因をつかまないと。
506root▲ ★:2005/06/13(月) 14:58:19 ID:???0 BE:1642436-##
むこうで聞いてみるか。
507root▲ ★:2005/06/13(月) 15:30:25 ID:???0 BE:3648285-##
さて、どうも配布用DBがこわれてるっぽいと。
で、配布用DBを作っているやつがおかしくなったらしいと。

質問・雑談スレ174@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1118562549/625-646
508root▲ ★:2005/06/13(月) 15:35:48 ID:???0 BE:2554447-##
ということで、この問題は後で別途ということに。
509 ◆TWARamEjuA :2005/06/13(月) 20:11:46 ID: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深謝
510 ◆TWARamEjuA :2005/06/13(月) 20:13:27 ID: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深謝
511root▲ ★:2005/06/13(月) 22:14:52 ID:???0 BE:6567089-##
>>510 を qb6 に入れて試して、エラーがなかったら配布するです。
512root▲ ★:2005/06/13(月) 22:22:20 ID:???0 BE:912825-##
if (my $matched = eval{ return $In_Strings =~ m<$NG_word> ? $& : undef }) {
$NG_word_ref->[0] = $matched; return $NG_word_ref;
} # 合致したらNGワード部分の摘出とリファレンスを返す。

これを配布しました。
513 ◆TWARamEjuA :2005/06/14(火) 10:01:48 ID:6HNR8LJO0 BE:3484984-#
>>512
今のところ無事そうですよね。。。
よかた・・・(泪)
514stream ◆ap/yuix/tw :2005/06/14(火) 16:49:08 ID:S45VmZ2g0 BE:3849023-#
名前欄に山崎渉が入ってるとfusianaになる機能とか、
そんな感じのいろんな過去の遺物を取り払ったら負荷が減ったりしないかな
515root▲ ★:2005/06/15(水) 00:58:12 ID:???0 BE:2736656-##
>>514
塵も積もれば(りゃ ってかんじですか。

また暇を見てプロファイリングしてみて、重いところを重点的に、
ってかんじですかね。
516root▲ ★:2005/06/15(水) 00:59:03 ID:???0 BE:2462393-##
ちなみに某京ぽんから「む山崎渉」って名前欄に入れているので、
この機能なくなると、ちょっと困っちゃったりして(w。
517讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/15(水) 04:59:04 ID:d+2pOkLz0 BE:22197577-##
fusianasanじゃないのかw
518動け動けウゴウゴ2ちゃんねる:2005/06/15(水) 13:16:52 ID:XFl23xTO0
だったら

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

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

それをやった場合、

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

最低限でもメリットがデメリットを下回らないことが確実であることが
開発の条件だと思うです。
520動け動けウゴウゴ2ちゃんねる:2005/06/16(木) 01:15:09 ID:/BCKYOVZ0
>>518
・デメリット = たくさん考えられたフューザネイザン等のコピペが意味を成さなくなる。
521動け動けウゴウゴ2ちゃんねる:2005/06/16(木) 14:39:21 ID:X1yfjbM90
>>520
それは過去の遺物として残ったりして良いんじゃないのかな・・・?
522root▲ ★:2005/06/17(金) 14:34:24 ID:???0 BE:1641863-##
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;
523root▲ ★:2005/06/17(金) 16:02:27 ID:???0 BE:1276872-##
#! /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;
524root▲ ★:2005/06/17(金) 16:03:39 ID:???0 BE:2553874-##
あ、呼ぶところを入れてないね。
525root▲ ★:2005/06/17(金) 16:08:53 ID:???0 BE:1642829-##
こんな感じか。
サーバタイプとってくるところは、外出ししといたほうがよさそうだから、
ちょっと冗長だけど、こうしておこう。

#! /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;
526動け動けウゴウゴ2ちゃんねる:2005/06/17(金) 16:35:12 ID: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宣言しちゃった方が早いんではないかと思います。
527root▲ ★:2005/06/17(金) 16:35:25 ID:???0 BE:365322-##
MAXLOADAVGは1回だけ調べればいいので、ぐろーばるー(FOX)のほうに入れよう。
528root▲ ★:2005/06/17(金) 16:36:32 ID:???0 BE:3648285-##
>>526
うわあ。ありがとうです。

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

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

で、$GB->{LOADAVG} (こっちは毎回調査)と $FOX->{MAXLOADAVG} を比較して、
$GB->{LOADAVG} 以上だったら、特殊処理っていうかんじで。
532root▲ ★:2005/06/17(金) 17:20:05 ID:???0 BE:547632-##
で、
$GBX->{LOADAVG} = &mumumuGetLA();

にした。
確かにこのほうが、わかりやすいですね。
533root▲ ★:2005/06/17(金) 17:44:23 ID:???0 BE:2553874-##
で、mumumuMaxLACheckを作った。

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

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

これで、処理部分からこれを呼んでチェック。
534root▲ ★:2005/06/17(金) 17:48:47 ID:???0 BE:4378368-##
基本的に、$FOX が船が出航する時に1度だけ作られて、
$GB が船に乗る客ごとに作られているようです。

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

数値比較なら

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

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

>>534
なるほど。ソースは基本的に非公開なんでしょうか?
536root▲ ★:2005/06/17(金) 18:26:58 ID:???0 BE:547823-##
>>535
そうなんですか(何も知らないのです)。
変えておきます。

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

BBS.CGI - 2005/06/17
539動け動けウゴウゴ2ちゃんねる:2005/06/17(金) 18:43:35 ID:xq5cod4F0
>>536
というより、クリティカルなところは公表しないほうが無難かと
540root▲ ★:2005/06/17(金) 18:46:10 ID:???0 BE:1642829-##
>>539
むろんひ(りゃ の「公開しない」は、そういう方針からですね。
541だんしゃくねこ:2005/06/17(金) 18:48:53 ID:JW+0RdvC0
>>538
│_A
│・−・) ふふふ。。。(無表情で
↓ ⊂)
542動け動けウゴウゴ2ちゃんねる:2005/06/17(金) 18:53:11 ID:MsktfovF0
むぎゅ。
543 ◆mami/ZczII :2005/06/17(金) 19:18:23 ID:6y9xGyFjO
>>530
ふむ。
544root▲ ★:2005/06/17(金) 19:22:36 ID:???0 BE:1095034-##
>>543
あ、プログラミングをしたさそうな人が。
545root▲ ★:2005/06/17(金) 19:23:46 ID:???0 BE:3648858-##
>>530
…下2行は、確かにそうですね。

というかこの問題は、なかなかに難しい(テクニカルにじゃなくて)のかもなと。
546動け動けウゴウゴ2ちゃんねる:2005/06/17(金) 19:29:32 ID:Oo+hRM1L0
マミ… クリィミーマミ…
yasuさんか
547 ◆mami/ZczII :2005/06/17(金) 20:35:24 ID:6y9xGyFjO
>>545
グローバル変数はまだ使い慣れてないので、
頃合いの勘が働かないです。
たった数ファイルなのに「どこで定義されているんだー!」状態です。

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

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

>>547
グローバルスコープな書き方の欠点がまさにそれですよね。てことは、グローバル変数は
実装上止むを得ず使ってるんでしょうか?
549 ◆mami/ZczII :2005/06/17(金) 21:03:43 ID:6y9xGyFjO
>>548
携帯用c.2chのphpを解読中でーす。
550 ◆TWARamEjuA :2005/06/17(金) 22:20:48 ID:LI9OTnlL0
そろそろ引退の時期?
551 ◆mami/ZczII :2005/06/17(金) 22:55:06 ID:6y9xGyFjO
>>550
ん?私の事ですか?
人員を増やしても良いと思ってはいます。
552動け動けウゴウゴ2ちゃんねる:2005/06/17(金) 23:18:54 ID:DURZUdCm0
>>551
人員増やすなら立候補したいんだけど、その場合どうればいい?
携帯は経験浅いが、Perlなら10年以上Webプログラムとして書いてる。
553動け動けウゴウゴ2ちゃんねる:2005/06/17(金) 23:28:12 ID:Oo+hRM1L0
聡明期からか
すげえな
554動け動けウゴウゴ2ちゃんねる:2005/06/17(金) 23:44:30 ID:g+uG/BcP0
perlerさん並の理解力と柔軟性を期待
555動け動けウゴウゴ2ちゃんねる:2005/06/17(金) 23:57:14 ID:DURZUdCm0
>>553
Web自体はもっと前からあったけど、Mosaicの普及で一気に火がついた頃です。

>>554
大きくは裏切らないと思う。
556動け動けウゴウゴ2ちゃんねる:2005/06/18(土) 01:18:32 ID:P97ComF00
なんか詳しそうな人キタ━!

念のため関連スレ
http://qb6.2ch.net/test/read.cgi/operate2/1108090447/l50
557 ◆TWARamEjuA :2005/06/18(土) 07:52:36 ID:lPNKO7CS0
KヨNTさんとかRes9ueとかですよねぇ。。。@グロ引きずりまわして破綻
この辺の改造依頼は基本的には断っていたりしてして(苦笑)

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

>>557
お疲れです。

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

あとフリーウェアの開発が途中で止まっちゃって、かといってソースコードも開示しないって
事例が多いのもそういうのが原因だったりすることが多いんじゃないかな。
559 ◆MUMUMUhnYI :2005/06/18(土) 13:53:02 ID:1dhVI57l0 BE:1641863-##
>>558
再構築おつです。
人の書いたPerlの保守って、Cとかと比較してもなんか相当大変みたいですね。
(「みたい」っていうのは、感覚では理解しているが単に自分が体験していないってことです)

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

そのPerlは主に書いたやつ(二人)が現役だそうで、
今でもきちんとメンテされてるみたいですが、
その二人がいなくなると(以下略。
560動け動けウゴウゴ2ちゃんねる:2005/06/18(土) 15:24:40 ID:AVxh77pL0
>>559
> 約37,000行のPerlとかありますが、もう、すごい状態みたいです。

・・・・・・・・・すげぇ>その知り合い
561 ◆MUMUMUhnYI :2005/06/18(土) 17:44:48 ID:1dhVI57l0 BE:2553874-##
・LAが基準値以上なら、IsKoukokuを船が死ぬまでスルーにした。
・animeサーバは、subject.txt/subback.htmlさぼりを発動させるレベルを
他のtigerサーバよりやや低めにした(基準値に対する率が違う)
562動け動けウゴウゴ2ちゃんねる:2005/06/18(土) 20:03:56 ID:FstfHQuj0
>>559
> 人の書いたPerlの保守って、Cとかと比較してもなんか相当大変みたいですね。 

CはCで大変だと思うけどね。C書く人ってPerlに比べてトリッキーなコード好む人多いし。

> 約37,000行のPerlとかありますが、もう、すごい状態みたいです。 
すごいっちゃーすごいけど、その前になんとかならなかったのかなあ……。

しかし今目の前にある「破綻しちゃった」大量のコードを読んでると、多分どうにもならなかったんだろうなあ
という空気が伝わってきたり。

>>561
乙です。ここじゃスレ違いだとは思うんだけど、Apacheのセッションタイムアウトって
やたら長いけどこれ攻撃に使われたりしない?あるいはブラウザの誤動作でゾンビコネクションで
MAX_CONNECTが埋まっちゃったりとか。
さっきqb5.2ch.netに繋いだまま放置プレイ食らわせたら7分50秒も回線あけて待っててくれたよ。
563動け動けウゴウゴ2ちゃんねる:2005/06/18(土) 20:16:09 ID:mpr8OfG00
>>562
>C書く人ってPerlに比べてトリッキーなコード好む人多いし。
いやいや、一行でいかに複雑なコードをかけるか競ってるのなんてPerlだけですし。
564 ◆TWARamEjuA :2005/06/18(土) 22:17:58 ID:lPNKO7CS0 BE:1960092-#
>>551
いへいへ私のことです(照)
565だんしゃくねこ:2005/06/18(土) 22:35:00 ID:ApFHTIkz0
│_A
│・−・) なんかローカルルールのリンク変更をしても、
↓ ⊂)  livenhkのindex.htmlがちっとも更新されないんだけど(head.txtは更新されてる)
      LAが高い時にindex.htmlも更新されないようになってますか?
      (この時間のlive16のLAはそんなに高くない気もするけど)
      ちなみにdomeも微妙にしばらくindexが更新されてなかったっす。
566動け動けウゴウゴ2ちゃんねる:2005/06/18(土) 22:40:11 ID:ixn9Ucb10
>>561
LA見て制御変えるの実装されてるのか。
なら、Sambaの時間をLAに応じて可変にできないかなあ
567動け動けウゴウゴ2ちゃんねる:2005/06/18(土) 23:44:03 ID:P97ComF00
>>565
これ?
http://qb5.2ch.net/test/read.cgi/operate/1103495887/843
843 :FOX ★ [sage] :2005/03/23(水) 03:46:03 ID:???0
index.html subback.html の更新をたまにサボるようにした。
subject.txt は従来どおり更新してます
対象サーバ
ex10 live20 live16 live15
568だんしゃくねこ:2005/06/19(日) 00:11:28 ID:7GiTNm0Z0
>>567
│_A
│・−・) うん、、まぁ、本当はそのルーチンを流用してると思うんだけど、
↓ ⊂)  subback.htmlとsubject.txtって書いてあるし、
      なんかLAがそんなに高くなさそうなのにそうなったのが気になって、
569動け動けウゴウゴ2ちゃんねる:2005/06/19(日) 00:20:42 ID:HonutV4K0
>>568
subject.txtは更新されてるみたいだったから>>567は生きてるんじゃないかと思った
どういう基準でサボるんでしたっけ、これ?
570root▲ ★:2005/06/19(日) 12:47:13 ID:???0 BE:2463539-##
>>568
>>567 ということですね。はい。

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

>>562
セッションタイムアウトについては、peko作戦スレでやりますか。
571root▲ ★:2005/06/19(日) 12:54:18 ID:???0 BE:1094562-##
で、subject.txt / subback.html ではなく index.html / subback.html なので、
bbs.cgi の私が書いたコメントを直しておいたです。

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

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

まだ、様子見筒という
段階でしょうか?
574動け動けウゴウゴ2ちゃんねる:2005/06/20(月) 05:32:32 ID:idSWnAhx0
>>573
まぁそのうち
なんとかなるでしょ。
575root▲ ★:2005/06/20(月) 13:44:31 ID:???0 BE:1095326-##
live系は、pidをある一定数で割った余りが0の時だけindex.html/subback.htmlを書き換える、
という実装になっているようです。

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

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

・sageなしスレ立てまたはdat落ちがあったらindex/subback更新
・sageスレ立てしたらsubbackのみ更新
・sageレス投稿時に更新しない
580root▲ ★:2005/06/22(水) 02:13:43 ID:???0 BE:5837388-##
スレ立てはふつうに同期になっているはず。
sageレス投稿時更新しないというのは、cha2でやってるんでしたっけか。
dat落ちは別の人(f22)がやっているからなぁ。
581root▲ ★:2005/06/22(水) 02:27:00 ID:???0 BE:2463539-##
同じ●で1時間あたりに1サーバに立てられる最大スレッド数を制限できる機能を
qb6のbbs.cgiに実装してみたんですが、これって需要ありますかね。

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

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

スレ立てでも●じゃない時や、スレ立てじゃない時は従来通り。
582root▲ ★:2005/06/22(水) 02:32:13 ID:???0 BE:5745997-##
最大数は可変ですが、とりあえずデフォルトは10(1時間に10個まで立てられる)ぐらいかしら。
583root▲ ★:2005/06/22(水) 02:37:09 ID:???0 BE:547632-##
おじさんと若者へ(馴れ合いごめん):

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

そもそもスレってそんなに短時間にたくさん立てるもんじゃないと思うですよ。
荒らし以外で1時間に5本以上同一鯖内でスレが立てられなくて困る人なんて
●を使ってスレ立て代行をやっている人くらいしか思いつかない。★はスルー
だから記者とかは関係ないわけだし。
585root▲ ★:2005/06/22(水) 02:45:01 ID:???0 BE:1276872-##
例えば、●荒らしが横行しているらしい(あまり確認していないのでよくわかりません)
news だけ5個にするとかも技術的にはできなくはないわけですが、さて。

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


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

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

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

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

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

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

ちと、微妙かも。あんまり魅力を感じないような。
596動け動けウゴウゴ2ちゃんねる:2005/06/22(水) 13:47:44 ID:AziVoMRy0
>>595
IDに●を使っているという証拠をしこめればいいんとちゃいますか?
0:PC
O:携帯
m:●PC
M:●携帯

という封に。
597動け動けウゴウゴ2ちゃんねる:2005/06/22(水) 13:48:23 ID:4fep6rSi0
駄目っすか?
規制議論板でよく●+串で荒らしてるって報告がよく来るんですけど、(実際はいろんな人がスレたてたりレスしたりしてる)
そういう主張で報告しにくる方々の動きを止めれるかなあと。
598動け動けウゴウゴ2ちゃんねる:2005/06/22(水) 13:49:55 ID:mnrqWpCd0
そんなことで止まるなら苦労しない
599root▲ ★:2005/06/22(水) 13:52:06 ID:???0 BE:2736656-##
>>597
そういうのよく見るんで、とりあえずリミッター入れてみたと。
今見る限りでは、あんまり文句出てなさげで。

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

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

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

うっひっひ
601讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/22(水) 14:13:35 ID:uJ/Ry8tNP BE:6795353-##
止まるまで待てばいいのさ〜
602root▲ ★:2005/06/22(水) 14:18:22 ID:???0 BE:1368735-##
>>600
果実をもっと食わないとだめですか。
おじさんが戻ってくるまでの「鬼の井沼」だと思っていたんですが、、、。

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

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

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

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

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

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

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

たとえば、スレ潰しが実況板であったとしてもたいした被害ではないです。
それを跳ね返すだけのパワーを持っています。
606root▲ ★:2005/06/22(水) 14:45:28 ID:???0 BE:1459744-##
>>605
なるほど、第三段落は非常に重要ですね。

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

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

news4vipとか、Rock54がなくても、場合によってはSamba24すらなくても、
板としては機能するわけで(何をもって「機能」とするかは議論の対象外で)。
607root▲ ★:2005/06/22(水) 16:49:54 ID:???0 BE:2918584-##
だらだらと、案を書いておいたり。

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

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

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

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

とすると例えば、

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

とかにして、1時間で例えば150ポイントまで使えるようにするとか、そんな実装なのかしらね。
608root▲ ★:2005/06/22(水) 16:50:55 ID:???0 BE:3284249-##
比率はあくまで「仮定」なので、考え方だけです。>>607
そもそもほんとにやるのかどうかも、よくわからないし。
609root▲ ★:2005/06/22(水) 16:53:19 ID:???0 BE:1459182-##
で、個人的な意見を書いておくと、>>607 みたいなのは、
今の bbs.cgi 側ではあんまりやりたくないかもですね。

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

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

Rockで URL だけに絞っていたりするのもそれが理由だったり、
612root▲ ★:2005/06/22(水) 16:59:12 ID:???0 BE:1095326-##
>>610
ふむ。
「困っているものから手をつける」ってことですか。

ここ関連はまた何か、思いついたらってかんじで。
613root▲ ★:2005/06/22(水) 17:07:55 ID:???0 BE:5745997-##
>>611
そですね。
メリットとデメリットを秤にかけて、考えるってかんじで。

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

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

例えば正直、今のnews4vipに業者ががんがって広告をどんどんぶち込んだとしても
「業者クオリティタカス」とか何とか言って、遊びの対象になるだけだったり(適当な推測)。
614root▲ ★:2005/06/22(水) 21:59:48 ID:???0 BE:7387799-##
同じIPアドレスだと、同じ日には同じIDが出る、というのは、ほんとなのかどうなのか。
615動け動けウゴウゴ2ちゃんねる:2005/06/22(水) 22:05:05 ID:mnrqWpCd0
違うのですか?
種が同じでホストも同じならIDも同じになるとしか思えないのですが。
616動け動けウゴウゴ2ちゃんねる:2005/06/22(水) 22:06:10 ID:mnrqWpCd0
質雑見て気がついた。
今は種が違うから違う月の同じ日では同じにならないのではなかったでしょうか。
617root▲ ★:2005/06/22(水) 22:08:01 ID:???0 BE:3648285-##
>>616 が正しいと思っているわけだけど、
ほんとにそうなのかどうか。
618桶屋:2005/06/22(水) 22:11:26 ID:47I+grU70
sport2鯖の話が混じっているのかとも思った。
619root▲ ★:2005/06/22(水) 22:13:03 ID:???0 BE:3283766-##
sports2は、どうも常に同じIDが出るみたいですね。
例えば公式p2とか、毎日同じだとか、なんとか。
620讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/22(水) 22:16:48 ID:uJ/Ry8tNP BE:14496948-##
スポーツ2は公式p2から書けないですよ
621root▲ ★:2005/06/22(水) 22:17:45 ID:???0 BE:730324-##
>>620
あ、そうか。
beのほうだっけ。
622root▲ ★:2005/06/22(水) 22:18:59 ID:???0 BE:5745997-##
623桶屋:2005/06/22(水) 22:26:06 ID:b8Mc/K1W0
sport2鯖は放置されているから。

質問者の方が背景を詳しく説明してくれなかったら状況はよくわかりません。
1ヶ月の時間をいただけるのなら実験してもいいですが、ソースを覗いた方が早いと思いますよ。(;^ ^
624:2005/06/23(木) 00:35:17 ID:zro7njUC0
オイオイ!●規制直せよ!鯖強化に貢献しているんだろ!(#゚Д゚)ゴルァ!!
625讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/23(木) 00:42:27 ID:PpznTysDP BE:16309049-##
あなたの●は規制されてませんよ?
626動け動けウゴウゴ2ちゃんねる:2005/06/23(木) 00:43:26 ID:otPCM4Ns0
>>624
スレを一時間に10っこいじょうたてるのですか(汁
627root▲ ★:2005/06/23(木) 00:59:15 ID:???0 BE:1459182-##
newsの自治スレにおじゃましてきました。

>>626
今、newsは4ですね。5つ目でひっかかると。
で、この値はもっと適切な値があれば、変更できるです。
628讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/23(木) 01:07:24 ID:PpznTysDP BE:21744768-##
申請スレが必要になるのかな?
629root▲ ★:2005/06/23(木) 01:14:07 ID:???0 BE:1368735-##
>>628
いまのところ、まだ超実験中なので、まだいらないっす。

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

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

>>630
住人が少ないのに消費が早いってのはどうなんだろ
632root▲ ★:2005/06/23(木) 22:46:42 ID:???0 BE:1095034-##
別のことの副産物だったりするのですが、BBS_SLIP=checkedな板で、
AIR-EDGE PHONEからだと"H"と表示っていうのが出ると、うれしい人っているのかしら。
(今この機能はオフになっています)

ほんとは"O"にしたいところなんですが、
携帯で言う固有番号みたいなのって送ってくるんでしたっけ。
633讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/23(木) 22:51:44 ID:PpznTysDP BE:5436634-##
>>632
送ってなかったとおもいます
634動け動けウゴウゴ2ちゃんねる:2005/06/23(木) 22:53:01 ID:QxdAbKwg0
たぶんなし
635root▲ ★:2005/06/23(木) 23:03:08 ID:???0 BE:2553874-##
>>633-634
そですか。

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

で、識別子そのものはつけておきたかったりするわけですが、
H でいいのかしら。
636讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/23(木) 23:05:13 ID:PpznTysDP BE:11325555-##
H"とかw
637root▲ ★:2005/06/23(木) 23:06:10 ID:???0 BE:4104195-##
二文字には、したくないし。
638讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/23(木) 23:07:01 ID:PpznTysDP BE:4530252-##
WかH

が無難かと
639 ◆QANoNotan. :2005/06/23(木) 23:07:06 ID:m3iMMIoN0
"はだめなん?
640root▲ ★:2005/06/23(木) 23:09:20 ID:???0 BE:4104959-##
ダブルクォートはちと特殊な文字だから、ちょっといやん。

W = WILLCOMですか。
メーカー名由来は、ちと微妙かも。
641動け動けウゴウゴ2ちゃんねる:2005/06/23(木) 23:12:50 ID:QxdAbKwg0
O0とくればoしかあるまい
642root▲ ★:2005/06/23(木) 23:13:32 ID:???0 BE:1095034-##
>>641
そのほうが普通かもですね。
643P061198142083.ppp.prin.ne.jp:2005/06/23(木) 23:30:04 ID:cik1mIHi0
つか何をもってAIR-EDGE PHONEと判定するわけ? IPアドレス?
AIR-EDGE PHONEて、センター以外の一般ISPに繋ぐことが出来るんだが。
644root▲ ★:2005/06/23(木) 23:32:02 ID:???0 BE:4104959-##
>>643
よりどころは、これだけ。
http://www.willcom-inc.com/p_s/products/airh_phone/ip.html

ここにもあるように、めやすに過ぎないと。
645root▲ ★:2005/06/23(木) 23:33:22 ID:???0 BE:1641492-##
>>643
> AIR-EDGE PHONEて、センター以外の一般ISPに繋ぐことが出来るんだが。

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

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

ということで、>>641 を採用するです。
649root▲ ★:2005/06/23(木) 23:45:26 ID:???0 BE:4925669-##
BBS.CGI 2005/06/23 >>648
650動け動けウゴウゴ2ちゃんねる:2005/06/23(木) 23:48:30 ID:IAjuJN5f0
えーと、そのセンターにH"以外からも接続出来るのですか?
#やり方を教えろというわけではありません。
651動け動けウゴウゴ2ちゃんねる:2005/06/23(木) 23:50:36 ID:g3sJnHMw0
識別するとどういうメリットがあるの?
652root▲ ★:2005/06/23(木) 23:52:47 ID:???0 BE:1459182-##
荒らしの出自判別がしやすくなるですね。>>651

>>650
わからないです。

もしそういうことができて、それを利用した荒らし行為が多く出回ったら、
AIR-EDGE PHONEからの書き込みは全面的に(りゃ にするしかないかと。
653動け動けウゴウゴ2ちゃんねる:2005/06/23(木) 23:57:11 ID:IAjuJN5f0
>>652
特殊な例(出来る出来ないはおいといて)を除き、o=H" という解釈でOKですね?
654む P221119009159.ppp.prin.ne.jp:2005/06/24(金) 00:07:18 ID:g0fG5wWDo
AIR-EDGE PHONEセンター経由ってことですね。
もしそうなってなかった場合、
ここで報告いただけると助かるです。
655P061198142241.ppp.prin.ne.jp:2005/06/24(金) 00:08:02 ID:8f+3prEmo
>>645
京ポンのブラウザはリファラ吐きますよ。
UAがOperaじゃなくても。
656動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:09:52 ID:8Hf9fVCV0
まあ、単純なprin一括規制から脱皮する可能性があるなら応援してもよさげ>識別
657動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:10:10 ID:xiZxEbeE0
PCからでも、AIR-EDGEで(というかH"のPIAFSでも?)PRINで接続したらIPは同じになるのでは?
658P221119007168.ppp.prin.ne.jp:2005/06/24(金) 00:11:01 ID:qtwXzmxmo
P2がPなんだからHでもいいやんと思うのは俺だけ?


o→激しくダサい
659動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:11:02 ID:T4aiLaEN0
>>652
携帯の識別の場合PCとは規制方法が違うので意味があるというのはわかるんだけど
AIR-EDGE PHONEとPCって規制方法って違ったりするの?
(単なるISPの違いとの区別がよくわかってなかったり。)
660P219108000141.ppp.prin.ne.jp(219.108.0.141):2005/06/24(金) 00:11:18 ID:LgCknsy3o
パピコ記念のテスト
Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0
661P221119007168.ppp.prin.ne.jp:2005/06/24(金) 00:12:40 ID:qtwXzmxmo
あげてスイマセンでした
662P222013029231.ppp.prin.ne.jp(222.13.29.231):2005/06/24(金) 00:15:52 ID:yqNIRM/n0
そりゃUA違うしな
Monazilla/1.00 kage/0.99.1.1153 (1000)
663動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:17:21 ID:Bzb8/f1PP
テストはテストスレでw

[test] 書き込みテスト 専用スレッド 41 [テスト]
http://qb5.2ch.net/test/read.cgi/operate/1119193338/l200
664む P221119009159.ppp.prin.ne.jp:2005/06/24(金) 00:17:59 ID:g0fG5wWDo
おぉ、そですか。
であれば、味ぽんを切ってしまえば、この特殊処理しなくていいのね。

でも奥様が味ぽんのうちは、絶対そんなことできないわけで。
665動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:21:29 ID:izGLkW05o
>>657
ならないですよ
PCからはAIR-EDGEPHONEセンターへはAIR-EDGEPHONE接続経由でも
接続できません
AIR-EDGEPHONE単体専用です
666root▲ ★:2005/06/24(金) 00:26:49 ID:???0 BE:912825-##
きたくで。

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

それ(規制の方法論)も含めてよりうまくできる道はあるのか、
あるいは実は携帯荒らしみたいに京ぽん荒らしがいたりするのかとか、
そういうことを、知っておきたいわけで。
667動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:27:09 ID:cetU9eEYo
テスト
668動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:29:36 ID:e5bWae1/0
>>640
エッジって濁点じゃなかったっけ

>>667
>>663
669P061204006159.ppp.prin.ne.jp:2005/06/24(金) 00:32:12 ID:GoGvYrvfo
PCからPRIN経由でカキコ
670root▲ ★:2005/06/24(金) 00:32:46 ID:???0 BE:547823-##
>>668
確かにそうかもですね。

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

これまでもIだったのがaになったり、
JだったのがVになったり、ことによるとVからYにさらに変わる(これはないか)
とかいうことは、常にあるわけで。
671root▲ ★:2005/06/24(金) 00:33:33 ID:???0 BE:1277827-##
>>669
ほほう。

/25 のところのチェックを、きちんと実装しないといかんかもですね。
今は(もともとbbs.cgiがそうだったように)、まじめにやってないです。
672動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:35:01 ID:yqNIRM/n0
テストはテストスレで
名前欄にはなるべくtasukeruyoで
673root▲ ★:2005/06/24(金) 00:36:09 ID:???0 BE:2736465-##
というわけで、あるIPアドレスがあるCIDRブロックに入っているかを、
Perlでうまく調べる方法って、どうすればいいのかしら。

具体的にはあるIPアドレスが、61.204.3.0/25 に入っているかいないかを
さくっとコール一発で、調べたいわけです。
674 ◆QANoNotan. :2005/06/24(金) 00:36:11 ID:gTCgmqQY0
http://ex10.2ch.net/test/read.cgi/morningcoffee/1119539572/47
>47 :ZC******.ppp.dion.ne.jp :2005/06/24(金) 00:33:59 o
>ふしあなしてみた

これはなにですか
675root▲ ★:2005/06/24(金) 00:36:52 ID:???0 BE:3192757-##
>>674
ふむ。

もうちょっと、調べてみるです。
676動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:37:27 ID:yqNIRM/n0
prinとdionは同じ施設使ってるですよ
ソースはwhois
677 ◆QANoNotan. :2005/06/24(金) 00:37:53 ID:gTCgmqQY0
続報
58 47 2005/06/24(金) 00:36:43 0
繋ぎ直したらでなくなったみたい

だそうです
678root▲ ★:2005/06/24(金) 00:38:43 ID:???0 BE:2462393-##
ははぁ、虫ですね。

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

221.119.26.185 が、221.119.2 にマッチしちゃってるわけね。
なんだかなぁ。
679動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:40:30 ID:0G1cfbjq0
質雑のFAQ修正はこんな感じですか。

Q.IDの後ろに付いてる0とかOとかPとかoってなに?
A.書込み手段を区別する目印です。
 PC等が 0 (ゼロ) 、携帯が O (大文字のオー)、 P は公式p2( http://p2.2ch.net/ )
 それ以外(Air H"等)が o (小文字のオー)からです。
 荒らし対策の一環として、一部の板に便宜上導入されています。
680動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:41:40 ID:Ud6A2wHe0
携帯もキャリア別に末尾変えるべきかと
681root▲ ★:2005/06/24(金) 00:43:06 ID:???0 BE:1641863-##
>>679
携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
AIR-EDGE PHONEが o (小文字のオー)、
それ以外が 0 (ゼロ)です。

が、正しいです。
682P061204003192.ppp.prin.ne.jp(61.204.3.192):2005/06/24(金) 00:43:12 ID: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
683動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:43:25 ID:skdIbacY0
>>673
ttp://search.cpan.org/~mrsam/Net-CIDR-0.10/CIDR.pm

これのNet::CIDR::cidrlookupでよさげ
684root▲ ★:2005/06/24(金) 00:45:25 ID:???0 BE:2554447-##
>>680
それは一瞬考えたんですが、今の目的(荒らしの出自判定)からは、
その必要ないと思っているです。

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

もしが「auだけ特殊な規制処理」とか「DoCoMoだけ特殊な規制処理」とかしているんであれば、
区別する意味はあるわけですけど。
685root▲ ★:2005/06/24(金) 00:46:38 ID:???0 BE:3831067-##
で、今入っている o 判定ルーチンにはバグがあるです。
(もともとあったのが、今回判明した)。

ということで今出る o は、必ずしも正確なものではないです。
めしくったら、ちと直してみるか。
686動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:47:21 ID:yPAq0Ytf0
うむ。
末尾「o」はいい感じですね。
それよりも、root氏って京ぽなー??
687root▲ ★:2005/06/24(金) 00:47:41 ID:???0 BE:1095326-##
>>683
どもです。すばらしい。

さくっと入れてもらう必要ありですね。
これ入れると規制方面では応用範囲が広そうですね。
いいかんじかなと。
688root▲ ★:2005/06/24(金) 00:48:27 ID:???0 BE:912825-##
>>686
…です。

というわけで、ぼちぼちおかずがテーブルに並び始めた模様。
689動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:51:39 ID:0G1cfbjq0
ではこんな感じで。(種別の並びをあわせてみました)

Q.IDの後ろに付いてるOとかPとかoとか0ってなに?
A.書込み手段を区別する目印です。
 携帯が O (大文字のオー)、 公式p2( http://p2.2ch.net/ )が P、
 AIR-EDGE PHONEが o (小文字のオー)、
 それ以外が 0 (ゼロ)です。
 荒らし対策の一環として、一部の板に便宜上導入されています。
690動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 00:55:08 ID:am8Tfv680
Oと0の分け方は大雑把なのに、AIR-EDGE PHONEセンター経由だけ識別されるのは、ちょっといやーかもです。
0→Oへ分類変えされるならいいけど。
AIR-EDGE PHONEセンターからの荒しって多いんですか?
691root▲ ★:2005/06/24(金) 01:16:48 ID:???0 BE:912252-##
>>689
いいかんじ。

>>690
それも含めて、現状を知りたいなと。< 荒らしが多いかどうか
で、端末固有情報が来るなら、Oでも問題ないわけですが、、、。
692root▲ ★:2005/06/24(金) 01:29:35 ID:???0 BE:1824645-##
>>683
http://search.cpan.org/dist/Net-CIDR-Lite/

こっちのほうが、軽くて速いらしいです。
とりあえず、試してみるか。

今の o 表示は、これからとりあえずいったんオフにするです。
693動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 01:33:13 ID:am8Tfv680
>>691
なるほど、わかりました。
694動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 01:34:26 ID:0G1cfbjq0
おっ、質雑のほうへ転載していただいた方乙です。
695動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 01:34:56 ID:skdIbacY0
>>692
そのようですね
おいらもNet::CIDRを試してみて重いと感じたから
Liteも試してみて、軽くて速いからLiteにしるって書きにきたとこです
696root▲ ★:2005/06/24(金) 05:13:51 ID:???0 BE:1276872-##
>>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]);
}
697root▲ ★:2005/06/24(金) 05:15:10 ID:???0 BE:912825-##
で、チェック用サブルーチンはこんなふう。

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

# CIDRリストに該当があるかどうかチェックする
$FOX->{AIREDGECIDR}->find($raddr);
}
698root▲ ★:2005/06/24(金) 05:15:51 ID:???0 BE:1094843-##
こうだった。

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

# CIDRリストに該当があるかどうかチェックする
return $FOX->{AIREDGECIDR}->find($raddr);
}
699root▲ ★:2005/06/24(金) 05:24:08 ID:???0 BE:1642436-##
モジュールの入れ込みをお願いしました。

http://aa5.2ch.net/test/read.cgi/nanmin/1118138260/592

さて、ねるか。
700動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 08:21:00 ID: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が呼び出し元のスコープにないとか?
701動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 08:27:05 ID:skdIbacY0
>>696-699
乙です

ちなみに>>697>>698は等価です
もちろん明示的にreturnした方が読みやすいのでbetterですけどね
702動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 08:31:08 ID:skdIbacY0
あらかぶりましたわ
703root▲ ★:2005/06/24(金) 11:29:36 ID:???0 BE:4104195-##
>>700
下の3行のほうがよさげですね。それにしてみるです。
(そのへんの作法にくわしくなかったりします)

で、SpeedyCGI 化している今の bbs.cgi では、
出航時に1回しか設定しないところ(SETTING.TXT / 広告チェック用リスト / ローカルルール等)は、
まとめて一発関数呼んで(initFOX)、そこでやっているです。
で、上記は、initFOX内に追加したと。
704ヽ( ・∀・)ノ ≡●ウンコー ◆worRE2unko :2005/06/24(金) 12:57:54 ID:LYH4LyZ90 BE:57332939-###
>>631
時間によってかなり人数違うの
705FOX ★:2005/06/24(金) 13:59:27 ID:???0
そして、あとから読む人がまた悩むのであった、、、
706讃岐フォアンフォアン▲ ◆MylTDX..QI :2005/06/24(金) 14:03:37 ID:L6Bhk85EP BE:32616498-##
エェェ(´Д`)ェェエ
707root▲ ★:2005/06/24(金) 14:36:41 ID:???0 BE:1916137-##
>>705
できるだけ「おじさんのインデント」とか「おじさんの書き方」に合わせるようには、
しているわけです。サブルーチンやら変数の使い方やらも。

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

でも return は明示的にすべきでしょ
Perl の良さである「だれでもできる」を殺していると思う
710root▲ ★:2005/06/24(金) 14:40:02 ID:???0 BE:1277827-##
>>708
あぁ、そういう意味ですか。

つまり、

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

じゃなくて、

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

ていいんじゃないかってゆうことですね。
確かにそうですが、どっちが作法としていいのか、っていう話なのかなと。
711root▲ ★:2005/06/24(金) 14:42:14 ID:???0 BE:2189164-##
>>709
> でも return は明示的にすべきでしょ

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

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

私が間違って中身をいじってしまうぐらいですから、それなりにきれいになっているわけですが、
今でも「たぶんこことこことここは、書いた人が違うんだろうなぁ」みたいなところは、
たくさんたくさんあるようです。
712動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 14:42:19 ID:qV+vDjG60
俺も暗黙の返り値ってのはあんま好きじゃないなー
古いタイプなのかも
713FOX ★:2005/06/24(金) 14:42:54 ID:???0
>Perlの世界では暗黙に最後の評価値がretrurn値になるので、

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

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

全体構造が分からないんで的違いな話になる可能性大ですが、どちらにせよ
$FOX->{AIREDGECIDR}は同じファイル内でだけ呼ぶようにしたらいいんじゃ
ないかなと思うです。その結果が前者なんであれば前者がベターですね。
717root▲ ★:2005/06/24(金) 15:08:19 ID:???0 BE:5107687-##
>>716
なるほどです。
この辺の作法はプログラミング言語が違っても、
そんなに変わるところじゃないですしね。

「その結果」ということで、問題ないです。
718動け動けウゴウゴ2ちゃんねる:2005/06/24(金) 19:42:05 ID:j6fIYZld0
ごめんなさい
ちょこっとエジでテスト
719サザン ★:2005/06/24(金) 23:59:59 ID:???0 BE:119758695-#
qb6 の bbs.cgi は全サーバに配っちゃダメなんですよね?
720root▲ ★:2005/06/25(土) 00:03:31 ID:???0 BE:1916137-##
>>719
あ、今はまだだめです。

配る必要、あるですか?
あるなら、緊急に対応することになるです。
721サザン ★:2005/06/25(土) 00:08:53 ID:???0 BE:95807366-#
>>720
いやー、特に急ぎではないです。

質問・雑談スレ178@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1119446519/666

この辺を入れました。
722root▲ ★:2005/06/25(土) 00:10:03 ID:???0 BE:6566898-##
>>721
おぉ、了解です。

で、私からの愛をメールで送っておいたです。
よろしければ、受け取っていただけると。
723サザン ★:2005/06/25(土) 00:13:43 ID:???0 BE:63871946-#
>>722
返事は・・・OKです、、

きゃ
724root▲ ★:2005/06/25(土) 00:16:40 ID:???0 BE:1095326-##
そう言っていただけると、信じてました。

愛があれば、年の差なんて。
725サザン ★:2005/06/25(土) 00:25:47 ID:???0 BE:21291124-#
今はギクシャクしてますけど、少しずつ仲良くなっていきます、、



えぇ、サーバとですよ。
726動け動けウゴウゴ2ちゃんねる:2005/06/25(土) 00:34:36 ID:qDyC1RFhO
セックルキター
727動け動けウゴウゴ2ちゃんねる:2005/06/25(土) 00:38:02 ID:gieTPTdE0
ウホッ!
728動け動けウゴウゴ2ちゃんねる:2005/06/25(土) 01:44:13 ID:tFnzMa950
ここが夜中に発展場と化している件。
729動け動けウゴウゴ2ちゃんねる:2005/06/25(土) 04:19:06 ID:uwvlpLto0
今日は別なスレに行ってるみたいね
730だんしゃくねこ:2005/06/25(土) 05:31:34 ID:A51tnjWK0
│_A
│・−・) きゃー
↓ ⊂)
731宿酔 ◆TWARamEjuA :2005/06/25(土) 06:16:47 ID:AuC6fkaP0 BE:3050047-#
えぇ、呑みすぎました。。。
732動け動けウゴウゴ2ちゃんねる:2005/06/25(土) 14:13:26 ID:984XqAIa0
すんげーどうでもいいけど、
foreach (@airedgecidr){
  $FOX->{AIREDGECIDR}->add($_);
}
こうすると0.01マイクロ秒くらい速くなったり。。
733root▲ ★:2005/06/25(土) 17:21:04 ID:???0 BE:3192375-##
>>721 も含め、bbs.cgi を全サーバに配布。
734root▲ ★:2005/06/25(土) 19:04:24 ID:???0 BE:2280555-##
配布版では、>>732 にしたです。< 該当部分
735外野ァァン:2005/06/27(月) 11:56:40 ID:ADqKwFtG0
AirH"判別、復活?
736root▲ ★:2005/06/27(月) 20:01:26 ID:???0 BE:6567089-##
>>735
こんどはうまくいっているみたい。

0 O o P 関連でもし誤判定があったら、ここに報告よろしくです。
737動け動けウゴウゴ2ちゃんねる:2005/06/28(火) 16:50:03 ID:LQgu/qx+0
0 O o P がおっぱいに見えたから、

題して「おっぱい作戦」だな
738▲ ◆cZfSunOs.U :2005/06/30(木) 23:46:01 ID: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;
}
----------------------------------------------------------------------
739▲ ◆cZfSunOs.U :2005/06/30(木) 23:47:02 ID: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 ソケットキューがあふれてリクエストが破棄されているとかでない限り
タイムアウトになっても処理自体は行われますが.
740root▲ ★:2005/07/01(金) 00:03:52 ID:???0 BE:1094843-##
>>738-739
おー。
741動け動けウゴウゴ2ちゃんねる:2005/07/01(金) 14:35:23 ID:UUYAgp820
>>740
これはハァハァするべきものですねー

◆cZfSunOs.U さんGJ!
742動け動けウゴウゴ2ちゃんねる:2005/07/01(金) 14:43:09 ID:t9ua+Um40
じっけん!じっけん!
743讃岐フォアンフォアン▲ ◆SANUKIvwUE :2005/07/01(金) 14:44:16 ID:nfcEsyJU0 BE:16308566-###
ワクワクテカテカ
744 ◆TWARamEjuA :2005/07/01(金) 15:11:40 ID:c2osvHt/0 BE:6970188-#
でぇもん君かぁ。。。
うん。おそらく最終形態かなぁ。。。
745▲ ◆cZfSunOs.U :2005/07/02(土) 01:27:22 ID: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;
}
746● ◆ANGLERlqvM :2005/07/02(土) 04:28:37 ID:vRYne0YC0 BE:2015429-##
ここまで来たんですね。
もう、凄いとしか。。。
747動け動けウゴウゴ2ちゃんねる:2005/07/02(土) 09:28:05 ID:ZRfZC6Ox0
ああ、和菓子職人が仕上げていく様子を、横で(口を緩めて)眺めている感覚。
748動け動けウゴウゴ2ちゃんねる:2005/07/02(土) 11:59:59 ID:TINNy+yho
ID末尾の識別子について
WILLCOMの「端末だけ」を識別することに何の意味があるのでしょう?("ポン厨"とか言われるのですが)
味/京ポンのような接続環境は、ダイアルアップ接続なPDA/モバイルなどもそうでしょう。
そして、コピペに不自由なWILLCOM端末を使うより、PDA/モバイルなどを使う方が悪質な荒らしが可能と思います。
繋ぐたびにIDが変わるISPのくくりで識別するというなら、まだ納得できます。
要はprinならセンターと分ける必要はなくて、同じ識別をしたらということです。dionとかも。
749root▲ ★:2005/07/02(土) 14:29:13 ID:???0 BE:7387799-##
>>748
技術的には bbs.cgi での「特別扱い具合」を示しているですね。
つまり、bbs.cgi 内で他の端末よりも手厚く取り扱っているわけです。

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

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

そうですねっ

* 挑発には乗らない。挑発するような人の意見は、たいてい誰も重要視しません。
754動け動けウゴウゴ2ちゃんねる:2005/07/02(土) 20:01:46 ID:C+lXVmU/0
どうせ識別されるとマズいようなレスばっかりしてるんだろ
755748:2005/07/02(土) 22:09:17 ID:KCuDl3J/o
>>749
あーなるほど・・・、味ポンのブラウザがリファラ吐かないってやつですか。

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

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

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

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

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

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

当時、不動楽さん(= クラシックさん)がそのように対応したはず。
758755:748:2005/07/03(日) 04:40:33 ID:tQyFxUHBo
>>757
それは味ポン互換のUAの場合ですね。
UAがOperaの場合はPCルートなので、クラシックから書き込みしようとするとリファラで書けませんでした。
で、具体的には分からないのですが、味ポンと同じようにリファラを無視するようにしたのではないでしょうか。
リファラがi2ch.netの場合の書き込みをOKにしたわけではないようですし。
↓このあたり
携帯→2ch運用情報スレッド12
http://qb5.2ch.net/test/read.cgi/operate/1094575260/346-

京ポンに関しては必要以上に面倒なことをやってる気がするですよ。
759root▲ ★:2005/07/03(日) 14:11:37 ID:???0 BE:2463539-##
>>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
760root▲ ★:2005/07/03(日) 14:15:29 ID:???0 BE:1368735-##
(以下余談)

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

次の京ぽんでは識別情報を送るようになってほしいなぁと、ゆっておこう。
761動け動けウゴウゴ2ちゃんねる:2005/07/03(日) 14:36:03 ID:Tg12NmH5o BE:104580285-#
コロプラノコトカ-------Σ(゚д゚)
762名無し募集中。。。:2005/07/06(水) 23:13:29 ID:0YvouOu40
なんでわざわざ何で書き込んでるとかわかるようにするの
763動け動けウゴウゴ2ちゃんねる:2005/07/07(木) 00:14:45 ID:nVkQbPw9P
prin規制が掛かりました。今回の原因はPC用のprinが原因の様です。
AIR-EDGEセンター接続かどうかが判別できるようなった今、センター接続を規制の対象から外して頂くことはできないものでしょうか?
764動け動けウゴウゴ2ちゃんねる:2005/07/07(木) 00:33:53 ID:c6DvOwmQ0
きっとスレ違い
たぶん板違い
765ちょろ ★:2005/07/12(火) 19:01:24 ID:???0
再確認でーす

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

あってますか?
766む@移動中 P221119009166.ppp.prin.ne.jp:2005/07/12(火) 19:03:52 ID:RwUQLwO2o
次オンラインになったら、
レスするです。
767だんしゃくねこ:2005/07/12(火) 19:06:42 ID:SdZyUpa80
│_A
│・−・) >>522-561を見る限り、
↓ ⊂)  LAが高かったらIsKoukokuスルーはどの鯖にも入ってそうっすね
768root▲ ★:2005/07/12(火) 20:17:18 ID:???0 BE:2189838-###
○ 現在の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
769root▲ ★:2005/07/12(火) 20:25:18 ID:???0 BE:2918584-###
ということで、>>765 の結論ですが、
2ちゃんねる/PINKちゃんねるのいずれも共通に、

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

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

という動作をします。

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

animeサーバもこれともうひとつの安全装置を入れてから、
例の「土曜夕方のどーん」にも、耐えられるようになりました。
770root▲ ★:2005/07/12(火) 20:26:45 ID:???0 BE:1641863-###
ということで、以上です。

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

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

したとしても、live系だけかと、
2ch&bbspink の banana サーバは絶対にスキップしないでください
772root▲ ★:2005/07/12(火) 20:38:31 ID:???0 BE:7387799-###
>>771
了解です。

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

これが働くのは、1週間のうちの5分だけのはずです。
775root▲ ★:2005/07/12(火) 20:40:18 ID:???0 BE:5746379-###
>>773
そんでは、今までどおりでいきます。
776ちょろ ★:2005/07/12(火) 20:43:12 ID:???0
あと 通称形態バーボンの早期投入が望まれています。 from 規制議論板
777ちょろ ★:2005/07/12(火) 20:43:24 ID:???0
携帯だった
778root▲ ★:2005/07/12(火) 20:45:55 ID:???0 BE:729942-###
>>776-777
若者の動向を、どうこうしないといけないのかしら。

# 大学生は、そろそろしけーんのシーズンかも。
779root▲ ★:2005/07/12(火) 20:52:06 ID:???0 BE:1642829-###
BBS.CGI - 2005/07/12

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

tiger では LA=20 で発動なので運良くこれまで一度も起こっていませんが、
ex/anime/news以外は、bananaと同じ処理にしておきます。
783root▲ ★:2005/07/12(火) 21:19:51 ID:???0 BE:3283766-###
でもetc4は、電車男の時がちょっぴり心配かもね。
ま、いっか。その時はその時ということで。
784 ◆TWARamEjuA :2005/07/12(火) 21:23:41 ID:KkcxB0RO0 BE:4900695-#
>>781
ネタ的には暖めているですです。
・自動でBBR→BBM
785ちょろ ★:2005/07/12(火) 21:24:48 ID:???0
うーん
基本的には、、、全部onにして欲しいんだが、

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

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

規制情報板まわりのコストがはげしく上昇しています。
786動け動けウゴウゴ2ちゃんねる:2005/07/12(火) 21:26:24 ID:0+KohaPe0
>>785
> (anime は shar だかを ex11 に移転すればいいのかな?)
(ノ∀`)アチャー
787root▲ ★:2005/07/12(火) 21:31:25 ID:???0 BE:912252-###
>>785
はいー。
788▲ ◆SANUKI/VII :2005/07/12(火) 21:36:47 ID:Z56JnQiFP BE:12232139-###
あと、ex10&ex11のBBMが動いてない気がするんですけど…
789root▲ ★:2005/07/12(火) 21:40:31 ID:???0 BE:3830876-###
・bananaサーバでは必ず実行
・他の該当するサーバ(live系とex11)では必ず実行しない
・それ以外は必ず実行

にしました。

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

live系ですらこのような状況で止まることはないようなので、
単なる投稿数ではない、何か別の理由を疑い始めています。
790root▲ ★:2005/07/12(火) 21:41:55 ID:???0 BE:5837388-###
・bananaサーバでは必ず実行
・他のサーバ(tiger/cobra)のうち該当するサーバ(live系とex11)では実行しない
・それ以外のサーバは必ず実行

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

# いったん、オフライン。
791root▲ ★:2005/07/12(火) 21:42:27 ID:???0 BE:3830876-###
>>789 は、>>790 の上三行の説明を明確化で。
792ちょろ ★:2005/07/12(火) 21:42:37 ID:???0
はーい

今晩 bbs.cgi さわります
samba値を SETTING.TXT で指定
793桶屋:2005/07/12(火) 21:46:04 ID:aFhCYHbJ0
おおっ、ついに!
794動け動けウゴウゴ2ちゃんねる:2005/07/12(火) 21:59:34 ID:rWGBNCgJ0
SETTING.TXTを変更するCGIも忘れずにー
795 ◆TWARamEjuA :2005/07/12(火) 22:06:08 ID:KkcxB0RO0 BE:1306962-#
>>794
F22のように、一元管理をすると楽かもね♪
各鯖にそれぞれログオンするよりも、どこかの鯖で全板を管理しちゃうとかとか。

でも700板以上あるのよねぇ(汗)@SETTING.TXTの数
796桶屋:2005/07/12(火) 22:07:50 ID:aFhCYHbJ0
ん?
変更人さんのお仕事を、サーバの管理者に一元して移してしまうということですか?
797動け動けウゴウゴ2ちゃんねる:2005/07/12(火) 22:16:55 ID:FtnWrdWf0
700以上って・・・恐ろしい数ですね。
798動け動けウゴウゴ2ちゃんねる:2005/07/12(火) 22:49:00 ID:fwwlW4liO
で、いくつにするの?
60くらい?
799む P221119009124.ppp.prin.ne.jp:2005/07/12(火) 22:54:19 ID:BoWTin/Io
というわけで、携帯バーボンは若者にがんがってもらっちゃうてして、
私は凄腕さんと、Rock54の携帯用拡張、名付けてRock54Mをやることにしよう。

で、Rock54Mからは将来的に、自動的にBBMに突っ込んでしまうようにしよう。
800CamelRock ★:2005/07/12(火) 23:14:48 ID:???0
わーい
801動け動けウゴウゴ2ちゃんねる:2005/07/12(火) 23:52:16 ID:fNDV0xfS0
記念パピコ
802root▲ ★:2005/07/13(水) 00:22:22 ID:???0 BE:912252-###
Rock54Mはbanana238に作ることになるわけだけど(今のRock54に同居)、
その作業は、システムの検査が終わった後で。

基本的には、今まで「無駄弾」を撃っていた
携帯からの広告投入に対応する器を作って、そこに入れ込むってかんじで。
803root▲ ★:2005/07/13(水) 01:33:19 ID:???0 BE:1094562-###
で、banana238のシステムそのものは健康であることが判明したため、
こっちは、たんたんと。
804root▲ ★:2005/07/13(水) 01:34:31 ID:???0 BE:3192757-###
で、ネットワーク的には、
今までBBXに行っていた携帯からの広告投げの弾(無駄弾)を、
BBN(仮称)にとばすようにするだけなので、238の負荷は変化ないです。

あとは、単独スレ立ててそっちでやるかな。
805動け動けウゴウゴ2ちゃんねる:2005/07/13(水) 01:45:07 ID:FrLVYDzQO
携帯ユーザーとして、詳細キボンヌ
806動け動けウゴウゴ2ちゃんねる:2005/07/13(水) 01:53:36 ID:AqB4ODOL0
>>805
Rockに登録されてる広告をマルチしてる携帯を自動的に永久アク禁にするシステム。
807root▲ ★:2005/07/13(水) 02:16:40 ID:???0 BE:1642829-###
■ Rock54M - 携帯からの広告投入撃退作戦
http://qb5.2ch.net/test/read.cgi/operate/1121187328/

ということで、あとはこちらで。
808動け動けウゴウゴ2ちゃんねる:2005/07/13(水) 02:18:12 ID:X4/QMEFj0 BE:2745555-#
http://headline.2ch.net/test/read.cgi/bbynews/1121188566/

【音楽】サマソニにディープ・パープル出演決定!!【SUMMER SONIC 2005】
http://news18.2ch.net/test/read.cgi/mnewsplus/1121188566/
1 :starmanφ ★ :2005/07/13(水) 02:16:06 ID:???0
809動け動けウゴウゴ2ちゃんねる:2005/07/13(水) 02:18:34 ID:X4/QMEFj0 BE:659232-#
やば、誤爆。
810タソキ@妄想系統 1/10 ☆ ◆Ver7J..... :2005/07/14(木) 02:20:47 ID:fa4sKur90
bbsテーブルには、729板登録されています。
811動け動けウゴウゴ2ちゃんねる:2005/07/17(日) 01:43:54 ID:MavNy2ze0
BBSが止まってますと表示されますが、何が原因でしょうか?
812動け動けウゴウゴ2ちゃんねる:2005/07/17(日) 01:45:39 ID:c3z5IEpQ0 BE:5929496-#
>>811
掲示板システムの意味のBBSじゃないから気にしないで由
813動け動けウゴウゴ2ちゃんねる:2005/07/17(日) 01:46:24 ID:MavNy2ze0
ありがおう
814動け動けウゴウゴ2ちゃんねる:2005/07/18(月) 21:40:37 ID:Cy7spHeg0
ここはレベルが高いインターネッツですね
815動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 14:58:02 ID: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";
816一般民:2005/07/21(木) 15:01:46 ID:Jxz++eR80
お忙しいところすみません、一般民としてなのですが…
Over1000したときに出る『Over 1000 Thread』
に、日付と時刻を入れるのがよいかと思ったのですが。
普通のレスと同じ様な要領でも結構ですし。
817動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:04:11 ID:OShkCw3P0
1000の日時と大差ない気が
818動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:07:56 ID:01ZGX+wVP
だとread.cgiで1000の日時を表示するようにした方が・・・
ってこれはread.cgiスレ行きだなw
819動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:08:42 ID:I4CPx6uW0
>>815
> `uptime`
このコストがもったいないべ
820動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:10:47 ID:I4CPx6uW0
>>818
そうなのか?
read.cgiはdat表示するだけだからいじるならbbs.cgiかと思ってこっちに誘導したんだけどw
821動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:12:24 ID:01ZGX+wVP
>>802
1001に組み込むならbbs.cgi、
1000も表示するならread.cgiかとw
822動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:15:25 ID:I4CPx6uW0
>>821
そういうことか
read.cgiで1と1000と1001を表示するってことか
ならread.cgiだね
823動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:16:02 ID:OlL03Us70
それ以前になぜ弄る必要があるかって話しだな
そのままでも不都合はないのに
824動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:33:02 ID:DHHT4d3K0
同意、1000の日時とほとんど同じだから変える必要ないよ
825動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:43:29 ID:01ZGX+wVP
1001行ったスレは1000の日時が●無しでは分からないと思われ。
826動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 15:58:55 ID:pJtSBEAy0
>>819
んじゃこれは?
…と思って書こうと思ったスクリプトがCpuLoad.pmとそっくりだった(´・∀・`)
827動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 17:28:05 ID:eGLeaMlD0
>最終時刻の件

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

よって実現させるならbbs.cgiをいじる方がいいと思う
828動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 17:41:50 ID: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
とかあるんだがポータビリティ考えると使わない方が良いのかな?
829動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 17:52:01 ID:6ungblET0
確かに普通だと完走したスレはいつ完走したのかわからんかった
830動け動けウゴウゴ2ちゃんねる:2005/07/21(木) 18:56:39 ID:I4CPx6uW0
831 ◆TWARamEjuA :2005/07/21(木) 20:07:19 ID:B2f3VaoD0 BE:3811875-#
>>815
→print "Content-type: text/html\n\n";
print "Content-type: text/plain\n\n";
ですね♪
832動け動けウゴウゴ2ちゃんねる:2005/07/24(日) 08:36:16 ID:7+XtBgBCO
open LA, 'uptime |';
$la = <LA>;
close LA;

んーわざわざモジュールを使わなくてもいいような。。
833動け動けウゴウゴ2ちゃんねる:2005/07/24(日) 08:39:10 ID:eC9SVQJd0
重くていいならね
834動け動けウゴウゴ2ちゃんねる:2005/07/24(日) 12:37:16 ID:Wnx52BAf0
ていうかたかだか20レスの流れぐらい嫁と
835動け動けウゴウゴ2ちゃんねる:2005/07/24(日) 19:21:34 ID: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
836▲ ◆cZfSunOs.U :2005/07/25(月) 00:08:26 ID:/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);
837動け動けウゴウゴ2ちゃんねる:2005/07/25(月) 10:07:48 ID:yHxLJjI00
手元のlinuxでもgetloadavg()ありますな
838動け動けウゴウゴ2ちゃんねる:2005/07/25(月) 11:32:16 ID: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 側に移管すると,
それも解決しますけどね.
839動け動けウゴウゴ2ちゃんねる:2005/08/08(月) 19:30:09 ID:tRVacNbU0
840▲ ◆cZfSunOs.U :2005/08/09(火) 19:59:03 ID:PPUhO8ll0
http://qb5.2ch.net/test/read.cgi/operate/1123079563/891-897n
に出ているような不正バイトシーケンスが含まれたカキコは,
bbsd で LANG=ja_JP.SJIS にして -c オプションを有効にすれば弾けます.
バックエンド (live22) 側に余力があるならご検討を......
841root▲ ★:2005/08/10(水) 00:55:09 ID:???0 BE:1095326-###
>>840
んと、携帯の顔文字とかSJISの範囲外の文字とかは、どうするのがよいかしら。
あ、bbsdさんがSETTING.TXTのUNICODEのやつを読んで、セットされていたら
はじくのをスキップすればいいのかな。
842▲ ◆cZfSunOs.U :2005/08/10(水) 01:57:00 ID:boqmM/Zu0
>>841 弾くのは Shift JIS のバイトシーケンスとして矛盾がある場合なので
(実際上は FreeBSD のロケール / mbstowcs() の実装に依存しますが),
例えば &#xxxx; の形式(実体参照)であれば無問題ですね.
843root▲ ★:2005/08/10(水) 05:11:26 ID:???0 BE:2736656-###
>>842
なるほどです。

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

帰国後落ち着いたらいろいろと動かし始める皮算用なので、その時にでも。
847動け動けウゴウゴ2ちゃんねる:2005/08/11(木) 15:16:33 ID:+abyIG1W0
AIR-EDGE PHONEマーク "o" って意味あるんですか?
全規制が回避できないのなら、やめて欲しいです。
848動け動けウゴウゴ2ちゃんねる:2005/08/11(木) 15:46:17 ID: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.( ̄ー ̄)ニヤリッ
と出てる人はその書き込みを諦めましょう
諦めず連投しているとアク禁等になります
849▲ ◆cZfSunOs.U :2005/08/13(土) 14:56:02 ID: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
850動け動けウゴウゴ2ちゃんねる:2005/08/17(水) 11:37:40 ID:pNvdhSzi0
>652 >666等を読むと、AIR-EDGE PHONEセンターのID識別子導入は、
荒らし調査のための暫定的な措置のように感じるんですが、外すことはないですか?
その識別子導入の元ネタであろうと思われる、
AIR-EDGE PHONEセンターとその他のPRINの個別規制の方はどうでしょうか?

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

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

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

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

ppp.prin.ne.jpを永久全規制とかされたら奥様に何て言われるだろうか、、、
と思うと、書けないperlも書けたりするようです。
862● ◆ANGLERlqvM :2005/09/09(金) 02:38:11 ID:gDRFCAi+0 BE:4476858-###
(´-`;).。oO(苦労してますね。。。)
863名無しさん@そうだ選挙に行こう:2005/09/10(土) 17:54:49 ID:Oz0EJ4RnO
やっぱり自分に都合のいいことはやるんだね。
グローバルIPをもってない人はもってください、と同じで、全規制されたら違う手段を使ってください、だろうに。
864名無しさん@そうだ選挙に行こう:2005/09/10(土) 18:05:36 ID:/WEUY0t90
個人サイトですべての利用者が平等な必要があるのかと
865動け動けウゴウゴ2ちゃんねる:2005/09/10(土) 18:05:54 ID:zB9Y0vkN0
http://qb5.2ch.net/test/read.cgi/operate/1125748886/716
↑どういう仕組みで止めてるの?
866名無しさん@そうだ選挙に行こう:2005/09/10(土) 18:09:36 ID:r7NgOcl/0
Client_IPをログに残すだけなら判定は後回しでもいいんじゃ?と思った
(とりあえず記録しといて問題が起きたときに信用できるか調べる)
867名無しさん@そうだ選挙に行こう:2005/09/10(土) 18:28:06 ID:B2Wejsug0
>>861
ほんとは夫婦で●共有しているくせに
868名無しさん@そうだ選挙に行こう:2005/09/10(土) 20:40:30 ID:tC7Do3ra0
オレもAIR-EDGE PHONEユーザーだから応援する。
しかしJRCやめて早く新しい機種でないかなぁ。
869名無しさん@そうだ選挙に行こう:2005/09/11(日) 13:52:26 ID:uh2Q9bvo0
>>861
あのーp2経由で2ちゃんに参加するってぇのは駄目なの?
870 ◆MUMUMUhnYI :2005/09/12(月) 13:24:17 ID:z6uNMUY90
>>867
私の名義の2枚のクレカで1つずつ買って、そのうちのひとつを奥様が占有使用しているです。
(奥様はクレカ作ってないんで)
871動け動けウゴウゴ2ちゃんねる:2005/09/12(月) 20:19:17 ID:35vELVZ60
そのクレカ、名義人本人以外が使って良いの?
872動け動けウゴウゴ2ちゃんねる:2005/09/12(月) 20:25:08 ID:jtpZdRO+0
本人が別々のクレカで二つ買ったのをひとつ与えてるんだろう。
というかスレ違い。粗探しはよそで。
873動け動けウゴウゴ2ちゃんねる:2005/09/12(月) 21:48:56 ID:35vELVZ60
叩きたいわけじゃないよ
何かあった時保障がないんじゃないかとちょっと心配しただけ
今は本人確認うるさいし
本人が良いならそれでいいんだけど
874動け動けウゴウゴ2ちゃんねる:2005/09/12(月) 23:02:56 ID:az9VaDrT0
>本人が良いならそれでいいんだけど

余計なお世話と分かっているのに続けるのは粘着への第一歩かと。
875動け動けウゴウゴ2ちゃんねる:2005/09/13(火) 14:10:17 ID:aDy7aNWL0
愛があれば大丈夫です。
でも、愛が無くなった時が大変です。
876動け動けウゴウゴ2ちゃんねる:2005/09/15(木) 17:40:25 ID:qMrRVxhX0
>>875
コラッ!本人を目の前にしてそんなこと言うんじゃありません!
877動け動けウゴウゴ2ちゃんねる:2005/09/17(土) 12:48:38 ID:VBcpY5C10
>>875
それなんてきみまろ?
878動け動けウゴウゴ2ちゃんねる:2005/09/21(水) 22:02:20 ID:fVZ+dGIa0
>>864
必要はないが利用者が騒ぐだけ
879動け動けウゴウゴ2ちゃんねる:2005/09/21(水) 22:14:28 ID:RbGH9Mto0
で?
880動け動けウゴウゴ2ちゃんねる:2005/09/22(木) 17:08:12 ID:QnTbAkUhO
ど?
881動け動けウゴウゴ2ちゃんねる:2005/09/22(木) 17:38:23 ID:8luWl9mk0
う?
882動け動けウゴウゴ2ちゃんねる:2005/10/09(日) 23:46:12 ID:o192VLCT0
よ?
883動け動けウゴウゴ2ちゃんねる:2005/10/15(土) 13:05:17 ID:XEAlpA8H0
か?
884root▲ ★:2005/10/21(金) 20:42:04 ID:???0
BBS.CGI - 2005/10/21

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

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

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

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

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

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

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

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

テキストブラウザでどれだけカキコがあるかにもよると思いますが、
かなり多いようであればnewWindow案は棄却だと思います。
897674●part18 ◆IiIGjn5YT2 :2005/10/24(月) 15:41:06 ID:6jlOsF770
>>894
二番目は意味がないです。
このケースではブラウザのバックボタンがつかえるかどうかはさしたる意味を持ちません。
それだけなら元のwindowでもう一度書き込みボタンを押せば突破できてしまいます。
898動け動けウゴウゴ2ちゃんねる:2005/10/24(月) 15:48:33 ID:Uzh/6H5L0
>>897
やっぱそうでしょうねぇ

やはりクッキーで承諾フラグをつけるのが望ましいということですか。
899動け動けウゴウゴ2ちゃんねる:2005/10/24(月) 16:27:35 ID:2Gpt3UV80
>>889
「この画面を表示させた後の書き込みは、すべて上記内容を承諾したものとみなします。」の
一文でも書き加えればいいと思われ。
で、そうするとボタンのキャプションがくどいから、ボタンは「書き込む」だけに変更。

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

の方が良いかな。
906動け動けウゴウゴ2ちゃんねる:2005/10/24(月) 17:44:15 ID:uzN2YoDz0
荒らし対策じゃないんで、投稿を防ぐ必要は無いんだよね、別に。
承諾さえされれば。
907動け動けウゴウゴ2ちゃんねる:2005/10/24(月) 20:15:37 ID:dTT/EBc00
>>901
それで解決ですな
908動け動けウゴウゴ2ちゃんねる:2005/10/24(月) 21:19:20 ID:b+V7uzLR0
承諾したくない困った人は、これを改良したとしても、
前回は承諾フォームが出て承諾して書き込んだが、
今回は承諾フォームが出なかったので、表示されもしない内容に承諾できるわけがない、承諾していない
と言い出すと思う。

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

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

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

いずれにせよ、言い逃れができない形にしないと、たとえば2ch発の
書籍を作ったりする際にいろいろ問題が発生してしまいそうな気もする。
914動け動けウゴウゴ2ちゃんねる:2005/10/25(火) 01:09:02 ID:x9TmyNgO0
まあ、建前で表示してるだけだし。
915動け動けウゴウゴ2ちゃんねる:2005/10/25(火) 01:19:46 ID:PSbrr/As0
>>914
建前…っても、
http://www.itmedia.co.jp/news/bursts/0204/15/13.html
みたいに、書籍の出版・販売差し止めと賠償を認めた判決もあるし。
2ちゃんねる編の書籍もある以上、あまりないがしろにするのもどうかと。

「拒否ボタン」いいね。
916動け動けウゴウゴ2ちゃんねる:2005/10/25(火) 08:01:32 ID:x9TmyNgO0
通常の利用ではありえない方法で、規約に同意したかのような
データを送信して、そうであるから規約には同意していないのだ、
というのが通用するかどうかのな。
掲示板での議論ではなく、裁判で。

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

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

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

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

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

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

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

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

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

ようは、その実装方法がうーむだと。
932root▲ ★:2005/10/26(水) 13:51:08 ID:???0
do {
#サブジェクトがあれば新規スレなのでキーを現在に設定
$GB->{FORM}->{'key'} = $GB->{NOWTIME};
#.datファイルの設定
$DATAFILE = $GB->{DATPATH} . $GB->{FORM}->{'key'} . ".dat";

} while ( -e $DATAFILE ) ;

これって、$DATAFILE が既に存在してたら、無限ループに陥るんではないかしら。
933stream ◆ap/yuix/tw :2005/10/26(水) 14:15:06 ID: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
排他処理をしていないのが原因、というわけではないので大丈夫かと思うです。
==========================================
934root▲ ★:2005/10/26(水) 14:19:31 ID:???0
それについて書こうと思ったら、>>933 が。

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

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

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

*以下推測*

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

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

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

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

ってことにしようかなと。
937root▲ ★:2005/10/26(水) 16:22:21 ID:???0
BBS.CGI - 2005/10/26

$GB->{FORM}->{'key'} = &mumumuAllocateThreadKey($GB);
$DATAFILE = $GB->{DATPATH} . $GB->{FORM}->{'key'} . ".dat";

にした。
で、mumumu AllocateThreadKeyの中身は >>936 にしたつもり。

これで、

・bbs.cgi謎の暴走
・スレ立て混雑時にサーバ劇重

が、少しでも改善されるといいかなと。
938 ◆IiIGjn5YT2 :2005/10/26(水) 16:27:27 ID: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. スレたて処理
939root▲ ★:2005/10/26(水) 16:30:25 ID:???0
>>938
最初はそういうのを考えていたんですが、
1秒とか0.5秒とか待つのが、いやだったです。

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

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

って、なっています。

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

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

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

一つ海外出張がキャンセルになってちょっと落ち着いたので、
このへんを、ぼちぼちあっちですすめようかなと。> SunOSさん
945root▲ ★:2005/10/26(水) 19:05:46 ID:???0
で、>>937 により「ごめんなさいリミッター第二弾」が実装されました。
どのくらい、発動しているんだろうか。
946▲ ◆cZfSunOs.U :2005/10/26(水) 22:28:35 ID:ICyD85HJ0
ん〜と,現在の bbsd ではスレ立て時の key をインクリメントしながら一定回数(現在は16)
リトライするようになっています.その際,open() を O_CREAT|O_EXCL フラグ付きで
呼び出しているため,ファイルの存在確認と生成はアトミックになっているはずです.

当初はスレ立て時の key としては bbsd 側の現在時刻を用いていましたが,
それだと headline に渡す key とのずれが生じる問題も発生したため,
現在は bbs.cgi 側から渡された key を使用するようになっています.
ただ,上記の key のインクリメントが発生するとやはりずれが生じることに
なるので,そこの調整をする仕組みが必要になりますかね.
947▲ ◆cZfSunOs.U :2005/10/26(水) 22:37:27 ID:ICyD85HJ0
単純に,bbsd 側ではリトライせず,key をインクリメントした上でのリトライは
bbs.cgi 側に任せるという形でもいいんですかね.同じ key を持つ dat が
存在した場合,bbsd は EEXIST に相当するエラーメッセージを返すことになるんで.
948root▲ ★:2005/10/26(水) 23:48:08 ID:???0 BE:1459744-###
>>946-947
なるほど、なるほど。

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

週末あたりから、APIを詰めていくスレをoperateに立てようかと。
ほんじつは、ここまで。
953root▲ ★:2005/10/28(金) 17:10:58 ID:???0 BE:821333-###
ということで、立てました。

【雪だるま】bbsd⇔各cgi間のI/F仕様について考え・詰めていくスレッド
http://qb5.2ch.net/test/read.cgi/operate/1130482779/

ぼちぼち、すすめていこうかと。
954動け動けウゴウゴ2ちゃんねる
てすと