1 :
root▲ ★ :
2005/11/02(水) 17:00:07 ID:???0 BE:2189164-###
2 :
root▲ ★ :2005/11/02(水) 17:02:40 ID:???0 BE:912825-###
/i っていまだに生きてるんでしょうかね? もしそうでなければ「Apacheレベルでcへリダイレクトに変更」でもかまわないとおもうのですが・・・ # たしかiってcの前身でいいんですよね?
4 :
root▲ ★ :2005/11/02(水) 17:07:02 ID:???0 BE:1916137-###
前スレの終盤で出た事項:
・/i はのろいらしい
・で、ほとんど取ったつもりだが、まだちょっとだけ残っているらしい
988 名前:root▲ ★[sage] 投稿日:2005/11/02(水) 16:46:50 ID:???0 ?###
友人の話では、Perl では /i の処理がめちゃんこ遅いという話があるらしい。
つまり、
if($ENV{'SERVER_NAME'} =~ /2ch\.net/i)
みたいなのも、ちりも積もれば山となる可能性ありと。
989 名前: ◆SSu.zv/rvs [sage] 投稿日:2005/11/02(水) 16:48:01 ID:4sehsTr40
ほとんど /i は取ったつもりだけど・・・
990 名前:▲ ◆SANUKI/VII [sage] 投稿日:2005/11/02(水) 16:48:34 ID:j49UPKofP
iってまだあったっけ?
991 名前:root▲ ★[sage] 投稿日:2005/11/02(水) 16:50:00 ID:???0 ?###
>>989 多くはないみたいですが、いくつか散見されるようです。
(
>>988 は実際のソースからのコピペ)
992 名前:root▲ ★[sage] 投稿日:2005/11/02(水) 16:54:08 ID:???0 ?###
気づいたところは、私のほうでも取っておくです。
今ざっと見直してみましたが、たぶん、もうそんなにないと思いますです。
5 :
root▲ ★ :2005/11/02(水) 17:09:05 ID:???0 BE:4925669-###
>>3 えっと、そうじゃなくて、文字列比較の時の /i です。
つまり、大文字小文字を区別しない場合の話。
どうも、Perlってこんなかんじのことをしているらしいのです(裏とっていないのでうそかもです)。
/ABC/i の処理
↓
abc
abC
aBc
Abc
AbC
ABc
AbC
aBC
ABC
と、それぞれ比較
6 :
root▲ ★ :2005/11/02(水) 17:10:22 ID:???0 BE:5837388-###
あ、AbCがひとつ多いね。
おじさんが急いで1000取りしてるように見えた
正規表現をインタプリタで動かしたら 1,000万はあながち嘘じゃないっすよ
Perlをインタプリタと言い切るのは誤解の元
10 :
root▲ ★ :2005/11/02(水) 17:45:13 ID:???0 BE:2462393-###
>>8 複雑なのをくべると、まじめにありそうですね。< 1000万
/i の件については、知り合いのPerlプログラマの話だと、
/ABC/i
/[Aa][Bb][Cc]/
で、下のほうが明らかにパフォーマンスがいい(というか、上が悪杉らしい)そうなので、
Perlの /i の実装がへぼいということの模様です。
>>10 あーその話ですか、スマソ。では本件の場合は2ch.netの大文字小文字区別なわけなので
if($ENV{'SERVER_NAME'} =~ /2ch\.net/i)
を
if($ENV{'SERVER_NAME'} =~ /2[Cc][Hh]\.[Nn][Ee][Tt]/)
とすればいいんでしょかね。
12 :
root▲ ★ :2005/11/02(水) 18:04:52 ID:???0 BE:2736465-###
>>11 そういうことなわけですが、
現状、単純に /i を取ってしまってもいいような気がします。
わたしは
iをとってコーディングしています
16 :
root▲ ★ :2005/11/02(水) 18:11:33 ID:???0 BE:1459744-###
>>14-15 …ですね。ほとんどの部分はそうなっているです。
>>13 規格上はそうですが、そのへんはいろいろ微妙なようですね。
小文字に直してから送出してくるブラウザやシステムも、少なからずある模様。
実際にはそれで(iなし) 何の問題も起こっていません
ちなみに 2CH.net 等でアクセスしたら(bbs.cgiにそう入ってきたら) Samba24=600 にしてます
iがどのくらい遅いかは、考えるより測ったほうがいいんじゃない? use Benchmark;で。
20 :
root▲ ★ :2005/11/02(水) 18:44:48 ID:???0 BE:1641492-###
>>19 そんなのあるですか。
とりあえずできるだけ(数箇所ですが)、追放してみた。 @ qb6
様子を見て配布予定。
>>18 $ENV{SERVER_NAME}はブラウザから渡される値を直ではなくapacheが生成するのでは?
まあ/iが高価なこととは関係ないんだけど
いやー 言いたいことは 「iは使わない」という方針でやっているから 議論の意味がないということだったり
23 :
root▲ ★ :2005/11/02(水) 18:54:04 ID:???0 BE:4925096-###
>>22 999(仮名)をみるところも、/i 追放してよかですか?
できるならってことかと、
25 :
root▲ ★ :2005/11/02(水) 18:56:18 ID:???0 BE:4378368-###
>>24 なるほど。
じゃ、追放したいですね。1レスごとに絶対になめるところだから。
追放しますので、規制リストを書く時には気をつけてくださいーって、
ちょろさんに伝えておいてくださいです。
ちょろさんがやっているのは一面かと、 多面はアクセスする側だったり、、、
他面だった
28 :
root▲ ★ :2005/11/02(水) 19:02:41 ID:???0 BE:5746379-###
sec2chdを見ている限り、大文字小文字がきちんと入るなら、 現状ならアクセスする側も実害はないかなと、思っていたり。
use Benchmarkも良いけど、プロファイルもね。
30 :
root▲ ★ :2005/11/02(水) 19:10:19 ID:???0 BE:1641863-###
>>29 ですね。
プロファイリングのおかげで、
改良前のIsKoukokuがめちゃくちゃ高コストだったことがわかったです。
今は※の人の改良のおかげで、live系以外は有効にできました。
31 :
root▲ ★ :2005/11/03(木) 04:09:04 ID:???0 BE:1094843-###
BBS.CGI - 2005/11/03
index.html にできるリンク関連を修正。
・www2.ime.st => www.ime.st
・
https:// でも
ftp:// でも
http:// になってしまっていたのを修正(虫取り)
・同時に /ig も追放。
root氏めちゃくちゃおっつぃんぐ
33 :
root▲ ★ :2005/11/03(木) 05:31:33 ID:???0 BE:2189838-###
さらに調整。
・
https:// と
ftp:// は ime.st / pinktower.com を経由しない
(bbs.cgiが当初の思想として予期した動作)
・
http:// の外部リンクは ime.st / pinktower.com 経由(従来通り)
・gopher: whois: news: telnet: の特殊処理を廃止
・
https:// と
ftp:// の処理は、一部サーバ(live系など)ではリンクにしない
・
http:// は従来通りどのサーバでもリンクにする
34 :
root▲ ★ :2005/11/03(木) 05:32:59 ID:???0 BE:365322-###
重そうな正規表現パターンマッチングを少しは整理できたと思うです。 html/ の下のやつ全部、この処理通っているので、 意外とばかにならないんじゃないかなと。
35 :
root▲ ★ :2005/11/03(木) 05:33:36 ID:???0 BE:4377986-###
>>33 は、板トップ(index.html)生成部分の処理です。
(read.cgi ではないので要注意)
>>33 > ・gopher: whois: news: telnet: の特殊処理を廃止
そんなごにょごにょしてたんですか・・・
37 :
root▲ ★ :2005/11/03(木) 11:38:49 ID:???0 BE:821333-###
>>36 大昔から、変わってなかったんでしょうね。
この4つは「私が2ちゃんねるに来た2001年〜現在まで、
一度もリンクとして使われているのを見たことがなかった」ので、
もはや不要であろうと判断したです。
38 :
root▲ ★ :2005/11/04(金) 18:35:27 ID:???0 BE:4469377-###
&jcode::tr(\$GB->{FORM}->{'FROM'}, '#', '#'); とか、 &jcode::tr(\$GB->{FORM}->{'mail'}, '#', '#'); とかって、もうちょっと効率よくできないのかしら。
39 :
◆TWARamEjuA :2005/11/04(金) 20:24:18 ID:+3bNWEFF0 BE:3920966-###
40 :
root▲ ★ :2005/11/04(金) 21:35:23 ID:???0 BE:1641863-###
41 :
root▲ ★ :2005/11/04(金) 22:01:39 ID:???0 BE:3648285-###
BBS.CGI - 2005/11/04 動きそのものは変わりませんが、雪だるまをめざして bbs_main のかなりの部分をサブルーチン化しました。 $GB 操作しているのでカプセル化はぜんぜんですが、 自分で読んでいて、bbs_main が長すぎて頭がうにーになってきたので、 整理の意味を込めて、いじっています。 ひととおりのテストはしてありますので、大丈夫だとは思いますが、 もし何かへんなことがあったら、知らせてくださいです。
|∀・)<いくらー
43 :
◆TWARamEjuA :2005/11/04(金) 22:23:56 ID:+3bNWEFF0 BE:2178645-###
>>40 http://search.cpan.org/src/DANKOGAI/Encode-2.00/encoding.pm うー(苦笑)
=head1 ABSTRACT
Let's start with a bit of history: Perl 5.6.0 introduced Unicode
support. You could apply C<substr()> and regexes even to complex CJK
characters -- so long as the script was written in UTF-8. But back
then, text editors that supported UTF-8 were still rare and many users
instead chose to write scripts in legacy encodings, giving up a whole
new feature of Perl 5.6.
Rewind to the future: starting from perl 5.8.0 with the B<encoding>
pragma, you can write your script in any encoding you like (so long
as the C<Encode> module supports it) and still enjoy Unicode support.
This pragma achieves that by doing the following:
もしかしてjcode.pl使ってるの? だとしたら、MakefileしたJcode.pmの方が速いんじゃ?
45 :
root▲ ★ :2005/11/04(金) 22:53:57 ID:???0 BE:1095326-###
>>44 Jcodeは他のところで使っているはずなので、全サーバに入っているはずですね。
どうすればいいのかしら。
46 :
◆TWARamEjuA :2005/11/04(金) 23:07:20 ID:+3bNWEFF0 BE:1524672-###
>>44 おそらくほとんどのbanana鯖には入っていないと思うので、
かなりむりぽかと(哀)@なのでPerl5.6.*のまま
>>45 なので、banana鯖に入ってJcode.pm 0.88あたりをゲトして組み込まなきゃだと思うのですです(泪)
最新のJcode.pm は2.1*でしてEncode.pmのラッパになっていたりします。@5.8.*
なので、PIEの中の人にbananaにperlを5.8.*(最新は5.8.7)におながいしないと。。。
47 :
root▲ ★ :2005/11/05(土) 02:00:28 ID:???0 BE:1368735-###
>>41 ですが、まだまだ作業進行中です。
今は 40% ぐらいの進捗か。
先は長いとゆうことで。
48 :
root▲ ★ :2005/11/05(土) 04:10:16 ID:???0 BE:1824645-###
BBS.CGI - 2005/11/05
>>41 の続き。
49 :
動け動けウゴウゴ2ちゃんねる :2005/11/05(土) 08:17:34 ID:oU3fQSIn0
再開発に協力したいのですが、 一般人はソースとか見ること出来ないですか?
50 :
動け動けウゴウゴ2ちゃんねる :2005/11/05(土) 09:19:57 ID:cU0kVqJKP
>>49 そう言うことがわからない人は再開発しなくていいで(^_^;)
なぜ?
そういうことが判らない人は(ry
53 :
動け動けウゴウゴ2ちゃんねる :2005/11/07(月) 22:09:18 ID:I44rESOi0
再開発に協力したいのですが、 一般人はソースとか見ること出来ないですか?
54 :
◆TWARamEjuA :2005/11/07(月) 23:02:04 ID:hFzocN4J0 BE:1525627-###
協力するにも色々な方法があるわけでして♪ root★さんが悩んで居られるようでしたら助言をしてあげたり最適化したルーチンを提示したりとかとか♪ なんでもかでも「対等でなければならない」なんて孟宗竹なんてのは根っこから切り取らないと♪
1000超えの判定って、html/ の下を作るところの最初の部分でやっているのね。 ちょっと、驚いた。
挑戦してみる? よたしは毎年挑戦しようと思ったけど 負け続け、、、
>>56 その様子は、何度かaccuse/operateを通じて見ているです。
なんか、いかにも効率悪そうで、気持ち悪くて、重そうなことをしてるんだなぁと
はじめて実際に、少しだけ気持ちがわかったわけです。
(これまでは、そこにたどり着く前に既に負けていた)
&MakeWorkFile を初めて呼ぶところの前までの整理整頓と、
できる範囲でのサブルーチン化は、それなりにやったです。
でも、そこから先が、、、。
たぶん、アイガー北壁なんだろうなと。
#==================================================
# ファイル操作(subject.txt & subback.html)
#==================================================
# 雪だるまサーバでは、以降のファイル処理はしない(bbsdが実行)
if(&IsSnowManServer($ENV{'SERVER_NAME'}))
{
&endhtml($GB);
}
####################################
# ここから先はまだカオス状態 by む #
####################################
まずは読んでいたりします。 ここからは思いつきで手直しすると遭難しそうなので(何せアイガー北壁)、 じっくり、やってみようかなと。 とりあえず、 $GBX->{OVER1000} = 0 ;# 1000超えフラグ(現在は未使用) を追加してみた。
BBS_CONTENTS_NUMBER の意味を初めて知った私ガイル。
BBS_LINE_NUMBER は、「省略されました」か。
MakeWorkFile とりあえず読み終わり。
今日はもう遅いから、どうするかはいったん寝て考えるか。
とりあえず
>>1 の処理と BBS_LINE_NUMBER 分のレスについての
おんなじような処理について、
べたにおんなじルーチンが2回書かれていたということはわかたです。
BBS_CONTENTS_NUMBER分のレスかな。 1とそれ以外、同じようで違う。 まとめるのが面倒で放置って感じっすか。
>>63 そのページは当然見てますけど、
これまでbbs.cgiについては私の知識がその程度だったってことです。
こんなかんじかな。 ############################################################################# # 処理中のdatの現在のレス数を調べる # 新スレの場合0、異常発生時は-1 ############################################################################# sub GetResNum { my ($GB) = @_; my $resnum = 0; # 1) 新スレなら0を返す if($GB->{NEWTHREAD}) { return 0; } # 2) subject.txtを調べてみる # subject.txtはSaborin系サーバでも逐次更新されているはず $resnum = &GetResNumFromSubject($GB); # 3) とれなかったら仕方ないので、datの行数を読む # 990超えている時も、安全のためdatを読む if ($resnum <= 0 || $resnum > 990) { $resnum = &GetResNumFromDat($GB); } # 4) それも失敗したら、-1を返す if ($resnum <= 0) { return -1; } # 得られた結果を返す else { return $resnum; } }
今は、毎回こういうことをやっているです。 open(RDAT,"<$dattemp"); @logdat=<RDAT>; #ログを配列に読み込む close(RDAT); #ログのカキコ数を取得 $lognum = @logdat; if($lognum > 999) { if(open(OUT,">>$dattemp")) { my $b1000 = "このスレッドは1000を超えました。 <br> \ もう書けないので、新しいスレッドを立ててくださいです。。。 "; my $p1000 = $GBA->{PATH} . "1000.txt"; (以下略)
1000超えのdat追記部分は、Process1000ってのを書こう。
>>65 通常の板だと、これだとコストが低くないかもなぁ。
subject.txt って、何百行とか千何百行とかあるわけで。
bbsdのように、mmap() するのもちょっとあれだし。
スレ数が少ない板は、subject.txt優先で、
スレ数が多い板は、dat優先がよさげ?
どのくらいが変更点なのかな。
変更点じゃなくて、分岐点か。
&GetHojisuu 書く必要がありそうですね。 こいつは出航時に1回だけ読めばいいだろうから、initFOXでやろう。
>>70 mumumuGetHojisuu 実装済み。
出航時に、$FOX->{HOJISUU} にサーバの保持数が入っている。
で、
>>65 はこうか。
#############################################################################
# 処理中のdatの現在のレス数を調べる
# 新スレの場合0、異常発生時は-1
#############################################################################
sub GetResNum
{
my ($GB) = @_;
my $resnum = 0;
# 1) 新スレなら0を返す
if($GB->{NEWTHREAD}) { return 0; }
# 2) 保持数が少ない板では、subject.txt を調べる
if ($FOX->{HOJISUU} < 200)
{
# 2) subject.txtを調べてみる
# subject.txtはSaborin系サーバでも逐次更新されている
$resnum = &GetResNumFromSubject($GB);
}
# 3) 次に、datの行数を読む (2)がしくった場合も同様)
# 990超えている時も、安全のためdatを読むことにしよう
if ($resnum <= 0 || $resnum > 990)
{
$resnum = &GetResNumFromDat($GB);
}
# 4) それも失敗したら、-1を返す
if ($resnum <= 0) { return -1; }
# 得られた結果を返す
else { return $resnum; }
}
このほうがいいか。 ############################################################################# # 処理中のdatの現在のレス数を調べる # 新スレの場合0、異常発生時は-1 ############################################################################# sub GetResNum { my ($GB) = @_; my $resnum = 0; # 1) 新スレなら0を返す if($GB->{NEWTHREAD}) { return 0; } # 2) 保持数が少ない板では、subject.txt を調べる if ($FOX->{HOJISUU} < 200) { # subject.txtを調べてみる # subject.txtはSaborin系サーバでも逐次更新されている $resnum = &GetResNumFromSubject($GB); } # 3) 次に、datの行数を読む (2)がしくった場合も同様) # 990超えている時も、安全のためdatを読むことにしよう if ($resnum <= 0 || $resnum > 990) { $resnum = &GetResNumFromDat($GB); if ($resnum <= 0) { return -1; } } # 上記により得られた結果を返す return $resnum; }
外枠を作った。 Perlがだめだめな私に、愛の手を。 ############################################################################# # subject.txtに書いてあるレス数を調べる # 異常時は-1 ############################################################################# sub GetResNumFromSubject { my ($GB) = @_; my $subject = $GB->{PATH} . "subject.txt"; my $resnum = 0; # subject.txtを開き、中身を調べる open(SUBJ,"<$subject"); # ここに実際の処理を入れる # 探すためのキーは$GB->{FORM}->{'key'}に入っている # Perlではどうやるのが高速なんだろう close(SUBJ); return $resnum; } ############################################################################# # datのレス数を調べる(行数を調べる) # 異常時は-1 ############################################################################# sub GetResNumFromDat { my ($GB) = @_; my $datfile = $GB->{DATPATH} . $GB->{FORM}->{'key'} . ".dat"; my $resnum = 0; # datを開き、行数を調べる open(DAT,"<$datfile"); # ここに実際の処理を入れる # Perlではどうやるのが高速なんだろう close(DAT); return $resnum; }
while (<DAT>) {}; $resnum = $.; とか
subject.txtから読む場合は、スレのタイトルに「<>」「(」「)」とか半角スペースが 入ってるとsplitで面倒になるかもね。出来るだけsubstr使うべきなんだろうな。 datファイルの行数調べるには・・・unixのwcコマンド使うとかw
出先に移動。10分ぐらい時間が。
>>75 ひとつ、書き忘れていたです。
どうせ必要になるので、
datを読んだ時には、つまりGetResNumFromDatが呼ばれた時には、
そのdat内の
>>1 と、以下の条件(*1)で抽出した行のdatは、
内容を保存しておきたいですね。
つまり、datを複数回読み込みモードでopenしたくないわけです。
(*1)if BBS_CONTENTS_NUMBERよりもレス数が多い
お尻のBBS_CONTENTS_NUMBER行ぶんのdatの内容を保存
else
頭の
>>2 〜 最後の行までのdatの内容を保存
これは、html/ の下のファイルを作るのに使っているですよ。
保存は、、、そうすね、
$GB->{DAT1} 文字列変数
$GB->{DATLAST} 文字列配列変数
っていうことにするか。
で、たぶんほんとは、subject.txt 的に上位のやつだけ作れるともっといいわけですが、
(つまり実際に index.html を合成する時に使うものだけ)
今は pageview.cgi があった時のコードのままになっているです。
つまり、1000個datがあれば、html/ の下のファイルも1000個あるです。
これは、別に考えることにしよう。
index.html 合成するところで、判定すりゃいいのか。 1000000000.dat に対する html/1000000000.html の最新版が必要になったら、 html/1000000000.html と 1000000000.dat の mtime を調べて、 (この時点では dat への追記は終わっているものとする) もし html のほうの mtime のほうが古かったら、dat から html を合成するサブルーチンを呼べばいいと。
さて、いったん時間切れ。 またのちほど。
80 :
◆TWARamEjuA :2005/11/08(火) 19:39:12 ID:UHN9v+f+0 BE:6099078-###
つ open ゴニョゴニョ or return -1; # 500鰓で悩む恐れ有りなので
で、$GB->{SABORIN} がtrueだったら、このへんの処理はキャンセルできると。
>>80 現在、datのopenはメインルーチン内で堂々とやっているですよ。
ひろゆき的堂々人生。
>内容を保存しておきたいですね。 それがうまくいけば楽なんですけどね、 bbs.cgi が非同期で同時に 30本とか走っているんですよ。 FIFOとかじゃなくてさ、 「どれが最後に終わるかわからない」という話だったり、 平気で後から来たのが追い越していきます。 それとの戦いの痕跡かと、
$GB->{DAT1} = <DAT>;
@{$GB->{DATLAST}} = <DAT>;
$resnum = $.;
if ( @{$GB->{DATLAST}} > BBS_CONTENTS_NUMBER ) {
@{$GB->{DATLAST}} = splice(@{$GB->{DATLAST}}, -BBS_CONTENTS_NUMBER);
}
こんな感じになるんかな
でも
>>83 なのね
>>83 ですね。
今のやつは、なんでもかんでもdat読んで配列に突っ込んで、
配列の要素数数えて、
BBS_CONTENTS_NUMBERより大ならおしりから、
より小ならあたまからhtmlにして、html/html に入れ込む
みたいなことをやっているです。
で、1000行以上あったら、1000超え判定していたりするです。
つまり、datの読み込みモードでのオープンは1回で済んでいるものの、
毎回datを全行絶対なめなめしているわけです。
このへんをなんとかしたいかなぁと。
で、
>>83 のこころは、
「subject.txt からとろうというのは誰もが思いつくわけだけど、
それって所詮非同期なんじゃないのかしら」
ってゆうことですよね。
ううむ。
> if ($resnum <= 0 || $resnum > 990)
ここを 900 とかかなぁ。
subject.txt更新前に別のbbs.cgiが参照するとずれるような希ガス っていうかずれたからdat読みになったんじゃ?(違うかも)
>>87 所詮、参考記録でいいと思っていたりするです。
クリティカルなところで、コストを少しでもさげられるといいなと。
そのへんが、
>>86 の if 文なわけで。
どうしてもうまくいかなきゃ、GetResNumFromSubjectをあきらめると。
まぁ,bbs.cgi やその他各種呪文用 CGI と bbsd との I/F が完成したら, 雪だるま系鯖以外でも bbsd を使うという選択肢もあるのでしょうけど.
>>88 参考記録といってもずれたままになりそうなのは気になる
個人的にはレス数と一緒にサイズも記録してあれば
少なくとも全読みは避けられそうと思っているけど
影響大きそうだからなあ
>参考記録 ってどういう意味?
subject.txtから取ったレス数よりも実際のdatの行数がいくつか増えてしまっていてもいい、 ぐらいの感覚で書きました。 ただ、900超えたあたりからはクリティカルか。 いずれにせよ、毎回全読みするコストを何とか下げられないかな、というのが、 subject.txtからとる趣旨なわけで、それが期待できないなら、 単にサブルーチン化して、整理整頓するだけかなぁと。 # おじさん、インテンショナルな徹夜で時差調整中?
>subject.txtから取ったレス数よりも実際のdatの行数がいくつか増えてしまっていてもいい、 >ぐらいの感覚で書きました。 わたしもその意見には賛成で、実は以前それを実験しました。 で、結果はというと、 惨憺たるものだったかと、たしか専用ブラウザが困ってしまうんじゃなかったかと、 もう何年も前の話で忘れちまったが、 眠くなったら寝るというみだらな作戦です。
>>93 で、900超えたらsubject.txtを信用するのやめて、
今までの方法でdatを読んじゃおうという、日和見風見鶏作戦かなぁと。
で、900をできるだけ1000に近づける方向でがんがってみると。
「dat と subject.txt のずれを許容してくれない」 とっても厳密に扱われているというのが問題だと思います。 900 とか 980 のことじゃなく
>>93 あ、そっか。
シンクロ具合とゆってますね。
あんまりずれが大きいと、subject.txt をあてにして動いているアプリさんたちが
困っちゃうってことですか。
めしめし。
現状でも、スレスト時にsubject.txtが変更されないため subject.txtと実際の行数が一致しなくなり 毎回のように取得に行ってしまうクライアントもありますよ。
98 :
動け動けウゴウゴ2ちゃんねる :2005/11/09(水) 01:19:33 ID:rY6bA6aZ0
それはそのブラウザの作りが悪い
>>97 そんなんですよね
>>98 でも、その数が膨大だったりするのだ。
で、実際には高速で回転しているところは
dat と subject.txt が一致することなんてほとんどないから
それを利用してむ Saborin が生まれたのだ。
作る前はどうなるかと思ったけど、実際にやってみると
これがまずまず動いているんだな、よかったよかった
>>99 Saborin は確かに、結構効果ありますね。
Saborin = index.html / subback.html の更新をまばらにする
ただし subject.txt は更新する
ex系とlive系で絶賛動作中
SaborinはLAが閾値を超えると自動的に発動
cobra=30 / tiger=20 / banana=4
で、狼やらVIPやらanimeサーバやらで 500 エラーが起こりやすい理由の一端は、
>>80 が原因の予感のもより。
>>104 狼でちょっとだけ聞いてみたところでは、
どうもクリーンナップ大作戦の後、少し減ったらしいです。
出なくなるのは、まだまだ先かなと。
結局、
・まずは従来通りdatから全部とることにして、クリーンナップをすすめる
ことにしました。
コストは、かわんないですもんね。
で、GetDatInfoを書きました。
>>84 さんに感謝です。
#############################################################################
# 処理中のdatの情報を$GBにセットする
# $GB->{DATNUM}, $GB->{DAT1}, $GB->{DATLAST}
#############################################################################
sub GetDatInfo
{
my ($GB, $outdat) = @_;
my $datfile = $GB->{DATPATH} . $GB->{FORM}->{'key'} . ".dat";
my $datlastnum = $FOX->{$GB->{FORM}->{bbs}}->{"BBS_CONTENTS_NUMBER"};
if($GB->{NEWTHREAD})
{
# 新スレの場合
$GB->{DAT1} = $outdat;
$GB->{DATNUM} = 1;
@{$GB->{DATLAST}} = ();
}
else
{
# レスの場合
open(DAT,"<$datfile");
$GB->{DAT1} = <DAT>;
@{$GB->{DATLAST}} = <DAT>;
$GB->{DATNUM} = $.;
close(DAT);
if (@{$GB->{DATLAST}} > $datlastnum)
{
@{$GB->{DATLAST}} = splice(@{$GB->{DATLAST}}, -$datlastnum);
}
}
return 0;
}
107 :
root▲ ★ :2005/11/09(水) 05:42:14 ID:???0 BE:3283766-###
BBS.CGI - 2005/11/09
雪だるまに向けたクリーンナップ大作戦 その3
・GetDatInfo (
>>106 ) を作り、datへの追記(新スレでは作成)直後に呼ぶようにしました。
・datの情報はもっぱらここでとることにし、$GB に蓄えて使いまわすようにしました。
・html/ の下を作るところ(MakeWorkFile)では、datはオープンしなくしました。
・Over1000 をサブルーチン化して、GetDatInfo の直後に呼ぶようにしました。
・これでMakeWorkFile内から、1000超えチェックが分離できました。
108 :
root▲ ★ :2005/11/09(水) 11:33:09 ID:???0 BE:1824454-###
subject.txt を作るところ sage のほうが、処理工数が多いのね。 ちょっと目からうろこ。
109 :
root▲ ★ :2005/11/09(水) 15:55:33 ID:???0 BE:1460328-###
BBS.CGI - 2005/11/09a # 051109a 雪だるまに向けたクリーンナップ大作戦 その4 # UpdateSubject (subject.txt作成) サブルーチン化 # いよいよ、神の領域の入り口に突入か by む
110 :
root▲ ★ :2005/11/09(水) 18:34:37 ID:???0 BE:1824645-###
# 051109b @newsub を @{$GB->{NEWSUB}} にして追放(UpdateSubjectに封じ込め) by む 本日はここまでの予定。
111 :
root▲ ★ :2005/11/09(水) 19:35:56 ID:???0 BE:5745997-###
で、わかってきたことは、 subject.txt って軽々しく作っている割に、 suback.html も index.html も /i/index.html (qb系 dso系 bbspinkのみ)も、 ぜーんぶ、これをベースにこしらえているらしいということだなぁ。 こりゃ、非同期にsubject.txtをなんてのは、とんでもない話だなぁ。 何が起きるか、予想もできないや。 というかたぶんもともと、宣撫らでの参照のために作ったんじゃなくて、 そうゆう内部処理のために、作ってるんだろうなぁ。 なぁ。
なぁ。
なぁ その部分は歴代誰もさわっていない気がする なぜなら太古のままの姿で残っているから、 しいていえば dat と subject のずれをなくすため およびdjをなくすため、神か or トオルさんが2001年ころ手を加えたかと、
|∀・)<そこに凶悪なすらいむが現れたっ!
root探検隊2005秋 「驚愕! 未開の地bbs.cgiの奥地に謎の古代神殿subject.txt生成部を発見!?」
今日あたりから妙な動作をしてる気がするんだが、何かいじってる? 具体的には ・某板で、かなり時間を置いて違う内容を書き込もうとしても二重書き込みが出る ・しょうがないのでIP変えたら書き込めた ・IP変えた後、他の板に書き込んだら何故かcookie確認が出ない 出た現象としてはそれだけ。 どこの板とかは出さないので、回答には特に期待していないけど。
>>117 そのへん、全然変えてないです。
上2つは、過疎な板だと正常な動作としてよくあるですね。
一番下は、ちと気になりますが。
確認画面の話が出てるから、自分もちょっと 先日の京ぽんのID末尾o→0の関係でごちゃごちゃやってた以降 自分の味ぽんはどの板で書いても、回線切ろうが、電源切ろうが 確認画面が1度も出ないんですが、良いのでしょうか? ごちゃごちゃの当日に指摘した時は流された気がしますが…
>>119 奥様(味ぽんユーザ)では「普通は最初だけ出るよ」
「でも、最初でも出ないときがあるみたい。再現性はわかんない」
ということらしいです。
うぅむ。
# 「最初だけ出る」が、意図した動作。
>>120 そう、「最初の1回だけ出て後は出ない」なら今まで通りで何の
疑問も感じない訳ですが
自分は最近、確認画面を全然見てないから謎なんですよ
まぁ、面倒が無くて良いって言えば良い訳ですけど
>>121 それって、京ぽんを 0 にしてからなったということですかね。
ううむ。
>>122 タイミング的にはそんな感じです
完全にイコールかと言われると判りませんが
確か一連の作業中に一時的に味ぽんから書き込めなくなって
その後、復活してからの様な気がしますが
>>123 ふーむ。
うちの環境では幸運にも実物で試してもらえるので、
また、時間取れたときにみてみるです。
おぉ、わかた、、、。
>>123 あとで、なおしておこう。 @ 今qb6で別の作業中
とりあえずoperate2で動くのを確認しました。
>>126 今日の作業がおわったら、配布で。
BBS.CGI - 2005/11/11 109 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/11(金) 02:42:33 ID:d6RFRwJS0 ・味ぽんでも投稿確認画面が出るように(虫取り) ・MakeWorkFile から緊急ストッパーを切り出し(Emerg1020 Emerg1050) ・UpdateSubback サブルーチン化 ・MakeIndex4PC サブルーチン化 今日までで、bbs_main中から、だらだらと長くて保守性の悪い部分はなくなったはず
質問。味ぽん=京ぽん?
一般的な意味を聞いてるなら味ぽん!=京ぽん。JRCの出した初代AirH" Phoneの事と考えるのが普通。 MUMUMU氏の意図ならAirH" PHONE全部という可能性もあるな。 # もうAirH" PHONEというブランドは無いんだけども。
>>130 やはりAirH"=京ぽんをもじって味ぽんに(りゃな解釈?
私の定義: ・味ぽん: AH-J3001V AH-J3002V AH-J3003S これらはbbs.cgi内で特別扱いしています( o 表示のゆえん )。 京ぽんのbbs.cgiでの特別扱いは全廃されました。 PCと全く同じ扱いです。 今後出るWillcom端末は、特別扱いしたくないですね。 ちゃんとリファラ吐いて、クッキー食べてほしい。
bbs.cgi のぐろーばるーについてのチラシの裏 $FOX <= 船単位で設定 (基本的に出航時に1回設定される) $GB <= 1トランザクション単位で設定 (1投稿ごとに設定される) 例えば、SETTING.TXT の値はこうやって得られるです。 ・SETTING.TXTは出航時に読めばよい固定値だから$FOX ・でも板名はトランザクションごとに変わるから$GB ・その下に要素がぶらさがる $FOX->{$GB->{FORM}->{'bbs'}}->{"BBS_CONTENTS_NUMBER"} SpeedyCGIの特性を利用した、すごくよい使い分けと思います。 もしこれがなかったら、どうやってもカオスからは脱出できなかった。 他の処理系をまたぐ必要のあるぐろーばるーは、全部追放か$GBに押し込める方向で。 でないと、どれがどれなんだかちっとも。 で、概ねそれはできたような気がしているです。 といっても、ほとんどはおじさんがやったわけですが。
で、該当部分。 # ちょっと感動した。 #設定ファイルを読む sub foxReadSettings { my ($GB) = @_ ; my $ita = $GB->{FORM}->{'bbs'} ; $GB->{DEBUG} .= "SETTING.TXT よみこむ? $ita<br>"; if(defined($FOX->{$ita})) { $GB->{DEBUG} .= "SETTING.TXT 既に読み込み済みー(1)$ita<br>"; return 0; } $GB->{DEBUG} .= "SETTING.TXT よみこみー$ita<br>"; (以下略)
デバッグの部分はリリース時に外さないの?
>>135 既に概ね、外れているです。
(ここはたまたま、外れてなかっただけみたい)
なにか言いたいけど すでに getting drunk
そろそろ 11時? たぶん 三人でぽとる一本あけたから、、、、 with Jim &79
ぼうしぬいで、だらだら。
>>139 79さんですか。
そりゃ、たいへんだ。
ところで、飲酒禁止とか控えるとかゆう話、ありませんでしたっけ。
ないない 蒸留酒はok to me
そっか。 プリンが規制中なんでしたっけ。
そうそう beer とか wine はご法度 でも沢山のんだけど in Euro
めっ
DispError(sprintf qq|プリンが規制中です(%d)|, $GB->{prin}) if defined $GB->{prin};
通風こわいよ通風
147 :
root▲ ★ :2005/11/12(土) 05:31:42 ID:???0 BE:3284249-###
167 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/12(土) 05:19:07 ID:axdTew+g0 ?### BBS.CGI - 2005/11/12a # 051112a 雪だるまに向けたクリーンナップ大作戦 その6 # $GB->{OUTDAT}, $GB->{LOGDAT}, $GB->{xID}, $GB->{xBE} 新設 # ResAnchor, MakeBEString, MakeIdStringAndLogdat, MakeLogdat, # MakeOutdat, Update924, WriteDatFile 以上サブルーチン化 by む これで、bbs_main の真ん中当たりにあったアドホックなワーク用変数を ほとんど整理した。 明日あたりから、Check_HardPosting (連続投稿ですか?のところ)を見始めるか。
↑あら、ならなかったです キャップ付けるとoutdatってなるだす
150 :
root▲ ★ :2005/11/12(土) 12:39:16 ID:???0 BE:1824645-###
151 :
root▲ ★ :2005/11/12(土) 12:57:31 ID:???0 BE:1095034-###
サブルーチンにして移動する時に、 色気心を起こして、処理の順番を変えてしまったです。 ・虫がいた時 if (saku sakud saku2ch) { if (capじゃない) { datにHOST: が入ったのを作る } } else { 普通のdatを作る } ・今(前と同じ) 普通のdatを作る if (saku sakud saku2ch) { if (catじゃない) { datにHOST: が入ったのを作る } }
152 :
root▲ ★ :2005/11/12(土) 13:10:39 ID:???0 BE:4104959-###
変えてしまった => 変えてしまっていた
>>151 しかも、
>>151 の上のやつはオプティマイズにはなっていないわけで。
なんだかなぁ。おじさんにセッキョーされそうだなぁ。(´・ω・`)
猫? いや、何となくです。分かりますから、、、ゴメンチャイ
154 :
動け動けウゴウゴ2ちゃんねる :2005/11/13(日) 02:31:52 ID:eVSZ3HVd0
qb5用のbbs.cgiの存在は、なかなか微妙だと思います。 削除系全般のHOST処理とか、BBQで串マークとか、規制でもfusianaで書き込めるとか。 バグの温床。 if(板名)ってのはなんとかやめること出来ないのかなあ と、中身を何も知らないのに言ってみるテスト
qb5だけ別CGIにすれば?
156 :
root▲ ★ :2005/11/13(日) 02:57:55 ID:???0 BE:5107878-###
>>155 いやーん。
絶対、面手できなくなりそう。
そこを何とかがんばれ!
158 :
root▲ ★ :2005/11/13(日) 03:29:07 ID:???0 BE:5745997-###
timecount/timecloseの処理をしているところって、 ずいぶん、贅肉があるみたいな。 歴史的経緯ですか。 simplify したいけど、今はとりあえずこのままにしておくか。
あるファイルをbbs.cgiだけがさわっているのであればラッキー その確証が得られないor得るのがめんどくさい → 放置 誰かが作った装置をさっさと取り外すのはやはり嫉妬の渦の中 → さわらぬなんとか なんてのが bbs.cgi の歴史です
160 :
root▲ ★ :2005/11/13(日) 04:13:08 ID:???0 BE:3284249-###
>>159 > 誰かが作った装置をさっさと取り外すのはやはり嫉妬の渦の中 → さわらぬなんとか
そうゆうものですか、、、。
私なんか、あんまりそうゆうこと考えずについさわってしまうし、そのことをどんどん公開してしまうし。
だから、いかんのかしら。
161 :
root▲ ★ :2005/11/13(日) 04:15:26 ID:???0 BE:821333-###
もちろん理由がなければそういうことはやらないし、 基本的には全部表でやるわけですけど。 て裕香、表でやれないようなことは、やっぱ体にも心にもいくないっす。 せめて2ちゃんねるぐらいでは、そうゆうことはできるだけしたくないなと。
162 :
root▲ ★ :2005/11/13(日) 04:19:10 ID:???0 BE:2554447-###
2ちゃんねるぐらい = 趣味の世界 ってことですね。 仕事の世界だと、なかなかそうもいかないわけで。 あとはMakeWorkFileをちょっと読んで、今日は中身はいじらずにもうねるか。
(雑談スマソ)
>>161 そこで裕香と誤変換しますか。彼女とか娘とか、はたまた平田裕香のファンなのか・・・チョイキニナル
>>163 saku / sakud 等でよく見かける方のいち隠れファンです。
165 :
桶屋 :2005/11/13(日) 11:38:03 ID:MUh++HtM0
>>158 今の時代、本当にtimecount/timecloseが必要なのか、一度考え直すのもいいのかも。
連続投稿に関してはsamba24 やバーボンができました。
投稿に関する対応は、ボランティアさんも含めた新しい仕組みが動くようになりました。
timecount/timecloseは、これらがない時代からあるものですね。
timecount/timecloseの必要性と、実装や運用のコストの比較になるのかなと。
samba24は鯖ごと、バーボンに至っては全板一律だからなぁ。 確かsamba24はSETTING.TXTで設定できるようにする、って話もあったけど、 ただ、最近もちょくちょく全板でいっせいに設定値変えとかしてるから、 ちとそうもしづらいのかなぁ。とか。
>>165 板によって、結構絶妙なバランスで設定されてる
値だと思いますけどね。普通の使い方をしてる人では、
まず引っかからないし見ないから、「空気みたいなもの」
としか感じないかもしれませんが。
けど見てると、設定を微妙に変更することで、荒らしさんは
やっぱり速度が落ちたりとかするのを見たりします。
だから効果はあるんだと思います。
逆に言えば、普通の人がやたら引っかかるようなものは、
それなりに問題なんじゃないですかね。
>>166 もしできればでいいですけどsambaは全板と各板(setting.txt)の共存ができればええんでないかと
>>165-167 それなりに効果は出ていると思います。
たぶん2ちゃんねるが今よりもっともっと小さかった頃は、
画期的な仕組みだったんだと思うです。
でも今となっては、ファイルI/Oのコストが毎回(少ないとはいえ)
発生するのが、ちと気になるですね。
ということで投稿数が多い板だと、
この方式を現在の実装でやるのは、ちょっと苦しいところがあるです。
基本的に、効果を大きくしようとしてFIFOの段数を大きくすると
コストも大きくなってしまいますし、
段数が少ないと、効果が薄いです。
ということで、雪だるまにしてbbsd側でオンメモリでやるなら、
それほどでもないという読みで、今の方式を踏襲する形での実装は、
してもらおうかなと思っているです。
オンメモリならコストは低いし、実装もそれほどでもなさそうなので。
<チラシの裏>
あと、メッセージ本文の最初の何文字かとか本文の長さとか、
投稿したスレッドのキーとか時間とか、いろいろとっているけど、
今は全く使っていないので、このへんの贅肉をとって、
いずれはすっきりしたいなと思っているです。
<チラシの裏の隅>
たぶんこのへんも規制に使おうとした、あるいは昔規制に使ったことがあるんだろうなと。
</チラシの裏の隅>
</チラシの裏>
で、先回りして言ってしまうと、Samba24って、 そういうところが、よくできているです。 ようは、ひとことでいうと、 「大きい板でもコストを上げることなく、同じしくみで動かすことができる」ってことですかね。 スケーラビリティがあるとゆうか、成長に耐えるとゆうか。 実現している部分は正直、短いコードですけど、 かなり感心したところだったり。
さぁ みんなで踊ろう S A M B A ! もうすぐ夜明けだ。
そうか、時差があるのか
さてはまたゴルフだな・・・
またドアをドンドンやられたの?
いやー どこへ行ってもこんな感じの一ヶ月でした。 毎日五時に起きてしまい、夜も八時を過ぎればおねむ きっとホームに帰ってもとうぶんそれが続くかと 起きたらまずススキのの生活・・・
>>176 早朝営業ですっきり、ってやつですか。
ちと、おふろへ。
その後はSambaの解読と、live20のバージョンアップあたりを。
今、むーさんの人間性を垣間見たお。
さて、、、。 1001のところ、どうするですかねぇ。 私は今の実装でも大きな問題はないと思っていたりしますが。 全部の船に共通の変数があるといいんですが、 たぶんそういうのは、なさげだし。
WriteDatFile … datに追記
GetDatInfo … dat行数、
>>1 の内容、datの最後のいくつか(html/の下作成用)を取得
if (datが1000以上) Over1000 … 1001を書いて、chmod 555
というのが、今の流れです。
これをどうするのが、いんだべか。
>>180 そこのパーミッション書き換えタイミングにレスが重なると1000overカキコが
多発するんでしたっけ?
レス>1001の時にdat追記そのものを破棄することって難しいのかな?
多分難しいからおいちゃんも今の形にしてあったとは思うのですけど。
Over1000 を複数のbbs.cgiが実行している、っちゅーことなんです。 それはたぶん避けられない気がするんで、さて、どうしたもんかなと。
で、確実に止まっているようなので、 とりあえずは今のままでいいのかなとは思っていたり。
perlってappendモードで開いているファイルに対して ftell相当のこと出来ないのけ? 出来るなら、「自分が書き込んだ後の末尾の位置」を覚えておいて 再度(行数判定等のために)読み込んだときの合計サイズと一致している場合のみ (==1000を書き込んだのが自分である場合のみ) 1001を追記したらよいのでは? 既にオープンしているファイルからftellするのは、 I/Oコスト的には大したことないはずだし。
>>184 ぱっと見、それだと忙しい時、
1001が書かれなくなるような。
あーそうか。「同時に」なんだ。 てことは,実現させるには1001番以上が付くかどうかを各bbs.cgiが判定して, 以上なら強制的に止めてしまうしかないんですねえ。
あとは、GetDatInfoして得たdatの最終行が既に1001だったら、 Over1000で1001を書かないぐらいかなぁ。
でもコレだと高負荷時の挙動が怖いようなw
Perlで、その配列の最後の要素にアクセスするのって、どうするんだっけか。 具体的には、@{$GB->{DATLAST}} の最後。
予想されるのは、 1000 1001 1000を超えました。。。 1002 普通の書き込み とかで、終わるパターンすね。 chmod 555 は必ずするので、 壊れるリスクは今と同じのはず。
あ、そっか。
まず書き込みをして、それから書けたかどうか判定するのか。
と思ったけど、
>>184 の5行目の()内が間違いで
(==最終レスを書き込んだのが自分であった場合のみ)
が正しいのかな。
とは言っても、「再読込」した後で他のプロセスが書き込んじゃうという
可能性もある(というより、現状その状態っぽい?)ので
複数プロセスがが1001を書き込むのは避けられない点は同じか。
確実にやるにはロックなどで排他制御するしかないでしょうね. ロック使用を回避するなら,わずかでもタイミングの隙が発生するのは不可抗力かと......
>>193 やっぱ、そうかなとは思っていたりするです。
概ね動いてはいるようなので、1001がいっぱい書かれることを減らせれば、
とりあえずいいかなと思っていたり。
$array[-1]; でいいのか。
>>190 ちょっと、ごにょってみるか。
むずかしいー 1000時のみロックとかできないんでしょうかー とか思ってしまいますです まあ,1000以降で実際に書き込まれないならいいかな なんて思ったりもしますがw
ん?現状でも、既に AとBが両方書き込んだ後、 A:読み込み(.datは1000行) B:読み込み(.datは1000行) A:1001書き込み(.datは1001行) B:1001書き込み(.datは1002行) という経過によって、複数の1001が書かれているのではないですか? とすると、読み込んだ内容をどう判定しようと 重複1001は減らないのでは?
いけそうだ。 $GB->{DATLAST}[-1] と $lastdat を比較して、 同じなら1001を書くのをさぼろう。 in Over1000
こんなの? $lastdat = "1001<><>Over 1000 Thread<> $b1000 <>\n"; # 既に1001が書いてあったら、書くのをやめる if ($GB->{DATLAST}[-1] ne $lastdat) { # 1001書き込み処理 if(open(OUT,">>$dat")) { print OUT $lastdat; close(OUT); # $GBの処理 # datの番号をひとつすすめる ++$GB->{DATNUM}; # $GB->{DATLAST}をひとつ押し出す shift(@{$GB->{DATLAST}}); push(@{$GB->{DATLAST}}, $lastdat); } } # datを書けなくする umask(0); chmod(0555, $dat); return 0;
>>198 ふむ。確かにそうかも。
少しは減るかもぐらいか。
おおーなんとなく流れはわかる
$GB->{DATLAST} は配列のリファレンスなので $GB->{DATLAST}[-1] でなく $GB->{DATLAST}->[-1] かと
umask() は open() や mkdir() には影響しますが,chmod() には影響しないので不要ですね. むしろない方が chmod() の実行タイミングがわずかながら早くなって,その分隙は減るかと.
>>204 $GB->{DATLAST}[-1] でも $GB->{DATLAST}->[-1] でも
結果は同じでした。
配ったです。
# 051114 Over1000の処理改良、既に1001が書かれていたら書かない by む
>>208 のは、消したです。
しかし、あくまで対症療法に過ぎないすね。 効果があるかどうかも、微妙かも。
で、上のほうにも書きましたが、 何かのタイミングで、 1000 普通のレス 1001 1000を超えました。 1002 普通のレス みたいなことが、起こるかもですね。 chmod() はするので、止まりはするはずですが。
212 :
root▲ ★ :2005/11/14(月) 03:58:54 ID:???0 BE:4104959-###
# 051114a 雪だるまに向けたクリーンナップ大作戦 その7 # NotifyBBY, NotifyBBS, SuretateTotalCheck サブルーチン化 # これで雪だるまに向けたbbs_mainのコンパクト化はほぼ終了、長かった by む
$#array 要素数-1を返す 一応…
214 :
桶屋 :2005/11/14(月) 08:40:00 ID:TwePZ4IU0
>>165-167 >>169 期待して書いたのだけども、やっぱりなんというか歯切れが悪いというか……。
ここの人でも、ちゃんと説明しきれていない。「timecount/timecloseは、他と違って、
○○で△△の特徴があるから、絶対必要です」みたいなものがない。
>雪だるまにしてbbsd側でオンメモリでやるなら、それほどでもないという読みで、
>今の方式を踏襲する形での実装は、してもらおうかなと思っているです。
ここは、なるほどなーと思いつつも、どうやら消極的賛成で入れているらしい、、、
というのが読んだ感想です。
215 :
桶屋 :2005/11/14(月) 08:45:17 ID:TwePZ4IU0
>>211 技術はひとまず置いておいて、これは本当にオッケーですか?
スレッドが終端しない=一番最後に1001の書き込みがないと、
ユーザーがずっと書き込もうと行動し続ける気がするのですけど……。
速い時ほど、そんなことが起きる気がします。
二年ほど前「もう timecount/timecloseは必要ないだろ」と思いはずしたことがあります。 結果はぼろぼろで、あわてて元に戻しました。 連投あらしのオンパレードでした。 それも低速タイプのやつ。(2ちゃんねるのほとんどの板は低速です)
>>216 sambaとかバーボンとかは対スクリプトとか実況級に進行が早い板向けですからな
ゆっくりゆっくり書かれる連投には無力かと。
そういう自動書き込みスクリプト(繋ぎ換えまで一緒にやるようなの)は、 まだゴロゴロしてますからね。。 繋ぎ変えは、もう一歩技術がいるようですけど(プロバイダによるし)、 スクリプト自体は、厨房でも設定可能なレベルみたいですし。 特にタイマー式は厄介(自動確認式もあるし。新規投稿が1回あったら 数回AAを自動投稿するとか。進行遅いスレだと、それだけで簡単に潰せる)。
219 :
root▲ ★ :2005/11/14(月) 11:40:24 ID:???0 BE:1094843-###
>>215 1001メッセージは合成不可能なので、一つは書かれるはずと。
で、どうせそのスレには書けなくなるので、移行していただけると信じているです。
# でも、1001で終わってないスレは、ちょっと気持ち悪いかも。
ありゃ…やっぱり普通のがよかったのかしら
そこは秒間20回とか書き込んでる馬鹿がいるからっぽいし、 そんなもんでいいんじゃないっすかねぇ。 まぁ、あれで止まってるほうがよかったって感じで。
Sambaは?
まぁ bbsd 版ではそれぐらいのでもちゃんと止まる......と思います.
1001いってるスレなのにsubject.txtでは999で止まってるのがあるね
バグがいっぱいorz
みんなしてテストしてくれてる、ってことなのかしら。
まあ確かに試験・実験には最適ですね。 後々出ちゃうよりは、さっさとバグ出ししちゃう方がやりやすいだろうし。
毎回 WriteDatFile で 書いた後で chmod 666 しているとゆうのが、微妙なんだよなぁ。
bbs.cgiのことは何も知らないですが、 perlで通常書き込みや追記モードなopenに成功したと言うことは、 書き込み権限があるということとイコールだから、 openの後にchmodで書き込み権限を付加するのは、意味ないような・・・ openの前にchmod 666してるとしたら、絶対に書き込んでやる! という強い意志の表れでしょうか・・・ 書き込み権限のないfileに、chmodしてまで書き込もうとする理由が 想像つかないですが・・・
HOSTとかはどこへ保存してあるんですか?>root★
>>232 openしなくてもパーミッションはかえられますよ。
良く知らないけど、3get禁止スレとかに管理者が書き込むためとか?
とりあえず書いとくです。
235 :
動け動けウゴウゴ2ちゃんねる :2005/11/16(水) 00:27:38 ID:4JWl5LHj0
おめでとう!
read.cgi再開発スレが消えてしまいますたor
dat取得出来たけど、書きこもうとしたら リアルでdat落ちしたです (´・ω・`)
必要になったときに、必要な人が立て直せばいいとおもう。 常時必要なスレってわけじゃないと思うし。
239 :
root▲ ★ :2005/11/17(木) 03:41:54 ID:???0
230 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/17(木) 03:40:54 ID:1HWflj8o0 # 051117 アクセス規制中にfusianasanして書き込みOKになった場合、しるしつき by む
ってか運営に●ありで串で書き込めないのをどうにかしてくれ
書き込みじゃなくてスレ立て
242 :
root▲ ★ :2005/11/17(木) 03:45:11 ID:???0
243 :
root▲ ★ :2005/11/17(木) 13:34:48 ID:???0 BE:1368735-###
しるしを変更。
244 :
root▲ ★ :2005/11/18(金) 11:04:22 ID:???0 BE:1277827-###
# 051118 saku sakud saku2chでは公式p2ユーザ番号とp2-client-ipを表示 by む
Perlって、いわゆるファイルディスクリプタって、サブルーチンに渡せるんでしたっけ。 具体的には、メインルーチンで open(FILE,">$workfile"); としたFILEに、サブルーチンから書きたい場合、 どういうふうに記述すればいいかなんですが。
あ、ファイルハンドルっていうんでしたっけ。 なにぶんPerlは、その程度の知識で。
>>247 おぉ、そうやるですか。
ファイルハンドルと文字列(or 文字列の配列)を引数でくべてやると、
そのファイルハンドルに吐き出す、みたいなサブルーチンがあるといいなとゆうことです。
html/ の下を作るところと、
index.html を作るところを、なんとかしたいなと。
ようは、残された神の領域を少しずつ人間の領域にしたいということで。
# 某所でやっている広告切り分けとも、微妙に関連しているという噂も。
ちょっとぐぐってみた限りでは、
>>247 のがいいみたいですね。
その場合、こんなふうにしても大丈夫みたいですね。
つまり、localのもじどおり局所化できると。
open(FILE1 ,">foo.txt");
&hoge(*FILE1);
close(FILE1);
...
open(FILE2 ,">foo.txt");
&hoge(*FILE2);
close(FILE2);
sub hoge{
local (*FILE) = shift;
print FILE "bar\n";
}
もうちょっとtypicalな例を書くか。 こういうのも許されるということですかね。 open(FILE1 ,">foo.txt"); open(FILE2 ,">foo.txt"); &hoge(*FILE1); &hoge(*FILE2); close(FILE2); close(FILE1); sub hoge{ local (*FILE) = shift; print FILE "bar\n"; }
あ、二つ目は bar.txt すね。すまんです。
>>252
うまくいったっぽいです。 #! /usr/bin/perl -w my $str = "This is test.\n"; my @substr = ( "This is test.\n", "This is test 2.\n" ); open(FD, ">test.txt"); open(FD2, ">test2.txt"); &Put1Line(*FD, $str); &PutLines(*FD2, @substr); close(FD); close(FD2); exit; ############################################################################# sub Put1Line { local (*FD) = shift; my ($str) = @_; print FD $str; return 0; } ############################################################################# sub PutLines { local (*FD) = shift; my (@str) = @_; foreach (@str) { print FD $_; } return 0; }
で、つぎのお知恵を拝借、、、。 print SHTM <<EOF; <TABLE border=1 cellspacing=7 cellpadding=3 width=95% bgcolor="$FOX->{$GBA->{FORM}->{bbs}}->{"BBS_THREAD_COLOR"}" align=center><TR><TD><DL><a name="\$ANCOR"></a><DIV ALIGN="right"><a href ="#menu">■</a><a href="#\$FRONT">▲</a><a href="#\$NEXT">▼</a></DIV><B>【\$ANCOR:$GBA->{DATNUM}】<FONT size=5 color="$FOX->{$GBA->{FORM}->{bbs}}->{'BBS_SUBJECT_COLOR'}">$subject</FONT></B> EOF といった行が、それこそ死ぬほどあるわけですが、 こいつらの保守性を少しでもよくする方法は、何かないのかなと。 qq// とかにしようかなとも思ったのですが、/ も使っているわけで、 何かいい知恵はないものなのかなと。
qq// じゃなくて、qq| | とか qq{ } とかでもよくなかったっけ
>>256 なんでもいいんでしたっけ。
{ } も使いまくりなんで、| | かしら。
# 何せ、その程度の知識しか。
どもです。
>>258 で、こういうEOF〜EOF のやつは、
一律 qq|〜| にして、ちゃんとうまくいくのかしら。
手元のスクリプトいじってみたら、 print SHTM qq| (中略) |; こんなんで動くことは動きましたです。
保守性はないけど硬性はあったり
>>261 どっか間違っても、直感的にわからないとか、
カスタマイズがとってもしにくいとか、そういう話ですね。
そのうち、複数行にするかも。
264 :
root▲ ★ :2005/11/22(火) 05:15:01 ID:???0 BE:2280555-###
Put1Line と PutLines を使って、 index.html を作るサブルーチン(MakeIndex4PC)を書き換えました。 それに伴い、ひとつ小さな虫取り(不要な</form>の削除)を行いました。 また、HTMLタグを基本的に小文字にしました。 ただ、まだ直していない部分(htm/の下を作るところとか)があるので、 従来通り(w、大文字と小文字のタグが混在しています。 bbs.cgiの動作そのものは変わっていないはずですが、 もし問題を発見した場合、ここでお知らせくださいです。 これで、MakeIndex4PCは神の領域ではなくなったと思う。 今日は、ここまで。
265 :
root▲ ★ :2005/11/22(火) 10:34:49 ID:???0 BE:6567089-###
ええと、前にあった(今dat落ちかな)、 bbs.cgiが吐くindex.html をコンパクトにするというか、よくする話し合いをしてたスレッドって、 どれでしたっけか。 すぐやるかどうかはわからないけど、教えていただけるといいかもしんないです。 index.html作成部分の保守性がよくなったので(実際潜んでいた虫も見つけた)、 反映できるものもあるかも、かも。
267 :
root▲ ★ :2005/11/22(火) 10:47:27 ID:???0 BE:547632-###
>>266 どもです。それです、それです。
MakeIndex4PC, MakeIndex4Keitai, UpdateSubback あたりのクリーンナップ後に、
ぼちぼちってかんじで。
あと、SunOSさんが雪だるま版index.htmlにこのスレのどのへんを採用したかの
情報があると、うれしいかも、かも。
268 :
root▲ ★ :2005/11/22(火) 10:50:36 ID:???0 BE:2189838-###
とりあえず今20秒ぐらい読んで、
>>266 のは
>>140 から読めばよいのかなと書いておこうと。
269 :
root▲ ★ :2005/11/22(火) 13:49:14 ID:???0 BE:730324-###
>>264 の作業により、クッキーを食べるところと
BEのプロフィールを表示するところ(具体的にはJavaScriptのところ)が、
うまく動いていませんでした。
今、対応したものを配りました。
すみませんでした。
# <-- の後と // --> の前には \n が必要。
この際PHPだ!
271 :
root▲ ★ :2005/11/22(火) 14:09:43 ID:???0 BE:2280555-###
310 名前: ◆MUMUMUhnYI :2005/11/22(火) 14:08:29 ID:cuANVpjV0 ?###
# 051122a UpdateSubject, UpdateSubback, MakeIndex4Keitai, MakeWorkFileを
# Put1Line, PutLinesに対応
# これで、ファイル作る系の第一次対応はできたはず by む
以上配布済み。
ひととおり予定の作業はおわたです。
ということで、作業可能です。
>>305 これでこのへんのサブルーチンは、神の領域ではなくなったと思います。
>>270 以前からある話なわけですが、、、。
PHPって暴走すると、httpdが暴走しちゃうから。
272 :
root▲ ★ :2005/11/22(火) 14:20:52 ID:???0 BE:7387799-###
あと、神の領域なのは、newbbs と foxIkinari ぐらいだと思う。 …人間のものになったんだろうか。
関数名を誰が見ても分かるようにするとか、説明を書いておくとか
274 :
root▲ ★ :2005/11/22(火) 15:03:18 ID:???0 BE:2553874-###
>>273 とりあえずあまり進んでいませんが、こんなことをはじめているです。
########################################################################
# キャップがあるかどうか調べ、あったらそのキャップ名を返す
# 引数: キャップパス、板名、フラグ1、フラグ2
# フラグ1が真の場合、板別キャップの処理を行う
# フラグ2が真の場合、キャップあぶりだしの処理を行う
# 戻り値: キャップハンドル名 または ""(該当なしの場合)
########################################################################
sub FindCap
{
my ($pass, $board, $bflag, $tflag) = @_;
(以下略)
rootm9(^Д^)プギャー
277 :
root▲ ★ :2005/11/22(火) 18:38:01 ID:???0 BE:1642829-###
うーむ。問題あるとしたら、MakeIndex4PCだなぁ。
neet4vip以外でも、起きているですか?
364 名前:root▲ ★[sage] 投稿日:2005/11/22(火) 18:08:55 ID:???0 ?###
>>362 ニー速だけ?
365 名前:root▲ ★[sage] 投稿日:2005/11/22(火) 18:09:55 ID:???0 ?###
私が入れた虫くさいわけで。
しかし、他では出てないんだろうか。
366 名前:root▲ ★[sage] 投稿日:2005/11/22(火) 18:16:44 ID:???0 ?###
ちなみに、subject.txt が破損すると、起こると思います。
index.html は、subject.txt を見て作っているので。
278 :
root▲ ★ :2005/11/22(火) 18:42:43 ID:???0 BE:1368353-###
あるいは、MakeWorkFile (html/ の下を作っている)か。 ううむ。
279 :
root▲ ★ :2005/11/22(火) 18:44:29 ID:???0 BE:1368735-###
確認しました。 ううむ、同じのが複数ある。 あとで、みてみるです。
280 :
root▲ ★ :2005/11/22(火) 18:46:29 ID:???0 BE:2463539-###
neet4vip 復帰します。
281 :
root▲ ★ :2005/11/22(火) 19:10:43 ID:???0 BE:4925669-###
368 名前:root▲ ★[sage] 投稿日:2005/11/22(火) 18:54:55 ID:???0 ?###
ありがとうです。
MakeWorkFileか。
369 名前:root▲ ★[sage] 投稿日:2005/11/22(火) 18:56:53 ID:???0 ?###
違うキーのも、同じファイルになってる、ってことですかね。
370 名前:root▲ ★[sage] 投稿日:2005/11/22(火) 18:59:45 ID:???0 ?###
>>369 ですね。
ううむ、なぜだ。
371 名前:root▲ ★[sage] 投稿日:2005/11/22(火) 19:02:21 ID:???0 ?###
わかった気がする。ううむ、、、。
やはり、神の領域は深いらしい。
372 名前:動け動けウゴウゴ2ちゃんねる[sage] 投稿日:2005/11/22(火) 19:03:59 ID:JzWOnNm+0
見た感じ、新スレの*.htmlが、直近(同時刻?)に投稿のあったスレの
*.htmlと同じになってしまっているのかな。
373 名前:root▲ ★[sage] 投稿日:2005/11/22(火) 19:08:08 ID:???0 ?###
# 注意: $key と $GB->{FORM}->{'key'} は一致しているとは限らない!!!!
のですね。
また、滑落か。
なおすです。
282 :
root▲ ★ :2005/11/22(火) 19:11:41 ID:???0 BE:1094843-###
てなわけで、世の中甘くないすね。 なんで、MakeWorkFileに$GBじゃなくて、$GB, $key っていうふうに 引数が2つあるか、っちゅーことですね。 まさか、そんなことしてるとは、思いもよらんかったですよ。
283 :
root▲ ★ :2005/11/22(火) 19:23:47 ID:???0 BE:1095034-###
Perl でファイルの行数を if 文で、チェックできるんだっけか。
284 :
root▲ ★ :2005/11/22(火) 19:29:46 ID:???0 BE:4469377-###
できないっぽいすね。ううむ。
285 :
赤翡翠 ★ :2005/11/22(火) 19:31:54 ID:???0
>>274 あ、キャップの判定のことでお願いしたいことが・・・。
あとでメールさせていただきます。
286 :
root▲ ★ :2005/11/22(火) 20:10:10 ID:???0 BE:1277827-###
>>285 了解です。
で、neet4vip問題は、対応できたはず。
287 :
root▲ ★ :2005/11/22(火) 20:16:24 ID:???0 BE:1824645-###
お題は「おせっかいなbbs.cgi」にしよう。 説明は、のちほど。
my $fp; open($fp, '>', 'hoge.txt') or die; foo($fp); close($fo); sub foo($) { my $fp = shift; while (<$fp>) { # hogehoge } } これって駄目なのかな
289 :
root▲ ★ :2005/11/22(火) 21:01:33 ID:???0 BE:4104959-###
>>288 基本は、そうゆうことなんですよ。
今回の問題は、
「subject.txt にはそのスレが既に載っているけど、対応する html/html が製作途中、
あるいはまだ存在してない」
時に、動きが変になったんです。
くわしい説明は、帰宅してめしくってふろはいってからで。
290 :
root▲ ★ :2005/11/22(火) 21:01:52 ID:???0 BE:4378368-###
そうゆうこと => そうゆうことじゃない
>>289
291 :
288 :2005/11/22(火) 21:24:35 ID:WZb4VPiX0
>>283 if $. == 65536
こういうやつのこと?
293 :
root▲ ★ :2005/11/22(火) 22:37:41 ID:???0 BE:2189164-###
>>292 そですね。そうゆうっぽいの。
Perlから明示的に open() しなくてもチェックできる手は、ないのかなと。
>>293 つsystem()
…そういう話じゃ無かったらごめんなさい。
ファイルシステムが「行」を管理してくれたら可能かもしれませんね(苦笑) # (Count, ERROR message) = TotalLineNumberinFile(filename) # Count = TotalLineNumberinFile(filename) # filename は行数を調べたいファイル名 # Count は行数。-1の時はエラー。リストコンテキストで評価した場合、第2返り値にエラーメッセージが入ります。 # 正常に取得出来たときは'OK'が返ります。 sub TotalLineNumberinFile{ my $filename = shift; my $count; open my $filehandle $filename or return wantarray ? (-1,$!) : -1; $count++ while <$filehandle>; close $filehandle; return wantarray ? ($count,'OK') : $count; }
wcでも使うか
index.html作成時に必要なhtmlが無ければ作るというのは変じゃないような気がする。 ほとんどの場合、必要なhtmlが無い=スレ立て直後 だろうけど。
たまに大掃除もするので その場合も、
そですね。作ること自体は間違いじゃないと。 今夜あたりにでもちと。
対応したです。 347 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/23(水) 16:47:32 ID:93wvGgv70 # 051123 htmlファイルが存在しなくて、かつしばらくたっても作られない場合にのみ、 # MakeIndex4PCからMakeWorkFileを呼ぶようにする by む operate2 でテストしました。 html/ の下をからっぽにしてからレスして、必要な html が作られなおすことを確認済み。
ちょっと、ex13でテストしてみるかな。 html/html 全消しします。< ex13 問題が出なければ成功。
× ex13 ○ neet4vip
大丈夫そうですね。 様子を観察中。
304 :
赤翡翠 ★ :2005/11/23(水) 19:11:10 ID:???0
>>285 の件、先ほどメールしました。
よろしくお願いいたします。
>>304 メールざっと見ました。
主旨は、帽子の強度というか取り扱い方面に関するご相談、ということですか。
で、bbs.cgi での取り扱いにからむので、ここできいたと。
直感的に、仕様変更というか仕様追加を伴いそうな話な気がするので、
内容をよく読んでから、お返事するです。
場合によっては、別途いろんな方にご相談させていただく可能性も。
ということで。
外部にトラックバック打つ時にshift_jisのまま打つのはどうかと
307 :
桶屋 :2005/11/24(木) 01:53:13 ID:tdesbJrh0
>>265-268 どこまでやろうと考えているかはわかりませんが、
それを実際にやるときには、管理人に確認を取った方がいいと思います。
見映えやデザインが変わる恐れもありますので……。
まあ、「あいあい」だけで終わるような気もしますけど。
>>216 レスしていませんでした。興味深い話をどうもですー。
308 :
桶屋 :2005/11/24(木) 01:55:17 ID:tdesbJrh0
ここよりもむしろ雪だるまの話になるかもですが、 indexから見たhtml/ の下のファイルは、iframeにして埋めてしまうのはどうかと考えたことがあります。 つまり、index.htmlでは以下のようにしてしまい、スレッド順位が変わるときには"./01.html"の部分だけ書き換え。 <iframe src="./01.html" align="center" width="95%" height="90%" scrolling="auto" frameborder="0" marginwidth="0" marginheight="0"> (説明文)このページではインラインフレームを使用しています。 </iframe> ・ ・ ・ 10スレッド分ほど繰り返す メリットは、 ・index.htmlが一気にコンパクトになって生成コストが下がる(cssにするだけより断然効果あり) ・前段にキャッシュを使う場合、html/ の下がヒットして稼げるかも デメリットは、 ・スクロールが二重に (;^ ^ ・Netscape 4.7 など古いブラウザは、やっぱりiframeは使えない(cssの時と同じ互換性の問題)
309 :
桶屋 :2005/11/24(木) 01:56:49 ID:tdesbJrh0
それで、SETTING.TXTに、例えばINDEX_MODEといった新しいフラグを作っておいて、 INDEX_MODE=0 :デフォルト html/*.htmlファイルを作る。index.htmlも全部作る INDEX_MODE=1 :html/*.htmlファイルを作る。index.htmはiframeで埋め込む INDEX_MODE=2 :html/*.htmlファイルを作る。index.htmはサボる。今の実況板仕様 INDEX_MODE=3 :html/*.htmlファイルを作らない。index.htmはローカルルールとスレッド一覧と広告だけ こういうのはどうですかね?(;^ ^ >SunOSさん他
310 :
root▲ ★ :2005/11/24(木) 02:09:44 ID:???0 BE:1916137-###
>>307 > どこまでやろうと考えているかはわかりませんが、
> それを実際にやるときには、管理人に確認を取った方がいいと思います。
そうすね。
で、html/html を作るところは、まだカスタマイズの余地がありそうな肝。
例えば下の方のスレにsageでレスした時は、更新しないとか。
(今はレスしたものについては必ず作っている)
iframeは操作感が非常に悪くなると思います。
じゃー、今流行のajaxで
やりとりを見てると改善できる所は まだまだありそうですね
SSIで挿入で
>>314 どっかで叩かれていたような気も。。。
ひとまず、x 演算子のオペランドが逆です(哀)
#5.003時代のものだったかな?@最新のは5.008(5.8.x)
>>267 実際に bbsd が吐く index.html を直接見るのが一番手っ取り早いかも知れません.
ただ,index.html 以外に index.css というファイルも生成するようになってまして,
これは SETTING.TXT の更新を検出するとそれに合わせて更新するようになってます.
>>308 そういう <iframe> (or <object>) の使用というのも考えたことも
あるにはあるんですが,やはりスクロール等の操作性の問題などもあると思います.
まぁ,bbsd での index.html 生成は bbs.cgi のよりは軽くなってるかと思うので,
とりあえず大筋では従来のやり方を踏襲する形でもいいかなという感じでやってます.
318 :
root▲ ★ :2005/11/26(土) 13:11:55 ID:???0 BE:1276872-###
厨な質問をば。 if ($errmsgが10桁の数字だったら) というのは、Perlでどう書いたらいいのかしら。
>>318 $errmsg =~ /\d{10}/
かなぁ。。。
$errmsg + 1 < 10000000001
なんてのも有りかな?(文字列に対してもインクリメント出来るから)
320 :
root▲ ★ :2005/11/26(土) 13:18:34 ID:???0 BE:3283294-###
>>319 どもです。
上のほうで組み込んでみるです。
$errmsg =~ /^\d{10}$/ じゃないと、「aa1234567890」も真になっちゃわない?
322 :
root▲ ★ :2005/11/26(土) 16:45:47 ID:???0 BE:2463539-###
lengeh($_) == 10 || int($_) eq $_
あーリロードしてないしlengthだし
325 :
動け動けウゴウゴ2ちゃんねる :2005/11/26(土) 22:43:57 ID:zBsPZFmx0
なんかエラー出たんで貼っときますね ERROR:不明なエラーが発生しました。 (board:livejupiter key:1133001202 errmsg:No such file or directory) このメッセージをコピペして、運用情報板で報告していただけるとありがたいです。 誘導されてきました
>>326 それは意図的に1000までにさせてますが,1001以降も表示させた方がいいんでしょうかね?
書き込みフォームをなくすことで終了してるスレということを示すようにはしてますが......
今までどおりのほうがいいような
なぜ書き込めないのか、という理由の表示として、 あった方がわかりやすいかもしれない。 状況を理解してもらうためのメッセージだし。
331 :
root▲ ★ :2005/11/27(日) 22:22:12 ID:???0 BE:2554447-###
332 :
325 :2005/11/28(月) 00:34:23 ID:N5H/ccvWO
で
>>325 って何だったんですか?
なんとなくしかわからいんで教えてください。(´・ω・)
333 :
桶屋 :2005/11/28(月) 00:48:22 ID:0iPr7fvn0
>>326 もともと1000以降は表示されない仕様だったような、、
>>334 それは確か、read.cgi だったような。
index.html は、bbs.cgiのソースを見る限りそうは見えないです。
常にdatのお尻のBBS_CONTENTS_NUMBER行を表示していたと思う。
ありゃ、ほんとだ、、いろいろ見てみましたけど NHK教育実況板見たら100表示されてますね、、 だけど表示されてないように見えたのは気のせいか、、 すいません、
ここ扱いか知らんけど スレッドの並べ替えってやっぱローカルで処理させたほうがいいんじゃないの?
338 :
root▲ ★ :2005/11/29(火) 00:16:09 ID:???0 BE:5837388-###
>>339 F22で落ちた瞬間に書き込みがなされると、こうなるですね。
対策してみるか。
レスの時は、そのdatがなかったら書かない。
341 :
root▲ ★ :2005/11/29(火) 12:48:32 ID:???0 BE:730324-###
しかしこれは、リスクをぎりぎりまで減らすことはできても、 「ローカル雪だるま」をしない限り、なしにはできないですね。 従来のbbs.cgiでも、入り口のところでdatの存在は見ているです。 入り口ではあったのに、書くところで圧縮が入ってなくなったということで。 今の様子を見ていると、サーバ資源がどきどきしているlive系ではこの部分スルー(従来通り)で、 他ではこれ入れて、安全性を高めることにしよう。
10億回に一回以下の出来事になにかしてもしょうがないと思うです ほっとけ ほっとけ
>>342 10億回すか。
まぁ、10億かどうかはともかく、レアケースであると。
# というか、想定通りの回答で。
これまで、mnewsplusとかnews4vipとかmorningcoffeeとかで、出ているですね。 所詮、特殊な板か。
AFOX
いっそdatをSQL化して、.datは.htmlとかと同じように生成さぼる対象にしてはどうか。 で、read.cgiと同じパラメータ方法でdatの該当行だけとれるようにする。 そうしたらSQLのレベルで1000ロックとか排他とかできるようになりませんかね。
>>346 VIPのプロジェクトってやつですね。
あれ、どのくらい進んだのかな。
2ちゃんねるブラウザが使えなくなる
>>347 あれ?それ初耳です。数人であれこれ考えていて出てきただけなので。
もしよろしければ参考URL教えていただけませんか?
>>348 >>346 の範囲だと使えなくなるのではなくて、
現行のAPI使った専ブラでは読み込みの追従が遅れるだけ。
C レベルでの open() 関数呼び出し段階で スレ立て時: O_WRONLY|O_CREAT|O_EXCL (同一名ファイルが存在すれば EEXIST) レス追記時: O_WRONLY|O_APPEND (ファイルが存在しなければ ENOENT) というフラグ付きで呼ばれるようにできればファイルの存在確認とオープンが アトミックに行えるんですよね(bbsd ではそうしてます). となると,Perl では sysopen() を使えばいいのかな......
>>350 定数を利用するのには use Fcntl がいるですね♪
353 :
root▲ ★ :2005/11/29(火) 21:22:33 ID:???0 BE:1094843-###
>>348 レガシなdatとsubject.txtは、作るようですよ。< VIPのやつ
>>350 なるほど、なるほど。
で、戻り値でエラーハンドリングもすると。
ちなみに subject.txt 生成部分とかは、ワークのファイルで作って、rename() しているですね。
で、rename() でしくると、どうも500エラーになっているらしいと。
このへんも、何かうまいわざがあるように思っていたり。
flock() じゃなくて。
354 :
root▲ ★ :2005/11/30(水) 02:48:33 ID:???0 BE:1915373-###
こうかしら。 ・スレ立て時 use Fcntl; sysopen(FH, $path, O_WRONLY|O_CREAT|O_EXCL, 0666) or &DispError2(スレ立て失敗処理); ・レス追記時 use Fcntl; sysopen(FH, $path, O_WRONLY|O_APPEND) or &DispError2(レスができない処理); で、index.html とか subject.txt / subback.html とかを 安全にかつうまくこなすには、どういうアイディアが考えられるのかと。
355 :
root▲ ★ :2005/11/30(水) 03:02:25 ID:???0 BE:1642829-###
356 :
root▲ ★ :2005/11/30(水) 03:19:49 ID:???0 BE:5107878-###
これで、うまくいったようです。 これで、datの存在チェックうんぬんのところと、 追記してクローズした後でdatをchmod 666しているところをとばせました。 Over1000処理してchmod 555datをあとから追いついて chmod 666することがなくなったので、 より、安全にもなったはず。 # 新スレの場合、datがあったらエラー if($GB->{NEWTHREAD}) { sysopen(OUT, $filename, O_WRONLY|O_CREAT|O_EXCL, 0666) or &DispError2($GB,"ERROR!","ERROR:板飛びそうなので、またの機会にどうぞ。。。"); } # レスの場合、datに追記できなかったらエラー else { sysopen(OUT, $filename, O_WRONLY|O_APPEND, 0666) or &DispError2($GB,"ERROR!","ERROR:レスしようとしたらdatに書けませんでした。今dat落ちしちゃったかもです。"); }
357 :
root▲ ★ :2005/11/30(水) 03:23:34 ID:???0 BE:2553874-###
chmod 555datを => chmod 555したdatをあとから
358 :
root▲ ★ :2005/11/30(水) 03:31:12 ID:???0 BE:729942-###
481 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/30(水) 03:23:06 ID:vRY99gsD0 ?### # 051130 WriteDatFile改良、sysopenを使用しより安全確実な処理に by む
359 :
root▲ ★ :2005/11/30(水) 03:40:40 ID:???0 BE:2189164-###
When opening a file, a lock with flock(2) semantics can be obtained by setting O_SHLOCK for a shared lock, or O_EXLOCK for an exclusive lock. If creating a file with O_CREAT, the request for the lock will never fail (provided that the underlying file system supports locking). ふむ、、、。 しかし、どうなんだろう。
360 :
root▲ ★ :2005/11/30(水) 04:00:01 ID:???0 BE:1641863-###
これは、index.html / subject.txt / subback.html i/index.html(qb5とbbspinkのみ) といったファイルの話です。 今は、 index.html subject.txt … 一時ファイル(*1)を作ってそっちで作り、それをrename subback.html i/index.html … ロックなしでいきなり本ファイル作成(カミカゼ状態) に、なっているです。 で、animeサーバやmorningcoffee、news4vipなど、たくさんの書き込みがあるところで、 かつlive系と違ってスレ数が多くてファイル生成にコストがかかるところを中心に、 上記の一時ファイルがだんだんと溜まっていき、 例えばanimeサーバではメモリディスクを圧迫していき、何回か破綻状態になりました。 で、このへんをなんとかできると、こういったことも減るんじゃないかなと。 上のほうでもおじさんが書いていたような気がしますが、 まずはopenやsysopenのエラーチェックをまじめにやるべきなのかもですね。
361 :
root▲ ★ :2005/11/30(水) 04:04:35 ID:???0 BE:2189164-###
my $rename_status = eval { for (1..10){ rename($subtemp, $subject) and return 0; } return $!; } if (defined $rename_status) { &DispError2($GB,"ERROR!","ERROR:subject.txtは変更出来ませんでした。($rename_status)") } こんなかんじかな?
>>355 乙です.
>2番目のにも、0666 が必要すね。
mode (0666) が反映されるのはファイル作成時だけなので,
単に追記するだけなら不要です(指定しても実害はないでしょうが).
で subject.txt 等の更新処理ですが,ロックなしだと例えば
bbs.cgi-1: subject.txt 読み込み
bbs.cgi-2: subject.txt 読み込み
bbs.cgi-1: 1111111111.dat レス数インクリメント
bbs.cgi-2: 1111111112.dat レス数インクリメント
bbs.cgi-1: subject.txt.1 に書き出し
bbs.cgi-2: subject.txt.2 に書き出し
bbs.cgi-1: subject.txt.1 -> subject.txt にリネーム
bbs.cgi-2: subject.txt.2 -> subject.txt にリネーム
のようになると「1111111111.dat レス数インクリメント」は反映されなく
なってしまいますね.これならいっそのこと,一時ファイル名は固定にして
O_EXCL 付きで sysopen() して,失敗したら subject.txt の更新処理自体
スキップするようにしてしまってもいいかも知れません.
きっちりやるとしたら,やはりロックせざるを得ないでしょう.
ちなみに,bbsd ではファイルロックより軽い mutex で排他制御してます.
# もっとも,この前の負荷試験では mutex の保護下でやってるのに
# 1000 越え発生という奇妙な現象も起こってしまったので,
# その点は要観察なわけですが......
364 :
root▲ ★ :2005/11/30(水) 10:55:46 ID:???0 BE:2919348-###
>>362 そんなようなことを考えていたです。
ただ、エラーにするんじゃなくて、たぶん単にあきらめて一時ファイル消して次に行くかんじで。
(新スレの時はもうちょっといい加減じゃないほうがいいかもですが)
>>363 > のようになると「1111111111.dat レス数インクリメント」は反映されなく
> なってしまいますね.
そですね。
いわゆる「不可視スレ」ができちゃうのも、同じ原因だとにらんでいるです。
news4vip morningcoffee newsplus とかで起きやすいことも、それを裏付けているかんじで。
> これならいっそのこと,一時ファイル名は固定にして
> O_EXCL 付きで sysopen() して,失敗したら subject.txt の更新処理自体
> スキップするようにしてしまってもいいかも知れません.
これ、直感的にはよさげな気がしますが、
いきなり全サーバに入れるのは、ちとどきどきするですね。
ex11 ex14 anime ぐらいで、ちょっと試したいなと。
あと固定にするとしても、新スレの時とレスの時では、
一時ファイル名として別のを用意したほうがいいような肝するです。
なんてことを、だらだらと。
追い越しのことだけは忘れないでくださいネ
366 :
root▲ ★ :2005/11/30(水) 13:38:40 ID:???0 BE:2554447-###
>>363 > ちなみに,bbsd ではファイルロックより軽い mutex で排他制御してます.
CPANしてみると、Win32::Mutex というのしかなさげですね。ううむ。
流れとしては 1) あんま排他とか考えない太古代 (2001) 2) 排他しまくりで壊れない中生代 (2002-) 3) 排他なんてやってる余裕なし、壊れてもok の戦国時代 (2004-) となっています。 わざわざ、排他は全部はずしたのだー
簡単に言えば排他等を組み込んでコスト(お金)を払うのもひとつの戦術ではあるけど、 それによって負荷増大、キャパシティ減少になったとき それをやめて現状復帰が容易なようなコーディングを切に希望
369 :
root▲ ★ :2005/11/30(水) 13:48:18 ID:???0 BE:1368353-###
>>367 はい、知っているです。
bbs.cgiにばっちり、コメントで残っているですね。
3) は、live8 とともに私もリアルタイムで経験したです。
で、そろそろ世代交替を狙っているということすね。
雪だるまのほうは、こうなったのかな。
4) コストの低い排他制御で、スマートにこなす現代(2005-)
従来バージョンのほうは、2006年かなぁと。
370 :
root▲ ★ :2005/11/30(水) 13:49:33 ID:???0 BE:1277827-###
>>368 には、とても同意するです。
ようは「そんなに排他して(コストかけて)、いったい何を守るの?」っていうのを
忘れないようにしないといかんと。
371 :
root▲ ★ :2005/11/30(水) 13:50:44 ID:???0 BE:3830876-###
で、flockでやる方法は「いやーんばかーん」なわけで、 もうちょっと「はやいうまいやすい」方法は、ないもんかなと。
あと 大きな流れとしては「雪だるま」に全部置き換え、 と思っているんで、旧世代の捨て去られる bbs.cg の面倒見ても 意味内科と、
373 :
root▲ ★ :2005/11/30(水) 13:54:24 ID:???0 BE:4377986-###
>>374 「過去ログ倉庫はこちら」のところの話かしら。
baseでtarget指定してるからね。 そこだけ_selfにでもするか。
1.一時ファイルに新スレをどんどん追加 2.一時ファイルからsubject.txtを生成 …ダメかな?
378 :
root▲ ★ :2005/12/01(木) 01:33:22 ID:???0 BE:2919348-###
リネーム部分 改良案
#############################################################################
# ファイルのリネームを行う
# 入力: $src、$dst
# 戻り値: 0またはエラーメッセージ
#############################################################################
sub TryRename
{
my ($src, $dst) = @_;
my $status = undef;
my $count = 100;
my $debug = 0;
# ex11で実験することにする
# 他サーバには、うまくいったら入れよう
if($ENV{'SERVER_NAME'} =~ /ex11/)
{
$debug = 1;
}
# 100回、renameを試行してみる
for (1..$count)
{
rename($src, $dst) and return 0;
}
# だめだったらステータスを保存する
$status = $!;
# デバッグしている時は、ユーザの画面にその旨表示する
if($debug)
{
print "bbs.cgiデバッグ中。。。<br>\n";
print "renameに失敗しましたが、そのまま処理を続けます。<br>\n";
print "($src)($dst)($status)<br>\n";
print "<br>\n";
print "このメッセージをコピペして、運用情報板の以下のスレッドに報告していただけるとありがたいです。<br>\n";
print "<br>\n";
print "bbs.cgi再開発プロジェクト7<br>\n";
print "<a href=\"
http://qb5.2ch.net/test/read.cgi/operate/1130918407/\ ">
http://qb5.2ch.net/test/read.cgi/operate/1130918407/l50</a ><br>\n";
print "<br>\n";
}
# デバッグしてない時は、ゴミファイルを消す
else
{
unlink($src);
}
return $status;
}
379 :
root▲ ★ :2005/12/01(木) 01:34:03 ID:???0 BE:2463539-###
これに対応したbbs.cgiを、ex11に入れてみよう。 で、1日動かしてみると。
380 :
root▲ ★ :2005/12/01(木) 01:40:03 ID:???0 BE:1368353-###
ex11に入れてみた。 狼のスレに、お知らせしてこよう。 これでまずは、現状把握と。 うまくいけば、おじさんが手で消している一時ファイル消去の頻度が、減るかも、かも。
問題なさそうなので、一番ゴミファイルが残っているanimeサーバにも入れてみた。
>>380 というわけで、おやすみなさい。
中間報告 ・animeサーバは、切り替えて以降500エラーはなしでした。 ・ex11は、出ているようです。 メッセージが悪さしているかもしれないので、 ex11でも、画面にメッセージが出ないようにしてみた。 試験継続で。
なお、rename試行回数を100回から1000回にしてみた。< ex11
だらだらと観察中。 -rw-rw-rw- 1 ch2ex11 ch2 16384 Nov 30 18:54 237491133170255.tmps -rw-rw-rw- 1 ch2ex11 ch2 32768 Nov 30 19:41 252251133408443.tmps -rw-rw-rw- 1 ch2ex11 ch2 0 Nov 30 18:33 443801133404390.tmp ううむ、きりのいい数字が。 このへんにヒントがあるのかもね。
banana723.maido3.com から、アクセスがあるようです。 どこか、臭いかいでいる板があるのかも。 banana723.maido3.com のDNSキャッシュも、リスタートいただけますか。 他には、2ch内部からのアクセスはないようです。
いらないってこと?
>>387 いんどる = 誤爆する
です。
わかりにくくて、ごめんなさい。
ということで、リスタート自体は必要になります。 よろしくお願いいたします。
ということは、リスタートが要るのね
すいません
前スレでも検討中だった2ch規約承諾問題ですが、まだ
> 消費者契約法上、確認を取ってクッキーを発行するのならば契約の成立の主張を主張するのならば分かるが、確認取る前の表示の段階でクッキーを発行しているんだぜ。
> パンフ送れば申し込まなくても契約成立みたいな感じ。
>
> 当然、俺はこの書き込みの著作権を主張するし、2chに2ch以外での著作権の複製権があるなんて俺は今でも認めていない。
>
> 匿名組合との契約書で、契約書を貰った段階で申し込みを止めたら契約は不成立だよな。
> 2chのクッキーの発行のタイミングがおかしいんだよ。確認画面を表示したら契約成立って考えだろ。
> そんな訳ないじゃん。
ttp://live19.2ch.net/test/read.cgi/stock/1131996799/501 こんなたわけた理屈を言っているコテハンがいますので、何とか対処のほどよろしくお願いします。
いえいえ どういたしまして。
animeサーバは、全くゴミファイルが出なかったようです。 %ls */*.tmp ls: No match. %ls */*.tmps ls: No match. 狼はまだ出ています(減った気がするけど)。 %ls */*.tmp morningcoffee/443801133404390.tmp morningcoffee/830051104688508.tmp %ls */*.tmps morningcoffee/131501133424226.tmps morningcoffee/593171133422110.tmps morningcoffee/192241133416590.tmps morningcoffee/626701133426337.tmps morningcoffee/237491133170255.tmps morningcoffee/725821133439300.tmps morningcoffee/252251133408443.tmps morningcoffee/832991133434947.tmps morningcoffee/322941133409115.tmps morningcoffee/960071133431171.tmps morningcoffee/364681133435025.tmps 上記のすべてのファイルが16384の倍数(0倍も含む)なので、 ひょっとすると、printが異常終了している、、、のかも。
ちなみに現在は、ex11でもごみファイルを消すようにしています。(
>>378 について)
ごみファイルを消す => renameに失敗したらごみファイルを消す
unlink($src) while -f $src; してみるとか? Rock54方面で、わざわざこんなことした覚えがあるです。。。@FreeBSDだとちゃんと消してくれないようなふいんき?
>>397 えっと、renameしても元が消えないってことですか。
>>398 あっと、renameではなくってunlinkの方です。。。
あと気になるのは未だにRock54/BBQの起動スクリプトがちゃんと終了せずにzombieになっちゃうことかなぁ。@cron起動の時だけ
>>399 まじですか。
unlink1回したんじゃ消えないことがあるってことすか。うーむ。
>>397 は偶発的な事象により無限ループに陥る可能性のあるコードなので、
例によって for 文回し(
>>378 参照)にしようかと。
もう報告して下さいは終わりですか@ex11 -------------------- 書込み中・・・ -------------------- 書込みに失敗した模様 -------------------- HTTP/1.1 500 Internal Server Error -------------------- 書き込みは反映されてます
>>402 どもです。終わってないっす。
やっぱり、dat追記後の後半の処理でエラーということですか。
404 :
root▲ ★ :2005/12/03(土) 01:50:54 ID:???0 BE:3648858-###
animeサーバで2日ぐらい動かしてみたけど、とりあえずゴミは残っていなかったので、
今よりもコストが上がらない範囲ということで、
>>378 のデバッグ部分を取ったものを入れてみた。
やっぱ、unlinkしてもunlinkされないからそこまでチェックするってのは
あまりにもあれだし、コストも無駄そうな気がするし。
>>405 read.cgi というか、サーバの設定ですね(対応したです)。
忙しい中どうも乙
409 :
root▲ ★ :2005/12/07(水) 16:29:09 ID:???0 BE:4925096-###
# 051207 ItabetsuSpecialサブルーチン化、板別の特殊処理
# ProcessMaru サブルーチン化(●のプロセス部分)、
# NanashiProcess => NanashiReplace4Heaven 名称変更
# ProcessNanashi サブルーチン化(名無し補完処理)
# FormInfoCheck サブルーチン化(フォーム情報のチェック)
# これでbbs_mainからのサブルーチン化は概ね終了のはず by む
http://qb6.2ch.net/test/read.cgi/operate2/1131481715/508 >408
これ、どんなものなんでしょか。
410 :
root▲ ★ :2005/12/07(水) 17:58:27 ID:???0 BE:3192375-###
クリーンナップが一段落したので、久しぶりに、プロファイリングしてみた。
qb6で●なしBEありで、sageでレス。
予想通り、index.html を作るところが一番重かった。
IsKoukokuは、相対的に相当軽くなっている(DBのSJIS化等が効果発揮と思われ)。
これがbbs.cgiからまるごとなくなるんだから、雪だるまはやはり効果絶大ということで。
%dprofpp tmon.out
Total Elapsed Time = 0.687158 Seconds
User+System Time = 0.410596 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
24.3 0.100 0.136 1 0.1005 0.1356 main::MakeIndex4PC
9.50 0.039 0.265 1 0.0389 0.2646 main::bbs_entryXXX
9.50 0.039 0.163 30 0.0013 0.0054 main::BEGIN
5.60 0.023 0.023 1 0.0234 0.0234 main::IsKoukoku
5.60 0.023 0.023 20 0.0012 0.0012 main::GetDatInfo
5.60 0.023 0.022 10 0.0023 0.0022 LWP::UserAgent::BEGIN
3.90 0.016 0.016 1 0.0156 0.0156 Net::
HTTP::Methods::my_read 3.90 0.016 0.015 74 0.0002 0.0002 main::PutLines
3.90 0.016 0.015 2 0.0078 0.0076 URI::implementor
3.90 0.016 0.052 3 0.0052 0.0174 Net::DNS::Resolver::UNIX::BEGIN
3.90 0.016 0.037 11 0.0014 0.0033 Net::DNS::Resolver::Base::BEGIN
3.65 0.015 0.020 1 0.0150 0.0198 main::initFOX
3.65 0.015 0.028 21 0.0007 0.0013 main::MakeWorkFile
1.95 0.008 0.007 72 0.0001 0.0001 strict::bits
1.95 0.008 0.008 1 0.0078 0.0078 DynaLoader::dl_findfile
報告いる?いらなきゃスルーで -------------------- 書込み中・・・ -------------------- 書込みに失敗した模様 -------------------- HTTP/1.1 500 Internal Server Error -------------------- 書き込み反映されてました
せっかくだからもう一回 -------------------- 書込み中・・・ -------------------- 書込みに失敗した模様 -------------------- HTTP/1.1 500 Internal Server Error -------------------- 書き込み反映されてなかった
>>411-412 えっとえっと、
どの板で、できればどのスレで起きたかも、
教えていただけると。
>>411-412 とは別人だけど昨日morningcoffeeで2回500エラー出ました
確か2回とも書き込みは反映されたはず
>>408-409 2ちゃんねる検索よりは期待できるかと思うけど
負荷がふえるだけだったら意味ないか
>>415 旧式bbs.cgiのように継ぎ接ぎだらけのようなのでかなりオススメ出来ないです(w
419 :
root▲ ★ :2005/12/14(水) 15:42:02 ID:???0 BE:5746379-###
またしても、ご相談です。 Perlで、結果が返ってこなくてもブロックしないgethostbyaddr()をするには、 どうしたらいいんでしょうか。 SpeedyCGI前提なので、alermするのはなしで。 BBx のところみたいにNet::DNS 使う? それとも、何かほかにもっとうまい方法があるのかしら。
某所のやつで・・・
$ip_address = "219.101.194.170";
@addr = split(/\./, $ip_address);
$packed_addr = pack("C4", $addr[0], $addr[1], $addr[2], $addr[3]);
($name, $aliases, $addrtype, $length, @addrs) = gethostbyaddr($packed_addr, 2);
print $name."\n";
反応無し orz
>>419 ブロックって?
そういやSpeedyCGIを使った方のソースって配布してないのか?
>>419 if文を使って、結果が返ってこなかったらスルーするような関数を作っちゃったらどうよ
422 :
root▲ ★ :2005/12/14(水) 17:46:23 ID:???0 BE:3283294-###
>>420 DNSが死んだり相手側の設定が悪かったりすると、
> ($name, $aliases, $addrtype, $length, @addrs) = gethostbyaddr($packed_addr, 2);
ここで結果が返ってこなくて、待たされちゃうわけです。
つまり、ここで止まっちゃうと。
例えば、5秒待って結果が来なかったらあきらめて、
次の行にいってほしいわけです。
>>421 管理人の方針により、bbs.cgiのソースは非公開で。
timeout させるとか?
>422 これくしー 1.08 の作者に任せましょう
と思ったら alerm 使ってるようだ bbs.cgiが使ってるdns側で何かしないとダメっぽい
426 :
root▲ ★ :2005/12/14(水) 18:25:21 ID:???0 BE:2553874-###
いや、Net::DNS 使えばできるのはわかってるんですが、 手抜きしちゃおうかなとか思っただけです。 ぼちぼち、Net::DNS使う方法に変えるです。
モジュールから都合の良いところだけを切り貼りしてもってくるのは良くやるなぁ。
>>428 そのページは前からあるのを知っていて、
その問題がないバージョンを入れてあるわけですが、
それでもどうも、うまく動かないみたいです。
で、alermでやるのは全面的にやめているはず。
TimeOutを設定したいとなるとやはりNet::DNSが良いかと思うのですです♪@udp_timeout
gethostby*() と同じような感覚で使える Net::DNS 用のラッパ関数を作るとか.
@SIGで強引に…(w
1000に達したスレがまだ見れるんですけど、●を買う必要がなくなったって事ですか?
435 :
root▲ ★ :2005/12/23(金) 14:50:20 ID:???0 BE:1642829-
リモホの逆引きで、すくんでいるなぁ。< 一部サーバ このへんも、ぼちぼちってかんじかなと。
436 :
root▲ ★ :2006/01/11(水) 16:49:55 ID:???0 BE:1095034-
BBS.CGI - 2006/01/11 650 名前: ◆MUMUMUhnYI [sage] 投稿日:2006/01/11(水) 16:47:41.95 ID:lEMnCwRm0 ? # 060111 トラックバックで受け取ったものから \r を除去するコードを追加 by む
>>436 いままでやってなかったのが不思議だ。
(もしや LFは消してたけどCRは放置してた とか?
>>437 そうなっていたです。
(通常のフォームを読むところは、ちゃんとCRも除去している)
440 :
root▲ ★ :2006/01/13(金) 00:08:02 ID:???0 BE:7387799-
>>439 微妙にbbs.cgiスレじゃない気がするんで、特化型スレでやるです。
前に試した時は、softupdatesのほうがasyncよりも好成績という
ちょっと意外な結果が出たのです。
441 :
root▲ ★ :2006/01/13(金) 02:15:49 ID:???0 BE:4377986-
660 名前: ◆MUMUMUhnYI [sage] 投稿日:2006/01/13(金) 02:13:28.46 ID:ERBncrZx0 ? # 060113 トラックバックの時は★でもIDが出るように(060107で入った虫の修正) # トラックバックでもSamba24/Rock54/BBQを有効に(機能追加) by む
>440 その時のOSの問題でMFSのasyncダメポだったのかも。 後は特化スレで。
443 :
root▲ ★ :2006/01/15(日) 02:30:16 ID:???0 BE:5837388-
bbs.cgi を、スレッド毎のワーカプロセス化したら 排他処理周りが一気に楽になるんでね? と思った折れであった。 実況系ではてきめん効きそうだけど 爆撃系には弱くなりそ。
>>445 雪だるまで使っているbbsdって、まさにその思想だったりするですね。
で、期待通りに絶大な効果を発揮したわけですが、
どうもOS(FreeBSD)のマルチスレッド周りに難ありのようで、
現在シングルプロセスシングルスレッドで動作。
でも、これまでの数倍はパフォーマンスよくなったです。
>>446 それは失礼しゃした^^;
陰から応援し続けマッスル
>>445 台数も数倍つかっているから、、
なかなか評価が難しいんですが、
限界性能をしりたいなぁというとこですかねぇ
DragonFlyを使って「サーバーが安定しねぇ」なんて書こうものならhrsさんが激怒しそうだ。
>>449 7-current使う方がまだ安定してそう
452 :
root▲ ★ :2006/02/18(土) 04:03:46 ID:???0 BE:3648858-#
あとで、VIP931のところを確認してみるか。 あと、BBEのところも気になるかも。 とメモメモ。
453 :
root▲ ★ :2006/02/19(日) 08:33:07 ID:???0 BE:365322-#
>>452 vip931 のところは、取れなければ臭くないことにするというコードを追加した(はず)。
BBEのところは、まだ。
454 :
root▲ ★ :2006/02/19(日) 08:40:17 ID:???0 BE:547632-#
BBEのところ見てみた。 タイムアウト処理は入っている(ありのサブルーチン呼んでいる)ですね。 これなら、すぐに対応しなくても(とりあえず)いいかなと。 頻度が上がってくれば他のBBx同様、非常呼び出しストッパーを組み込む感じで。
456 :
root▲ ★ :2006/02/24(金) 23:53:48 ID:???0 BE:2554447-#
>>455 これって例の、ascii2d (だっけ)で出回っていたやつの亜種ですか。
つまりリモートからbbs.cgi叩いて投稿すると。
で、いわゆるRockにかからないようなパターンで来ると。
>>456 スレタイトルや名無しの変更などに、こまめに亜種作って対抗されているような気がします。
459 :
root▲ ★ :2006/02/25(土) 00:19:59 ID:???0 BE:2463539-#
>>458 つまりいわゆる「いたち」だと。
それはたぶん、bbs.cgi で対応してもそうなるということかも。
うーん。
>>460 専用スレでぁゃιぃファイルの情報を集めて解析していただいたりアンチウイルスベンダーに送ったり、
ぁゃιぃファイルを踏まないように啓蒙したほうがいいと思います。
作者を呪うくらいしか出来ないか。 亜種を簡単に作れるって事は、遠くない将来、全板規模で。。。。
463 :
root▲ ★ :2006/02/25(土) 00:40:24 ID:???0 BE:1641863-#
>>462 仮にそうなったら、またみんなで踊るしかないかなと。
>>458 日付が変わる頃に丁度書き込みの調子が変わってるから時限かも知らん
>>464 もしかしたら、書き込む内容を毎日どっか別のところから取ってきて変えてるのかなあ
いや、名前欄と内容は、ある程度のパターンをランダムに書いてるんじゃないかな。 同一IDで一時間以内に違う名前欄、内容で書き込みがある。
>462 広告マルチポストの方でそれらしき投稿が2種類観測されていたり,,です。
一部をRockしてますー。止めることは目的にしてませんがー。 文字バラバラのランダムのと、複数行書いてるのは同じウィルス スクリプトですねー。ホストが同じものを並べてみるとわかるんですがー。 感染してるホストは100台なんてもんじゃないと思いますー。 Rockされてるのは一部ですがー、それでもホスト情報は100個をとっくに 越えてる気がしますー。 あとはー、トロイの木馬よろしく、作成者が端末に修正版を送り込めるのかもー。 でないと、同時にあの数に感染させたりは無理ですしー。 亜種が新たに配布されてるんじゃなくてー、そこまでやってる可能性大ですー。 もしその推測が当たってるとすると、かなり周到に準備して感染端末 増やしてたんでしょうねー。おそろしやー。 小手先の対応じゃなく、感染端末を地道に潰していくしかないようなー。 けど、プロバイダが協力してくれるかなー。
まー、地道にBBQしていくという手もありますけどねー。 何割かは固定か半でしょうからー、それで止まるものもあるかもー。 ホストが切り替わっちゃうものは対処無しですがー。
なるほど。 だから半角二次元と同人なのか。 たしかに感染させやすそう。 画像に混ぜて……
爆撃がとまっているスレに削除かけると、次の瞬間から爆撃が再開されますね。 (特定のIDでは無い) 手の込んだ事しやがる。
>>472 500KB逝って書き込めなくなったスレのレスを削除したってことはない?
いんや。 複数のスレッド&他の人の処理も確認したけど、削除直後にコピペの書き込みが始まるみたい。
>>475 datの更新時間を見てるんじゃないですかねー。
477 :
:2006/02/26(日) 14:58:59 ID:jNyX+bV/0
2chから書き込みする人のDNS逆引きがタイムアウトすると500 Internal Server Error になって書き込めないっぽいです。 500が返ってくるまでかなりの時間がかかるので500になってるのはなかなか気付かないけど。
>>478 ですね。
普通に gethostbyaddr() してるからと。(
>>419 あたりから)
本文の量に最低ラインを設けたら(3行とか64バイトとか) 負荷はどうなるんだろとかふと思った。 人間に入力の手間をかけさせる負荷分散?
481 :
root▲ ★ :2006/03/06(月) 17:30:35 ID:???0 BE:4104959-#
>>480 上限じゃなくて(これは既にある)下限を設けるということですか。
できなくはない気がするけど、そうしたい理由は何だろうなと。
実況とか祭りの発端とかでの「きた」だけで数百レス、みたいな状況を回避しやすくなるとか。 それ以上の効果は望めないだろうけど……。
483 :
root▲ ★ :2006/03/06(月) 17:53:31 ID:???0 BE:4925096-#
仮にそういう機能入れても、 live2ch とかに自動的に食う行を保管する機能が入るだけの予感が。
484 :
root▲ ★ :2006/03/06(月) 17:53:58 ID:???0 BE:4378368-#
ありゃ、変換むちゃむちゃ。 空行を補完で。
逆に巨大AA貼られるだけだな
行数制限+投稿時の容量制限
487 :
480 :2006/03/07(火) 15:02:25 ID:pIz9t1pX0
488 :
root▲ ★ :2006/03/20(月) 15:07:56 ID:???0 BE:3192375-#
# 060320 携帯用ブラウザ(携帯側IPアドレスと固有情報を正しくくれるもの)に対応 # IDの種は固有情報、各種規制にはIDの種を使用、BBM/BBNを参照 # 識別マークは Q (新設) by む まずは qb5 に。 これで、試してもらうと。
489 :
root▲ ★ :2006/03/20(月) 15:44:58 ID:???0 BE:1276872-#
個人的には新しい識別マークを入れる必然性がわからないけど たぶん何か深い意味があるんだろうな
乙でQ
492 :
動け動けウゴウゴ2ちゃんねる :2006/03/30(木) 07:19:11 ID:Zqd5sOFo0
2chに投稿するときに「管理者」に著作権が帰属することに同意するっていう表現があるけど 掲示板の規制(アクセス規制)やperlスクリプト作成に携わっていることも「管理」のうちといえるので FOXあたりは、ひろゆきに「電車男」の印税を(一部)請求することは法理論上は可能みたい もし、ひろゆきが請求されたくなかったら、借りるサーバー会社を分散させるなどして対処することだな
493 :
動け動けウゴウゴ2ちゃんねる :2006/03/30(木) 07:22:17 ID:wFXxYUYW0
法律上は著作権の時効は、著作権者が死んでから50年だから、けっこう長い
むかしみたいに「いまの時間帯は100レスづつしか表示できません」 っていうのを復活してみては?
495 :
動け動けウゴウゴ2ちゃんねる :2006/03/30(木) 08:33:28 ID:t9bEeW0c0
なぜ?
496 :
動け動けウゴウゴ2ちゃんねる :2006/03/30(木) 17:39:03 ID:zvBpulp10
>>495 アクセス規制で負荷を減らすよりも
表示できるレス数を50〜100レス程度に制限したほうが負荷は減ると思う
勘違いをしてる上にスレ違いだよ。
今何かいじってまつ? 投稿日:2006/03/32(土) pc8鯖で確認でつ (・∀・)ニヤニヤ
ありゃここもかーw (・∀・)ニヤニヤ
>>500 寝惚けてますた。しみましぇん・・・(´・ω・`)
502 :
動け動けウゴウゴ2ちゃんねる :2006/04/05(水) 14:53:09 ID:Jp6bTymr0 BE:196340437-
>>501 乙。
bbs.cgiの再開発に全力を尽くそうジャマイカ
503 :
動け動けウゴウゴ2ちゃんねる :2006/04/05(水) 15:39:43 ID:+JQfVRYy0
13名不動明王乙!
ふと思ったんだが、 書き込み前に「書き込みキー」を入力させるようにしたらどうよ。 「書き込みキー」は、定期的に画像形式で提供(板看板につけるとか) bbs.cgiの変更は簡単だけど、専ブラ修正はきついか・・・ (携帯からの書き込みが大変そうだ・・・) その前にスレ違いだな
507 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 12:17:13 ID:usWGBQsV0
508 :
root▲ ★ :2006/05/27(土) 16:26:09 ID:???0 BE:1916137-#
509 :
ちょろ ★ :2006/05/27(土) 16:31:03 ID:???0
510 :
root▲ ★ :2006/05/27(土) 16:32:35 ID:???0 BE:1276872-#
>>509 そうですね。それは既に裏方面の規定路線と。
たぶんですが、固有番号と紐付けするかんじなのかなとか。
511 :
root▲ ★ :2006/05/27(土) 16:40:04 ID:???0 BE:547632-#
512 :
root▲ ★ :2006/05/27(土) 16:40:25 ID:???0 BE:1277827-#
Cookie なしだと書けちゃうの?
513 :
ちょろ ★ :2006/05/27(土) 16:47:31 ID:???0
いつか来る日が来たって事で、 以前にVIPとかでテストして駄目だしはしておいたはずです < 専ブラのくっきー
514 :
root▲ ★ :2006/05/27(土) 16:50:43 ID:???0 BE:1460328-#
>>513 ですね。
ただ、今回そうはなっていないという噂も。
515 :
ちょろ ★ :2006/05/27(土) 16:51:59 ID:???0
そのうち落ち着くところに落ち着くでしょう、きっと。
クッキーじゃないっぽいな
517 :
root▲ ★ :2006/05/27(土) 16:55:10 ID:???0 BE:1095034-#
519 :
root▲ ★ :2006/05/27(土) 17:05:19 ID:???0 BE:1916137-#
クッキーを食う・送る部分の仕様は、 前のものに戻るというか、さらに変更される可能性が大です。
520 :
名無しさん :2006/05/27(土) 17:05:55 ID:lHSYPEbI0
試してみた。 クッキー送らなくても書けました。
472 名前:動け動けウゴウゴ2ちゃんねる[sage] 投稿日:2006/05/27(土) 18:00:21 ID:OAMS9SRA0
クッキーって、bbs.cgi から吐き出されるクッキー確認にくっついているものを、
そのまま返せば良いんですよね?
475 名前:ひろゆき[] 投稿日:2006/05/27(土) 18:02:44 ID:i3Z0R8NC0 ?#
>>472 クッキーじゃなくて、formの内容をPOSTしてもらえると。
523 :
root▲ ★ :2006/05/27(土) 19:19:00 ID:???0 BE:1916137-#
ほくじょうねぇ。
525 :
root▲ ★ :2006/05/27(土) 19:20:59 ID:???0 BE:1368353-#
どうやるのがいいのかしらね。 通常のIE等で書き込みをする場合、こういうフローになるわけです。 (これまで) 1回目の bbs.cgi ・クッキー持っていない => 投稿確認画面が出る 2回目の bbs.cgi ・クッキーを持っている => 書き込める
っと すいやせん,へへっ ついでに なんかねぇ。 ほくじょうねぇ。 こうかねぇ。
527 :
root▲ ★ :2006/05/27(土) 19:23:55 ID:???0 BE:547823-#
(今の、管理人が書いたアルゴリズム) (IEで画面遷移どおりに書くことを想定) 1回目の bbs.cgi ・クッキー持っていない ・呪文を唱えていない => 投稿確認画面が出る 2回目の bbs.cgi ・クッキー持っていない ・呪文を唱えている => 書き込める
そもそもCookieの必要性とはなんなのかという疑問はありますが。 「規約に同意しなければクッキーを覚えない」かつ「クッキーがなければ書き込めない」 を実装するなら、今まで2段階だったのを、3段階にして、 1段階目 規約に同意するかどうか <input type=hidden name=hana value=mogera> 2段階目 書き込み確認 Set-Cookie 3段階目 書き込みました にすればいいのでは。
んでこれだと2chブラウザは最初から hana=mogera を送信するだろうから規約画面は見ないわけですが たとえばOpenJaneとその派生はもともと、規約画面は自動的に同意しちゃっています。 そういうことを考えると、別にこれでもいいかなと思います。
530 :
root▲ ★ :2006/05/27(土) 20:24:18 ID:???0 BE:1277827-#
クッキーをチェックする bbs.cgi を qb5/qb6 に入れた。 しかし、超暫定版。 問題なさげなら、配布で。
531 :
root▲ ★ :2006/05/27(土) 20:26:05 ID:???0 BE:5107878-#
>>528 なるほど、3段階ですか。
悪くないアイディアかも。というか、本筋に近そうですね。
クッキー握っていれば、2段階目はスキップと。
引越しのごたごたが終わったら、考えてみるです。
>>530 金で書き込みテストしましたが、やはり同じようにループでした。
533 :
root▲ ★ :2006/05/27(土) 20:28:42 ID:???0 BE:2188883-#
>>532 ループ問題をクリアしたものだけが、このテストに参加できますです。
534 :
root▲ ★ :2006/05/27(土) 20:30:47 ID:???0 BE:4104959-#
つまり、 ・ループバージョンのbbs.cgiは、クッキーチェックがスキップになってしまう ↓ ・クッキーチェックを別途追加 という流れです。 従来通りにクッキーを送っている専用ブラウザなら、 対応版を使っていて、かつもらったクッキーを送ってもらえるなら、 qb5 ではエラーにはならないはず。
536 :
root▲ ★ :2006/05/27(土) 21:06:24 ID:???0 BE:5837388-#
一点。
質問・雑談スレ224@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1148709150/699 699 名前:ノtasukeruyo ◆TWARamEjuA [sage] 投稿日:2006/05/27(土) 21:01:52 ID:4mMa4nT80 ?#
>>673 Set-cookies: で吐き出した物そのものかと?
--------------------------------------------------------------------------------
Monazilla/1.00 MAKA/1.0b
これですが、
bbs.cgi で Set-Cookie: する
そのクッキーを食ったかどうか、*そのbbs.cgiで*チェックする
なんていうこと、できるのかしら。
次の bbs.cgi ならできる(今までのもの)わけですが、、、。
できるなら、いい方法が知りたいです。
537 :
root▲ ★ :2006/05/27(土) 21:08:15 ID:???0 BE:2553874-#
で、これが大変だと思うので、
>>528 がいいかなとか思ったりするわけです。
今までのルーチン(2と3)に、1を追加する感じで。
538 :
ひろゆき :2006/05/27(土) 21:09:49 ID:i3Z0R8NC0 BE:94853-#
>bbs.cgi で Set-Cookie: する そのクッキーを食ったかどうか、*そのbbs.cgiで*チェックする 必ず食うんだったら、チェックする必要ないような。。
539 :
root▲ ★ :2006/05/27(土) 21:11:33 ID:???0 BE:1642829-#
で、手段が先んじるといけないので、目的を先に書いておくと、 管理人は、投稿確認画面から承諾しないで、 ブラウザでバックして、次に再度書き込むことで、 投稿確認画面をスキップできてしまうことを、不満に思っているわけです。 で、これを防ぐために、 投稿確認画面のフォームに、ちょっとした呪文を入れた。 で、この呪文がないと、書けなくしたわけです。 この副作用で現在、クッキーがなくても 呪文さえ唱えれば、投稿できる状態になっていると。
なるほど、BEみたくするのか 1段階目で例のCaptchaとか使えば飛ばせなくなるけど凶悪すぎるだろうな
541 :
root▲ ★ :2006/05/27(土) 21:12:09 ID:???0 BE:5746379-#
>>538 つまり、クッキーのチェックは不要ということなのかしら。
>>528 の対応だと、えーと。
今回ハナモゲラを送信するようになった専用ブラウザたち
→昨日までと同じ感じで、クッキー確認が出てから書き込むようになる。
まだ更新前の専用ブラウザたち
→書き込めない(クッキー確認ループになる)
IEなど普通のブラウザ
→
>>528 のように三段階になる
という感じになりますかね。
543 :
root▲ ★ :2006/05/27(土) 21:13:57 ID:???0 BE:2554447-#
で、ひとつ、リーガルなことの確認ですが、 この呪文をくっつけたフォームで送ることは、 投稿確認画面にある規約を、全部承諾したことと等価である、 ということにしたいんですよね、きっと。
544 :
root▲ ★ :2006/05/27(土) 21:14:30 ID:???0 BE:1459744-#
545 :
ひろゆき :2006/05/27(土) 21:14:47 ID:i3Z0R8NC0 BE:252285-#
クッキーが重要なのではなくて、 承諾ボタンを押したときにしか得られないデータが 投稿者から送られてくれば、承諾したということになるってのが重要かと。
546 :
root▲ ★ :2006/05/27(土) 21:15:55 ID:???0 BE:5746379-#
>>545 なら、別に hane=mogera を送ればクッキーが要らない仕様でも問題ないですね。
>>528 の1行目に書いたとおりです。
548 :
root▲ ★ :2006/05/27(土) 21:17:24 ID:???0 BE:1642829-#
あ、
×
>>545 ということですか。
○
>>543 ということですか。
で、そのコンセプトなら、
フォームデータにその呪文つけないと受け付けなくする、
というのは、必須ですね。
ところで今は、sports2 とか be とかに1回書き込みしちゃうと、
その呪文がなくても、通ってしまうようです。
549 :
root▲ ★ :2006/05/27(土) 21:18:43 ID:???0 BE:2189164-#
で、クッキーはあらし対策に別途考えればよいと。 であれば、やり方は明確です。 ・投稿確認画面は、呪文がない時には絶対表示する ・クッキーのチェックは、投稿確認とは完全に分離する
550 :
ひろゆき :2006/05/27(土) 21:19:27 ID:i3Z0R8NC0 BE:101344-#
sports2とかbeはなかったことに、、、 んで、hana=mogeraは状況によって変える可能性があるので、 formに表示されたものをつかって欲しいのですね。 爆撃などの材料にされる可能性もあるので。
551 :
ひろゆき :2006/05/27(土) 21:20:56 ID:i3Z0R8NC0 BE:114629-#
>・投稿確認画面は、呪文がない時には絶対表示する そうすると、投稿毎に確認画面がでちゃう予感。 なので、クッキーをキーにするのは必要かと。 hana=mogeraをcoookieにいれてもいいかもしれないすね。 >・クッキーのチェックは、投稿確認とは完全に分離する 投稿確認と嵐対策は別で考えたほうがすっきりするかもですね。
552 :
root▲ ★ :2006/05/27(土) 21:22:09 ID:???0 BE:4104195-#
> んで、hana=mogeraは状況によって変える可能性があるので、 > formに表示されたものをつかって欲しいのですね。 > 爆撃などの材料にされる可能性もあるので。 方針、了解です。 たまに気が向いたら、変える感じですね。 専用ブラウザ的には、たぶんその度にバージョンアップするか、 あるいは出るフォームから呪文を取ってくるか、 どっちかってことになるかと。
553 :
root▲ ★ :2006/05/27(土) 21:22:37 ID:???0 BE:4378368-#
>>551 > hana=mogeraをcoookieにいれてもいいかもしれないすね。
このアイディア、いただきます。
久喜を食ったか食っていないかは次のセッションでしか確認は出来ないと思うですです@クライアント依存 久喜ってそんなものですから、そんな用途にしか使えないです。 ので、3段論法が正道のような。 書き込み欄 ↓ 確認画面@ここで発行 ↓ 了承した画面(書き込みました画面)@ここで食ったかを確認。していなければ鰓にするとか
555 :
root▲ ★ :2006/05/27(土) 21:26:23 ID:???0 BE:2462393-#
>>554 > 久喜を食ったか食っていないかは次のセッションでしか確認は出来ないと思うですです@クライアント依存
> 久喜ってそんなものですから、そんな用途にしか使えないです。
ですね。はい。
なんかajaxを使えば出来そうな気がしなくもない(見た目上bbs.cgiの回数を減らす
557 :
root▲ ★ :2006/05/27(土) 21:28:19 ID:???0 BE:2462393-#
hana=mogera を cookie に入れるのは、 書き込み完了時にするのがよさげですね。 そうすれば、通常ブラウザでやる場合、書き込み完了の時にしか そのクッキー食わないと。
既存のクッキ処理は弄らなくてもいいわけか IEの「戻る」で承諾ボタンを押してないのに次ポストできる問題を解決するなら 承諾ボタンを押した後、つまり投稿しました画面で承諾済みである旨のクッキを 食わせれば(Mogera)、毎回承諾画面はでないし、「戻る」で承諾回避される こともない、と
559 :
root▲ ★ :2006/05/27(土) 21:30:29 ID:???0 BE:3648285-#
安易にmogeraを吐く人にはそれなりの責務を負わせるみたいな?@うん、いいことだ♪ その旨も書き記すと良いかも?@確認画面
なるほど
562 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 21:51:12 ID:64srjKZp0
そんなに承諾画面を見せたければ、投稿時に毎回表示させる、 専ブラ作者にも承諾画面表示を実装させるとかすればいいじゃん。
見た段階と書いた段階でクッキ2つ食わせれはいいじゃん。
564 :
root▲ ★ :2006/05/27(土) 21:58:29 ID:???0 BE:730324-#
やっぱ、3段階がよさげですね。 1回だけは、hama=mogera を Set-Cookie: しなくても 書き込みを許す、っていうことになっちゃうから。 で、1回許したら、2回もx回も、 区別できないわけで。 いったん、食事にするです。
そういう方向になる模様
566 :
root▲ ★ :2006/05/27(土) 21:59:42 ID:???0 BE:4104195-#
>>563 つまり、3段階にする必要があるんですよ。それだと。
重要なこと:
食わせたクッキーは、次のセッションになるまで有効にならない。
ID生成のアルゴリズムとくっつけるとか。 IDその2のはなもげらとクッキーのペア。
1回目のCookieをhana=mogeraとかの安易な値じゃなくて 予測不可能な値にすれば2段階で済みます。 1回目のCookieなりフォーム変数なりが予測可能だから 投稿確認画面を経由せずに投稿されてしまうわけで。 負荷の関係で不可能なのかもしれませんがいちおう提案しておきます。
>>528 の3段階目を2段階目の書き込み確認画面でXMLHttpRequestを行わせれば
見た目は2回になる。
もちろんJavaScrip切ってる人も大丈夫なように<noscropt>を駆使しなきゃいけないけど。
ノースクロプト!
571 :
root▲ ★ :2006/05/27(土) 22:15:57 ID:???0 BE:5837388-#
>>569 できれば、具体的なコードサンプルを示していただけるとありがたいです。
なにせ、Perl は素人なんで。
>現行の仕様(呪文さえ唱えれば、クッキーがなくても書けてしまう)はいまいちなので、 この呪文って何?
ハナモゲラ
>>571 PerlっていうかJavaScriptです。
普通に3段階のを実装していただいたうえで
2段階目に表示するHTMLの中にJavaScriptのコードを入れると。
そのJavaScriptがユーザー操作を必要とせず3段階目をやってくれるというからくりですから。
>>573 それをどうするって?
その他→で、オンオフ両方やってみたけど無理だ
どちらにしろ荒らし対策としての Cookie 付与なら,サーバサイドでのセッション管理も行うとか しないとナンセンスなんで(これは結構な大仕事),とりあえず今回は初回投稿時の承諾画面の ことだけ考えればいいかと. ということで,Cookie なし& mogera ありで書き込めたとしても,その観点からは 問題なしということでいいのでは.普通に一般ブラウザ使って mogera が POST データに 付加されるのは承諾画面で了承した時のみならば,ユーザが小細工して勝手に POST データに mogera を付け加えるのは illegal な手段ってことになるんで, 「mogera が付加された POST データを送ったら承諾画面の事項を受諾したものとみなす」 ということにすればいいでしょう. ということで,こんな感じでいいのでは. [初回投稿時] 投稿フォームから書き込む ↓ 承諾画面表示(mogera 付きフォーム) ↓ 「書き込みました」& Cookie 設定 [次回以降投稿時] 投稿フォームから書き込む ↓ Cookie があるのでそのまま「書き込みました」
・Cookie*もしくは*フォーム変数にhana=mogeraが含まれていなかったら、 投稿確認画面を表示する。このとき <input type=hidden name=hana value=mogera>を含んだフォームを出力 あらし対策用のCookieが必要ならここで発行 Set-Cookie: hana=mogeraはまだ行わない ・書き込み完了したらSet-Cookie: hana=mogeraを発行 これでおk 1回目: Cookieにもフォーム変数にもhana=mogeraが含まれていないので 投稿確認画面が表示される。 2回目: 投稿確認画面のフォームにhana=mogeraが含まれているので書き込まれる。 以後はCookieにhana=mogeraが含まれるので投稿確認画面はスルーされる。 1回目で戻って書き込み: Set-Cookie: hana=mogeraはまだ発行されていないし フォームにはhana=mogeraが含まれていないので再び投稿確認画面が出る。 これでどう?
クッキーとフォームに同じはなもげらを入れて規約を見せて、 書き込んだらはなもげらとは違うクッキーを渡してこっちがあれば はなもげらはスルーとか?
>>575 特定の専ブラウザの質問はその専ブラのスレで
580 :
root▲ ★ :2006/05/27(土) 22:30:47 ID:???0 BE:1094843-#
めし終わり。
>>576 第2段落は概ね今の実装で、つまりは管理人の意思って感じですね。
これについては同意です。
クッキーはあらし対策の意味があるので(これは厳密には今回のものとは別の問題)、
仕様は、今回のとは別に考慮する必要がありそうですね。
で、write-after-cookie にして、
>576 の実装を、まずは私のほうで。
で、次にあらし対策としての cookie の取り扱いの考慮で。
これは引越し完了後にでも、おじさんにがんがってもらおうかと。
581 :
root▲ ★ :2006/05/27(土) 22:32:35 ID:???0 BE:5837388-#
>>582 今はあらし対策のCookieが投稿確認画面で同意したときのCookieを兼ねてるけど、
あらし対策を分離できるように、「投稿確認画面で同意した」という意味のCookieを
別途発行するように変えるってこと。
そのCookieがなければ、あらし対策のCookieの有無にかかわらず
投稿確認画面を出す。
read.cgiの方も同意済みか否かでフォームを変化させちゃうとか。 静的なページからの投稿には毎回同意してもらうってのはご愛嬌で。
>>584 それは
>>577 (というか
>>557 )では?
>>576 には「Cookie なし& mogera ありで書き込めたとしても〜」とあるから
で、2段階だと結局、
呪文(確認部分で取得可能)と書き込み用クッキー(これも確認部分で取得可能)
があれば書けるのかな
587 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 22:50:39 ID:Te4008Jc0
しばらくは専ブラから書き込めないってこと?
仕様がはっきりしないと対処のやりようがないからなぁ。
> それは
>>577 (というか
>>557 )では?
>>557 だと「次のセッションまでCookieが有効にならない」という問題が
あるとroot ★氏が言っていた(
>>564 )ので、
3段階にしなくて済むようフォーム変数の併用を提案したのが
>>577 。
けっきょくどう送ればいいのかな?
POST /test/bbs.cgi HTTP/1.1
Host: qb5.2ch.net
User-Agent: Monazilla/1.00
Referer:
http://qb5.2ch.net/operate/ Cookie: NAME=; MAIL=; PON=*****; HAP=*****;
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: *
FROM=名前&mail=sage&MESSAGE=本文&bbs=operate&key=1234567890&time=time()&submit=書き込み&hana=mogera
こんなんでいいのかしら?
591 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 22:59:32 ID:dQq1LhGg0
運営臨時に一度書き込めば、とりあえずは解決できる問題 ただしめんどくさい
俺も2段階方式に賛成 「FormのHanaがあるとCookieチェックがスルーされる」とすればそれはバグであって方式の問題じゃないと思う CookieのHanaがあればそのまま投稿処理にすすめばいいし、 なければ、FormのHana有りなら投稿処理、なければ未承諾なのでエラー みたいな。あるいは投稿処理の直前で、CookieのHanaかFormのHanaいずれかが ないと未承諾エラーとか どっちかでクッキーチェックされてれば問題なかったんじゃ でFormのHanaというか承諾ボタンがポチられてたら完了画面で Hana喰わすと
593 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 23:10:09 ID:PBygfN4v0
フォームの上に規約を載せればいいじゃない
フォームのVALUEに入れろ
書き込むボタンに規約を載せればいいのか
全部クッキーに入れちゃえ。 CONFIRM=了承?
奇数レスは規約にしちまえ
598 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 23:17:26 ID:PBygfN4v0
クッキーの有効期限を5分くらいにしちゃえば?
ここに書くお話なのかわからないのですが… クッキー確認の画面でMESSAGEパラメータについて”の 半角の文字についてのサニタイジングがされていないようで、 ”の半角以降の文字がfirefoxで書き込みしたときに消えてしまうのですが… 勘違いでしたらすみません。
601 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 23:21:17 ID:hiu0HyrY0
今北 PONがきえちったお(´・ω・`)
602 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 23:21:58 ID:KiPzqKXpO
佐賀ってるスレを揚げる会 (`ー^) 〜( 〜) / ヽ
604 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 23:24:00 ID:X33+/J5s0
専ブラから書き込めない件
JavaScript 使うんなら,index.html や read.cgi のフォームの onsubmit() でチェックするという手も. for (var i = 0; i < document.forms.length; i++) if (document.forms[i].FROM && document.forms[i].mail) { if (!document.forms[i].addEventListener) document.forms[i].addEventListener = function(t, l, c) { this["on"+t] = l; }; document.forms[i].addEventListener("submit", function(e) { if (!/(^|[,;]\s*)hana=mogera($|[,;])/.test(document.cookie)) { if (comfirm( "投稿確認\n" + "・投稿者は、投稿に関して発生する責任が全て投稿者に帰すことを承諾します。\n" + "・投稿者は、話題と無関係な広告の投稿に関して、相応の費用を支払うことを承諾します\n" + "・投稿者は、投稿された内容及びこれに含まれる知的財産権、(著作権法第21条ないし第28条に規定される権利も含む)\n" + " その他の権利につき(第三者に対して再許諾する権利を含みます。)、掲示板運営者に対し、無償で譲渡することを承諾します。\n" + " ただし、掲示板運営者は、投稿者に対して日本国内外において無償で非独占的に複製、公衆送信、頒布及び翻訳する権利を投稿者に許諾します。\n" + " また、投稿者は掲示板運営者が指定する第三者に対して、一切の権利(第三者に対して再許諾する権利を含みます)を許諾しないことを承諾します。\n" + "・投稿者は、掲示板運営者あるいはその指定する者に対して、著作者人格権を一切行使しないことを承諾します。\n")) document.cookie = "hana=mogera; path=/; expires=Friday, 01-Jan-2010 00:00:00 GMT"; else { if (e && e.preventDefault) e.preventDefault(); return false; } } return true; }, false); }
606 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 23:28:58 ID:J2qOThHl0
ヾ(*´∀`*)ノキャッキャ
607 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 23:30:36 ID:tlo73o6X0
専ブラ使えない状態なのはつまり、人大杉状態の板では書き込み不可ですか?
608 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 23:31:56 ID:J2qOThHl0
hana=mogeraがやってきたら2ちゃんねるの中の人的には「規約を了承したとみなす」で桶かと。 で、その旨を規約の中に盛り込むと良いかと。 ♪ひさびさにJavaScriptのソスーを観たです(照)
ギコナビは・・・・・・まだっぽいですねOTL
613 :
動け動けウゴウゴ2ちゃんねる :2006/05/27(土) 23:41:13 ID:tlo73o6X0
>>608 頓。
それだけ対応済みなら、ギコナビも時間の問題だろうからしばらく待ちますか。
ギコナビはCVSでコード書き換わってたからリリースは時間の問題でしょう OpenJaneはコミット出来る人もいなければコードを直して野良ビルドを作る人もナシ・・・。
ホットゾヌもまだのようですねorz
ギコナビ1.52.0.653で対応
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < A Bone まだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
専ブラの対応状況は他でやってもらえると。 対策のノイズにもなりかねないとおもいます。。
>>611 いやぁ、普通の炎狐で確認画面を表示させてそこのフォームのボタンを押したときですよ。
620 :
動け動けウゴウゴ2ちゃんねる :2006/05/28(日) 00:07:38 ID:VMIl4gjz0
>>618 ここの対応が発生源なんだからどうしようもないですな。
もちっと専ブラ作者とリンクして動いているのか思っていたけど。
そうでもないし。
622 :
611 :2006/05/28(日) 00:13:57 ID:bzo5fGA60
今回変更された点は ・書きこみ&クッキー確認のところでcookieを取得させるのをやめた(ソース見てみたらSet-Cookie:がない) ・書き込みにhana=mogeraが必要になった でおk? で、cookieはどこで取得させてるの?これがわからないんだけど…
あのー、A Boneユーザーなんですがさっき帰って来て2chにカキコしようと思ったら 全然カキコできないんですがどうすればいいのでしょうか? (IEからなら書き込めます) このスレ読んだんですが、クッキーやらなんやらわけわかめでサッパリっす・・・ どうか対処放送お教えくだされーウワァァァァァァヽ(`Д´)ノァァァァァァン
>>626 すみません・・・
そんな板見に行ったこともないしそんなスレがあることも知りませんでした
取り合えずそのスレ見てみます
専ブラのスレは知らないくせに、書けないからって いきなりbbs.cgiのスレに来るとはw 妙なところに詳しい変な奴だな
>>623 これまでどおり2段階でこなすのは確定のようだから
書き込みPOST後の書き込み完了画面とともに送られてくる可能性高し
初回書き込み時(CookieでHanaを送信してない)はPOSTパラメータで
hana=mogeraが必要なのは確かだと思うけど、それ以降Cookieだけで送ってれば
いいのかPOSTでも必要とかみたいな細かいところはまだ分からない
承認ボタン押してエラー画面に飛んだときCookie来るのかとかエラーパターン
増えるのかとか・・・
630 :
名無しさんだよもん :2006/05/28(日) 00:44:48 ID:bnM5fikD0
>629 大当たり。 書き込み完了画面で4つばかりCookieが飛んできますね。 # ホスト名のCookie2010年有効期限で設定されてもなぁ
631 :
623 :2006/05/28(日) 00:46:00 ID:KP0dtAf80
>>629 hana=mogera追加して書き込みした後の書き込み完了画面にもSet-Cookieが無いんだけど…
どこにあるんだ?
632 :
623 :2006/05/28(日) 00:48:04 ID:KP0dtAf80
>>629 すいません。ヘッダ見ない形で書いてたんで見落としてしまいました。書き込み完了画面にありますね。ありがとうございます。
ああ、PONやHAPまで書き込み後発行になっちゃってるのか そりゃ不具合でるわ これらは最初の確認画面で食わせないと当然hanaだけで書けるようにするしかない
正直、モバイルにはつらい仕様だ...。
なんで「はなもげら」なのか
637 :
動け動けウゴウゴ2ちゃんねる :2006/05/28(日) 02:21:14 ID:IVdsUL5Q0
自作ブラでも書けるようになった(・∀・)
638 :
root▲ ★ :2006/05/28(日) 02:25:58 ID:???0 BE:547823-#
PON と HAP の仕様は従来通り(送らないと投稿確認になる) 新たに「hana=mogera」クッキーを送るか、 hana=mogera のフォームを送るかしないとだめ という仕様の bbs.cgi を開発しています。 で、PON と HEP は、 正しい PON と期限切れではない HEP を送ってきた時、 有効とみなすようになっています。(従来通りの仕様)
先生、HAPとHEPどっちなんですか(・∀・)
正しくはHIPです
http://ch2.ath.cx/load/comic6.html comic6(というか同人板)なんですが、確認画面の所でウイルスがリトライを繰り返して
DDoSしてる気がします
ウイルスの処理部分はこんな感じです
if body.match(/(書き込み確認)|(2ch_X:check)/)
@board.cookie = head['set-cookie']
retry
642 :
root▲ ★ :2006/05/28(日) 02:42:04 ID:???0 BE:2553874-#
>>638 をもう少し正確に書こう。
1) 従来通りのもの(PON/HEP)を、クッキーとして bbs.cgi に送ってこないと書き込めない。
=> 投稿確認画面になる。管理人がいじる前の仕様と同じ
2) *そのうえで*、新たに「hana=mogera」クッキーを送るか、
*または* hana=mogera 入りの投稿フォームを送るかしないと、書き込めない。
=> 投稿確認画面になる。★新仕様
3) PON/HEP は、
従来通りのふるまいで送ってきた時、従来通りに有効なものとなる。
=> 管理人がいじる前の仕様と同じ
4) 有効な PON/HEP を送ってきた場合、
bbs.cgi からは PON/HEP を Set-Cookie: することはない。
=> 管理人がいじる前の仕様と同じ
5) PON を送って来ないとか、HEP が無効だった場合、
bbs.cgi は有効な PON/HEP を Set-Cookie: する。
=> 管理人がいじる前の仕様と同じ
またこの場合、hana=mogera フォーム や hana=mogera クッキーを
bbs.cgi に例え送ってきていたとしても、上記 1) により書き込めない。
6) hana=mogera クッキーは、書き込みが成功して、
かつ hana=mogera クッキーを送ってこなかった時のみ、
bbs.cgi から Set-Cookie: される。(★新仕様)
643 :
root▲ ★ :2006/05/28(日) 02:42:34 ID:???0 BE:1368735-#
cookieはないけど、hana=mogera のフォームを送って来るブラウザをあっさり切る 夕方の仕様は嫌な感じ。 hana=mogera、cookieなしでもcookieを寄こして欲しい。
645 :
root▲ ★ :2006/05/28(日) 02:45:07 ID:???0 BE:5107878-#
6) hana=mogera クッキーは、書き込みが成功して、 かつ hana=mogera クッキーを送ってこなかった時のみ、 bbs.cgi から Set-Cookie: される。(★新仕様) 一番初めはどうするの? 書き込みを成功させるにはhana=mogera クッキーが必要なのに hana=mogera クッキーが無いと書き込めない
647 :
root▲ ★ :2006/05/28(日) 02:49:53 ID:???0 BE:1276872-#
>>646 hana=mogera 入り投稿フォームを送れば、
書き込むことができます。 ( 2) のとおり )
つまり、専用ブラウザは、*再度の仕様変更*が、
必要になることになります。
>>643 重くは無いんですが、負荷が高いと同人の自治とかダウソのウイルスオチスレで報告が出てたんで、念のために
649 :
root▲ ★ :2006/05/28(日) 02:52:32 ID:???0 BE:4377986-#
>649 テスト結果 View 前と同じで書けず Nida 書き込める
651 :
root▲ ★ :2006/05/28(日) 02:59:51 ID:???0
もらったクッキーを次のセッションでそのまま使ってくれるブラウザや、 今回作者さんに「hana=mogera フォーム」を送るように対応いただいたブラウザでは、 きちんと書き込めるはずであるということを、期待しています。
つまりすべての人は漏れなく一番初めに投稿フォームを送らなければいけない =利用規約に同意しなければならないということですね。
653 :
root▲ ★ :2006/05/28(日) 03:02:21 ID:???0 BE:3192757-#
そういうことです。
>>652 hana=mogera 投稿フォームを送っても、
クッキーは従来通りに、つけていただく必要があるというわけです。
654 :
root▲ ★ :2006/05/28(日) 03:06:08 ID:???0 BE:6567089-#
それで、
>>647 に再度の仕様変更が必要、と書きましたが、
今回単に「hana=mogera 投稿フォーム」を送る機能だけを*追加*することで
対応したものについては、再度の仕様変更は*不要*なはずです。
>>642 乙です.その仕様でよさげですね.
ついでに,「投稿確認」の記述を
<!-- 2ch_X:confirm -->〜<!--/ 2ch_X:confirm -->
で囲むとかして,専ブラでも表示してもらえるといいかも?
656 :
root▲ ★ :2006/05/28(日) 03:08:23 ID:???0 BE:2463539-#
で、重要なことは、 この変更版 bbs.cgi を全部に配布すると、 例の「運用情報 臨時でのクッキーの栄養補給」でしのいでいるタイプの 従来型専用ブラウザは、その方法ではもはやしのげなくなる、 つまり、書き込みができなくなる、 ということです。
657 :
root▲ ★ :2006/05/28(日) 03:10:25 ID:???0 BE:912825-#
>>655 泣きそうでした。
だって、bbs.cgi の中でも一番アドホックで汚くて、
どうにかしなきゃなぁ、って思っていたところだから。
あそこをいじろうっていう気持ちになるあたりが、
さすが「The 管理人」
で、
> <!-- 2ch_X:confirm -->〜<!--/ 2ch_X:confirm -->
> で囲むとかして,専ブラでも表示してもらえるといいかも?
これ、チャレンジしてみるです。
そしたら専ブラ作者が、がんがるから無問題ですよ。
マ向けに告知だして欲しいなあ それで週明けに発動
从 ´ D`)<ねろばか
661 :
root▲ ★ :2006/05/28(日) 03:20:34 ID:???0 BE:912825-#
>>644 hana=mogera フォームあり, hana=mogera cookie なしだと、
hana=mogera cookie をよこしてきます。
(
>>642 の 6) )
>>656 今回は規約変更で仕方ないと思うけど、
以後ハナモゲラの呪文がどんどん変わるとしたらイヤンな感じですね。
呪文を変えるたびに更新のないブラウザの切捨てになりそうで。
664 :
動け動けウゴウゴ2ちゃんねる :2006/05/28(日) 03:24:06 ID:cmAZLGPa0
もう管理人rootタソでいいんじゃないか?
>>661 アラスカで確認しました。新仕様はいいですね。乙です
666 :
root▲ ★ :2006/05/28(日) 03:27:12 ID:???0 BE:547823-#
667 :
root▲ ★ :2006/05/28(日) 03:29:47 ID:???0 BE:1095034-#
アラスカのスレ見ていると、大丈夫そうかな。 もうしばらくしたら、配布します。
いま配布しようとしているものは正式に今後使われるものですか? さらに変更を予定していますか?
669 :
root▲ ★ :2006/05/28(日) 03:33:40 ID:???0 BE:1460328-#
>>657 の最終段落ですが、
なんとなく副作用が出そうなので、今の変更は控えます。
来週以降かな。
670 :
root▲ ★ :2006/05/28(日) 03:34:31 ID:???0 BE:2918584-#
>>668 問題がなければ、この仕様でいこうかと。
なにをもって「正式」というかは、私にもよくわかりません。
671 :
● :2006/05/28(日) 03:34:57 ID:i2JTesTZ0
672 :
root▲ ★ :2006/05/28(日) 03:36:53 ID:???0 BE:912252-#
スレッド 924 に仕様をレスしたりして、 それからもう少しアラスカの様子見て問題なければ、 配布してみようかなと。
673 :
● :2006/05/28(日) 03:37:55 ID:i2JTesTZ0
>>672 今日の朝六時以降ですかね?
がんばって起きてます。
674 :
root▲ ★ :2006/05/28(日) 03:41:09 ID:???0 BE:4469377-#
>>673 そこまでもたないんで、それより早いと思います。 < 配布時刻
675 :
● :2006/05/28(日) 03:48:19 ID:i2JTesTZ0
ハナモゲラは承諾ボタンを押さなくても得られるけど 単純に戻って書くことができない分、今までよりいいのかな...
677 :
root▲ ★ :2006/05/28(日) 03:57:56 ID:???0 BE:1641492-#
そろそろ、配布します。
Cookieのほうのmogeraチェックは前方一致だね
wktk
680 :
root▲ ★ :2006/05/28(日) 04:01:07 ID:???0 BE:1095034-#
BBS.CGI - 2006/05/28 10分程度で。
681 :
root▲ ★ :2006/05/28(日) 04:01:53 ID:???0 BE:3831067-#
>>681 Cookie: ... mail=sage; hana=mogeranus
とか通るように見える
683 :
root▲ ★ :2006/05/28(日) 04:05:21 ID:???0 BE:730324-#
>>682 あ、なるほど。
それは一応、配慮したつもり。
変だったら、報告ください。
684 :
root▲ ★ :2006/05/28(日) 04:05:58 ID:???0 BE:1459744-#
>>682 あ、勘違いしてました。
確かに。
そのうち、exact match に変更するです。
hana=mogeranus にしても書き込めなかったですが。。
686 :
root▲ ★ :2006/05/28(日) 04:09:08 ID:???0 BE:5107687-#
>>685 hana=mogera では大丈夫でしたか。
>>686 hana=mogera
なら問題無いです。
688 :
root▲ ★ :2006/05/28(日) 04:11:48 ID:???0 BE:1824645-#
これを機にエラー応答も<!--2ch_X: -->フォーマットに統一して欲しいなぁ と言ってみるテスト。
フォームのほうは ^mogera$ でクッキは ^mogera っぽい? クッキの切り出しの時にバッファを6文字で切ってるのかな
691 :
root▲ ★ :2006/05/28(日) 04:14:44 ID:???0 BE:6567089-#
書き込むときに bbs.cgi を呼ぶのではなく XMLウェブサービスを呼ぶようにしようよ
今回の改良はこれで終了。めでたしめでたしということですね。
>>605 の regex /(^|[,;]\s*)hana=mogera($|[,;])/ を $ENV{HTTP_COOKIE} に適用でいいかな.
>>691 そうですね。エラーメッセージと同時に埋め込んであると処理がある程度
楽になるかなぁと。
696 :
root▲ ★ :2006/05/28(日) 04:20:04 ID:???0 BE:912252-#
>>694 そんな感じですね。
というかクッキーって結構使っているので、
クッキーのトリートメントするために、サブルーチンを一つ書き起こす感じかなと。
# 今日はもう、元気ありませんです。
>>696 乙です。近々エラーのあたりにも手を付けていただけるとありがたいかなと。
結局専ブラはアドホックに、POSTに&hana=mogeraをくっつけるだけで済むわけか 変更があるならFormのHiddenはそのままオウム返しするようにしたほうがよさそうかな
699 :
root▲ ★ :2006/05/28(日) 04:27:59 ID:???0 BE:2554447-#
>>698 それでよいのではないかと。
ちなみにはなもげら関連は、bbs.cgi 中で変える場所を集めて、
すぐにわかるようにしておいたです。
だって、変えるかもしれないっていう人がいるから。
で、投稿確認画面の表示部分は新たに &HoutekiToukouKakunin っていう
サブルーチンに起こしなおしました。
これで、この部分の差し替えもしやすくなったはず。
700 :
● :2006/05/28(日) 04:28:38 ID:i2JTesTZ0
701 :
tiger2526.maido3.com(206.223.157.125)@root▲ ★ :2006/05/28(日) 04:33:01 ID:???0 BE:2189546-#
>>700 おつでした。
私はこれで書き込めています。
Monazilla/1.00 (JaneNida 試作品/060527)
702 :
root▲ ★ :2006/05/28(日) 04:33:34 ID:???0 BE:5107687-#
ということで、自然治癒班はそろそろ、お風呂の時間。
live2ch ver1.13も問題なし
705 :
● :2006/05/28(日) 04:39:21 ID:i2JTesTZ0
>>701 了解しました。
ここで書き込めた報告はスレ違いかもなので
うーむやはり雑談スレが良いかなぁ?<報告
>>696 >>702 乙ですた.Cookie 取得関数ということなら,
use CGI qw/:standard/ すれば cookie('hana') 一発で取れますけどね.
707 :
root▲ ★ :2006/05/28(日) 04:43:20 ID:???0 BE:912252-#
>>706 おぉ、なるほど。
Perl を知らない私。
明日以降に。
かちゅ〜しゃ 2.102+kage 0.99.1.1165 書けてます。
Monazilla/1.00 kage/0.99.1.1165 (0)
いやーん。 突然janeで書き込めなくなったお。
ちなみに、一回何もないエラーメッセージが出て それのOKを押してから、もう一回書き込むボタンを押して 書き込めるというのが正常動作なのですか?
Monazilla/1.00 kage/0.99.1.1165 (0)
>>710 エラーメッセージが、書き込み内容に訂正。
Monazilla/1.00 kage/0.99.1.1165 (0)
713 :
● :2006/05/28(日) 05:01:44 ID:i2JTesTZ0
>>710 かちゅ〜しゃスレで同様の症状が出ているか尋ねた方が良いかと。
取りあえずwiki更新しときます<かちゅ+kage
>>713 了解。
>>712 残り少ないから、新スレ立てるわ。
Monazilla/1.00 kage/0.99.1.1165 (0)
715 :
● :2006/05/28(日) 05:03:31 ID:i2JTesTZ0
>>712 あと5レスやんけww
次スレ立て&誘導願います<2chの動作報告はここで。
おい。root。 ●金返せ。Jane使えなくなったじゃネーか。
717 :
ピロリ :2006/05/28(日) 05:09:44 ID:mMj0mTRg0
糞壷なんか使うかよ。 動作効率悪いんだよ。 早くなんとか汁。 金で『心地よさ』買ってんだよ。 ある意味純粋なユーザーでは無く『客』なんだけど。 考慮してくんない?そーゆう所もさ。
>>716 Styleに乗り換え
Monazilla/1.00 (JaneStyle/2.30β2)
721 :
● :2006/05/28(日) 05:14:03 ID:i2JTesTZ0
>>716 Jane派生Nida(確定)とStyle(未確認)
722 :
● :2006/05/28(日) 05:15:28 ID:i2JTesTZ0
>>720 ログが移行できるならね。
もちろん外装もな。
ログ抽出機能とかID判別とか要らないから。
最近のはゴチャゴチャ無駄につけて使いにくい。
>>723 Jane系ならログ移行は容易
まあわからなけりゃソフウェア板に行って質問しる
そのソフトウェア板が落ちてた件について。 つか入りにくいよ。今。 IEでも入れなかったし。
JaneView対応(暫定版)verうpキタコレ
>>727 「同意ボタン」を押させる仕様ですね。
これなら、問題ないかと。
Monazilla/1.00 (JaneView/0.1.12.1)
JaneDoe View α ( build date: 060528 ) テスト
731 :
● :2006/05/28(日) 06:27:34 ID:i2JTesTZ0
>731 そのスレッドもちょっと違うかな 情報集約しやすくするため、この板に情報スレ建てます。
734 :
動け動けウゴウゴ2ちゃんねる :2006/05/28(日) 09:37:52 ID:dnm5lF930
なんかまだダメだhana=mogura にしても書き込めない
739 :
動け動けウゴウゴ2ちゃんねる :2006/05/28(日) 10:47:50 ID:97ReGxRF0
クッキーの設定ってどうするの?
>>738 ここってネタスレじゃないよねw
メチャワラタw
741 :
動け動けウゴウゴ2ちゃんねる :2006/05/28(日) 11:55:40 ID:2p2eLREm0
jane lovelyって専ブラ使ってるのですが、作者が更新するか不明です そのhana=mogeraっていう呪文で対応したいのですが どうすればいいのでしょうか?
結局もげら+ボタン押し動作をさせればよいだけ?
いっとう最初は、PONとHAPを貰うためだけの送信ってことで、 最小限の内容(半角1文字とか)を送って、鯖からPONとHAP貰ったら それをCookiに入れて、今度はちゃんとした内容(hana=mogera込)を 送ってやるって実装でOKかな?その方が無駄な送量がなくていい?
test
1.ラブリー終了 2.Jane2ch.iniの[TEST]のWrtCookie=PON=リモホ;の最後にhana=mogera;追加 3.ラブリー起動 2。は起動中に書き込んだら駄目だお
ここでひろゆきが再びいじって…
749 :
動け動けウゴウゴ2ちゃんねる :2006/05/28(日) 13:57:35 ID:klNFn+eK0
s
昨日から専ブラスレで初心者相手のサポセンやってたが さすがにウンザリしてきた
教えてください><
エラーメッセージとかバージョンとか環境とか書かないで ただ「書き込めない」とかしか書かないから困るよな。 エスパーじゃないんだから環境しっかり書いてくれと。
初心者だからわかりません><
今日は紫色のパンチュでつ
昨日の「ひ」のつく人の気まぐれ以降まだ使う機会ないんだけど
AIR-EDGE PHONEの「o」表示になるタイプからの
書き込みは特に問題ないのかな
.。oO(
>>748 みたいな表示ってどうやるんだろ)
初心者に限ってNISを入れてる罠
758 :
動け動けウゴウゴ2ちゃんねる :2006/05/28(日) 14:25:03 ID:8F3ZhV0h0
>>756 名前欄にノtasukeruyoを入れればいいんですよ^^
>>758-759 でも普通は
>>730 みたいな表示なんじゃないの?
Monazilla/1.00 kage/0.99.1.1168 (1000)
どれどれ?
Monazilla/1.00 (JaneStyle/2.24)
そこにはUAが表示されるからProxomitronかなんかで UAを好きな文字列に書き換えてんじゃないの?
オリモオリモー
Monazilla/1.00 (JaneStyle/2.24)
そういうのは他のスレでやってくれ
>>762 >>764 なるほど、そういう事かw
昨日も時折見かけてたからなんとなく気になってて
ちなみに
>>756 の上の件は現段階では問題なさそうだと確認済
767 :
/ p8152-ipad201funabasi.chiba.ocn.ne.jp(222.146.71.152) :2006/05/28(日) 15:04:16 ID:88mYxEn80
houhou
Monazilla/1.00
うわー うわー お、おおおお、おれの・・・おれのあいぴーがぁあああああ
hana=mogeraの部分が今後書き換わる可能性があるようですが、 その場合はmogeraのぶぶんだけ書き換わりますか? たとえば hana=mizuとかhana=sakajiisanとか。 それとも koma=nechiとかga=cho-nとか丸ごと変わりますか? また、同時に二つ以上の呪文を唱えないとならないケースは発生しますか? たとえば、hana=mogeraとkona=nechi両方をPOSTしなければならない、など。
名前も値も個数も変わりうるでしょう。 例え、現時点では変えない方針だとしても、将来はわからないし。 都度対応でいくか、どうとでもなる機能にしておくか、だな。
ひろゆきの気分次第
bbs、key、time、FROM、mail、MASSAGE、submit、(sid)を 標準送信データとして、確認画面にこれ以外のデータがあれば、 追加データとして取得し、全て送信する。 submitの値を書き込みボタンに反映させると尚良し?
なんか悪いことしたのでしょうか
てすです
>>771 次はkoma=nechiくるね。きっと
クッキーはダミーを使わず、2ちゃんから取得したものを使えと おいちゃんが言ってたらしいから、 単純にhana=mogeraを追加したただけのやり方は あまりよろしくないという事になるのかな。
momiji=manjuじゃね
hana=pockey でよろしく(素
hana=maruki で、みそ1年分がひろゆきに贈呈されます
Live2ch作者です。
http://www8.plala.or.jp/uro/live2ch/lzh/live2ch114b1.lzh 1.13では強制的にhama=mogeraつけてるだけなので、フォームの内容ちゃんと読んで
bbs、key、time、FROM、mail、MASSAGE以外のinput type=hiddenのデータがあったらそれを付加して書き込むようにしてみました。
複数あっても大丈夫です。
1.13
ハナモゲラ付き書き込み→クッキー確認→クッキーを食べる→ハナモゲラとクッキーつけて書き込み
1.14b1
ハナモゲラ無し書き込み→クッキー確認→クッキーを食べて、フォームのイレギュラーな項目を抽出→クッキーと抽出したフォームをつけて書き込み
となってます。
フォームの内容調べるのは、クッキー確認画面(2ch_X:cookie)の時になってます。
こんな感じで理想的ですかね?
784 :
root▲ ★ :2006/05/28(日) 19:03:46 ID:???0 BE:5746379-#
>>783 おつです。
ざっと読む限りでは、概ね問題なさげ。
>>783 超乙です!!
ユーザーとしてはありがたい限り
>>784 問題なさげですか。
ありがとうございます。
近いうちに正式版公開することにします。
こちらにも報告 主立った専用ブラウザの対応版リリースはほぼ出そろいました。 (細かい改良はあると思いますが)
こんなときこそmonazilaのメーリングリストで仕様変更を呼びかけたらいいのにねえ
「hana=mogera」はクッキーの方に入れるの? それともコンテンツの方?それとも両方?
2ちゃんに書けるのを規約に同意してアカウント作ったん人に すればいいんじゃないか?
>789 今のところCookieだけで書けてるけど。
>>790 またゴネる人が出てくるよ。
荒らし辛くなるってね・・・。w
>>792 ごちゃごちゃしすぎ
と数年後いってるはず
>>791 そうなの、、、
どっちか一方でもいいのかな・・・
795 :
● :2006/05/28(日) 23:39:09 ID:cU/VmZ/L0
ふいー。一段落ですね。
質問。
wikiにこんなのが。
問題は無い?
ttp://stream.st/works/ 2chの書き込み仕様変更(2006.05.28)に対応できない2chブラウザで書き込めるようにするソフト
HanamogeraProxy 0.0.0.5 ダウンロード
古いJane系のブラウザなど、今回の2chの仕様変更で書き込めなくなったブラウザは多いと思います。
このソフトを使えば、古い2chブラウザでも書き込みが出来るはずです。
>>795 フォームのハナモゲラは送っているけどクッキーのハナモゲラは送ってないんで
非対応ブラウザでは今までどおり規約確認画面が出るんで問題ないはず。
ex14.2ch.net で試してたんですけど、もしかして UserAgent によって処理変わってきますか? hana=mogera フォーム無しクッキー有りだと、IE は書き込めて Monazilla は書き込めなくて……。 クッキーの設定方法間違ってるだけかな(´・ω・`)?
>795 かちゅ〜しゃで対応できない仕様をkageで対応してるのと同じだと思う。 そのうち"Open Jane Doe + HanamogeraProxy"で一つの専ブラの名前になるかもね。
>>797 以前からUAをごにょごにょするとごにょごにょが無くても書き込めるようになってますな
仕様かバグかは知らぬ
>>799 thx
ってことは、どう対応すればいいんでしょうか……。
1: 今のまま、2回目の書き込みは IE に習い、hana=mogera フォーム無しクッキー有りで確認ページに突入させる
2: UA 変える
3: hana=mogera フォームを常に追加
……微妙にスレ違いの予感。ごめんなさい orz
すんません。UA 変えても 2ch_X:Cookie 返ってきました orz クキの追加あたりが間違っている悪寒。・゚・(ノД`)・゚・。 ……スレ汚し本当にすいません orz
Monazilla フォーム無し Cookie有り で逝けてますよ。
Cookieを再取得してから、、PONにならってhana mogeraを追記するといいかも
>>802 もらっていないうちに hana=mogera Cookie を一方的に吐くのは、
本来、邪道すね。
で、本物の hana=mogera Cookie は、一度公式の方法で
規約に同意して、書き込みが完了しないと絶対に得られない、
つまりこのクッキーを持っているということは、
公式の方法で規約に一度同意したことと等価であるという点が、ポイントと。
そんなとこにメッセージを入れるなよ
>>803 hana=mogeraを送らせるのではなく、規約同意させるのが変更の意図なのですから、
可変(ランダム文字列)に変更するのが良いかと。
806 :
root▲ ★ :2006/05/29(月) 14:58:14 ID:???0 BE:4469377-#
>>805 そのへんは、管理人の胸先三寸ですね。
ここの上のほうでも「いつでも変える」って言っていたような。
変えられるようなしくみは、今回一応準備工事だけはしたつもり。
セッション管理のことかとおもた
808 :
root▲ ★ :2006/05/29(月) 15:01:00 ID:???0 BE:4925669-#
なんだかんだいって、昔のbbs.cgiよりはだいぶ簡単、かなぁ? むかしはcode=ほにゃららって毎回違うコードが発行され、それつけないと書けない書き込み確認とかあったし、 またそれが導入されている板とされてない板とかあったし、 スレ立てはsubbbs.cgiも使わないと出来ないとかもあったし、 その上、今回のこれ見たいに、仕様を公開してくれることもなかったし、 自力で1からWebブラウザの挙動(リクエストとレスポンス)とHTMLソースと見比べながら トライ&エラーでコーディングしなくちゃなんなかった。 あのころに比べたら、今の2chはとても優しい。
何でもいいんだけど、キーの部分(現行だと"hana")は固定でお願いしたいなぁ、、、 でないと抽出しにくいから・・・
つーかひ(ryが弄れる箇所がまだ残ってたのが驚きだったり
812 :
root▲ ★ :2006/05/29(月) 16:06:45 ID:???0 BE:3648285-#
>>811 少なくとも私は、いじりやすくしているつもりなので、
当然、管理人はいじることができるはずと。
そんな配慮が出来るひとがほしいですね
面白いので管理人はどんどんいぢってくだちい
・投稿者は、投稿された内容及びこれに含まれる知的財産権、(著作権法第21条ないし第28条に規定される権利も含む) その他の権利につき(第三者に対して再許諾する権利を含みます。)、掲示板運営者に対し、無償で譲渡することを承諾します。 ただし、掲示板運営者は、投稿者に対して日本国内外において無償で非独占的に複製、公衆送信、頒布及び翻訳する権利を投稿者に許諾します。 また、投稿者は掲示板運営者が指定する第三者に対して、一切の権利(第三者に対して再許諾する権利を含みます)を許諾しないことを承諾します。 これ、適度に改行してくれないかなぁ #と書こうとしたら長すぎる行がありますエラーで改行したけども
816 :
ひろゆき :2006/05/29(月) 18:35:54 ID:nf5YjR450 BE:303168-#
( ̄ー ̄)ニヤリッ
もしや、近日中にまた変更?(・∀・)
>>816 今PIEの中で引越し忙しいみたいだから、全部片付いてからにしようね。
その微笑みは…
うわぁぁぁぁぁぁ
なんかやらかしそうだと聞いてすっ飛んできますた。 やらかしそうな悪寒? それとももうやらかしちゃった?
'`,、('∀`) '`,、
何?今度は何!?
825 :
root▲ ★ :2006/05/29(月) 18:47:15 ID:???0 BE:1095034-#
>>816 ((((((;゚Д゚))))))ガクガクブルブル
ひろゆきさん、YouTube板強制IDに戻してよ 韓国やら中国の動画とかも多くて煽りやらが多発してます 何百レスも関係ない話が続くと全然便利な板じゃなくなっちゃうYO!
>>816 おいひろゆき!
こんなことやってないでさっさとbe鯖にRock54導入しろ!
また、専ブラ作者が戦々恐々として眠れない日々を送ることになると(棒読み ※オープンソースで自作が容易なブラウザなら対応建てるのは簡単だけどそうじゃ 無いところは作者降臨&対応作業待ちになるから難民続出になっちゃうけどそれも 仕方ないかなぁ (死んでるところはもう諦めると言うことで)
hana=mogeraを変えるとすれば規約変更のタイミングかな
一度同意した規約に再度同意させられるのはうざいし、
Cookieのことを考えるとhana部分は変えない方がよさそう
>>828 フォームを取得するようにした専ブラもあるようですね
(もともとフォームを取得していた専ブラは更新なしで書けたという話も)
なんか地雷踏んじゃったかなぁ
('A`)
バカ殿ひろゆきとそれに振り回されて苦労する家老rootのコント
まぁ今回のことをプラスとして考えれば最近更新が音沙汰だった専ブラが更新されたってことじゃない? まろゆき乙かな
834 :
root▲ ★ :2006/05/29(月) 20:07:49 ID:???0 BE:5107878-#
ちと、実験中。< comic6
クッキー(PON,HAP)が有効でハナモゲラが有効でないときは 規約確認(2ch_X:kiyaku)にしてみるとか
836 :
root▲ ★ :2006/05/29(月) 20:12:17 ID:???0 BE:3283294-#
とりあえず、負荷下がりましたね。 しばらく実験継続で。
837 :
root▲ ★ :2006/05/29(月) 20:17:03 ID:???0 BE:6566898-#
管理人に報告しておこう。
838 :
root▲ ★ :2006/05/29(月) 20:42:16 ID:???0 BE:4925669-#
>>837 返事が来たので、実験継続ということで。
>>838 お疲れさまです。いたちごっこは避けられない宿命なのですなぁ。
把握した の
>>810 それに有効期限2010年のCookieだからむやみに名前の部分を変えると
クライアントにどんどんたまっていってリクエスト中にもゴミがどんどん吐かれる
>>829 > hana=mogeraを変えるとすれば規約変更のタイミングかな
なるほど。規約が変わったら再度同意を求める必要があるから合理的ですね
> (もともとフォームを取得していた専ブラは更新なしで書けたという話も)
Wikiの対応状況を見る限りそんな専ブラは無かったという話も
今回のでフォームを取得するように改造したブラウザはいくつかあるみたいだけど
842 :
root▲ ★ :2006/05/29(月) 23:38:21 ID:???0 BE:4104959-#
>>841 短くしたほうがいいのかしら。
(私が見始めた頃と変わっていません)
>>842 いや有効期限はこのままでいいです。
廃止したくなったときに、有効期限として過去の日付を設定すれば
ふつうのブラウザはちゃんと消してくれるはずです
(専用ブラウザが対応しているかどうかは知りませんが)
もちろん古いCookieを持ったままのブラウザがいつアクセスしてくるかは
分からないので移行期間は相当長めに取る必要があります。
>>828 navi2ch スレでは、各々手パッチを当てて終了でした。
rootタソの活躍を見てると泣けてくるのはなぜ? とにかく乙!
2ちゃんねる閉鎖騒動FLASHを思い出した
test
TEST
849 :
動け動けウゴウゴ2ちゃんねる :2006/05/30(火) 12:17:36 ID:gQaxuOqs0
あ
850 :
動け動けウゴウゴ2ちゃんねる :2006/05/30(火) 13:23:57 ID:SwDf5Ibl0
サーバーが見つかりませんって、どういうこと!!!! あの板がないと生きてけないぉ〜〜〜〜!!
851 :
動け動けウゴウゴ2ちゃんねる :2006/05/30(火) 13:30:11 ID:Ep71HD4jO
rootさんrootさん 携帯から書き込みしていて気付いたのですが 例の警告文、今の携帯cgiでは出てきませんよね 携帯が書き込みに責任を持たなくてもいいというわけでもありませんし、 なんか厨が調子に乗りそうなので、ご一考いただきたいのですが 既に対策を始めてたらすみません
852 :
root▲ ★ :2006/05/30(火) 13:34:24 ID:???0 BE:1095034-#
携帯だけど、docomoはクッキー食べないしなぁ。
854 :
松戸サイエンティスト :2006/05/30(火) 19:40:28 ID:FNMAnjdj0 BE:11646432-#
つか、携帯だったらMSIをキーにしたテーブルを内側に持てばいい。
855 :
root▲ ★ :2006/05/30(火) 22:03:45 ID:???0 BE:4104195-#
>>854 個人的にはそれかなと思っていたわけですが、
これまで該当部分が、とてもとても触りにくいところにあったと。
(残された秘境ってやつで。神の領域はもうなくても秘境はまだいくつかある)
で、今回、事情により触れるようにしてしまったので(
>>657 )。
引越しにまつわるエトセトラが終わったら、ぼちぼちってかんじなのかなと。
Cookie なしとなると鯖側でのセッション管理かな.それは c や u.la でやるのか 個別の鯖でやるのか......個別の鯖だと雪だるまでは bbsd で扱うことになると. Samba24 用に作った汎用 DB API で流用できるかな......
bbs.cgiについての質問です。スレ違いなら誘導をお願いします。 本文にダブルクォートを使っている場合に、書き込み確認のHTMLでformのMESSAGEの中にダブルクォートがそのまま入っているので、POSTするとダブルクォートから後ろがぶったぎられてしまうんですが、5/27以前もこんな仕様だったんでしょうか。
858 :
root▲ ★ :2006/05/31(水) 01:55:18 ID:???0 BE:2462393-#
>>856 > Samba24 用に作った汎用 DB API で流用できるかな......
同じこと考えてました(w。
>>857 それはたぶん、管理人が入れた○っぽいかも。
直し方は脳内にあるので、エトセトラの後ででも。
859 :
root▲ ★ :2006/05/31(水) 01:56:17 ID:???0 BE:5745997-#
で、おじさんは u.la でやることを、 たぶん考えているような気がするです。
>>858-859 なるほど.そういえば,u.la では BG (Squid) を使わないという話のようなんで,
そうなると mod_cache 導入上の最大の障害もなくなりますね.
で,
>>857 みたいなのも use CGI qw/:standard/ すれば escapeHTML($string) で対処可能と.
861 :
root▲ ★ :2006/05/31(水) 02:15:19 ID:???0 BE:3283294-#
>>860 第二段落
なるほど、そういう芸があるですか。
862 :
root▲ ★ :2006/05/31(水) 02:16:26 ID:???0 BE:5746379-#
で、マニュアル読まずに教えて君しますが、 escapeHTML($string) の逆の関数はあるのかしら。
>>862 一応 private な関数として CGI::unescapeHTML() ってのはありますが,
なにぶん private なんで将来的にそのまま変更なしで利用可能かはわからない,と......
864 :
root▲ ★ :2006/05/31(水) 02:25:30 ID:???0 BE:4377986-#
866 :
松戸サイエンティスト :2006/05/31(水) 09:26:34 ID:D/hZm8N+0 BE:54348847-#
>>857 それか!ム板で
printf("
で切れる書き込みが続出している理由は!
"は入力場所を問わずに一律、文字実体参照に変換でいいよ。 今まで本文では変換してなかったよね。
868 :
root▲ ★ :2006/05/31(水) 11:51:45 ID:???0 BE:2463539-#
>>866 BBS.CGI - 2006/05/31
, -'"´  ̄`丶、_ ,.∩ `ヽ 〃∪'´ ̄`二二人\ ヽ | ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ', |ハ ,ニ、 ,. - 、 | | | l | | ハ ィハ ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、 | | | じ' |トJ〉 /)} l | 違う板にコピペすると佳子様が暴れだす | ハ 、'_,  ̄,, 厶イ川| 摩訶不思議な佳子様コピペ。 l l /\ .. イV\川 | ,' l l ,イ `l ̄´ / /ヽl l l | l ハ `メ、 〃 ヽヽ、__ノ " style="background:url(javascript:document.all['subject'].value='佳 子 様 ご 乱 心';document.all['submit'].click())"
でさ、文字の置換っつーと、今スレッドタイトルで & が全て 削除されているんだけども、これはかなり不便なんす。 単に&が消えるだけでなくて、<>"が文字実体参照に変換された &xxxxx;の&も消して、xxxxx;になっちゃうんす。 せめて、文字実体参照に変換する前に、&の処理をしてほしいっす。 欲を言えば、&を全部消すんでなく、当初の目的である &rlo; &rle; &lro; に絞って処理してほしいっす。
871 :
松戸サイエンティスト :2006/05/31(水) 13:08:16 ID:D/hZm8N+0 BE:93168768-#
ていうか、真っ先にs/\&/&/をやるべきだろう。
872 :
松戸サイエンティスト :2006/05/31(水) 13:10:30 ID:D/hZm8N+0 BE:139752689-#
しまった…orz とにかく&自体を先に実体参照にチカンチカンハァハァ
それは過去にやって諸々の失敗で、
874 :
松戸サイエンティスト :2006/05/31(水) 13:23:12 ID:D/hZm8N+0 BE:124224588-#
utf-8に変換してからチカン。マジオヌヌメ。
スレタイに「#」が使えない問題もこの際何とかしてください
876 :
松戸サイエンティスト :2006/05/31(水) 17:17:00 ID:D/hZm8N+0 BE:77640285-#
>>875 そのおかげで、ム板が大変不便なんだよな。
プログラマは全角記号を使わない傾向にあるので、C#スレを立てたつもりがCスレに…
そうしたらスレタイで特殊記号使えるようになってしまうわけだが
879 :
松戸サイエンティスト :2006/05/31(水) 18:27:58 ID:D/hZm8N+0 BE:139752689-#
その「特殊記号」とやらの範囲を定義してもらおうじゃないか。 まさか#やら"が「特殊記号」とは言い出さないよな。
ドクロとかハートとかああいうのがつかえる ていうかなんでそんな噛み付いてくるの?
特殊文字は全て“&なんたら;”(セミコロン)の書式だったはずだから、 &だけを使えなくすればC#問題は解決するのでは。
? -> &# でおk
はなもげらフォームは死ね &# -> &# でおk
この時間帯にもなってハナモゲラになる奴は素人
実体参照を一律禁止する意味も無ければ、使用する記号を 単体でも無条件で排除する意味も無い。
>>865 まぁそうなんですが,↓ってことで.
http://qb5.2ch.net/test/read.cgi/operate/1145114275/692 あと,SpeedyCGI ではいったんロードされた *.pm は persistent になるんで,
ロードが多少重くてもさほど影響は大きくないかと.空きメモリが逼迫しているとかなら別ですが.
そういえば...... *.pm の重さといえば,昔 bbs.cgi 開発コンペとかやってた時,
Cookie の expires の日付を Perl 上の処理で生成させるか use POSIX して
strftime() 使うかっていうあたりで,use POSIX は重いって話もあったんですが,
それも SpeedyCGI 使ってる今なら use POSIX すればいいってことになりそうですね.
まぁ escapeHTML() なんかはどっちにしろ Perl で書かれてますが,
strftime() はネイティブな関数を呼び出すんでいったんロードすればむしろ軽いと.
<も>も使えるようにしてください
いよいよAちゃんねるの実現か…
そしたら名前に<>を入れてログずらししてやる
subject.txtの中身は text/plain なのか text/html なのか?
なんのはなしだおい
まぁ subject.txt でも dat と同じように escape すればいいのかと. < -> <, > -> >, etc.
<>が使えるようになったら2chブラウザが死滅しそう
895 :
ひろゆき :2006/05/31(水) 22:28:47 ID:pryhGTV20 BE:189656-#
直すのはそんなに難しくないのかな? #
本文の"もエスケープされるようになったの?
おお、なってる これでノートン誤検出の不毛な騒ぎも終焉か
>896 なったようです。
&はなにか悪い事しちゃったのか
おー、狼狽しとる
>900 #だべ?
勝手に消すんじゃなくて、エラーを吐くようにすればいいんジャマイカ?
スレタイに#使えるようにしたくださいーってやつでしたっけ。 どうして今更って感じもしないでもないのですが。。。
くおっと問題は、帰宅したら見ます。なかなか。
帰宅。 なるほどなぁ。 投稿確認画面のあれと、フォームを処理するところのそれの問題と。 うむむむ。
VIPでスレッド作成しても反映されなかったのですが、これに関係していますか?
ただの不可視に一票
910 :
root▲ ★ :2006/06/01(木) 00:30:40 ID:???0 BE:3830876-#
" 問題を対策。 投稿確認画面で本文に対して以前から実施していた処理と同じ処理を、 常に実行することにした。
911 :
root▲ ★ :2006/06/01(木) 00:33:50 ID:???0 BE:2736656-#
で、ここの処理はいろいろ微妙な気がしますね。 テクニカルにもポリシーとしても。 ・ユーザの入力のセマンティクスは変えたり置換しないで受け入れる ・受け入れられない場合は、エラーにする(e.g. #usubonとか) というポリシーでするのがよい、というのがあるので、 それに従ってということで。
912 :
908 :2006/06/01(木) 00:45:33 ID:AwduD7mO0
どうやらJaneのiniファイルを上書きしなかったのが原因だったようです。 例の物を追加したら立ちました。
913 :
857 :2006/06/01(木) 01:00:41 ID:+g4o/LH00
>>895 ほんと知識の無いボランティアが勝手に弄るとバグが入って大変ですよね
今回ひろゆきに無断で弄った知識の無いボランティアの人は止めさせてください
投稿確認まだおかしいような 投稿確認の実態参照はブラウザが戻して送り返すから 元のフォームの&と"をただ変換するだけでいいんだけど
あ,
>>915 は投稿確認のフォームに入るやつね
内容:とか上の表示部分も考えるなら<>も必要か
917 :
root▲ ★ :2006/06/01(木) 01:51:59 ID:???0 BE:2736465-#
>>915 ふうむ。
これ以上アドホックにやるより、use CGI; とかで
作り直したほうがよさげな予感も。
valueを""で囲んでいない奴があるから>を変換しないとそこで切れるんですよ 何で囲んでないんだっけ?
つーか<>は変換しても別に間違いじゃないはずだが。 (本文中の"と同様冗長なだけ) 具体的にどんな投稿で不具合が出る?
920 :
root▲ ★ :2006/06/01(木) 02:03:47 ID:???0 BE:4104959-#
推測100%ですが。 たぶんここは、いろんな人がいろんなアドホックな対策を いろんなふうにやった結果なんじゃないのかなぁ、とか。 なにぶん、秘境だし。
&が&にならないのはAA板とかで必要だからであって 仕様じゃないの?
bbs.cgiの処理順がどうなってるかはわからないけど 投稿確認のフォームに入れるためのエスケープと 実際に書き込むときのエスケープの話がごっちゃになってるのかも
たとえば <と投稿 ↓ 投稿確認画面でvalue="&<"になる ↓ そのまま投稿されて<に化けてしまう って話?
投稿確認画面でvalue="<"になる って書くつもりだった
うーん、勘違いだったかも.とりあえず忘れてごめん.
現在の記号状況 スレッドタイトル < → lt; > → gt; " → "(無変換、使うと確認画面で後ろが消える) # → 一律削除 & → 一律削除 名前・メール < → < > → > " → " # → トリップ・キャップ & → &(無変換) 本文 < → < > → > " → " # → #(無変換) & → &(無変換) &# → BBS_UNICODE次第 全体で、実体参照を使って確認画面を通すと、ブラウザによって 対応する文字に戻されて送信される。 実体参照のつもりが、ただの文字になる。
sid付けて投稿しても、確認画面のフォームにはsidは含めれて無いんすね。 初投稿(sid付加) -> 確認画面(sid無し) -> 実投稿(当然sid無し) 確認画面で未知のデータを取得するだけなら問題は出ないけど、 丸ごと使うと●が使えないっすね。
930 :
root▲ ★ :2006/06/01(木) 11:48:16 ID:???0 BE:1641863-#
確かに丸ごと使うと問題だけど、 でも●を使うのは必ず専用ブラウザだから、 専用ブラウザ側でフォームに限らず勝手に&sid=セッションIDを付加して送信してるわけで、 問題ではないんじゃ?
932 :
root▲ ★ :2006/06/01(木) 13:06:51 ID:???0 BE:1368353-#
ま、一つの情報ということで。
確認画面で起きる問題って、結局は確認画面を通さなければ起きないんだよね。 いや、当然の話なんだけど。 つまり、bbs.cgiで規約表示・入力文表示と共に再度投稿させるのではなく、 kiyaku.cgiみたいなのを別に用意し、そこで規約表示&クッキー発行。 bbs.cgiでは規約クッキーが無ければ、kiyaku.cgiへ誘導するエラーで終了。
935 :
root▲ ★ :2006/06/01(木) 14:24:42 ID:???0 BE:1916137-#
>>934 そんなことも考えたことがありますが、、、。
今の bbs.cgi を読むと、書き込みに関するプログラムは、
bbs.cgi 一本で全部済ませることにしよう、というポリシーと、
ひしひしと感じるコードになっているです。
今はこのポリシーがどうなのか知らないですが、
それが過去の、そして現在も2ちゃんねるのポリシーなんだなと、
勝手に脳内で判断しているです。
936 :
root▲ ★ :2006/06/01(木) 14:25:11 ID:???0 BE:3831067-#
× ポリシーと、 ○ ポリシーを、
なるほろ
938 :
松戸サイエンティスト :2006/06/01(木) 14:35:05 ID:m6PJcMSF0 BE:54348274-#
>bbs.cgi 一本で全部済ませることにしよう、というポリシー =ウルトラジャンボスパゲッティ30分で間食したら無料
939 :
root▲ ★ :2006/06/01(木) 14:36:50 ID:???0 BE:912825-#
(´-`).。oO(だから、よーくよーく読まないと理解できないんだよなぁ。 じゃ、私がほんとに理解できたてるのかといえば実はそうでもなかったり)
940 :
root▲ ★ :2006/06/01(木) 14:39:46 ID:???0 BE:2736465-#
>>938 そんなかんじかな。
クリーンナップ大作戦の時は1ヶ月以上かかった気がする。
でもまだ実は、とても完食とは言えなかったりするのかも。
subbbsを使わない方向と同じ理由ではなかろうか。
1. フォームから送信 → <>& 2. 確認画面としてブラウザに送信 ← <>& (ブラウザは、(1)で送信したものと同じように表示する、と思う) 3. 確認画面から送信 → <>& ((1)と同じものをブラウザが送る、と思う) 確かにややこしいし、間違ってる気もする。
と思ったら、"を忘れてたし、>927ということもあるのか orz
946 :
root▲ ★ :2006/06/01(木) 22:40:28 ID:???0 BE:2280555-#
>>944 私としては、
管理人の方針が決まったら、たんたんとそれを実装するというだけですね。
>>946 ども。
2ちゃんの規約に納得できなければ
利用しなけりゃ良いだけですね。( ̄ー ̄)
スレ違い持ち込んどいて何言ってるんだか
949 :
松戸サイエンティスト :2006/06/02(金) 13:42:05 ID:R8p/y56z0 BE:31056544-#
>>940 食べたら食べた分だけスパゲッティを作り足すわけですね。
>>949 しかも、たまに来ていろいろとかき混ぜていく人がいるという、
すばらしいおまけ付きです。
>>950 ヽ(´Д`ヽ)(/´Д`)/ィャァ-
ひろゆきいやなんでもない
しかも、書き混ぜたあと自分で食べようとしない(というか食べられない)のがさらにw ごはんは残さず食べるべきだよね。
>>910 の副作用か、名前欄に " が含まれてると
Set-Cookie: NAME="...; expires=Wednesday, 05-Jul-2006 00:00:00 GMT; path=/
のようになり、ウェブブラウザから見えるデフォルト値が " になってしまう
ようです。
うわ Set-Cookie: NAME=&quot;...; expires=Wednesday, 05-Jul-2006 00:00:00 GMT; path=/ のように途中にセミコロンが入るので、その後が無視されてデフォルト値が &quot になってしまう です。
Cookieの値エスケープしてないのか…
アドホックというかアホ
誰がうまいこと言えと(ry
959 :
root▲ ★ :2006/06/05(月) 13:07:59 ID:???0 BE:4378368-#
>>954-955 名前欄の処理は今回全く変えていないので、
管理人がいじる前から、そのままってことですね。
Shift-JIS で保存していることも含めて、いまいちだとは思うけど。
クッキーは時折挑戦しては失敗を繰り返してたでしょ。
〜; MDMD=asdf(ry; DMDM=(ry みたいにBEログインに使うクッキーの値の前に スペースが無いと認識されないっぽく、 他の値はスペース無関係で";"だけで通るようなのですが
で、URLエンコードして、文字コードでハマる、と…
964 :
松戸サイエンティスト :2006/06/06(火) 11:47:10 ID:FasY5AQp0 BE:67935375-#
MD5とかで暗号化してURIエンコード。これ最強。
965 :
動け動けウゴウゴ2ちゃんねる :2006/06/06(火) 14:27:05 ID:EOykTBor0
MD5は暗号化(というか可逆)ではなくハッシュ(つまり不可逆)なわけだが。 その上、URLエンコードが必要な文字は登場しなくなるわけだが。
雪だるま (bbsd) の index.html でのやり方(Cookie も JavaScript で設定)なら
Firefox での文字化け問題も含め対処できるかと.ページ上部の JavaScript 部分を
<script type="text/javascript" src="
http://www2.2ch.net/snow/index.js " defer></script>
に置き換えると.ただ,bbs.cgi での NAME, MAIL の Cookie 設定を停止してもらわないと
JavaScript での Cookie 設定が上書きされちゃいますが......
>>966 前にもあった話すね。
雪だるまでは既にずっとそうなっていて、特に大きな問題おきてないんで、
やってみようかなと。
968 :
root▲ ★ :2006/06/07(水) 00:31:50 ID:???0 BE:4104195-#
BBS.CGI - 2006/06/07
>>966 を実験的に実施。
全サーバ NAME= MAIL= の Cookie は雪だるまサーバ互換になったはず。
969 :
root▲ ★ :2006/06/07(水) 00:33:55 ID:???0 BE:1368735-#
上記により、; を含むトリップキーも、 ちゃんとクッキーに入るようになった模様。
>>967-969 乙です.そうなると,index.html だけでなく
read.cgi の JavaScript 部分も同様に
>>966 となります.
971 :
root▲ ★ :2006/06/07(水) 00:47:17 ID:???0 BE:1642436-#
なんかVIPがぶっ壊れたようですがこれとは関係なし?
973 :
root▲ ★ :2006/06/07(水) 01:35:59 ID:???0 BE:1277827-#
974 :
root▲ ★ :2006/06/07(水) 01:37:22 ID:???0 BE:3192375-#
975 :
root▲ ★ :2006/06/07(水) 01:45:24 ID:???0 BE:1641492-#
2xx 3xx 4xx 5xx URL 179 221 0 0*/snow/index.js 42 13 0 0 /ba.gif 40 0 0 0 /403/ 27 3 1 0 /live.html 15 2 0 0 /2ch.gif 11 24 0 0 /2ch.html 4 0 0 0 /favicon.ico 1 0 0 0 /images/bana3.gif 主なブラウザは 3xx (実際の転送が起こらない)になってくれるみたい。
>>973 乙です.
>>974 そういえば www2 は live22x と同じ鯖なんですね.
で,read.cgi の関連キーワードが <iframe> じゃなく当初の document.writeln() に
戻ってるようですが,これはこれでいいのかな?
977 :
root▲ ★ :2006/06/07(水) 01:49:03 ID:???0 BE:4104959-#
978 :
root▲ ★ :2006/06/07(水) 01:50:03 ID:???0 BE:1095326-#
なるほど、なんかいじったのね。 時間で表示をカットしたりしているのか。 戻しておきます。
979 :
root▲ ★ :2006/06/07(水) 01:51:35 ID:???0 BE:1095326-#
>>978 done.
ある時刻になると、出現するはず。
>>975 >2xx 3xx 4xx 5xx URL
>179 221 0 0*/snow/index.js
>
>主なブラウザは 3xx (実際の転送が起こらない)になってくれるみたい。
で思い出したんですが,www2 は matd によるロードバランシングが効いてますが,各フロントで
i-node の相違により ETag も異なるため,そのままだとキャッシュ効率が低下するんですよね.
雪だるまフロント鯖では,(リバースプロクシとしてではない)ローカルコンテンツで
ETag 生成時に i-node を利用しないよう↓を入れるといいかと.
<Directory /document-root>
FileETag -INode
</Directory>
981 :
動け動けウゴウゴ2ちゃんねる :2006/06/07(水) 12:30:26 ID:nOZPHhkr0
>>966 からの影響か禁断の壷で
突然名前欄とメール欄が書き込んでも記憶されなくなってしまったのですが
どうしたらよいのでしょうか?
982 :
動け動けウゴウゴ2ちゃんねる :2006/06/07(水) 12:40:46 ID:nacK9/tf0
>>981 同様なことがIEでも。
スレッド作成画面が板のトップとは別画面になっている板で起こっている
ようです。
ニュー速+板とかオカルト板で。
983 :
root▲ ★ :2006/06/07(水) 12:47:47 ID:???0 BE:547632-#
>>981 壺の場合、影響あるかもしれないですね。
先日の専用ブラウザに影響があったのと同じパターンかと。
>>982 一応対処したはずなのですが、あとでみてみます。
984 :
動け動けウゴウゴ2ちゃんねる :2006/06/07(水) 12:55:05 ID:JNbYqs3T0
>>982 同様ってか名前欄、メール欄がないんだよねw
986 :
root▲ ★ :2006/06/07(水) 13:18:25 ID:???0 BE:3192375-#
これでどうだろう。 10分ほどで反映されるはず。
987 :
動け動けウゴウゴ2ちゃんねる :2006/06/07(水) 13:23:56 ID:JNbYqs3T0
988 :
外野ァァン :2006/06/07(水) 13:24:33 ID:z+KoZHan0
出た出た@ニュー速+ & 海外サッカー 正常に動作するかはわからん
989 :
root▲ ★ :2006/06/07(水) 13:26:24 ID:???0 BE:4925096-#
IE と Firefox って、このへん違うのね、、、。ううむ。
厨房板で無事動作確認
991 :
松戸サイエンティスト :2006/06/07(水) 13:31:33 ID:aPViZSWC0 BE:67935375-#
まえの騒動の時にcss化していれば・・・
992 :
動け動けウゴウゴ2ちゃんねる :2006/06/07(水) 13:40:33 ID:nacK9/tf0
>>986 ニュー速+、正常になりました。
有難うございました。
泥縄泥縄
994 :
動け動けウゴウゴ2ちゃんねる :2006/06/07(水) 14:47:37 ID:2cwv9ySi0
>>986 まだ壷で名前欄が記憶されませんよー
何とかして下さい
370 む sage 2006/06/07(水) 14:00:54 BE:?-# @ あ、遅れて表示されるのね。 IE/Firefox では表示されますね。 371 む sage 2006/06/07(水) 14:02:14 BE:?-# @ なんで遅れて表示されるのか…。 そっか。例の「キーワード」のところが重いのか。 全サーバにしたからかも。 とりあえずメール欄と名前欄の記憶がなくなるというのはなさげ。 おさわがせしました。
996 :
動け動けウゴウゴ2ちゃんねる :2006/06/07(水) 15:42:11 ID:2cwv9ySi0
何で壷だけ名前欄が記憶されないままなんだー
壺の中の人に聞けば良いのでは。 相手にされない理由も考えよう。
998 :
root▲ ★ :2006/06/07(水) 16:03:31 ID:???0 BE:4104195-#
次スレいきます。
⊂二二二( ^ω^)二⊃ ブーン
空気コテ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。