◎正当な理由による書き込みの削除について: 生島英之とみられる方へ:
bbs.cgi再開発プロジェクト5->画像>1枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/operate/1103495887/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。
【開発環境の工事現場】
また挑戦。@2ch掲示板 http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/
関連スレなどは >>2-5 くらい J2EE+Struts+Tomcatなら完全フリーだっけ
べつにJavaでもPerlでもCでもPythonでも何でもいいんだよ。
習得コストとメンテコストと導入コストのバランスさえ考えれば。
あとJavaを使えって行っている奴は、2chのサーバーがFreeBSDで構築されていることに自覚無いのか?
もしJavaを使うためにLinuxにするとしたら、それなりに管理コストやらOSライセンス代金もかかるぞ。
すべてはバランスなんだよ。
>>8 バランス考えた上での
>>8の意見がないな。ただ反発するだけはイクナイ(・A・)
TCO考えるとWindows2003+ASP.NETにしてしまうという手もあり?
お金あればだけど。
Java系は文字コード変換のコストがかかるから
無条件に軽いとは言い切れない面があるし。
bbs.cgiは他の処理が多いからまだしも
read.cgi改良時に「servletに」という意見が出なかったのは
2chがSJISだからというのもある。
確かに、Perl、PHP、以外では文字列処理での不便はあるな。
しかしごりごり書いてしまうと言う荒技もある。
Cでとかならそれでもさほどコストに見えないほどの速さの開きもあるし。
あと定量的なデータとしてちょっと経路が違うけどTPC-Wベンチマークのの価格性能比一覧。
http://www.tpc.org/tpcw/results/tpcw_price_perf_results.asp Windowsの独壇場だけど、Linux、FreeBSDでチューニングを極めてる企業がないせいもあるかも。
alarm() のかわりに poll() を使うらしいです。
あとは夜までアクセスできない模様。
そもそもbbs.cgiがCでもなくPerlな理由って、
管理人がいじれなくなるからだったと思う。
その管理人って具体的に誰だろう。FOX氏はPerlも文法知らないと言ってたし。
2chの管理人は‘永遠の19歳’西村博之です。
管理人がPerlを知っていたとしても、もやは複雑すぎて
ほとんど弄れないレベルになっていると思うけど。
ひろゆきはCも分かる予感。read.cgiいじってるし。
メンテナンスの容易さ、いじれる人の多さが理由じゃないすかね。
いじれる人の多さならJavaも多いと思うけど(★持ちではどうだかしらんけど)、上を見るにFreeBSDってJVM提供されてないのかー。
理想はC版でかつ共通部分をapacheモジュール化。
かといって2ch運営陣にそこまでやろうとする人的リソースが足りないけと。
実家にて会社に来てるメールを吸い上げ中、、、。
Apacheモジュールにすると、暴走した時にやです(歯止めがきかないから)。
mod_speedycgiにした時にそう思いました。
もちろん、暴走しないように組めばいいわけですが。
あとモジュールにすると、SuExec環境と仲悪いしね。
今のやり方(SpeedyCGI)は、決して悪くないと思うですよ。
>>20 確かに現状を鑑みると十分そうですね。
まだまだチューン必要ですけど
dsoは究極の形だとおもうぞ
dinamic shared object に惚れました。
banana229(that3/book3/travel2/bubble2) 完
banana274(qb5/qb6/science3/academy3) 完
_ ∩
( ゚∀゚)彡 FOX ★!FOX ★!
⊂彡
FreeBSDでもJava動くぞ。
ネイティブでな。
Linuxとの比較ならまだしも全否定か・・・
とりあえずJAVAの方が読み易いのは確かかと。
Perlは他人のソース見たくない。
8だけど、バランスを考えた上で選択するのならPerl(mod_perl)じゃないの。
Cでゴリゴリ書いても、コーディングスキルがない人が書いたCはそんなに速くないよ。
普通のスキルの人が書いたPerlのほうが安定している。
個人的にはmod_pythonもオススメしたいが、ひろゆきがpython学ぶつもりがあるかどうかに左右されるかも。
>46
Perlのソースがどうしても読みにくいというのは否定しないけど。
Perl5.6以降のOOPな書き方をちゃんとすればそれほど読みにくくないと思うよ。
PerlからJavaとかPythonに移るぐらいならC++とかにいくと思うぞ。
マシン負荷を考えたらだけど。
言語がドウコウという話はどうでもよく...
常駐化されIF部・コアロジック・バックエンドDBの形になればよろしいかと。
理想を言うとHTMLブラウザ用IF以外にビュアー用のIFが欲しい。
今のビュアーはグチャグチャな仕様に対応するための例外対応や場当たりな対応が多すぎる。
>>51 JavaのStrutsのMVCモデルなら、
>常駐化されIF部・コアロジック・バックエンドDBの形になればよろしいかと。
...はすべて満たされるかと。
>理想を言うとHTMLブラウザ用IF以外にビュアー用のIFが欲しい。
これは設計次第と解釈。
そんな状態ならPerlで続投するにしても早いうちに設計見直し必要ではないかな。
>>52 >>ネイティブでな。
>詳しく。w
FreeBSDがもっているLinuxバイナリ互換機能を使用したLinux版JREの実行ではなく
FreeBSD用のJREがあると言っているだけでは?
昔はLinux版を互換機能(エミュ)で動かしていたが今はFreeBSDネイティブな
javaコマンドが在る。
誰もjavaで書かれたユーザアプリがフルネイティブコンパイルされるとは言って
いないと思うが・・・
>>54 ああ了解。そういう事情があったのですか。
あ、でも、FreeBSD用のWASってあるのかな?TomcatをコンパイルすればOK?
>>53 Strutsかどうかは気が早いような気もするが、Javaなら(というかJ2EEなら)
できるには同意。
エンタープライズを想定したプラットホームだから。
商用SWは無理だろうから、雄猫とDB(FireBird?ポスグレ?mySQL?)が耐えられるように
してあげる必要は在るかも。
>>56 残念ながらWASはFreeBSD上ではサポートされません。(頑張ればLinux互換機能で*動く*かも)
とりあえず雄猫かと。コストかかんないし。
それにしてもWASで通じている人が何人いるのか心配(w
# IBM WebSphere Application Server
>>58 いや、WAS= Web Application Server では?WebShpereとは限らない。
今回EJBはいらんのでWASの話は大げさかもだけど。
わたしは「雄猫」ってのがわかりません。_| ̄|○
もしかしてTomcatのことかな。
Practical mod_perl
http://modperlbook.org/ CCライセンスで公開されている。
banana241(news15,news16,news17) 完
これで bbs.cgi はSpeedyCGIのものに統一されました。
(superfreeを除く、sakubbs.cgiを除く)
関係者の皆様方 よろしくです
>>84 今日は記念日すか。
なに記念日にしますかね。
あなたが記念日にしようと言ったから 今日は記念日記念日
クリスマスはキリストの誕生日以外に
本来冬、至の記念日が起源だとか、どこかで聞いた希ガス
そういやキリストの真の誕生日は7月って説があったな
聖書の記述から推理するとそうなるらしい
bbs.cgi が吐くRockのログ Rock54-104-12-21.txt のフォーマットがおかしくなってるみたいなんですけどー
Rockは効いてるのに
http://halcyan.30.kg/klist/list.php?filepattern=-12-21&kwd_sv=&kwd_host= が04/12/21 17:42:41 から更新されなくなりましたー
ご確認お願いしますー
うお、はやっ
実験してみて報告しますー
反映まで10分くらいかかるかもですー
>>59 マジレスすると今はTomcat等をアプリケーションサーバとは呼ばないのです。
J2EEが出て少し経ったころに「コンテナ」と呼ぶようにSunから御触れが出ました。
Servletコンテナとか、EJBコンテナとか、J2EEコンテナとか。
正式な呼び方は忘れてしまいましたが一般的にこんな感じで呼ばれてます。
雄猫はTomcatの愛(?)称です。
英語のドキュメント翻訳すると雄猫ってなるので。
質問・雑談スレ86@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1103460767/578 こういうのをある程度防ぐために、以下の手法がよく使われていますが、
さて、どうしましょうかね。
1)gethostbyaddr()して得た名前
(いわゆるリモホ、今まではそのまま信用)に対してgethostbyname()する
# そもそも引けなかった時(生IPアドレス)は、gethostbyname()しても意味がないので注意
2)得られたIPアドレス群(gethostbyname()で得られるIPアドレスは一つとは限らない)に
最初のIPアドレスが含まれているか調べる
3-1)IPアドレスが含まれていれば
1)の結果を信用する
3-2)含まれていなければ
1)は偽装とみなし、逆引きできなかったことにする
ログ記録(BBXとかBBQとかも)で不都合がないのであれば
そのままでもいいんでないかと。
いちいち参照するのは無駄なような気がするです。
と、中身もよくわからずに書いてみる。
リモホは参考程度でいいんでないすか?
結局はIPで作業するわけで、、
3回作業コストかけるのはもったいないような。。
>>108 ふむ。了解。
元のIPアドレスが内部的に記録されるんであれば、それで十分と。
もしくは、fusianasanのときにIPも出すようにするとか。
IP「も」ってことね、
やってみるかな、
問題があるとすれば名前欄の長さ制限かな?
X_FORWARDED_FOR(だよね?)を使うのをやめるとか。
fusiana の時だけ特例で「ちょっと」のばすとか・・・
>>113 あー、それはいいかも。
現状でも長いホスト名の人だとfusianasanができないこともわりとあるし。
fushianasanのIP(0.0.0.0)化ですか。
hostname知りたい人は各自でgetbyhostnameとかしてください。と。
いいんじゃないですかね。
>>115 生IPアドレス「も」出すってことなのではないかと。(
>>111)
っ▲
(゚〜゚)モグモグ
IP付きふしあなて名前欄じゃなきゃだめなん?
そういや mokorikomo はどうなったの?あれの復活だめなの?
お題「SpeedyCGI(Perl)でタイムアウトはどう捕まえるの?」
bbs.cgi のバージョン表記(各板のindex.html下部)に
SpeedyCGI=yes と表示したのは大失敗だった。
ぐーぐるに大量に引っかかる〜
世界中でさがしたら ロシア語ばっかり引っかかるし
途方にくれてきたぞ、
表示設定をクリックするのだ。
(クリスマスじゃなくてHappy Holiday なんだなー。)
> root ★さん
timeout の処理の実験するとき
たとえば bbs.2ch.net. のかわりに適当に
BBB.2ch.net. なんてのを使えばいいですかねぇ
>>133 それだと、すぐに結果が返っちゃうですね(ないよ、と言って)。
タイムアウトするようにするには、ひとつ子供のゾーンを切らないとだめです。
peko.2ch.netの下にわざとタイムアウトするドメイン名をひとつ作りますので、
それを使ってくださいです。
timeout.peko.2ch.net ってのを作りました。
ここの配下は必ずタイムアウトします。
bbs.2ch.net のかわりに、timeout.peko.2ch.net をつけて
gethostbyname() するようにしてください。
timeout が timeout しないような。。。
と 思ったら
このスレでテストしていた。
ぎゃふん
>>140 このコマンドどうなります?
dig -t a a.b.c.d.timeout.peko.2ch.net.
In start_perl, use a poll() timeout instead of an alarm to implement the timeout
while waiting for an accept. It's cleaner than a signal.
らしいんだが、Perlでpoll() ってどうやって使うんだ?
poll() っていうぐらいで、select() のように fd ベースでやる時に使うのかな。
とすると、gethostbyname() の待ちには使えないのかな。
んでは、どうすべきか。
待ちじゃなくて、タイムアウトでの抜け出しと。
今こうやっててうまく動かない、ってのを、
まずは書き出してみるといいのかも。
で、こういったalarm()を使う手法がSpeedyCGI配下では使えないとすると、、、さて、どうすべか。
ってことですね。
>>147 いろいろ読んでみたけど
どうもそのようなんです < fd
>>153 サザンさんバージョンですね。
この手法が使えないとすると、、、。
どうやるんだろう。
$SIG{ALRM} = \&timeout;
のところの指定を、SpeedyCGI 流にしないといかんのだろうか。
わたしは斜めにしか理解してないけど、例のグローバルバリュー問題とか。
まとはずれだったらごめんなさい。
IO::POll はいわゆるハンドルだったら使えるみたい
たとえば IO::Socket で作ったオブジェクトのハンドル
もちろん IO::File で作ったファイルハンドル
IO::Socket でオブジェクト作って getHostbyName と等価なことできないのかしらん?
>>154 たぶんシグナルは発生するんだと思うけど、、、
SpeedyCGI配下では伝わってこないんだと思う(推測)
よって捕まえることはできない、、
もしくは eval がどのようにコンパイルされているのかとか、
http://www.net-dns.org/docs/ http://www.net-dns.org/docs/Net/DNS.html で、該当名のAレコードがあるかどうかというのが、
gethostbyname() と等価ですね。
tigerには入れてあるけど、bananaはどうかな。
ちょっとみてきます。
qb6には入ってますね。
たぶん、全banana/tiger/cobraで使えるでしょう。< Net::DNS
Net::DNS あたりは
あらかじめタイムアウトの設定が入っているのかな?
そんな気がするが、
で、、、Net::DNS って、いわゆる Dynamic update にも対応してるから、
クライアント側からサーバ側へのダイナミックな登録
(例えばbbs.cgiからのダイナミックなDNS DBへの登録)とかも、できるはずですね。
もちろんその場合、サーバ側がDynamic Updateに対応している必要があります。
ここのサンプル見ると、入っているように見えますね。
http://www.net-dns.org/docs/Net/DNS.html つか、まさにこれ?
Send a background query and use select to determine when the answer has arrived.
use Net::DNS;
use IO::Select;
my $timeout = 5;
my $res = Net::DNS::Resolver->new;
my $bgsock = $res->bgsend("host.example.com");
my $sel = IO::Select->new($bgsock);
# Add more sockets to $sel if desired.
my @ready = $sel->can_read($timeout);
if (@ready) {
foreach my $sock (@ready) {
if ($sock == $bgsock) {
my $packet = $res->bgread($bgsock);
$packet->print;
$bgsock = undef;
}
# Check for the other sockets.
$sel->remove($sock);
$sock = undef;
}
} else {
warn "timed out after $timeout seconds\n";
}
もう、わたし限界っす。
Net::DNS使う方針なら、たぶんかなりエレガントに書けるですね。
あとはマニュアル・ドキュメントを読んでいただけると、うれしいっす。
というか、こういうモジュールを柔軟に使えるのも、PIEに移ったおかげかもですね。
tcp_timeout
print 'TCP timeout: ', $res->tcp_timeout, "\n";
$res->tcp_timeout(10);
Get or set the TCP timeout in seconds. A timeout of undef means indefinite. The default is 120 seconds (2 minutes).
udp_timeout
>>164 通常のDNSの場合UDP使っているので、UDPのタイムアウトも指定する必要ありです。
というかたぶん、
>>162 の例をアレンジする方針がよさげ?
おやすみです。
>>166 はい、了解です。
でもなんか、糸口がつかめそうな予感。
banana238ですが、
live8 に激しく来た時もバッファ溢れしなかったし、
思い切ってバッファでかくしたのは、効果あったかも。
なにせCPUもディスクも遊んでいるから、もうちょっとあがいてみたいなと。
その1
これでうまく行った
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
my $ans = $res->query($BHOST);
tcp/udp の timeout をそれぞれ 1(sec) にした。
0だとどうかなと思ってやってみたら、だめだった。
もっと短くする方法は無いものか
専用のサブルーチンを作った
sub foxDNSquery
{
my ($host) = @_;
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
$res->retry(1);
my $ans = $res->query($host);
#we don't need answer.
}
新スレ立ったとき
my $AHOST = "$GB->{NEWTHREAD}.$GB->{FORM}->{'bbs'}.$ENV{'SERVER_NAME'}.bby.2ch.net.";
&foxDNSquery($AHOST);
全ての投稿(成功時)
my $BYTES = length($GB->{FORM}->{'MESSAGE'});
#my $BHOST = "$GB->{NOWTIME}.$$.$ENV{'REMOTE_ADDR'}.$GB->{NEWTHREAD}.$BYTES.$GB->{FORM}->{'key'}.$GB->{FORM}->{'bbs'}.$ENV{'SERVER_NAME'}.bbs.timeout.peko.2ch.net.";
my $BHOST = "$GB->{NOWTIME}.$$.$ENV{'REMOTE_ADDR'}.$GB->{NEWTHREAD}.$BYTES.$GB->{FORM}->{'key'}.$GB->{FORM}->{'bbs'}.$ENV{'SERVER_NAME'}.bbs.bbs.2ch.net.";
&foxDNSquery($BHOST);
配布完了。
とくに苦情が無ければ BBS , BBY を落として
ちゃんとタイムアウトするかの実験が可能でーす > root ★さん
おふろ入ったら、ちょっと目がさめちゃった。
でももうねるる。
>>170 $res->bgsend って、どうなんだろう。
http://www.net-dns.org/docs/Net/DNS/Resolver.html まずは、DNS queryがちゃんと出てるか、サーバのほうを見てきます(w。
BBS/BBYにはquery来ている模様です。
BBQとBBMはまだ元の状態ですか。
んじゃ、BBSを落としてみるかな。
これ書いたら、BBS止めます。
おおっ
>>181 BBQ,BBM 等答えが要る系はもちっと勉強してからになるです、、
>>186 なるほど、Net::DNS::Packetの解析方法すね。
ちょっぴりDNSの知識が必要すね。でもそんなに難しくないです。
一回タイムアウト検出したら
その船からは二度と聞きに行かないという実装もありかもかも
>>189 二度と、はつらいかな。
しばらくの間、ってのがよさげ。
で、Net::DNS::Packetのやり方をちょっと書いておくです。
#we don't need any answer.
だったっすね、
>>177 The program must なんたらが気になるっす
#! /usr/bin/perl
use Net::DNS;
my $res = Net::DNS::Resolver->new;
my $ans = $res->query('2ch.net');
@answer = $ans->answer;
print "address = ", $answer[0]->address, "\n";
BBQやBBMは、このパターンでOKかと。
というか、Perlぜんぜんわかんないんで、超みようみまね。
で、undefだったらBBQやBBMにはひっかかってなくて、
127.0.0.1だったらひっかかってる、って判定すればいいはず。
はいはーい
明日以降挑戦してみるです、
それにしてもPerlの達人が居ればねぇ
たしかに、、、。
で、DNSのことは少しは知っているので、ちょっとやってみた。
なるほど、数はこうやってとればいいのね。
(c.2ch.netはアドレス2つ)
#! /usr/bin/perl
use Net::DNS;
my $res = Net::DNS::Resolver->new;
my $ans = $res->query('c.2ch.net');
@answer = $ans->answer;
print "count = ", $ans->header->ancount, "\n";
print "address = ", $answer[0]->address, "\n";
print "address = ", $answer[1]->address, "\n";
ということで、
undefになった場合 または undefじゃなくても、ans->header->ancountが0の場合
は、BBQ/BBMにひっかかってないとみなし、
ans->header->ancountが1以上で、配列の中身が127.0.0.2なら
BBQ/BBMにひっかかっているとみなせばいいのか。
ここまでわかれば、あとはFOXさんならすぐできるんじゃないかなと思います。
んでは、あとは明日にでも。
すごく乗り遅れ?(泪)
では風呂入りますm(_ _)m
現在こんな感じ
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
$res->retry(1);
my $query = $res->query($host);
my $adr = "ANS =";
if($query)
{
my @ans = $query->answer;
foreach(@ans)
{
$adr .= $_->address;
}
}
else
{
return "127.0.0.0";
}
my $query = $res->query($host);
の答えは Net::DNS::Packet でその中のanserが配列になっている模様。
my @ans = $query->answer;
foreach(@ans)
{
$adr .= $_->address;
}
これは一個しかないという決めうちでコード書いたらまずい?
複数個あるならどれを見ればいいの?
よさげな気がするです。
で、127.0.0.2なら焼かれてて、127.0.0.0なら焼かれてないってかんじですか。
>>204 BBQ/BBMでは、Aレコード(IPアドレス)は1個しかないので、きめうちでOKです。
(DBをそういうふうに作っています)
BBQ / BBM / BBX は同様の処理にしてみた @myamer
BBXも1個しかAないので、同じ仕様でいいはずです。
で、みゃんまーでやればいいのかしら。
まず、
・正しく効くか
・配布してみてから→落としてみて、ブロックしないか
でいいのかな。
BBXはちゃんと動いてるですね。< みゃんまー
BBMは、どうすべ。
今日の深夜
全サーバにこのbbs.cgiを配布してみよう、
そして BBQ/BBM/BBX 止めてテスト
今後は、さらにタイムアウトを縮めることへの挑戦か?
現在は
$res->tcp_timeout(1);
$res->udp_timeout(1);
$res->retry(1);
で、たぶん一秒は待つ予感。
どうやったら縮められるの?
回り回ってselect(2)を呼んでいるみたいなので小数が使えないのかな?@timoutの値
モジュールを追っていくと、、、
Net::DNS
↓
IO::Socket
↓
IO::Select
↓
select(2)
ですので・・・
BBM/BBQ/BBX/BBY/BBS ともに一回タイムアウトしたら
そのプロセスが常駐している間(最大10分)は、DNSクエリ処理をスキップするようにした。
BBS/BBY って何が帰ってくるのかしら?
無条件に 127.0.0.2 ?
うっ
なるほど
my $query = $res->query($host);
if($query)
でタイムアウトと区別するにはどうしたらいいのかしら?
BBS は my $query = $res->query($host);
したとき
1) タイムアウト時
2) 正常終了時
ともに $query が無いようです。
んで区別がつかないのだ。
>>223 answerを見ればいいはず。
しらべるのでちょっとまってください。
$query がないから
$query->answer; が見れない予感
おっ
$res->errorstring に qyery timed out または MXDOMAIN だかが入っている
res_queryはだめだけど、res_sendつかえばOKですね。
#! /usr/bin/perl
use Net::DNS;
my $res = Net::DNS::Resolver->new;
my $ans = $res->send('2ch.net');
print "rcode = ", $ans->header->rcode, "\n";
my $ans = $res->send('notexist.2ch.net');
print "rcode = ", $ans->header->rcode, "\n";
>>228 あ、それでもOKです。
NXDOMAINが成功(で不存在)、query time outなのはタイムアウト。
改修
sub foxDNSquery
{
my ($host) = @_;
$host .= "bbs.timeout.peko.2ch.net.";
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
$res->retry(1);
my $query = $res->query($host);
if($res->errorstring eq 'query timed out') {return 0;}
return 1;
}
呼び出し側
if($FOX->{BBS}){$FOX->{BBS} = &foxDNSquery($BHOST);}
>>231-232 つまり、タイムアウトしたら0で、
普通に動いているときは1と。
例の「不存在」と「タイムアウト」問題っすね。
不存在はBBQ的には「登録なし」ってやつなんで。
127.0.0.2 登録あり(焼かれてる)
NXDOMAIN 登録なし(焼かれてない)
タイムアウト
の3つですね。BBM/BBXも同じ。
改修
sub foxDNSquery2
{
my ($host) = @_;
#$host .= "bbs.timeout.peko.2ch.net.";
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
$res->retry(1);
my $query = $res->query($host);
if($query)
{
my @ans = $query->answer;
foreach(@ans)
{
return $_->address;
}
}
if($res->errorstring eq 'query timed out') {return "127.0.0.0";}
return "127.0.0.1";
}
if($SPAM eq "127.0.0.0"){$FOX->{BBQ} = 0;}
こんなコード呼び出し側に入っています
>>243 これは、
アドレスがあればそのアドレスを返す
アドレスがなくてタイムアウトなら127.0.0.0を返す
そうでなかったら127.0.0.1を返す
という動き?
そーですー
呼び出し側では
127.0.0.2
127.0.0.0
だけしか見ていません
>>246 127.0.0.2 => BB{Q,X,M} 登録済み
127.0.0.0 => 各DNSに異常発生
というかんじですか。
で、BB{Q,X,M}はそれぞれ別のDNSサーバなので、bbs.cgi側では、
例えばBBQの異常を検知したら、BBQ*だけ*10分停止、
というのがよさげです。
そのようになっています。
$FOX->{BBM} = 1;
$FOX->{BBQ} = 1;
$FOX->{BBX} = 1;
$FOX->{BBY} = 1;
$FOX->{BBS} = 1;
了解です。
最悪はdnscacheがあぼーんすることですが、
そのときは、、、gethostbyaddr() が詰まっちゃうのか。
>>250 そっすね。
でもこれで、そうとうよくなった予感がするですよ。
というか、そこは実装しないで
dnscacheをことん強化が本筋かと、
>>252 そですね。例の計画(RAID1で強化+Anycast装備)いきます。
そういえばRAID1カードのインストール、どうなってるのかしら。
>>253 BBxを止める実験ができるようになった、ということでOK?
dnscache が timeout だったら書けないという仕様にするです bbs.cgi
qb5&★ だけ書ける様にして
BBQを止める実験、やってみますか。
で、うまくいくなら、続いてBBSを止める実験。
BBYはスレ立てしないといけないので、みゃんまーで。
BBMは携帯で書かないとだめだから、FOXさんに携帯で書いてもらおう。
(私H"とPALDIOしか持ってないです)
BBXは例によって、禁止フレーズをみゃんまーで。
では、順番にいきます。
いいかんじ。
これからBBS動かして、BBY止めます。
>>264 みると、BBXが止まっています、って出るから、正常かな。
でもまだBBM止めてないのに、BBMが止まってるってたまに出るなぁ。
うへー。例のバッファフルがいっぱい。
BBSと同じ対策打ってきます。< BBM
%netstat -s -p udp
udp:
15773031 datagrams received
0 with incomplete header
0 with bad data length field
0 with bad checksum
1 with no checksum
50 dropped due to no socket
2 broadcast/multicast datagrams dropped due to no socket
126085 dropped due to full socket buffers
0 not for hashed pcb
15646894 delivered
15647283 datagrams output
対策打ちました(対策後は今日のラッシュ時もBBSのバッファフルなし)。
あとはBBMか。これからとめます。とめたらおしらせします。
BBMとめました。
携帯からどなたかカキコしていただけると。
dnscacheのログみた。BBMにはqueryはそれなりに出てるみたい。
ブロックしてないかの確認ができれば、OKですが、、、。
morningcoffeeの板トップ見てると、たまに止まってないのに「止まっています」って出ることがあるですね。
1秒だと、短すぎ?
それともたまにリトライしてる?
でもブロックはしたくないから、もろはの刃なのかな。
>>276 新規に立ち上がったbbs.cgiは一回は聞きにいくですから
>>278 どうでしょうねぇ
>>279 時間での切腹機能入れていないから
何時までもだらだら残るのかも(特に暇なサーバは)
ex7のspeedy_backendをいったん全部killした。
そしたら、BBMが止まっています、は消えたです。
これで、BB?系のDNS側の実験は終了しました。
また一歩、進歩したですね。すばらしいっす。
#!/usr/local/bin/speedy -- -M32 -b1048576
に -t600 っていれたら 10分?
#!/usr/local/bin/speedy -- -M32 -b1048576 -t600
>>284 10分*全く何も受け取らない*と、自爆しますね。
一番あれなのは、ぽろ、ぽろ、って来る場合かと。
また今度実験してミルです < -t option の効果&弊害
デフォルトでは500回リクエストを受け取ると、自爆します。
(-r500)
-tは3600がデフォルトですね。
つまり、
・500回人を乗せた
・1時間誰も乗らなかった
場合に、自爆すると。
もう知っているかもですが、Perl内から自爆命令を出すこともできます。
・shutdown_now
perlインタープリタを即座にシャットダウンします。この関数は戻ってきません。
$sp->shutdown_now
・shutdown_next_time
perlインタープリタを、このリクエストが終了したらすぐにシャットダウンします。
$sp->shutdown_next_time
ふと思ったんですが、
今はsubback.htmlを毎回bbs.cgiで作成してるんですよね?
subback.htmlへのリクエストは、subject.txtの更新頻度よりずっと少ないと思うので
もしかしたら、subback.cgiを作成してmod_rewriteを使うとか
あるいはmod_subbackを作成して組み込むとかの方が
鯖に優しいのではないでしょうか。
呼ばれる度にsubject.txtとSETTING.TXT(こちらは後者ならキャッシュも可能)を
読み込む必要がありますが、bbs.cgiでのディスク書き込みを少しは減らせるので。
後者の方法もそんなに難しくないと思いますが、前者なら非常に簡単だと思いますし。
うーむ。
伝説の機能の!preはPC系だけでいいから実装してほしいなあ。
今日のlive8/live16ともえらい軽かった(伸びが良かった)です。
今までは2ブレーメンぐらいでかなりつらそうだったけど、
今は3ブレーメンぐらいでもかなり平気みたい。
>>292 転送量対策でread.cgiが余分なスペースを全部削ってしまうからなぁ……。
>>297 いえ、read.cgiがdatを読み出すときに。
datには書きこんだとおりのままスペースが保存されてます。
なるほど、、、
今回 read.cgi 書き直すから、その処理はなくなる予定だったりするです
書き直すついでに書きこみ欄をrows=20 cols=80ぐらいに
広げてくれないかなー、、とつぶやいてみる。
たまにIE使ったりすると狭くて、、
BB? については、連続して3回失敗した時とかにはじめて、
「止まっている」とみなすようにしたほうが、いいのかもしんないですね。
スレッドランキングさんのところと比較してると、
BBSが平均的に5〜10%くらいカウントミスってる感じですね、、
初期化時に $FOX->{BBS} = 3; くらいにして、
異常を検知した時は --$$FOX->{BBS} くらいにする、とかって考えたけど、
(これだと連続ではない3回検知で、になるかな、)
1bit左にシフトして+1するとか。@== 7 で3回目検知、スルーできたら1bit目をクリアするとか
>>305 ふむ。
根本的なところ = 失敗をなくす方向
だとすると、どうするのがいいのか。
やはり、しくみの変更なのか。
でもDNSでやるしくみ+ノンブロッキングでquery、ってのは、
コスト低いし、筋がいい気がするんですけどね。
無反応の場合はネガティヴキャッシュで解決しないの?
>>307 それがですね、、、BBSの場合、毎回queryするものが違うんですよ。
つまり、キャッシュは効かない、というか、効かせていないのです。
キャッシュが効いちゃったら、正しいカウントができないんで。
というか、そうか、、、。Net::DNSって、聞きに行くDNSサーバを指定できたような。
だったら、工数のかかる再帰検索かけなくても、ダイレクトにBBSのサーバ指定できるかも。
ちょっと、考えてみます。
DNSキャッシュサーバ側のコストを、下げられるかもしんない。
質問 質問
1) BBS の現在の問題点は、コール数が多いために数えられないことがある。
2) そもそもコール数が少なくても数え落しが発生するしくみである。
どっちなんでしょか?
>>309 まさにそれを究明しようってのが、
>>308 で浮かんだ試みです。
DNSはご存知のように再帰検索(DNSキャッシュサーバがツリーをたどる)をします。
これは場合により、コストがかかる場合があります。
もちろん、DNSはキャッシュがうまく効くので、かなりの場合はキャッシュサーバに
データが蓄えられ、全部のツリーを再帰検索はしなくてもすむ場合がほとんどです。
でも、BBSやBBYの場合は必ず「ないよ」という応答になるので、
キャッシュサーバ側で、それなりに処理の時間がかかるわけです。
つまり、コストが割と高い。
でもBBSとかの場合は「きめうち」で決まったホストに伝わりさえすればいいので、
いわゆる通常の再帰検索は、しなくていいはずなのです。
具体的には、a.ns.bbs.2ch.net にダイレクトにDNSクエリを出せさえすればよい。
再帰検索要求も、必要ないわけです。
で、Net::DNSでは、これができるはずだと。
少し手がすいたら「こういうふうに組んでいただけますか」というのを
ここに書きますので、それを組み込んで実験をしてみたいなと。
http://www.net-dns.org/docs/Net/DNS/Resolver.html nameservers
@nameservers = $res->nameservers;
$res->nameservers('192.168.1.1', '192.168.2.2', '192.168.3.3');
Gets or sets the nameservers to be queried.
これを指定すればいいのか?
recurse
print 'recursion flag: ', $res->recurse, "\n";
$res->recurse(0);
Get or set the recursion flag. If this is true, nameservers will be requested to perform a recursive query. The default is true.
これも関係ある?
>>313-314 まさにそれっすね。
再帰止めて(
>>314)、BB?の用途に応じてそのサーバに直接query出すと。
こんなかんじでいいみたい。
#! /usr/bin/perl
use Net::DNS;
my $res = Net::DNS::Resolver->new;
# specify bbs.2ch.net server
$res->nameservers('206.223.147.35');
# turn off recurse query
$res->recurse(0);
my $ans = $res->send('a.b.c.bbs.2ch.net');
これで、DNSキャッシュサーバを経由せずに、
直接データを持っているDNSコンテンツサーバにDNS問い合わせをするようになります。
BBSとBBYは戻りの結果を利用しないし、
ローカル側でデータのキャッシュが効く必要がまったくない(というか邪魔)ので、
この形にするのがよいですね。
その分レスポンスがよくなるし、DNSキャッシュサーバの負荷も減少します。
BBQ/BBX/BBMは通常通りにキャッシュが効いたほうがいいので、
これまで通りのパターンの方がよさげです。
ホスト名書いても許されるみたい。
BBS
$res->nameservers('a.ns.bbs.2ch.net');
BBY
$res->nameservers('a.ns.bby.2ch.net');
で、いけそう。
IPアドレスで指定するなら、これかな。
BBS
206.223.147.35
BBY
206.223.147.36
しばしば暴走しているのは、どうもsubbbs.cgiの模様。
subbbs.cgiってもう使われてないですよね?
subbbs.cgi って良く知らないんです。
詳しい人いないかな?
昔は投稿確認に使われていた。
今は全てbbs.cgiでやっている。
ってんじゃなかったか。
subbbs.cgiを書き替えて見るとか
「subbbs.cgiは使用できなくなりました。」
とか
いいんだろか?
暴走するって、たとえばどうなる出素か?
>>320 BBY/BBS 用のらっぱ
sub foxDNSquery
{
my ($host,$nameserver) = @_;
#$host .= "bbs.timeout.peko.2ch.net.";
use Net::DNS;
my $res = Net::DNS::Resolver->new;
$res->tcp_timeout(1);
$res->udp_timeout(1);
$res->retry(1);
$res->recurse(0);# turn off recurse query
$res->nameservers($nameserver);
my $query = $res->query($host);
if($res->errorstring eq 'query timed out') {return 0;}
return 1;
}
http://stats.2ch.net/suzume.cgi を見る限りカウントはされているようだ < BBS
果たして数え落しがなくなるか、 果てしなく0に近づくか、、、
いや、
SUBBBS_CGI_ON=1 だと、スレ立て時に確認画面(bbs.cgi)が出て、
ボタン押すともう一回確認画面(subbbs.cgi)が出て、
ボタン押すともう一回確認画面(bbs.cgi)が出て、
ボタン押すとスレ立てできる。
確認はするとしても一回で良いだろうし、bbs.cgiで足りてるね。
>335
うほ、いきなり実験ですか(汗
トラブルあった場合人なだれ込んでくるからすぐにわかるでしょうけどw
SpeedyCGIって、ソケットを使ったりしても大丈夫なんすかね?
昨日、スレ立てしようとして何も入力していないのに
いきなり確認画面に行ったのはテスト?の影響ですか?
>>338 はBBS/BBY側の設定かしらん?
お前の要求なんぞ受け付けておらんとか、
>341
ただのCookie確認だべ。
関係無し。
ちなみに =~ /info\.html/ で引っ掛けています
うーむ、、、。
>>338 >>342 今ちょっと取り込み中なので、あとでみてみます。
>>348 ちなみに何するですか?
どっかから何か読み込んでくる?
入れたら見てみるけど、
そして負荷高かったら直せばいいのか、ブツブツブツブツ
>>348 何しようとしてるんだろう。広告関係かしら、、、。
重い処理が入っちゃうようなら、おじさんが直すんだろうなぁ、やっぱ。ウウム
>>333 も
>>343 も特に問題はないようだ、
Socketを使うとまたタイムアウト問題が出てくるかもしれませんね( ̄ー ̄)ニヤリッ
>>335 Socket を使うときはどんなクラス(←Perlでもこの言い方でいいの?)を使うんですか?
Net::Socket とかなんとか便利なものがあるんですか?
Net::Http とか? (←勝手に想像しています)
beに登録してるユーザーの場合は、beのDBに見に行くようにしてみようかと。
>>356 use socket;
だけで、あとはこそこそと。
>>325 単純な暴走が起こります。
そのプロセス(perl subbbs.cgi)が、プロセスを100%使ってしまう。
で、120秒分CPUを使うと、むなしく終了していく。
スレ立ての時に直接subbbs.cgiをコールする2ちゃんねるビューワもあるような
気がちょっとしたけど、どうでしたっけ。
>>326 そのコードでたぶん問題ないと思います。
私も、
>>329 の変化に注目したい。
>>357 beのDBが落ちていた場合に、どうなるのかしら。
待っちゃう?
全投稿に対してやるとすると、相当気合入れないと大変すよ。サーバ側。
FreeBSD素の設定(各種カーネルチューンしてない状態)では、
ほとんどむりぽなような。
確か今160万投稿とか170万投稿とかあるので、
そのつもりでサーバ側をまじめに強化しないと、かなりきびしいです。
>>360 subbbs.cgi をバックアップして
今は使われていませんとしてみよう。
そうか、BBSとBBYのDBに、2ちゃんねるのサーバ全部を登録するようにしなきゃ。
やってきます。
うっ 上書きしつまった、
subbbs.cgi は何処か遠くへ・・・
でもどっかのサーバに残っているだろう、きっと。
2ちゃんねるの全bananaサーバからの登録を受け付けるようにした。
カウントアップ復活を確認。
http://stats.2ch.net/suzume.cgi あわわわ
とりあえず、ミャンマー当たりで連投スレ建てしまくって不具合無いか調べた
ほうがいい鴨
>>356 ごくごく簡単にURLから何かを拾ってきたいのならばLWP::UserAgentなんてモジュールがあるですよ。
http://search.cpan.org/~gaas/libwww-perl-5.803/lib/LWP/UserAgent.pm
bubble2サーバから回収してきた < subbbs.cgi
subbbs-save.cgi で qb6に入れた。
>>370 あっ それ知ってる、
boo80 はそれでやったような、
$ua = LWP::UserAgent->new() でUA作って
HTTP::Headers->new()
HTTP::Request->new() なんてのを作って
UA にheadrer と Request くべて
$res = $ua->request() すねーるんですよね?
$ua->timeout(15) とか設定して
タイムアウト時は$response->code() あたりを見ればいいのかしら?
しかし本筋は
●の時にやったように期限付きのセッションID方式と思われ < be のDB look up
DBが何でできているかわかりませんが、
前にDBIがどうのとかどっかで言っていたような気がするので、
MySQLか何かのサーバと、プロセス間通信しようとしているのかも。
>>359 beにログインしてるユーザーの場合だけです。
>>373 そんな感じですー
→タイムアウト時は$response->code() あたりを見ればいいのかしら?
例文の通り、
$response->status_line;
とすると詳しい情報が得られるようです。('time out' の文字列が含まれています。)
$ip = inet_aton($be_host) || print "host($be_host) not found.\n";
$sockaddr = pack_sockaddr_in($port, $ip);
socket(SOCKET, PF_INET, SOCK_STREAM, 0) || print "socket error\n";
connect(SOCKET, $sockaddr) || die "connect $be_host error\n";
autoflush SOCKET (1);
print SOCKET "GET $url HTTP/1.1\n";
print SOCKET "Host: $host\n";
print SOCKET "Connection: close\n\n";
>>377 ちなみに、
$response->status_line のとき。
500 Can't connect to count.2ch.net:80 (connect: timeout) at ./test.pl line 12.
$response->code() のとき。
500 at ./te.pl line 12.
となるですー
モジュールのほうが重そうな気がしたので、
書いたほうが早いと思ったんですが、どうなんでしょう?
外部からbeのデータが覗かれちゃう危険は無いのかしらん、
モジュール(って言うんですか?)と同じに書けば同スピード
遅くなるように書けば遅いし
より早いコードを書けば早いかと、
ちなみにコンパイルされるんで
ロードの負荷やコンパイルの負荷は限りなく0です。
>>381 DBIだとselect文とかいじれちゃうので、
http経由のほうがいいかなぁと思ったのです。
>>378みたいに7行で終わるので、
モジュールよりは、早いんじゃないかなぁ、、と。
サーバの場所に実は一番左右されたり < コードの優劣より
>>378 timeout処理がないので、count.2ch.net みたいになると永遠に戻らなくなるですよー(汗)
でもってalarm()を使うと、SpeedyCGIではへんてこりんになるんだっけ?
>>380 リクエストされる数にもよるけれども、10分に1回くらいのリクエストならLWP::UserAgent使う方が楽かもですー
(このあたりはTimeoutをどれくらい取るかに左右されるかと思いますー)
TCPセッション張るですか。
connect() で詰まったら(サーバが落ちてたとかで)、どうするんだろう。
>>386 alerm() はSpeedyCGIでは使えませんです。
モジュール使って、タイムアウト指定しとかないとひどいことになるような。
LWP::UserAgent とかを使って、タイムアウトを入れたほうがよさげ。
正常にGETが終了する場合
>>378 でも >>373 でも
PIE 内であれば BD の処理を除けば 10ms 以下で終ると予想
PIE 外(たとえば日本) 200ms かかるかも?
異常な場合(timeout.busy等)
>>378 timeout 処理ないと bbs.cgi が待ち続け他の人がかけなくなる (-M32)
>>373 timeout 処理をたんたんと、
ってとこかな?
>>388 LWPなどはIO:SelectでTimeout処理しているのでSpeedyCGIでもへんてこりんにならないようなのですー
あと、、
>>378 の場合はわからないけど
>>373 でやると簡単に HTTPS が使えたり、Proxy経由で参照できたりと
のちのち簡単です
>>389 概ね、そんなかんじかと。
PIE <=. Sakuraは120msぐらいかかるみたいなので、250msぐらいはかかるですね。
%ping be.2ch.net
PING be.2ch.net (202.222.31.214): 56 data bytes
64 bytes from 202.222.31.214: icmp_seq=0 ttl=47 time=119.828 ms
64 bytes from 202.222.31.214: icmp_seq=1 ttl=47 time=123.794 ms
64 bytes from 202.222.31.214: icmp_seq=2 ttl=47 time=120.057 ms
64 bytes from 202.222.31.214: icmp_seq=3 ttl=47 time=122.132 ms
64 bytes from 202.222.31.214: icmp_seq=4 ttl=47 time=120.747 ms
^C
--- be.2ch.net ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 119.828/121.312/123.794/1.478 ms
>>389 おそらくビンゴー♪
>>391 ですです(嬉)
>>390 …ですね。
ふろ入ってくるです。東京、さむさむ。
こっちは最高気温が-5℃とかだったり
雪祭りシーズン並
>>392 あ、RTTだから単純に倍するのはへんだ、、、。
connect()失敗した後にファイルディスクリプタ解放してないのか・・・
まぁひとごとだし、いいけど。
>>397 うむ。
SpeedyCGIだと、こういうのも響いてくる予感。
つまり、どなたかのいう「静脈系」をちゃんとできるひとじゃないと、
いじった場合、よりいっそういけないことになると。
ふろー。
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Status;
my $ua = LWP::UserAgent->new();
$ua->agent ("Iyan Bakan ver 1.00");
$ua->from ("security\@2ch.net");
$ua->proxy("http", "
http://$proxy/") ;#proxyさすなら
$ua->timeout(15);
$header = HTTP::Headers->new(
'Referer' => "
http://www.2ch.net/",
);
my $parameter= "abc=123&def=456";
my $request = HTTP::Request->new("POST", "
http://be.2ch.net/nantara.cgi", $header, $parameter);
my $response = $ua->request($request) ;#ここで GET 処理
#ここでtimeout処理
my $response_code = $response->code();#302とか404とか500
my $response_body = $response->content();#GETの結果はここに入っている
試してみようと、LWPをCPANから拾おうとしたら、
ftp.perl.orgが落ちてる。。
>>402
use をLWP::UserAgentだけにしてみるトステ
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(
'agent' => "Iyan Bakan ver 1.00",
'from' => "security\@2ch.net",
'timeout' => 15,
);
# $ua->proxy('http', "http://$proxy/") ;#proxyさすなら
$ua->default_header(
'Referer' => 'http://www.2ch.net/',
);
my $response = $ua->post(
"http://be.2ch.net/nantara.cgi",
\{
'abc' => 123,
'def' => 456,
}
);
$response = $response->is_success
? $response->content # 成功した時は内容を取り込む
: $response->status_line # 失敗した時はそのレスポンスとエラー内容を取り込む
; >>404 %perl -MCPAN -e shell
してから、
cpan> install LWP
すると、依存関係類もまとめてインストロールしてくれはるです♪
(Д ` ≡ ´ д) (。`? ..。。(( ´ _)
Classまで使ってそんなにシビアなコード書きたいなら静脈系自動処理してくれるJava系の方が向いていそう。
その代償にGlobalGC時の硬直があるがJavaVMのParameterを経験則で調整していけばなんとかなる。
完全インタプリタなPerlよりバイトコードに落とすJavaの方が単純なルーチンなら刹那的な速度的にも最大二桁倍の速度向上が見込める。
SystemCallにおいては微妙ではあるが。でもやっぱり過去の資産の総リプレースは怖いのかな。
と言ってみるテスツ。
怒られました。
***
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
live/jigsaw-auth-b.t 3 2 66.67% 1 3
live/jigsaw-auth-d.t 1 1 100.00% 1
live/jigsaw-md5-get.t 2 2 100.00% 1-2
live/jigsaw-neg-get.t 1 1 100.00% 1
live/jigsaw-te.t 4 1 25.00% 4
Failed 5/41 test scripts, 87.80% okay. 7/788 subtests failed, 99.11% okay.
*** Error code 2
Stop in /root/.cpan/build/libwww-perl-5.803.
/usr/bin/make test -- NOT OK
Running make install
make test had returned bad status, won't install without force
>>404 あっと、どうしてもソースコードがご入り用でしたら、
http://search.cpan.org/~gaas/libwww-perl-5.803/
からダウソできるですよー
※あらやだ今日は呑んでいないのに酩酊のママだったorz...
>>404 LWP、2chの環境には入れてあったような。
あ、直轄サーバで試すのかな。
# FreeBSDならCPANから拾うより、pkg_add -r で入れるほうが楽です。
>>409 ぬー、、、jigsaw.w3.org が墜ちているもより(滂沱)@なのでtest出来ずに鰓。。。
rootさん曰く、
→# FreeBSDならCPANから拾うより、pkg_add -r で入れるほうが楽です。
かもですm(_ _)m
>>409 FreeBSDなら、これで一発かと。
pkg_add -r p5-libwww
libwwwはかなりの基本ライブラリなんで、さすがにbanana/tiger/cobra全部入っているです。
>>414 ちなみに MacOSX10.3.7 では LWP が入っていませんでしたorz...
そして live/jigsaw- で詰まりました(泪)
あ、でももしかすると、make test がデフォルトで入っているかもしれないので、
%pkg_add -r p5-libwww
でも鰓になるかも、、、
>>415 ううむ。
旧HE時代からlibwwwはpkg_addで入れてますが、
FreeBSD4.x/5.xでは、一度もエラーになったことないです。
ちなみに質問ですが
Perl で Net:: とかLWP:: とかは通常なんて呼ぶんですか?
>>417 Perl modules って答えでいいのかな。
Net モジュールとか LWP モジュールって感じ?
あとデストラクタまで入っているという認識でいいのかな?
>>419 Net::DNSで1つのモジュール、ってかんじですね。
モジュールの作者がそのへんに配慮して書いているかによると思います。<デストラクタ
>>421 /usr/portsはまさか、OS入れたときのそのまま、、、ってことはないですよね。
ちゃんとupdateしてます?
>>424 ひゃー。
/etc/make.conf作って、/usr/portsでmake updateするです。
/etc/make.confの例をここに書くです。
# -- use.perl generated deltas -- #
# Created: Tue Oct 12 12:12:01 2004
# Setting to use base perl from ports:
PERL_VER=5.8.5
PERL_VERSION=5.8.5
PERL_ARCH=mach
NOPERL=yo
NO_PERL=yo
NO_PERL_WRAPPER=yo
とかがたぶんデフォルトで(Perl入れていれば)入っていると思うので、
これにこんなかんじの↓を追加するです。
で、cd /usr/ports して、make update を実行。
SUP=/usr/local/bin/cvsup
SUP_UPDATE=yes
SUPHOST=cvsup2.jp.freebsd.org # fastest_cvsupを実行して適当に近いやつにする
SUPFILE=/usr/share/examples/cvsup/standard-supfile
SUPFLAGS=-g -L 2
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
# Thank you for
http://qb.2ch.net/test/read.cgi/operate/1062137886/39 WITHOUT_X11=yes
WITH_APACHE2=yes
あ、あらかじめ、
pkg_add -r cvsup-without-gui
をやって、cvsupを入れておかないとだめです。
>>427 # -- use.perl generated deltas -- #
# Created: Tue Oct 12 12:12:01 2004
の設定ファイルは、どこにあるんでしょうか?
なんか今日は調子わるいっす
二回もコンピュータに負けてしまった < AoM
>>429 あ、もしかしてPerlはportsやpackagesじゃなくて、
コンパイルして入れたですか、、、。ううむ。
だったら、/etc/make.confはないと思うので、
とりあえず
>>427の↓のが入った /etc/make.conf を作ればいいと思われ。
>>422 ということは書ける機能は備わっているということかな、
>>434 その理解でよいと思います。
http://www.att.or.jp/books/perlmod/ http://www.att.or.jp/perl/man/perlmod.1.html より
パッケージのコンストラクタとデストラクタ
パッケージのコンストラクタとデストラクタとして機能する、2 つ
の特別なサブルーティン定義があります。 それは、BEGIN ルーテ
ィンと END ルーティンです。 このルーティンでは sub は省略で
きます。
おぉー、、updateし始めましたですよ。
ありがとうございますです。
>>436 よかったです。
…ということは、カーネルとかシステム領域(ユーザランド)も最初に入れたままかしら。
#uname -a
FreeBSD be.2ch.net 4.10-RELEASE FreeBSD 4.10-RELEASE #1: Tue Jun 22 10:08:09 JST 2004
[email protected]:/usr/src/sy
s/compile/RENTALv6 i386
全く弄ってないですー。
>>438 4.10Rすね。root権限つきでしたっけ。
た○か社長のところだからそれなりにチューニングはされてるのかもですが、、、。
気が向いたらいじるかもしれないので、よろしければ種をメールしておいていただけると。
# 今日はもうねむねむ。
>>435 なるほどー
これだと OO ッぽく書けるな、
なにやら、変数を保持しっぱなしの予感。。。
>SpeedyCGI
http://game10.2ch.net/test/read.cgi/arc/1104213037/64 普通の板でもログインしてると任意IDの所でも強制的に?とID表示されるんですが仕様ですか?。
まあ、ログインしなきゃいいわけですが。
おまえは何をしてるんだ!
年末で奈良の女児誘拐殺人の犯人らしき36歳新聞配達員の男が事情徴収してるというのに!
>>454 というか今度は強制IDのところがID:???になったんだけど…。
ログオンしてる人が書き込めば、
javascriptの記述の分だけdatの容量が増えることになったわけですが、
それについては構わないのでしょうか?
ログオンしてる人が少なければ大した影響は無いでしょうけど。
>427
その/etc/make.conf見覚えがあると思ったら、pekoスレで昔オレが書いたサンプルからの引用か……
・/usr/share/exapmle/cvsup/ports-supfileは/usr/sup/ports-supfileあたりにcpして使ったほうが良いかも
・*default compressはコメントアウトするか、SUPFLAGS= -s -g -L2にして圧縮しない
・fastest_cvsupで速いサーバーを入れるのも当然だが、cvsup-mirrorホストが立っているならそっちを指定する
そもそもcvsup-without-guiがpkg_addされていないんであれば、sysutils/portsnapを使ってもらっても良いかも。
管理手法がばらばらになるというデメリットはあるけど。
×SUPFLAGS= -s -g -L2にして圧縮しない
○SUPFLAGS= -Z -g -L2にして圧縮しない
ミスったので訂正。
-sはチェック抑制だった。
今度は任意IDみたいになってますよ。
http://qb5.2ch.net/test/read.cgi/operate/1103462401/579-580 579 :動け動けウゴウゴ2ちゃんねる [sage] :04/12/30 09:19:07 ? ID:???
てすと
580 :動け動けウゴウゴ2ちゃんねる :04/12/30 09:20:14 ? ID:Mo0nUNNp
てすとに
質問でーす > どうやらさん
javascript になっているのは、必然?
それとも単に負けただけ?
必然なら改修しないけど、、、って言うだけのことですが、
元スレのURLを引っ張るので必然ですー。
javascript以外の方法でいけるなら、
それもありなんですが。
りょうかいですー
改修するかも知れませんです。
ちょっとでも節約したい(ちょっとどころじゃないかもなんで)
datにはi=123456の数字だけ書いて、残りはread.cgiで出力だな。
jsで一括処理なら転送量はかかるまい。
もちろん専ブラは専ブラで。
>>474 そのほうがよさげですねぇ
各専ブラが対応する必要があるっすね、
>>478 いやぁ、全部頂きました。
どもどもです。
>各専ブラが対応する必要があるっすね、
更新作業のの滞った(止まった)専ブラユーザーから
悲鳴が上がる悪寒。
仕方が無いけど・・・。
kageあたりめっちゃ更新が早かったモヨウ
>481 よかったよかった
>>474 >>480 賛成すね。
仕様さえ固まれば、対応する方々は対応できると思われ。
>>482 やむを得ないっすね、、、。
私もOpenJaneなんで、そのあたりはちょっとどきどき。
SpeedyCGI導入してどの程度負荷が減りましたか?
>>486 かなり効果出ましたね。
Cで組みなおす必要もなさそうですね。
>>485 bbs.cgiの掲示板システム全体に対するトータルコストという観点なら、
十倍〜数十倍は変わった気がするです。
つまり、ある意味革命が起こったと。
>>477 の具合はどうですかね? ok?
>>487 そですね、必要性はかなり遠のいたかと
もすこし節約できるところ(msのオーダと予想されるところ)を何とかすれば・・・
と思っています。
>>489 |Hello 2ch !!
|-----------------------------
|read.cgi ver 05.0.0.1
|FOX ★
とか出ますた。これでいいの?
・fork() exec() の処理コスト
・Perがlプログラムファイルを読み込むコスト
・モジュールをロードするコスト
・インタプリタとしてのコスト(エラーチェックとかいろいろ)
・exit() の処理コスト
が、激減したわけだから。
昨年最大の成果がBBQ/BBXだとしたら、
今年最大の成果はbbs.cgiのSpeedyCGI化と、携帯サーバシステムの構築かと。
あと 対爆撃性能が上がったというのが大きいです。
つまり -M32 で 32個しか同時には受け付けない。
>>490 あっ そっか read.cgi 入れ替えてきます。
>>492 確かに。
仮死状態やサーバダウンに陥るリスクが、大幅に減りました。
今度は人大杉になりますた
何が何でもブラウザで読ませないつもりでつか?
あ、mod_cgidsoを切ってきますね。< dso
>>501 なるほど、では今はそのままで。
設定変更が必要なら、言ってくださいです。
>>504 何が何でも専用ブラウザを使わないつもりですか?
>>510 まだ対応してる専用ブラウザは存在しないでしょ?
>>484 オープンソースな専ブラはいいなぁ。
スキルも無い一般ユーザーが出来る事って何だろう。
>511
かちゅやLive2chは対応してますけど
その他も開発が間に合えば今年中に出来るようになるかと
target=_blank ですか?
サイズまで指定するならやっぱり javascript が本筋?
>>516 いや、今実験してるdsoの話
と思ったら通常リンクだから専ブラだと問題ないね
>>517 サイズはどうやらさんのJavaScript版でも指定してないから必要ないと思われ
でもtarget=_blankは欲しいです
言うまでもないけどtarget=_blankはread.cgiで挿入する方向で
専用ブラウザならどのみち別ウィンドウで開くので
target="_blank" にした @みゃんまー
このさい<base target="_blank">とか
Internal Server Errorが出て
ブラウザでもかちゅでも書けない
>>523 レス内のURLリンクにtarget=_selfを付ける必要が出てくる
URLリンクを生成してるのはread.cgiだから不可能じゃないけど
どっちが転送量を低く抑えられるかな
>>526 そうなると onClick=aaa(); ちかにして
あたまに aaa() を定義かな・・・ < read.cgi
Hello 2ch !!
read.cgi ver 05.0.0.1
FOX ★
>>530 あ、それいいですね
スクリプト切ってる人はうざい別窓見なくて済むし
>>531 まあ確かに専用ブラウザでリンクをクリックすると
全部別タブか別ウィンドウで開くからタブブラウザならそれでもいいかもしれないけど
素のIEとかだとうざすぎる
しかし html 化プログラム方面まで直さなきゃだなぁ
ところで「d:」の後のURLに板名が入ってないような…。
「
>>1」を、
今は
datは <a href="#1">
read.cgiは <a href=1 target=_blank>
ってなってるのを、datの段階からread.cgiと同じ形にして、
index.html(html/$key.html)だけ#474">>>474 のような仕様にして、
>>530 のように実装すると
datの大きさ、転送量の節約を主とした場合一番いいのかな、
問題は専ブラに全部修正を強いるところか、
一方、節約でな各種改造をしなくていいのは
現dsoに入っているやつかな?
href="#" onClick="aaa()"
href="javascript:aaa()"
onClinkを使わないほうがわずかにとくかな
<script>
function be(i){
window.open('
http://be.2ch.net/test/p.php?i=' + i + '&u=d:' +document.URL);
}
</script>
<a href=javascript:be(123456);>?#</a>
js知らんのでてきとー。
ローカルでのテストでは動いたっぽい。
JaneDoeで見てるが、
547 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:04/12/31(金) 01:51:02 <a href=javascript:w=window.open('
http://be.2ch.net/test/p.php?i=303168&u=d:'+document.URL);if(w)w.focus();void(0);>?##</a> ID:nsOY40L9
って表示されてウザイ
旧本家を使っているなら
NightlyBuildにすればOK
>>546 <script language="JavaScript"><!--
function be(i){
var w;w=window.open('
http://be.2ch.net/test/p.php?i='+i+'&u=d:'+document.URL);
if(w)w.focus();void(0);
}
//-></script>
コメントアウトにしないと古いブラウザでいろいろ出るかも
まあクッキーの所に埋め込んじゃえば問題なし・・
JavaScriptとかだとなあ…
かちゅでブラウザsleipnirにして、sleipnirのデフォがスクリプトオフだと死ねる。
専ブラの対応がないとちょっとつらいよー
2chブラウザのスレッド表示はread.cgiのエミュレートなのだから、read.cgiできちんと表示されているのに直せとここに持ってくるのはよくないですね。
>>552 <script language="JavaScript" type="text/javascript"><!--
function be(i){
var w=window.open('
http://be.2ch.net/test/p.php?i='+i+'&u=d:'+document.URL);
if(w)w.focus();
}
//-></script>
>>553 今回に限らず専ブラは2chの仕様変更に対応してきたわけで、
今更そういうのは論点がずれてるのではないかと。
>かちゅでブラウザsleipnirにして、sleipnirのデフォがスクリプトオフだと死ねる。
現在もJavaScriptの部分はうまくクリアしてやってくれてるからそういうことにはならないよ。
まぁアクセシビリティの観点から言えばJavaScriptが使えない環境のための代替手段は提供すべきだけどね。
今年初糞、初切れorz。教訓:糞は5日も貯めるな!
という事で今年もよろしく。他人だけど。
ちょっと聞いてもいいですか?
sleepって使ってますか?
 ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
O 。
, ─ヽ
________ /,/\ヾ\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|__|__|__|_ __((´∀`\ )< ・・・というお話だったとさ
|_|__|__|__ /ノへゝ/''' )ヽ \_________
||__| | | \´-`) / 丿/
|_|_| 从.从从 | \__ ̄ ̄⊂|丿/
|__|| 从人人从. | /\__/::::::|||
|_|_|///ヽヾ\ / ::::::::::::ゝ/||
────────(~〜ヽ::::::::::::|/
つ 【 悪いやつほどよく眠る 】
|彡サッ
| < おぬしも悪よのう
ひろゆきぃぃぃぃぃぃぃぃ!!!!!!!!!!!
ヴぇおぃぇぁぁぁぁぁぁぁぁ
>>565 じゃあFOXさんが赤幕 rootさんが青幕 まほらさんが黄幕
こうすけさんが緑幕 不動楽さんが白幕で 飛行石さんが字幕って事で
┌───┐
│要望書│
└───┘
「大吉・2005円」ってのは出ない?(2000円以上は出ない?) 出したがっている香具師多数
運営側よろしく
おい、グーグルのトップページが大変なことに!
http://news13.2ch.net/test/read.cgi/news/1104536143/43 43: 【中吉】 【192141円】 []:05/01/01(土) 10:32:00 ID:0UNkGcKc
ほう
で、西村管理人は、ここで参考になった投稿に
ポイント送ったりはしてるのか、
DATには
05/01/01 00:00:00 ID:??? BE:xxxxxx
ってやって、read.cgiでリンクに変換してよ
DATのフォーマットはいまさら変えられないのが実情
一番後ろに<>BEIDをつけるとかなら影響は小さいかもしれんが
<>区切りを増やすほうがむしろdatのフォーマットを変えることに近いと思うよ。
>>575なら非対応2chブラウザでもそのまま
05/01/01 00:00:00 ID:??? BE:xxxxxx
と表示されるので安全(IDポップアップを実装してる2chブラウザは影響受ける可能性高いけどそれは本来ない動作なので2chブラウザ側で対応すべき)
>>578 うん、そう思って言った。
それで影響受けるんなら名前欄の後にトリップみたいに■xxxxxxとかやってもいいのでは?
DATにJavascript埋め込むのはどう考えても…。
と、某2ch型掲示板の開発者は思います。
>>580 キタ━━━━━━(゚∀゚)━━━━━━ !!おめでとう
>>575 Be-2ちゃんねる 人柱募集中。。。
http://qb5.2ch.net/test/read.cgi/operate/1101003269/968 968 名前:名無しさん[sage] 投稿日:05/01/04(火) 10:43:53 ? ID:???
確認した。
架空のBeIDをクッキーに仕込んでもマークでるやん。
>>583 何が言いたいのかさっぱり分からん。
多分時刻の次あたりの事だろうけど。
それはブラウザが対応してないからそうなるだけ。
年末あたりから機能はあった
>>584 あーそれか
ありがとう
>>585 そんなことは知ってるから
read.cgiはFOXが改造中。
ってbbs.cgiは関係ないけどwwwwwwwwwwwwwww
なんかココがオカシイ匂いがするわ。
謎のjane挙動不審のまとめ
・板更新は出来るがスレ取得不可能(エラーが出る)
・read.cgi関連ではない
・2ch以外のアニメ実況等では正常に作動
・1月5日午前5時ごろまではまとも23時過ぎではおかしくなっていた。
・●のある無しは関係無い
・プロバイダの不調でもない
・IEでお気に入りにスレ入れてたら更新しないと新着レスが出ない。
不調はbbs.cgi関連か?
>>590 私もOpenJaneDoeですが、特にそのような症状が確認できません・・・
Janeの種類とヴァージョンは?
Monazilla/1.00 (Jane2ch/0.1.12.2) >>590 どの板で、どのスレで、何ていうエラーメッセージなのか、
などなどを書いてJaneのスレへ。
普通にJane使ってても問題ないけど?
スレ違いでしょ どっちにしろ専ブラ側の問題だろうし
>>591 open jane 0.1.11.1ですわ
>>594 やはりJaneが不調な気がします。
最新版OpenJane-0.1.12.2に変えた後、
まだ不具合が出る場合は、Janeスレで対応して頂く方が吉かと。
>>595 今最新のOpenJane-0.1.12.2に変えようとした所
板一覧の更新すら出来ない情況でした。
後はjaneスレでやります。
皆様ありがとうございました。
>>580 bbs.cgi が変わって BE:xxxxx を dat に出力するようになったら
read.cgi もその後対応します
私の訳のわからない不調も治りました。
ノーd先生を更新したら治ったので
その所為かと思われます。
色々とスレ汚し申し訳ありませんでした。
>>580 おおお採用されそうじゃん!! やったぁ
>>582 さんきゅー!
>>598 出来てるんだったら、datの方式変えますよ?
ウズウズ…
=≡= ∧_∧ I'm ready.......
/ \ (・∀・ )/
〆 ⊂ つ∈≡∋
|| γ ⌒ヽヽコノ ||
|| .| |:::|∪〓 ||
./|\人 _.ノノ _||_ /|\
互いに相手が変更するのを待ち合ってデッドロックに陥ってるわけですね
>>598で変更したら変えるって行ってるから先にbbs.cgi変えちゃえば?
というか BE:xxxxx だけだと仕様が不明確すぎるから
実際にひろゆきが変えてみないと対応のしようがない。
たとえば現行の # の数に対応するものはどうやって出力するの?
管直人さん、スレとは関係ないけど count.2ch.net 直してくれませんか?
手順としては
1. be.2ch.netに試験導入
2. FOX ★がそれ見てread.cgiを変更
3. 全鯖に変更したbbs.cgiを配る
かな。
つーかマダー? (AAry
ひろゆきがread.cgi弄るが一番早そうだけどな
´ _).。oO(やりたいゲームが見あたらないに一票・・・)
>>616 今年はまだ8日しか経ってないのに、もう3人目・・・去年は何人まで行ったのやら。(w
>619
去年は数十人との噂ですよ
しかもその殆どが(ry
>>622 dat落ちのスレも開くと
datが存在しません。削除されたかURL間違ってますよ。
read.cgi ver 05.0.0.8 2005/01/07
FOX ★ DSO(Dynamic Shared Object)
って出るのですが仕様ですか?
1000まで行った過去ログ倉庫行きのスレ、1と1001じゃなくて1000が見れたらいいのにな・・・
それか1001に日付が欲しいな・・・
なんでも
今は1と最終1レスを表示する仕様になっているので、スレストかかってたり1001行ってたりすると最終レス日付が分からないけど、
1と最終2レスを表示するようにすれば最終レス日付がわかって良い感じかも。
ってこれはread.cgiスレ行きの案件か。
PC5鯖が微妙に重いっす・・・。
CGIが新しくなったて噂なんですが、マジっすか?
サーバダウン(鯖落ち)情報 Part54
http://qb5.2ch.net/test/read.cgi/operate/1102346568/ しばし待たれよシナのDoS攻撃かPCサクセス祭りかのどちらかじゃ
>>630 よく考えたらスレ違いの質問なのにありがとうございます。
待つしかないっすね。
>>622 datには
ID:??? BE:123456 lv:2
とかって入るのかな・・・?
となるとread.cgiはsplit(/ /,
ってC言語かorz
>>632 空白を'\0'に変えて直後のアドレスとればOKじゃない?
俺ならboost::tokenizerかストリーム使うけど。
BBM携帯に印。
game10、hobby7以外配布済みです。
荒らしの様なノリの板に書き込んだ事のあるIPアドレスやら端末やらは
ここみたいな真面目な板へ書き込む時にやや制限がかかるように出来ませんか?
例えばVIPとか言う板に書き込んだら一定時間フラグを上げといて、
ここへ書き込むときにはそのフラグを参照して上がってたら制限をかける
チェック部分を通るようにするとか。
>>637 おつです。
バリ3マークすか。
[圏外]でもいいかなとか、ちと思った。
雑談ですまそ。
>>642 私が軽い冗談(と少しの皮肉)で提案したものが、なぜかそのまま採用されちゃったです。(w
こちらも雑談でスマソ。
書けないんだから[圏外]の方がよさげですねー。と
これも雑談でスマソ。
おしりに吹き出物が出来ちゃって痛いよー
雑談でスマソ><
>646 わすれものですよ
つ 【 雑談でスマソ 】
bbs.cgi はごくごく小さくするですー
目的は一行目の各種パラメータをサーバ毎に設定できるように、
つまり bbs.cgi の更新で容易に上書きされないように、
#!/usr/local/bin/speedy -- -M32 -b1048576 -t60
use strict 'vars';
#########################################################
#
# bbs.cgi for SpeedyCGI (written by FOX)
# 2004/12/02
#
#########################################################
use vars qw($BBSCGI);#グローバルー
$BBSCGI = "2005/01/09";#最終更新日
require "./bbs-entry.cgi";
#print "Content-type: text/html; charset=shift_jis\n\nWOWOWOWOWOW-----\n";
&bbs_entry;
exit;
>>648 →require "./bbs-entry.cgi";
DocumentRoot から外した方がよさげ(苦笑)@DoSとかも回避出来鱒の寿司
今のところ大丈夫そうすね。
で、speedy_backendが11分で必ず自爆するんであれば、
メインのbbs.cgiが書き換わらなくても、サブファイルへの変更はおいおい反映されると。
とりあえずbbs-entry.cgiのxビット落としとけば、いいんではないかなと。
use vars qw($BBSCGI);#グローバルー
$BBSCGI = "2005/01/09";#最終更新日
も entry の方にいれるです
>>652 そっすね、 やってみよう。
>>653 swapout すると自爆しないようです。
その時の -M がどのように作用しているかが気になるところです
>>654 わー(大汗)
<FIles bbs-entry.cgi>
deny from all
</Files>
とかとか、、、(汗)
>>655 swapoutですか。
そもそもspeedy_backendがswapoutするのは負け筋すからね。
で、メモリ増やすとか、-M16にするとか、そういうかんじですか。
>>656 Files でdenyすると、かえって負荷高くなるような気も。
というか、
>>652 が平和な解決すね。
いれた < 全サーバ
pc5 は -M16 へ変更。
tiger/cobra は適宜よろしくです > 660
>>662 了解です。今-M32ですね。
様子見ながら、少しずついじってみます。
あっ でも何時上書きがあるか解からないですので、、、 よろしくです。
入れたばっかだから、もしかしたらあるかもってことで、
了解です。
>>664 tiger/cobraは強くてメモリも多いんで、苦しくならないとなかなかチューニングが(りゃ
という話もあります。
今日はたぶん、あせっていじるような事態にはなりそうもない予感。
Samba24 の値は SETTING.TXT に記述という方向で考えているけど、
SETTING.TXT にしたほうが良いと思われるもの他にもありましたっけ?
スレッド保持数とか・・・無理か。bbs.cgiじゃないもんな
鯖ごとの設定だと、ぱっと思いつくのは
人大杉、圧縮値(???スレ超えたら???スレに圧縮)だけど、
どっちも板ごとにする意味はあまりなさそうだなぁ、
1スレの最大書き込み数とか最大バイト数とかも
あると面白そうな気はするけど意味なさそうだしいろいろめんどそうだし。
やっぱsamba24くらいじゃないですかねぇ。
他は、せいぜいあるとしてもシベリア仕様のIP表示とか、ホスト表示とかかな、、
入れていいものかどうかは知らんけんども
即死byte数とか、
もしコレをやるとしるならば
ABC(強中弱)表記にしると面白いんじゃないかのう
B=鯖標準 はmaskしといて、しかも個々の鯖ごとに鯖標準が違う、とかはどうじゃろう
>>667-8 んー、SETTING.TXTは一括して読むと思うから、固定されてる数値を変えれるようにするのは
(
>>668さんの仰ってる通り1スレの最大書き込み数とか最大バイト数とか)
すっごい簡単だと思うけどなぁ。そういう必要があるのかは疑問だけど…。
個人的にあんまり行かないけどAA系の板とかでは512KB越えたいこととかもあるかも。
>671
今のAA系板で最大バイト数増やしても埋め立て荒らしを増長させるだけな気がする
読み込みも重くなるし。
>>666 BBS_ENCODE=
若しくは、
BBS_CHARSET=
デフォは、Shift-JIS で、EUC、JIS、MIME 等々外国語のコードページも視野に入れておく
今回はやっぱめんどーなので
bbs.cgi のSETTING.TXT 読むところで一回Samba値を設定するように
bbs.cgi を変更した。
>>676 準備工事までと。
で、newsとnewsplusのSamba値って、今どうなんでしたっけ。
各板の version 表記のところにだしてみた。
bbspinkの連投規制を元に戻してくださいまし、、、
>>677 90秒だったのですが・・・・気にしません。
>>683 確か今60secって出ている気がしました。< news
サーバの負荷的には特に問題出てないですが、
もし改めて90secに再設定したい場合には、たんたんと申請スレのほうで。
>>684 何だか不具合で120秒とかに戻ったりするらしいですよ。
中の人じゃないと分からない内容ですのでご確認出来ましたらよろしくお願いします。
今のbbs.cgiは「最大11分かけて設定が徐々に反映されていく」ようになったので、
ぼちぼち観察していただけると、いいかもです。
で、ほんとにころころ変わるようなら、改めて不具合報告をたんたんと。
>>688 bbs.cgi のせいじゃないでしょ
投稿している人が悪い or あなたが気にしすぎ
>>575 やりますかー
実際にはどうすればいいのかしら?
bbs.cgi 変更したら、次にread.cgiも対応します
朝までには完了すると思われ、
>>692 そうっぽいね
既存のタグ入ったDATはそのままだよね?
>>693-694 2chブラウザの作者泣かせですな
>>694 了解です。
>>696 まったく作者泣かせです
作業がんばってください>FOX ★
-# 部分は生データ書いたほうがいいのかな?
書いちゃまずいということはないっすよね?
何かポイントの数値なんだけど、
BE:xxxxxxxってIDの後なのか前なのか
どっちかといえば後ろの方が都合が良いと言ったらいいんですけど
datにはポイント数で記録しといて
read.cgiでレベルに変換する、てこと?
特に問題ないようなので、これで行くことにいしよー
次は read.cgi へ、
>>554の方がいい予感。
<script language="JavaScript" type="text/javascript"><!--
function be(i){var w=window.open('
http://be.2ch.net/test/p.php?i='+i+'&u=d:'+document.URL);if(w)w.focus();}
//--></script>
ちょい整形。
どうでもいいっすけど
BE:xxxxxxxがIDの前にあるとIDまでリンク貼られちゃってる予感
index.htmlのBe IDにはリンクがないんですね。
そりゃそうか。
Perl で書くとこんな感じ?
if($time =~ /BE:/)
{
$time =~ /([\w| ]+) BE:(\d+)-([\#]+)/;
$time = "$1 <a hrefjavascript:be($2);>?$3</a>";
}
これでいいような。
$time =~ s/BE:(\d+)-([^ ]+)/<a href=javascript:be($1);>?$2<\/a>/;
アトリビュートは""でくくっておいた方がいいのでは?
>>717 うまく行きました
さんきうです
>>718 アトリビュートって何?
ま、動いてるようなんで無問題ですかね
#他の所もかこってなかたようですし
しまった
>>717ではレベル0の人がリンクされないや。
$time =~ s/BE:(\d+)-([^ ]*)/<a href="javascript:be($1);">?$2<\/a>/;
+ 1文字以上
* 0文字以上
専ブラ改造して直した
醜いけどこんな感じ
if(preg_match('|(.*?)BE: ?([\d]+)-([\#]*)(.*?)|',$date_id, $matches)){
$bedate=$matches[1].$matches[4];
$beid=$matches[2];
$belv=$matches[3];
>>726 $2だけじゃなく"?"が入ってるんで問題ないと思うです。
>>729 別に問題ないべ?
最長一致するんだから。
FOX ★に質問です。
2ch鯖、Pink鯖に投入されたbbs.cgiとread.cgiですが
朝生板はひろゆきが入れるのですよね?
>>733 FOX ★は、朝生板に新しいbbs.cgiとread.cgiを入れてないですよね?
>>734 朝生板はlive14だから勝手に配られたんじゃね?
news19でのsamba不具合についてここまでのまとめ
・ERRORがsamba60又はsamba120のどちらか一方が出る
・ERRORが120s表示の場合でも60s後に書ける(書けないときもある)
・前回書き込みから60-120s間経過でも書き込めない
・さっきまで60sで書けていたた→その後は暫く120s→また60sで書けた
・ブラウザ自体や専ブラの設定などは関係してない模様
>>575 がdatファイルのサイズ縮小が目的なら
次はレスアンカーをタグアンカーに変換せず生格納だったりするのかな?
read.cgiは、「>」「>>」「>」「>>」「<」「<<」「<」「<<」に対応したりとか・・・
http://qb5.2ch.net/test/read.cgi/operate/1105442708/292-299 で聞いても分からなかったじょ。
>>741 12/30以降のスレの流れを見ればわかると思うけど、
datファイルサイズをもっと縮小→じゃあBeのプロフィールリンクも短く
って流れじゃないから。
元々Beテスト板(現在の面白ネタnews)のみの仕様ってことで深く考えられてなかったが、
2ch全域導入後に色々意見が出てきてdat仕様を本格的に検討したってことかな。
もちろんその根本にあるのは、
datに余計なものを埋め込まない=サイズを押さえる・転送量削減ってことになりますけど。
ただ、今後のレスアンカーの扱いがどうなるかは知りません。
Beの件とは別物だと思うから。
今回の対応はまだ対応してない専ブラ向けの意味合いも強いと思う
全面的な仕様の見直しではないだろ
>>744 あ、そうか。
javascript込みの長いリンクが表示されてるよりBE:xxxxxxxで表示されてる方がマシってことですね。
>>743-745 ありがとう、参考になりました。
ふと思ったんだけど、鷺板でキャップ持ち以外はBeプロフィール(っていうのかな?)が
出ない件については、ここでいいんですかね?
ホスト表記と併用できる仕組みになってないんだろうね
>>744 OpenJaneの作者の受験に影響が出るからね。w
ふと思ったんだけどUA見てるんだから表示できるように仕込めないのかな?
read.cgi側も合わせて弄らないとダメなんだと思うけどどうなんでしょ?
BBS 等のタイムアウト 3secくらいにしてみようかな
$res->tcp_timeout(3);
$res->udp_timeout(3);
$res->retry(2);
にしてみた、
>>756 おっ。
普通に動いているときはこれで問題ないですが、
へくった時の引っかかり問題がどうなるかっすね。
>>757
_ ∩
( ゚∀゚)彡 実験!実験!
⊂彡
貼っとこ
http://qb5.2ch.net/test/read.cgi/operate/1105959480/624 624 名前:▲ 某ソレ511[sage] 投稿日:05/01/18 02:15:25 ID:O5OzqY/m
>>620 うん、上位の雑談板は先週の平日に比べて少し減少してますねぇ。
そいでいて中位くらいから下の板の投稿量はあまり減ってない、と。
----
ちなみに、きのうDNS問い合わせのtimeoutを変えてから、
すずめのほうもほとんどスレッドランキングさんと
変わらない数値をカウントできるようになりましたね、
なぁなぁ最近日付が変わっても少し時間経たないとID変わらないことあるぞ。
一体スクリプトはどうなってるんですか。怖くて自演できんぢゃないか!
まぁ自演云々はネタとして、普通にどういう仕組みで
そういうことが起こるのか気になる。
仕様だから諦めれ。
1:00AM頃までには ほぼ変わってるから…な?
以前は、POSTリクエスト毎にperlを起動/終了していたのが
SpeedyCGI導入で、複数回のリクエストに対処するようになった。
それに伴い、事前に読み込んだ設定等を保持して持ち越すようになった。
ID生成の乱数の種もそのひとつ。
そして、そのperlプロセスに呼び出し回数や時間等で制限をかけ、
設定更新等がある程度の時間内で確実に反映されるようにした。
その設定が、確か10分程度。
つまり、0時を過ぎてから再起動されたプロセスから、順次IDが切り替わる。
再起動されない間は、前日のIDのまま。
>>764 横だけど、SpedyCGIの効用がイマイチ理解できていなかったから
わかりやすい解説でよく理解できたよ。サンクス
0時に強制的に再起動かませば従来どおりの動作にはなるが、ピーク負荷が……
狼なんかは、0時に強制再起動すると、おもしろいかも
ID無いけど
324 水先案名無い人 [sage] 05/01/26(水) 01:21:15 ID:izKRPcX10 NEW!!
「それが2chの仕様だ」 bbs.cgi開発者、IDが0時で変わらない騒動を一蹴
これが、私が考えたシステムだ。
使い勝手についていろいろ言う人もいるかもしれない。
それは自作自演を画策する利用者や閲覧者が、この仕様に合わせてもらうしかない
サーバの負荷はこれ以上増やしたくないし。サーバの負荷はこれ以上増やしたくなかった。
IDが0時になっても変化しないのも狙ったもの。それが仕様。
これは僕が作ったもので、そういう仕様にしている。
明確な意思を持っているのであって、間違ったわけではない。
世界で一番美しいシステムを作ったと思う。
著名SEが作成するシステムに対して費用の見積もりがおかしいと難癖をつける人はいない。
それと同じこと。
http://qb5.2ch.net/test/read.cgi/operate/1103495887/764 まあ、事前に知ってればたいしたことないんだが
知らないと場合によっては物凄いことに
そもそも、IDという仕様も、それが0時に切り替わるという仕様も、勝手に決めたものだからな
朝の5〜6時あたりの人が少ない時間にID変更するのはどうだろう。
そうだよな。テレビと連携する方向ならIDの変更は午前4時あたりがいいと思うな。
そりゃ穴を見つけて2chを陥落させるために決まってるじゃん( ̄ー ̄)ニヤリッ
毎日日付が変わるころにdev/randから種を取ってきてそれでごにょってるらしいから
それは無い。
setting.txtの頭についている妙な文字列がそれかな。
>785
IPアドレス2^32とランダムseedすべての組み合わせテーブルを計算しておけば出来る。
だけど全テーブルを計算するのに宇宙が終わるぐらいの時間がかかるし、データを保持する手段もなさそうだけどね。
>>787 適当な固定IPアドレスに分だけ確保してそれのランダムseed全てとの(ry
そもそも重複があるから完全な逆引きは不可能だし。
雑談する場所でもないし。
日本のプロバイダor企業から書き込まれていると仮定すれば
有効なIPアドレスの想定範囲はわりと現実的な範囲に収まるはず。
それでもIPアドレスA.B.C.DのC.Dの部分しかわからないんだっけ?
他の手段も併用してプロバイダを推定しないと確定は難しいか。労力の割に実入りがないな(w
>>784 昔のやつはMD5使ってたと思うけど今どうなんだろう
>>786 それは管理パスって聞いたことがあるような気がする。
板名でcryptされた管理パスって。
どこで読んだかなぁあれ
>>790 それだと重複する可能性が高すぎる。
IDは、IPアドレス+板名(setting.txtにある"板のID"?)+日替わりの乱数(16バイトだとか)を使ってMD5で暗号化されているらしい。
まあ本当かどうかは知らないけど。
少なくとも、個人で逆算できるようなものじゃないよ。乱数の計算だけでもとてつもなく時間がかかる。
bbs.cgi再開発プロジェクト4
http://qb5.2ch.net/test/read.cgi/operate/1101984763/861 > sub foxCheckMD5id
> {
> my ($bbs,$md5date,$num,$dateFox) = @_;
> if($dateFox eq $md5date)
> {
> return $num;
> }
> my $md5datefile = "../$bbs/md5.cgi";
> if(open(MD5FILE, "<$md5datefile"))
> {
> my $md5line = <MD5FILE>;
> close(MD5FILE);
> my ($a, $b) = split(/<>/, $md5line, 2);
> if ($a eq $md5date) {
> return $b;
> }
> }
> return &foxCreateMD5id($bbs,$md5date);
> }
Setting.txtに産婆タイマを入れるって話はボツになったの?
今のJane(View系)だと、わざとカキコエラーして秒数取得する
鯖に優しくない仕様(^^;)なんだけど。。。
index.htmlの一番下に書いてあるかと。>samba数値
>>795 常にギリギリOKのタイミングで書かれるのも鯖に優しくないかと。
エラーしてある程度ばらけた時間おいて書く、というのを想定してるのかなあと
たまに再トライする程度なら。。。っていう割合の問題って事ですかね
Setting.txtは取得してカキコ時の設定等に使われてるんで、
載ってた方が他の物を取得せずに済んだりはするんですけどねぇ。。。
まあ、どういう予定なのか聞いてみたかっただけですので
お忙しいとこどもm(__)m
途中送信スマソorz
>>799 無理かと。
現状で使えないようにしている理由がわかってから
また来てください。
>>801 0chにできて2chにできないどんな理由があるの?
http://qb5.2ch.net/test/read.cgi/operate/1105232393/ 24,128,165,184のような、
http://を大量に書き込んでエラーを起こすやつ、
>>規制みたいにbbs.cgiで制御できないかな?
http://は1レス8個までとかみたいに。
bbs.cgiでは難しいかも。
投稿文の中にある、"
http://"という文字列を
例えば"http
//"に書き換える等の手もあるにはあるけど、
普通に考えたら、read.cgiでリンクを張る時にカウントして制限するのが自然でしょう。
つまり どうなってるの?
すでに修正されててわからんかった
要は、
URLが大量に書き込まれると、1レスの表示サイズ制限に引っかかる
と言うことです。
実態をこの目で見ないとスプライトの改造もできないなぁ
こんど発見したら修正しないで残しておいてもらってくださいー
dat 回収に行きます
read.cgi を直してみた
でも bbs.cgi も直したほうがよさげなきがする、
つまんない質問で恐縮なのですが、
bbs.cgiに変更があった場合に、
自動的に復帰が掛かるなんて事はあるのでしょうか?
自分の居る板で 3/4(金)の朝7時頃に、スレッドの並びが変わってたので…。
変更したら板を壊しちゃったから戻して復帰、
とかはありそうだけどね、
そうなんですかー。
皆様、レスありがとうございます。
心配するだけ無駄かもしれませんが、
サマータイムが導入されても正しく動作するでしょうか?
大丈夫、、、なはず。
# DST (PDT)
# Jan-Mar
1 7 * 1-3 * CGI
# Apr
1 8 1 4 0 CGI
1 7 1 4 1-6 CGI
1 8 2 4 0-1 CGI
1 7 2 4 2-6 CGI
1 8 3 4 0-2 CGI
1 7 3 4 3-6 CGI
1 8 4 4 0-3 CGI
1 7 4 4 4-6 CGI
1 8 5 4 0-4 CGI
1 7 5 4 5-6 CGI
1 8 6 4 0-5 CGI
1 7 6 4 6 CGI
1 8 7-30 4 * CGI
# May-Sep
1 8 * 5-9 * CGI
# Oct
1 8 1-24 10 * CGI
1 7 25 10 0 CGI
1 8 25 10 1-6 CGI
1 7 26 10 0-1 CGI
1 8 26 10 2-6 CGI
1 7 27 10 0-2 CGI
1 8 27 10 3-6 CGI
1 7 28 10 0-3 CGI
1 8 28 10 4-6 CGI
1 7 29 10 0-4 CGI
1 8 29 10 5-6 CGI
1 7 30 10 0-5 CGI
1 8 25 10 6 CGI
1 7 31 10 0 CGI
# Nov-Dec
1 7 * 11-12 * CGI
> 1 8 25 10 6 CGI
> 1 7 31 10 0 CGI
1 8 30 10 6 CGI
1 7 31 10 * CGI
こう?
>>821 意味はよくわからないけど、大丈夫そうなんですね。
1000000000になったときはYahoo掲示板がバグってたなあ。
というか,TZ をしかるべく設定すればいいのかと.
>>799の件ですが
無理と知りつつ<ヽ`∀´>板からもお願いしておきます。。。
http://aa5.2ch.net/nida/ >>799はとりあえずAA系鯖で使用可能にしてほしい。
あとは新bbs.cgiをsports2にも投入することを求む。
あとは公開配布も求む。
あと年表示の百、千の位が表示されてる
つまり2001年あたりまで使ってた表示に戻ったということか
> ・3回に1回にする
どーやって測定するのかと(りゃ
> ・ランダムに手を抜く
種生成はーと思ったが、ID生成時に呼んでいますからだいじょぶかしら。
> ・subject.txt/subback.html/index.html生成を別プロセスにして、たまに動かす
実装次第でちょっといけるかもだけど、工夫が必要かも
すなわちhttpd起動とリンクしといてかつspeedy化してたまに稼動、みたいな
安直ですけどね
ex10なら新しいスレ立てたら更新or一定時間スレ立たなかったら更新みたいな感じとか
オンデマンドにすれば良いだけでは。
呼ばれたら作る、必要ならそのまま保持して次のリクエストにそのまま返す
リクエストがなければ作る必要もないし。
まあ、html/*.htmlに相当する部分をファイルから読み込むようだと
ちと厳しいかもしれませんが。
専用ブラウザ専門にしてしまうってのは、広告の問題上無理なのかしらん。
>>836 じゃあ別に専用ブラウザ専門にしてしまって更新するファイルを
subject.txt一本にしてしまえば良いんじゃない?
read.cgiが無くても全く問題ない板なんだから。
>>837 ぶっちゃけた話、クライアントで出来るものは
IE/mozilla(win)/firefox(win)でプラグイン作ってしまえばええのではと言ってみるテスト
ただし私には開発できないので絵に書いた餅ですがね
>>841 mozilla/firefoxにしか対応していませんが、何か?
専用ブラウザのひとつととれますが何か?
index.html subback.html の更新をたまにサボるようにした。
subject.txt は従来どおり更新してます
対象サーバ
ex10
live20
live16
live15
subject.txtの更新もサボるとか言い出した時はぶっ殺してやろうかとおもたよ♥
Q.IDの後ろに付いてる0とかOってなに?
A.書込みがPCか携帯かを区別する目印です。
ちなみに、PCが 0 (ゼロ) 、携帯が O (オー)
bbs.cgiのソースってどこにあるのん?
read.cgiは2ch-toolかなんかにあったんだけど
読んでみたい。
そうか,それは残念
unix板のwizard連中に見せればなにか妙案も思いつくとおもったんだけどね。
>>852 実名明かしたメールをひろゆきに送れば1年後に検討してもらえるかもしれない
live16のbbs.cgiがしょっちゅう反映されなくなる
そのたまカキコ数に波が出る
>>853 1年以上経過したけれども何の音沙汰もありません♪
ほんとは外部設計書みたいなのあればいいんだよね。
セキュリティ上明らかにできない機能はブラックボックスでいいから。
やっつけ仕事なので人に見せられるレベルでないとかなんとかw
いろいろと荒らしがでるとかいってたんだけど。
「ソース隠すことはセキュリティ対策にはならない」と論破されてからは特に有効な反論も出なくて
のらりくらりと話をスルーしている。
見せる義理。たしかにないですね。
ではbbs.cgi再開発がんばってください。
見てやる義理のある方々に任せておけばいいでしょう。
IDの後ろに投稿回数の表示とか出来ないかなぁ…ID:xxxxxxxx0 (このIDによる投稿は12レス目)
みたいな…
そうすれば専用ブラウザに一定回数以上のIDを荒らしと見なして自動あぼーんする機能とか
出来そうでいいなぁとか思ってみたり。
そんなに連投多いですか?
個人的には、ちょっとうるさいな、と感じたら
手動であぼーんするだけで十分足りるような気がするけど
ふとSETTING.TXT見たら
BBS_BG_SOUND=
なにこれ変態じゃないの?
「ソース隠すことはセキュリティ対策にはならない」
これって神話でしょ。
をを!とうとう公開しちゃうのかな?o(^-^)o ワクワク
お掃除ならやってみたいかもかも。
そのとおり。
正しいのは
「ソース隠せばセキュリティ対策は万全」
>>872 ひろゆきの言いたい事は、ソースを隠すことには
セキュリティの観点から見てそれなりの利点がある、ということでしょ
そんなことよりおまいら、mozillaのソースコードが流出したらしいですよ。
http://www.hyuki.com/tf/?20040401145329 HTTPサーバの動きとかCGIの起動原理とかまでひっくるめてまで隠せるんならな。
1「ソース隠すことはセキュリティ対策になることもある」
2「ソースオープンにすることはセキュリティ対策になることもある」
んで、まだ動いてないシステムであれば、2の可能性はありますが、
既に動いてるシステムであると1の可能性が高いのですな。
オープンしたとたんにソースを見なければわからない脆弱性で
いきなり攻撃される可能性もあるわけです。
これは、つまり公開しないってことですよね。
それはそうと、書き込み時間の取得のタイミングを変更する
ことは無いですかね?あまり実益が無いですけど、書き込み時刻と
スレ番号がずれることがなくなると思うのですが。
みんなbbs.cgiのソース見たいだけだよ。何に使うのかは知らんが。
実益のないことにリソースを使ってもしょうがないような、、、
漏れが言いたいのはセキュリティ対策に「万全」「完璧」など存在しないということ。
永遠に努力を強いられる過酷な問題です。
ここの場合、ソース隠してもCGI仕様に則ってるので少なくともインタフェース仕様は公開されているも同然。インターフェースのみ分かっているブラックボックスのセキュリティホールをどうやって見つけられるかというとこに焦点が集まる。
永遠に見つからないセキュリティホールはセキュリティホールではない。
永遠に見つからない保証はないよ?
で、話戻すとインターフェースのみ分かってるブラックボックスの突付き方はまずいろんなアクセスを試みること。なので次にやらなければいけないのは外部からのアクセスの監査になります。それはやってるのかな?
>>882 ソース隠せば、2ちゃんのセキュリティホールをわざわざ解析してまで
攻撃しよう、と思うハッカーが少なくなるんじゃないか、ということではないでしょうか
まあ、2ちゃんがどの程度セキュリティ対策を重視しているのか
甚だ疑問ですけどね。そんなに大事なら、サーバ別負荷の統計とか
狐さんの実験とか、全部やめさせてしまえばいい。もっと安全になりますよwww
>>881 確かにそうですね。遊べるし、困っているわけでも無いですし。
こんなことが出来て面白いので。
>>878 アバウトなアーキテクチャぐらいは公表してもいいかと思います。
ログ記録部分とか秘密にしなければならない部分は非公開が鉄則です。
まあそれでも見せたくなければNDAでも結んで見てもらうっていう手もありますがね
某有名RMSが激しく抗議しそうですがw
もともとセキュリティ対策ってのは実益が無いのに注力しないといけない類の活動ですよ。
アーキテクチャは公表してもいいんじゃないですか?
ただ、ソースを読める人がアーキテクチャをいちいち書くのを
嫌がらなければの話ですが、、、
RMSってなんですか?
>>890 RMS=個人名イニシャルです。むむむさんあたりなら確実にぴんと来るでしょう。
>ただ、ソースを読める人がアーキテクチャをいちいち書くのを
>嫌がらなければの話ですが、、、
そんなにむずかしいことじゃないはずですよ。
整形する
datにかく
なんてことをかいていけばいいので。
アーキテクチャって bbs.cgi でいうと何ですか?
そうそう、時間のことは結局下記のようなことです。
だからどうしたと言われたらおしまいなのですが。
とりあえず、故意に時間がずらせると言うことだけです。
http://qb5.2ch.net/test/read.cgi/operate/1111551639/749-751 アーキテクチャはいきあたりばったりでソース主導で書いたと吐露されても困るな。w
>>892 どーゆー手順で処理しているか、ということです
アルゴリズムといったほうが正しかったかもしれない。
それは既に流出しているような
それも何回も、
それ以来変わっていません。
再度書いて見ました
2ちゃんねる bbs.cgi アーキテクチャ
1) 始まり
↓
2) 各種パラメータ取得
↓
3) パラメータチェック(この処理超巨大) → byebye
↓
4) dat書き込み
↓
5) index.html subject.txt subback.html 更新
各鯖ごとの/dev/random先頭16byteを公開して下さいお願い
>>900 それ公開したら、書き込む前にID分かるようになるんだっけ?
っていうかIDの算出方法そのものも教えて下さい><
>>902 そんなの公開されてるでしょ
というかスレ上で公開でみんなでわいわいやったんだから
>>899 故意と言っても数分程度しかずらすことは出来ないのですが、先ほどの内容で説明しますと・・・
まず、サーバに接続して、HTTPのヘッダ情報を送ります↓
POST /test/bbs.cgi HTTP/1.0
Host: qb5.2ch.net
Content-length: 129
Referer:
http://qb5.2ch.net/operate/ User-Agent: Monazilla/1.00
Cookie: PON=****.***.co.jp; expires=Friday, 01-Jan-2010 00:00:00 GMT; path=/
Connection: close
↑ここまで送ると書き込み時間が決定します。
その後、↓の内容を時間をかけて送信すると、その時間差が生じて書き込まれてしまう。
bbs=operate&key=1111551639&time=1104688508&submit=%8f%91%82%ab%8d%9e%82%de&FROM=&mail=sage&MESSAGE=%82%b1%82%f1%82%c8%8a%b4%82%b6
ただ、↑の情報を送信している間に誰かが書きこまないと、時間がずれているか分からないです。
とりあえず、これだけのことなんですが。
>>907 低速回線環境(PHSなど)と高速回線環境(FTTHなど)が混じったときの
タイムマシーン現象に似せているわけですね。
少なくともこの現象は、もう何年も前からありました。
TCPのパケットを故意に分割して、タイムアウトするまで引っ張るという感じですね。
>>909-911 そうです。ただ、これによって著しく不利益が生じるわけではないと
思うので、特に問題ではないですよね。
実際、この方法でコネクションを引っ張り過ぎるとエラーで
切断/書き込まれないようなので最高でも数十分?くらいかな。
コネクション引っ張る(= 受付嬢を占有する)のはサーバにとっては、コスト高いですね。
だって、受付の人数って決まっているし。
遅い携帯が受付を占領してhttpdがまずしくなるのと、おなじりくつかと。
というかそうか、こういう場合に遠慮なく切っちゃうようにタイムアウト入れるのは、
効果あるのか。
切っちゃっていいんじゃないですか?
数十分も引っ張って迷惑するのは投票所w
ちなみに、携帯系サーバは既にTimeout 5にしてあります。
相当効果あったと、記憶しています。
#
# Timeout: The number of seconds before receives and sends time out.
#
#Timeout 300
Timeout 5
(知っている人は気付いていたのだろうけど)この方法が公になったので、
同じ事を利用してリソースを食いつぶそうという愉快犯が出てくるかもしれない。
タイムアウトを設定する手段は準備しておいた方がいいと思われます。
失礼。いつでもコーイということでしたか。(;^ ^
>>917 まぁ、ステータスログは逐次的にとっているので、
問題になるようなら、ぼちぼち
>>916 を掲示板サーバにも入れるってことで。
重くなると十分単位で書き込みがずれたり
入れ替わったりするですね
自作PC板の日付表示、ず〜っと、あのままですか?
いゃ、自分はアムダーなんで今のままで良いんですけどね。
>>917 時間ずらしは前にもテストスレで(◆MIPS.kHN86さんが?)実験してたから
知っている人は多そう。(少なくとも、自分はそれを見て気付いた。)
>>923 2週間くらい前のでしたらきっと自分です。テストスレで試していました。
実況では時間がずれることはよくあるので、この現象自体は皆さん
知っていると思います。
しかし、実際のところ、これには少し準備が必要なわりに反応が鈍いせいか
やってる人を見たことないですね。
低負荷時にindex更新頻度を上げるってのはできないんだろうか?
ってゆうか、
「3分以上古かったらindex更新」とかにしたら?
index生成って結構処理おっきいと思うんだけど。
index作成はbbs.cgiから切り離して、index作成cgiをcronで動かす。
cronでもコストが大きいからdaemonにしちゃうとか。
タイマとキューを使って細かく制御できればベター
index と subject.txt はどう違うのでしょうか?
>>898 2) 各種パラメータ取得
↓
3) パラメータチェック(この処理超巨大) → byebye
これを順番を適切にするだけでかなり違うような希ガス
・軽くて重要なチェック(たとえばBBQ)を前に
・重くてあまりはねる確率の少ないものを真ん中に
・統計用を最後に
といったかんじで。
で、ぜんぶOKになってはじめてdatをひらく、と(もっともこれは既にやっていると思いますが)。
1) 適切ってのが具体的にわからない。
2) わかったとしても、順番を並び替えるとたぶん動かないだろう。。。
という二重苦だったりします
BASIC (80年代初頭) で組んであると思ってください。
BASIC......ですか、なにもかもなつかしい。
Fortran77
C(78年)
ADA(79年)
>>931 subject.txt は、更新順(sage考慮)に並べてある。
index.html はその上位 10 個を HTML 化した、トップのページと。
bbs.cgi は Perl で書かれている。
こんなところであっていますか?
全部白紙に戻すような話だけど、
xmlで全掲示板を構成すれば、鯖の負担も少ないし(2ch程度の大規模サーバーだからの話ですが・・・)、容量も負担しない。
上手くいけば、今のdatの3/4の容量削減が出来ると思われ。
read.cgiの再開発プロジェクトの住民に悪いが、read.cgiもいらなくなる。
WebProg板とWeb製作板の住民に協力を依頼すれば、たくさんの住民が食いついてくるし・・・
ひろゆき・root両氏の降臨キボンヌ
>946多分あってる。
その論理はちょっとおかしい気が
xmldb(?)で〜
ならまだわかるけど
まぁdatや、subject.txtにある、<>が必要なくなるのでw
subject.txtのsubject.csvに変えて<>→,にすれば無問題。
>949氏等へ
専門的な話をしてスマソ。
root氏やFOX氏なら直ぐに話が分かるような気がしますが・・・
とりあえず、管理団の回答を待ってます。
<dat>
<res name="動け動けウゴウゴ2ちゃんねる" mail="sage" date="2005/04/08(金) 17:46:04 ID:AQwRoo140">
その論理はちょっとおかしい気が <br> xmldb(?)で〜 <br> ならまだわかるけど
</res>
<res name="動け動けウゴウゴ2ちゃんねる" mail="sage" date="2005/04/08(金) 17:51:04 ID:+8zeIhpi0">
高度なネタですね
</res>
</dat>
>953そんなかんじで
修正を加えると
<log>
<res num="948" name="動け動けウゴウゴ2ちゃんねる" mail="sage" date="2005/04/08(金)" time="17:46:04" ID="AQwRoo140">
その論理はちょっとおかしい気が <br> xmldb(?)で〜 <br> ならまだわかるけど
</res>
<res num="949" name="動け動けウゴウゴ2ちゃんねる" mail="sage" date="2005/04/08(金)" time="17:51:04" ID="+8zeIhpi0">
高度なネタですね
</res>
</dat>
相談:このような場合、レスアンカーはどのようにすれば 指定したレスに飛ぶんでしょうかね?/スレ番.xml?num="レスNo."でOKでしょうか?
>954あり
言い忘れたけど、HTML化も不要だな。
HTML同然だし。
XMLは、いろいろなところで流行りだったりして、
各種フォーマットをそれにするというのは、センスとしてはむろんありえます。
で、もし2ちゃんねるのようなものを一から作るとしたら、
XMLベースでいくというのはかなりありえますが、
既に動いている2ちゃんねるに導入するからには、
「作るに足る大きなメリット」言い換えれば「XML化によって見える果実」が
必要な気がします。
後ろにDBを置きやすいとか、標準形式だからブラウザ作ったりする人が対応しやすいとか、
将来の拡張が容易とか、そのへんのもの*以外*に、何かあるといいかもです。
より、実利的な何かがいいかも。
例えば、10倍負荷に強くなるとか、かける工数に対してメリットが目に見える形で存在するなら、
その気にさせる動機になるかもです。
ここの掲示板は「非互換な形にいきなり内部形式を変える」ことには、かなり軽く動くところがあるので、
果実が甘くておいしいなら「いきなりバサっと導入」は、常にありえるかと。
メリット無くてもデメリットさえあってもひろゆきがやるといったらやる悪寒
>>961 転送量を考えれば XML にしたって
read.cgi かなんかでの行数制限読み込みは必要だろう
2ちゃんの負荷分散は専ブラによるところが多い。
現在はIEや携帯の負荷を分散させる作戦中。
100%htmlベースの通常の掲示板というのはシステムの増強なしには無理でしょう。
有料化など収益があれば別ですけど。
「bbs.cgiスレでXML化を言い出す奴=Java屋の会社に入った新入社員」
「bbs.cgiスレでMySQL化を言い出す奴=オープンソースWebASPを聞きかじった新入社員」
XML化してもハードウエアには優しいかも知れんけど、トラフィック的にはそうでも無いんじゃないの?
libxml2をincludeしてソース書いたことあるか?
>>955 ちょっと要領を得ないのだけど、XML化したとして、そのparseはクライアント側が
やるんでしょうか?XMLをブラウザに丸投げしてブラウザが解釈?
だとするとクライアントの互換性が問題になってくると思う。
サーバーがparseするんであれば、その負荷が馬鹿にならないと思うし、
(Parser作ったことある人なら分かると思うけど、複雑な構文を殻に使った
入れ子のparserってかなり負荷大きい)結局read.cgiがベタデータをparseするのと
何も変わらんので、むしろ負荷は大きくなると思う。
あと、datの容量が減るというのが良く分からないのはどうして?
>>953の形式の方がディスクのリソース食いそうだけど。
ちとXMLについてはほとんど無知なのでおかしな事言ってたらスマソ。
>>950 ネタじゃなくてマジだったのかよw。レスついてるしネタにしとけばいいのに
>971
ひろゆきキタ━━━━━(゚∀゚)━━━━━!!
>957=root氏
今のスレは現在のbbs.cgiを使用して、
新スレは新しいbbs.cgiを使用すれば大丈夫だと思われ。
そして今のスレが全部落ちれば、XMLを本格運用すれば(・∀・)イイ!!と思います。
他のメリット・デメリットにに関して・・・現在調査中。
>970全てクライアント。
互換性:デザインはCSSを使用してるので互換性は問題なし!!
datに付いてる<>←これが不要になる。
<a href="">〜</a>とかHTMLでは必要だけど、XMLは<mail>〜</mail>形式でGJ。
ログも読みやすくなる。(正直、今のDATは見にくい。)
read.cgiの容量も軽くなる。→鯖の負担も軽くなる。
専ブラがどうとかこうとか→実施の一ヶ月ぐらい前に、専ブラの作者にメールで通告。
>967重くなるのはクライアント側。けど体感速度は変わらない。
以上です。
なんか真性くさいなあ。
> datに付いてる<>←これが不要になる。
これチョトワラタ
>>973 >>他のメリット・デメリットにに関して・・・現在調査中。
そういうのを調べた上で提案するんだろアホか
つかプレゼンした時あるの?
本気で言ってんですかねぇ。
実際に>955の例とDATのサイズを比較してみたことがあるんかな?
XMLやCSSに対応していないブラウザとか持ち出したら「主要ブラウザで
見れれば問題なし!」とか言うんだろうな…。
>975
DATより軽い等
既出のメリットだけで良いかなぁと思ってやった。
今は反省している。
>976基本的にHTMLと同じだっつーの。
XMLにすると、一般ブラウザ利用者が多ければメリットになりそうな気がするが、2chブラウザにとってはデメリットしかないんじゃないのか。
とにかく、datのファイルサイズが増えるのは確かだと思う。
>>978 若いねぇ。
>955 のXML部分を拡張子htmlで保存してWebブラウザで開いてみなされ。
その表示でおまいさんが満足できるなら何も言うまい。
で、DATよりディスク容量をくうのは理解できた?
クライアント側でparseプラットフォーム汎用って言うとJava2のXercesに落ち着いてしまうわけだがどうよ。重いんじゃね?
いっそ全部preタグでくくってテキスト出しという手もあるなぁ。
文中のURLとか意味のありそうなとこは専用ブラウザが上手に解釈してあげると。
んでもAAがボロボロになっちゃいそうな予感w
>>984 preタグだけはやめてくだされー
by au使用者
あのさぁ
すでにクッキーの仕様がIE以外無視でしょ?
主要ブラウザとか以前の問題じゃないかしら。
上で出てるけど俺も個人的にXMLに移行する理由がないと思います。。
まずはこのスレッドや運用情報板のスナップショットをXML化してどっかにアップしてみるとか・・・
サイズの比較とかもそれで一目瞭然と思うわけだが(^_^;)
ま、XML化する必要があるとは思えんけどね(^_^;)
>987
壷が使えなくなるのが嫌だってキッパリ言えばいいのに
XMLのデメリットはサイズの肥大化だよ?
2chみたいにフォーマットが決まっている場合、
データ項目の変更も無いし、datで十分だよ
>>990 あと、XMLは構文解釈が面倒だしコストかかるから、datの汎用性がなくなると想う。
今の形式はPerlなんかでもさらっといじくれるのが魅力なわけで。
やはりdatの場合は<>SVが効力を発揮する場面でしょ。最近のエンジニアは何でもRDBに
突っ込んだりXML化するのが好きな人多いけど、結局コストが掛かって固定長や
CSVの方がよっぽどマシだったってケースも存在するんだよな。ちょっと愚痴。
サイズを気にしてるなら今のdatも作り直したほうがいいんでない?
このスレのdatを適当に削ったら一割以上サイズ減らせたし。
現行のサイズを気にしてるんじゃなくて、現行よりサイズが増えるのを気にしてるんでしょ。
rootが書いてるように作業量に対してメリットが大きければやるでしょ。
1割減らすメリットが充分大きければやるかと。
とりあえずアンカーにリンクつける必要ないんじゃない?
↓これ生成するときにつけたらいいのでは?
http://qb5.2ch.net/operate/html/1103495887.html どうせread.cgiでは変換するんだから
名前がデフォルト名無しさんの場合はDATに書き込まず、
表示するときにSETTING.TXTから読んで付けるようにしたら?
結構削減されるような気がスルですが。
-curl
lud20250123013432caこのスレへの固定リンク: http://5chb.net/r/operate/1103495887/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
>50
>100
>200
>300
>500
>1000枚
新着画像
↓「bbs.cgi再開発プロジェクト5->画像>1枚 」を見た人も見ています:
・bbs.cgi再開発プロジェクト6
・bbs.cgi再開発プロジェクト4
・白猫プロジェクトin大生
・■eの新プロジェクトIP「Python Pancreas」の設定が完全流出してしまう
・read.cgi再開発スレ
・read.cgi再開発スレ Part2
・【中区】金山・神宮前エリア再開発【熱田区】
・【東京】再開発が続く虎ノ門に新しい高層ビル(高さ185メートル)が完成
・幸せサーバープロジェクト 「アイデア・技術のある人募集中」
・■ ハロプロ ■ BSスカパー!『ハロー!プロジェクトカウントダウンパーティー2015』 ■ 12:00〜16:00 ■ 2 [無断転載禁止]
・■ 2ちゃんねるWiki Part4.0 [プロジェクト・制度解説・FAQなど]
・幸せサーバープロジェクト 「アイデア・技術のある人募集中」★6
・幸せサーバープロジェクト 「アイデア・技術のある人募集中」★5
・幸せサーバープロジェクト 「アイデア・技術のある人募集中」★2
・■ ハローでプロジェクトな7時間半 ■ 13:30〜21:00 BSスカパー! ■
・【宇宙開発】NASAが「月面のクレーターを巨大電波望遠鏡に変える」プロジェクトを発表
・【朗報】スクエニ第一開発部が東京本社でのHD向け新規プロジェクトの募集を開始!!!!!!
・【総裁選】高市早苗「国家プロジェクトとして小型の核融合炉の開発に取り組みたい」 [potato★]
・【総裁選】高市早苗「国家プロジェクトとして小型の核融合炉の開発に取り組みたい」 ★2 [potato★]
・【悲報】ラジアントヒストリア パーフェクトクロノロジー、当初はVITA版として開発がスタートしていた
・GReeeeN、TBS『東日本大震災10年プロジェクト』テーマソングを担当「未来に向かってお届けできれば」 [爆笑ゴリラ★]
・【ゲーム】元『ブルアカ』スタッフによる新作『プロジェクトKV』開発中止 関連資料もすべて削除へ [Ailuropoda melanoleuca★]
・【宇宙開発】謎多きロケットエンジン「EMドライブ」と「マッハ効果スラスター」の実用化に向けたプロジェクトが始動[05/18]
・松山再開発
・都市再開発 立ち退き 経験者の集い
・[再開発事情]未開の糞田舎★大阪を語るpart33
・六本木再開発で世界有数のセレブ街へ大変貌
・東京都心 はかつてない 再開発ラッシュ
・【出棺】あひる▲★がex24のお友達とお遊戯再開スレッド9【火葬】
・福岡市の再開発事業名「天神ビッグバン」w
・【速報】平将門の首塚、再開発のため改修工事が始まる
・【速報】松山に高さ170mと132mビルの再開発が始まる
・名古屋の百貨店、丸栄閉店へ 20年めどに再開発方針
・【国内】国有地、地方創生に活用…出先機関集約で再開発
・【地域】再開発真っ只中「西武の城下町」所沢の栄枯盛衰
・【野球】新神宮球場、4年遅れ31年完成 再開発計画の見直しで
・【大都会】 新潟の古町にとんでもなく立派な再開発ビルが誕生する模様
・【業績】清水建の4〜6月期、純利益55%増 首都圏の再開発など追い風
・【経済】亀山の地価、回復傾向 駅前再開発・リニア駅誘致に期待感 [凜★]
・【名古屋】名古屋再開発、熱い伏見 タワマン半年で完売「記録的」
・皇居ってなんであんな邪魔な場所に突っ立ってんの?天皇は京都に帰ってさっさと再開発しろよ
・【神奈川】“幽霊ビル”取り壊し 駅前再開発へ「一歩」 伊勢原市、2億5千万円で取得
・若者の街「下北沢」の乗降客数が激減で衰退の危機。再開発でフツーの街になってしまうのか?
・bbs.cgiいじくりまくりなんだけど、運営は何をやってんの?
・read.cgi ver 07.0.0 エラー報告はここへ
・hobby7鯖がdj
・【野鳥の会】 BBS.2ch.net 全発言統計の巻 part2
・【野鳥の会】 BBS.2ch.net 全発言統計の巻 part5
・BBS_USE_VIPQ2についてわいわいしよう 5
・BBS_USE_VIPQ3についてわいわいしよう 4
・BBS_USE_VIPQ2についてわいわいしよう 3
・BBS_USE_VIPQ2についてわいわいしよう 8
・BBS_USE_VIPQ2についてわいわいしよう 4
・BBS_USE_VIPQ2についてわいわいしよう 9
・BBS_SLIP=vvvv 導入議論スレ
・■ BBS_4WORLD= 2ch国際化計画
・BBS_USE_VIPQ2についてわいわいしよう 31
・BBS_USE_VIPQ2についてわいわいしよう 1
・BBS_USE_VIPQ2についてわいわいしよう 36
・過去ログ見たいならscを使え
・BBx規制された人(大砲禁止)
・【野鳥の会】 BBS.2ch.net 全発言統計の巻 part1
・【野鳥の会】 BBS.2ch.net 全発言統計の巻 part4
・BBx規制された人(大砲禁止) 3
・BBx規制された人(大砲禁止) 9
・BBx規制された人(大砲禁止) 5
00:16:38 up 32 days, 1:20, 0 users, load average: 49.81, 58.04, 65.77
in 0.067791938781738 sec
@0.067791938781738@0b7 on 021414
|