peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。
【開発環境の工事現場】
また挑戦。@2ch掲示板 http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/
関連スレなどは >>2-5 くらい
探検
bbs.cgi再開発プロジェクト6
■ このスレッドは過去ログ倉庫に格納されています
2005/04/10(日) 16:15:47ID:a6rtBqIi0
400root▲ ★
NGNG クリアできたはず。< BBX
401root▲ ★
NGNG で、
> ・このバージョンを配布する
お願いします。>FOXさん
> ・このバージョンを配布する
お願いします。>FOXさん
403reffi@報告人 ★
NGNG また書けなくなりそうのでキャップ使うか
>402
クリアした状態でもう一度テストしてきます。
(わざとrockされてからの通常書き込み)
>402
クリアした状態でもう一度テストしてきます。
(わざとrockされてからの通常書き込み)
404reffi@報告人 ★
2005/06/05(日) 04:51:19ID:???0 >402
rockした後で正常に書き込みは出来ましたけど一発サクラになってます。
(IP変えた後なのにrockワード書いただけで吸い込まれた)
rockした後で正常に書き込みは出来ましたけど一発サクラになってます。
(IP変えた後なのにrockワード書いただけで吸い込まれた)
405reffi@報告人 ★
2005/06/05(日) 04:56:33ID:???0 テストして報告してるのが漏れしかいないので更にテスター募集
運用情報(金)で改善版動いているのでよろしくお願いします。
運用情報(金)で改善版動いているのでよろしくお願いします。
406FOX ★
2005/06/05(日) 05:02:07ID:???0 配布しますか、
みんながテスター
みんながテスター
NGNG
409FOX ★
2005/06/05(日) 05:03:28ID:???0 配布したです。
410reffi@報告人 ★
2005/06/05(日) 05:03:43ID:???0 募集したらテストしてもらっているようです。
※テスターの人へ
不具合報告等はこちらまで
※テスターの人へ
不具合報告等はこちらまで
411root▲ ★
NGNG 現在、glist / klist とも、初期化した状態です。>未承諾広告さん、ALL
412● ◆ANGLERlqvM
NGNG さくら、非さくら、BBR共に正常に取れていますですです。
(吸い込み動作も確認取れました。)
BBX チェック(2ちゃんねるで広告爆撃したホストなどが、登録されています。)
La ROCA es la vida.(-_-)
;; ANSWER SECTION (1 record)
48.33.105.220.bbx.2ch.net.2048INTXT"shutouted by BBX: 220.105.33.48"
Monazilla/1.00 MAKA/1.0b
(吸い込み動作も確認取れました。)
BBX チェック(2ちゃんねるで広告爆撃したホストなどが、登録されています。)
La ROCA es la vida.(-_-)
;; ANSWER SECTION (1 record)
48.33.105.220.bbx.2ch.net.2048INTXT"shutouted by BBX: 220.105.33.48"
Monazilla/1.00 MAKA/1.0b
414root▲ ★
NGNG DNS側、正常に見えます。
異常なパケットの増加等、観測されていません。
DB登録部分も正常。
異常なパケットの増加等、観測されていません。
DB登録部分も正常。
415FOX ★
2005/06/05(日) 05:08:03ID:???0 大変です
お腹ぐるぐるしています
旅にでます
お腹ぐるぐるしています
旅にでます
416root▲ ★
NGNG417root▲ ★
NGNG で、今 220.105.33.48 を bbxdel しておきました。
>>415
お、お、お大事にです(汗)
>>416
NG ワード履歴。
履歴。[総数 5]
トラップ日時 IPアドレス フラグ サブスクライバ 鯖名/板/
2005/06/05/(日) 05:03:16 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:53 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:44 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:34 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:00:48 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
桶みたいですよね♪
お、お、お大事にです(汗)
>>416
NG ワード履歴。
履歴。[総数 5]
トラップ日時 IPアドレス フラグ サブスクライバ 鯖名/板/
2005/06/05/(日) 05:03:16 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:53 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:44 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:02:34 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
2005/06/05/(日) 05:00:48 220.105.33.48 Normal none http://qb6.2ch.net/operate2/
桶みたいですよね♪
上手いこと動いてる悪寒。qb6
IP繋ぎなおしても動作正常に見えました。
Monazilla/1.00Hotzonu/2.0
IP繋ぎなおしても動作正常に見えました。
Monazilla/1.00Hotzonu/2.0
421root▲ ★
NGNG >>420
# ./main/bbxdump.pl -kC | grep 219.98.185.135
219.98.185.135 Sat Jun 4 13:10:03 2005
これも、これから消しておきます。
# ./main/bbxdump.pl -kC | grep 219.98.185.135
219.98.185.135 Sat Jun 4 13:10:03 2005
これも、これから消しておきます。
422FOX ★
2005/06/05(日) 05:14:11ID:???0 ok?
425FOX ★
2005/06/05(日) 05:16:13ID:???0 わーい
426root▲ ★
NGNG で、Rock54で登録されたIPアドレスのリストをいったんクリアしたので、
一時的に広告貼られるかもですが、
業者さんが自ら貼ろうとしていくことにより、
時間を追って、正常に戻っていくかと。
一時的に広告貼られるかもですが、
業者さんが自ら貼ろうとしていくことにより、
時間を追って、正常に戻っていくかと。
暫し観測ってところでしょうか。
何だかモヤモヤしていたのがすっきりとした感じです。
みなさんありがとうございましたですですm(_ _)m深謝
何だか、次の目標みたいなのが見え隠れしてきたような♪
何だかモヤモヤしていたのがすっきりとした感じです。
みなさんありがとうございましたですですm(_ _)m深謝
何だか、次の目標みたいなのが見え隠れしてきたような♪
428root▲ ★
NGNG 落ち着いたら、再度 bbs.cgi をプロファイリングしてみるです。@ qb6
429root▲ ★
NGNG 順調に(普通のペースで) klist が増えていっているようなので、
問題なさげですね。
Rock54システム側は、どんなかんじかしら。>未承諾広告さん
問題なさげですね。
Rock54システム側は、どんなかんじかしら。>未承諾広告さん
430reffi@報告人 ★
2005/06/05(日) 05:22:08ID:???0 これでようやく一段落かな
作業してくれた人、乙でした〜〜〜
※もし直せる人が寝た状態だったら恐ろしいことになってた悪寒
(報告によると公式p2はおろか携帯も巻き添えが及んでいたらしいです。)
作業してくれた人、乙でした〜〜〜
※もし直せる人が寝た状態だったら恐ろしいことになってた悪寒
(報告によると公式p2はおろか携帯も巻き添えが及んでいたらしいです。)
432root▲ ★
NGNG 了解です。>>431
で、今のままだと統計見るのに影響があるので、
今日のはずかしい記録(wを、これから消しておくです。>未承諾さん
http://mumumu.mu/mrtg/mrtg-rrd.cgi/bbqbbx/bbr.html
で、今のままだと統計見るのに影響があるので、
今日のはずかしい記録(wを、これから消しておくです。>未承諾さん
http://mumumu.mu/mrtg/mrtg-rrd.cgi/bbqbbx/bbr.html
434root▲ ★
NGNG さっきのは、ちゃんと通ってなかったっぽいです。
こんどのは、それっぽいです。
確実に、コストは下がってるですね。
%dprofpp tmon.out
Total Elapsed Time = 0.599639 Seconds
User+System Time = 0.302764 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
12.8 0.039 0.039 1 0.0391 0.0391 main::initFOX
10.2 0.031 0.031 1 0.0312 0.0312 main::IsKoukoku
10.2 0.031 0.125 1 0.0312 0.1251 main::bbs_entryXXX
7.60 0.023 0.128 19 0.0012 0.0067 main::BEGIN
5.28 0.016 0.023 10 0.0016 0.0023 LWP::UserAgent::BEGIN
4.95 0.015 0.059 1 0.0155 0.0592 main::bbs_main
4.95 0.015 0.037 11 0.0014 0.0034 Net::DNS::Resolver::Base::BEGIN
2.64 0.008 0.008 1 0.0078 0.0078 Carp::shortmess
2.64 0.008 0.008 5 0.0016 0.0016 DynaLoader::dl_load_file
2.64 0.008 0.008 49 0.0002 0.0002 Exporter::import
2.64 0.008 0.008 8 0.0010 0.0010 Net::HTTP::Methods::my_readline
2.64 0.008 0.008 4 0.0020 0.0019 Net::DNS::Header::new
2.64 0.008 0.008 3 0.0026 0.0026 HTTP::Message::content
2.64 0.008 0.008 1 0.0078 0.0077 Fh::BEGIN
2.64 0.008 0.008 4 0.0019 0.0019 HTTP::Response::BEGIN
こんどのは、それっぽいです。
確実に、コストは下がってるですね。
%dprofpp tmon.out
Total Elapsed Time = 0.599639 Seconds
User+System Time = 0.302764 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
12.8 0.039 0.039 1 0.0391 0.0391 main::initFOX
10.2 0.031 0.031 1 0.0312 0.0312 main::IsKoukoku
10.2 0.031 0.125 1 0.0312 0.1251 main::bbs_entryXXX
7.60 0.023 0.128 19 0.0012 0.0067 main::BEGIN
5.28 0.016 0.023 10 0.0016 0.0023 LWP::UserAgent::BEGIN
4.95 0.015 0.059 1 0.0155 0.0592 main::bbs_main
4.95 0.015 0.037 11 0.0014 0.0034 Net::DNS::Resolver::Base::BEGIN
2.64 0.008 0.008 1 0.0078 0.0078 Carp::shortmess
2.64 0.008 0.008 5 0.0016 0.0016 DynaLoader::dl_load_file
2.64 0.008 0.008 49 0.0002 0.0002 Exporter::import
2.64 0.008 0.008 8 0.0010 0.0010 Net::HTTP::Methods::my_readline
2.64 0.008 0.008 4 0.0020 0.0019 Net::DNS::Header::new
2.64 0.008 0.008 3 0.0026 0.0026 HTTP::Message::content
2.64 0.008 0.008 1 0.0078 0.0077 Fh::BEGIN
2.64 0.008 0.008 4 0.0019 0.0019 HTTP::Response::BEGIN
436root▲ ★
NGNG で、
@FOX_Ro54 = <ADFILE> ;
を、
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;
にした分、initFOX のコストが少し上がったと。
でも、全体のコストは下がったと、そんなかんじか。
@FOX_Ro54 = <ADFILE> ;
を、
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;
にした分、initFOX のコストが少し上がったと。
でも、全体のコストは下がったと、そんなかんじか。
437root▲ ★
NGNG …でも、initFOX は上のほうにもあるように、船が出港する時しか通らないから、
全体としては、大幅にコスト下がってるですね。
1回目で 1/4 ということは(>>434-435)、
常駐型なら、ほんとに 1/10 にはなっている気がするです。
というわけで、関係した方々、おつでした。
これで、某サーバのスレ保持数を 700 でキープできるといいなと。
(ちょっと、500にするのは負けっぽいなと)
全体としては、大幅にコスト下がってるですね。
1回目で 1/4 ということは(>>434-435)、
常駐型なら、ほんとに 1/10 にはなっている気がするです。
というわけで、関係した方々、おつでした。
これで、某サーバのスレ保持数を 700 でキープできるといいなと。
(ちょっと、500にするのは負けっぽいなと)
2005/06/05(日) 05:52:04ID:lDRHu7D40
現時点でIskoukokuスルーになっている鯖は?
2005/06/05(日) 05:57:20ID:CusxkNZG0
4時頃にいきなり公式p2でdat取得済みのスレのスレタイのみが文字化けしてしまったのもこれが原因でしょうか?
ちなみに面白news板でdat取得済みのスレに起こった不具合のようですが
この場合、一旦ログを削除してdatを再取得しなければ直りませんかね?
ちなみに面白news板でdat取得済みのスレに起こった不具合のようですが
この場合、一旦ログを削除してdatを再取得しなければ直りませんかね?
2005/06/05(日) 06:17:17ID:lDRHu7D40
>>440
コストが減った事でその鯖群に戻す予定はないの?
コストが減った事でその鯖群に戻す予定はないの?
2005/06/05(日) 06:30:22ID:Udm1KQ0E0
懲罰鯖なんだから必要なしでいいんじゃない?
2005/06/05(日) 10:21:11ID:3ZFpX0H70
445一2ちゃんねら
2005/06/05(日) 15:32:51ID:qwR0dPua0 root▲ ★ さん、明け方まで乙でした。
いつも運営ありがとうございます。
どうぞお体にお気をつけて・・・。
いつも運営ありがとうございます。
どうぞお体にお気をつけて・・・。
2005/06/05(日) 16:44:10ID:3ZFpX0H70
>>308
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Mm][Oo][Rr][Ee]/);
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Mm][Oo][Nn][Ee][Yy]/);
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Pp][LlIi][SsZz]/);
$blacklist{$allunID} += 2 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz]/);
$blacklist{$allunID} += 5 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz][SsZz]/);
$blacklist{$allunID} += 10 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz][SsZz][SsZz][SsZz]/);
(chat)荒らしくたばれ(謎
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Mm][Oo][Rr][Ee]/);
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Mm][Oo][Nn][Ee][Yy]/);
$blacklist{$allunID} += 1 if ($chatMsg =~ /[Pp][LlIi][SsZz]/);
$blacklist{$allunID} += 2 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz]/);
$blacklist{$allunID} += 5 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz][SsZz]/);
$blacklist{$allunID} += 10 if ($chatMsg =~ /[Pp][LlIi][EeSsZz][SsZz][SsZz][SsZz][SsZz]/);
(chat)荒らしくたばれ(謎
2005/06/05(日) 17:56:13ID:zc3KDxSN0
449root▲ ★
NGNG 1時間ばかり前から、ex9 ex10 の IsKoukoku 有効にしてみた。
2005/06/06(月) 01:36:13ID:QKBCUdccO
現在2chで使用されているPerlは5.6より前のものなんですか?
451FOX ★
2005/06/06(月) 01:38:49ID:???0 いろいろじゃないかなぁ
version 意識したことはないっす
banana601(etc3)
This is perl, v5.6.1 built for i386-freebsd
version 意識したことはないっす
banana601(etc3)
This is perl, v5.6.1 built for i386-freebsd
2005/06/06(月) 02:14:55ID:QKBCUdccO
5.6以上なのであれば、
文字コードの変換にはXSのJcodeが使えたのでは。
PurePerlのjcode.plよりは負荷も少ないと思われますが。
文字コードの変換にはXSのJcodeが使えたのでは。
PurePerlのjcode.plよりは負荷も少ないと思われますが。
453root▲ ★
NGNG2005/06/06(月) 02:32:23ID:QKBCUdccO
そうでしたか。失礼。
上のソースを見たところ&jcode::*となっていたので
てっきりjcode.plを使っているものかと思いこんでいました。
上のソースを見たところ&jcode::*となっていたので
てっきりjcode.plを使っているものかと思いこんでいました。
455root▲ ★
NGNG >>454
jcode.pl 「も」使っているようですよ。
何せ、つぎはぎのソースなんで。
昨年のSpeedyCGI対応の時、
おじさんががんがってきれいにしてくれたので、前よりは「読もうかなぁ」という気にはなるですけど。
jcode.pl 「も」使っているようですよ。
何せ、つぎはぎのソースなんで。
昨年のSpeedyCGI対応の時、
おじさんががんがってきれいにしてくれたので、前よりは「読もうかなぁ」という気にはなるですけど。
2005/06/06(月) 02:59:09ID:QKBCUdccO
と言うと、大本の開発陣は運営側には回ってはいないのでしょうか。
このスレッドをみる限り、リアルタイムで、
それも高頻度でソースの書き換えが行われている様ですが
不特定多数が半端な理解で改造チックな改変を繰り返していると
いずれ対応出来なくなる可能性もあるのでは。
せめて構文チェックくらいはサーバに上げる前に:P
このスレッドをみる限り、リアルタイムで、
それも高頻度でソースの書き換えが行われている様ですが
不特定多数が半端な理解で改造チックな改変を繰り返していると
いずれ対応出来なくなる可能性もあるのでは。
せめて構文チェックくらいはサーバに上げる前に:P
457FOX ★
2005/06/06(月) 03:00:21ID:???0 もう六年もそれを・・・
NGNG
まぁ今ちゃんと動いてるんだし、書き直ししなくてもとりあえずは問題ないんじゃない?
NGNG
2005/06/06(月) 03:09:30ID:enB61RF60
まずくなったらその時考えよう(・∀・)
461stream ◆ap/yuix/tw
NGNG うへへ
2005/06/06(月) 03:13:23ID:QKBCUdccO
なんか偉そうなこと言っちゃいましたが
まあ、なんだ、その。頑張って下さい。( ̄∀ ̄)
私も一Perlerとしてこのスレッドに貢献出来るよう
身勝手ながら努めさせていただきます。
では。よい夜を。
まあ、なんだ、その。頑張って下さい。( ̄∀ ̄)
私も一Perlerとしてこのスレッドに貢献出来るよう
身勝手ながら努めさせていただきます。
では。よい夜を。
2005/06/06(月) 04:01:43ID:utjWLPN60
「説教するならコードをくれ」安達祐実
>>444
リファレンスをファイルに書き出してそれを配布して、、、読み込んでも使えないよね?@やってみたけれどもやっぱりダメだった。
でも、わざわざcsv形式にするよか、リファレンスにした方がsplitしないぶん楽になれるかなぁと。
>>453
Jcodeも0.88から2.00に一気に変わったので、要チェックかもです♪@Encodeのwrapperに
>>455
.plと.pmをごちゃ混ぜにするとまずいかもです。。。
.pmは下位互換があるので、.plは外した方がよいかも。。。
require './jcode.pl';
の行で読み込んでいます。
>>456
use strict;
use warnings;
を入れて、あにさんを悩ましてみたい衝動はいつもありますwwwWwww
>>462
よろしくですですm(_ _)m深謝
# Shift_JIS にしたことで、4,50個ほどエラーが出ているもよりです(苦笑)@NGワード
リファレンスをファイルに書き出してそれを配布して、、、読み込んでも使えないよね?@やってみたけれどもやっぱりダメだった。
でも、わざわざcsv形式にするよか、リファレンスにした方がsplitしないぶん楽になれるかなぁと。
>>453
Jcodeも0.88から2.00に一気に変わったので、要チェックかもです♪@Encodeのwrapperに
>>455
.plと.pmをごちゃ混ぜにするとまずいかもです。。。
.pmは下位互換があるので、.plは外した方がよいかも。。。
require './jcode.pl';
の行で読み込んでいます。
>>456
use strict;
use warnings;
を入れて、あにさんを悩ましてみたい衝動はいつもありますwwwWwww
>>462
よろしくですですm(_ _)m深謝
# Shift_JIS にしたことで、4,50個ほどエラーが出ているもよりです(苦笑)@NGワード
2005/06/06(月) 12:02:51ID:0dq56pC0O
JcodeがEncodeのラッパーになるのは5.8.1から。
というかPerl5.8.2を入れて
use encoding
use Encode qw/encode decoge/
した方がJcodeより速い希ガス
というかPerl5.8.2を入れて
use encoding
use Encode qw/encode decoge/
した方がJcodeより速い希ガス
466stream ◆ap/yuix/tw
NGNG ふと思いついたんだけど、過去の突発的な荒らしなどに対して、bbs.cgiに細工をして対処をしたことがあったと思うんだけど、
もう不要な処理については削除すれば、軽くなったりしないのかな。
思いついたもの
1.レスアンカーを付けまくる嵐が出たから、レスアンカーの数を制限した
2.一部の広告荒らしに対し、自動的にそのURLを消去し、名前をfusianaにする
もう不要な処理については削除すれば、軽くなったりしないのかな。
思いついたもの
1.レスアンカーを付けまくる嵐が出たから、レスアンカーの数を制限した
2.一部の広告荒らしに対し、自動的にそのURLを消去し、名前をfusianaにする
467stream ◆ap/yuix/tw
NGNG 「思いついた」というより、「思い出した」だな
2005/06/06(月) 21:02:50ID:i4YGKP210
bbs.cgiの朗読会を開こう
1行目から読んでいって
「この規制なんで入れたんだっけ?」
「あ、あの祭りのときだ」
「もういらないよね」
「じゃあ外そう」
1行目から読んでいって
「この規制なんで入れたんだっけ?」
「あ、あの祭りのときだ」
「もういらないよね」
「じゃあ外そう」
469タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/06(月) 21:40:57ID:TeQoYgbS0 おつdeath death。。
直感的レスを発動させます。
>>311 >正規表現の高速なやつを入れてみるぐらいか。
対象 : IsKoukoku 10.2
>>452-455 >>464 >jcode.pl をはずす。
対象 : 全体 弱い
>>465 >というかPerl5.8.2を入れて use encoding use Encode qw/encode decoge/
対象 : 全体 強い
>>468 >bbs.cgiの朗読会
対象 : main::BEGIN ? 7.60
>>434
UserAgent::BEGIN 5.28 もIsKousokuみたいなことになってるかもと”予測”。
直感的レスを発動させます。
>>311 >正規表現の高速なやつを入れてみるぐらいか。
対象 : IsKoukoku 10.2
>>452-455 >>464 >jcode.pl をはずす。
対象 : 全体 弱い
>>465 >というかPerl5.8.2を入れて use encoding use Encode qw/encode decoge/
対象 : 全体 強い
>>468 >bbs.cgiの朗読会
対象 : main::BEGIN ? 7.60
>>434
UserAgent::BEGIN 5.28 もIsKousokuみたいなことになってるかもと”予測”。
470タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/06(月) 21:44:54ID:TeQoYgbS0 UserAgent::BEGIN は関係なかったです。
471タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/07(火) 08:08:39ID:FCha78oI0 IsKoukoku の eval を外してみて計測してみるとかいかがでしょう。
472タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/07(火) 09:26:54ID:FCha78oI0 Shift JIS で起こる問題は、
バイトに変換して末尾が5Cの文字は、
エスケープする必要があるということです。
リストのメンテナンスがめんどくさくなる。
対策として、
euc-jp だったリストを unicode にして、
initFOX で変換してみる。
unicode の配列を Shift JIS に変換 # こっちのほうが変換が早いかもしれない。
euc-jp の配列を Shift JIS に変換 # 以前
Shift JIS の CSV型.txt(エスケープに問題がある) を読み込む # 現在
バイトに変換して末尾が5Cの文字は、
エスケープする必要があるということです。
リストのメンテナンスがめんどくさくなる。
対策として、
euc-jp だったリストを unicode にして、
initFOX で変換してみる。
unicode の配列を Shift JIS に変換 # こっちのほうが変換が早いかもしれない。
euc-jp の配列を Shift JIS に変換 # 以前
Shift JIS の CSV型.txt(エスケープに問題がある) を読み込む # 現在
2005/06/07(火) 12:03:34ID:AAvAUAYU0
2ch全体をeucで作り直すとかw
2005/06/07(火) 12:57:08ID:tM9aFKYiO
>>472
それはencodingプラグマで解決出来ませんでしょうか?
@IsKoukokuネタ
過去ログにあったアイデアなのですが、正規表現を一つにまとめてみるのはどうでしょう。
例:
use warnings "uninitialized"; #リストが空の時の警告回避
$Ro=qr/@{["(".join(")|(", map {$_->[0]} @FOX_Ro54).")"]}/o;
...
過去ログ内の話によると、やや効果があったようです。
よろしかったらお試ししあれ。
(チェックしてませんが。)
それはencodingプラグマで解決出来ませんでしょうか?
@IsKoukokuネタ
過去ログにあったアイデアなのですが、正規表現を一つにまとめてみるのはどうでしょう。
例:
use warnings "uninitialized"; #リストが空の時の警告回避
$Ro=qr/@{["(".join(")|(", map {$_->[0]} @FOX_Ro54).")"]}/o;
...
過去ログ内の話によると、やや効果があったようです。
よろしかったらお試ししあれ。
(チェックしてませんが。)
2005/06/07(火) 12:59:23ID:tM9aFKYiO
× use (ry
〇 no (ry
〇 no (ry
2005/06/07(火) 15:52:02ID:HQbFVFHx0
>>464
Shift_JISがどの段階でエラーを起こしているのか分からないが、
ファイルの読み込みの段階なら、Shift_JIS1文字にマッチする正規表現を
使って切り分ければ良いし、(エンコードよりはコストが安いはず)、正規表現の段階なら
Shift_JIS文字列だけquotemetaすれば良いし、Perlスクリプト内の埋め込み文字列に問題があるなら、
chop($a = <<'EOF')
aaaa
EOF
でOK。
Shift_JISがどの段階でエラーを起こしているのか分からないが、
ファイルの読み込みの段階なら、Shift_JIS1文字にマッチする正規表現を
使って切り分ければ良いし、(エンコードよりはコストが安いはず)、正規表現の段階なら
Shift_JIS文字列だけquotemetaすれば良いし、Perlスクリプト内の埋め込み文字列に問題があるなら、
chop($a = <<'EOF')
aaaa
EOF
でOK。
2005/06/07(火) 17:39:29ID:LLOWUNeo0
2005/06/07(火) 22:47:25ID:fi6yLSjv0
> 正規表現の段階なら
> Shift_JIS文字列だけquotemetaすれば良いし、
> Shift_JIS文字列だけquotemetaすれば良いし、
479476
2005/06/08(水) 12:25:18ID:DTGWGuO70 >>477
NGワード内って正規表現交じりですか?そうでないならばっさりquotemetaすれば良いし、
Shift_JIS部分だけquotemetaするコードくらいなら書きますよ。
あと、済んだことだけど、
# 読み込む。。。
# my @Rock_word = @FOX_Ro54; # メモリの無駄なので省略してみました。
こういう場合は参照使えばメモリ食わないんではないかと。
性能には一切貢献しないと思うけど、
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # 長いので代入
こういうのも
my $In_Strings = \$GB->{FORM}->{'MESSAGE'}; # 長いので代入
こうして$$In_Stringsで使った方が若干メモリ(と文字列コピーにかかるコスト)はお徳。
もう一点。eval使ってるのは正規表現エラー回避のトラップでしょうか?
コケるような正規表現が混じってる可能性があるなら、
>>474
の策は、@FOX_Ro54に1つでも不備があると全部のチェックがコケますね。
NGワードに正規表現が一切ないという仮定なら、事前に@FOX_Ro54の中身を
丸ごとquotemetaすれば、正規表現でコケないはずなのでevalは外せるのでは。
NGワード内って正規表現交じりですか?そうでないならばっさりquotemetaすれば良いし、
Shift_JIS部分だけquotemetaするコードくらいなら書きますよ。
あと、済んだことだけど、
# 読み込む。。。
# my @Rock_word = @FOX_Ro54; # メモリの無駄なので省略してみました。
こういう場合は参照使えばメモリ食わないんではないかと。
性能には一切貢献しないと思うけど、
my $In_Strings = $GB->{FORM}->{'MESSAGE'}; # 長いので代入
こういうのも
my $In_Strings = \$GB->{FORM}->{'MESSAGE'}; # 長いので代入
こうして$$In_Stringsで使った方が若干メモリ(と文字列コピーにかかるコスト)はお徳。
もう一点。eval使ってるのは正規表現エラー回避のトラップでしょうか?
コケるような正規表現が混じってる可能性があるなら、
>>474
の策は、@FOX_Ro54に1つでも不備があると全部のチェックがコケますね。
NGワードに正規表現が一切ないという仮定なら、事前に@FOX_Ro54の中身を
丸ごとquotemetaすれば、正規表現でコケないはずなのでevalは外せるのでは。
480476
2005/06/08(水) 15:50:17ID:DTGWGuO70 > Shift_JIS部分だけquotemetaするコードくらいなら書きますよ。
とか言うほどの事じゃなかった。むしろテストの方が大変だった。
必要な作業だったのかどうか謎だけど一応上げておきます。
perl5.00503でテスト。
(票表十){2}
とか問題ありそうなShift_JIS + 正規表現交じりでやってみたけどOKでした。
foreach my $NG_word_ref (@FOX_Ro54){
my $NG_word = $NG_word_ref->[0]; # エスケープしたままじゃ他で使えないのでコピー
next unless $NG_word; # 空文字列ならスキップ
$NG_word =~ s/((?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+)/quotemeta($1)/geo;
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
○チェック文字列1 - (票表十){2}
○チェック文字列2 - 十予約表
○In_Strings - ああ票表十票表十予約表いい
■裸の場合。
> /([\){2}/: unmatched [] in regexp at ./check.pl line 22.
> /\驅/: trailing \ in regexp at ./check.pl line 22.
■正規表現を噛ませた場合
> found.
> found.
とか言うほどの事じゃなかった。むしろテストの方が大変だった。
必要な作業だったのかどうか謎だけど一応上げておきます。
perl5.00503でテスト。
(票表十){2}
とか問題ありそうなShift_JIS + 正規表現交じりでやってみたけどOKでした。
foreach my $NG_word_ref (@FOX_Ro54){
my $NG_word = $NG_word_ref->[0]; # エスケープしたままじゃ他で使えないのでコピー
next unless $NG_word; # 空文字列ならスキップ
$NG_word =~ s/((?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+)/quotemeta($1)/geo;
if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
○チェック文字列1 - (票表十){2}
○チェック文字列2 - 十予約表
○In_Strings - ああ票表十票表十予約表いい
■裸の場合。
> /([\){2}/: unmatched [] in regexp at ./check.pl line 22.
> /\驅/: trailing \ in regexp at ./check.pl line 22.
■正規表現を噛ませた場合
> found.
> found.
リストは、正規表現文字列が連なっております。
例えば。
(\.|.|/|/)(3|3|4|4|6|6|8|8|9|9 ...長いので省略。
↓Shift_JISですと、こうなります。
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE .|.|/|/)(3|3|4|4|6|6|8|8|9|9 ...長いので省略。
/が、バけていますよね♪([/] = 0x815E)
→こういう場合は参照使えばメモリ食わないんではないかと。
それ以前に、IsKoukokuでしか利用されていませんので、そのまま利用しました。
リファレンスにしろグローバルを触っちゃいますし。
→こうして$$In_Stringsで使った方が若干メモリ(と文字列コピーにかかるコスト)はお徳。
でもって、こう書いちゃうと中の人が呑み屋さんに繰り出しちゃう恐れがあるので避けていたりもしますです(w
→もう一点。eval使ってるのは正規表現エラー回避のトラップでしょうか?
ですです。
発行元でもチェックを行っていますが、以前と同じ失敗(すべてRockされる)を繰り返さないようにと、あえてそのようにしてあります。
例えば。
(\.|.|/|/)(3|3|4|4|6|6|8|8|9|9 ...長いので省略。
↓Shift_JISですと、こうなります。
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE .|.|/|/)(3|3|4|4|6|6|8|8|9|9 ...長いので省略。
/が、バけていますよね♪([/] = 0x815E)
→こういう場合は参照使えばメモリ食わないんではないかと。
それ以前に、IsKoukokuでしか利用されていませんので、そのまま利用しました。
リファレンスにしろグローバルを触っちゃいますし。
→こうして$$In_Stringsで使った方が若干メモリ(と文字列コピーにかかるコスト)はお徳。
でもって、こう書いちゃうと中の人が呑み屋さんに繰り出しちゃう恐れがあるので避けていたりもしますです(w
→もう一点。eval使ってるのは正規表現エラー回避のトラップでしょうか?
ですです。
発行元でもチェックを行っていますが、以前と同じ失敗(すべてRockされる)を繰り返さないようにと、あえてそのようにしてあります。
2005/06/08(水) 19:06:25ID:DTGWGuO70
>>481
その文字列でチェックしてみたんですが、
5.00503ではエラー起きませんね。省略部分に何かあるんではないでしょうか?
> (\.|.|/|/)(3|3|4|4|6|6|8|8|9|9
これの8ビット目が立ってるバイトを「#」に置き換えると↓こんな感じです。
(.|#D|/|#^)(3|#R|4|#S|6|#U|8|#W|9|#X
「^」は一応メタキャラですが文頭にないので素通りのようです。最後、括弧が閉じてないので
勝手に閉じ括弧付けて実験しました。
もし全文か、他のお題があればこっちでチェックしますよ。
でもこの手のエラーはおそらく>>480のコードで全部解決するんじゃないかと思います。
参照とevalに関しては了解です。
その文字列でチェックしてみたんですが、
5.00503ではエラー起きませんね。省略部分に何かあるんではないでしょうか?
> (\.|.|/|/)(3|3|4|4|6|6|8|8|9|9
これの8ビット目が立ってるバイトを「#」に置き換えると↓こんな感じです。
(.|#D|/|#^)(3|#R|4|#S|6|#U|8|#W|9|#X
「^」は一応メタキャラですが文頭にないので素通りのようです。最後、括弧が閉じてないので
勝手に閉じ括弧付けて実験しました。
もし全文か、他のお題があればこっちでチェックしますよ。
でもこの手のエラーはおそらく>>480のコードで全部解決するんじゃないかと思います。
参照とevalに関しては了解です。
483476
2005/06/09(木) 12:03:19ID:NnR04xax0 evalってコスト高いんじゃ……?と思ったのでベンチ取ってみた。
@FOX_Ro54が2048個のチェックを1000回。
Benchmark: timing 1000 iterations of with_eval, with_noeval...
with_eval: 159 wallclock secs (158.80 usr + 0.02 sys = 158.82 CPU) @ 6.30/s (n=1000)
with_noeval: 155 wallclock secs (154.28 usr + 0.05 sys = 154.33 CPU) @ 6.48/s (n=1000)
誤差の範囲内なので、運用上の安全を考えると現状維持で良いと思った。>>480のコードのベンチも取ってみた。
ついでにJcode.pmで双方ともEUCに変換した時の結果も。
Benchmark: timing 1000 iterations of with_jcode, with_noreg, with_reg...
with_jcode: 493 wallclock secs (490.95 usr + 0.07 sys = 491.02 CPU) @ 2.04/s (n=1000)
with_noreg: 124 wallclock secs (123.99 usr + 0.04 sys = 124.03 CPU) @ 8.06/s (n=1000)
with_reg: 159 wallclock secs (158.80 usr + 0.02 sys = 158.82 CPU) @ 6.30/s (n=1000)
割と予想通りの結果。落としどころとしては悪くないんでは。>Shift_JISのquotemeta
"Rock54_List"ファイルにquotemetaしたものを突っ込んでおくというのもアリだけど、目視やエディタでの編集ができなくなります。
IsKoukokuでしか使わないのなら、Rock54読み込み時に先にquotemetaしとくってのはアリかも知れません。
@FOX_Ro54が2048個のチェックを1000回。
Benchmark: timing 1000 iterations of with_eval, with_noeval...
with_eval: 159 wallclock secs (158.80 usr + 0.02 sys = 158.82 CPU) @ 6.30/s (n=1000)
with_noeval: 155 wallclock secs (154.28 usr + 0.05 sys = 154.33 CPU) @ 6.48/s (n=1000)
誤差の範囲内なので、運用上の安全を考えると現状維持で良いと思った。>>480のコードのベンチも取ってみた。
ついでにJcode.pmで双方ともEUCに変換した時の結果も。
Benchmark: timing 1000 iterations of with_jcode, with_noreg, with_reg...
with_jcode: 493 wallclock secs (490.95 usr + 0.07 sys = 491.02 CPU) @ 2.04/s (n=1000)
with_noreg: 124 wallclock secs (123.99 usr + 0.04 sys = 124.03 CPU) @ 8.06/s (n=1000)
with_reg: 159 wallclock secs (158.80 usr + 0.02 sys = 158.82 CPU) @ 6.30/s (n=1000)
割と予想通りの結果。落としどころとしては悪くないんでは。>Shift_JISのquotemeta
"Rock54_List"ファイルにquotemetaしたものを突っ込んでおくというのもアリだけど、目視やエディタでの編集ができなくなります。
IsKoukokuでしか使わないのなら、Rock54読み込み時に先にquotemetaしとくってのはアリかも知れません。
>>483
エロエロとありがとうですm(_ _)m深謝
ただ、、、今、家にあるメインの林檎機が昇天されましたので、対応が出来ないで居ますですぅぅぅ(滂沱)
♪実はすべての作業を林檎機でやっているものでして・・・
エロエロとありがとうですm(_ _)m深謝
ただ、、、今、家にあるメインの林檎機が昇天されましたので、対応が出来ないで居ますですぅぅぅ(滂沱)
♪実はすべての作業を林檎機でやっているものでして・・・
2005/06/09(木) 18:20:52ID:b8qRY6Z90
quotemetaを使わずに
s/(?<=[\x81-\x9F\xE0-\xFC])[\[\\\]\^\{\|\}]/\\$&/g
とかでも(やってることはあんまり違わないか)
s/(?<=[\x81-\x9F\xE0-\xFC])[\[\\\]\^\{\|\}]/\\$&/g
とかでも(やってることはあんまり違わないか)
486476
2005/06/09(木) 20:08:30ID:NnR04xax0 >>485
それだとエラーが出ますね。例えば、
"ワ[a]"
だと「ワ」は2バイト目も8bitが立っているので検索がスキップされますよね。
で、2バイト目と3バイト目の組み合わせをShift_JISの「充」と間違えて開き角括弧
「 [ 」をエスケープしてしまいます。
それだとエラーが出ますね。例えば、
"ワ[a]"
だと「ワ」は2バイト目も8bitが立っているので検索がスキップされますよね。
で、2バイト目と3バイト目の組み合わせをShift_JISの「充」と間違えて開き角括弧
「 [ 」をエスケープしてしまいます。
2005/06/09(木) 20:50:47ID:b8qRY6Z90
>>486
おお、そうだ。
おお、そうだ。
2005/06/09(木) 23:45:12ID:b8qRY6Z90
もしかしてこうすればいいのか?(未テスト)
s/([\x81-\x9F\xE0-\xFC])([\[\\\]\^\{\|\}\x81-\x9F\xE0-\xFC])/$1\\$2/g
s/([\x81-\x9F\xE0-\xFC])([\[\\\]\^\{\|\}\x81-\x9F\xE0-\xFC])/$1\\$2/g
489476
2005/06/10(金) 00:51:10ID:C8+6ZCy40 >>488
30秒考えた限りでは問題なさそう。ただ、ベンチ取った結果、quotemetaとほとんど
コスト同じなんだよね。2、3回やってみたけど誤差前後1秒以内。
with_reg1: 146 wallclock secs (144.33 usr + 0.05 sys = 144.38 CPU) @ 6.93/s (n=1000)
with_reg2: 145 wallclock secs (144.18 usr + 0.05 sys = 144.23 CPU) @ 6.93/s (n=1000)
となるとquotemetaの方が安全かなとは思う(自分贔屓ですんません)。
30秒考えた限りでは問題なさそう。ただ、ベンチ取った結果、quotemetaとほとんど
コスト同じなんだよね。2、3回やってみたけど誤差前後1秒以内。
with_reg1: 146 wallclock secs (144.33 usr + 0.05 sys = 144.38 CPU) @ 6.93/s (n=1000)
with_reg2: 145 wallclock secs (144.18 usr + 0.05 sys = 144.23 CPU) @ 6.93/s (n=1000)
となるとquotemetaの方が安全かなとは思う(自分贔屓ですんません)。
2005/06/10(金) 01:11:38ID:Mm/OM+6u0
491タソキ@妄想系統 1/10 ☆ ◆Ver7J.....
2005/06/10(金) 08:39:08ID:klkomdbB0 >>483ナイスゥ
中の人が呑み屋さんに繰り出しちゃわないようにまとめてみます。
Shift_JIS の場合、エスケープする必要あり。
エスケープしておくと、リストの編集がはげしくめんどい。
解決方法
1、encodingプラグマでエンコードする
2、Shift_JIS文字列だけquotemetaする (エンコードよりはコストが安いはず)
後者のほうが処理コストが安い。
中の人が呑み屋さんに繰り出しちゃわないようにまとめてみます。
Shift_JIS の場合、エスケープする必要あり。
エスケープしておくと、リストの編集がはげしくめんどい。
解決方法
1、encodingプラグマでエンコードする
2、Shift_JIS文字列だけquotemetaする (エンコードよりはコストが安いはず)
後者のほうが処理コストが安い。
492476
2005/06/10(金) 11:20:46ID:C8+6ZCy40 >>484
ご愁傷さまです。早い復活を祈ってます。
>>480
あと若干ソースを変更。空文字チェックは直前の方がより安全ってのと、evalの結果の代入は
必要ないかと。
foreach my $NG_word_ref (@FOX_Ro54){
my $NG_word = $NG_word_ref->[0]; # エスケープしたままじゃ他で使えないのでコピー
$NG_word =~ s/((?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+)/quotemeta($1)/geo;
next unless $NG_word; # 空文字列ならスキップ
eval{$main::In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
ご愁傷さまです。早い復活を祈ってます。
>>480
あと若干ソースを変更。空文字チェックは直前の方がより安全ってのと、evalの結果の代入は
必要ないかと。
foreach my $NG_word_ref (@FOX_Ro54){
my $NG_word = $NG_word_ref->[0]; # エスケープしたままじゃ他で使えないのでコピー
$NG_word =~ s/((?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+)/quotemeta($1)/geo;
next unless $NG_word; # 空文字列ならスキップ
eval{$main::In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
# 不正 NG ワードがあったり引っかからなければスキップ
}
493476
2005/06/10(金) 11:23:23ID:C8+6ZCy40 × eval{$main::In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
○ eval{$In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
失礼。
○ eval{$In_Strings =~ /$NG_word/} and return $NG_word_ref; # 合致したらリファレンスを返す。
失礼。
496476
2005/06/11(土) 01:23:50ID:VA/kMcZN0 >>494
お疲れ様です。とりあえず、
next unless $NG_word; # 空文字列ならスキップ
これはevalの直前に入れた方がいいと思うです。evalと同じくfail safeってことで。
極端な話、use strictしてないんだったら、quotemetaをtypoしただけで
NG_wordが全部空文字列(投稿が全部エラー)になるわけで。
お疲れ様です。とりあえず、
next unless $NG_word; # 空文字列ならスキップ
これはevalの直前に入れた方がいいと思うです。evalと同じくfail safeってことで。
極端な話、use strictしてないんだったら、quotemetaをtypoしただけで
NG_wordが全部空文字列(投稿が全部エラー)になるわけで。
s/([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])(?<!\\[^$\$\(\)\*\+\-\.\?\[\|\]\^\{\|\}])/quotemeta $1/ego;
が、今のところいー感じです♪
が、今のところいー感じです♪
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- コメ農家「中国系の人が買いに来た『あるだけ欲しい』と」 コメ“投機対象”転売目的の異業種・外国人参入で高騰か 動画あり [お断り★]
- 【野球】「また大谷ハラスメントが始まるのか」 テレビ局が再開した“偏向”報道に視聴者、チームメイトもうんざり★2 [冬月記者★]
- 【サッカー】J1第1節日曜 東京V×清水、町田×広島 [久太郎★]
- 月亭八光、吉本芸人のオンラインカジノ違法性の認識に「分かってないことはない」 小籔は反論 今田耕司は「吉本だけじゃなくて…」 [冬月記者★]
- 【日米】トランプ氏「消費税も関税とみなす」 米国、日本の「非関税障壁」を問題視★3 [シャチ★]
- 米政府職員の大量解雇開始 最大20万人、政府縮小へ…突然の通知で30分以内に退去命令 [おっさん友の会★]
- 【実況】博衣こよりのえちえちマイクラ🧪★6
- 【悲報】赤いきつねのアニメCM、「ポルノみたい」「セクハラCM」とフェミさんブチギレ炎上wwwwwwwwwwwwwwwwwwwww★3 [839150984]
- とうすこ【最終回】🏡
- ホリ工モンがブチギレ「ホラン千秋はラーメン屋に失礼すぎる、なんだこの礼儀のなさは」 [449534113]
- 安倍晋三「厳しいって」👈厳しそうなこと [844928773]
- ジャップ、もうパスタしか食えない… [667744927]