read.cgi改良スレッド

このエントリーをはてなブックマークに追加
1名無し娘。 ◆vP.bOZFQ
ここは read.cgi の改良だけを専門に扱うスレッドです。

2ちゃんねるで行われている他のプログラム開発や、動作報告・障害報告等に
ついては、それぞれ専用のスレッドが >>2 から参照できますので、
移動してください。お願いします。

●前スレ
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501

●read.cgi最新ソースコード(定期的に同期されています)
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=868&to=868&nofirst=true
2名無し娘。 ◆vP.bOZFQ :01/08/28 20:24 ID:vA2A8wXI
●2ちゃんねる開発統合スレッド(連絡用スレッド)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&ls=20

●キャッシュ型負荷分散システム開発スレッド
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998908154&ls=20
 ◆2chのような掲示板システムってP2Pで(原案のうまれたところ)
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990334284&ls=20
 ◆キャッシュ型負荷分散システムの概観(経緯のまとめ・解説)
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998921988&ls=20

●2chの動作報告はここで。(動作報告・障害報告スレッド)
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&ls=20

●スキルの高い方知恵を貸してください2号(HTMLの整形、軽量化)
http://natto.2ch.net/test/read.cgi?bbs=hp&key=998774537&ls=20

●2ちゃんねるTiki(全体にわたる参照事項です)
http://www.gedoh.org/aki/2ch/tiki/

◆各種ソースコード最新版
http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html
3名無し娘。 ◆vP.bOZFQ :01/08/28 20:25 ID:vA2A8wXI
★現在、2ちゃんねるのミラーリングテストに協力してくださる方を募集中です★

CGI利用可能なHTTPサーバーで公開しても良いという方がいらっしゃいましたら、
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998908154&ls=20
までご連絡下さい。よろしくお願いします。


★また、2ch.net に追加する新しいCGIがテストできるサーバーも募集中です。

協力してくださる方は、
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990334284&ls=20
までご連絡下さい。
どんなCGIかは、以下を御参照下さい。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990334284&st=537&to=537&nofirst=true


★さらに、2ちゃんねる閲覧ツールを作っている方々へ。

read.cgiに、.datファイルの差分転送・圧縮転送をする機能が加わりました。
閲覧ツールの側で対応してくださると、2ちゃんねるの転送量がかなり軽減できます。

にご連絡下さい。よろしくお願いします。
4名無し娘。 ◆vP.bOZFQ :01/08/28 20:26 ID:vA2A8wXI
>>3
最後の連絡先はここです(^^;
5名無し娘。 ◆vP.bOZFQ :01/08/28 20:32 ID:vA2A8wXI
連絡事項は以上です。。。

みなさま、よろしくお願いします。。。
6|  - -):01/08/28 20:43 ID:vBFldHfk
zlibを突っ込んだのでcvsを使っている方はcvs up -dしてください。
# コメントを空にしてしまった...
7P2Pスレの266:01/08/28 20:51 ID://bFJTXs
スマソ。P2Pcache スレの 266 っす。
差分転送対応の read.cgi の情報はどこへ行けば分かりますか?
どういうパラメータを与えればよいのか調べたいので教えていただけると助かります。
8♯6411:01/08/28 20:53 ID:ft1AuJx2
9P2Pスレの266:01/08/28 20:55 ID://bFJTXs
>>8
ありがとさんです:)
10♯6411:01/08/28 20:55 ID:ft1AuJx2
>>8 あー仕様が述べられてないなあ。
cvsミラーから、最新のread2ch.h探して
それ読んでみてちょ。
11仕様無しさん ◆NwLv.g/w :01/08/28 21:00 ID:pAh9w2Cg
i-MODE版だと1000越えててもFORMが出るみたい。
あと、スレ止めかかってるときもFORM要らない気がする。
12デフォルトの名無しさん:01/08/28 21:02 ID:/foo1b.s
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=868&to=868
の中で早急に実装すべきなのは r2chhtml.h 周りなのかな?
さて、どの提案を実装するか…
13仕様無しさん ◆NwLv.g/w :01/08/28 21:07 ID:pAh9w2Cg
>11のうち、i-MODEの方、修正済。
14前スレの513:01/08/28 21:10 ID:6S1uJJBo
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=871&to=871&nofirst=true
(>前スレの871) そうですね ってgzipのソース見てみたら 案外簡単に
その線で手を付けられそうです 今までzlibをブラックボックスとして見ていて
zlib側に手を加えることを考えてませんでした......ってことで ちょっと
やってみようと思います
15デフォルトの名無しさん:01/08/28 21:12 ID:fuFoxE4A
>8
現在のバージョンは
/* raw=xxx.yyyを有効にする。 xxx=最終レス番号, yyy=そのときのサイズ。
* 一行目はステータス:
* [+OK] の場合は差分のみを送信する。
* [-INCR] (Incorrect)の場合はすべてのデータを送信する。
* [-ERR (テキスト)]の場合はなんかエラーが起きた。
*/
つまり 先頭行で
-INCR が送られて来たら 全部の行の読み直しが送られて来る
でなければ最終レスの次から送られるという仕様のようです
16デフォルトの名無しさん:01/08/28 21:20 ID:un1LZ.0c
Content-Encoding: deflate
で、Content-Lengthを吐ける(メモリ上で圧縮)ようにしたんですけど、
どこに出せばいいんでしょうか。
17♯6411:01/08/28 21:26 ID:ft1AuJx2
>>16 diff(-c or -u)取って済むレベルだったら
ここに貼ってもらえばcommitします。
さもなければ、/incomingに突っ込んでもらうか
直接cvs commitしてもらえれば…
18デフォルトの名無しさん:01/08/28 21:27 ID:Os46TJAs
>>16
cvs使えるなら
ftp://210.170.170.131/incoming/
の中のそれっぽいファイル参照で。
19前スレの513:01/08/28 21:28 ID:6S1uJJBo
>>16 あっもうやってたのね 自転車の再発明をするとこだった(w
20デフォルトの名無しさん:01/08/28 21:31 ID:DJ9Ovvc2
なんか過去ログ見るのにパスワードが必要になってるみたいなので
read.cgiに過去ログ見る機能をつけるのはまずいかも…。
21名無し娘。 ◆vP.bOZFQ :01/08/28 21:36 ID:vA2A8wXI
>>20
そうらしいですね。
でもまあ、-DKAKO とかにしとけばよいので。。。。
22デフォルトの名無しさん:01/08/28 21:37 ID:2O23P606
>>16
前スレ238でこんな報告があるけど大丈夫?
>IEはヘッダにはAccept-Encoding: gzip, deflateと含めているにも
>関わらず、実際にdeflateでエンコードしたデータを喰わせても
>解釈できないです。
23デフォルトの名無しさん:01/08/28 21:37 ID:un1LZ.0c
>19
いいえ、
ftp://210.170.170.131/incoming/x
にスクラッチから書いたものなので、cvsでのマージは無理です。
gzipもdeflateにヘッダを数バイト足せば良いだけなので、簡単かも。
24デフォルトの名無しさん:01/08/28 21:43 ID:Os46TJAs
>>23
うは、かなり古いソース元にした上でグローバルとか全部構造体に直したりしてるのね
25♯6411:01/08/28 21:49 ID:ft1AuJx2
手元では、ソースが-funsigned-charベースになってる
んですが、マージしちゃっていいですか?
一通り試したかぎりでは、実害はありません。
2623:01/08/28 21:55 ID:un1LZ.0c
はい。著作権放棄(できないけど)なのでいくらでもどうぞ。
27デフォルトの名無しさん:01/08/28 22:04 ID:6S1uJJBo
>>23 ftp://210.170.170.131/incoming/x/read-x.c ですか?
何か"Content-Length"という文字列が見当たらないんですけど......
28デフォルトの名無しさん:01/08/28 22:14 ID:2O23P606
>>27
というか、zlibを呼んでるだけに見えるんだけど。
なんか勘違いしてません? >>23
29VC++まだ箱のなか厨房(w:01/08/28 22:15 ID:BD3EkxyY
早速某所実況スレ(削除依頼済み)で
 30秒リロード強制304
 >>** リンク禁止
が貢献していると思われます。ありがとうございます。
30名無し娘。 ◆vP.bOZFQ :01/08/28 22:20 ID:vA2A8wXI
>>29
やや関連して、いまさらかなり厨房な意見になってしまいますが、
ここはいったん、.datの直読みを禁止(chmod 600)してもらって、
FORTH_304_TIME と gzip 転送を強要してしまうのはどうでしょうか。
かちゅ〜しゃとか使えなくなりますが。

よろしければ、批判要望の方でお願いしてきます。
31デフォルトの名無しさん:01/08/28 22:22 ID:DJ9Ovvc2
chmod 600だとread.cgiからも読めないとかbbs.cgiから更新
できないとかかなり不都合がありそうですが
32デフォルトの名無しさん:01/08/28 22:23 ID:6S1uJJBo
>>31 "chmod u+s *.cgi"でダメかね?
33名無し娘。 ◆vP.bOZFQ :01/08/28 22:24 ID:vA2A8wXI
CUTRESLINKって22時からでしたっけ?
>>30
あと、実況している板が未だにいくつかあるようですので、そういうところを
局地的に #define FORTH_304_TIME 120 とかにしてしまえるよう、
設定関連の SETTING_R.TXT への追い出しもお願いできませんでしょうか。
直接的ですが、転送量削減が至上命題ですから、やむを得ないかと。
34デフォルトの名無しさん:01/08/28 22:24 ID:Os46TJAs
つーか.dat直読みでかつ差分でなく全文取り繰り返してるような利用って
どんぐらい多いものなのか。
統計チェックできないね。
35デフォルトの名無しさん:01/08/28 22:27 ID:2O23P606
Content-Length対応素材

char emergency_buf[8192]; /* for html_error */

char *outbuf;
int outlen = 0;
int outalloc = 0;

int gzipped_fwrite(char *buf, int n, int m, void *dummy)
{
 int l = n*m;

 if ( outlen+l > outalloc ) {
  outalloc = outlen+l+4096; /* 多めに */
  if ( outlen == 0 ) {
   outbuf = malloc(outalloc);
  } else {
   outbuf = realloc(outbuf, outalloc);
  }
 }
 if ( outbuf != NULL ) {
  memcpy(outbuf+outlen, buf, l);
 }
 outlen += l;
 return m;
}
36デフォルトの名無しさん:01/08/28 22:29 ID:2O23P606
main向け
html_errorはどうにかしないとまずいことに。(メモリが取れないときだけ)

 if ( outlen != 0 && outbuf == NULL ) {
  outbuf = emergency_buf;
  outlen = 0;
  html_error("メモリの確保に失敗しました。");
 }
 printf("Content-Length: %d\n",outlen);

 fwrite(outbuf,1,outlen,stdout);
37デフォルトの名無しさん:01/08/28 22:29 ID:DJ9Ovvc2
全板FORTH_304_TIME設定でもとくに問題ないと思うけど。
開始時刻と終了時刻は22:00〜3:00に再調整されてるみたい。
昨日の〜6:00ってのはバグが直ってることを確認するため
だけの設定だったのね。
38VC++まだ箱のなか厨房(w:01/08/28 22:30 ID:BD3EkxyY
どうやら.datが更新されていると30秒以内でもread.cgiが最新を返す
見たいなんですが、
994〜1003あたり別に問題ないみたいですよねぇこれ
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/read14.2.7.c
今導入したソース読んでたんですが

やぱ夜勤さんの導入ミス?


>30
今サーバいじれる人がいない模様・・・批判要望板でねばり強く居座っておきます
39名無し娘。 ◆vP.bOZFQ :01/08/28 22:31 ID:vA2A8wXI
>>37
こことかunixとかaccuseが2分間リロード制限は不便かなと思ったので。
いや、それでもいいとは思います。
4023:01/08/28 22:45 ID:un1LZ.0c
>27, 28
失礼。古いほうのファイルあげてました。あげなおしました。
41デフォルトの名無しさん:01/08/28 22:48 ID:qBsG8MmI
グローバル変数
int isbusytime = 0;
の下に、
int isimode = 0;
int isnofirst = 0;
をつけ、
strcmp(zz_im, "true")とstrcmp(zz_nf, "true")を
zz_GetEnv()の最後にまとめることをきぼー。


ツール作者に、read.cgiを呼ぶように呼びかけているけど、それは当分無理。
cgiの負荷が原因で規制がかかったりもしたんだし、
そもそもサーバー負荷の点でから、read.cgiを呼ばないように
呼びかけられているんだから。
夜勤さんが最初(でもないけど)に悲鳴をあげたこのスレッドの、
最初の方だけでも読んでよ。
http://green.jbbs.net/computer/bbs/read.cgi?BBS=479&KEY=989936380

圧縮効果がどれほどになるかはリクエストを分析しないとわからないけど、
NotModifiedや、あっても数行の追加レス(とくにチャット状態)
というリクエストの方が圧倒的に多いはずだから、
わざわざCGIを呼ぶように作る人は、
サーバーリソースを重視する人の中にはいないはず。

初読みの時だけ、あるいは前回のリクエストから一定時間以上経過していたら
CGIを呼んで圧縮して返してもらう、等にしてもらえばBestかも。
42デフォルトの名無しさん:01/08/28 22:50 ID:FO4gzHSQ
>>30
ちょっと極端すぎるんでない?
もともとDAT差分読みが基本でサーバにやさしい2ちゃんブラウザを全部排斥しちゃうの?
ブラウザ作ってる人が皆暇なわけじゃないわけだし、あまり無茶はどうかと思われ
43デフォルトの名無しさん:01/08/28 22:53 ID:DJ9Ovvc2
ちゃんと効いてるみたいだよ>FORTH_304_TIME

617 名前:594 投稿日:01/08/28 22:49 ID:7Qjv2346
>>605
漏れはindex2.html見てたよ…
read.cgiは30秒制限かかってました…。
44デフォルトの名無しさん:01/08/28 22:59 ID:qisK1mh.
>>33
設定の変更を行うであろう回数とread.cgiが呼ばれる回数の比を考えたら、
ここはハードコーディングで済ますべきだと思うが
45名無し娘。 ◆vP.bOZFQ :01/08/28 23:00 ID:vA2A8wXI
chmod 600 じゃなくて、/dat/.htaccess でしばっても可ですね。
>>42
その通りで、作者の皆さんには失礼だとはわかっていますが、あと3日で
転送料を現状の3/4程にしないといけないわけですし、2ちゃんねる
そのものの存在がかかっていますから、今すぐとはいわずとも、選択肢に
入れておく必要はあると思います。
46|  - -):01/08/28 23:02 ID:vBFldHfk
FORTHじゃなくてFORCE...
47名無し娘。 ◆vP.bOZFQ :01/08/28 23:03 ID:vA2A8wXI
>>44
単純にその問題に限っていえば、read.cgiは/板名/以下にあるわけでは
ないですから、板毎に設定可能にするためには、板毎の FORTH_304_TIME を
.hあたりに記述することになりますね。
そのあたりの効率は、実行する方にお任せします。
48名無し娘。 ◆vP.bOZFQ :01/08/28 23:04 ID:vA2A8wXI
>>46
・・・逝ってきます
49デフォルトの名無しさん:01/08/28 23:05 ID:qBsG8MmI
こんな感じかい?
#defineが足りないけど。

zz_GetEnv()の最後に
 readSettingFile(zz_bs);
}

void readSettingFile(const char *bbsname)
{
char fname[1024];
char buff[1024];
FILE *fp;

sprintf(fname, "../%.256s/SETTING_R.TXT", bbsname);
fp = foepn(fname, "r");
if (fp) {
/* SETTING_R.TXTを読む */
while (fgets(buff, sizeof(buff), fp)) {
if (*buff && *buff != '\n' && *buff != '#' && *buff != ';') {
char *value = strchr(buff, '=');
if (value) {
*value = '\0';
if (strcmp(buff, "FORCE_304_TIME") == 0) {
zz_FORCE_304_TIME = atoi(value);
}
} /*else if () {}*/
}
}
fclose(fp);
return;
}
/* SETTING_R.TXTがない場合、デフォルト値を設定 */
zz_FORCE_304_TIME = FORCE_304_TIME_DEFAULT;
}
50デフォルトの名無しさん:01/08/28 23:06 ID:DKvFcTZ2
だからアクセスログの解析しないと、その辺も決めきれないよ。
返って負荷増やす結果になりかねん。
夜勤さん来たら頼んどいてね
51名無し娘。 ◆vP.bOZFQ :01/08/28 23:13 ID:vA2A8wXI
>>49
はい。そんな感じかと。
>>50
解析できれば簡単ですが、できない場合は「やってみて様子見」の覚悟も
必要でしょうね。極めて短期的な負荷増はこの際問題ではないですから。
ま、どちらにしても夜勤さんにおうかがいです(^^;
52名無しさん@揚げ足:01/08/28 23:14 ID:ETz9dJDM
告白します
今日気付いたんですが、F5を3回連続で叩く癖がついていました
無意識に新しいのを読み込もうとしちゃいます どーしよー
53デフォルトの名無しさん:01/08/28 23:15 ID:6S1uJJBo
>>49 mmap()の方がいいかも
54名無し娘。 ◆vP.bOZFQ :01/08/28 23:20 ID:vA2A8wXI
>>51
訂正。解析できても簡単じゃないです(汗
5549:01/08/28 23:21 ID:V02xO5sc
じゃあ、少しまじめに
atoi(value) -> atoi(value+1);

#define FORCE_304_TIME_DEFAULT 30

グローバルに
int zz_FORCE_304_TIME;

判定している部分で
if (... FORCE_304_TIME ...) → if (... zz_FORCE_304_TIME ...)

#ifdefで囲む必要もありそう


俺、mmap知らんのや。
(else ifのネストもおかしかった)
でも、誰かがmergeしてくれるのを待つだったり。
動作確認してないし。
56デフォルトの名無しさん:01/08/28 23:26 ID:DKvFcTZ2
■提案■

「最新レス100」の隣に、「このあと追加されたレス」ボタンを置く。
リンクは、そのページでたとえば113まで表示されていたら114からの範囲指定。
ない場合のエラーメッセージをゆるくする。
たとえば「指定されたレスはまだありません、ブラウザの戻るボタンで戻ってください」

リロード対策。
57♯6411:01/08/28 23:27 ID:ft1AuJx2
スマソ、今本業中なので(苦笑
アイディア山車だけ。
誰か、Expire実装しといてくれない?
漏れ的には、5秒程度でいいような気がしたーり。
58名も無き:01/08/28 23:29 ID:7XRvfoXo
流れと関係無いけど
「レス1-100」を作れば
スレが始まった直後を見るために
レスを全部見る必要がなくなると思うのだが。
59名も無き:01/08/28 23:32 ID:7XRvfoXo
>>56
ナイスですな。
60♯6411:01/08/28 23:32 ID:ft1AuJx2
>>51 どーでもよくないことなんだけど…
串ユーザの割合ってどれくらいだろう?
夜勤さんとか来たら、ちょっと測ってもらいたし。
キャッシュサーバにかなり有効な最適化
図れるんだけど…
61デフォルトの名無しさん:01/08/28 23:36 ID:CBolE./M
>>58 今ついてる奴じゃ駄目なのか?
62デフォルトの名無しさん:01/08/28 23:36 ID:jC7qg.Nk
>>56
賛意。
現在はスレの一番下からは、どこにも飛べない設計になっているよね。
従ってインターフェィス的に100%ブラウザーのreload押されると思われ。

実装に手間かからないのも魅力的。(笑
63てすと:01/08/28 23:37 ID:8Eh1e7h6
>>56
既にソースの中には実装されているはずです。
まだ動作確認や組み込みは行われていませんが・・・。
64名無し娘。 ◆vP.bOZFQ :01/08/28 23:38 ID:vA2A8wXI
>>60
夜勤さん見かけたらきいておきます。
65♯6411:01/08/28 23:47 ID:ft1AuJx2
>>64 さんくす
いったん自宅に帰ろう…本業が煮詰まったでのう。鬱…
66デフォルトの名無しさん:01/08/28 23:51 ID:6S1uJJBo
さっきUNIX板(cocoa)で"Internal Server Error"が一時的に出てたけど......
ひょっとすると"Couldn't spawn child process"のような気がする......
やっぱzlibの方がいいね
67デフォルトの名無しさん:01/08/28 23:54 ID:cccdonUU
>63
-DRELOADLINK ?
68デフォルトの名無しさん:01/08/28 23:58 ID:1vYPgdGY
>>66
bbs.cgiが吐いているんじゃないの?
bbs.cgiいじっているようだし。
DolBackyさん出動中かな?
69てすと:01/08/28 23:59 ID:8Eh1e7h6
>>67
そうです。
置く場所や、HTMLの部分は適当に書き換えてください。
70デフォルトの名無しさん:01/08/29 00:00 ID:344OCV4A
>>68 いやread.cgiの方も出てた
71名も無き:01/08/29 00:04 ID:CYESa.LE
うーむ
プログラム中での"line"は
レス単位だったのか・・・・
72名も無き:01/08/29 00:08 ID:CYESa.LE
>>61
read.cgiにも欲しいかなー・・と。
73デフォルトの名無しさん:01/08/29 00:15 ID:zFPSp17Q
>>72
そうだね、read.cgiの出力に直行性がなくて
(したくもないのに)全部ロードするしかないことが多いね。
だれか強権的にインターフェイス揃えちゃえば?
74Sherry ◆RKMbxbuc :01/08/29 00:16 ID:RKxEDv6s
>>前スレ800
access.log 公開って難ありなんでしたっけ?

コードを渡して実行してもらう方式だと,夜勤さんに結構
手間かけちゃうのと,解析結果をみて更に詳しい解析を‥‥‥
とかがしにくくなっちゃうかと.(^^;

前スレ711,713あたりをみて公開できるものなのかと思ってましたが(^^;
とりあえず,前スレ757-759使えばIPは隠せるので公開しても
大きな問題はなさそうなものですが・・・どうなのかな?
75デフォルトの名無しさん:01/08/29 00:20 ID:zFPSp17Q
>>73に補足
「この前の100」「この次の100」とかもありそうでなかったりするから、
結局全部ロードすることになる。

範囲指定したときかな?
index2.htmlにならんでるスレッドの「1-100」を選んだときに、
最下行に「次の100レス」がない。
76デフォルトの名無しさん:01/08/29 00:20 ID:x5yXcrTI
lsを使った読み込みの場合、前10レスが短時間たとえば5分で消費されてる
場合専用ブラウザ使ってくださいというダイアログがでるのはどうでしょうか?
JAVA切ってるとクッキーを作らないのでJAVA入れるしかなくしておいて

まあProxomitron使われると終わりでしょうが
77名も無き:01/08/29 00:28 ID:CYESa.LE
>>75
範囲を直接指定できるようにすれば?
フォームがかさばるかもしれんけど

ま、そういう機能がほしけりゃカチューシャ導入してるかな?
78デフォルトの名無しさん:01/08/29 00:28 ID:pDIT9tbQ
某板の過去ログサイトなのだが、こういう UI はどう?
http://orihara.virtualave.net/cgi-bin/read.cgi?key=950391528&page=1
79名も無き:01/08/29 00:30 ID:CYESa.LE
>>78
イイ!
100ごとのページ表示なんかなんで
今まできづかなかったんだろう
80デフォルトの名無しさん:01/08/29 00:33 ID:zFPSp17Q
よさそうに見える
荒らしのきついスレとか、「多分この辺まで嵐だから飛ばそう」とか
あたりをつけて見ることが、結局通信料の抑制につながることは多いだろうし
81名無し娘。 ◆vP.bOZFQ :01/08/29 00:34 ID:moOhcWuk
>>74
IP(と場合によってはリモートホスト)と、bbs.cgiへのアクセスの部分を
排除すれば、大きな問題はなさそうですが。。。うーん。
鯖のポリシー、サイトのポリシー次第でしょうから、気にかかるんですよね。
なんにせよ、おうかがいはたててみましょう。
CUTRESLINKされるおかげで、該当レス読むために50レスだのスレ全体だのが
リクエストされてるんではないか、という心配もあるし。
82デフォルトの名無しさん:01/08/29 00:35 ID:zFPSp17Q
read.cgiの方は使い勝手よくしとかないと、
ストレスたまってindex2.htmlの消費量を増やすんじゃないかと思う、
憶測だが、自分の経験だと。
83デフォルトの名無しさん:01/08/29 00:37 ID:x5yXcrTI
>>82
index.htmlを使いにくくすればいい(w
84デフォルトの名無しさん:01/08/29 00:40 ID:zFPSp17Q
使いにくくしてもしかたないのでは?
つまらなくするならわかるが
(ネタだろうけど、戦略レベルでは結構示唆するところがあると思うのでマジレス)
85デフォルトの名無しさん:01/08/29 00:42 ID:344OCV4A
>>49 >>55 のをmmap()化してみたり mmap()化で変わる部分だけ抜粋

int fd;

fd = open(fname, O_RDONLY);
if (fp >= 0) {
 /* SETTING_R.TXTを読む */
 char *cptr;
 void *mmptr;
 struct stat st;
 fstat(fd, &st);
 mmptr = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
 for (cptr = mmptr; cptr && *cptr; cptr = strchr(cptr, '\n'), cptr?cptr++:0) {
  if (*cptr != '\n' && *cptr != '#' && *cptr != ';') {
   if (!strncmp(cptr, "zz_FORCE_304_TIME=", 18)) {
    zz_FORCE_304_TIME = atoi(cptr+18);
   }
  } /*else if () {}*/
 }
 munmap(mmptr, st.st_size);
 close(fd);
}

# それにしても ここにそのままコード貼り付けると半角スペースがつぶれて
# インデントがなくなっちゃうから不便だぁ
86Sherry ◆RKMbxbuc :01/08/29 00:42 ID:RKxEDv6s
>>81
bbs.cgi って POST だから投稿内容等は全部ログには出ないのでは...?

とりあえず,夜勤さんの反応待ちですね.(^^;
公開してもらうにしろ,スクリプト実行してもらうにしろ,
可能なのかまだわかりませんから...
87デフォルトの名無しさん:01/08/29 00:50 ID:zFPSp17Q
>>83-84
とにかく、全体の通信量の削減のためには、
通信量の割にユーザを拘束する時間が長いのがベストで、
そうならない改造はすべて改悪と言ってよいのだから……

ユーザを拘束するまっとうな手段は、
通信量の割に濃い内容を提供することだけど、
誰かがジョークで言ってた「sleepする」ってのも、
条件的にはありえない選択ではないのよね。
特にテレホタイム直後のみでも。

エキサイトメールとかは多分そうしてたんだろう。
まあ、BIG-Serverのポリシーに反するからここでは厳しいだろうけど。
最後の手段の一つということで。
88デフォルトの名無しさん:01/08/29 00:51 ID:8IZ77cwc
>>78
いいですね。そうなるとむしろ「全部読む」が要らないかも。
89名無し娘。 ◆vP.bOZFQ :01/08/29 00:52 ID:moOhcWuk
>>85
今の状況だと、read.cgiは、考え得るすべての選択肢をすべて実装しておき、
夜勤さんが、手軽に&感覚的にいろいろ設定を変えて様子をみられる状態に
しておくべきかな、と思うので、よろしくです。。。
>>86
もちろんそうですが、POST に関しては一切情報を出さないくらいじゃないとなぁ、と。
IP消すんだから、別にいいような気もしますが。
もしかすると、あぼーんスクリプトのlogも消さないといけないのかも。
# あぼーんがhttpd経由かは確信がないです。
9098er ◆8OGY65D6 :01/08/29 00:52 ID:Bn7Ijhjg
>>85
流出した SETTING.TXT は perl の CGI で、普通に呼び出されたら
設定を出力するようになっているんです。
それに沿うようにするなら SETTING_R.TXT も cgi にするべきかも。
91デフォルトの名無しさん:01/08/29 00:53 ID:zFPSp17Q
コーディングに参加したいけど手元にUNIXとかwebサーバがない
コンパイル通る程度でいいの?
92デフォルトの名無しさん:01/08/29 00:55 ID:pDIT9tbQ
>88
要らないというか使わせないという感じかな。

>91
Win なら cygwin をインストール。
93デフォルトの名無しさん:01/08/29 01:03 ID:x5yXcrTI
>>78
の様なUIにするならインデックスを1つごと作るのではなく
1,101,201...901の位置にだけ作ってしまえばいいのでは
9491:01/08/29 01:13 ID:zFPSp17Q
>>92
入ってるけど、何の関係が?
gzip使ってるからかな?
95デフォルトの名無しさん:01/08/29 01:13 ID:uqhD7TfA
今更ですが、sageの場合、メアドリンクしないことにしませんでしたっけ?
96名無し:01/08/29 01:14 ID:rLkLso.k
ftp鯖ってどこにありますか?
97♯6411:01/08/29 01:17 ID:hO/EUIjQ
自宅に帰ってきたら、
cutreslinkが動くようになってきてしまった…鬱だ
手元で外せばいーんだけど。
98名無し娘。 ◆vP.bOZFQ :01/08/29 01:18 ID:moOhcWuk
夜勤さんがいらっしゃるのですが、インストールできる状態の新バージョン
ありますか?
# 夜勤さんのお時間があるかどうかはわかりませんが。
99名無し娘。 ◆vP.bOZFQ :01/08/29 01:20 ID:moOhcWuk
夜勤さん提供情報
http://news.kakiko.com/mentai/20010829/
100♯6411:01/08/29 01:21 ID:hO/EUIjQ
>>95
sageの場合、わかりやすい(?)ように、
boldを外してしまう、という仕様にしましょうか?
101名無しさん@揚げ足:01/08/29 01:22 ID:lUWuNogA
read.cgiに前100付けるなら、imode版の先頭にもつけて欲しいです
imode-phsだとキャッシュを有効利用し、スレ開いて前前前前と読んで
オフラインし、連続で読みが出来るのです
ついでに1がデカイ事があるので、1だけ次のレスへのジャンプが出来ると
さらに使い勝手が上がって助かります
102名無し娘。 ◆vP.bOZFQ :01/08/29 01:25 ID:moOhcWuk
いちおうコピペ

811 名前:夜勤 ★ 投稿日:01/08/29 01:16 ID:???
"Since it our general policy not to install modules within our existing
apache, this needs to be done by hand and will take some time.

Gary"
103|  - -):01/08/29 01:28 ID:Pq4nSXsY
>>102
予想通りの結果になったなぁ。

とりあえず今のCVSバージョンは
・COOKIE処理はやっぱりJavaScript側でやらせるようにする(キャッシュされてキャップパスがばれる可能性があるから)
・RAWOUT, USE_PATH追加
・HTMLの更なる最適化
・zlibを含めるように
くらいかな?
このバージョンで一回tryしてみますか。
104%95:01/08/29 01:30 ID:uqhD7TfA
>>100

boldを外すと、fusianasanの見分けが付かなくなるので、
例えば名前のbold外に*をつける位でよろしいかとおもいます
105デフォルトの名無しさん:01/08/29 01:31 ID:yQuoniQU
"<a href="mailto:sage "><b>さげ名無し </b></a>"
"<font color=green><b>あげ名無し </b></font>"
"<font color="#660099">さげ名無し </font>"

"sage "直後の空白は、「メール欄の最後がシフトJIS1バイト目以外なら」出力せずに済む。
名前欄も同様(見かけが変わるけど)
106名無しさん@揚げ足:01/08/29 01:31 ID:lUWuNogA
>>99
コロッケ台風の時のkabaは無いでしょうか?
祭りモードでピーク時の様子も見てみたいのですが
107♯6411:01/08/29 01:36 ID:hO/EUIjQ
>>104 あっそうか、fusianasan忘れてた。

>>105 ちょっと考えてみたが、boldのblueってのはどうだろう?
(個人的にはstrike使ってみたい)(w
108名無し娘。 ◆vP.bOZFQ :01/08/29 01:38 ID:moOhcWuk
今日の夜勤さん。。。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998943001&st=757&to=811&nofirst=true

お知らせくらいのお時間しかなかったようで。。。
109デフォルトの名無しさん:01/08/29 01:39 ID:yQuoniQU
ごめん、今は、
"<a href="mailto:sage ">さげ名無し </a>"
だね。

何にしろ、hrefを減らすとしても<font color=> </font>が入るから、
あんまり差が出ないか、逆効果かもしれないよ。
まあ、isbusytimeは強引に
"<b>さげ名無し </b>"
ってものありかも。
110♯6411:01/08/29 01:39 ID:hO/EUIjQ
>>107 ためしに実装してみたら、
一瞬違和感感じてしまった(w
でも、これでいいかな、どうでしょう?
さらなる意見求む。
111109:01/08/29 01:40 ID:yQuoniQU
前半大間違い。
112音楽侍 ◆NtVkSITE :01/08/29 01:43 ID:IJ0kRMgU
sageでの表示にまで話がいっているようですが、
必要充分以上の改変は、控えた方がよいと思いますよみなさん。
113♯6411:01/08/29 01:46 ID:hO/EUIjQ
>>110 color=#0000c0 にしてみたら、
なんかいい感じな気もしないでもないが…
公開鯖でないので見せてあげられないのが残念
114screamer_j(91):01/08/29 01:50 ID:zFPSp17Q
reload_link、stが存在しない範囲を指してるとレス#1だけ表示されるね。
これだとわかりにくくて使ってもらえない可能性大だね。

stが指してる場所が範囲外だったらすべてエラーにする?
それともreload_link専用の属性(たとえばrl)を用意すべきだと思う?
115デフォルトの名無しさん:01/08/29 01:52 ID:pDIT9tbQ
>94
いや、apache もあるしcygwin環境でも十分試せると思って。

>114
st=lineMax+1 じゃなくて st=lineMax にすればいいと思う。
116|  - -):01/08/29 01:55 ID:Pq4nSXsY
今はとにかく転送量を減らすのが目的なので出来るだけ圧縮が効くように
同じタグを配置したり無駄なものを排除した方がいいと思います。
# しかしread.cgiはもう限界近いような気が。index2.htmlの圧縮はどう
# なっているんだー
117♯6411:01/08/29 01:56 ID:hO/EUIjQ
>>114 st=(最後のカキコ) だと
ちょっとうまく逝くんじゃないかな。
それを使う人はたぶん、reload_linkをしばらく
リロード連打するだろうし。
118♯6411:01/08/29 01:58 ID:hO/EUIjQ
>>116 sage変造のサンプルをcommitした
(ただし殺してある)ので、見てみてくだちい。

エンドユーザの串依存率が低くないのであれば、
とてもよく効く妙案があるんですが…
119♯6411:01/08/29 01:59 ID:hO/EUIjQ
>>115 かぶった スマソ
120デフォルトの名無しさん:01/08/29 01:59 ID:zoK3HkEs
イッソノコト2ch用プロトコル(2ch://〜)ヲ開発スルトカ。
htmlムダ多スギ。
121デフォルトの名無しさん:01/08/29 02:02 ID:npmpuEU2
bbs.cgiをアップしてくれるそうなので、
ftp://210.170.170.131/incoming/を
使ってもいいですか?
122screamer_j(91):01/08/29 02:06 ID:zFPSp17Q
>>115(前)
ごめんちょっと意味わかんない。
説明めんどくさかったらほっといていいよ、
テキスト出力でどうにかするから。

>>115 >>117
しまった、もしかしてソースはそうなってるのかな?
グローバル変数が多くて名前が変でソース見ただけでよくわからなかった、
ちょっと迷惑かけた。
このコードはデバッガで追わないとダメなようだ、少し潜伏する。
123-:01/08/29 02:07 ID:lLO5yHHU
imode=true のとき、先頭に [最新レス10] が出るけど、ls=10 は不要。

その変わりに、nofirst=true が付いてたほうが使いやすいと思うのだけど
いかがですか?
124デフォルトの名無しさん:01/08/29 02:11 ID:npmpuEU2
ftp://210.170.170.131/incoming/bbs_cgi/bbs.cgiに
アップしてくれました。
125名無しさん@MZ-2000 ◆Ewz1Jtuw :01/08/29 02:13 ID:nZtnifzg
>>123
nofirst=true に激しく同意。
imode 時に 1 がデカイと後ろが見れなかったりするんで
1 いらないです。
126-:01/08/29 02:15 ID:n8N3Cozs
mod_gzip が入ることはなくなったってことだと、
index2.html は cgi にして、gzip圧縮を組み込んだ方が
転送量削減になるだろうなぁ
127素人考えですが:01/08/29 02:18 ID:f4hB04xU
Last-Modified は.datの更新日時を出力してるようですが、
表示される中の最新の書込み日時にしたら、
多少はキャッシュ効率上がるような気がしないでもないです

未来の日時だとどういう動作するんだろ?
128名無し娘。 ◆vP.bOZFQ :01/08/29 02:18 ID:moOhcWuk
129♯6411:01/08/29 02:19 ID:hO/EUIjQ
>>127 実装はまだだけど検討中。
あぼーんされたときも「更新された」と見なさないと
いけないので、現仕様の dat だと難しいのだ。
130♯6411:01/08/29 02:20 ID:hO/EUIjQ
>>125 いっそのこと、スレ一覧生成も、
read.cgiがやっちまおうか(w
スレ一覧の元データがどこにあるかは知らんけど。
131名無し娘。 ◆vP.bOZFQ :01/08/29 02:21 ID:moOhcWuk
132名無し娘。 ◆vP.bOZFQ :01/08/29 02:24 ID:moOhcWuk
>>130
復帰の時には /dat/...dat を更新日時順にリストアップする。
それ以外(通常)の時は、bbs.cgiがage,sageを一々判別して
リストを更新する。
。。。ということのはずです。
133♯6411:01/08/29 02:25 ID:hO/EUIjQ
>>131 生datと違って元サイズを取得できる
わけじゃなし…(涙

こうなったらどこかに独自の
「あぼーん追跡スコアボード」を実装
しようかしら(w
134♯6411:01/08/29 02:29 ID:hO/EUIjQ
>>132 う。bbs.cgiが握ってるのか…

もし独自に実装するとしたら、こんなんかな。
・indexのスコアボードを持つ。
・read.cgiが呼ばれたときに、最終not sage時刻を
 取得し、スコアボードに挿入
・ときどき、/dat/のmtimeを取得し、リスト再生成。
135369 ◆3XTuRnAc :01/08/29 02:29 ID:TkQkeuao
>>124
サーバーから消えてます>bbs.cgi
136名無し娘。 ◆vP.bOZFQ :01/08/29 02:30 ID:moOhcWuk
>>133
ブラウザ側の対応無しででしたね(泣
137♯6411:01/08/29 02:33 ID:hO/EUIjQ
ところで今晩はもう、テストの機会はないのかな?
夜勤さん、忙しいみたいだし…
138名無し娘。 ◆vP.bOZFQ :01/08/29 02:35 ID:moOhcWuk
>>137
おそらく。明日(今日)は明日で、東京でひろゆきさんたちとお話し合いでしょうし。。。

あぼーんの特徴:日付欄に「あぼーん」がある
透明あぼーんの特徴:......行数が変わるだけ??
139♯6411:01/08/29 02:36 ID:hO/EUIjQ
ソースよく見たら、.datをロックしてない…
mmapにすると、あぼーんの瞬間などに
道を踏み外して氏んだりする事故が0じゃない予感。
bbs.cgi側でどんなロックを行ってるか
聞かないと、うかつに手を出せぬ。
140デフォルトの名無しさん:01/08/29 02:36 ID:npmpuEU2
>>135
消えていますね。保存したのでアップできるけど、
bbs.cgiをアップするのはやめたほうがいい?
141デフォルトの名無しさん:01/08/29 02:38 ID:pDIT9tbQ
>135
いわゆる 17 スクリプトじゃないの?
それ以外の bbs.cgi はないような。
142デフォルトの名無しさん:01/08/29 02:41 ID:nZtnifzg
### bbs.cgi ver 2.31 (2001/08/22)

ってやつだったよ。 17 スクリプトってなに? 解説きぼーん
143デフォルトの名無しさん:01/08/29 02:43 ID:npmpuEU2
144デフォルトの名無しさん:01/08/29 02:44 ID:e.DANeaQ
>>141
> いわゆる 17 スクリプトじゃないの?
そのようです。
145デフォルトの名無しさん:01/08/29 02:46 ID:npmpuEU2
>>144
17スクリプトはver 2.24だったよ。
http://www.apc.7777.net/file/bbs2ch/bbs.txt
146名無し娘。 ◆vP.bOZFQ :01/08/29 02:47 ID:moOhcWuk
んと、今回の一連でもどこかであがった、5月くらいにもあがっていた、
そんなbbs.txtもってますけど、一時的にアップしましょうか?
147デフォルトの名無しさん:01/08/29 02:47 ID:Tnne8bxg
転送量(料)の増加で2ch閉鎖の危機!8
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999018066
夜勤さん、ここにいらっしゃるようです。
148♯6411:01/08/29 02:50 ID:hO/EUIjQ
今日は寝るす。鬱だ氏のう
149名無し娘。 ◆vP.bOZFQ :01/08/29 02:51 ID:moOhcWuk
>>146
よくよく思い出したら、どこかの掲示板にいつもうぷされてる感じだった、当時は。
>>148
おつかれさまです。
150%95:01/08/29 03:01 ID:uqhD7TfA
>>149

sageやってくださったようですね。お疲れ様でした。
アンカー外してバイト数減らすことを考えていたのですが、
fontタグをつけなくてはだめなのですね(^^;

mod_gzipがなくなったら、きついですね・・・。
151デフォルトの名無しさん:01/08/29 03:04 ID:e.DANeaQ
>>145
それ古い奴。
152%95:01/08/29 03:05 ID:uqhD7TfA
>>132

透明スレってあったっような・・・。
153名無し娘。 ◆vP.bOZFQ :01/08/29 03:13 ID:moOhcWuk
明日、必要な人がいたらbbs.txt一時的にあげます。
たぶん本物だと思うので。かなーり古いけど。
フローは把握できると思われ。
# 誰か他の人もうぷできると思うけど、いちおう(^^;
>>150
たぶん(絶対)他の方(^^;
>>152
不可視スレは、立てるときにスレリストに載せず、その後はageてもsageても
スレリストにのらない。ただし、いったん復帰すると普通のスレと一緒。
#これがなぜだか、むしろ疑問。
sage専スレは、立てるときは不可視と一緒。ただし、その後必ず強制的にsageが
代入される。復帰時にはあがるけど、その後はまた下がり続ける。
154|  - -):01/08/29 03:14 ID:Pq4nSXsY
作業中断中...。
正直、どの改良が一番転送量を抑えられることができるのかが分からなくなってきた...。
155Sherry ◆RKMbxbuc :01/08/29 03:16 ID:RKxEDv6s
>>153
bbs.txt って,Perl ですか?
156名無し娘。 ◆vP.bOZFQ :01/08/29 03:22 ID:moOhcWuk
>>155
ええ。キャ○プ情報とかもずらずら書いてあるやつです。
157Sherry ◆RKMbxbuc :01/08/29 03:25 ID:RKxEDv6s
>>156
なるほど,どうもです.
Perl なら色々お手伝いできそうな気が.

bbs.cgi のスレも読んでみます.

とりあえずは,ログの解析が先でしょうね.(^^;
手探りで変えまくるとユーザーが混乱して転送量増える気もしますし...
158名無し娘。 ◆vP.bOZFQ :01/08/29 03:27 ID:moOhcWuk
>>154
10080あたりで、mod_gzipいれたApache走らせるのは、反則なんでしょうなぁ。
read.cgiだけでできることといったら。。。うぅ
159名無し娘。 ◆vP.bOZFQ :01/08/29 03:27 ID:moOhcWuk
>>157
てか、今アップしましょうか?
160名無し娘。 ◆vP.bOZFQ :01/08/29 03:32 ID:moOhcWuk
>>157
連続スマソ
ログの解析して分析して…ってのも正論だと思うのですが、
もしや、今の状況はそんなこと言っている場合ではなく、強権的に
ユーザーを選んでしまうべき時なのかな、とも思われ。。。
# ユーザーが混乱しても、reloadと実況だけ徹底排除すれば何とかなりそう。。。
いや、それを思い切り提案するだけの自信は、ないんですけどね。
161デフォルトの名無しさん:01/08/29 03:38 ID:pDIT9tbQ
閉鎖情報。

閉鎖板報告 2
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999022131

噂板、ニュース極東板、独身男性板、キャラネタ板、ギャルゲー板、
ネット事件板、シャア専板、アルバイト板、同性愛板、電波・お花畑板、
同性愛板、初心者質問板
162screamer_j:01/08/29 03:39 ID:zFPSp17Q
とりあえず てすとさんの-DRELOADLINK はやった方がいいと思う。

read.cの800行目あたりの
html_reload(lineLast+1);

html_reload(lineLast);
にすれば問題ないでしょう。

デザインはr2chhtml.hのR2CH_RELOAD、
個人的には線やらcenterやらは要らないと思う。
163デフォルトの名無しさん:01/08/29 03:48 ID:zFPSp17Q
> 強権的にユーザーを選んでしまう

言いたいことは分かるような気がするけど、
強権的に選ぶにしても(どうやって選ぶのかわからないけど)、
多少は調査しないととんちんかんな選び方してしまうと思うけど……

ログの分析ってそんな時間かかる?
かかるならまあヤマカンでやるよりしょうがないね。
164デフォルトの名無しさん:01/08/29 03:52 ID:xabQXNSU
転送量を多くしてサーバーに負担かけるニダ!
チョパーリにIT先進国の力を見せ付けるニダ!
__ ________________
   .∨
       カタカタ____
   ∧_∧ ....||\ LG\
   <丶`∀´>  ||  | ̄ ̄ |
 ┌(  つ/ ̄||/  ̄ ̄/
  |└ ヽ |二二二」二二二二二二二二」
   ̄]|__7_7 .| ||        | ||
  / ̄\  / . ||       /  ||
  ◎  ◎..[____||      .[__||
165|  - -):01/08/29 04:01 ID:Pq4nSXsY
>>123 >>162 入れました。
「最新レス」の時は常にnofirst=trueでいいと思うのだけど、どうでしょう。
166名無し娘。 ◆vP.bOZFQ :01/08/29 04:01 ID:moOhcWuk
>>163
ログはあった方がもちろん良いですが、ログが提供されるかどうかがまず問題で。
次に、提供されたとしても、分析してできることは、既存のニーズには対応
することが主で、おそらくそれだけでは、2ちゃんねるの存続に充分ではない。
つまり、既存のニーズをぶちこわして何かをやることも必要になる。
その時は、何よりプロパガンダ(?)が必要かなと。
「これしか2ちゃんを残す道はないんだよ」って。
167名無し娘。 ◆vP.bOZFQ :01/08/29 04:03 ID:moOhcWuk
>>165
賛成です。
>>xxx-yyy のときも nofirst=true がいいと思います。
168 :01/08/29 04:04 ID:52nNYnD.
ここではIDの生成方法を変更することはできないんでしょうか?
間接的に投稿者のIPがわかってしまう事があるんですけど。
169デフォルトの名無しさん:01/08/29 04:08 ID:zFPSp17Q
>>166
強権的な選択って、もう管理サイドで行われている。
板すでに半分くらい閉鎖してるわけだから。

はっきりいってもう潮時だけど、
まだねばりたいんなら、やっぱり技術サイドとしては
科学的なアプローチをとるべきと思う。
そうすれば、その経験が縮小2ch、もしくは
2chの次の何かで生きてくるかもよ。
170デフォルトの名無しさん:01/08/29 04:08 ID:pDIT9tbQ
>168
どんな方法にしても brute force されたら同じ。
桁数を今より増やせばより安全になるが。
171|  - -):01/08/29 04:09 ID:Pq4nSXsY
>>167
>>xxx-yyy形式のリンクはbbs.cgi担当だからこっちでは簡単にいじれないです...。
(まだ-DCUTRESLINKのソースをまともに読んでいない)

>>168
IDもbbs.cgi担当です。あと日付欄も。
172デフォルトの名無しさん:01/08/29 04:10 ID:5V.Ejvn.
>>154 個人的には >>78の UIが転送料へりそうなきが。

あと、変な例だけど
http://chat.nantv.com/2shot/index2.html
のチャットは reloadしなくても内容がだらだら更新されます。
この仕組みを使えば最新の書き込みを追いたいという需要に
reloadなしで答えられるかも。
#とはいうものの、nph-scriptが多すぎて process slot食いつぶすな...
173名無し娘。 ◆vP.bOZFQ :01/08/29 04:16 ID:moOhcWuk
>>169
はい。ごもっともです。
ログ分析という科学的なアプローチがとれない場合、ログ無しでもユーザー行動を
分析して次善の科学的アプローチを、って程度のことです。
>>171
-DCUTRESLINKの要領で、最後の &nofirst=true をとっぱらっちまおうと。
>>172
あれ、>>78へのリンク先が真っ白。。。串通しても。。。うちだけかな。
174デフォルトの名無しさん:01/08/29 04:17 ID:pDIT9tbQ
>173
広告のせいかな。
http://orihara.virtualave.net/subback.html
175デフォルトの名無しさん:01/08/29 04:18 ID:5V.Ejvn.
>>173 レスを100番ごとに分けて、それぞれにリンクを貼るという奴です。
176名無し娘。 ◆vP.bOZFQ :01/08/29 04:18 ID:moOhcWuk
>>173
>>66 と同じ症状でした。
177名無し娘。 ◆vP.bOZFQ :01/08/29 04:25 ID:moOhcWuk
>>175
あ、とてもよいとおもいます。
178win98+NN4.75:01/08/29 04:27 ID:pnBRO5j6
>173,174
"711個のスレッドがあります"っていうスレ一覧が、表示されます。
ブラウザ(ネスケ)のjavascript onにすると、さらに別窓が生成されて広告がでました。
いちお、報告まで。
179デフォルトの名無しさん:01/08/29 04:28 ID:pDIT9tbQ
>178
で、スレをクリックすればどういう UI か分かるはず。
広告は virtualave だから仕方ない。
180名無し娘。 ◆vP.bOZFQ :01/08/29 04:28 ID:moOhcWuk
181デフォルトの名無しさん:01/08/29 04:33 ID:pDIT9tbQ
>180
批判要望あたりを見ていると、
トップページから順に降りて見ている人が多いみたい。
常連よりも一見さんの方が多いのかね。
常連なら板にブックマークするだろうということからの推測だが。
182デフォルトの名無しさん:01/08/29 04:38 ID:ayRoP.z2
>181ブックマークしてたところが消滅したんで上から順に…
183デフォルトの名無しさん:01/08/29 04:41 ID:pDIT9tbQ
>182
ああ、なるほど。批判要望でも見ないと閉鎖の事実すら気付かない。
URLが変わったのかとトップに行ってみる。ありえる行動だ。

いっそのこと2chのトップページを閉じればだいぶ転送量減りそうだな(w
184 :01/08/29 04:46 ID:ku662J4.
>>183
そうだな。ドラクエもメモリなくてオープニングがなかった奴があったよね。
185名無し娘。 ◆vP.bOZFQ :01/08/29 04:46 ID:moOhcWuk
>>183
index2.htm[l]の自動選択CGIをはやく採用して欲しいです(涙
186デフォルトの名無しさん:01/08/29 04:47 ID:5V.Ejvn.
>181 1年ぐらい2ch使ってるけど、top pageから降りてました。
だから bbsmenu復活は嬉しかったのに...

で、100番ごとanchor案だと、anchorがならぶ分だけでかくなるけど
いいのかしらん? 全体的な trafficはヘルと信じたいけど..
<a href="../test/read.cgi?...">1-</a> <a href="..">101-</a>
みたいに。
# でも PATH_INFOが使えると
<a href="st=1&to=100">1-</a> <a href="st=101&to=200">101-</a>
でいいのか。
187デフォルトの名無しさん:01/08/29 04:52 ID:zFPSp17Q
>>186
その辺はどっちみちログ解析しようが何しようが
いいか悪いかわかりっこないから、
思い切ってやりなよ。多分減ると思うよ、俺も。
188こぴぺ:01/08/29 04:52 ID:lWwEqNwY
398 名前:夜勤 ◆D69Zsbfg 投稿日:01/08/29 04:27 ID:BK1gE7f2
うげっ、bbsmenu.html もどしたら、それだけで 2.5Mbps 位増えた。
明日のピーク前に、また小さいやつにもどさなきゃ。。。
189名無し娘。 ◆vP.bOZFQ :01/08/29 04:54 ID:moOhcWuk
>>186-187
賛成です。
190考える素人:01/08/29 05:05 ID:f4hB04xU
<a href="../test/read.cgi?..."> って
<a href=?...> とかにしちゃうとまずいんですか?
191デフォルトの名無しさん:01/08/29 05:15 ID:5V.Ejvn.
わかりました。やってみます >187,189
最新sourceは http://www.gedoh.org/aki/2ch/current/bbs/
29-Aug-2001 04:00 のやつでいいんでしょうか?

>190 最後の / 以降に置き換えになりますから... <a href="read.cgi?...">
ならいいはずだな..
192デフォルトの名無しさん:01/08/29 05:29 ID:ykLv7w9Q
名前欄とメール欄の末尾の空白は、そのまま取り去っちゃ駄目。
妙な文字列を書きこめば表示が乱れるから、空白を入れてあるはず。
荒らされたログとか、まだまだ残っているはずだし、
「最後の文字がシフトJIS1バイト目であるか」の判定は絶対必要。

r2chhtml.hの
#define R2CH_HTML_RES_MAIL \
"<dt>%d 名前:<a href=\"mailto:%s\"><b>%s</b></a> 投稿日:%s<dd>%s<br><br>"

"<dt>%d 名前:<a href=\"mailto:%s \"><b>%s </b></a> 投稿日:%s<dd>%s<br><br>"

#define R2CH_HTML_RES_NOMAIL \
"<dt>%d 名前:<font color=green><b>%s</b></font> 投稿日:%s<dd>%s<br><br>"

"<dt>%d 名前:<font color=green><b>%s </b></font> 投稿日:%s<dd>%s<br><br>"
193考える素人:01/08/29 06:07 ID:f4hB04xU
>190-191
試してみました・・・IEだと ? 以降置換だけどNN4だとダメなんですね。
UA判別して振り分ける・・・ほどの事でも無いか、すいません。

ところで、metaタグのShift_JISってヘッダで吐く事に決定ですか?
圧縮効かないヘッダを太らせるのも善し悪しな気も・・・
194191:01/08/29 07:34 ID:5V.Ejvn.
ヽ(`Д´)ノ せっかく改造したのに、どこにソース置けばいいのかわかんないよ ウワァァン!!
195191:01/08/29 08:06 ID:5V.Ejvn.
ヽ(`Д´)ノ http://165.76.43.131/read-chunk.tar.gz に置いといたよ!!
でも貧弱な serverだからあんまりいじめるなよ ウワァァン!!
196 ̄ー ̄)ノ:01/08/29 09:11 ID:c40YJ4Sg
197デフォルトの名無しさん:01/08/29 09:28 ID:an2iF6go
read.cgiじゃなく別のcgiでやった方がいいかもしれないけど
 日付と時間を指定したら それ以後の書込みだけ返すか
 書込みへのリンク(read.cgiを呼ぶ)を返すのはどうかな?

 で、クッキーを食べさせて前に見た時間以後のだけが見えるようにするの

 ttp://piza2.2ch.net/tech/subject.txt
 を上から順に開いて該当レスがないか20スレ検索したら中止って感じで

これなら何か変わってないかなって見る為に subback.htmlやindex2.htmlを
覗く頻度が減ると思うんだけど
198デフォルトの名無しさん:01/08/29 09:32 ID:6wtO5bLA
>>195
cvsにあてといた
199Sherry ◆RKMbxbuc :01/08/29 09:35 ID:oahd3UTQ
>>159
スマソ,書き込んだ後寝ちゃいました(^^;

>>160
強権的に選ぶとしても,現状を正確に把握することは必要ではないかと.
何を切り捨てれば目的の帯域に近づけられるのかは
ログ等解析してみなければなんともいえないような.

色々なバージョンを作って手当たり次第に試すのは非効率というか‥‥‥^^;

>>163
ログがゲットできれば1日以内にある程度の解析は出来ると思いますが‥‥‥.
200デフォルトの名無しさん:01/08/29 09:50 ID:0hRF7fDs
ログは無いことになってるんですが。…
201Sherry ◆RKMbxbuc :01/08/29 09:51 ID:oahd3UTQ
>>159
bbs.cgi って,現状でも公開したくないものなんですか?

なら,メールとかでやりとりした方が良いと思うのですが‥‥‥.
必要ならメアド晒すので.(^^;
202191:01/08/29 09:56 ID:ESd7BW2o
ヽ(`Д´)ノ >>198 ありがとよ! ウワァァン!!
read2ch.hを見ればどんな設定ができるかうすうすわかると
思うけど、CHUNK_NUMごとに区切ったレスに飛ぶ anchorを
ずらずらつけるよ。それとは独立に「全部読む」「最新nレス」
を on/offできる。imodeのほうはどういう設計に
したらいいかわかんなかったんで触ってないよ!! ウワァァン!!
203Sherry ◆RKMbxbuc :01/08/29 09:57 ID:oahd3UTQ
>>200

・・・そうなんですか?(汗)

read.cgi にログ出力機能を組み込む方が早い?
IP隠して(でも同じIPは識別できるレベルで)バイナリで出力とか?(^^;

read.cgi と dat直読み の比率は出ませんが...
204デフォルトの名無しさん:01/08/29 10:03 ID:iU.Fd0UU
>>203 ソース見ればわかるけどread.cgiにログ出力の部分が元からあったみたい
205Sherry ◆RKMbxbuc :01/08/29 10:17 ID:oahd3UTQ
>>204

ソース確認しましたが,zz_query_string はコメントアウトされてますね.
となると,例えば全ログ読みの負荷とかは一切わからないのではないかと.(^^;

もう少し詳しい情報を出力しないと解析には役に立ちそうにないですね.
206デフォルトの名無しさん:01/08/29 10:28 ID:5fCBnuag
mod_gzipが否決されたときのために:
1.2chブラウザ用にgzip.cgiかなんかをつくる
2.要するに、引数のファイルを圧縮して送信するcgi。
3.2chブラウザ作者にdat初取得時にはこのcgi介するようにしてもらう、
とかはどうよ?
207名無しさん@揚げ足:01/08/29 10:41 ID:lTYEA056
IE6公開みたい。人バシラー募集

http://www.microsoft.com/windows/ie/
208仕様無しさん ◆NwLv.g/w :01/08/29 10:48 ID:TWmIBCK2
このアクセス数ではロックもかけずにログ取りをする現状のlogOut
はまともに使えないかと。
ロックをかけたらかけたでまたえらいことになりそうだし...
209Perler ◆GSi39OA6 :01/08/29 10:51 ID:qGdmeavk
>>206
そのCGIなら、ずいぶん前に
ftp://210.170.170.131/incoming/perler/
にアップロードしたはずです。
index2.c.1というのがそれです。

現在は、index2.html専用ですが、PATH_INFOか何か引っ張ってくるようにすれば
汎用化は可能でしょう。

こいつは、If-Modified-Sinceもみますので、index2.htmlに適用すれば
かなりのトラフィックうが削減できるはずです。

現在、index2.htmlはリロードしたらリロードした回数だけContent全体を
送りなおしますからね。。。
210デフォルトの名無しさん:01/08/29 10:53 ID:6wtO5bLA
>>209
IPアドレス変わってるよ
ftp://210.170.170.118/incoming/
211デフォルトの名無しさん:01/08/29 11:08 ID:5WgxEf6Y
がいしゅつだったら、ごめん。
で、いま、index2 って、手つかずなの?
一番使用頻度高いと思うんだけど。
212デフォルトの名無しさん:01/08/29 11:33 ID:qVRb3mEs
subback.html もそれ以上に高いらしいから
バランス的には index2.html と subback.html に手をつけないといけない感じ。

>209の index2.c.1 で圧縮しちゃえば半分になりそうなんだけどなあ・・・・

もっと効果の大きい方法はないかなあ
213Perler ◆GSi39OA6 :01/08/29 11:58 ID:qGdmeavk
>>212
この2つが急務だと思います。

read.cgiやbbs.cgiで削れる量は限界に近づいていますので、45%→66%削減は
難しいかもしれません。

2ch側の協力が必要なのがネックといえばネックですが。。。
この辺、昨日は夜勤さんが忙しくて手が回らなかったんでしたっけ?

index2.htmlとsubback.htmlの2つを圧縮+If-Modified-Since対応すれば、
全体で66%削減も可能だと思います。

私の環境で圧縮してみた限り、ファイルサイズとして、gzipで70%〜80%くらい
削れますね。
If-Modified-Sinceとの併せ技で、この2ファイルについて80%のトラフィックの
削減は達成できると思うのですが、いかがでしょうか?
214デフォルトの名無しさん:01/08/29 12:03 ID:j/vYHKaU
>>213
板ごと閉鎖とあわせれば、とりあえず9月いっぱいで50Mbpsの維持は出来そうですね。
とりあえず、夜まで運営側=ひろゆきさん、の答えはなにもないでしょう。
215デフォルトの名無しさん:01/08/29 12:08 ID:qGdmeavk
いまさら遅いと思いますが、read.cgiにおいて
10秒以内のリロードを禁ずる場合、
Last-Modifiedの最後の秒数の1桁目を全て0にするだけで
簡単に実現できましたね。。。

1分以内なら、秒を全部00に統一すればいいだけ。

Last-Modifled文字列を生成する段階で、

#define RELOAD_FREQ 15 // 15秒おき更新
time_t last_mod;

last_mod -= (last_mod % RELOAD_FREQ);

ってしてやれば、任意の秒でも設定できますし。
216Perler ◆GSi39OA6 :01/08/29 12:11 ID:qGdmeavk
>>215
すみません、これ私です。

昨日、出かけてたため、夜勤さんに頼むタイミングを逸したのですが、
誰か夜勤さんを見かけたら、この話(index2.htmlとsubback.html圧縮&リロード禁止案)
を持ちかけてみてもらえませんか?
217デフォルトの名無しさん:01/08/29 12:16 ID:ixxpOU.2
>>216
夜勤さんは今日夕方話し合いのために上京されるそうなので、その会談で存続が決まった場合
にどうするかということになると思います。
218デフォルトの名無しさん:01/08/29 13:10 ID:BMJ9l7RM
これを見つけてきました

ttp://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998754174&st=888
888 名前:DolBacky 投稿日:2001/08/26(日) 03:41
とりあえずMOD_GZIPが導入されるまでは、
index2.html:非圧縮
index2.htm:圧縮
・・・として扱おうと思います。
index2.htmlにおいてもリロードなどのリンク先はindex2.htmとなります。

という事で夜勤さんの担当ではないのかも
219191:01/08/29 13:57 ID:ESd7BW2o
bbs.cgi改良スレで言ったほうがいいのかも >index2.cgi
# ただ、perlの方がいいのかもしれない..
220191:01/08/29 13:58 ID:ESd7BW2o
ああ、もう向こうに書いてあるジャン。
鬱。
221名無し娘。 ◆vP.bOZFQ :01/08/29 14:20 ID:XVYzygN.
ちと忙しいので簡単なレスだけですが。
>>201
bbs.cgiを今の運営側が公開しない以上、一応その意向は尊重したいので、
ずっと鯖にあげっぱなしは嫌だなぁ、と。
メールでなくちゃいけないって程ではありません。私の気持ちとしては。
適当に声掛けてくださいませ。
>>216
お疲れさまです。index2.cの件も含めてちゃんと把握してますのでご安心を(^^
今日は夜勤さんお忙しいでしょうから、時機はなかなか得られないと思いますが、
機会があればまとめて懸案をお願いするつもりです。
222デフォルトの名無しさん:01/08/29 14:34 ID:6HVx/WPk
index2の下の発言表示って必要ないと思われ。
実際、その人の興味ないスレが表示されて無駄がおおいし。

index2.htmlを「看板と注意とスレリストの初めのほう」にして軽くすれば、
bbsmenuからたどってきている人も多いみたいだし、効果ありそう。
subbackの尻の方が必要ない人も取り込めるだろうから、
subbackのアクセスも減らせるかと。

index2の下みたいなのが必要な人向けにはindex3でも用意すればなお可。

あと、ここの担当でないけど、書き込み後にindex2にもどるもの無駄。
大抵の人はその後、再び目的のスレに飛びなおすと思われ。
下がってるスレにsageレスすると超意味無しだし。
index2軽くすればこいつもある程度改善。
223デフォルトの名無しさん:01/08/29 14:35 ID:iIYcB4L.
>>222
とりあえずスレ違いです。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998921988
へどうぞ。
224名無し娘。 ◆vP.bOZFQ :01/08/29 15:02 ID:xeUGWGbY
>>221
ややスレ違いですが。。。
index2.cの件、作業過程もすべてまとめて、批判要望にスレ立ててしまいましょうか。
subback.cも同様にできるなら、合わせて。

bbs.cgiと復帰スクリプトが吐くindexファイルを index3.htm と index3.html に
指定しなおして、index2.c.1 -> コンパイル -> index2.html とすればいいのかな。

bbs.cgiとかを書き直すのが面倒 && rewrite module 入っているなら、index2.htm[l]
へのリクエストを index2.cgi へ rewrite してもいいでしょうが。。。

どなたか、スレを立てる場合に >1 に書くべき完璧な手順を練って、
できれば批判要望でスレ立てちゃってくださいませんか。。。
225音楽侍 ◆NtVkSITE :01/08/29 15:05 ID:j/vYHKaU
>>224
いちおう、マァヴさんがDolBackyさんにICQでメッセージ入れてくださってます。
ただし、Backyさん、cのコンパイルできないんじゃないかとマァヴさん、おっしゃってます。
perlの方が良さそうに思います。
226音楽侍 ◆NtVkSITE :01/08/29 15:06 ID:j/vYHKaU
>>224
Backyさんはじめ、みなさんこの板も見にいらしてるようなので、批判要望よりここの方がいいと思います。
ギャラリーも少なそうですので。
227Perler ◆GSi39OA6 :01/08/29 15:08 ID:qGdmeavk
>>225
だとすると、誰かindex2.cをPerlで書き直せますか?
ちょっと忙しいので。。。

>>224
.htmlをCGIと見なすのが面倒そうですね。
<META>のrefresh使って、強制的にindex2.htm(l)から、index2.cgiへジャンプさせる方が
良いように思います。
228カラムーちょ:01/08/29 15:15 ID:0KsHrNg6
問題
@アフリエーションプログラムを具体的に考える。どのようなサイトと連携をとればよいか?
AハイブリッドECモデルを考えるとすると,どのような既存店舗と連携してマーケティング展開をしたらよいか?
229Sherry ◆RKMbxbuc :01/08/29 15:27 ID:oahd3UTQ
>>221
とりあえず今からしばらくはスレを見るようにします.
あげていただければすぐにダウンします.

----

ところで,.cgi 以外の拡張子を cgi として動かすことは
できるのでしょうか?
(<FIles "dat"> SetHandler cgi-script とか可能?)

可能なら,dat 以下のディレクトリを cgi 経由にするだけで
かちゅ〜しゃ等のアクセスのgzip可が可能じゃないかと
思うのですが‥‥‥.どうでしょう?
230デフォルトの名無しさん:01/08/29 15:29 ID:iU.Fd0UU
あのぉ......

#ifdef RAWOUT
    else
        pPrintf(pStdout, "Content-type: application/octet-stream\n");
#endif

っちゅうのですが datを直接表示させた時のMIMEは"text/plain"になってるんで
これに合わせておいた方がいいんじゃないでしょうか......
231名無し娘。 ◆vP.bOZFQ :01/08/29 15:30 ID:xeUGWGbY
>>229
では、いまから210.170.170.118/incoming/ のほうに。。。
232名無し娘。 ◆vP.bOZFQ :01/08/29 15:31 ID:xeUGWGbY
>>231
おきました。それらしい名前で。
233デフォルトの名無しさん:01/08/29 15:32 ID:iU.Fd0UU
>>227 >>229
AddHandler cgi-script .html
AddHandler cgi-script .dat
みたいなこと?
234名無しさん@揚げ足:01/08/29 15:33 ID:lTYEA056
>>227
perl化のベースとなるCソースは
ftp://210.170.170.118/incoming/perler/index2.c.1
と考えておけばよいのですか?
235名無し娘。 ◆vP.bOZFQ :01/08/29 15:34 ID:xeUGWGbY
>>225-226
了解です。皆さんお疲れさまです。
>>227 >>229
AddHandler cgi-script html
とか、RewriteEngine ON できるなら楽そう。。。
どのApache moduleがはいっているかによりけり
236Sherry ◆RKMbxbuc :01/08/29 15:35 ID:oahd3UTQ
>>231-232
取得しました.

$ md5sum bbs.txt
b598242a0e6fdab3c46604903c274f4f bbs.txt

でOkですよね.

どうもありがとうございます.
237デフォルトの名無しさん:01/08/29 15:38 ID:iIYcB4L.
全部CGI経由にするの? 懐疑的な意見も出てたみたいだけど。
238名無し娘。 ◆vP.bOZFQ :01/08/29 15:39 ID:xeUGWGbY
>>236
はい(^^
消しましたが、また需要があるときにはうぷしますです。
239Sherry ◆RKMbxbuc :01/08/29 15:39 ID:oahd3UTQ
>>233
そんなイメージですが,
AddHandler cgi-script .dat
だけだと,ApacheのDirectoryIndex(ファイル一覧)は
圧縮されないので,
dat というファイルを cgi と見なしてしまい,
2ch.net/tech/dat/xxxxxxxx.dat
のリクエストを,PATH_INFO に '/xxxxxxxx.dat' が
セットされるイメージで呼び出せればいいな,ということです.

Files と,SetHandler 使えば,任意のファイルを
CGIとして実行できますので‥‥‥.
(これはAllowOverride権限さえあれば現在のモジュール構成で
 使えるはず(^^;)
240Perler ◆GSi39OA6 :01/08/29 15:40 ID:qGdmeavk
>>234
はい。それで良いと思います。

>>235
とりあえず今は「できない」が前提に話を進めた方が良いと思います。
241音楽侍 ◆NtVkSITE :01/08/29 15:41 ID:j/vYHKaU
>>239
.htaccess効いているんですかね?
httpd_confいじらせてくれないんでしょ?ハリケーンさん。誤認ですかね?
242名無し娘。 ◆vP.bOZFQ :01/08/29 15:43 ID:xeUGWGbY
>>240
そうですねぇ。
>>241
/kako/ が認証性になったのは、(何らかの意味で).htaccess が利用可能って
ことに見えますが、どこまで使えるかは。。。なんとも。
243Perler ◆GSi39OA6 :01/08/29 15:45 ID:qGdmeavk
>>241
.htaccess前提に話を進めると、また後で使えないと分かって開発が
振り出しに戻る可能性があるので、最初から「出来ない」ものとして
開発したほうが良いと思います。

mod_gzip導入も、週末って話が随分と難航してますしね。。。
244デフォルトの名無しさん:01/08/29 15:49 ID:qGdmeavk
で、「出来ない」場合ですが、index2.htmlに、

<HTML><HEAD>
<META HTTP-EQUIV="refresh" content="1;URL=http://xx.2ch.net/xxxx/index2.cgi">
</HEAD><BODY>
<A HREF="http://xx.2ch.net/xxxx/index2.cgi">クリック</A>
</BODY></HTML>

とか書いておいて、強制的にindex2.cgiにリダイレクトするようにすればよいかと。

datの方は、dat.cgiを作って定数を書き換えて、

http://xx.2ch.net/xxxx/dat.cgi/xxxxxxxx.dat

に飛ばすしかないんじゃないですかね。
245名無し娘。 ◆vP.bOZFQ :01/08/29 15:51 ID:xeUGWGbY
>>243
参考程度ですが、
http://www.he.net/~jdoe/info/htaccess/demo.html
の一番下、
http://www.he.net/~jdoe/info/htaccess/htaccess2.txt
ってことらしいですから、おとなしく堅実に進めておいた方がよさそう。
246デフォルトの名無しさん:01/08/29 15:51 ID:C22Ccgng
425 名前:切込隊長 ★ 投稿日:01/08/29 15:37 ID:Ml041Ak2
まあ、いずれにしても、2ちゃんねるも今月いっぱいで終了。
他に楽しみのない人は、今から趣味を作っておくように(藁

http://kaba.2ch.net/test/read.cgi?bbs=news&key=998763667
247音楽侍 ◆NtVkSITE :01/08/29 15:55 ID:j/vYHKaU
というわけで、index2.html最適化、というか転送効率化についてはこの板がいいでしょう。
批判要望に立てると>>246
みたいのに埋められちゃいますので。
248デフォルトの名無しさん:01/08/29 15:57 ID:/559R/A6
今の所 index2.html は圧縮されてないけど index2.htm は圧縮されてるわけで
cgiを使ってもこれを自動でするだけの効果しかありませんよね?

cgiを無理に導入しても PROXYを使ってる人や無形キャッシュが効かない
場合が増えるだけのような気がするんですが?
249音楽侍 ◆NtVkSITE :01/08/29 15:59 ID:j/vYHKaU
名無し娘。さんスレ立てられますでしょうか?
変わりに立てましょうか?
250名無し娘。 ◆vP.bOZFQ :01/08/29 16:03 ID:xeUGWGbY
>>249
あ、この板に立てるんですね。
少々お待ち下さい。。。
251名無し娘。 ◆vP.bOZFQ :01/08/29 16:07 ID:xeUGWGbY
>>248
圧縮対応のブラウザには圧縮で送り、そうでないブラウザには非圧縮で送る、と。
今は、圧縮対応の人も、ほとんど.htmlの方を見ちゃっていると思いますので、
効果は大きいかと。
>>249-250
read.cgiだけでいきますか?
subback.html も考えるなら、汎用型の .htm .html 振り分けプログラム
ということにしましょうか。
252音楽侍 ◆NtVkSITE :01/08/29 16:10 ID:j/vYHKaU
index&subbackでいいんでないでしょうか?
253名無し娘。 ◆vP.bOZFQ :01/08/29 16:12 ID:xeUGWGbY
>>252
bbsmenu.html とか(^^;
ま、元々がほとんど汎用型CGIみたいなもんですから、大きな違いはないでしょうね。
あとちょっとでスレ立ちます。
254デフォルトの名無しさん:01/08/29 16:16 ID:mpzRuOK2
index2.cgiのperl版。即席ですが、
http://www.xuhertex.f2s.com/index2.txt
255名無し娘。 ◆vP.bOZFQ :01/08/29 16:18 ID:xeUGWGbY
なんとなく、スレ立てるまでもないような気がしてきた(^^;
256音楽侍 ◆NtVkSITE :01/08/29 16:26 ID:j/vYHKaU
DolBackyさん誘致スレじゃないんですか?(笑)
257-:01/08/29 16:32 ID:7PMZ2b7Y
転送量(料)の増加で2ch閉鎖の危機!9

184 名前:名無しさんの声 投稿日:01/08/29 16:21 ID:ujEJUwOI
>>154
http://teri.2ch.net/accuse/index2.htmだけど
マクのIE5だとメタボロだ。文字化けしたタグの残骸がこぼれ落ちて
くるだけ。NC4.7ではちゃんと表示されるが……。

マカーでIE5って全体の何%くらいだろうか。

--
マックに詳しいかた・・・
258デフォルトの名無しさん:01/08/29 16:38 ID:iIYcB4L.
mod_negotiationを使うとVary:ヘッダが入るので事実上Last-Modified
が効かなくなるという問題があります。
259名無し娘。 ◆vP.bOZFQ :01/08/29 16:47 ID:xeUGWGbY
>>254
-my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time);
+my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(stat($fname));
に思えるのですが、、、勘違いでしょうか。
260名無し娘。 ◆vP.bOZFQ :01/08/29 16:50 ID:xeUGWGbY
>>259
...ごめん、かなりいい加減だった。
statが返す形式覚えてない。。。
261Perler ◆GSi39OA6 :01/08/29 16:51 ID:qGdmeavk
>>254
バグが複数あったので、修正して、ソースを読みやすく(主観かも)
したものを上げておきました。
chunkedになる問題も回避してあります。

ftp://210.170.170.118/incoming/perler/index2.cgi
262Perler ◆GSi39OA6 :01/08/29 16:52 ID:qGdmeavk
>>260
>>261で直しました。最終更新時は、(stat($fname))[9]です。
263Perler ◆GSi39OA6 :01/08/29 16:57 ID:qGdmeavk
バグ埋め込んでました。

ftp://210.170.170.118/incoming/perler/index2.cgi.1

が最新。
264♯6411:01/08/29 17:00 ID:rpOycX/Y
夜組のみなさん、index組のみなさん
おつかれさます。
お待たせしました。
PATH_INFO対応がほぼ完了しました。
/read.cgi/tech/99899784/?ls=10
のように使える。
出力されるソースの可愛さをほめてあげてくれ♪

そろそろindex組に参戦しようかな(藁
265名無し娘。 ◆vP.bOZFQ :01/08/29 17:03 ID:xeUGWGbY
実効性の程はよくわかりませんが、read.c でいう
if (zz_http_encoding && strstr(zz_http_encoding, "x-gzip")) {
gzip_flag = 1;
pPrintf(pStdout, "Content-Encoding: x-gzip\n");
}
の部分はどうしましょう。
if($http_encoding =~ /x-gzip/){
$gzip_flag = 1;
$fname = $GZIPED_HTML;
print "Content-Encoding: x-gzip\n";
}elsif($http_encoding =~ /gzip/){
$gzip_flag = 1;
$fname = $GZIPED_HTML;
print "Content-Encoding: gzip\n";
}else
となるでしょうか。
266Perler ◆GSi39OA6 :01/08/29 17:03 ID:qGdmeavk
ついでに&MAIL問題もなんとかなりませんかね?
&を&に変換するだけなんでHTML4.01的にも問題ないはずですが、
余計なバグ埋め込む事になっちゃうでしょうか?
267名無しさん@揚げ足:01/08/29 17:04 ID:lTYEA056
>>263
error関数の投稿日は実時間を埋め込むんでは?
268名無し娘。 ◆vP.bOZFQ :01/08/29 17:13 ID:xeUGWGbY
>>256
>1 に書くべききっちりした文面がかたまりません。
・bbs.cgiが出力するファイル名index2.htm[l]をindex3.htm[l]あたりにする
・復帰スクリプトが出力するファイル名も、同様に変える
・index2.htm[l]はmetaでindex2.cgiにとばす
・index2.cgiからindex2.htm[l]を吐き出す(これはindex2.cgiリリース時にこっちでやる)
・subback.htmlやbbsmenu.htmlもやるときは、その手順
で、漏れはないでしょうか。。。皆さんのご意見をお待ちします。
>>266
名前欄の&だけは&に変換すると。。。
&MAILが"楽しい"か"楽しくないか"の問題かも(笑
269Perler ◆GSi39OA6 :01/08/29 17:16 ID:qGdmeavk
>>266
あーそのまま保存されちまった。当然か。&を&amp;に変換、ね。

>>268
この状況だと、害悪にはなっても娯楽にはならないんじゃないかと。。。
実際変なデマが(このスレにまでも)飛んでるし。

で、リロードを10秒おきに制限する機能を組み込みました。

ftp://210.170.170.118/incoming/perler/index2.cgi.2

です。
270デフォルトの名無しさん:01/08/29 17:33 ID:iIYcB4L.
>>269
&の置換までするのはやりすぎと思われ…
どのみちindex2.htmlには手が出せないし。
271bzip2:01/08/29 17:34 ID:iU.Fd0UU
--------------------------------------------------
#!/bin/sh

echo 'Content-Type: text/html
Content-Encoding: bzip2
'
/usr/bin/bzip2 -c hoge.html
--------------------------------------------------
なんていうCGIを使ってちょっと実験してみました
IEやネスケは案の定ちゃんと表示できませんでしたが
Lynx2.8.4rel.1aは何も手を加えずにそのまま見られてしまいました
"Content-Encoding: x-bzip2"でもOKでした

ただ 元のままのLynxでは"Accept-Encoding"にbzip2が入っていないので
--------------------------------------------------
--- lynx2.8.4rel.1a/WWW/Library/Implementation/HTTP.c.org Sun Jul 15 11:06:16 2001
+++ lynx2.8.4rel.1a/WWW/Library/Implementation/HTTP.c   Wed Aug 29 17:12:35 2001
@@ -675,8 +675,8 @@
   first_Accept = FALSE;
   len = 0;

-   HTSprintf(&command, "Accept-Encoding: %s, %s%c%c",
-          "gzip", "compress", CR, LF);
+   HTSprintf(&command, "Accept-Encoding: %s, %s, %s%c%c",
+          "bzip2", "gzip", "compress", CR, LF);

   if (language && *language) {
     HTSprintf(&command, "Accept-Language: %s%c%c", language, CR, LF);
--------------------------------------------------
っていう変更をしてやればOKかな?

# しかし"Accept-Encoding"がハードコーディングになっていたとは......
272191:01/08/29 17:36 ID:THYp8YGg
>>269
index.2.cgi みたけど、
・&error って、Content-Encoding: gzip が出たあと平文で出ることがある
もっと error checkを早く、headerだすまえにやるべき
・最初の statのあとの -s $fname とかは -s _ の方が軽いと思われ
・gzippedなやつが "index?.htm" っていう命名規則は変えられない?
やはり素直に index2.html.gz とかのほうが分かりやすくていいと思う
273デフォルトの名無しさん:01/08/29 17:44 ID:NuzxCJ3M
>>269 # index2.cgi.2

Location もしくは refresh タグでふり分けるだけじゃ駄目なんすかね。
274名無し娘。 ◆vP.bOZFQ :01/08/29 17:50 ID:xeUGWGbY
>>268
<index2>
・bbs.cgiをとめる
・mv index2.htm index3.htm; mv index2.html index3.html;
・bbs.cgiが出力するファイル名 index2.htm[l] を index3.htm[l] にする
・復帰スクリプトが出力するファイル名も、同様に変える
・index2.htm[l]は >>244 のように記述する
・index2.cgi の $GZIPED_HTML $PLAIN_HTML を指定する
<subback>
・bbs.cgi をとめる
・mv subback.html subback2.html;
・bbs.cgi が出力するファイル名 subback.html を subback2.html にする
・bbs.cgi が subback2.htm(gzip圧縮) を作るようにする
・復帰スクリプトが出力するファイル名も、同様に変える
・subback.htmlは >>244 のように記述する
・subback.cgi の $GZIPED_HTML $PLAIN_HTML を指定する
<bbsmenu.html/bbstable.html>
・mv bbsmenu.html bbsmenu2.html; mv bbstable.html bbstable2.html
・それぞれを gzip 圧縮したファイルを作る
・bbs[menu/table].html は >>244 のように記述する
・bbs[menu/table].cgi の $GZIPED_HTML $PLAIN_HTML を指定する
275aborn ◆OonrVZq6 :01/08/29 17:52 ID:1pRiIT.2
>>257
MacのIEはgzipに対応してません。
276名無しさん@揚げ足:01/08/29 17:56 ID:lTYEA056
index.htmを圧縮サイズで比較すると、限界ぎりぎりサイズのレスで荒らされるので
サイズは常にindex2.htmlを対象ということでどうでしょう?

-if(-s $fname > $MAX_FILESIZE){&error("このindex2.htm大きすぎます。")}
+if(-s $PLAIN_HTML > $MAX_FILESIZE){&error("このindex2.htm大きすぎます。")}
277-:01/08/29 18:03 ID:7PMZ2b7Y
>275
そうでしたか。じゃ、index2.cgi が Accept-Encoding: を認識すれば平気ですね
# read.cgi でも gzip 化けが起きてるのかと勘違いしたす
278aborn ◆OonrVZq6 :01/08/29 18:06 ID:1pRiIT.2
>>277
一応、MacのIEは対応もしてないAccept-Encodingにgzipを入れるほどヴァカではないですので、大丈夫だと思いますが、
串なんか使ってるところで、串がgzipエンコードされたデータをキャッシュしてたりするとダメですね。

# って、Pragma: no-cache吐いてないけど大丈夫なんだろうか
279デフォルトの名無しさん:01/08/29 18:10 ID:iU.Fd0UU
>>278 "Pragma: no-cache"しちゃったらひょっとして"Last-Modified"の
効果がなくなっちゃったりしない? 記憶が確かじゃないけどProxy向けの
制御用ヘッダがあったような......
280aborn ◆OonrVZq6 :01/08/29 18:15 ID:1pRiIT.2
>>279
あれ?そうでしたっけ…調べてみます。
試したところ一応効果はなくなってないみたいですが…
281名無し娘。 ◆vP.bOZFQ :01/08/29 18:22 ID:xeUGWGbY
>>265 index2.cgi.1
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998736516&st=768&to=768&nofirst=true
ブラウザ側は x-gzip と gzip を等価とみなすべきですが、サーバー側は
この2つを区別しておいた方がよさそうです。
282aborn ◆OonrVZq6 :01/08/29 18:31 ID:1pRiIT.2
>>279
あー、Pragma ではなく Cache-Control ですね。どうも。
Cache-Control: no-cache, no-store
でも入れてくれればproxyが非対応ブラウザにキャッシュされたgzipデータを吐くのを防げますね。
# 自分の所も修正しなきゃ^^;
283名無し娘。 ◆vP.bOZFQ :01/08/29 18:55 ID:xeUGWGbY
284デフォルトの名無しさん:01/08/29 19:23 ID:KoHN/nTM
>207
IE 6.0.2600.0000 / Win2k
index2.htm、 read.cgi 特に問題なし。

HTTP_ACCEPT_ENCODING = gzip, deflate
HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
285UNIX板とマルチレスで二重カキコと判定された:01/08/29 19:34 ID:pswH38Zg
286デフォルトの名無しさん:01/08/29 19:43 ID:ps40cZfg
ZLIB使用の時にContent-Length吐くようにするのがほぼでき上がったけど
圧縮しないときは、吐かないでいいの?
287名無し娘。 ◆vP.bOZFQ :01/08/29 19:49 ID:hNInjuxs
read.cgi の障害報告。対処法は未考。
一度"Internal Server Error"や"Can't Exec"が返ってきた場合も、
それ以降に書き込みがなければ、同じリクエストに対して304を返すため、
リロードのたびにブラウザは何度も真っ白な画面を表示し続けます。
リクエストをちょっと変えれば問題ないのですが、zlibの動作いかんによっては、
CPU負荷、DISK負荷をもっと減少させないと、苦情が続出するかもしれません。
まして、dat吐き出しをすべてread.cgiが負うとなると。。。

ところで、>>274 はこれでいいですかねぇ。。。
DolBackyさんに連絡とれる方いらっしゃったら、一度読んでいただきたく。
288名無し娘。 ◆vP.bOZFQ :01/08/29 19:55 ID:hNInjuxs
289デフォルトの名無しさん:01/08/29 19:55 ID:iU.Fd0UU
>>287 zlibがなかったんで今はfork()してgzipを呼び出してるんですよね?
zlibにすればfork()しない分"Couldn't spawn child process"には
なりにくいと思いますけど
290音楽侍 ◆NtVkSITE :01/08/29 19:56 ID:EqArAK56
やっぱスレ立てた方がいいですよ。
1で内容説明。
2で概要説明
3に各ファイルのリンク、
>>274を4、以降で、>>274の詳細を解説
位にしておいてあげないと、わかりにくいですよ。
291デフォルトの名無しさん:01/08/29 19:56 ID:1pRiIT.2
ついに会談始まるらしい…
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999059369&st=357&to=357&nofirst=true

> 357 名前:マァヴ元@削除管理委員長 ★ 投稿日:01/08/29 19:40 ID:???
> 8時から会談が始まる予定です。
> 多少の遅刻はあっても、寝過ごすことはなさそな模様(^_^;)
292音楽侍 ◆NtVkSITE :01/08/29 19:58 ID:EqArAK56
ここまでのスレッドの流れを追って理解し、作業をよろしく、Backyさん、っていうのは、ちょっと・・・
って思います。しつこくてすいません。
293名無し娘。 ◆vP.bOZFQ :01/08/29 19:59 ID:hNInjuxs
>>289
おっしゃるとおりです。zlibにしてももしや…ってことで。
>>290
そうですね。ただ、如何せん自信がなくて。
まだ若干の案が実装されないままのようですし。。。
どなたも作業されていないなら、がんばって実装しますが。。。
294名無し娘。 ◆vP.bOZFQ :01/08/29 20:04 ID:hNInjuxs
   >>292
いえいえ(^^;
単刀直入にいうと
>>274 の方向性は正しいか、漏れはないか
・index2.cgi.1 はこれで完成か
の決断が欲しいんです。
スレ立ててから話が混線するのは、どうしても避けたいので、後手になっています。
295♯6411:01/08/29 20:09 ID:rpOycX/Y
index2.cgi とは違う路線で、
subback.html を吐き出す機能を
read.cgi に実装しました。
すでに commit してあるので、
cvs 参照できる方は追試きぼんぬ。

read.cgi/tech/
で、スレ一覧が取れます。
296名無し娘。 ◆vP.bOZFQ :01/08/29 20:14 ID:hNInjuxs
実ファイルの命名規則は xxxxx_r.html[.gz] でいいですか?
下の「要作成」は今から作ります。
<index2.cgi.2>
●最新ソース
ftp://210.170.170.118/incoming/perler/index2.cgi.2
●実装待ち
>>265 >>267 >>272 >>276
●要作成
>>244 の index_r.html[.gz] subback_r.html[.gz] bbsmenu_r.html[.gz]
bbstable_r.html[.gz] 版の制作。
●概要の文面
>>274
297デフォルトの名無しさん:01/08/29 20:15 ID:qIC0u6sU
>>47
read.cgiが多重起動されてる度合いに応じて リロード強制304の時間を調整してはどうだろうか?
298デフォルトの名無しさん:01/08/29 20:25 ID:ps40cZfg
ftp://210.170.170.118/incoming/len/
にZLIB使用時にContent-Length吐くやつを入れたので誰かcommitしてください。
read.c と zlib/gzio.c です。
新しいのをコンパイルする前に、zlib/libz.aを一度削除すること。
299音楽侍 ◆NtVkSITE :01/08/29 20:26 ID:EqArAK56
>>244
> <A HREF="http://xx.2ch.net/xxxx/index2.cgi">クリック</A>
これはない方がいいです。白紙から一瞬で飛んだ方がいいと思います。
300名無し娘。 ◆vP.bOZFQ :01/08/29 20:26 ID:hNInjuxs
>>296
<index2.cgi.2>

ftp://210.170.170.118/incoming/index/
に4つの.htmlファイルをおきました。bbsmenu.html bbstable.html は
www.2ch.net/ におけばそのまま使えます。
index2.html subback.html は、"xxx"を鯖名、"yyy"を板名、
bbspink2のときはさらに"2ch.com"を"bbspink.net"に置換して、
/板名/に置きます。

●最新ソース
ftp://210.170.170.118/incoming/perler/index2.cgi.2
●実装待ち
>>265 >>267 >>272 >>276
●概要の文面
>>274
301名無し娘。 ◆vP.bOZFQ :01/08/29 20:29 ID:hNInjuxs
>>299
んと、metaのrefreshが効かない場合に備えて、だと思います。
また、content="0; にすることも考えたのですが、ブラウザの
バックボタン連打で戻ることが不能になってしまうため、保留しました。
履歴を直接たどれば戻れますが…どちらがいいでしょうか。
302デフォルトの名無しさん:01/08/29 20:29 ID:6wtO5bLA
>>298
あてた
303Perler ◆GSi39OA6 :01/08/29 20:29 ID:qGdmeavk
>>299
refreshを実装してないブラウザ対策です。
あとrefreshを0にすると、ブラウザによって「戻る」ボタンが効かなかったり、不具合が結構出ますよ。
1秒でもいいから、refreshにインターバルを設けるのを提案します。
304音楽侍 ◆NtVkSITE :01/08/29 20:30 ID:EqArAK56
index2.cgi.2のとばし先のファイル名が

my $GZIPED_HTML = "index2.htm";
my $PLAIN_HTML = "index2.html";

になってます。
index3.htm[l]では?
305名無し娘。 ◆vP.bOZFQ :01/08/29 20:30 ID:hNInjuxs
とりあえず
ftp://210.170.170.118/incoming/perler/index2.cgi.2
に手を付けていきます。
306298:01/08/29 20:31 ID:ps40cZfg
Content-Length吐くなら、2048byteの空白出さないでいいんですよね。
gzputcで空白出すとこ削ってくださいな。
307名無し娘。 ◆vP.bOZFQ :01/08/29 20:31 ID:hNInjuxs
>>303
index2.cgi.2 の方、作業中でしょうか。
あまり自信がないのでやってくださるならお願いしたいのですが。
308音楽侍 ◆NtVkSITE :01/08/29 20:34 ID:EqArAK56
>>301 >>303
なるほど。reflesh=1は同意です。
リフレッシュ効かないブラウザ用の対応・・・ですか。
了解です。
見た目の問題(一瞬文字が見えるのはあまり好ましくない)ですので。
309Perler ◆GSi39OA6 :01/08/29 20:36 ID:qGdmeavk
>>307
ちょっと忙しいので作業できないです。。すみません。
310音楽侍 ◆NtVkSITE :01/08/29 20:36 ID:EqArAK56
あと、subback.cgiでしたか?も作成しておいてあげた方が親切だと思います。
DolBackyさんも消耗なさっておられるでしょうから。
311♯6411:01/08/29 20:37 ID:zwWJLRVA
>>302
>>306
何か気をつけないといけない点はある?
312名無し娘。 ◆vP.bOZFQ :01/08/29 20:38 ID:hNInjuxs
>>309
了解です。お疲れさまです。
>>267 ですが、現コードでは実時間をとっていないようなので、エラーのために
わざわざ実時間取るのももったいなく、保留しておきます。
313音楽侍 ◆NtVkSITE :01/08/29 20:39 ID:EqArAK56
>>274で問題なさそうです。
314302:01/08/29 20:41 ID:ps40cZfg
libzがオリジナルじゃなくなったこと。あとは、
>新しいのをコンパイルする前に、zlib/libz.aを一度削除すること。
315302:01/08/29 20:42 ID:ps40cZfg
おっと、gzputc削るのは、ZLIBの時だけでした。スマソ
316320:01/08/29 20:44 ID:ps40cZfg
あほや、gzputcってZLIBの時しかつかわんじゃん。逝ってきま〜す。
317♯6411:01/08/29 20:44 ID:zwWJLRVA
>>315 うまくやると、直接deflate呼び出せるようにならないかなあ?
318音楽侍 ◆NtVkSITE :01/08/29 20:48 ID:EqArAK56
作業概要

転送の帯域を抑えるため、各htmlコンテンツをgzipで提供するに当たり、
gzip対応しているブラウザにはgzip版を、非対応ブラウザにはテキスト版を送信するcgiを挟みます。
このことにより、ブラウザのトラブルを回避し、圧縮された各コンテンツを配給できます。

実装は以下の通り(index2.htmlの場合)

index2.cgi導入 → cgi内部でgzip対応を判断 → 適切な内容を表示
319302:01/08/29 20:49 ID:ps40cZfg
あほ++、さらに320とか入れてるし。

>>317
>IEはヘッダにはAccept-Encoding: gzip, deflateと含めているにも
>関わらず、実際にdeflateでエンコードしたデータを喰わせても
>解釈できないです。
これって確認されてる?
320名無し娘。 ◆vP.bOZFQ :01/08/29 20:52 ID:hNInjuxs
<index2.cgi.2>
ftp://210.170.170.118/incoming/index/bbsmenu.html
ftp://210.170.170.118/incoming/index/bbstable.html
ftp://210.170.170.118/incoming/index/subback.html
ftp://210.170.170.118/incoming/index/xxxxx.cgi
ftp://210.170.170.118/incoming/index/xxxxx.html

bbsmenu.html bbstable.html は www.2ch.net/ におけばそのまま使えます。
index2.html subback.html は、"xxx"を鯖名 "yyy"を板名、
bbspink2のときはさらに"2ch.com"を"bbspink.net"に置換して、
/板名/に置きます。

xxxxx.cgi は、"xxxxx"を現在あるファイル名(拡張子抜き)に置き換えます。
index2.html の場合は、index2.cgi のように。
ソース中の "xxxxx" も同様に置き換えます。板名や鯖名は気にしなくて
よいです。

これらで参照される「実ファイル」は、xxxxx_r.html xxxxx_r.html.gz です。
index2.html -> index2_r.html / index2.htm -> index2_r.html.gz
subback.html -> subback_r.html のようにリネームしてください。


実装について、>>276 は index2.html が読めなくなるという事態を
極力回避するため、実装しませんでした。

●概要の文面
>>274

ちょっとチェックしてみてください。
321音楽侍 ◆NtVkSITE :01/08/29 20:54 ID:EqArAK56
作業手順
<index2>
1)bbs.cgiをとめる
2)各ファイル名を変更する
mv index2.htm index3.htm; mv index2.html index3.html;
3)bbs.cgiが出力するファイル名 index2.htm index2.html を index3.htm index3.html にする
4)復帰スクリプトが出力するファイル名も、同様に変える
5)index2.htm index2.htmlは、以下のようにreflashでジャンプするよう記述する
<HTML><HEAD>
<META HTTP-EQUIV="refresh" content="1;URL=http://xx.2ch.net/xxxx/index2.cgi">
</HEAD><BODY>
<A HREF="http://xx.2ch.net/xxxx/index2.cgi">クリック</A>
</BODY></HTML>
322音楽侍 ◆NtVkSITE :01/08/29 20:55 ID:EqArAK56
訂正。というか、細かすぎるかもしれませんが

作業手順
<index2>
1)bbs.cgiをとめる
2)各ファイル名を変更する
mv index2.htm index3.htm; mv index2.html index3.html;
3)bbs.cgiが出力するファイル名 index2.htm index2.html を index3.htm index3.html にする
4)復帰スクリプトが出力するファイル名も、同様に変える
5)index2.htm index2.htmlは、以下のようにreflashでジャンプするよう記述する
<HTML><HEAD>
<META HTTP-EQUIV="refresh" content="1;URL=http://xx.2ch.net/xxxx/index2.cgi">
</HEAD><BODY>
<A HREF="http://xx.2ch.net/xxxx/index2.cgi">クリック</A>
</BODY></HTML>
6)bbs.cgi を稼働状態に戻す
323音楽侍 ◆NtVkSITE :01/08/29 20:56 ID:EqArAK56
<subback>
1)bbs.cgi をとめる
2)各ファイル名を変更する
mv subback.html subback2.html;
3)bbs.cgi が出力するファイル名 subback.html を subback2.html にする
4)bbs.cgi が subback2.htm(gzip圧縮) を作るようにする
5)復帰スクリプトが出力するファイル名も、同様に変える
5)index2.htm index2.htmlは、以下のようにreflashでジャンプするよう記述する
<HTML><HEAD>
<META HTTP-EQUIV="refresh" content="1;URL=http://xx.2ch.net/xxxx/subback.cgi">
</HEAD><BODY>
<A HREF="http://xx.2ch.net/xxxx/subback.cgi">クリック</A>
</BODY></HTML>
6)bbs.cgi を稼働状態に戻す
324319:01/08/29 20:58 ID:ps40cZfg
俺は,302じゃなかった。マジで鬱。
302さんcommitありがとう。そして、ゴメソ。
325音楽侍 ◆NtVkSITE :01/08/29 20:59 ID:EqArAK56
<bbsmenu.html/bbstable.html>
1)各ファイル名を変更する
mv bbsmenu.html bbsmenu2.html; mv bbstable.html bbstable2.html
2)それぞれを gzip 圧縮したファイルを作る
3)bbs[menu/table].html は 以下のように記述する
・bbsmenuの場合
<HTML><HEAD>
<META HTTP-EQUIV="refresh" content="1;URL=http://xx.2ch.net/xxxx/bbsmenu.cgi">
</HEAD><BODY>
<A HREF="http://xx.2ch.net/xxxx/bbsmenu.cgi">クリック</A>
</BODY></HTML>
・bbstableの場合
<HTML><HEAD>
<META HTTP-EQUIV="refresh" content="1;URL=http://xx.2ch.net/xxxx/bbstable.cgi">
</HEAD><BODY>
<A HREF="http://xx.2ch.net/xxxx/bbstable.cgi">クリック</A>
</BODY></HTML>
326♯6411:01/08/29 21:04 ID:zwWJLRVA
>>319 このスレか過去スレに、
deflate対応してみた、
ってカキコがあったような気がしたので、
もしかして、うまく逝ったのかなあと
思いこんでたんだけど、
自身で追試はしていないす。
ためしにIISなサイトをたたいてみたけど、
Encodingしてくれなかった。してくれるって噂だったのに。

で、deflateじゃなくてinflateのような気がした…
327デフォルトの名無しさん:01/08/29 21:05 ID:22fiFnTw
タグは小文字にしませんか? いや、別にどうでもいい部分なんですが。
328名無し娘。 ◆vP.bOZFQ :01/08/29 21:07 ID:hNInjuxs
>>320
ftp://210.170.170.118/incoming/index/xxxxx.cgi
を更新しました(ファイルテスト演算子 _ 関連)。
旧ファイルは xxxxx.cgi.old です。
これで作業終了のはず。
ちょっと20分ほど席はずします。すいません。
329デフォルトの名無しさん:01/08/29 21:18 ID:iU.Fd0UU
今CVSに入ってるのって"Content-Length"対応なんですか?

gzipped_fwrite()が実行されないのに終了処理のところで

if ( gzip_flag == 2 ) {
    fprintf(stdout,"Content-Encoding: x-gzip\n");
} else {
    fprintf(stdout,"Content-Encoding: gzip\n");
}
fprintf(stdout,"Content-Length: %d\n\n",outlen);
fflush(stdout);

fwrite(outbuf,1,outlen,stdout);

を実行するようなコードになってるっぽいですが......
330デフォルトの名無しさん:01/08/29 21:21 ID:ps40cZfg
gzipped_fwriteは、zlib/gzio.cが呼びます。
331名無し娘。 ◆vP.bOZFQ :01/08/29 21:25 ID:hNInjuxs
>音楽侍 ◆NtVkSITE さん
それぞれの.htmlファイルはftp://210.170.170.118/incoming/index/に
作成済みです。>>320のような若干の置換が必要ですが。
その他の部分は、いまから読みますです。
>>327
大文字のは _lc に移して、小文字のに置き換えました。
332♯6411:01/08/29 21:25 ID:zwWJLRVA
できれば、gzipされてないときも
Content-Length吐いてもらえる
ようにできませんか?
squidにキャッシュされない原因は、これか?
333329:01/08/29 21:28 ID:iU.Fd0UU
>>330 なるほど了解 逝ってくる......
334音楽侍 ◆NtVkSITE :01/08/29 21:29 ID:EqArAK56
>>331
了解です〜
終わったら、
転送量(料)の増加で2ch閉鎖の危機!9
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999059369
にいってマァヴさんにお願いすると、DolBackyさんに伝わります。
新スレにみんな貼って、誘致活動を・・・が良いかと思います。
335名無し娘。 ◆vP.bOZFQ :01/08/29 21:34 ID:hNInjuxs
...そういえば、動作確認していない。
負荷はかからないので、どなたかperlのあるweb鯖で実験して
いただけませんか?
(あと、じつは /usr/local/bin/perl だったりしないか心配)
>>334
お疲れさまです。もうしばらくお待ち下さい。
336♯6411:01/08/29 21:37 ID:zwWJLRVA
ためしにExpiresを実装してみたものの、
どうも芳しい結果が得られない。
つぎcommitする際に殺したまま入れとくので
どなたか追試きぼーーーんぬ
337anony ◆3XTuRnAc :01/08/29 21:41 ID:2kMI.7hA
>娘。さん
午前0時回ると思いますが、家に帰れれば実験台になれるかも。
もしよろしければ、「実験に必要なファイル」をまとめて、
「実験に必要な手順」を簡単にでも良いですから書いてftp鯖に叩き込んでおいてくれれば。

・・・って、必要な手順は>>320-326ってことなら今から少しずつ予習しておきます。

#いまは会社にいないといけないんですよ・・・自分が直接絡んだところじゃないけど
#間接的に問題がでてて・・・・鬱。
338音楽侍 ◆NtVkSITE :01/08/29 21:42 ID:EqArAK56
>>335
ソース一式はどこですか?
339名無し娘。 ◆vP.bOZFQ :01/08/29 21:54 ID:hNInjuxs
>>337-338
音楽侍 ◆NtVkSITE さんの書いてくださったのをもとに、コピペ直前まで
編集してみたので、読んでみてください。>>339-341
340名無し娘。 ◆vP.bOZFQ :01/08/29 21:55 ID:hNInjuxs
1.
index2.html など転送量削減案

転送の帯域を抑えるため、各htmlコンテンツをgzipで提供するに当たり、
gzip対応しているブラウザにはgzip版を、非対応ブラウザにはテキスト版を
送信するcgiを挟みます。
このことにより、ブラウザのトラブルを回避し、圧縮された各コンテンツを
配給できます。

実装は以下の通り(index2.htmlの場合)

index2.cgi導入 → cgi内部でgzip対応を判断 → 適切な内容を表示 → (゚д゚)ウマー


>>2 に必要なファイル一覧と概要

>>3 にインストール方法
341名無し娘。 ◆vP.bOZFQ :01/08/29 21:55 ID:hNInjuxs
2.
ftp://210.170.170.118/incoming/index/bbsmenu.html
ftp://210.170.170.118/incoming/index/bbstable.html
ftp://210.170.170.118/incoming/index/index2.html
ftp://210.170.170.118/incoming/index/subback.html
ftp://210.170.170.118/incoming/index/xxxxx.cgi

bbsmenu.html bbstable.html は www.2ch.net/ におけば、そのまま使えます。
index2.html subback.html は、ファイル内の "xxx" を鯖名に、"yyy" を板名に置換し、
さらに bbspink2 のときは"2ch.com"を"bbspink.net"に置換して、/板名/に置きます。
エディタなどの置換機能で全置換してだいじょうぶです。

xxxxx.cgi は、"xxxxx"を現在あるファイル名(拡張子抜き)に置き換えます。
たとえば index2.html の場合は、index2.cgi にします。
ソース中にも "xxxxx" があるので、同様に置き換えます。
こちらも、エディタなどの置換機能で全置換してだいじょうぶです。
板名や鯖名は気にしなくてよいです。

最終的にブラウザに表示される「実ファイル」は、xxxxx_r.html xxxxx_r.html.gz です。
index2.html -> index2_r.html
index2.htm -> index2_r.html.gz
subback.html -> subback_r.html
のようにリネームしてください。
342名無し娘。 ◆vP.bOZFQ :01/08/29 21:55 ID:hNInjuxs
3.
<index2>
1)bbs.cgiをとめる
2)既存のファイル名を変更する
 mv index2.htm index2_r.html.gz
mv index2.html index2_r.html
3)bbs.cgiが出力するファイル名を変更する(bbs.cgi内で指定されているファイル名)
 index2.htm -> index2_r.html.gz
 index2.html -> index2_r.html
4)復帰スクリプトが出力するファイル名も同様に変える
5)ftp://210.170.170.118/incoming/index/index2.html をダウンロードし、
 "xxx" を鯖名に、"yyy" を板名にそれぞれ置換し、設置する。
6)ftp://210.170.170.118/incoming/index/xxxxx.cgi ダウンロードし、
 index2.cgi にリネームして設置。ソース内の "xxxxx" を "index2" に置換する。
7)bbs.cgiを稼働状態に戻す
343名無し娘。 ◆vP.bOZFQ :01/08/29 21:59 ID:hNInjuxs
簡単な実験方法は、
・同一ディレクトリに xxxxx.cgi xxxxx_r.html xxxxx_r.html.gz を置く。
 (xxxxx_r.html.gz は xxxxx_r.html を gzip compress したもの)
・ブラウザで xxxxx.cgi にアクセス。
344名無し娘。 ◆vP.bOZFQ :01/08/29 22:00 ID:hNInjuxs
>>343
あ、xxxxx_r.html は、適当な html ファイルでいいです。
よろしくお願いします。
345音楽侍 ◆NtVkSITE :01/08/29 22:02 ID:EqArAK56
sub time2lastmod{
my($time) = shift;
my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)
= gmtime($time);
$wday = qw(Sun Mon Tue Wed Thu Fri Sat)[$wday];
$mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)[$mon];
sprintf("%s, %02d %s %d %02d:%02d:%02d GMT",
$wday, $mday, $mon, $year+1900, $hour, $min, $sec);
}
ここでエラー出ます。
Can't use subscript on split at test.cgi line 77, near "$wday]"
Can't use subscript on split at test.cgi line 78, near "$mon]"
Execution of test.cgi aborted due to compilation errors.
346Perler ◆GSi39OA6 :01/08/29 22:12 ID:qGdmeavk
>>345
Perlのバージョンによる違いかな。。。

$wday = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday];
$mon = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec)[$mon];

で試してみてください。
347Perler ◆GSi39OA6 :01/08/29 22:14 ID:qGdmeavk
$mon = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$mon];

Decの直後の記号が抜けてました。
348デフォルトの名無しさん:01/08/29 22:21 ID:NuzxCJ3M
use HTTP::Date qw(time2str);

time2str($time);

でいいのでは。
349Perler ◆GSi39OA6 :01/08/29 22:24 ID:qGdmeavk
>>348
入ってない可能性高すぎ。
350名無し娘。 ◆vP.bOZFQ :01/08/29 22:25 ID:hNInjuxs
>>346-347 を修正した上で、xxxxx.cgi を 4つの.cgiにわけておくことにしました。
導入の手順が簡単になります。

ftp://210.170.170.118/incoming/index/_readme.txt
をお読み下さい。
351音楽侍 ◆NtVkSITE :01/08/29 22:27 ID:EqArAK56
うちでは
sub time2lastmod{
use HTTP::Date qw(time2str);
time2str(my($time));
}
でいきましたです
352音楽侍 ◆NtVkSITE :01/08/29 22:29 ID:EqArAK56
HTTP1.1でやると、
hoge.cgiがダウンロードされてしまうです。
353名無し娘。 ◆vP.bOZFQ :01/08/29 22:32 ID:hNInjuxs
>>351-352
どうすればいいのだろう。。。(適切な処置がわからないらしい)

ところで、http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999090223&ls=20
354デフォルトの名無しさん:01/08/29 22:35 ID:6wtO5bLA
>>352
HTTP/1.0だと動くってこと?
355Perler ◆GSi39OA6 :01/08/29 22:36 ID:qGdmeavk
>>352
具体的にはどういう現象でしょう?

>>353
HTTP::Dateは、インストールされていない環境がありうるので、
止めた方が良いと思います。

というか、入ってないんじゃないかと思う>2.ch
356音楽侍 ◆NtVkSITE :01/08/29 22:39 ID:EqArAK56
んと、
HTTP1.0 == htmlファイルの転送成功。リトライのキャッシュについては未調査
HTTP1.1 == gzipファイルが生で送られてくる
という状況です。
357191:01/08/29 22:40 ID:THYp8YGg
>>342 番のだと、 Content-Encodingが 2回出てしまうことがあります。
ということでなおしました。
だけじゃなくてほかにもちょと変えました。
・ソースの整理
・gzipped じゃなくて生のもので存在、サイズをチェック
・/bin/perl をつかうようにした (/usr/bin/perl じゃないすよね?)
・FreeBSD 4.3 + 5.005_03 で動作確認

ftp://210.170.170.118/incoming/191/xxxxx.cgi にあります。
358Perler ◆GSi39OA6 :01/08/29 22:43 ID:qGdmeavk
>>356
それは、Transfer-Encodeを指定していないのにgzipファイルが送られてくるんでしょうか?
それともヘッダがないとか?
すみません、もうちょっと具体的に。。。。

>>357
うちは/usr/local/bin/perlに入ってたりしますが。。。。

Linuxだと/bin/perlがデフォルトなのかな。
359デフォルトの名無しさん:01/08/29 22:43 ID:fYk.8H92
>>341
|さらに bbspink2 のときは"2ch.com"を"bbspink.net"に置換して、/板名/に置きます。

"2ch.net"を"bbspink.com"でないですか?
ソース見てないので、見当違いだったらスマソ

なお、"(www.)2ch.com"は存在してるようです。
360音楽侍 ◆NtVkSITE :01/08/29 22:48 ID:EqArAK56
>>357
リロード確認・text/gzip確認
HTTP 1.0 / 1.1 ともに確認しました。OKです。
361音楽侍 ◆NtVkSITE :01/08/29 22:50 ID:EqArAK56
>>358
設定次第なので何ともいえませんが、Linuxの場合、localあってもなくても、どっちでも動くかと・・・
362デフォルトの名無しさん:01/08/29 22:51 ID:jgB/eHro
>323
前後関係よく分かってなくてすまんけど、それがやりたいだけなら下記で十分だと思う。
DOCTYPEがないが、それ以外は文法的にも全然OKの筈。

<title>飛べ</title>
<META HTTP-EQUIV="refresh" content="1;URL=http://xx.2ch.net/xxxx/subback.cgi">
<A HREF="http://xx.2ch.net/xxxx/subback.cgi">飛べ</A>
363デフォルトの名無しさん:01/08/29 22:57 ID:NuzxCJ3M
perl のパスが分からない時は

#!/usr/bin/env perl

でしてみましょう。
364191:01/08/29 23:02 ID:THYp8YGg
それから、meta-refresh って現在の URL相対の指定できないんでしょうか?
どうせ index2.htmlとかは各板の directoryにおくものだから

<head><meta http-equiv="refresh" content="url=index2.cgi"></head>
<a href="index2.cgi">click!</a>

とかやれば index2.htmlをいちいち書き換えなくてすむのでは。
すくなくとも w3mでは相対指定効くようです。

xxxxx.cgi のほうも $0 をみるようにすれば、なかをいじらずに
ファイル名を変えるだけでどのファイルを送るかきめられるような。
365名無し娘。 ◆vP.bOZFQ :01/08/29 23:08 ID:hNInjuxs
>>359
その通りです。失礼しました。
>>364
後半の方は、全種類こちらで用意します。
366デフォルトの名無しさん:01/08/29 23:13 ID:NuzxCJ3M
>>362 # refresh する html の文法

html のバージョンにもよるが、4.x の場合には
a 要素を div, p , h[1-6] などのブロック要素に入れる必要あり。
h1 なんかでいいんでは。大きくて。
367音楽侍 ◆NtVkSITE :01/08/29 23:15 ID:EqArAK56
名無し娘。さん。
一応、マァヴさんには、完成したら娘。さんが一報入れますって伝言してあります。
BackyさんにもQで伝達済みですので、よろしくです。
前にもお知らせしましたっけ?
368名無し娘。 ◆vP.bOZFQ :01/08/29 23:16 ID:hNInjuxs
>>351-359 までは対応して ftp://210.170.170.118/incoming/index/ に置きました。
369Perler ◆GSi39OA6 :01/08/29 23:18 ID:qGdmeavk
>>364

そもそもRefreshってHTMLの仕様外の実装なので(もちろんHTTP/1.1にRefreshというヘッダが
あるわけでもない)、「てきとうでいい」というのが実際でしょう。

ですので、動作確認がとれれば相対URIでも良いのではないでしょうか。

あ、ただし、秒数は多くのクライアントで必須だったと思います。

そもそもHTML4.0には「Refreshは使うな」ってかかれてますし。緊急避難的に利用させてもらうことにしましたが。
370191:01/08/29 23:19 ID:THYp8YGg
>>365 よろしくおねがいします。
でも本業がちっともすすまないよう。ヽ(`Д´)ノ ウワァァン!!
371名無し娘。 ◆vP.bOZFQ :01/08/29 23:21 ID:hNInjuxs
>>366
目立たない方がいいような気もします。。。
ところで、ftp://210.170.170.118/incoming/index/bbsmenu.html は文法違反と
いうことでしょうか?
>>367
>>334 ですね(^^
>>369
となると、まさに動作確認次第ですね。。。
372191:01/08/29 23:23 ID:THYp8YGg
>>369 げに。ということで実際問題としてどの程度の
clientが対応しているのかな。と。
Web作製とかの人の方が詳しいんだろうな。ヽ(`Д´)ノ ウワァァン!!
373Perler ◆GSi39OA6 :01/08/29 23:29 ID:qGdmeavk
>>371
HTML4.01だと、文法違反として、まず<TITLE>〜</TITLE>がないですね。
って私が最初に省略したようです。すみません。

あとは、<A>〜</A>が裸なのも違反になりますね。
実際閲覧時に問題になることは皆無だと思われますが。
374デフォルトの名無しさん:01/08/29 23:32 ID:fYk.8H92
フレームにするのは除外ですか?
二重になってしまうけど。
375名無し娘。 ◆vP.bOZFQ :01/08/29 23:33 ID:hNInjuxs
>>373
ありがとうございます。直しておきます。
376名無し娘。 ◆vP.bOZFQ :01/08/29 23:35 ID:hNInjuxs
>>375
...でも、<a>が裸なのは、read.cgiも同じだった(^^;
<title>だけつけて、かわりに"\n"けずっときます。
377デフォルトの名無しさん:01/08/29 23:36 ID:22fiFnTw
<a>のまえに<p>だけつけておけばよいと思うです。>裸
378Perler ◆GSi39OA6 :01/08/29 23:37 ID:qGdmeavk
>>374
それも考えましたが、リロード時に余計なトラフィックを喰うので止めました。

>>376
世に出回ってるHTMLドキュメントの多分95%くらいが違反だらけなので、
この際、クライアント依存の可能性がなければ細かい事は気にしなくて良いかと。
379名無し娘。 ◆vP.bOZFQ :01/08/29 23:40 ID:hNInjuxs
>>378
じゃ、<title>もつけないでいいや(^^;
何度も何度も呼ばれるものだし。少しでも小さい方が。

ftp://210.170.170.118/incoming/index/ 以下、今のところfixです。
380♯6411:01/08/29 23:42 ID:rpOycX/Y
いまダイジェストページ(index2.html相当)を
つくってんだけど、
…中規模の改造を施さないと
いけない…鴨。

鬱だ氏のう
381名無し娘。 ◆vP.bOZFQ :01/08/29 23:48 ID:hNInjuxs
>>369
相対URL指定に、とても魅力を感じるのですが、やってみていいですか?(^^;
よければ、ftp://210.170.170.118/incoming/index/ 中身入れ替えて(別所に
絶対URL指定のものも残して置きつつ)、新スレ立てようかと。
382デフォルトの名無しさん:01/08/29 23:48 ID:99bXOuQI
...やっぱ<title>タグ入れませんか? ムダ?
383名無し娘。 ◆vP.bOZFQ :01/08/29 23:49 ID:hNInjuxs
>>382
ちょっと欲しい気もするので、入れてみます。
384Perler ◆GSi39OA6 :01/08/29 23:50 ID:qGdmeavk
良いと思います。

そもそも

Content-Encoding: gzip

を有無も言わさず送出している現状に比べれば、障害は少ないと思います。

もしある程度苦情が集まるようなら、その時点での対策で遅くないと思います。
385デフォルトの名無しさん:01/08/29 23:51 ID:ps40cZfg
既にread.cgiのスレじゃないな。

gzipしないときにContent-Length吐くのってどの程度効果があるんでしょう?
HTTP/1.1な奴ならgzip使うだろうし、HTTP/1.0じゃchunkしないだろうし。
proxyがchacheする可能性が増えるだけ?
386♯6411:01/08/29 23:54 ID:rpOycX/Y
>>385 派外道。

いま見てみたんだけど、Length求めるの
ちょっとメンドくさいですね。
余力があったらしてみます。

ただいまdat_read() dat_out() 変造ちう
387385:01/08/29 23:58 ID:ps40cZfg
Content-Lengthを出す分の転送量増加以上の効果が見込めるなら
やろうかと思って。
388名無し娘。 ◆vP.bOZFQ :01/08/30 00:00 ID:HrH04.b6
index2.cgi 系の新スレです。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=999097075&ls=20

批判要望いってきます。
389名無し娘。 ◆vP.bOZFQ :01/08/30 00:05 ID:HrH04.b6
いってきました。
>>385
read.cgi のスレに復活です(^^;
390音楽侍 ◆NtVkSITE :01/08/30 00:07 ID:Sij0XJg6
>>369
さんくす〜〜

次からは(次があればだけど(笑))、思いついたらなるべくはやくスレ分けないと、混乱してモチベーション下がるです。
391♯6411:01/08/30 00:08 ID:B5j.xDlI
>>385 実際のところ、たいていのSquidは
.cgi ? が出てくるURLをキャッシュしない
設定になってることがない、ようだ…うーむ。
392デフォルトの名無しさん:01/08/30 00:15 ID:xfLG9NB.
キャッシュを無効にするため、わざわざ index.html? なんてアクセスする奴も
居るんだから、Content-Length吐いたぐらいじゃだめでしょうね。
393音楽侍 ◆NtVkSITE :01/08/30 00:25 ID:Sij0XJg6
>>392
リフレッシュで飛ぶURL一緒なので、効くんじゃないんですか?
394♯6411:01/08/30 00:29 ID:B5j.xDlI
ついにやりました(藁

トップページのダイジェストと同じ機能のものを
表示するモジュール


…の土台、つくりました。
あとは表示系をごてごていじり回れば、
index2.htmlに変わるものになる、はず。

すでにcommitしてあるので、
怖いもの見たさに覗いてみてくだちい。
395392:01/08/30 00:31 ID:xfLG9NB.
ブラウザは効くでしょうけど、proxyに効くのかしら?

うーむ、squidのソースを展開してみたが、squid.confのサンプルが見つからないぞ。
396♯6411:01/08/30 00:33 ID:B5j.xDlI
>>394 動かすのに必要なもの

/tech/subject.txt
/tech/dat/[最新10記事].dat

す。あとは、
http://localhost/test/read.cgi/tech
じゃ。
397名無し娘。 ◆vP.bOZFQ :01/08/30 00:34 ID:HrH04.b6
read.cgi なこと。


前スレ分:http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=875&to=875&nofirst=true

Content-Length >>35-36 >>306 >>332 >>385-386 >>391-393 >>395
expire >>336
PATH_INFO >>264
ressplitter_split()
zz_GetEnv()
CUTRESLINK(imode)
COOKIE
dat,kako >>230
subback >>295
>>のリンク
zlib.h問題(解決?)
bzip >>271
deflate >>326
isbusy isimode nofirst >>41 >>101 >>167
LastMod(ls,st,to) >>127 >>134
mmap(lock) >>139
FORCE_304_TIMEの動的変動 >>297
NAME,MAIL欄の" " >>192
スレスト時FORM >>11
TopPage作成 >>394 >>396
r2chhtml.h >>78 >>93 >>114-115
r2chhtml.hいろいろ http://natto.2ch.net/test/read.cgi?bbs=hp&key=998774537
設定の外部化 FORCE_304_TIME LIMIT_PM LIMIT_AM CUTRESLINK(LIMIT_xMと別にする) >>49 >>53 >>55 >>85 >>90
その他 http://www.gedoh.org/aki/2ch/tiki/ にいろいろ
398♯6411:01/08/30 00:34 ID:B5j.xDlI
>>395 逆に言えば、
.cgi という名前を隠して(どうやって?)
?を使わずにパラメータを渡せば(どうやって?)
Squidごとき騙せる…はず。
399デフォルトの名無しさん:01/08/30 00:36 ID:3dKaZzhQ
r2chhtml.hいろいろは、最近はこの辺でしょうか。
http://natto.2ch.net/test/read.cgi?bbs=hp&key=998774537&st=923
400-:01/08/30 00:36 ID:Ck0sz4AU
板トップで使われてる pageview.cgi のソースを
夜勤さんか誰かが公開してくれたらな・・・
きっと無理だろうが
401名無し娘。 ◆vP.bOZFQ :01/08/30 00:38 ID:HrH04.b6
>>400
やはりむかしむかーしのなら、もっていたりします。
あっぷしますか?
402395:01/08/30 00:38 ID:xfLG9NB.
>>398
PATHINFO使えば、?は隠せます。
.cgiはhttp.conf触って、.x とかにしちゃえばOK。
403♯6411:01/08/30 00:43 ID:B5j.xDlI
>>402
PATH_INFO...使ってます。
?を使わずにパラメータを渡すのは、どうにかなります(w

httpd.conf...いじれないんじゃないかなあ。
.htaccessまでいじれるんだったらいいんだけど。
404-:01/08/30 00:43 ID:Ck0sz4AU
>401
page=1 のときって、つまり index2.html と同じですよね?
何か違うのかな・・・機能停止されてるから確認できないや
405名無し娘。 ◆vP.bOZFQ :01/08/30 00:46 ID:HrH04.b6
>>404
こんなんでましたけどー

#==================================================
# もしページが1ならトップに戻す
#==================================================
if($FORM{'PAGE'}==1){
$PATH .= "index2.html";
print "Location: $PATH \n\n";
}
406395:01/08/30 00:47 ID:xfLG9NB.
.htaccessはいじれるはず。
でも、AUTHのみ許可かも。
407-:01/08/30 00:51 ID:Ck0sz4AU
ニガワラ
408395:01/08/30 00:56 ID:xfLG9NB.
squidちょっと調べてみた。
>hierarchy_stoplist cgi-bin ?
>acl QUERY urlpath_regex cgi-bin \?
cgi関係はこれしかないから、?さえはずせば、普通のsquidはキャッシュしそう。
409♯6411:01/08/30 01:03 ID:VrJJ/gNY
>>408 いろんなサイトで
使用されているやつの
設定が(おそらく)
そんなふうになってるのが
問題なのですね…
410名無し:01/08/30 01:08 ID:qReivzgw
こんなの見つけた。

ftp://210.170.170.118/incoming/old_bbscgi/
411おや?:01/08/30 01:12 ID:FI3EZUgU
>>410
公開されていたんですねぇ…
412名無し娘。 ◆vP.bOZFQ :01/08/30 01:18 ID:HrH04.b6
>>410
あとremake.txtなんてのもありましたね。現行システムにあるかは知りませんが。
413名無し娘。 ◆vP.bOZFQ :01/08/30 01:19 ID:HrH04.b6
414395:01/08/30 01:31 ID:xfLG9NB.
>>409
設定ファイル中で強く推奨されてるので普通は変えないでしょう。

で、squid入れて試してみました。
Content-Lengthなくてもちゃんとキャッシュします。
?だけの問題ですね。
gzipしない時にContent-Length出すのは意味なさそう。
415♯6411:01/08/30 01:38 ID:WaZdXN2I
>>414 いま自宅に帰ってきた。
Expireを見てくれない(?)のは、
IE5.5も。
どこかのカキコで、「IE5からは、Expireしてない
オブジェクトは要求すら出さない」って
書いてあったんだけど…read.cgiには
すぐ要求が出されてしまう。
もちろんread.cgiがそくざに304を返すけどね。
416Sherry ◆RKMbxbuc :01/08/30 01:38 ID:RowGKKaA
>>414
わたしは,

>hierarchy_stoplist cgi-bin ? cgi
>acl QUERY urlpath_regex cgi-bin \? cgi

に書き換えてます.いつも...
最近だと,/cgi-bin/ 以外にCGIを置く人が多いので‥‥‥(^^;
417395:01/08/30 01:47 ID:xfLG9NB.
>>416
変えないってのは、削らないって意味で、追加する人がいても不思議じゃありません。

>>415
squid.confの最後にそれ関係のものが書いてあるみたい。
5.5SP1より前のはどうこうで、ie_refreshなんてのが追加されてる。
418名無し娘。 ◆vP.bOZFQ :01/08/30 02:22 ID:HrH04.b6
なんどもあれですが、CUTRESLINK は逆効果のように思います。
dat読み込み時 st=xxx&to=xxx&nofirst=true -> o=xxx 強制変換を実装して、
o=xxx を解釈できるように実装した方がよいかと。。。
PATH_INFO ならもっとスマートに実現できそうなので、可能でしたら
PATH_INFO ででも、お願いします。
419Sherry ◆RKMbxbuc :01/08/30 02:31 ID:RowGKKaA
PATH_INFOの記事番号指定の最適化の方も出来ませんか?

ttp://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=266&nofirst=true

ここらへんで話題になったものです.

href=/?st=xxx&to=xxx&nofirst=true を href=xxx に置き換えられれば
かなり違うと思うので‥‥‥.

% 他力本願で申し訳ないですが(^^;
420名無し娘。 ◆vP.bOZFQ :01/08/30 02:34 ID:HrH04.b6
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=264&to=264&nofirst=true
かな。ここでの最新情報は。考慮なさっていると思います。

ひろゆきたん御降臨
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998823114&ls=20
421名無し娘。 ◆vP.bOZFQ :01/08/30 02:50 ID:HrH04.b6
一方で。。。
http://yasai.2ch.net/test/read.cgi?bbs=venture&key=998735207&st=491&to=491&nofirst=true

ヽ(´ー`)ノ モ(豚)でも見てくるよ(笑
422名無し娘。 ◆vP.bOZFQ :01/08/30 02:51 ID:HrH04.b6
423名無し娘。 ◆vP.bOZFQ :01/08/30 02:59 ID:HrH04.b6
424♯6411:01/08/30 03:06 ID:WaZdXN2I
>>419 もう終わってます
425♯6411:01/08/30 03:22 ID:WaZdXN2I
>>397
>read.cgi なこと。

> Content-Length
本質的には関係ないという結論が出たナリ

> expire
サーバ側でcgiの設定変更ができた時点で
あらためて考え直すとするよ

> PATH_INFO
> subback
> TopPage作成(index2)
板ダイジェスト(index2相当)以外は
落ち着いた

> >>のリンク
path仕様ではカナーリ最適化される
ものと思われ。

> bzip
たぶん後回しになるでしょう…

> deflate
gzipのみ受け付けるNetscape系を考えると、
キャッシュ効率も鑑みて、当面サポート
しないことになるでしょう…

> LastMod(ls,st,to)
板ダイジェストをやっつけたら、
本格的にサポートします。
dat indexも一緒にね♪

> mmap(lock)
現在のmmap実装では、
PRIVATE(CoW)にしてあるので、
致命的な問題にはならないんでは
ないかなと楽観視したい、ところなんだけど、
これだけ大規模なサイトのこと、
どんな問題が起こるか、わかったもんじゃない。

> NAME,MAIL欄の" " >>192
手元の実装では、問題なくなってるように見える

> スレスト時FORM
未実装のようだ(だよね?)

> r2chhtml.h
chunk化は実装済み。
最終発言リロード猿対策も実装済み。
426名無し娘。 ◆vP.bOZFQ :01/08/30 03:26 ID:HrH04.b6
427仕様無しさん ◆NwLv.g/w :01/08/30 11:16 ID:tC2y3XA2
スレスト時FORM非表示と、ressplitter_split()の最適化(前スレ754/756)
実装しました。
が、防火壁のせいでCVS等使えないので、差分つけときます。

begin 664 read.diff.gz
M'XL("%2CC3L``W)E860N9&EF9@#=5FUOXD80_DQ^Q<!)P39+8QOGB*%4NEQ(
M#QV<3X9(;;G((F:!5<"V;%,E.>5#E!]Q?_=FUS8OB9-62>FIM1*\.SO,VS//
ML(JB0$A'XY\N1I>%P6P)[Y93J*F@UANZUC`,T%55VZM6JXF6NZFCJ0W#;&AF
MHJ-L/WP/FG9(-/TM"`%`H6W;ENUTK5^MLP%!P6T3/_[TV1AF\6+NT##T0XEZ
MR\7&WHE!O%U_3.7F7G%#?^+[L<,6$O-B>=O2#(.5W-DH!"5F\9P20!V8,X\*
M1;X):>1$P9S%J9X2$4A6P=I8Y"^H38/YR*6)FNM[40Q*%+J9]IAF7\S.XE!]
M)-$V`L0P+K>,<G,YJ4F/8I[2N(O[WNA*XJHK>2<Z7D;7NCO;%J/Z*9O3/KO9
MCGZ"0E3BJ&8(X;JZ6X3(_QVE58+_/%)YW*J9;XFAJ2MNX7.;OB^0JY?-9...
M(@KE_7(#`^=G;`+2@B[<12`%!$K[HT50(F#(T&J!*L/7U(304Z0`*ORLV()R
MLRQG9P44M\``;)_F4Z[?L(DWIA,8_/ZY[0S:=B?Q+\)1KXZT!APH`$KI[EL)
ME(/TVRCB?HN#&8NJO[!H0$.&,7&%W.COOMWU<J-W9X`ADW(67F[$O/^S*F;]
M_X(J5C2,)"EC[4>643K2S+K\PF**)+Y<F751T,=Y_*V"YK6IJ=>(J1\E;<HK
M+@0U+:LX)LCSL]M=Z]U)M_/I([>64:H[0A*TQ!*9).I!O3&;[%42G7C&?Y7Z
ML1\$=-Q2FUR><G6HJ^?K?3#L=_YH.\=GI^<B7/X_\4.0N>H#:%$_AYY4LL
M*I6L!'SWR4]C032U?%*:AQHQ#^MK4HHQ$=*YCY,NRTAN<FS@>!G'OM<`6YRF
MN-VN<T20UD,F#4L,#*X7TG@9>A@WG]%)70\-8M;U=2>_RG76=^_/!G:[+W#!
M>'!$>FYPS;EWS*9\P`W3P*K:.<$+@6Z("5D(AGS-N^.<]\T7M2S$HA]Q<HL&
M3%/0Q,EZSN.<#H21-W0>4>&5RV/F31W71^=<(=]_A./3GTB!C(YU57[&)0C[
M69G91`)LF/-B2X7]?<`L\2\1(2ON?[N?WE_<!W?#$LCR@YY+HG^$$]E6>P*V
MW"N363>)9AZ960\=**]\#H21PH=!KPNGEH5#))D^Z<&KK3]];4'[@CT<`Q;A
M/0`O")*\!<76+2']Y4]12PC9PM'0=^SV2<+$55]:UL=.NR"(7`@^A^@3@>_'
M8W\9$[#U]Q\<GK!S:MD]`C<WSD4D7I?7))WHRS"D7CQ@B]55R#0-@E=9(Z/0
M?[?RR44J2IH/7H0#B5:MFX\'9THQ4]HE-@_2YGN.E<FQJN^0)1*K]JR3MKQ3
MR-++\09?GNO^ORRGT^$A/R@J;-<S'?7/F^(%2(RE[-!5C;-#UW?(CG^]XEL\
2>:[\F\T./Q2+[T!Y=)6Q#P``
`
end
428デフォルトの名無しさん:01/08/30 11:21 ID:avybgQxQ
>>427
decodeできないYO(;´д`)
429仕様無しさん ◆NwLv.g/w :01/08/30 11:33 ID:zI.sv/Fk
1. textファイルにコピペ
2. 行頭に余分なスペースがあれば除去
3. ファイルを保存(ここではread.diff.uuとしておく)
4. uudecode read.diff.uu
5. gzip -d read.diff.gz
6. patch < read.diff
430デフォルトの名無しさん:01/08/30 11:35 ID:avybgQxQ
>>429
行末の空白全部消しても途中から化けたものが出てくる…
431428:01/08/30 11:37 ID:avybgQxQ
>>429
ML1で始まる行が2文字少ないみたい
432仕様無しさん ◆NwLv.g/w :01/08/30 11:38 ID:zI.sv/Fk
gzip -dまではうまく行きました?
# これがうまくいってたらファイルは壊れていない可能性が高いです。
433428:01/08/30 11:39 ID:avybgQxQ
>>432
gzip: read.diff.gz: invalid compressed data--crc error
434仕様無しさん ◆NwLv.g/w :01/08/30 11:43 ID:zI.sv/Fk
>431 全角にしてその行載せてみますね
ML1¥$=−Q2FUR><G6HJ^?K?3#L=_YH.¥=GI^<B7/X_¥4.0N&GTH#:%$_AYY4LL

#ブラウザとかちゅ〜しゃの違いとかなのかな???
435428:01/08/30 11:46 ID:avybgQxQ
>>434
">"が > になってた! (笑)
436428:01/08/30 11:47 ID:avybgQxQ
>>435
&GTが(;´д`)
437428:01/08/30 11:50 ID:avybgQxQ
>>427
つーこってcommitしました(makeのみ確認、動作は確認してない)
438仕様無しさん ◆NwLv.g/w :01/08/30 11:51 ID:zI.sv/Fk
>437 ありがとうございます。
# しかしuuencodeにこんな落とし穴があったとは...
439デフォルトの名無しさん:01/08/30 13:39 ID:VaKgQswY
隊長★さんの話のニュアンスは Big-Server以外のところでホスティングできる
ような方向で動いてるということかな? となると mod_* の組み込みなんかの
自由度も高くなる可能性もあるということか......
440♯6411:01/08/30 14:09 ID:B5j.xDlI
スマソ
昨夜分離したモジュール
index.[ch]
は、命名ミスの予感。
晩酌しながらの作業はアプナイアプナイ

誰か、あのモジュールのもっといい
命名してくれないかしら? 思い浮かばん(鬱
441仕様無しさん ◆NwLv.g/w :01/08/30 16:48 ID:nL9JLCPA
これってread.cgiのことなのかな...

http://teri.2ch.net/test/read.cgi?bbs=saku&key=996761078&st=408&to=408&nofirst=true

408 名前:復帰マシーン ★ 投稿日:01/08/30 16:18 ID:???
 えーと各削除人氏連絡です
 キャッシュの(2ちゃんねる側)の都合により削除したはず
 のレスやスレッドが見えてしまうという現象がおこることが
 判明しました、依頼人から抗議などありましたらその件を説明
 してあげてください、ひろゆきさんには連絡済です
442デフォルトの名無しさん:01/08/30 16:53 ID:.6UDlrR.
>>441 誰かが言っていた"Cache-Control"ヘッダを入れるべきか......
443名無し娘。 ◆vP.bOZFQ :01/08/30 16:55 ID:0pm1KlDE
今から現状を追います。。。
>>441
あぼーんでもdatのmtimeは変化するので、304返すってことはないですよね。
とすると、FORCE_304_TIMEかな?
444♯6411:01/08/30 17:50 ID:RSyGf5Ac
path仕様がほぼ完成したことを
関係者各位にお知らせします。
commitしてありますので、ビクビークしながらご賞味ください。
最後にちょっと仕様変更

/test/read.cgi/tech/ 板ダイジェスト(index2.html相当)
/test/read.cgi/tech/- 全スレ一覧(subback.html相当)

今のところ、リンク遷移において、
現仕様と新仕様は互いに干渉しないようになっています。

あと、板ダイジェスト、スレ一覧のhtmlを検証、
打ち直してくださる方、ご協力を。
445デフォルトの名無しさん:01/08/30 19:06 ID:4DArGShY
SETTING_R.TXTの読みこみで、ほぼ全てパラメータにできるようにしてみました。
不要なものまでパラメータにしているかもしれません。
read()版は動作確認済み。mmap()版は未確認。
その他、細かいところ2、3の修正。

最新版>>444に変更を加えたものを
ftp://210.170.170.118/incoming/2ch-read-current/read14.2.8.c
ftp://210.170.170.118/incoming/2ch-read-current/read2ch14.2.8.h
におきました。
どなたかmergeをお願いします。
446デフォルトの名無しさん:01/08/30 19:33 ID:C3beEwl.
修正もう1つ忘れてた。
splitting_copy()の中の
  || rawmode);
になってるところを、
  || rawmode || is_imode());
にすると、imodeの時にリンクが出なくなります(-DCUTRESLINK時)
447名無し娘。 ◆vP.bOZFQ :01/08/30 19:33 ID:QPVBUxP6
実装・検討待ちの案一覧(前スレはほとんど見なくて良くなりました)

PATH_INFO(完成) >>444
USE_SETTING_FILE(完成 merge待ち) >>445
imodeは常にCUTRESLINKする
>>xxx-yyyにnofirstがつかない問題 >>167
ls=1で全スレ表示問題 >>413
1-100,101-200,...のUI >>78 >>93
スレスト時FORM >>11
CUTRESLINK(imode) http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=765&to=765&nofirst=true
CUTRESLINK問題 >>418
Cache-Control >>441-442
FORCE_304_TIMEの動的変動 >>297
dat,kako >>230 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=805&to=809 ツール作者さんに対応お願い
index2作成 >>394 >>396
LastMod(ls,st,to) >>127 >>134
mmap(lock) >>139 >>425
expire >>336 >>425
deflate >>326 >>425
bzip >>271 >>425 (前スレ 819 821-822 846 865 873)
r2chhtml.hいろいろ http://natto.2ch.net/test/read.cgi?bbs=hp&key=998774537&ls=20
その他 http://www.gedoh.org/aki/2ch/tiki/ にいろいろ
448ヒロユキ@ギコナビ:01/08/30 19:37 ID:AEjMWcrI
ギコナビという2ちゃんねる閲覧ソフトを作成しているものです。
read.cgiがdatを吐く仕様(パラメタなど)は、どこのスレにあるのでしょうか。
449名無し娘。 ◆vP.bOZFQ :01/08/30 19:37 ID:QPVBUxP6
>>446
お疲れさまです。
-DCUTRESLINK と連動せずに、imode 時は CUTRESLINK するようにしていただけると
ありがたいです。
450名無し娘。 ◆vP.bOZFQ :01/08/30 19:42 ID:QPVBUxP6
>>448
どうも、ありがとうございます。

/* raw=xxx.yyyを有効にする。 xxx=最終レス番号, yyy=そのときのサイズ。
* 一行目はステータス:
* [+OK] の場合は差分のみを送信する。
* [-INCR] (Incorrect)の場合はすべてのデータを送信する。
* [-ERR (テキスト)]の場合はなんかエラーが起きた。
*/
というふうになっています。

http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&raw
で、dat全体を吐きます。

http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&raw=230.45584
だと、レス番号230番目までのdatのサイズが45584だったときに、231番目から
送信し、サイズが異なるときはあぼーんがどこかにあるとみなして、レス番号1
からすべて送信します。
451名無し娘。 ◆vP.bOZFQ :01/08/30 19:44 ID:QPVBUxP6
>>449
あれ、今のread.cgiでは、まだ有効になっていないかもしれません。。。
452♯6411:01/08/30 19:49 ID:RSyGf5Ac
>>445 マージしてるんだけど、
なんか手元で一部機能が動かなく
なってしまったので、格闘ちう。
453名無し娘。 ◆vP.bOZFQ :01/08/30 20:06 ID:QPVBUxP6
http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html
への投稿からコピペ。

BadAccess()ってなんでif文で切っているの?
コンパイルしたときにダイナミックステップ数が多くなるので
case文にしたほうが高速化が図れますよ。
転送数削減には関係なくてスマソ
454♯6411:01/08/30 20:12 ID:RSyGf5Ac
>>445
>>452
えーと。dat_read()中の
getFileSize()を外すと、
ダイジェスト作成の2周目以降が氏ぬので
復活させときました。

ただいまマージ完了
455デフォルトの名無しさん:01/08/30 20:14 ID:.6UDlrR.
>>453 NEWBAの方はforループになってるからcase文にできるのかどうか......
っていうか そもそも文字列に対してswitch-caseって使えたっけ?

あえて言えば User-Agentの一番最初に来る文字列だったら
strstr()よりstrncmp()の方が早くできるかな ってぐらいか
456445:01/08/30 20:46 ID:IyBl8mjA
>454
ありがとうございます。&ご迷惑をおかけしました<エンバグ

>449
-DCUTRESLINKしないと通らない部分で、カットしてるので・・・。
でも、read2ch.h内の
#define CUTRESLINK
の下にdefineしてあるLINKTAGCUTを0にするか、
SETTING_R.TXTに
LINKTAGCUT=0
の行があれば、カットしないはずです。

あと、結構繰り返されるループなので、
4文字のmemcmpやmemcpyはlong値にすると速いと思います。それも、
if (*(long *)p == *(long *)"<br>") ではなく、
if (*(long *)p == '>rb<')
が一番速いような。
可読性と移植性を一気に失いますが。
457デフォルトの名無しさん:01/08/30 21:10 ID:N/.0WZiw
ドルバッキーさん来てるよ?
458♯6411:01/08/30 21:13 ID:RSyGf5Ac
とりあえず、最新のバージョンが
動作確認できる場所を確保した。
http://www.psychedance.com/test/read.cgi/tech/
459デフォルトの名無しさん:01/08/30 21:19 ID:Np0La3X.
>>450
>http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&raw=230.45584
>だと、レス番号230番目までのdatのサイズが45584だったときに、231番目から
>送信し、サイズが異なるときはあぼーんがどこかにあるとみなして、レス番号1
>からすべて送信します。
何処かに「あぼーん」がある場合、レス番号とdatのサイズが不一致であるという
事実(エラーコード?)と、「あぼーん」されたレス番号を返してもらえればクライア
ント側でログを操作できるんじゃないかな?
これならレス番号1から全て送信し直す必要がなくなると思うんだけど、どうかな?
460デフォルトの名無しさん:01/08/30 21:20 ID:N/.0WZiw
>459
ログ形式に関してはこちらで話が進んでいます。

bbs.cgi 改良案スレッド
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998921988
461デフォルトの名無しさん:01/08/30 21:21 ID:.6UDlrR.
>>458 ネスケ4.72で
----------------------------------------------------------------------
JavaScript Error: http://www.psychedance.com/test/read.cgi/tech/, line 34:

N is not defined.
JavaScript Error: http://www.psychedance.com/test/read.cgi/tech/, line 36:

N is not defined.
   :
JavaScript Error: http://www.psychedance.com/test/read.cgi/tech/, line 52:

N is not defined.

Too many errors. No further JavaScript errors will be displayed for this page.
----------------------------------------------------------------------
って出てきましたけど......

あとTODO読みました munmap()入れてしまったのオレです スマソ......
462音楽侍 ◆NtVkSITE :01/08/30 21:22 ID:KsueBNwE
DolBackyさん、来てますよー>index.cgiスレッド
プロセス起動数が半端じゃなくなりそうだっておっしゃってます。
463デフォルトの名無しさん:01/08/30 21:23 ID:N/.0WZiw
また勘違いした。
謝罪しる>自分

>459
専用プロトコルがほしいね。

ABORN 99899784 2CH/0.1
12
23
45
464デフォルトの名無しさん:01/08/30 21:25 ID:N/.0WZiw
>458
IE6 でも同様。ヘッダ内で宣言していたJavaScriptを消したせいかと。
HEAD が閉じタグだけあるのは何故?
465デフォルトの名無しさん:01/08/30 21:26 ID:4UkPDjVY
IEだと、特に問題なく動いている感じ。
466デフォルトの名無しさん:01/08/30 21:29 ID:N/.0WZiw
read.cgi は 1- が 1-50 じゃなくて 1 だけになってます。
467♯6411:01/08/30 21:30 ID:RSyGf5Ac
>>464
JavaScriptは、「あ、えら〜出てるなあ」と。
そのうち治るかな?
HEAD漏れは、漏れの掻き漏れ。スマソ
468デフォルトの名無しさん:01/08/30 21:31 ID:hlW8zoEo
gzdopenで、dup(1)は要りません。gzio.c内で1を特別扱いしてます。
atexitfunc() から呼ばれるhtml_errorでexit()呼ばれるのはまずいっす。
あっ、どなたか直してくれてますね。

-/* dup()しないとgzclose()でstdoutを閉じてしまうので */
-pStdout = gzdopen(dup(1), "wb9");
+/* 引数1はzlib/gzio.cで特別扱い 仮にstdoutを設定し、closeしない */
+pStdout = gzdopen(1,"wb9");

gzipped_fwriteをこんな風にすると汎用性と混乱度があがっていいかも。

/****************************************************************/
/* receive gzipped data from zlib/gzio.c */
/****************************************************************/
int gzipped_fwrite(char *buf, int n, int m, FILE *fp)
{
  int l = n*m;

  if ( fp != stdout ) return fwrite(buf,n,m,fp);
  if ( outlen+l > outalloc ) {
469デフォルトの名無しさん:01/08/30 21:35 ID:hlW8zoEo
atexitfunc()に
/* あちこちに散らばってたのでまとめてみた */
とかあるんですが、gzip_flag!=0のときしかatexitfunc()は設定されてません。
470♯6411:01/08/30 21:36 ID:RSyGf5Ac
>>466 夕方行われた nofirst 対策の
副作用と思われ。
471音楽侍 ◆NtVkSITE :01/08/30 21:42 ID:KsueBNwE
index2.cgi開発者各位は、

index2.html など転送量削減案
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=999097075


までお越しくださいませ。
DolBackyさんが導入検討中です〜
472名無し娘。 ◆vP.bOZFQ :01/08/30 21:47 ID:QPVBUxP6
すんません。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=999097075&st=21&to=21&nofirst=true
の通り、read.cgiが最上行に出力する「掲示板に戻る」が、現状では .html に
なっていますが、これを、gzip 対応のブラウザに対しては .htm にするよう、
お願いいたします。
gzip_flag が 1 か 2 のときに、R2CH_HTML_HEADER の引数を変えてやれば
いいのだと思います。
473|  - -):01/08/30 21:57 ID:PugAduiM
>>472
done(多分)
474デフォルトの名無しさん:01/08/30 21:57 ID:Np0La3X.
>463
うん、HTTP自体を捨てられれば色々と楽なんだけど・・・・・
ってのは置いといて、>460見てきました、俺が考えてるのより遥かに高度だった。
ただログ形式から弄るとbbs.cgiを大幅に書き直す必要があるんで、時間が掛かりそう。

今すぐ実装しようと思うとread.cgiの対応だけでなんとかしたいんだけど、「あぼーん」
されるとdat上はどうなるんでしょう?
もし「あぼーん」をdat上で判別可能なら、read.cgiが単独で「あぼーん」されたレス番号
を検索してクライアントに送り返す事ができるんですが・・・・・
どっちみちレス番号1から全部クライアントに送信するのなら、CPU不可自体はそれほ
ど変化しないような気がするんですけど、どうでしょう?
475♯6411:01/08/30 21:59 ID:RSyGf5Ac
>>474 read.cgi単体での
あぼーん検出は
ただいま実装検討中す。
476|  - -):01/08/30 22:09 ID:PugAduiM
>>474
あぼーんはread.cgiで検出できるとして、透明あぼーんはどうするの...?
477デフォルトの名無しさん:01/08/30 22:14 ID:QRQ7bTkg
>>476
 今は全部のデータを読んで頭から改行の数を数えているから
 透明あぽーんの方がどっちかいうと処理し易いんじゃない
478デフォルトの名無しさん:01/08/30 22:17 ID:hlW8zoEo
>>468 マージしてちょ。
479デフォルトの名無しさん:01/08/30 22:20 ID:Np0La3X.
>475
了解です、既に検討中だったんですね、ちと恥ずかしい(´д`;)
read.cの1027行にあぼーん検索関数を割り込ませて、あぼーんレス
番号を表示させればいいのかな?

>476
透明あぼーんってクライアント側で実装してるんだと思ってたんだけど
read.cgiと関係あるの?
何か基本的なところで、俺は間違ってるのかも?(´д`;)

ふと気付いたんですが、cgi経由でdatを読むのなら、サイズとレス番号
が不一致でも問題ないような・・・・・
480♯6411:01/08/30 22:21 ID:RSyGf5Ac
>>479 透明あぼーんは、
.datからエントリがごっそり消え失せるものと
認識してます。
481名無し娘。 ◆vP.bOZFQ :01/08/30 22:25 ID:QPVBUxP6
>>479-480
ええ、そのはずです>透明

専用ブラウザはdatの差分を採ります。
しかし、すでに専用ブラウザが取得済の部分であぼーんがおこった場合は、
差分だけ採ってもあぼーんがわからずじまいになりますし、透明あぼーん
だともっと悲しいことになるかも。
それを回避するために、サイズとレス番号。
482|  - -):01/08/30 22:25 ID:PugAduiM
>>468
done.

>>469
とりあえずどんな場合でもatexit(atexitfunc());されるようにしてみました。

>>479
多分透明あぼーんはそのデータ1行が丸ごと削除されるものと思われ。
483デフォルトの名無しさん:01/08/30 22:29 ID:hlW8zoEo
>>482
さんくす
484デフォルトの名無しさん:01/08/30 22:35 ID:hlW8zoEo
>>482
1537行目のとこ、
fflush(stdout); close(1); っているのかしら?
waitpid()は if (gzip_flag) で括るべき。

if (gzip_flag) waitpid(pid, NULL, 0);
485デフォルトの名無しさん:01/08/30 22:38 ID:7PExlRw6
後始末無視さんせー。

readSettingFile()の最初を
  ・・・
  char *endp;
  struct stat st;
#ifdef USE_MMAP
  void *mmptr;
  fstat(fd, &st);
  mmptr = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
#else
  char mmptr[8192];
  st.st_size = read(fd, mmptr, sizeof(mmptr));
#endif
にして、
最後の #ifdef-#endif は、ばっさりカットしましょ。

それと、
zz_GetEnv()の
  localtime_r(&t_now, &tm_now);
を勝手にlocaltime()にしちゃってました。ごめんなさい(家で動かないんで)。
486さくーしゃ@マカー用。:01/08/30 22:39 ID:i89NKQig
現在,RAWOUT って有効になってますか?

>>450 のURLでためしてみたんですけど,text/html でかえってきてるみたいなんです。。。?
487デフォルトの名無しさん:01/08/30 22:44 ID:Np0La3X.
>480-483
かちゅーしゃの透明あぼーんとゴッチャになってました。ご教授感謝です。
エントリごと消え去るんですね、ってことはスレ番号もズレるのか・・・・
read.cgi単独での検出は難しそう(汗

>481
問題を理解できました。
透明あぼーんが挟まると発言を取り漏らすってことですね。
488♯6411:01/08/30 22:48 ID:RSyGf5Ac
>>458 のサンプル、見てくれをいじった。
さくっとやったので、ところどころおかしい
(それどころか根本的におかしい)けど、
いい感じではないかな?

>>486
rawoutって、運用で動いてなかったんじゃなかったっけ。
http://www.psychedance.com/test/read.cgi/tech/
こっちは最新版なので、よかったら検証してもらえます?
489|  - -):01/08/30 22:55 ID:PugAduiM
>>484
gzipが終了するためには入力ストリームを閉じないといけません。
gzip_flagで囲むようにはしました。

>>485
done.

>>450
?raw だとだめです。
?raw=0.0 ならうまくいきます。
(仕様です)
490|  - -):01/08/30 22:57 ID:PugAduiM
事故レス >>489
入力ストリーム → gzipの入力ストリーム
つまりread.cgi側の出力ストリームです
491♯6411:01/08/30 22:57 ID:RSyGf5Ac
>>466
>>470
どうやらエンバグで、
現行形式でも仕様通りに動かないもよう。
492デフォルトの名無しさん:01/08/30 23:03 ID:hlW8zoEo
>>490 了解。確かにcloseせないけませんね。
493test:01/08/30 23:19 ID:HEIfwNwk
test
494♯6411:01/08/30 23:35 ID:RSyGf5Ac
>>491 修正してみました > |  - -)
495|  - -):01/08/30 23:42 ID:PugAduiM
>>494
ls=1のときはnofirst=true強制ですね。
それでいいと思います。
496デフォルトの名無しさん:01/08/30 23:47 ID:N/.0WZiw
to>st な場合の表示はどうするんですか?

こういう場合。
http://www.psychedance.com/test/read.cgi/tech/998921988/20-10
497♯6411:01/08/30 23:48 ID:RSyGf5Ac
>>496 元の仕様でもよろしくなかったような
気がするんですが…救済した方がいいかしら?
498デフォルトの名無しさん:01/08/31 00:07 ID:pEodOMrQ
>497
言っておきながらなんですが、
今の仕様が一番サーバに優しそうなのでそのままで良いかも。

色々試すと面白い…
http://www.psychedance.com/test/read.cgi/tech/998921988/0-0
http://www.psychedance.com/test/read.cgi/tech/998921988/0-1
http://www.psychedance.com/test/read.cgi/tech/998921988/-5-1
499デフォルトの名無しさん:01/08/31 00:08 ID:pEodOMrQ
日付変わったせいで ID も変わってるけど 496=498。
500♯6411:01/08/31 00:10 ID:WLvR5P8o
>>498 いろいろ試されると、
解析アルゴリズムがバレちゃうね。

とはいってもソース公開されてるし(w
501デフォルトの名無しさん:01/08/31 00:15 ID:PS9zdCQg
今の状況じゃ、転送量にやさしければ、なんでもいいでしょ。
502♯6411:01/08/31 00:46 ID:WLvR5P8o
新仕様
>>数字 のレスリンクの、リンクさせ方を変更。
chunk単位で取りにいくようになります。
キャッシュ効率の向上が期待…できるといいな。
503名無しさん:01/08/31 01:44 ID:1YfH/xHU
>>489
> >>450
> ?raw だとだめです。
> ?raw=0.0 ならうまくいきます。

試してみたんですがうまくいきませんです…
504デフォルトの名無しさん:01/08/31 01:47 ID:MkV83E8o
URLの自動リンクを無効にするというのは既出ですか?
505デフォルトの名無しさん:01/08/31 01:54 ID:HfubHdvY
read.cgiが吐き出すデータの先頭2kbがスペースというのは既出ですか?
506デフォルトの名無しさん:01/08/31 01:56 ID:6a8y9j3k
>>505
gzip転送の定説です。
つーかIE4が悪いのか IE5以上でも起きるの?
507|  - -):01/08/31 01:58 ID:W1MB8EFM
>>503
えーっと、現在のバージョン(5.10)には入っていません。
http://www.psychedance.com/test/read.cgi/tech/998921988/?raw=0.0
で試してみてください。
508♯6411:01/08/31 01:59 ID:DT2vnGqI
>>504 がいしゅつなんだけど、結論は
どうなったか忘れた。条件に応じて
削る(というよりはリンクしない)ことは、
やろうとおもえばすぐできるけど。

>>505 稼働中のバージョンではやむを得ず
そうなってる。実際のところ、転送量は
10数バイトしか増えてない。
最新バージョンではすでにスペースを吐かなく
なっている。
509名無し娘。 ◆vP.bOZFQ :01/08/31 02:00 ID:s8ksSf.2
>>489
ぺこぺこ
>>506
うちのIE5だとだいじょうぶ
>>507
うまくいったです
510♯6411:01/08/31 02:03 ID:DT2vnGqI
>>506 IE5.5でも起きる。
バグなのか正しい仕様なのかつかみ切れていないけど、
Transfer-Encoding: chunked
Content-Encoding: gzip
Content-Length: ナシ
のときに、展開したストリームの頭2048バイトを
きっかり無視する…
511♯6411:01/08/31 02:04 ID:DT2vnGqI
>>509 う、漏れの手元で見たヘッダ欠けは
幻だったのか…鬱だ
512デフォルトの名無しさん:01/08/31 02:15 ID:PS9zdCQg
index2.cgiがあったら、掲示板に戻るをindex2.cgiを呼ぶようにする。

html_head()で、

char fname[1024];

sprintf(fname, "../%.256s/index2.cgi", zz_bs);
if ( access(fname,S_IXUSR) == -1 )
 pPrintf(pStdout,
  R2CH_HTML_HEADER_1("%s", "/%s/index2.htm%s"),
  title, zz_bs, gzip_flag ? "" : "l");
else
 pPrintf(pStdout,
  R2CH_HTML_HEADER_1("%s", "/%s/index2.cgi"),
  title, zz_bs);

あと、1758行目 dat_out(); だけど dat_out(0); じゃない?
513506:01/08/31 02:16 ID:6a8y9j3k
>>510
mod_gzipはどうやってるのかのう。
ちょっと調べてみよう。
514♯6411:01/08/31 02:20 ID:DT2vnGqI
>>513 T-E: chunkedを吐かない、のが大きな違いのようだ
515VC++まだ箱のなか厨房(w:01/08/31 02:26 ID:OWdgxIS.
ちょこっと書いておきますと

 2ちゃん専用ツール側での削除は「あぼ〜ん」で
 2ちゃんねる上での削除は「あぼーん」です。

この2つを使い分けるといいかもしれません、、です
516名無し娘。 ◆vP.bOZFQ :01/08/31 02:29 ID:s8ksSf.2
>>509-511 M$ですから、夢も幻もいっぱいあるでしょう(^^;
>>514 ソース読んだ限りでは、特別なことはそれしかやっていないようで。
>>515 知らなかった。。。
517506:01/08/31 02:31 ID:6a8y9j3k
>>514
mod_gzip.cみました。
そのようです。
失礼しますた。
518デフォルトの名無しさん:01/08/31 02:40 ID:PS9zdCQg
>>511
幻じゃないかも。
動的生成gifをgzipで送ってたら、表示できないWIN2000上のIE5とIE5.5が
あった。
最初は表示されていたが、なにかの拍子で駄目になり、IE5→IE5.5で直らず
OSインストールしなおして直ったが、また駄目になったとか聞いた。
519デフォルトの名無しさん:01/08/31 02:52 ID:BJK6ay72
ftp://210.170.170.118/incoming/bmem/bmem.c
っていうのでちょっと実験してみたんだけど(IA Solaris8)

bmem@test:~/tmp[479]% time bmem mmap
0.35u 1.78s 0:02.10 101.4%
bmem@test:~/tmp[480]% time bmem mmap.pri
0.37u 1.81s 0:02.15 101.3%
bmem@test:~/tmp[481]% time bmem mmap.pri.wri
0.52u 5.73s 0:06.21 100.6%
bmem@test:~/tmp[482]% time bmem read
0.23u 3.80s 0:03.99 101.0%
bmem@test:~/tmp[483]% time bmem fread
3.20u 4.09s 0:07.26 100.4%

確か.datをmmap()で読む時はMAP_PRIVATEにして BigBufferに書き込み
してたよね? これだと上記の"mmap.pri.wri"のケースに該当するんだけど
......どうしましょ? プラットフォームによっては違う結果になる?
520|  - -):01/08/31 03:00 ID:W1MB8EFM
bash-2.03$ uname -sr
Linux 2.4.9
bash-2.03$ for i in mmap mmap.pri mmap.pri.wri read fread ; do echo -n $i; time
./a.out $i; echo; done
mmap
real 0m1.272s
user 0m0.230s
sys 0m1.020s

mmap.pri
real 0m1.237s
user 0m0.220s
sys 0m1.020s

mmap.pri.wri
real 0m2.454s
user 0m0.250s
sys 0m1.960s

read
real 0m6.346s
user 0m0.340s
sys 0m6.000s

fread
real 0m10.448s
user 0m1.950s
sys 0m8.490s
521|  - -):01/08/31 03:03 ID:W1MB8EFM
...というわけでたぶんプラットフォーム依存かと。
522♯6411:01/08/31 03:05 ID:DT2vnGqI
>>519 検証せずにしゃべってるので突っ込み大歓迎♪

MAP_PRIVATEのときは、commitも
含むんだとおもう。なので mmap.pri の結果は順当かと。
で、そこに書き殴ったときは、カーネル内部で
・ページフォルト
・ページのコピー
がページ境界をまたぐたびに発生するんで、
オーバーヘッドはまぬがれない。
以上はイパーン論。

今回のケースでは、以下の前提があると思われ。
・ターゲットファイルはページキャッシュにある
 ことが多いと期待される。
・実際書き殴ってるのは、ケツの1ページだけ。
なので、read()でバッファに読み込むより
いくぶんか効率的なのでは…と思ったら、
dat_read()以外の部分でBigBuffer書き殴って
たりしないっけ? あれ? あれれ? あれれのれ?

書かないという前提があれば、readonly, sharedで
いいんだよねー。

レポートさんくすです。
ちなみにターゲットはLinux.
523デフォルトの名無しさん:01/08/31 03:07 ID:PS9zdCQg
無意味だけど一応 FreeBSD4.2

time ./bmem mmap
0.148u 2.207s 0:02.35 99.5% 10+191k 0+0io 0pf+0w
time ./bmem mmap.pri
0.257u 1.979s 0:02.23 99.5% 10+191k 0+0io 0pf+0w
time ./bmem mmap.pri.wri
0.351u 3.841s 0:04.29 97.6% 10+192k 0+0io 0pf+0w
time ./bmem read
0.357u 2.525s 0:02.90 98.9% 12+210k 0+0io 0pf+0w
time ./bmem fread
1.531u 4.327s 0:05.91 98.9% 10+215k 0+0io 0pf+0w
524♯6411:01/08/31 03:07 ID:DT2vnGqI
>>520 早速レポートいただけるとはさすが。
参考になるす。tnx.
525デフォルトの名無しさん:01/08/31 03:11 ID:PS9zdCQg
そういえば、ターゲットのカーネルのバージョンはいくつかな。
サーバー導入時期で違ってたりして。
526デフォルトの名無しさん:01/08/31 03:17 ID:0V6W10r6
>>525
ttp://www.maido3.com/server/usagi/news.html
には Linux2.2.19 Slackware って書かれてますね
527506:01/08/31 03:21 ID:6a8y9j3k
>>518 う gifを生成しとるので夢の話という事ですよね。

content encoding gzip RFCひっくり返して見たが
やはりMSのヒトリヨガリの仕様のようだちなみにMSDNにも
ロクな事は乗ってなかった

糞MSのトップページみたらMSIE6が出てて鬱になった。
528518:01/08/31 03:28 ID:PS9zdCQg
いえ、無圧縮GIFをgzip通して送出してたら、表示できないIE5があったんです。
529デフォルトの名無しさん:01/08/31 03:31 ID:pEodOMrQ
ところで、2048 バイト欠ける理由は分かったの?
530506:01/08/31 03:36 ID:6a8y9j3k

>>529
2048欠けるのはMSIEの単純なバグ。
531デフォルトの名無しさん:01/08/31 03:39 ID:pEodOMrQ
もしそうなら IE6 でも直ってないのだけれど。やる気ないな。
どこかにこの件に関するバグレポートないのか。
532デフォルトの名無しさん:01/08/31 03:42 ID:PS9zdCQg
>>518 のような例があるので、単純なバグじゃないのかも。
533506:01/08/31 03:54 ID:6a8y9j3k
他にも Windows2000 とかでも
accept encoding "gzip" が 「無い」 MSIEがあるようです。
OSごと入れなおすと直ったらしい 藁

>>531 MSあさりました RFC詠んだ mod_gzip.c読んだ 吐き気がする程に。結論は無かった
けどgzipで2048の空白なんざ数バイトになるので、あまり問題に
しないほうがいい。
なので 消防の自分は寝るよ。
534デフォルトの名無しさん:01/08/31 03:58 ID:PS9zdCQg
>>533
OS入れなおさないと直らないってところが(藁
IE再インストやverUPでなぜか直んないんだよね〜。
535デフォルトの名無しさん:01/08/31 03:59 ID:pEodOMrQ
>533
お疲れ様です…
自分も google しまくったけど手かがりなし。
原因が解明できないのは精神衛生的に良くないが、時間の無駄みたいだ。
536デフォルトの名無しさん:01/08/31 04:03 ID:PS9zdCQg
537音楽侍 ◆NtVkSITE :01/08/31 04:12 ID:Ha76ETsk
いま、どこかにmake一発で動くread.cgiって保存されていますでしょうか?
公開版は一ヶ所別に置くとか、gzipになってるとか。。。
538名無し娘。 ◆vP.bOZFQ :01/08/31 04:16 ID:s8ksSf.2
539音楽侍 ◆NtVkSITE :01/08/31 04:24 ID:Ha76ETsk
>>538
やってみます〜
540デフォルトの名無しさん:01/08/31 04:29 ID:PS9zdCQg
Makefileに追加して、一括ファイル作りましょうよ。
http://www.gedoh.org/aki/2ch/current/bbs/
でcvs更新後に実行してくれるとうれしいな。

最低限必要なのは、下記

dist:
 tar cf - *.[ch] Makefile zlib/*.[ch] zlib/configure zlib/Makefile.in | gzip -9 > read.tgz
541音楽侍 ◆NtVkSITE :01/08/31 04:40 ID:Ha76ETsk
>>538
出来ました〜ありがとです。

>>540
ビルドごとにアーカイブして隔離していただいた方が安全です〜
542デフォルトの名無しさん:01/08/31 04:44 ID:Rl8iN43I
>>541
そのへんは cvs の tag に活躍させてもいいのでは?
543音楽侍 ◆NtVkSITE :01/08/31 04:59 ID:Ha76ETsk
>>542
私はコーディングには参加しない(動作確認とチェックだけ)ですので、CVSだと状況を追い切れません。
スレを追っての現状認識では、どれがカレントで、どれが評価版で、どれが最新か、という判断するのに時間がかかりすぎますです・・・
544デフォルトの名無しさん:01/08/31 05:09 ID:Rl8iN43I
>>543
だからこそ cvs の tag や branch を利用してみてはってことなのですが…。
545♯6411:01/08/31 05:11 ID:DT2vnGqI
>>543
ブランチ切ってないので、
最新版 == current と捉えてくだちい。
機能評価などは、ヘッダなどでcondition outしてから
cvsのcommit logに書く、というのが一般的。

なので、何が行われたかは、cvs logで見るべし。
(どこかにcvswebのURL書いてあるでしょ?)
546デフォルトの名無しさん:01/08/31 05:11 ID:6a8y9j3k
#6411はもう寝たのかな。
547デフォルトの名無しさん:01/08/31 05:45 ID:PS9zdCQg
掲示板に戻るはindex2.cgiがあったら呼ぶようにしました。
MakefileにSRCSとdistターゲットを加えました。
548aki:01/08/31 07:14 ID:N9m3H/y.
>>547
gedoh.org のミラーで cvs up したタイミングで
make dist するように仕掛けてみました。

でもって、tag とか branch は自由にきっちゃってください。
夜勤さんや$さんが取り込んだ版にtag切っておくといいかも。
549aki:01/08/31 07:17 ID:N9m3H/y.
でもって、レポジトリ内容はここでみれます。
http://2ch.uryusoft.net
550aborn ◆OonrVZq6 :01/08/31 07:32 ID:6m29/Im2
遅いかもしれないが…
>>533-535
インターネットオプションの詳細設定で「(プロキシ接続で)HTTP 1.1を使用する」にチェックを入れないと、
Accept-Encoding に gzip は出てきません。それのことでは。
551デフォルトの名無しさん:01/08/31 07:38 ID:PS9zdCQg
distのやり方間違ってて、毎回read.tgz作ってました。
直しました。
552デフォルトの名無しさん:01/08/31 07:57 ID:PS9zdCQg
あれ?まだ、毎回作ってる。
どおして〜?
553デフォルトの名無しさん:01/08/31 16:47 ID:vhMKUI7c
ハックですか?

>トップ見ろよ
http://www.2ch.net/
554デフォルトの名無しさん:01/08/31 17:02 ID:TsVa1PVU
ネタでしょう。
本気で売るなら、ネットオークションなんかには出品しませんよ。
荒らされるの必至。つか、もう荒らされてるし(w
555名無し娘。 ◆vP.bOZFQ :01/08/31 18:10 ID:0C9lj0zQ
556デフォルトの名無しさん:01/08/31 19:20 ID:BJK6ay72
結局オークションはひろゆきのジサクジエンデシタ
でもこういうことされたから bzip2実装してやろうと思ってきた(w
557デフォルトの名無しさん:01/08/31 21:31 ID:gWobhVmY
なんかcvs重いな
558♯6411:01/08/31 21:36 ID:WLvR5P8o
アタック受けて氏んだかと思った(w
559デフォルトの名無しさん:01/08/31 22:21 ID:xu.zymnM
どこまでがネタなのかわからんな…。

そんな状況で発言するのもなんか馬鹿馬鹿しいのだが…
ページ最下部に、リロード用のリンクつくるってのはどうだろう。
st=(最新の番号-10)とかそんな感じので。
ls=100とかのままリロードしてる人間が結構いると思うので、
これって転送量結構減らせるような気がするんだけど。

って、これ、スレ違いかな?
ガイシュツだったらスマソ。
560|  - -):01/08/31 22:26 ID:W1MB8EFM
>>559
-DRELOADLINKですな。実装済みです。
561デフォルトの名無しさん:01/08/31 22:56 ID:KHrRCh/w
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998997848
Internal Server Error
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998997848&ls=10
だと大丈夫。

index関係のスレでがいしゅつかな?
http://www.psychedance.com/test/read.cgi/tech/,
で、[全レス][最新50]のリンクが全部一緒(しかもbbs=hp)
562デフォルトの名無しさん:01/08/31 22:58 ID:xu.zymnM
ごめん。
563|  - -):01/08/31 23:05 ID:W1MB8EFM
564♯6411:01/08/31 23:09 ID:WLvR5P8o
>>561 ときどきPremature end of scriptが
出るっぽいんだけど、漏れが連打した限りでは
なかなか出ない。

スレダイジェストのアンカーが不完全なのは、
まだ実装してないからです…
565デフォルトの名無しさん:01/08/31 23:23 ID:PuIIKuzw
とりあえず、
BigBufferをread-onlyにする変更をしてみた。
(>>560の分に対して)
URLリンク等もressplitter_splitに入れ、
BigLineが\nで終了(要はつながったまま)する形式になる。
全体をスキャンする回数はかなり減るはず。

またエンバグが怖いので、どなたかテスト&mergeをお願い。
ftp://210.170.170.118/incoming/2ch-read-current/read14.2.9.c
566デフォルトの名無しさん:01/08/31 23:26 ID:PuIIKuzw
あ、全て-DCUTRESLINK時のみ有効です。
mmap()をREADONLYにはしていません。
567565:01/08/31 23:26 ID:PuIIKuzw
名前とメールを間違えた・・
568デフォルトの名無しさん:01/08/31 23:28 ID:MkV83E8o
そういえばいつの間にかかちゅ〜しゃ規制が外れてるらしいですが、
gzip対応なわけでもないのに規制を外して大丈夫なんでしょうか?
569♯6411:01/08/31 23:29 ID:WLvR5P8o
>>563 これだと確実に出ますねえ。
ちょっと追っかけてみるっす。
570デフォルトの名無しさん:01/08/31 23:34 ID:naodixwc
>>568
恥ずかしながら、オークションの実況をROMってしまった身から言うと、
ハマりまくってるときのリロードは1−5スレずつダウンロードすることになるね。
かちゅーしゃだとあまり関係ないと思うな。
圧縮するにこしたことはないけど。
571♯6411:01/08/31 23:34 ID:WLvR5P8o
>>569 Content-Encoding: gzipのとき氏ぬ。
落ちちゃってるわけではなく、バッファを
フラッシュしきれてない??

gzipがない状態では、正常に処理されてる模様。
572♯6411:01/08/31 23:39 ID:WLvR5P8o
>>571 ** デバッグ協力お願い **
サイケダンスドットコムの、
/tech/dat/998997848.datを
持ってってみてください。
たぶん、動かない予感。

bash$ (export HTTP_ACCEPT_ENCODING=gzip;
export PATH_INFO='/tech/998997848/';
export QUERY_STRING='raw=0.0';
export HTTP_USER_AGENT=console;
./read.cgi )>file

さいしょは、Linux(開発に使ってる)と
FreeBSD-2.2.x(公開に使ってる)の差かとオモタよ…
573デフォルトの名無しさん:01/08/31 23:42 ID:WK591e.c
TODOより
>現在の実装では、/board/subject.txt のmtimeを返しているが、subject.txt
>はsage進行の時は更新されないと思われるので、上位n個スレでsage進行が行
>われているとき、正しいものが取れなくなる可能性はある。

新スクリプト(要するに今使っているbbs.cgi)では、
sageレスも必ずレス数にカウントされるので、
並べ替えは起きないものの、subject.txtの更新は行われていると思われます。
574♯6411:01/08/31 23:44 ID:WLvR5P8o
>>573 tnx, 信じてみるよ。
ちょっと前(?)、subback.htmlとかのレス数が
sageで増えてなかったような気がして、
subject.txtも同じなのかな? と邪推
してたのであります…
575|  - -):01/08/31 23:49 ID:W1MB8EFM
dat_readのところの、mmapした後の盲目的strlenで問題が発生している。
本来、このコードはdatが破損してデータの一部が\0で埋められたときにそれを
できるだけ修復するためにあるコードかと思われ。
memchr(BigBuffer, '\0', zz_fileSize);を使えば問題は起きなくなるでしょう。
(その後のwhile()ループも同様に修正)
576デフォルトの名無しさん:01/09/01 00:06 ID:CHjn5Q7E
>>575
strlenは、read版だと末尾に'\0'を入れてあり、正常に動いてました。
で、>>565のコードだと、strlen使わなくなってます。
577565,576:01/09/01 00:08 ID:CHjn5Q7E
getLineMax()の内部も変更済み。

でも、要-DCUTRESLINK。
※-DCUTRESLINKでもLINKTAGCUTが0なら、リンクのカットはしません
578デフォルトの名無しさん:01/09/01 00:25 ID:Z2Y7gl3o
ってゆーか、read()版でも、いつの間にか消えてた。

dat_read()
 ・・・
 /* XXX ところどころに 0 が現れるの? */
 {
  char *end = BigBuffer + zz_fileSize;
  char *p = BigBuffer;
  while ((p = memchr(p, '\0', end - p)) != NULL) {
   *p = '*';
  }
 }

ブロックが汚いけど、こうすれば、OKかな
579名無し娘。 ◆vP.bOZFQ :01/09/01 00:32 ID:EhmPvxQ6
-DCUTRESLINK だとむしろ転送量が増えるかもしれない問題について、
妥協的な提案ですが、その窓内で表示されている部分だけは CUTRESKINK して、
表示されていない部分については RESLINK をはるというのはどうでしょう。
&st=50&to=100 なら、 >>58 ははらないけど >>14 ははる、というふうに。

それとも、PATH_INFO 使い出すと同時に -DCUTRESLINK はやめる方向でしょうか。
580デフォルトの名無しさん:01/09/01 00:43 ID:3xMt6oxQ
dat_read()内で、
 if (zz_fileSize > MAX_FILESIZE)
  html_error(ERROR_TOO_HUGE);
の次に、
 if (zz_fileSize < 10)
  html_error(ERROR_NOT_FOUND);
ぐらい、入れておいたほうがいいかもしれない。
(エラー種別は別にした方がいいかも)

実際、過去にサイズ0のファイルがあったことがある。
各フィールドの区切りや投稿日があるので
正常なdatが10バイトを下回ることは無いはず。
581♯6411:01/09/01 00:43 ID:xtb9tuCk
ちょっと雑用が入ってしまい、
マージ作業とかできぬ、ゴメソ

今から帰らなきゃ…
582デフォルトの名無しさん:01/09/01 02:06 ID:lOi0M7Jo
>-DCUTRESLINK だとむしろ転送量が増えるかもしれない問題について、
読みなおしされる回数と、全体の約2割の削減(非圧縮UAのみ)で、
どちらが効果があるのか、調べないと実際にはわかりません。

で、1から「関連スレは>>2-5のどこか」とリンクされる場合は
明らかに逆効果なので、
レス1の場合はリンクするよう、とりあえず変更しました。
(>>578>>580も加えた)
ftp://210.170.170.118/incoming/2ch-read-current/read14.2.9.c.1

書いてあるレスとリンク先のレス番号の差をみたり、
さらに、st=やls=を見て判断するのは、
単純にカットするのと比べて、閉じタグの時も判断しなければならず、
変更が大きく、
やってはみますが、それなりに重い処理になりそうです。

あと、しつこいようですけど、-DCUTRESLINKだけでカットされるわけではなく、
read2ch.h内で  #define LINKTAGCUT 0
にすれば、カット機能は働きません。

>>581
お疲れ様です。頼りきっていてすみません。
583♯6411:01/09/01 02:39 ID:LOycKPho
>>582 いれときました。
500 Internal Server Error問題は
解決しちゃったかな?
584デフォルトの名無しさん:01/09/01 02:39 ID:dsS601S.
rawwrite_href()をちょっと見た感じ、
st=やls=によってリンクする/しないを区別する場合には
この中でやった方がよさそうですね。
>>0>>9999(lineMaxより大きい数字)を判断したりも、
ここで行ったほうが効率が良さそうです。

ただ、BigBufferを書き換えなくすると、
'\0'が含まれないので(逆に最後が'\n'であることが保証されている)、
 n = strcspn(*sp, ">");
 if (n == 0)
  return 0;
は、
 n = strcspn(*sp, ">\n");
 if (*(*sp + n) == '\n')
  return 0;
という感じになおし、
 s = strstr(s, "</a>");
 if (!s)
  return 0;
は、
 s = strcspn(s, "<\n");
 if (*s == '\n' || strncmp(s, "</a>", 4) != 0)
  return 0;
等の修正が要りそうです。
(他にもあるかも)
585デフォルトの名無しさん:01/09/01 02:52 ID:vzOvppvM
>>561は大丈夫っぽいけど、
>>563
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998997848&raw=0.0
は直ってないっぽいです。
586名無し娘。 ◆vP.bOZFQ :01/09/01 02:53 ID:EhmPvxQ6
>>582
お疲れさまです。要はどっちにも対応できることですよね。
レス1からのリンクも明らかに逆効果かどうかわからないくらいです(^^;
リンク先を実際に参照してもらった回数のうち、リンクがなければ飛ぶのをやめた
人と、リンクがなくてもきちんと ls,st,to などを指定した人の分を除いた量が、
「約2割の削減」よりも大きいか小さいか。。。

ところで、そうすると -DCUTRESLINK しない場合というのは、どういう
事態が想定されているのでしょうか。
# ソース読んだだけではわからなかった(^^;
587♯6411:01/09/01 02:55 ID:LOycKPho
>>585 あとでデバッガで追ってみるね(涙
588♯6411:01/09/01 02:58 ID:LOycKPho
>>586 path仕様では、リンクの長さが
短くなるため、あえてカットせずにいます。
で、転送総量削減を期待して、
必ずchunk単位になるようにリンクを張り直します。
詳細は、サイケダンスドットコムで遊んでみてくだちい。

いまは、L-Mをchunk毎に求められるように
最適化を施してる最中です。
589デフォルトの名無しさん:01/09/01 03:18 ID:41gLtufk
rewrite_hrefなんですけど、
if (sscanf(
 "<a href=\"../test/read.cgi?bbs=%20[a-zA-Z0-9_]&key=%12[0-9]"
 "&st=%u&to=%u&nofirst=true\" target=\"_blank\">>>%u</a%c"
 , ...) == 6 && 最後の%c == '>') {
  /* >>nn の場合 */
  ・・・
  2つ目の'>'までカット
} else if (sscanf(
 "<a href="../test/read.cgi?bbs=%20[a-zA-Z0-9_]&key=%12[0-9]"
 "&st=%u&to=%u\" target=\"_blank\">>>%u-%u</a%c"
 , ...) == 7 && 最後の%c == '>') {
   /* >>nn-nn の場合 */
   ・・・
 2つ目の'>'までカット
}
なんてのは駄目ですか?
重くなるかもしれないけど。
あ、sscanfの%[]のフォーマットに'-'を入れる場合、どうやったか忘れた。
590♯6411:01/09/01 03:21 ID:LOycKPho
>>589 さいしょはhrefから抜こうと
思ってたんだけど、それよりも
エレメント抜き出した方が確実だと
考えたのだ。

っていうか、余所に公開するコードに
scanfを使うのは漏れの趣味じゃない。
自作一発ツールでは多用するけど(w
591デフォルトの名無しさん:01/09/01 07:45 ID:UJUxMf.6
とりあえず1つデバッグ

dat_out_raw()の最後、のfor内、
 pPrintf(pStdout, "%s\n", BigLine[i]);

#ifndef CUTRESLINK
 pPrintf(pStdout, "%s\n", BigLine[i]);
#else
 pPrintf(pStdout, "%.*s\n", BigLine[i+1] - BigLine[i], BigLine[i]);
#endif
に直さないとまずい。(BigLineを'\n'-terminateに変更したため)

が、>>563のエラーは、BigLineの形式を変える前から起きていたので、
これが原因ではない。
>>563までの原因は>>575で、>>585の原因がこれ(↑)であれば、
解決している(かもしれない)。

あと、
http://www.psychedance.com/test/read.cgi/tech/998921988/10-20
等の時、「続きを読む」が欲しいような。
全レス表示や最新レス表示だと「新レスの表示」が出るけど。
592デフォルトの名無しさん:01/09/01 12:50 ID:twr9sQ6c
>>591
上の話 commitしときました。
593デフォルトの名無しさん:01/09/01 13:41 ID:/.JZzzqk
dat_out_index()、初めて目を通したんですが、
呼び出されるたびにdatを全部読んで解析して・・というのは
さすがに負荷が大きいような。
bbs.cgiがindex2.htmlを作成する時は、
http://piza2.2ch.net/tech/html/998997848.html
こういうファイルにキャッシュされたデータを利用しています。
これを何とか利用する方法は・・・

また、板別の設定(N_INDEX_THREADS等)は、規制実施等との整合性を保つために
http://piza2.2ch.net/tech/SETTING.TXT
の内容に合わせたほうがよいかと思います。
594♯6411:01/09/01 13:50 ID:apo2ymi.
>>593 そのへんの仕様を知らなかったので、
あーゆー形で仮実装してたんですが、
使える設定があるのなら、喜んで
流用させてもらうです。

いずれにせよ、htmlを読んで再走査するよりは、
datから作り出した方が速い、んじゃないかなと
いうのが今の考えです。
595♯6411:01/09/01 14:04 ID:apo2ymi.
ヘッドラインとか
広告とかの
テンプレートは
あるんだろうか?

いずれにせよこの機能は使われずじまいになる
可能性も大きいし(鬱
596♯6411:01/09/01 14:26 ID:apo2ymi.
cvsweb 氏んでる?

あっそうだ、今日はAir H"買いに逝こう♪
597♯6411:01/09/01 14:39 ID:apo2ymi.
>>591
> あと、
> http://www.psychedance.com/test/read.cgi/tech/998921988/10-20
> 等の時、「続きを読む」が欲しいような。
> 全レス表示や最新レス表示だと「新レスの表示」が出るけど。

「自分以降」のchunk候補を表示してあげると、
ユーザに優しくなるだろうね。漏れも思った。

…chunk表示は、ひとつだけ問題を孕んでるんだ…
それはまた後ほど話すよ…
598♯6411:01/09/01 15:07 ID:apo2ymi.
>>563
> 500 Internal Server Error
のバグ判明。

getLineMax() の最後の方に、
BigLine[line+1] = BigBuffer + zz_fileSize;
があるんだけど、結果的にこれがsentinelの
役割を果たしてない。結果、dat_out_raw()で、
最後の行を踏むと、NULLポインタを手繰って氏ぬ。

BigLine[line] = BigBuffer + zz_fileSize;
が妥当ではないかと思うのだが、現在手元の
read.cはマージしたくないので、どなたか
追試・修正求む。

それにしても、つくづくemacs gdbは便利やのう。
599♯6411:01/09/01 15:22 ID:apo2ymi.
>>598 これは直接関係のない潜在バグだった(鬱

最終行で、NULL - &BigBuffer[n] を計算
した結果、十分大きな値(21億超えてるかも)に
なっちゃうんだけど、BigLine[lineMax-1]は
たいていNULL terminateされているので(藁
結果オーライ、と。
600デフォルトの名無しさん:01/09/01 15:27 ID:twr9sQ6c
>>599
BigLine[line]が未記入なのは気持ち悪いのでcommitしてみた。
601♯6411:01/09/01 15:30 ID:apo2ymi.
なんとなくわかった。
問題は、397がけっこうサイズ大きくて、
printf("%.*s") の * が耐えきれなくなってる
ものと見た。

というわけで、これをwrite/gzwriteを用いた
ものに変更すると、問題は解決
すると思うっす。

ところで、linux-2.4だと、mmap(MAP_PRIVATE)の
挙動が変わってます? 今のところ、
ファイルサイズを超えた割り当ては、
0で埋められた名無しさんメモリが割り当てられる、
という前提でコード書いてんですが…
> |  - -)
602デフォルトの名無しさん:01/09/01 15:40 ID:YSt69fX.
もひとつ修正お願い。
>>591と同じところで、改行が2つ出ちゃってます。
× pPrintf(pStdout, "%.*s\n", BigLine[i+1] - BigLine[i], BigLine[i]);
○ pPrintf(pStdout, "%.*s", BigLine[i+1] - BigLine[i], BigLine[i]);
603デフォルトの名無しさん:01/09/01 15:44 ID:YSt69fX.
>>563って、getLineMaxやdat_out_rawのprintf()の変更を加える前からです・・・
>>575が原因であればいいんだけど。
604デフォルトの名無しさん:01/09/01 15:46 ID:twr9sQ6c
>>602
あてた
605デフォルトの名無しさん:01/09/01 16:21 ID:D.BYJFUs
>>601
多分、gzprintf()が、
char buf[4096];
vsnprintf(buf,4096,format,va);か
vsprintf(buf,format,va);のどちらかになる。
下なら当然バグる。
上でバグるならライブラリの問題だが、どっちにしろ正しい結果にならない。
606VC++まだ箱のなか厨房(w:01/09/01 16:49 ID:/IvlKP0E
割り込みですいません、

動作報告にあったやつなんですが、read.cgi 5.10 で
imode経由の時、「レスを最初から読む」のリンク先が
「st=1&to=10」のためとんだページで11以降のレスを読み出すリンク
が表示されないようですが、
最新版ではこれ、「&to=11」とかなるようには対処済みでしょうか?
607605:01/09/01 17:10 ID:D.BYJFUs
>>601
gzwrite使うようにした。

ところで、他のところで本文を一括でpPrintf()に渡しているような
ところはないかな。
608605:01/09/01 17:36 ID:D.BYJFUs
8000文字程度のを作って食わせたら、駄目だたーョ。
zlibの方をいじった方がよさげなんだが、
スタック上に10Kぐらいとるのと、vasprintf()使うのとどっちがいい?

vasprintf()使っちゃっていいかな?
609デフォルトの名無しさん:01/09/01 17:51 ID:Oz0a82Qk
>>608 vasprintf()ってどんな関数なの? Solaris上では見当たらないんだけど...
zlibのgzprintf()もどうせ小さな関数だから 文字列長の制限のないor制限の緩い
関数を自作しちゃってもいいかもね
610605:01/09/01 17:55 ID:D.BYJFUs
sprintf内でmallocする。
パフォーマンス的にうれしくないが、最も安全。

printf系の関数を自作するのは、つらいっす。
611デフォルトの名無しさん:01/09/01 17:55 ID:twr9sQ6c
>>609
vasprintfってのは、第一引数をポインタのポインタで渡して
そこにメモリ確保して内容も書いてアドレス書き込んでくれる関数みたい
612デフォルトの名無しさん:01/09/01 18:12 ID:bCko6D0s
ちょっと提案なんですが、めがびーのように
「書き込み後もこのスレッドに留まる」機能を導入するというのは
いかがでしょうか?主にチャット対策ですね。
上記の機能のチェックボタンをONにして書き込みした場合、
再び最新の数十件を表示し、チェックボタンは再びONに
なっているという具合に。
脳内シミュレーションでは転送量も削減され、使用者にとっても
メリットがあり、結構いい感じなんですが・・
がいしゅつだったら申し訳ありません。
613605:01/09/01 20:27 ID:D.BYJFUs
>>609
2ちゃんなら最大8kぐらいだから、とりあえず10kにしときました。
gzipped_fwriteは、zlibの方に移しました。
614609:01/09/01 20:43 ID:Oz0a82Qk
>>613 とりあえずそれが妥当なところですね
vsnprintf()って確か戻り値が「バッファ長が十分あったと仮定した場合の
結果文字列長」だと思ったので それチェックして10kより長かったら
malloc()でもっとデカいバッファ作って呼び直す ってのもいいのかも......

でも vsnprintf()の実装がbrokenだと戻り値が当てにならないこともあるのかな?
615♯6411:01/09/01 20:50 ID:73Q/QYVY
現在の最新を、サイケドットコムに
反映しときました。

それにしても、Air H"さいこー。
616605:01/09/01 20:58 ID:D.BYJFUs
>>614
たしかに、
 if the return value is greater than or equal
とかあります。

ただね、「zlibってvsnprintf()使ってんのにどうして落ちる」と悩んだんですわ。
良く見るとconfigure使うくせに STDC とか HAS_vsnprintfとかを自分で定義して
やらんといけなかった様ですな。

configureがなければ、最初っから手で調整したのにィ〜。
617609:01/09/01 21:18 ID:Oz0a82Qk
>>616 うひゃ〜 このconfigureホントに手抜きもいいとこだな
しかし そうなると......世の中のgzprintf()使ったプログラムには
buffer overflowの脆弱性が潜んでる可能性がかなり高い......
618605:01/09/01 21:57 ID:D.BYJFUs
>>614 この方式も組み込みました。
10kのままにしたので、おそらくread.cgiでは使わないでしょう。

>>617 FreeBSD標準のlibzだとsnprintf()が使われるように見える。
vsnprintf()の方を使って欲しいなあ。
619♯6411:01/09/01 22:03 ID:73Q/QYVY
とりあえず、最新のものを追っかけてます。
620デフォルトの名無しさん:01/09/02 00:06 ID:6jadN1QI
dat_out_raw()で、
 /* 全部を送信するように変更 */
 raw_lastnum = 0;
となっているのは、else以下に入れるのが正しいのでは?
&raw=5.123等の適当な数字を入れると、
-INCRと共に全体が返ってくる
621|  - -):01/09/02 00:12 ID:U9FxmX3M
>>620
いや、それが正しい動作なのですが...
(正しいレス番号とそのときまでのファイルサイズを指定したときのみ差分が返ってくる)
622デフォルトの名無しさん:01/09/02 00:20 ID:5PMhQoM6
あ、+OKが差分で、-INCRはあぼーん等なんですね。
raw=0.0で返ってくる+OKと内容が同じだったので、
全体を返すときは+OKだと勘違いしてました。
623デフォルトの名無しさん:01/09/02 00:48 ID:k3O562RI
変更点。
>>nnと>>nn-nnについて
・表示範囲外の時にはリンクを貼る
・正しいレス番号でなかったらリンクは貼らない
・リンクを貼る時、USE_PATHだったら、PATH形式に(CHUNKは未使用)
・テレホタイムは、表示範囲に含まれている場合のみリンクしない

・強引に4バイト比較にした(警告が出る)

urlcopy()とressplitter_split()を取り去り、
変わりにこれを入れてください。
ftp://210.170.170.118/incoming/buggy/read.part.1.c
また、お暇な時にお願いします。

手元の環境の都合で、相変わらず GZIP,ZLIB,USE_MMAP,PREVENTRELOAD
での動作確認はしていませんが、
今回は他に影響する部分は無いと思います。
624デフォルトの名無しさん:01/09/02 02:14 ID:QoqrwTN6
テスト用URLs
http://www.psychedance.com/test/read.cgi/tech/991795568
http://www.psychedance.com/test/read.cgi/tech/991795568/st=50
間違いではあるんだけど、この辺の動作がもうひと工夫欲しいかも。

http://www.psychedance.com/test/read.cgi/tech/
http://www.psychedance.com/test/read.cgi/tech/991795568/
http://www.psychedance.com/test/read.cgi/tech/991795568/?st=50
http://www.psychedance.com/test/read.cgi/tech/998997848/?st=50
http://www.psychedance.com/test/read.cgi/tech/998915621/?to=50
http://www.psychedance.com/test/read.cgi/tech/990334284/10-20
http://www.psychedance.com/test/read.cgi/tech/991795568/?ls=50

http://www.psychedance.com/test/read.cgi/tech/998997848/?st=50
http://www.psychedance.com/test/read.cgi/tech/998915621/?to=50
http://www.psychedance.com/test/read.cgi/tech/990334284/10-20
http://www.psychedance.com/test/read.cgi/tech/991795568/?raw=0.0

http://www.psychedance.com/test/read.cgi/tech/999073816/?i=t
http://www.psychedance.com/test/read.cgi/tech/977112364/?n=t
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998878393
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998878393&st=20
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998808627&st=50
http://www.psychedance.com/test/read.cgi?bbs=tech&key=994424597&to=50

http://www.psychedance.com/test/read.cgi?bbs=tech&key=998878393&imode=true
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998808627&nofirst=true
http://www.psychedance.com/test/read.cgi?bbs=tech&key=994424597&st=50to=100
http://www.psychedance.com/test/read.cgi?bbs=tech&key=994424597&raw=0.0
625名無し:01/09/02 02:23 ID:Lim.QX.U
夜勤さんが批判要望に出現してます。
インストール頼むなら今ですよ。
626仕様無しさん ◆NwLv.g/w :01/09/02 02:33 ID:gUvmJJ.Q
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999345252&st=764&to=764

764 名前:夜勤 ◆D69Zsbfg @夜勤 ★ 投稿日:01/09/02 02:31 ID:???
 ちと 話の流れと違うけど、すまそ

 今 www2.bbspink のサーバに mod_gzip が入っています。
 ちゃんと動いているようなので(効果もかなりあるし)、
 来週は全サーバに入れる予定ですー。
627名無し:01/09/02 02:33 ID:Lim.QX.U
764 名前:夜勤 ◆D69Zsbfg @夜勤 ★ :01/09/02 02:31 ID:???
ちと 話の流れと違うけど、すまそ

今 www2.bbspink のサーバに mod_gzip が入っています。
ちゃんと動いているようなので(効果もかなりあるし)、
来週は全サーバに入れる予定ですー。

過去ログの圧縮もやる予定です。
628デフォルトの名無しさん:01/09/02 02:38 ID:nSC2NXko
ホントやねぇ zlib関連のコーディングは結局お蔵入りになっちゃうけど
まぁ めでたしめでたしということか

% telnet www2.bbspink.com 80
GET / HTTP/1.0
Host: www2.bbspink.com
Connection: close

HTTP/1.1 200 OK
Date: Sat, 01 Sep 2001 17:35:09 GMT
Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_gzip/1.3.19.1a mod_ssl/2.3.6 OpenSSL/0.9.3a
Connection: close
Content-Type: text/html
629デフォルトの名無しさん:01/09/02 02:40 ID:TU.A0Olc
790 名前:夜勤 ◆D69Zsbfg @夜勤 ★ 投稿日:01/09/02 02:38 ID:???
>>779
1/3 になると思う、ほぼ達成です。
unix板、プログラム板、web 関係の板の皆様方には
本当に感謝しています。

ありがとう。
630♯6411:01/09/02 02:41 ID:GBYgH3SU
>>624 勘弁してくだちい(藁

> http://www.psychedance.com/test/read.cgi/tech/991795568

まっとうでないpath喰わせたら、本来ならば
302(Apacheが勝手に吐くけど)吐いて
Location: 入れる必要があるのよねー。
そのうち善処するです。

> http://www.psychedance.com/test/read.cgi/tech/991795568/st=50

st= は、path の構成要素として扱われるんだけど、
今は数字が入ってなかったらあまり動作が
芳しくないかもしれん。0-0 と同じ動作をするかな?

> http://www.psychedance.com/test/read.cgi/tech/991795568/50-
だと、想定される動作をするはず。
631♯6411:01/09/02 02:43 ID:GBYgH3SU
>>628 どーでもいーけど、
なんでL-M吐かないんだろ??
632デフォルトの名無しさん:01/09/02 02:46 ID:nSC2NXko
>>631 例の"server-parsed"のためと思われ
633デフォルトの名無しさん:01/09/02 02:48 ID:vmaCIJDM
>>628
無駄になるのは、index2.htmlスレ関連の方。
read.cgiでは、意味がある。

>>631
mod_gzipだと、そのあたりがいまいち。
304でのリロード拒否も考えると、cgi挟みたくなるよね。
634♯6411:01/09/02 02:51 ID:GBYgH3SU
>>633 mod_expire入れられれば…
635デフォルトの名無しさん:01/09/02 02:55 ID:vmaCIJDM
mod_gzipでcgiの出力も圧縮できるんでしたっけ?
そこら辺まで見てないんだけど。
636♯6411:01/09/02 03:01 ID:GBYgH3SU
>>635 できる。
サイケドットコムにはmod_gzip入ってるが、
意図的に www.psychedance.com だけ
mod_gzipしない設定になっていて、
あのサーバが抱えている他のコンテンツは
gzip効かされるようになってる。

漏れも目で確認してみた。
637-:01/09/02 03:03 ID:SJhkwM6g
http://www2.bbspink.com/test/check.cgi

HTTP/1.1 200 OK
Date: Sat, 01 Sep 2001 18:00:46 GMT
Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_gzip/1.3.19.1a mod_ssl/2.3.6 OpenSSL/0.9.3a
Connection: close
Content-Type: text/html
Content-Encoding: gzip
Content-Length: 684

gzipもlengthも使われてますね
638デフォルトの名無しさん:01/09/02 03:08 ID:vmaCIJDM
>>636
できるのかあ。じゃあ、うちのは設定の問題か、勘違いかな。
細かいとこまで見ないで入れちゃったからなあ。

ところで、>>623 のコードどうします?
そのまま取りこむのは、少し抵抗あるんだけど。
639ひろゆき:01/09/02 04:59 ID:Y47cJeS2
どうもお世話になってます。
いろいろとありがとうございます。
ノートPCが手元にないもので、インストールができないおいらです。。。
640デフォルトの名無しさん:01/09/02 05:11 ID:qidyfsQI
j時間帯的には
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998764722
の★つきひろゆきと思われるが、何でこっちはキャップないの?
641デフォルトの名無しさん:01/09/02 06:49 ID:OGRZcBVM
 index2とかread.cgiのhtmlにはform書かずに、「書きこみ」に
リンクして別窓開かせるというのか、もしかして激しくガイシュツ?
642名無し:01/09/02 06:50 ID:kg0l2cpY
age
643♯6411:01/09/02 15:04 ID:DixhmFmM
>>641 フォームがあそこに付いてるってのが
2chの活性化につながってると思われ。
フォームを外すと、禿げしく活性化が
損なわれること必至なので、熟考が必要。
現に、スレ立ては、昔は表に出てたけど、今は
引っ込んでるでしょ?

もちろん、運営側が脱活性化を狙ってるのなら、
フォームを引っ込めてしまうというのも…鬱
644♯6411:01/09/02 15:06 ID:DixhmFmM
>>639 こっちこそ、大変楽しんでますです。
本業そっちのけで(w
645デフォルトの名無しさん:01/09/02 15:45 ID:FVpdjhrE
たまにここをのぞいてるもんですが。
>>623のアイディアをさらに進めて、各レスに <a name="nn"> ってつけて
表示範囲内へのリンクは <a href="#nn"> にするのはどうでしょ。
転送量削減というより便利になるだけだけど。
646♯6411:01/09/02 15:57 ID:DixhmFmM
>>645 path仕様では実装済みです。
現仕様に適用する作業はやってないですが、
できないこともないと思われ。

http://www.psychedance.com/test/read.cgi/tech/998997848/351-400#397
647デフォルトの名無しさん:01/09/02 15:58 ID:McpMRzTs
>>623
これcvsにあてちゃっていいんでしょーか
648♯6411:01/09/02 16:02 ID:DixhmFmM
>>647 未評価なんだけど、
評価可能なように、conditionつけてお願いしまーす
649デフォルトの名無しさん:01/09/02 16:03 ID:McpMRzTs
>>648
それにしてもconditionだらけになってきたので
いじるのもつらくなりつつあるような(^^;
650デフォルトの名無しさん:01/09/02 16:10 ID:McpMRzTs
>>623
・強引に4バイト比較にした(警告が出る)
アライン無視で *(long *)化して比較してるんですか。
これはやめたほうがいいと思われ。
環境変わると死ぬので将来サーバ環境変更したときに危険
651♯6411:01/09/02 16:10 ID:QJw7snFQ
>>649 仕様確定している新機能は、
そろそろcondition外してもいいんだけどねー。
これはみんなのコンセンサス必要。

いちお、古い分はリポジトリに残ってるわけだし。
652デフォルトの名無しさん:01/09/02 16:12 ID:FVpdjhrE
おお、できてますな。便利ですなり>>646
そういう仕様のすり合わせはちゃんと読んでないのでもぐります...
653♯6411:01/09/02 18:29 ID:ZI/K/6dI
>>650 サイケドットコムに反映した。

rewrite_href()に限らず、漏れが書き下ろした
モジュールは、どなたでも手を着けて
くださって結構。(そのためのcvsでしょ?)

rewrite_href2()は、葬れると思われ。
(本人もそういってるし)
654デフォルトの名無しさん:01/09/02 19:36 ID:McpMRzTs
zz_GetStringリファインしてみた。
あと'=' がない場合が想定されていなかったので、無い場合は無視するようにしたっす。
あ、commitのcomment入れ失敗。日本語文字が消えてる(^^;
655デフォルトの名無しさん:01/09/02 19:54 ID:McpMRzTs
>>624 で入れたやつ、rawmodeでもURLがタグ化されてるけどいいの?
656デフォルトの名無しさん:01/09/02 19:54 ID:nSC2NXko
>>631-634 Last-Modifiedの件だけど オレのところのApacheで確認してみた
ところ mod_gzip使ってもserver-parsedになってない静的コンテンツは
ちゃんとLast-Modified吐いてます ということでserver-parsedを外しても
問題がないのなら外してもらった方がいいですね

あとExpiresヘッダがらみの部分が現在

#if 1
    get_lastmod_str(expires_str, zz_fileLastmod + 5);
#else
       :
#endif

とかなってるけど まぁ実際には EXPIRES が定義されてなければExpiresヘッダは
吐かれないけど もしこのままExpiresヘッダを吐いたとすると mtimeの
5秒後にexpireされてしまう......ということは事実上"Pragma: no-cache"と
ほとんど等価になってしまってブラウザでキャッシュされなくなってしまうような
気がするんだけど......
657656:01/09/02 20:56 ID:nSC2NXko
server-parsedの場合これどうかね?

                     Apache module mod_include

XBitHack directive

  Syntax: XBitHack on|off|full
  Default: XBitHack off
  Context: server config, virtual host, directory, .htaccess
  Override: Options
  Status: Base
  Module: mod_include

  The XBitHack directives controls the parsing of ordinary html
  documents. This directive only affects files associated with the MIME
  type text/html. XBitHack can take on the following values:
     :
  full
     As for on but also test the group-execute bit. If it is set,
     then set the Last-modified date of the returned file to be the
     last modified time of the file. If it is not set, then no
     last-modified date is sent. Setting this bit allows clients and
     proxies to cache the result of the request.
658♯6411:01/09/02 21:29 ID:rH8fTNpc
>>657 そもそも、server-parsedにしてる
理由って、adとか差し込むため?
659♯6411:01/09/02 21:29 ID:rH8fTNpc
>>656 Expires: の件に関しては、
途中で投げちゃったので、
深く追求しないで…鬱
660655:01/09/02 21:33 ID:McpMRzTs
rawmodeでタグ化してるけどってのは、
http://www.psychedance.com/test/read.cgi?bbs=tech&key=998997848&raw=0.0
これ見るとrewrite_href*が処理されてるように見えるんだけど。
661655:01/09/02 21:37 ID:McpMRzTs
>>660
って勘違い。鬱
662デフォルトの名無しさん:01/09/02 22:18 ID:df.8HYUw
どちらにせよ個々のPCの時間がそんなに精度良くサーバと
合ってるはずないんで Expires ヘッダ使うのは無理だと思われ
663♯6411:01/09/02 22:23 ID:rH8fTNpc
>>662 Expiresに関しては、どちらかとゆーと
キャッシュサーバに対する妥当性を与える
手段としてあれこれ研究してたす。

ウチの会社で使ってるのはSquid-2
664デフォルトの名無しさん:01/09/02 22:27 ID:McpMRzTs
>>662
Expiresの時刻はDateヘッダの時刻との差を出して
有効期間を割り出すものじゃないかと思うけど。
RFC2616
>13.2.4 Expiration Calculations
> freshness_lifetime = expires_value - date_value
665デフォルトの名無しさん:01/09/02 22:28 ID:nSC2NXko
>>663 とするとCache-Controlでわ?
666♯6411:01/09/02 22:36 ID:rH8fTNpc
>>665 IE5では、Expires:で保障されてる
オブジェクトに対しては、サーバに問い合わせすら
しない、という噂を聞いて、いろいろ試してた
んですわ。たとえば、過去ログとかは有効期限を
長めに設定しても生きていける可能性が
あるわけでしょ?

/* ためしに廃棄期限をちょっと30秒先に設定してみる */
という部分が、その実験の名残。

先日出た結論 >>336 >>391 以降 では
.cgi ? などという文字がURLに含まれていると、
キャッシュサーバだけでなく、UAもExpiresを信用しなく
なるのでは? ということだった。これに関しての
実験は、後ほどしてみる。
667662:01/09/02 22:45 ID:df.8HYUw
>>664
すんません、逝ってきます
668デフォルトの名無しさん:01/09/02 22:48 ID:nSC2NXko
>>666 なるほど......ただ問題は有効期限切れでexpireされると キャッシュから
捨てられてしまうため 今度は逆にコンテンツが変化していなくても取得しに行って
しまうことになるので そのあたりのトレードオフを検討する必要がありますね

まぁおっしゃる通り過去ログなら有効期限を1年ぐらいにしておけばいいのかも
知れませんけど
669♯6411:01/09/02 22:53 ID:rH8fTNpc
>>668 詳しく実験してないんだけど、
大筋では、expiredなオブジェクトに対しても、
I-M-S付きで取りに逝ってくれるようなので、
無駄ではない、かもしれん。

今は別の作業やってるので、Expires:の検証ができぬ。
670デフォルトの名無しさん:01/09/03 05:03 ID:TpCC4vQc
>>568 を読み流してた。。

read2ch.hから、
#define Katjusha_Beta_kisei
がなくなってます。
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998695422&st=81&to=81&n=true

その他、CM_BBSPINKやLOGLOGOUTはどうなんだろ?
671♯6411:01/09/03 05:21 ID:L5jSUf32
>>670 いつのまにか消えてますな(w
いま調べたら、リポジトリには
ハナっからかちゅーしゃ規制定義が
入ってないっぽ。

漏れも、なんであちこちに
Katjusha_Beta_kisei
入ってんだろー? とギモンにはなってた
んだが…まーいっか。
672♯6411:01/09/03 06:15 ID:L5jSUf32
そろそろ寝るか…

要望: だれか、現行版(5.10?)とほぼ同じもの(?)に、
タグつけといてもらえませんか?
漏れはどの時点が取り込まれたか、いまいち
覚えてませんです。
673デフォルトの名無しさん:01/09/03 09:10 ID:.8abJrUE
Ver5.10の導入報告は前スレ608
CVSの導入が前スレ739(commitが764)
というわけで、Ver5.10は残ってない

5.10以前に導入され、苦情や問題の無いcondition
NEWBA
DEBUG
GSTR2
こいつらはOK

GZIPは、プロセス数問題があるので保留
PREVENTRELOADは、削除依頼板に若干気になる発言があるので保留
ZLIBは、導入時にzlibがなく、入っていない
674デフォルトの名無しさん:01/09/03 13:38 ID:nLIVOBVk
「掲示板に戻る」をindex2.html→index.htmlに。

潜在的なバグ
readSettingFile()
  if (cptr[len] == '='
cptr + len < endp を確認してからにしないとまずい。

dat_out_raw()
  pPrintf(pStdout, "%.*s", BigLine[i+1] - BigLine[i], BigLine[i]);
datに'\0'が含まれていた場合に、期待した動作をしない。
(最近はbbs.cgiで'\0'をはじいている気がするし、
mod_gzipが.datも圧縮するようになれば、あまり問題ではない)
675♯6411:01/09/03 13:40 ID:xDKgLLeA
>>673 そうだったのか、tnx.
リポジトリの最初の方が、5.10にやや近い、
ということにしとけば、いいのかな?
676デフォルトの名無しさん:01/09/03 14:35 ID:eRhXWXRI
>>674
/index.html より / にしたほうが明らかにバイト数が少なくてすむ。
677デフォルトの名無しさん:01/09/03 18:04 ID:Z2g4dJyM
>>676
>今までは、http://teri.2ch.net/accuse/index2.htmlとかで
>ブックマークしてたと思いますが、
>これから、http://teri.2ch.net/accuse/になります
>index2.htmlってのがいらなくなるわけですね。

http://teri.2ch.net/accuse/
だと、gzip化されてない様に見えるが?
mod_gzipが導入されるまでの移行中は、どこに戻すのがいいのやら。
678仕様無しさん ◆NwLv.g/w :01/09/03 19:32 ID:shKKa9Vo
>677 とりあえず #defineで設定して後ですぐに変えられるようにしとくのが吉かと。
679デフォルトの名無しさん:01/09/03 20:28 ID:MKp/si06
ちょっと Expiresヘッダを吐いた場合のIE5.01とネスケ4.72の
振る舞いを観察してみました

IE5.01 -> Expiresは無視されている模様(Expiresを吐かなかった場合との差が見られない)

ネスケ4.72 -> 当該ページを表示させてから「戻る」ボタン等で前のページに戻ってから
        「次」ボタン等で当該ページに戻った際に次のような振る舞いになる
        Expire日時前 -> そのままキャッシュの内容が表示される
        Expire日時後 -> If-Modified-Since付きでコンテンツを取りに行く
                 Statusが304ならキャッシュの内容を表示
        このケース以外(URLを直打ちした場合,リンクからジャンプした場合,
        リロードボタンを押した場合等)ではExpiresなしの場合と振る舞いの違いがない模様

ってな感じでした なお >>664 で指摘されているRFCの規定にもかかわらず
ネスケはコンテンツをexpireさせる日時はPC側の内部時計のものを使ってしまっている模様

ところで ネスケ4.72で次のような問題があるようです
    gzip圧縮されたコンテンツでContent-Lengthヘッダが指定されていると
    Last-Modifiedによる指定が無効になってしまう
これはネスケ側のバグではないかと思います 現在2chサーバで稼動中のread.cgiでは
Content-Lengthヘッダがありませんが これが指定されるようになると
ネスケでは(少なくとも4.72では)If-Modified-Since付きのリクエストを
行わなくなって毎回コンテンツを取りに行くようになってしまうと思います

mod_gzipではdechunkを行うとContent-Lengthヘッダを生成させるので
(そうでなくともスタティックなコンテンツではそうですが)これは
頭の痛い問題ですねぇ......
680♯6411:01/09/04 00:04 ID:.iUWuuDs
cvs追いかけてる人は知ってると思うけど、
いま、インデクスの実装を行っており、
設計はほぼ固まりました。

概要・特長は以下の通り。
・インデクスのサイズは 4096 bytes
・/board/dat/idx/XXXXXXXXXX.idx
・ディレクトリ idx がなかったら、インデクスは作成されない
・bbs.cgiの改造はたぶん不要
・完璧な排他制御(w
・スピンロック不使用
・SMP safe(まじかよ)

仕様はほぼ決まっているが未実装な機能は以下の通り。
・あぼーん時のインデクス再構築

…っていっても、いまからmainに組み込むことを
考えると、もちっと道のりあるかな?
681デフォルトの名無しさん:01/09/04 00:27 ID:1lIywugU
682♯6411:01/09/04 00:28 ID:.iUWuuDs
>>681 ここのカレントじゃなく、
zlib使うようにしたバージョンかな?
683デフォルトの名無しさん:01/09/04 00:29 ID:Mgf2Z89w
ありゃ、生DATのgzip圧縮転送って結局まだ有効になってないの? >新read.cgi
684デフォルトの名無しさん:01/09/04 00:34 ID:1lIywugU
なんかindex.htmに戻るようにしただけな気がする。
685デフォルトの名無しさん:01/09/04 00:45 ID:ydrizmO6
そうかな?
686♯6411:01/09/04 00:49 ID:MmUrMvH6
あまりアグレッシヴな改造やると
嫌われるかなあ? (鬱
687デフォルトの名無しさん:01/09/04 01:40 ID:LkAi.Uls
早く「>>」規制を解除してほしいなぁ。

いちいちst=&to=打ち込めば済むんだろうけど、
ほとんどの人は「レス全部」押すだろうし。
「前100レスを読む」ボタンつけるのととどっちがいいんだろ。
688デフォルトの名無しさん:01/09/04 01:53 ID:1lIywugU
「掲示板にもどる」を修正。
index2.cgiチェックは標準からはずした。
index2.htm[l]は使われなくなるようなので、index.htm[l]に変えた。
SERVER_SOFTWAREにmod_gzipがあったら、index.htm[l]も出さないようにした。
689デフォルトの名無しさん:01/09/04 08:03 ID:b.YsqqHc
-DUSE_PATHや-DGZIPって、外すとコンパイルすらできないね。
690デフォルトの名無しさん:01/09/04 11:09 ID:1lIywugU
>>689
GZIPとZLIBなしでのコンパイルは、>>688で直してある。
691♯6411:01/09/04 14:01 ID:h7Jd1mr6
>>689 外してコンパイルの
テストはほとんどしてなかったろで(スマソ

ただ、自分が掻いた部分に関しては、
path_depth == 0 のときは
従来の動作を行うように
心がけてたんだけど…ここ2日くらいの
変更についてってない(鬱
692デフォルトの名無しさん:01/09/04 14:06 ID:EcqU4D62
USE_PATH未定義でコンパイルできるようにして
rewrite_href2をrewrite_hrefに取り込んでみた。
693♯6411:01/09/04 14:44 ID:.iUWuuDs
>>692 新バージョン見まスた。
お手数おかけしまスた。
694デフォルトの名無しさん:01/09/04 15:50 ID:s4.H7M7U
やっぱりそろそろ不要な#ifdefを整理したほうがいいような。
695♯6411:01/09/04 16:09 ID:.iUWuuDs
>>694 ちなみにウチのプロジェクトだったら、
ひととおりチェックして機能的に採用されそうなものは
条件を取り払ってしまう、というポリシーっす。
今回は誰がプロジェクトマスターというわけでも
ないからねえ(w
696♯6411:01/09/04 16:35 ID:.iUWuuDs
index仕様をcommitした。
殺してあるので、実験したい場合は以下に。

・#define USE_INDEX
・mkdir board/dat/idx

これ主体に書き換えることができれば、
BigBuffer, BigLineを置き換えていくことになろう。
697♯6411:01/09/04 16:39 ID:.iUWuuDs
>>696 linuxでは動いているが
freebsdでは動いてないっぽ…鬱
698デフォルトの名無しさん:01/09/04 16:51 ID:EcqU4D62
>>696
read.c
> /* XXX これはウソ、Expires: は、
> 現在時間を基準にすべきである */
ローカル時計じゃなくてDateヘッダ(サーバ時間)基準だってば。
699デフォルトの名無しさん:01/09/04 16:52 ID:EcqU4D62
>>698
ってread.cgiはそのサーバで実行してるから同じことか (鬱
700♯6411:01/09/04 17:09 ID:.iUWuuDs
>>697 単にサイケどっと混むのパーミションの
問題だった(鬱

>>698 おいしいつっこみありがとう。
これで二人とも鬱だ氏のう
701デフォルトの名無しさん:01/09/05 13:47 ID:Il0l9chs
CFLAGSに"-march=i686"って入れても大丈夫かな?

あと実運用のではLDFLAGSに"-s"って入れた方がバイナリサイズが小さくなる
ので その分CGI呼び出しでの負荷が軽くなる......かな?
702♯6411:01/09/05 14:50 ID:2LugT.hk
>>701 ld -s でやってるわけじゃないけど
make strip ってのが用意されてる。
703 :01/09/05 21:26 ID:ZOwDxD/w
read.cgi ver5.12 (01/9/5)
704♯6411:01/09/05 21:31 ID:zceo8xV2
>>703 まだまだだねー

漏れは別の仕事が入ったので、休憩中。
705デフォルトの名無しさん:01/09/05 21:32 ID:F4TkSYjU
>>703
これってcvsのソース持ってってくれてるのかなあ?
706デフォルトの名無しさん:01/09/05 21:48 ID:F4TkSYjU
>>705
されてなさげか
707デフォルトの名無しさん:01/09/05 21:52 ID:d3E9QeVc
ここの成果を参考にしつつ、夜勤さんが管理しているソースを夜勤さん自身が
メンテしているのだろうね。トラブルも怖いし転送量削減に関係ない部分の
アグレッシブな変更はやはりちょっと手を出しづらいのであろう。
708名無し:01/09/06 00:31 ID:4dWQq6IU
sage でやってると夜勤さんは気付かないらしい。
みんなから、もう忘れ去られてるし。
709辛口:01/09/06 00:56 ID:TLbpbvsU
俺だけかもしれないけど、新しいおもちゃを買ってもらった子供の気分だったね。

read.cgiに新機能なんか要るわけない。
何か別な機能が必要になれば、別途用意すればいい。
余計な機能は邪魔。

便利になるようにするのはいい。
ただ、それがピーク転送量や負荷に影響する可能性があれば
簡単に時間帯制限を設けたり、機能を外したりできるようにしておくべき。
(ほとんど影響しないならば、是非取り入れるべき)

とは言っても、決めるのはここにいる誰かではなく、
夜勤さんであり、ひろゆきである。
特にread.cgiには夜勤さんの決定が最重視されるだろう。
もちろん好き嫌いで決めるのではなく、いろいろ試し、
転送量や負荷を調べ、結果を見て判断するだろう。

ただ、現状のシステムを変化させる必要があるような機能は
夜勤さんはおそらく取り入れない(変更できない)。
現状に合わせて、その中で最善な機能を選択すると思われる。

read.cgiに求められるのは、ピーク時の転送量と負荷の削減。
忘れられかけているが、転送量問題が表面化するまでは、
サーバー負荷が最大の懸案だった。
特殊機能があっても使わなければ同じとは言っても、
ここ(2ch)は、他の人や組織から悪意を持って攻撃される事もある(あった)。
負荷が増える可能性も全て消しておかなければならない。
復帰作業が、スクリプト名を公開せず、
サーバーや時間帯によって厳しく決め事を設けているのを考えればわかるだろう。
便利な機能でも、負荷がかかるようならおそらく外される。

index.htm[l]から"投稿日"が消え、レスから曜日も省かれているのに、
read.cgiは投稿日を非表示にするオプションも(まだ)ない。
文字通り「1バイトを削る」という作業を行っているのに、
常時全レスにアンカーを設定する事に、夜勤さんは同意するだろうか。
natto等に導入されていたread.cgi Ver4.23には、
読みこみdatの最大値を時間帯によって変動させていた。
(もちろん、サーバーの負荷を考慮して。実際、bbspinkの最大値が変更された)
こんなオプションも(まだ)ない。
こういった基本的な点をもう一度重視して、
安定化を図るべきではなかろうか。

で、良さそうと思えるバージョンが安定したら、
そこで簡単なオプション説明でもつけて夜勤さんに推薦するといいのでは?
ここでずっと続けているから、夜勤さんも安定していないと考えて
取り入れないのかもしれない。
710♯6411:01/09/06 01:00 ID:ae./7xbU
>>709 「新しいおもちゃ」の部分は禿胴。
711 :01/09/06 04:01 ID:IAYQ/SXs
楽しげな新機能を思いつきました。
新規ログ10件表示にして、表示順を逆にして新しいレスを上に表示する
書き込み後再び、この10件表示にすれば、チャットモードの完成。

実況スレがさらに活発化!(あかんやん・・。)
このモードでは、無駄な部分は徹底的に削って超簡易表示モード
日付も時間も表示する必要は無い。
一行レスが乱れ飛ぶ事必死!(笑)
712デフォルトの名無しさん:01/09/06 08:22 ID:0iK.UQWw
>>709
同意

「こんなん作ってみました」じゃなくって、「ここをこう変更するだけで
○○の低下は××程度に抑えたまま転送量をここまで削減することができます」
という具体的な数字を挙げながら説明をして、変更のリスクに見合うだけの効果が
確実と説得できないと採用されないと思うよ。
#リーマンなら当然分かると思うが。

だからここで30個アイディアが出てそれをこのスレのバージョンですべて採用しても
本番環境では29個ボツになるかもしれない。

それを分かった上でいろいろ試すのはいいんじゃないかと思うけど。
このスレももはや直接的な実装よりも、そういう斬新なアイデアが
出てこないかという部分で期待されてるんだろうし。
713デフォルトの名無しさん:01/09/06 08:36 ID:x54XUUQc
更新日:とか年の上2桁、曜日の削除って、圧縮かからないときにしか
ほとんど効果ないよな。
圧縮かけられないリクエストって全体のどれぐらいなのかな。
714デフォルトの名無しさん:01/09/06 12:57 ID:iopuCCXI
現在がサーバ負荷よりも転送量に重大な問題があるなら、
指定した板の指定したレスの生データを吐き出すCGIを
用意してくれないかな。

monazillaで利用されて少しは転送量軽減の足しになるのではあるまいか。
715♯6411:01/09/06 13:02 ID:EWT7f5cU
正直、採用されない(採用されたがらない?)コードを
いじくりまわしてるのは、モチベーションが下がる一方で。

いろいろ問題提起もあったんで、もしこの
プロジェクトを続けるんなら、仕切り直しもしたい。

「誰でも気楽に改造を施すことができる」
「評価とかレビューのプロセスが欠落している」
などが、漏れ的には大きな問題になってると
考える。後者は、モチベーションが上がんないと
誰もレビュー買って出ない、というのもあるけど。

また、プロジェクトマスターに相当する人間が
いなかったので、実装の方向性が固まってなかった
とゆーのもある。漏れが突っ走りすぎたのも、
単に歯止めが利かなかっただけ(w

漏れ的には、「バイト数低減と転送量低減のバランス」
「ローカルキャッシュおよびキャッシュサーバへの
キャッシング効率」「実装の軽量化」「潜在バグの追放」
を睨んであれこれ手を出してた。
あ、あと、「オナーニ」「換骨奪胎」もだな(w

ちうわけで、もうしばらくは、唯一コテハン晒して
生き残ってる漏れが、取りまとめ役に回っても
構わんのだが、どーよ?

実際の実装にまつわるギロンはまた後ほど。
716♯6411:01/09/06 13:48 ID:TE3IkoNg
>>709 一点だけ。

> index.htm[l]から"投稿日"が消え、レスから曜日も省かれているのに、
> read.cgiは投稿日を非表示にするオプションも(まだ)ない。
> 文字通り「1バイトを削る」という作業を行っているのに、
> 常時全レスにアンカーを設定する事に、夜勤さんは同意するだろうか。

夜勤さんが同意するかどうかは置いといて。
投稿日を非表示にするか否かに関して、
ここでは「全部削れ」という意見は出なかったので
誰もその方面に手を着けなかった、と考えるべき。
むしろ、「曜日は復活させてほしい」という意見の
方が多かったと感じてる。(俺もそう思う)
ちなみに、現在の仕様だと、内部で投稿日を
解釈してるので、(曜日の表示を含め)日付フォーマットを
自在にいじるのは簡単。

あ、「投稿日」という文字列を削る話?
ぞぬで見てたから気づかなかった。

あと、アンカーの件は俺の改造を指してると思われ。
俺的な考えでは、局所的に見たらバイト数の増加に
繋がれど、大局的に見たらリクエスト数の軽減に
繋がるのでは? と考えて試験的に導入。
この手の仕様に関しては、いくら思考実験を繰り返しても
結局のところ実地テストなしには最終的な評価が
出せないと思うが、いかが?

path仕様でない箇所で<A name=x>を出してるのは
俺の手落ち。機会があったら禁止しとくっす。

個人的な意見では、1バイトでも削る作業より
他にすることはまだある。

最終的に判断するのは夜勤さんであり、ひろゆきさんで
あるという事実には同意。ただ、キャップが誰も
意見を言ってくれない(放置?)以上、その手前の
レベルでとりまとめを行う人間は必要。
717♯6411:01/09/06 14:04 ID:.R/e0Ey.
>>712 今後検討する仕様に関しては、
効果予測の文と一緒に提案することにするっす。

ただ、リーマン稼業と違い、
「とりあえず実装してみた、評価頼む」は
大いにありなのだと考える。
以前ウニクース板見てた連中に、ここがなんて言われてたか
覚えてる? 「理論ばかりで実装が遅れてる」(←揚げ足歓迎)
なので、漏れはまず実装して、それをたたき台にしたい
と考えた。結果的には、安定版がつくれないので、
ちょっとマズい方針だったんだが。

というわけで、「新機能実装ブランチ」を「バグ取り安定」から
分けないと、作業がしにくいなあ、と昨夜思った。

ちなみに漏れも、いわゆるリーサラだけど、
クライアントに提案して尻込みされた例は数知れず。
説得して採用させたことも多いけどね。
718デフォルトの名無しさん:01/09/06 19:19 ID:nYC88wV.
自己満足でやりたいなら、勝手にやってれば?
719名無し娘。 ◆vP.bOZFQ :01/09/06 23:23
>>716
おそらく「投稿日」という語句そのものを削る話だと思います。

>>717
>「とりあえず実装してみた、評価頼む」は
>大いにありなのだと考える。
それは同感なのですが、評価対象がふくらみすぎて、しかも、どこで
defineなりをすればどこがどう変わるのか、途中からさっぱり不明に
なってしまったと感じています。#ifdef の字面と内容が噛み合わない
部分さえ出てきた始末で。
評価してもらうのに最良の方法は、私は結局、全設定を外部ファイルによって
動的変更可能にすることだと思います。
そのこと自体が負荷増を伴うのは確かですが、それなら評価が終わって正式
採用の決まった設定から順に、再び内部定義に切り替えればいいのですし。

もし今後も続けるのでしたら、現行read.cgi(ver5.12/ver5.0x)に対し、
新たな選択肢を提起する形で、もう一度実装をし直す必要があるように
感じます。
720音楽侍 ◆NtVkSITE :01/09/07 00:08
火急的な課題がなくなったんだったら、そして、今後も改良作業を続けるのだったら、read.cの変更を出来る人を決めるだけでだいぶ違うと思うです。
read.cn変更権にパーミッションかけるだけで、だいぶ作業が効率化すると思います。

今までは時間に追われてましたけど、これからは効率化だけ見ていくべきだと思います。
あと、「こういう機能はいかがですか?」と、夜勤さんなどに確認をとるというのがもっとも効率的だと思います。
これまでの経緯から、私は名無し娘。さんがリーダーになるのが良いのでは?と思います。
721名無し娘。 ◆vP.bOZFQ :01/09/07 00:16
>>720
私は、いわゆる「プログラムは読めるけど書けない」人種ですので、ご勘弁を。
#6411さんのようなしっかりとしたコーディングをなされる方が仕切らないと
何もできないlevelに達していると感じます。
?
u
?
はじめましてー
詳しく read.c のソースは読んでないのですが

/* SJIS1バイト目=<br>タグ直前の空白が削除可かを適当に判定 */

IE等では>>722のようなことになるので,
datファイルの<br>前の空白だけでなく,
datファイルの各行末にある<>前の空白も
削除可能かどうか判定されると完璧ではないかと思います.
724♯6411:01/09/07 00:32
>>720
> 今までは時間に追われてましたけど、これからは効率化だけ見ていくべきだと思います。
同意。内部的には、効率化・安全化を進める
べきなんでは〜と。
漏れのコードは安全化より重要な「自己満足化」が多いのだが(w

> あと、「こういう機能はいかがですか?」と、夜勤さんなどに確認をとるというのがもっとも効率的だと思います。
漏れは夜勤さんハァハァではないので追いかけ切れんす。
どなたか、この点のフォローをしていただければ。

>>721
「読める」人間こそ、取りまとめに必要ではないかな?
漏れは「掻けるけど嫁ない」人間なので(w

さしあたっては、ブランチを設けることを提案。
725709:01/09/07 00:54
反論は煽り系のキャラで逝ってみる

>>716
>あ、「投稿日」という文字列を削る話?
>ぞぬで見てたから気づかなかった。
関連スレや意見を読んだりすれば、
どういう状態になっているか、板を開いてみる程度はするのが普通。
現状を認識しようとする意志が全くないわけね。
現状を把握せずに機能を提案できるなんて、すばらしい。

>俺的な考えでは、局所的に見たらバイト数の増加に
>繋がれど、大局的に見たらリクエスト数の軽減に
>繋がるのでは? と考えて試験的に導入。
試験的に導入した割に、完全に書き換えてしまうわけね。
戻せるとはいえ。「俺的な考え」を基に。
で、コンパイルが通らなくなったりしても、
尻拭いは後回しにして、結局他の人がすることになるわけだ。

>この手の仕様に関しては、いくら思考実験を繰り返しても
>結局のところ実地テストなしには最終的な評価が
>出せないと思うが、いかが?
その通り。だから?
簡単にテストができるようにしておけばいいものを、
まるで仕様が確定したかのように扱うのはどうかと思うが、いかが?

>>717
>個人的な意見では、1バイトでも削る作業より
>他にすることはまだある。
個人的な意見なんでしょ。他人に押し付けないでよね。
ま、ある程度は同意するけど。
そもそも「1バイトを削る」自体が夜勤さんの言葉からの引用だけど、
それも読んでないんだろうね。

>「とりあえず実装してみた、評価頼む」は
>大いにありなのだと考える。
その通りだね。
普通は評価前に仕様確定するようなやり方はしないけどね。
726709:01/09/07 00:54
あ、俺はリーダーに最も適任なのは夜勤さんだけど、忙しいだろうし
それ以外では名無し娘。 ◆vP.bOZFQさんが適任だと思うね。
関連スレのチェックもしているし、重視すべき事項を一番わかっていると思う。
直接コーディングなんかできなくても、
機能追加の方向性やスケジュール等を把握して示してくれれば充分。
以前から、要望やらをまとめたりしてくれてたしね。

既に実装済みの機能や不具合の修正もいくつもあるのに、
(zlib等の他にも、ぱっと見で>>687とか>>559とか。>>606は未?)
fix版が出せないのは悲しいからね。
727名無し娘。 ◆vP.bOZFQ :01/09/07 01:11
>>724 >>726
ボランティアの作業で、仕切る人間が口だけじゃまずいと思いますです。
あくまでコーディングをする人にすべての権利があり、それを承知の上で
周りの人もそれぞれの意見をいう。。。という共通意識が何より大切かと。
ですから私が仕切るわけにはいきませんです。

夜勤さんがread.cgiにどれくらいの時間を割けるのかは、わかりません。
ですがやはり、いくらソースが長くなっても、オリジナルのソースと改良案は
(部分毎に)並行して提示しないと、採用には抵抗があると思います。

そろそろ、replace系の関数を最適化する方が先なのかもしれませんね。
728♯6411:01/09/07 01:13
マターリと逝くよ…

> 現状を認識しようとする意志が全くないわけね。
> 現状を把握せずに機能を提案できるなんて、すばらしい。

オナーニだったんだよ、所詮。


> 試験的に導入した割に、完全に書き換えてしまうわけね。
> 戻せるとはいえ。「俺的な考え」を基に。
> で、コンパイルが通らなくなったりしても、
> 尻拭いは後回しにして、結局他の人がすることになるわけだ。

同意。自分じゃ条件外すことはめったにしないしのー。


> 簡単にテストができるようにしておけばいいものを、
> まるで仕様が確定したかのように扱うのはどうかと思うが、いかが?

放置されてて誰も構ってくれないので、
(うん、外せといわれたら即座に外せはするんだけど)
外す方法を吟味せずにcommitした漏れはダメダメだ。


> 個人的な意見なんでしょ。他人に押し付けないでよね。

オナーニなんだ、言わせてくれよう。


> そもそも「1バイトを削る」自体が夜勤さんの言葉からの引用だけど、
> それも読んでないんだろうね。

読んだ記憶はあるんだが、俺解釈してた。
字面通りに受け取らないとダメねー


> 普通は評価前に仕様確定するようなやり方はしないけどね。

<a name=>の件は、正直、すまなかった。


…漏れはもともと煽りキャラ持ってないんだが、
マターリキャラも持ってないので、疲れた…
(引用ばかりすると、十分煽りになりうるんだが)
…疲れたので、今晩はもう逝くよ…探さないでくれ…鬱だ氏のう
729音楽侍 ◆NtVkSITE :01/09/07 01:28
>>727
>ボランティアの作業で、仕切る人間が口だけじゃまずいと思いますです。

ちょっと違うです。むしろ、全体を見られる人はコーディングしない方がいいです。
どうしても自分が動くと、いろいろ出ます。読めるけどかけない人の方が適任かと。

いろんなプロジェクト見てくださいです。
リーダーやマネジャーがコーディングを始めたプロジェクトは大抵納期間に合いませんです。
品質管理もままなりませんです。

>>728
相談と報告のキモチが良薬かと・・・
とりあえず、既出の不具合で未修正のもの。
キャッシュであぼーんされたレスが見える?(詳細不明)>>441
PATH_INFO時に間違えるとレス1しか表示されない>>624
かちゅ〜しゃ規制>>670
設定ファイル読みこみ時のオーバーフロー>>674
行末の空白削除>>723
それ以前は>>397だけど、どれだけ残ってるかな・・

その他、今気がついたもの。
批判要望板で最近よく出てくる
「このスレッド大きすぎます」への暫定対処として、
datファイルの大きさがある程度(最大値-16K位)を超えたら、
「もうすぐ読めなくなります。新スレの準備を。」の警告があれば親切かも。

あと、できるだけ設定ファイルから読みこめるようにして、
リメイクは不要にした方がよさそうだね。
>>723さんは
「スクリプト関連要望統合スレッド 」
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=994071363
の人ですね。
732730:01/09/07 04:48
改めてソースを見たら、既に>>674は修正されてた。氏にます。
他にも修正済みがあるかも。
これまで行った変更点をすべて列挙して、それぞれの目的と変更量とそのリスク、
転送量削減に対する効果、その他の効果などを一覧にまとめてテストケース作って
すべて再評価した上で改めて内容を吟味したらいかが?

テストサーバに置いてここの住人にテスト手伝ってもらうとかはできるっしょ。
仕様書はソースコード、って状況はやっぱりPGの自己満足モードで終わっちゃうよう。
read.cgiに加えられている変更点は単純に2つに分類できる。
A)転送量・負荷低減のために行われるもの
B)機能を追加してより使いやすくするもの
そして、それぞれの変更点について、
1)導入する
2)導入しない
3)時間帯によって導入する
の3つの選択肢がある。
この3つのうち、1)か2)かを選択するようにしておくのは
#ifdefで切り分けるだけなので比較的簡単だが、
3)の形式は#defineで導入し、さらに時刻によって
処理を変化させなければいけないので、1)2)よりは面倒になる。
しかし、転送量や負荷の少ない時間帯に比較テストできるため、
「試しにやってみて結果を知りたい」場合に有効になる。
試した結果が、時間制限付にするか完全導入するかの判断材料になる。

というわけで、「この機能は時間制限つきで導入してみよう」という指針が
示されれば、必要な変更を施して仮導入してもよさそうな気がする。
さらに、外部ファイルで変更可能にしておけばさらに良かも。
ブランチを設けるのは大賛成。
Linuxみたく、安定版と開発版とで仕切る人が別になるのも手だろう。
従事するメンバーを分けるほど人数が多いわけじゃないが。

当面、安定版は現行のVer5.12と同等の機能部を抽出し
不具合を修正したものをベースに、ある程度の機能追加をしたものになると思う。
「ある程度」がどの程度なのかは、まとめ役の人の裁量に従いたいが、
-DZLIBは以前から作ってある
-DCHECK_MOD_GZIPはあった方がいい
-DUSE_SETTING_FILEは柔軟性のために必要
等々、結構難しそう。
さらに、-DZLIB,-DUSE_MMAP等の「見栄えは変わらないが負荷低減を狙う機能」は、
早目に安定版にいれて、確定させてしまいたいところだ。

また、増えすぎた#ifdefの中で、Ver5.10以前の導入で問題出ていないものは
条件をはずしてしまっていいと思う。
個人的には-DLASTMOD,-DNEWBA,-DGSTR2は全然問題なし、
-DPREVENTRELOADも#ifdef無しで構わないと思うが、
意志決定はまとめ役の人の判断に任せるのが一番。
BadAccessの旧版にあるAccept-UAのリストなどは、
コメントとして残しておくのがいいかもしれない。
(気分的には、BadAccess中のReadOnlyなローカル配列はstaticにしたいなー)

あ、娘。さんは「オリジナルも残したほうが」と言ってるな。
だったら、採用をほぼ決定したものに対しては、
同じ1種類の#ifdefにしてしまったら、少しはわかりやすくなるかも。
以下は名無し娘。さんのお手伝い・・・のつもり。

>#ifdef の字面と内容が噛み合わない部分

-DCUTRESLINKは、本当に#define名と内容が一致していない。
変更部のメインは最適化で、リンクの削除はオマケ程度な感じ。
方向としては、
・mmapがSHARED & READONLYで使えるようにBigBufferを読みこみだけに
・ファイル全体やレス全体を走査する回数を極力減らす
・そのために変換や空白削除、http://のリンク等を全て同時に行う
といったところ。
ただ、そのことにより内部で保持するデータ形式が変わってしまい、
他の部分への影響も出ている。
名目通りのCUTRESLINKに相当するのは大きなswitch文の一箇所だけで
全体のdefine名は、つけ直すならBUFFER_READONLYとか
NO_RES_NUL_TERMINATEとか、そんな感じに近いと思う。

>replace系の関数を最適化する方が

上とも関連するけど、現在、-DCUTRESLINKを指定すると
replace系は全く使われない。
現行のVer5.12等では、hlinkReplaceの中でdoReplaceが使われているが、
これもressplitter_splitの内部に吸収されている。
ソース中ではTYPE_TERIが定義されていない場合にsomeReplaceが呼ばれるが、
同等の変換は既にressplitter_split内部で為されているので、本来必要ない。

というわけで、-DCUTRESLINK(内容は違う)を採用する方針でいくなら、
replace系には目を向けなくてもいいと思う。
あえて不安材料を挙げれば、Ver5.1xでの稼動実績があるのが基本部だけで、
保持データ系式の変更やhttp://リンク、mmapとの併用、
これらでの実績が乏しい点があるが、今のところ
まともなdatを低負荷時に読んでいる範囲では、問題は出ていない。

逆に、-DCUTRESLINKを採用しない/条件等によっては機能をoffにしたい、
となる可能性があるなら、replace系の最適化には意味がある。
その辺の判断と指示はまとめ役の人にお任せしたい。
737♯6411:01/09/07 12:17
>>734
細分してみた。

> A)転送量・負荷低減のために行われるもの

* 外部的に機能がほぼ変わらないもの

A0) 安全性の向上のみを目的としたもの(いわゆるバグフィクス)
A1) 転送量の低減を狙っているもの
A2) 転送量以外の負荷低減
A3) 単なる設計・構造・インタフェイス変更

> B)機能を追加してより使いやすくするもの

B0) 従来仕様と相反しない、独立した機能
B1) 従来仕様の不備を補完するもの
B2) 従来仕様の不備を再定義するもの
B3) 従来仕様と置き換わるもの

フォローきぼんぬ
738♯6411:01/09/07 12:20
>>735
PREVENTRELOADは、まだなんとなく
潜在的な問題をはらんでるような気もしない
でもないんだか、杞憂だろうか?
739♯6411:01/09/07 12:23
>>736
CUTRESLINKを再評価するのであれば、
名前付けなおしてさらに細分化するのがよろしかと。

あと、従来とまったく置き換わってしまうものに
関しては、モジュールを切り分けることを
前向きに検討した方がいい。
>>730おつかれ。
ところで、提案していた

>批判要望板で最近よく出てくる
>「このスレッド大きすぎます」への暫定対処として、
>datファイルの大きさがある程度(最大値-16K位)を超えたら、
>「もうすぐ読めなくなります。新スレの準備を。」の警告があれば親切かも。

はたしかに良いな。

是非搭載してほしいところだが、夜勤さんは嫌がるだろうか?
(read.cgiの負荷増大につながるため)
今CHUNKが強制になってる感じ?
#ifdefでCHUNKにならない従来型UIにする選択肢なくなってない?
742723:01/09/07 13:22
>>731
そうです。
743♯6411:01/09/07 15:34
ブランチ案

○リリースには明示的にリビジョンを設ける
ex) 5.12
今回は、どの辺から始まってるか微妙なので、
-r4.99あたりで始めるといいのでは。
夜勤さんから、本番に適用したバージョンを
もらい受けて、-r5.xx などとしてcommit
以降、Revision 4.99 が存在するとして説明。

○リリース候補(4.9.x.x)
プロジェクトマスター
(あるいはマスターから委任された人間)
のみがcommitできるブランチ。
cvs tag -b RC-4-99 のようにつくっておく。

○ワーキングブランチ(4.9.x.x.y.y)
今までheadでやってたものは、みなブランチの中で
作業を行う。
cvs co -r RC4-99 bbs で取り出したブランチに、
cvs tag -b HEAD-4-99 のようにつくっておく。

○プロジェクトマスターの役目
・適宜ワーキングを吟味し、RCに取り込み、commit
・夜勤さんの作業に追従
・新しいリリースが出たら、ブランチを作成。

○検討事項
ワーキングブランチは、
改造系統毎に分ける、あるいは
担当毎に分ける方がいいかもしれない。


ブランチの作成は、サーバ持ってる aki さん
あたりにやってもらえると早いんだけど、
さしあたっては名無し娘。さんがやってもらえれば。
(ローカルで念入りに実験した方がいいかも)
漏れがやってもいいです。
744♯6411:01/09/07 15:37
>>743 最新リリースの入手に手間取るようだったら、
さしあたっては8/28 4:00(GMT)あたりのものを
「仮リリース」として据えるといいかも
745音楽侍 ◆NtVkSITE :01/09/07 15:54
検証班の作業も工程に入れて置いてください(^_^;)
746名無し娘。 ◆vP.bOZFQ :01/09/07 17:32
ver5.12(夜勤さん版)のひとつ前に実動してたのって、verいくつでしたっけ。。。

昨日ちょっとだけ、試しにteriに入ってるread.cgiをいじめてみたら、zz_xx の
size制限がかなり厳しくなってるようで。zz_xx[20]になってるのかな。
たとえば http://piza2.2ch.net/test/read.cgi?bbs="></a> みたいなこと
やられると気持ち悪いからかもしれません。
こんな感じで、いろいろちょこちょこと夜勤さんが手直ししてくださってるのかも。

なんにせよ、一度夜勤さんにお出まし願った方がよさそうですね。
どのソースを元に、どういうとこから手をつけてくのがいいか。
などなど。
747デフォルトの名無しさん:01/09/07 17:56
>>746
> なんにせよ、一度夜勤さんにお出まし願った方がよさそうですね。
さんせい
>>746-747 そうですよね とにかく運営サイドの誰かに度々ここに来てもらって
意思疎通ができないと こちら側だけで突っ走ってもタダの骨折り損になりそうな
気がしますし
>746
http://piza2.2ch.net/test/read.cgi?b=tech&k=998845501
の段階で zz_GetString が変わって、キーの先頭1文字しか見なくなりました。
たとえば
http://piza2.2ch.net/test/read.cgi?board=tech&kiji=998997848
のように書いても正しく読めます。
750名無し娘。 ◆vP.bOZFQ :01/09/07 23:20
>>747-748
機会があればお願いしてきます。
>>749
1文字判定もできますが、たとえば zz_ky は今でも20文字(19文字)を
格納しています(判定後、切り出された文字列。たとえば key=998997848 の
"998997848"部分)。
http://piza2.2ch.net/test/read.cgi?bbs=123456789abcdefgh
をリクエストしたときのエラーメッセージ中、下部「過去ログ倉庫」の
リンク先を見ると、何となく何をやっているかがわかります。
751名無し娘。 ◆vP.bOZFQ :01/09/07 23:21
>>750
...hまでじゃだめじゃん。
http://piza2.2ch.net/test/read.cgi?bbs=123456789abcdefghijklmnop
やると。。。ね。
752 ◆D69Zsbfg @夜勤 ★:01/09/08 20:33
どうも、お世話になっています。 > みなさん。
明日の未明(今晩)あたりに、登場しまーす。
で、最新版を組み込もうかなぁと目論んでいます。

よろしくお願いします。
753音楽侍 ◆NtVkSITE :01/09/08 20:57
おつかれさまです。
754デフォルトの名無しさん:01/09/08 21:04
ヤター
......となると どれを組み込んでもらうのか整理しておかないと
#defineを消すだけでは外せない機能がありすぎ。やばいって。
全然コード考えてないけど、この程度の条件分けは必要だろ。

/* "投稿日"を(時間帯によって)非表示にする */
#define CUT_DATE_STRING

/* テレホタイムに読みこめるdatの最大値 */
#define MAX_FILESIZE_BUSY

/* 大きすぎて読みこめなくなります */
#define CAUTION_FILESIZE

/* <a name=...> */
#define CREATE_NAME_ANCHOR

/* '<'や'&'の直前に、必要ならば空白をいれる */
#define CHARCHECK_STRICT

USE_PATHのサブに
#define OUTPUT_SUBBUCK
#define OUTPUT_INDEX
758名無し:01/09/08 22:05
さて、もうすぐ1000000000秒ですが、何か起きるでしょうか。
プログラムがこけたら笑えます。

もうすぐ1000000000秒 2chでもお祝いをしましょう
http://kaba.2ch.net/test/read.cgi?bbs=news&key=999927113&ls=50
大きな問題は2点。

1.<a name=>が外せない
→単純にサイズが増える(総リクエストが減る可能性はある)
2.CHUNK_ANCHORが外せない
→>>nnnでリンクされる範囲が不要に大きくなる

2は、REWRITE_HREF2で一応回避可能。
761デフォルトの名無しさん:01/09/08 22:32
>>757
さっさとやろうかと思うんだけど、

/* "投稿日"を(時間帯によって)非表示にする */
#define CUT_DATE_STRING
これ時間帯判定いるのかな? いらないんでないかと思うがどうかな。

いらないのならr2chhtml.hだけで完結するんだが。
>で、最新版を組み込もうかなぁと目論んでいます。

何が何やらぐちゃぐちゃなのでマズいんではないかと..
763名無し娘。 ◆vP.bOZFQ :01/09/08 22:34
>>752
それまでに現状をまとめとかにゃいかんなぁ。
とはいっても、最新版の状況は私もさっぱり(汗
>>758
bbs.cgiがtimeを見ているのですが、これもちょっと心配(w
知りうる資料では、if(time > xx)な比較の仕方をしていないのでだいじょぶそう。
正直、最新版を組みこむのはもう一日待ってもらったほうが無難。

それより、夜勤さんに質問しておいたほうがいいと思う。
・datの最大サイズは、時間帯によって可変にした方がいいのか
・「大きすぎます」に近付いたら警告を出していいか
・ツールの差分取得(の圧縮)は、.htaccessで対応してもらえるのか
・○○な機能は必要なのか
・○○な機能を組みこんで良いか
等々。
765名無し娘。 ◆vP.bOZFQ :01/09/08 22:41
まず、.datをmod_gzipでgzip圧縮して転送する件、直近の夜勤さん情報。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=996674822&st=267&to=268&nofirst=true

http://piza2.2ch.net/test/read.cgi?bbs=tech&key=981726544&st=856&to=859&nofirst=true
の意図は、.htaccessの記述によって mod_gzipを.datにも有効にしようという
ことのようですが、もしや .htaccess に記述しても無効なのでしょうか。
有効ならば、.htaccessに記述するだけで、.datも圧縮転送しますです。

もちろんread.cgiも.dat圧縮に対応しておけば("?raw=")差分転送とかできて
うれしい(^^
766名無し:01/09/08 22:43
夜勤さんの多忙なので、今日しかチャンスは無いのだと思う。
767761:01/09/08 22:48
とりあえず時刻判定なしで

/* "投稿日:"を非表示にする */
#define CUT_DATE_STRING

commitしたっす
>>763
>知りうる資料では、if(time > xx)な比較の仕方をしていないのでだいじょぶそう。
数値レベルで処理してるものは今回は関係ないよ。
文字列化するときに長さを9桁(以下)固定前提に処理しているものがあると
まずいってだけ。
rewrite_href中、} else { をぶった切って、

#ifdef CHUNK_ANCHOR
 /* chunk仕様を生かすためのkludgeは以下に。 */
 mst = (st - 1) / CHUNK_NUM;
 mto = (to - 1) / CHUNK_NUM;

 if (mst == mto) {
  /* chunk範囲 */
  mst = 1 + CHUNK_NUM * mst;
  mto = CHUNK_NUM * (mto + 1);
 } else
#endif
 {
  /* chunkをまたぎそうなので、最小単位を。*/
  mst = st;
  mto = to;
 }

にすれば、CHUNK_ANCHORがdefineされていなくてもコンパイルは通るようになる
mod_gzip使うのなら
    mod_gzip_item_include mime "text/.*"
でいいのではないかな? あとserver-parsedの問題は
    XBitHack full
とした上で .htmlファイルのパーミッションを"g+x"にしてもらえば
Last-Modified吐くようになるし
771デフォルトの名無しさん:01/09/08 23:22
>>769
commitした
CREATE_NAME_ANCHORの変更点を捜索中・・・

r2chhtml.h内で
#ifdef CREATE_NAME_ANCHOR
 ・・・
#else
それぞれ、パラメータのlはそのまま無視するようにして、書きなおす
CUT_DATE_STRINGとの関係で、さらにややこしいか?
#define R2CH_HTML_RES_MAIL(n, l, m, nm, d, t)
#define R2CH_HTML_RES_NOMAIL(n, l, nm, d, t)
#define R2CH_HTML_RES_SAGE(n, l, nm, d, t)
#endif

rewrite_href()内の
 /* 新しい表現をブチ込む */
 if (isprinted(st) && isprinted(to))
 {
  d += sprintf(d,
   "<a href=#%u>",
   st);
 } else
を、
#ifdef CREATE_NAME_ANCHORで囲む

同、後半の
#ifdef USE_PATH

#ifdef CREATE_NAME_ANCHOR
に変える

必要なら、rewrite_href2()内の #ifdef USE_PATH で囲まれたif文の、
else までを #ifdef CREATE_NAME_ANCHORで囲む

out_html()内の、
pPrintfでフォーマットに
R2CH_HTML_RES_MAIL,R2CH_HTML_RES_NOMAIL,R2CH_HTML_RES_SAGEを用いている部分の、
全体を
#ifdef CREATE_NAME_ANCHOR
で囲み、
#else以下に、同じ内容でパラメータに2つあるlineNoを1つだけにしたものをつける
#endif

こんなもんだと思う。ただし、未検証(ごめん)
773名無し娘。 ◆vP.bOZFQ :01/09/08 23:39
>>768
それくらいは知ってますよん(^^
ちょっと知り得ないところからもtimeと比較する値が提供されているようだから、
念のためのお話。
774デフォルトの名無しさん:01/09/08 23:41
>>772
やってみる。ちょいお待ちを
775774:01/09/09 00:07
>>772
あててみた。
動作確認も軽くしてみたけど、厳重なチェックとかよろしく
776名無し娘。 ◆vP.bOZFQ :01/09/09 00:11
何を考えるべきか混乱中。
まずはソースの整理&可読性の回復かな。

まず zlib を試してみて、うまくいったら正式実装。ただし念のため、
簡単に強制的に gzip_flag = 0 できるようしておいたほうがいいかも。
そして、GZIP/ZLIB関連の#ifdefを整理。

bzip/deflateは考えないことにしてよいかな?
expire/cache-controlも考えなくていい?

CUTRESLINK関連は、imodeの使い勝手や関数の使用不使用と一部連動しているが、
これらを切り離した上で、1つの-DCUTRESLINK(CUTRESLINKするかしないかの
単純なもの)にまとめる。実装はしておいて、いつでも切り替えられるように
しておけばよい(設定外部ファイル化も実装できているのでいつでも移行できるし)。
778777:01/09/09 00:16
操作ミスごめん。

>>776
>bzip/deflateは考えないことにしてよいかな?
bzipは考えなくて良いと思う。
deflateはzlibネイティブだし、HTTP/1.1に言及があるので将来的にはアリかな。

>expire/cache-controlも考えなくていい?
当面考えなくていいんじゃないかな。
779名無し娘。 ◆vP.bOZFQ :01/09/09 00:21
read.h に追い出されているものと追い出されていないものって、
何か戦略的な区別あります?
一度このあたり整理した方がよいかも。
# ソース読んできます
780デフォルトの名無しさん:01/09/09 00:26
外部的に変化のないcondition消さない?
REWRITE_HREF2とかNEWBAとか。
781♯6411:01/09/09 00:30
今起きた…

>>769
>>775
すまんこってす。

>>779
read.h は、read.c における
外部インタフェイスとして切り分けた。
782名無し娘。 ◆vP.bOZFQ :01/09/09 00:54
>>778
よくみたらexpiresって実装されているんですね。どうしましょう。。。
すぐに正式作用できそうならしちゃってもいいかと。
>>780
GSTR2 も消してよさそう。従来型との互換はあるので。
COOKIE もとりあえず消しちゃって、お蔵入りじゃダメでしょうか。
condition多すぎて読むのがつらいです。
>>781
了解です。
>>782 Expiresについては>>679参照 少なくとも転送量を増やすことはあっても
減らすことはないと思われ
784名無し娘。 ◆vP.bOZFQ :01/09/09 01:05
あと、replace系はすべて破棄して、その分、CUTRESLINKする/しない場合の
>>xxx へのリンク設定部分を最適化ってことでよさそうですね。

…なんてことを考えていたら、むしろ絶対URI表記にリンク設定(<A>タグ)
しないことの方も考えていいような気がしてきた。この部分は.datに<A>タグ
ないものをread.cgiでわざわざはっているのだけど、絶対URI表記はコピペ
すればそのまま飛べるんだし。どうでしょう?
>>780
USE_INDEX2CGIは、いまさら不要です。

>>775
CREATE_NAME_ANCHORなしでテストしたら、
>>60が、
 read.cgi?bbs=tech&key=998695422&st=51&to=100&nofirst=true
 read.cgi/tech/998695422/51-100
になるんですが、これでいいの?
従来仕様(st=60&to=60&nofirst=true)は考えないでいいの?

CHUNK_ANCHORで、"&n=t"ってなっているけど、nofirst=trueと混じっちゃって
キャッシュが効きません。
bbs.cgiとのからみがあるから、n=tとnofirst=trueを簡単に統一できる手段が
欲しいな。
786775:01/09/09 01:15
>>785
それはread2ch.hにコメントで書いたけど、CHUNK_ANCHORもコメントアウトすれば目的の番号だけの
参照になるんだよな。
CREATE_NAME_ANCHORなしでCHUNK_ANCHORありってのはそもそも矛盾してるよね?
頭で条件つぶしかけるべき?
787775:01/09/09 01:18
>>785
>CHUNK_ANCHORで、"&n=t"ってなっているけど、nofirst=trueと混じっちゃって
>キャッシュが効きません。
この点単純に修正してcommitしてみた。
788名無し娘。 ◆vP.bOZFQ :01/09/09 01:18
>>783
了解です。expires部分もいったんソースから消してしまいましょうか。
>>784
補足。read.cgiでの動作を以下のようにしてはどうかなという提案です。
LIMIT_PM - LIMIT_AM:>>xxx のリンク削る。
LIMIT_AM - LIMIT_PM:http://... ftp://... のリンクはる。

read.cの最後4つの関数 cutWordOff,ExistHlinkX,ExistHlink,hlinkReplaceは
#ifndef CUTRESLINK してしまってよいようです。
789772:01/09/09 01:20
>>775
お疲れさま。
rewrite_hrefの後半の書き換え、>>772に書いた通りじゃまずいって後で気がついたんだけど、
直してくれたんですね。どうもです。

今、夜勤さん向けにread2ch.hよりちょっとだけ詳しい機能説明書いてます。
勝手にON/OFF推奨してるんで、そのへんの判断がおかしかったらツッコミお願い。
もうちょっと時間くださいな。
>>782
>>783
>>788
EXPIRESは氏んでるってば
まあ役に立つものではないので
ソースから削るのを止めはしないけど
(これって6411氏が入れたんだっけ?)
ひとつひとつ。
>>788

>read.cの最後4つの関数 cutWordOff,ExistHlinkX,ExistHlink,hlinkReplaceは
>#ifndef CUTRESLINK してしまってよいようです。
これ当てました。
792名無し娘。 ◆vP.bOZFQ :01/09/09 01:33
>>790
ええ、氏んでるかどうかではなく、ソースから削っちゃうかどうかを。
793772:01/09/09 01:36
REWRITE_HREF2削除した。
imodeの時に、最初から(st=1&to=10)の時だけ[次の10レス]が出ません。
なんか、nofirst=true相当になっている感じ。
795名無し娘。 ◆vP.bOZFQ :01/09/09 01:41
>>794
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=999099427&ls=20
この問題かな。。。ずいぶん昔からですね。
796説明がき−1:01/09/09 01:41
有効なオプションの説明
◎Ver5.1xで導入済み
○Ver5.1xで導入済みだが、変更あり
△新機能・大きな変更ではない等で、ON推奨
▲新機能・変更が大きいので、とりあえずOFF推奨
×新機能・テスト中等の理由で、開発版でもOFFになっているもの

○CUTRESLINK
ファイルのreadとsplitを最適化する
(define名がおかしい)

○LINKTAGCUT
混雑時間帯に >>000 形式のレスへのリンクを削除。
「レスを全部読む」の増加への対策として、
表示範囲外のリンクは削除しないように変更。
(CUTRESLINKが有効な時のみ機能する。0/1で指定)

△RELOADLINK
一番最後に、「更新したレスを表示」のリンクを表示する
連打されてもNotModifiedが返るので、大きな負荷にはならないはず。

◎LASTMOD
導入済み。ほぼ必須。

×EXPIRES
proxy用に、キャッシュの保持期限を出力する。

◎NEWBA
BadAccessの新しいバージョンを使う。
稼動中。今のところ問題なし。かちゅ〜しゃ規制に注意。

◎GSTR2
nofirst → n など、短縮形で指示できるようにする
稼動中。今のところ問題なし。

▲USE_PATH
PATH_INFOを処理することにより、
http:://piza2.2ch.net/test/read.cgi/tech/998997848/10-20
のリクエストを処理できるようになる。
CHUNK_ANCHORとの併用で効果を発揮する。
http:://piza2.2ch.net/test/read.cgi/tech/
時に、板のスレ一覧を表示するため、負荷が増える可能性あり。

×COOKIE
Cookie による名前、E-mail フィールドの初期値の埋め込みを CGI 側で行う
Last-Modified付加により、proxyでキャッシュされた場合に各種の不都合
(最悪の場合、キャップ・トリップのパス漏れ)が発生するため使用不可に
797説明がき−2:01/09/09 01:42
◎PREVENTRELOAD
書き込み直後のリロードを防止する
FORCE_304_TIMEで指定された時間の間、304 Not Modifiedを返す
稼動中。

◎GZIP
△ZLIB
出力を圧縮する。
ZLIBを指定すると圧縮にgzipを使わなくなるため、
プロセス数が減り、負荷低減につながる。

△RAWOUT
datの(差分)取得をread.cgiで処理する。
生datも圧縮して転送量を減らすことができる。
CGIへのリクエストが増加する可能性があるので、負荷が大きくなる可能性あり。
mod_gzipの設定次第では、不要になる場合も。

△USE_MMAP
fread(read)の代わりにmmapを使用する。
負荷の低減が期待できる。

×EXPLICIT_RELEASE
明示的に資源を解放する。
CGIプロセスが終了すれば、資源は解放されるので明示的な解放は不要。
逆に、解放処理が負荷を増加させる危険があるので、OFF推奨。

×USE_INDEX
read.cgi側によるindexの実装(experimental)
/board/dat/idx/ディレクトリがあれば、各レスのindexを作成する。

×ALL_ANCHOR
▲CHUNK_ANCHOR
トップに「全部読む」/CHUNK_NUM毎に区切ったレスへのanchorをつける
どちらかはあった方がよさそうだけど、
CHUNK_ANCHORには、現在、副作用があるので。
※表示範囲外への >>000 形式のリンクを、1レス分であっても
CHUNK_NUMレス分へのリンクに変更してしまう。

△LATEST_ANCHOR
「最新レス LATEST_NUM」をつける
798説明がき−3:01/09/09 01:42
▲SAGE_IS_PLAIN
sageレスのとき、名前を太字にしない
(<a href="mailto:sage">の代わりに<font color=>をつける)
若干転送量が減るが、見た目が変化する。

×USE_INDEX2CGI
index2.cgiがあったら、「掲示板に戻る」のリンク先をindex2.cgiにする
もはや不要?

△CHECK_MOD_GZIP
mod_gzipが導入されていたら、「掲示板に戻る」のリンク先を
/板名/ にする。
(OFFにすると、戻り先はaccept-encodingによって、/index.htmか/index.htmlになる)

△CUT_DATE_STRING
"投稿日:"を非表示にする

▲CREATE_NAME_ANCHOR
各レスにアンカーをつける。
CHUNK_ANCHORとの併用でキャッシュ効果が上がる可能性があるが、
転送量を増やす結果になる可能性もある。
これをOFFにした場合でも、CHUNK_ANCHORをOFFにしないと、
>>000 形式のリンク先が広範囲となるため、
転送量を増やす可能性がある。

△USE_SETTING_FILE
板毎に設定が書いてあるファイルを使用する。
板のディレクトリにSETTING_FILE_NAMEのファイルがあり(SETTING.TXTと同じ場所)、
有効なエントリがあれば、デフォルト値を置き換える。
SETTING_R.TXTは
---
FORCE_304_TIME=30
LIMIT_PM=23
RES_NORMAL=50
MAX_FILESIZE=512
LINKTAGCUT=0
---
など。空行可。'='前後の空白不可。'='がなかったり、マッチしなかったりしたら無視
最後の行に改行が入ってなかったら、その行も無視
現在設定可能な値は、
RES_YELLOW
RES_REDZONE
RES_IMODE
RES_NORMAL
MAX_FILESIZE (Kbyte単位で設定)
LIMIT_PM
LIMIT_AM
FORCE_304_TIME (PREVENTRELOAD有効時のみ)
LATEST_NUM (LATEST_ANCHOR有効時のみ)
LINKTAGCUT (CUTRESLINK有効時のみ)
799775:01/09/09 01:45
あ、>793 は私。名前書き間違えた
800796-798:01/09/09 01:47
説明がき書いている間に、すでになくなってしまったものがいくつか・・・
ON推奨/OFF推奨は俺の主観なので、他の人の意見も聞いて、
合意のうえで夜勤さんに提案したいな。
△CUT_DATE_STRING
"投稿日:"を非表示にする
えーと、今現在のbbs.cgiでは":"のようですが、
そのあたりの対応は大丈夫でしょうか?
802775:01/09/09 01:51
>>801
その通りになってるつもりですがどうでしょうか(^^;
803775:01/09/09 01:54
×なやつ全部消していいすかね? バッサリと。

×EXPIRES
×COOKIE
×EXPLICIT_RELEASE ; これは…残す? (^^;
×USE_INDEX ; これは残す?
×ALL_ANCHOR
×USE_INDEX2CGI
>>802
datには"投稿日"なんて文字は元からないのか。
今バージョンでは、":"が表示されてません。
805名無し娘。 ◆vP.bOZFQ :01/09/09 01:59
>>803
NEWBA,GSTR2 の旧部分も削っちゃってよいと思います。
>>796 NEWBA のかちゅ〜しゃ規制部分も、おそらく大丈夫そうですし。
806775:01/09/09 02:00
>>804
こりゃまた失敬。直しました。
807775:01/09/09 02:12
とりあえず以下のものをバッサリ削除した。

NEWBAの旧部分
EXPIRES
USE_INDEX2CGI
COOKIE
808775:01/09/09 02:21
LASTMODはON固定ってことでcondition消しますか?

GSTR2はすでに昔のコードは無いみたい。1文字か完全一致かの
条件分けになってますね。
imodeのむりやり修正。
なんか根本的に間違っている気がするが、ないと困るので。
いんちきでごめん。

dat_out()中に一行追加。
 if (out_html(level, line, lineNo))
  break;
+ if (lineNo==1 && is_imode() && nn_st==1) ++out_resN;
810775:01/09/09 02:35
>>809
あてた。
811 ◆D69Zsbfg @夜勤 ★:01/09/09 02:36
どんなもんでしょ?
全ファイル(makefile含む)を どこかに上げていただけると
とっても嬉しいです。

で、kaba とかでテストしてみたいです。

まだのようでしたら、また明日 お伺いしますが、、、
812 ◆D69Zsbfg @夜勤 ★:01/09/09 02:36
本当に、みなさんすみませんねぇ、
感謝 感謝 です。
813775:01/09/09 02:38
夜勤さん、ご苦労さまです。
最新ソースはcvsから随時
http://www.gedoh.org/aki/2ch/current/bbs/
にコピーされていて、
その全部が read.tgz に圧縮されているようです。

read2ch.h で設定をいろいろいじる必要があるかもしれません。
特にバージョン名(笑)
814775:01/09/09 02:39
>>813
あぎゃ。
× ご苦労さまです
○ お疲れ様です

細かいかな(^^;
815775:01/09/09 02:48
各設定の説明は
>>796-798
でなされていますが、
現時点の状態で出しちゃっていいんでしょうかね(笑)
他の皆はどうしたんだろう。寝た?
816名無し娘。 ◆vP.bOZFQ :01/09/09 02:52
>>815
ソース追いきれずにコメント不能状態です(氏
一度どこかに導入してもらって仕切り直せれば、それが一番楽かもしれませんね。
>>784(>>788で補足)に書いてあることは、
ressplitter_split()内の
#if 1
#else
#endif

#ifndef シンボル名(NO_LINK_URL_BUSY,etc)
#else
#endif
にすれば、ほぼ実現するんじゃなかろうか?
(レス1の時の動作とi-mode対応がどうかな)
818 ◆D69Zsbfg @夜勤 ★:01/09/09 02:58
まず、全部ダウンロードして、サーバにアップして
make しました。
このように言われました。

gcc -c read.c -DHAVE_READ2CH_H -Izlib -g -O2 -Wall -funsigned-char -o read.o
read.c: In function `dat_read':
read.c:1254: `MAP_FAILED' undeclared (first use this function)
read.c:1254: (Each undeclared identifier is reported only once
read.c:1254: for each function it appears in.)
make: *** [read.o] Error 1
819775:01/09/09 03:00
>>818
USE_MMAP時のOS側の定義が足りないようですね。

read2ch.hで#define USE_MMAPをコメントアウトするといかがでしょうか。
820 ◆D69Zsbfg @夜勤 ★:01/09/09 03:02
USE_MMAP コメントアウチおしました。

こんどは、

gcc -c datindex.c -DHAVE_READ2CH_H -Izlib -g -O2 -Wall -funsigned-char -o datind
ex.o
datindex.c: In function `create_index':
datindex.c:372: `MAP_FAILED' undeclared (first use this function)
datindex.c:372: (Each undeclared identifier is reported only once
datindex.c:372: for each function it appears in.)
datindex.c: In function `open_dat':
datindex.c:412: `MAP_FAILED' undeclared (first use this function)
datindex.c: In function `datindex_open':
datindex.c:457: `MAP_FAILED' undeclared (first use this function)
make: *** [datindex.o] Error 1
ってゆーか、Linuxでmmapが失敗したら返す値(シンボル)って何だろ?
現バージョンでの範囲外へのリンクがますいです。
PATHで呼ばれた時は大丈夫だけど、現行形式で呼ばれたときに
read.cgi?bbs=tech&key=998997848101-150#145
なんてことになってしまいます。

転送量削減が主なら、PATHで呼ばれたかをチェックしてリンク先を変えることになるのかな。
823 ◆D69Zsbfg @夜勤 ★:01/09/09 03:03
× コメントアウチおしました。
○ コメントアウトしました。
>>820
ぐえ。datindex.cって、USE_INDEX時にしか使わないモジュールですね。
これ外しましょう(笑)
Makefileの 9行目、 OBJS = の行で、"datindex.o"を削除してください。
>>821
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/mmap.2.html
一応、MAP_FAILEDみたいですが。
USE_INDEXとか、USE_PATHが#defineされたままだったりして
827 ◆D69Zsbfg @夜勤 ★:01/09/09 03:09
>>825
ヘッダ構成の違い?
829 ◆D69Zsbfg @夜勤 ★:01/09/09 03:10
>>824 さんに言われた通り
datindex.o を削除したら、できましたー。
830775:01/09/09 03:11
>>827
おお! 動いてる!
read2ch.hはどのように変更しましたか? >夜勤さん
それを元に一旦CVS側で区切り(タグ)を付けたいですね。
次のバージョンでは
#ifndef MAP_FAILED
#define MAP_FAILED (void *)(-1)
#endif
をread2ch.hに入れたほうが良さそうやね
833 ◆D69Zsbfg @夜勤 ★:01/09/09 03:13
>>830
read2ch.h は、まだ何も変更してないですー。
834 ◆D69Zsbfg @夜勤 ★:01/09/09 03:14
>>832
あっまだ、read.cgi にはしてないです。
read5x.cgi です、
CREATE_NAME_ANCHORとか、有効になってる。
夜勤さん、暇な時にでも>>796-798にある説明を見て、
何をON(define)にして何をOFFにするか決めちゃうと良いと思うです。
ああなるほど、リンクをクリックするとread.cgiのほうに
飛んじゃうのか。自分の名前を取得するようにできる?
837♯6411:01/09/09 03:17
>>818 おつかれさまです。

んっと、暇あったら、
$ fgrep -n MAP_FAILED /usr/include/*.h /usr/include/sys/*.h
の実行結果を教えていただけませんか?

何のディストロなんだろ??
>>834 夜勤さんへ。
暫らくread5x.cgiでテストするのでしたら、read2ch.hで

#define CGINAME "read5x.cgi"

にしていただけないでしょうか。
とりあえず、これだと次の10レスが表示されるけど、これでいいのかな?
http://kaba.2ch.net/test/read5x.cgi?bbs=news&key=999960057&imode=true&st=1&to=10
840775:01/09/09 03:19
>>838
rewrite_href内でCGINAME使ってない(涙
841 ◆D69Zsbfg @夜勤 ★:01/09/09 03:19
なにもでないです >>837
fgrep -n MAP_FAILED /usr/include/*.h /usr/include/sys/*.h
842♯6411:01/09/09 03:21
>>840 …油断してた…

>>841 了解、MAP_FAILED再定義すべきですね。
843775:01/09/09 03:22
じゃあ、一度ここで判明したりしたいくつかの修正を加えて
cvsに上げますかね?
それをまた夜勤さんにdownloadしてもらう形とか。

夜勤さん、時間どれぐらいとれますか?
>>837
http://www.maido3.com/server/usagi/ によると
 Linux2.2.19 Slackware
だそうです。

今時だとslackware使っている人は少ないか。
845 ◆D69Zsbfg @夜勤 ★:01/09/09 03:23
http://kaba.2ch.net/test/read5x.cgi?bbs=news&key=999920210#20
ここで>>9がなぜか#95にリンクしてる
848 ◆D69Zsbfg @夜勤 ★:01/09/09 03:25
>>843
あせりは禁物かと、、、
また、明日の今ごろ登場予定。。。
849775:01/09/09 03:27
>>848
おお。>847 とかも出てるし、明日の夜までに直す形がイイ感じ?
>♯6411氏
digest.[ch]いらなくなったのなら、MakefileのSRCSから消してちょうだい。
あと、datindex.cの中身全部を#ifdef USE_INDEXで括っておくように。(w
851名無し娘。 ◆vP.bOZFQ :01/09/09 03:30
夜勤さん&みなさまお疲れさまですー。

MAP_FAILED >>831 でよろしそう。
gzipぱっと見問題なさそう。zlib使えてるってことかな?
852音楽侍 ◆NtVkSITE :01/09/09 03:30
確認しましたです。>5x
HTTP1.0と1.1で「掲示板に戻る」のindex.htm(l)の切り替え確認しました。

51- 101-ですが、頭に「1」の書き込み表示がないのは仕様でしょうか?
もしかするとちょっと不便かもしれません。
n=tはキャッシュが効かないからnofirst=trueにしたんじゃ
なかったっけ?
>>848
お疲れ様でした〜
USE_PATHで旧形式を指定されたときはリダイレクトするか
BASEを吐いて常に新形式でリンクするというのはどうします?
856855:01/09/09 03:52
いまのところはGSTR2と一緒で隠し機能にしたほうがいいかな
857-:01/09/09 04:02
http://kaba.2ch.net/test/read5x.cgi?bbs=net&key=998373518&st=151&to=200&nofirst=true

>> のリンクが、最大レス番号を超えてないものでも一部切れてたりするんですが・・・
154 160 171 など
とりあえずtag打っときなさいな。
859857:01/09/09 04:11
あれ、仕様でしたか?582あたりの。
>>858
tag名どうしまっか?
>>857って、何かリンクする条件が逆のような気がする
表示範囲内→リンクしない(タグを削除)
表示範囲外→リンクする

とりあえず、今出ている不具合は、↑と
MAP_FAILEDの再定義>>831
リンク先(rewrite_hrefの#)>>847
CHUNK_ANCHORで1-が無い>>852
ぐらいか?
862857:01/09/09 04:28
http://kaba.2ch.net/test/read5x.cgi?bbs=net&key=998373518&st=196&to=196&nofirst=true

>> のリンクは read.cgi を read5x.cgi に直したとしても飛べません
863775:01/09/09 04:29
>>862
それ、>>840 (涙
>>860
YAKIN0909 とか
ReleaseVersionになるのは、一日一回がせいぜいでしょ。
865775:01/09/09 04:37
>>864
YAKIN20010909でtag打っときました
866名無し:01/09/09 04:43
バージョンを実際の5.XXに合わせるべきだと思います。
今回は、仮リリースだからね。ver14だし。
正式にインストールされた時は、実際のバージョンにすべきだけど。
868775:01/09/09 04:50
>>831
read2ch.hだとincludeのタイミングが速かったりするので、read.hに入れた
869857:01/09/09 04:51
>>863
えーと、st=xx&to=xxの形式なのに、↓で無条件に xx-xx を付けてるのが問題ではないかと。
わかりづらかったらゴメン

#ifdef USE_PATH
d += sprintf(d,
"<a href=\"%s%d-%d",
depth_expr,
mst, mto);
#else
d += sprintf(d,
"<a href=\"%s&st=%d&to=%d&nofirst=true",
depth_expr,
mst, mto);
#endif
870775:01/09/09 04:52
>>840
CGINAME参照するようにした
871775:01/09/09 04:53
>>850
>あと、datindex.cの中身全部を#ifdef USE_INDEXで括っておくように。(w
括った(笑)
やっぱ ネスケ4.72ではgzip圧縮した場合にContent-Lengthが入ってると
Last-Modifiedが無効になるみたい

HTTP/1.1 200 OK
Date: Sat, 08 Sep 2001 20:00:12 GMT
Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_ssl/2.3.6 OpenSSL/0.9.3a
Content-Encoding: gzip
Last-Modified: Sat, 08 Sep 2001 19:33:13 GMT
Content-Length: 974
Connection: close
Content-Type: text/html

            場所: http://kaba.2ch.net/test/read.cgi?bbs=news&key=999920210
     ファイルMIMEタイプ: text/html
           ソース: 現在、ディスクキャッシュに入っています
ローカル キャッシュ ファイル: MUOF7EA1
        最終更新日時: 09/09/01 04:33:13 地方標準時
        最終更新日時: 09/08/01 19:33:13 世界標準時(GMT)
         内容サイズ: 41675
          有効期限: 日付なし
         文字セット: Shift_JIS
        セキュリティ: このドキュメントでは暗号化によるセキュリティ保護は行われていません。
873775:01/09/09 05:13
>>869
PATHではなく旧形式で呼ばれたときに、USE_PATH時でも旧形式で >> のリンクを
生成するようにしてみた。
874775:01/09/09 05:16
んじゃ寝るー。
875名無し娘。 ◆vP.bOZFQ :01/09/09 06:04
明日あたりに新スレ立ててきますので、それまでにこのスレのまとめが
できるようにお願いいたしますです。

実装・検討待ちの案一覧

gzip/zlib関連conditionの整理
 gzip/zlibをconditionなしで採用し整理

PATH_INFO
 >>869 >>873
 リンク先がいろいろおかしい
 ・http://kaba.2ch.net/test/read5x.cgi?bbs=net&key=998373518&st=196&to=196&nofirst=true
 ・http://kaba.2ch.net/test/read5x.cgi?bbs=net&key=998373518&st=1&to=10 の 1
 ・http://kaba.2ch.net/test/read5x.cgi?bbs=net&key=998373518&st=1&to=1
 ・http://kaba.2ch.net/test/read5x.cgi?bbs=net&key=998373518&st=151&to=200&nofirst=true

CHUNK_ANCHORで1-が無い
 >>852

CUTRESLINK, replace系関数
 >>736
 とにかく整理

URL記述に対するリンク設定も時間帯によらせる
 >>817

<a name>をつけるかつけないかをconditionによらせる

"投稿日"非表示を時間帯によらせる

スレスト時FORM
 >>11

dat制限サイズ警告
 >>740
876名無し娘。 ◆vP.bOZFQ :01/09/09 06:04
mmap時にlockすべきか
 >>139 >>425

行末の空白削除
 >>723

NN4.72でgzip圧縮&&Content-LengthがあるとLast-Modifiedが無効
 >>872

.hからいろいろなくなってるけど?
 >>670
 http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998695422&st=81&to=81&n=true

キャッシュであぼーんされたレスが見える?(詳細不明)
 http://teri.2ch.net/test/read.cgi?bbs=saku&key=996761078&st=408&to=408&nofirst=true

FORCE_304_TIMEの動的変動
 鯖負荷に応じて動的に変更する

外部設定ファイル
 >>798

dat,kako
 /kako/ に対応
 ツール作者さんに対応お願い
  * raw=xxx.yyy の形式でリクエスト。 xxx=最終レス番号, yyy=そのときのサイズ。
  * 一行目はステータス:
  * [+OK] の場合は差分のみを送信する。
  * [-INCR] (Incorrect)の場合はすべてのデータを送信する。
  * [-ERR (テキスト)]の場合はなんかエラーが起きた。

datの一部についてのLastModを求める
877名無し娘。 ◆vP.bOZFQ :01/09/09 06:05
deflate
 そのうち対応

板ダイジェスト
 そのうち対応

スレッド一覧
 そのうち対応

スレインデックス
 >>680 >>696
 そのうち対応

condition一覧(更新しなくちゃ)
 >>796-798

r2chhtml.hいろいろ
 http://natto.2ch.net/test/read.cgi?bbs=hp&key=999020167&ls=20
 http://natto.2ch.net/test/read.cgi?bbs=hp&key=998774537&ls=20(前スレ)

その他
 http://www.gedoh.org/aki/2ch/tiki/
/dat/が見れない状態が続くならdat制限サイズ警告は
優先度高いですね
>>793でREWRITE_HREF2は削除したって書いてますけど
まだソースに残ってませんか?
>>875
http://kaba.2ch.net/test/read5x.cgi?bbs=net&key=998373518&st=1&to=10 の 1
これは、2-5は現在表示中に全部含まれているので、#2で正しいと思いますが。
lockに関しては やるとしたらread.cgiではshared lock(F_RDLCK)
bbs.cgi等の書き込み側ではexclusive lock(F_WRLCK)になるんだろうけど
どっちにしろbbs.cgi等の書き込み側の協力がないと......
http://kaba.2ch.net/test/read5x.cgi?bbs=news&key=999911192&ls=50
1000超えのスレッドや停止されたスレッドでは
「新レスの表示」も不要ですね。
#ifdef Katjusha_Beta_kisei
"Kathusha",
#endif

つづりが間違っています。
"Katjusha",
>>883
直した。

>>875
リンクを貼ってくれない場合や、#95などが出る原因を修正。

if (!*zz_http_user_agent && !*zz_http_language)
というのがあるんだが、*が付いてるのは理由があるのか?
NULLチェックのつもりだと思うんだが。
>>884
if (!zz_http_user_agent)
zz_http_user_agent = KARA;
if (!zz_http_language)
zz_http_language = KARA;

ってのが別にあるからな。とはいえ
if ( zz_http_user_agent == KARA || zz_http_language == KARA )
とか
if ( zz_http_user_agent[0] == '\0' || zz_http_language[0] == '\0' )
って感じで分かりやすくして欲しい気はするが..
nofirst=trueの表記を統一しました。
#define NO_FIRST "&n=t" で省略形式に統一可能。

>>879
REWRITE_HREF2の削除もれを消しました。

>>796-798に手を加えてconfig.txtとして追加した。
conditionをいじったら、config.txtもいじってね。
http://www.gedoh.org/aki/2ch/current/bbs/config.txt
実情にあってない所があったら指摘してください。
887881:01/09/09 11:06
fcntl()でのshared/exclusive lockだと read.cgiがひっきりなしに呼ばれていると
bbs.cgi等の書き込み側がexclusive lockを取得できなくなってしまう可能性もあるな...

となると 書き込み側では
  1. まず別のファイル名でオープンして(例えば"987654321.new")そこに書き込む
  2. 書き込みが終わったら rename("987654321.new", "987654321.dat") を実行
って感じでやってもらう方がいいのかも これならread.cgi側でのlockは
考えなくてもいいんだな bbs.cgi等の書き込み側の排他制御は必要だろうけど
CUTRESLINK関係の話が、
-DCUTRESLINKで加えられた変更全体を指すのか、
レスのリンクをカットする機能のみを指すのか、若干わかりにくい。

CUTRESLINKの名前をOPTIMIZE_SPLIT等に変更して、
本来のリンクをカットする部分のみを#ifdef CUTRESLINKで囲うことを希望。
889775:01/09/09 14:10
>>886
REWRITE_HREF2削除に漏れあったのか。修正さんくす
890775:01/09/09 14:17
CUTRESLINKはONの状態で採用ってことでOFF時のコード消さない?

CUTRESLINKまわりの二重状態がいちばんソース見難く、でかくしてる感じだし。
とりあえずの行末の空白削除(タグ消し)対策
ressplitter_split()の、case ' ':
-  if (bufp == *This->buffers) /* 名前欄が半角空白の場合 */
-   *bufp++ = ' ';
+  if (bufp == *This->buffers /* 名前欄が半角空白の場合は最低1文字必要 */
+   || (resnumber && isSJIS1(*bufp-1))) /* 行末の文字化け対応 */
+   *bufp++ = ' ';
/*
resnumberのチェックを外せば名前・メール欄の
直後の空白もある程度消せるようになるが、
厳密に判定しないと(名前欄が)でこぼこに
なってしまうので、もう少し待ち。
*/
転送量的には、"名無しさん"の"ん"の直後の空白が(今のままでは)
削除できないのが痛い(3byte前から調べれば削除できる)ので、
空白が必要かを完全に判定する厳密なルーチン
(末尾から調べ、長くても数文字で終わるはず)を作成予定。
名前とメールの直後の空白が消せるし、
<br>前の空白もまだ結構残っているので、
処理を少し複雑にしてでもやる価値はあると見る。

もう一点。
index.htmlに合わせる場合、
メール欄が"0"の場合は""として扱うほうが良いのかな、と。
その場合、
splitting_copy()の最後に、
+ if (s[1][0] == '0' && s[1][1] == '\0')
+  s[1][0] = '\0';
つければOK。
以上は、http://teri.2ch.net/test/read.cgi?bbs=accuse&key=994071363&st=448&to=449
の問題は、dat内に'&','<',"http://"が現れるたびに直前の文字をチェックして
' 'を入れるか判定する必要がある割には、実際に壊れている割合は非常に少なく、
費用対効果の点で疑問が残るので、OFF推奨のconditionとして実装予定。
>>890
個人的には賛成。
Ver5.12でも使われているし、ON前提で書かれている機能もけっこうある。

他にも同意する人がいて、反対する人が現れなかったら、
必要なのは「決断」?
893名無し娘。 ◆vP.bOZFQ :01/09/09 16:20
>>880
その通りでした(^^;
>>890 >>892
決断の一助となるべく賛成を表明(^^
894775:01/09/09 16:21
>>893
賛成多数につき(笑)
やりまーす
895775:01/09/09 16:33
>>894
ということでCUTRESLINKをON固定として条件削除しました。
896892:01/09/09 16:46
>賛成多数につき(笑)
笑った。
897892:01/09/09 16:51
そういえば、LASTMODもまだON固定にしてなかったよね?
ネスケ関係の問題ってLastModifiedを吐く側には対処できそうにないし、
ON固定にして、万一不具合が出てもその都度対処すればよいのではないかと。
898名無し娘。 ◆vP.bOZFQ :01/09/09 17:01
>>895
おつかれですー。
>>897
賛成ですー。
899名無し:01/09/09 17:11
批判要望板では、曜日は表示して〜〜〜とのことです。
会社行く日なのか判断出来なくなっちゃうよ〜〜〜。
900775:01/09/09 17:14
>>897
んじゃLASTMODもON固定にしときます。

>>899
確かに曜日賛成。
901775:01/09/09 17:21
>>900
LASTMOD ON固定にした。

>>891
+   || (resnumber && isSJIS1(*bufp-1))) /* 行末の文字化け対応 */
これってSJISの1バイト目でも2バイト目でもつかえるコードがたまたまそこにあると
誤動作するよね?
「投稿日:」は削っていいから、「(日)」を・・・。
903775:01/09/09 17:23
>>902
でも曜日ってread.cgiで消してるんじゃないんだよね(笑)
904名無し娘。 ◆vP.bOZFQ :01/09/09 17:26
私も曜日賛成。でも曜日はbbs.cgiなんですよねぇ。
read.cgiで現在時刻/日付でも表示しますか?
905デフォルトの名無しさん:01/09/09 17:26
http://homepage2.nifty.com/katuya/mp/index.html
わからないやつはここへ書き込め
906名無し娘。 ◆vP.bOZFQ :01/09/09 17:28
もうちょっとこのスレで粘って、>>875-877 でやりやすいとこから実装して
削っちゃって下さい。
>.hからいろいろなくなってるけど?
がちょっと気になります。。。
>>901
誤動作(余分に不要な空白を吐く)けど、html上では無視されるので
大丈夫ではないかと。
というか、<br>の直前でも同じアルゴリズム(超単純な判定)で空白をカットしているはず。
>>878に賛成。
今のところめいめいにdatをチェックして警告、スレ移行を行っているようだが、
dat/が見られないとそれもままならなくなり、混乱を招く可能性が高いのでは?
909775:01/09/09 17:44
>>875

>PATH_INFO
具体的にどんな問題だっけ。最初のやつは >>873 で解決してるはずだけど
">>1"があるときにnofirst=trueでリンクしてしまって結局飛べないってのはあるか。

>CHUNK_ANCHORで1-が無い
無い? あるようにも見えるけど

>CUTRESLINK, replace系関数
CUTRESLINK削除済み

><a name>をつけるかつけないかをconditionによらせる
CREATE_NAME_ANCHORになってる

>スレスト時FORM
> >>11
なんか「ストッパー」があるかどうか判定するコードは入ってるみたい。

>>877
>condition一覧(更新しなくちゃ)
cvsのconfig.txtでメンテしてる
910775:01/09/09 17:59
>>909
>>PATH_INFO
>具体的にどんな問題だっけ。最初のやつは >>873 で解決してるはずだけど
>">>1"があるときにnofirst=trueでリンクしてしまって結局飛べないってのはあるか。

">>1"のときに限りst=1&to=1&nofirst=trueにして一つだけ見られるようにした。
範囲指定時は1は除外されるままだけど。
911名無し娘。 ◆vP.bOZFQ :01/09/09 18:12
>>909
>PATH_INFO
残りは
http://kaba.2ch.net/test/read5x.cgi?bbs=net&key=998373518&st=151&to=200&nofirst=true
だけかな。リンクはったりはらなかったりしている。完全に逆転しているわけでもないようで。
>CHUNK_ANCHORで1-が無い
"1-"ではなく"1"ですね、おそらく。nofirst=trueになってしまっているのは
不便ではなかろうかということだとおもいます。>>910でおっしゃっている通りで。
どっちがよいのでしょうねぇ。

>>875-877 以降のもの
config.txtにcondition一覧(SETTING_R.TXTの有効事項も)
lock >>881 >>887
912775:01/09/09 18:27
>>911
>リンクはったりはらなかったりしている。
これは>>884で修正したみたい。
>>882は?
>>903
曜日は内部で解析してるからやろうと思えばできるはず…
r2chhtml.h内のRELOADLINK関係でCGI_NAMEが使われてないっす。
CUTRESLINKがON固定になったので、res_split,findSplitterは消し。
doReplace, someReplaceも消し。
(out_htmlx内でsomeReplaceを読んでいる部分は全て不要)

警告出ししてみた。

read2ch.h
/* 「大きすぎます」の警告を出すまでのサイズ(KB単位)
 MAX_FILESIZE - CAUTION_FILESIZE*1024 を超えたら警告
 これが未定義なら、警告は出さない */
#define CAUTION_FILESIZE 16
/* デバッグ用
#define MAX_FILESIZE_BUSY (MAX_FILESIZE - 64 * 1024) */

r2chhtml.h
/* ファイルサイズやばい: %d=超えた大きさ %d=表示できない大きさ %s=付加文字列 */
#define R2CH_HTML_HEADER_SIZE_REDZONE \
 "<p><table><tr><td bgcolor=red>\n" \
 "<font color=white>サイズが%dKBを超えています。%dKBを超えると%s表\示できなくなるよ。</font>" \
 "</td></tr></table>"

read.c html_head内の、最後のif(is_imode())の直前あたりに、
#ifdef CAUTION_FILESIZE
 if (zz_fileSize > MAX_FILESIZE - CAUTION_FILESIZE * 1024) {
  pPrintf(pStdout, R2CH_HTML_HEADER_SIZE_REDZONE,
   MAX_FILESIZE/1024 - CAUTION_FILESIZE, MAX_FILESIZE/1024, "");
 }
#ifdef MAX_FILESIZE_BUSY
 else if (zz_fileSize > MAX_FILESIZE_BUSY - CAUTION_FILESIZE * 1024) {
  pPrintf(pStdout, R2CH_HTML_HEADER_SIZE_REDZONE,
   MAX_FILESIZE_BUSY/1024 - CAUTION_FILESIZE, MAX_FILESIZE_BUSY/1024, "時間帯によっては");
 }
#endif
#endif
915775:01/09/09 18:59
>>914
とりあえず
r2chhtml.hのRELOADんとこでCGINAMEを使うようにして、
read.cでres_split, findSplitterは削除した。
916デフォルトの名無し:01/09/09 19:07
そろそろ次のスレッドの準備を
名無し娘。よろしく!
917914:01/09/09 19:08
あ、警告文字列はコピペだし、
#ifdefで判断する部分と実際の数値を同じdefineで扱ってしまっているので、
その辺は適宜変更お願いします。
918774:01/09/09 19:13
>>914
適当に突っ込んでみた
919775:01/09/09 19:15
>>918
774って買いてしまった。775ね

>>914
>doReplace, someReplaceも消し。
>(out_htmlx内でsomeReplaceを読んでいる部分は全て不要)
これイマイチ不安なんだけど、どうなのかな。
/*
findSplitterの代わり

これも削除しましょう。関数がなくなったのにコメントだけ
残ってると混乱の元
>>919
someReplaceは !TYPE_TERI のconditionの中にしかありません。
不安ならdoReplace, someReplaceを
#ifndef TYPE_TERI
#endif
で括っては。
922775:01/09/09 19:34
>>920-921
 両方やった。
http://kaba.2ch.net/test/read.cgi?bbs=news2&key=999391480
http://kaba.2ch.net/test/read5x.cgi?bbs=news2&key=999391480
これって倉庫落ちしてHTML化を待っているdatの保存場所が
変わったことを意味してると思うんですけど、保存場所を
教えてもらうことはできるんでしょうか?
ブラウザで見ることができない位置(public_htmlの外とか)にあれば
とくに差し支えないと思うんですけど。
ストッパー・1000オーバーのRELOADLINK非表示

dat_out後半の#ifdef RELOADLINK - #endif を
最後の
if (strstr("ストッパー")・・・

html_foot()
の間に移動。
if 文内の条件を
 if (!level && lineMax == lineLast) {
→if (!level && lineMax == lineLast && lineMax <= RES_RED && !threadStopped) {
に変更。
925775:01/09/09 20:21
>>924
あてた
最近のストッパーは投稿日が「停止」になってるので
それの対応も必要ではないかと。
if( s[2]!=0 && strstr( s[2], "ストッパー" )) threadStopped=1;

if( s[2]!=0 && (strstr( s[2], "ストッパー" ) || strstr( s[2], "停止" )) threadStopped=1;
でいいかな?
閉じ括弧が1個足りなかった。
if( s[2]!=0 && (strstr( s[2], "ストッパー" ) || strstr( s[2], "停止" )) ) threadStopped=1;
「停止」になってるスレひとつ教えて(笑)
datとってきて確認したかったり
931775:01/09/09 20:34
>>930
さんくす。確認したのでcommitした
932名無し娘。 ◆vP.bOZFQ :01/09/09 20:41
みなさまお疲れさまです。新スレです
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&ls=20

このスレで完結できそうな話題は、このスレで続けちゃっていいと思います。
次スレに持ち越しそうなものは、早めに見切りをつけて移動しましょう(^^
>>923
過去ログ倉庫のスレにも情報無いですね。
http://green.jbbs.net/computer/bbs/read.cgi?BBS=20&KEY=992663547&LAST=50
次スレに持ち越して、夜勤さんに聞いてみるしかないか。
ひみつかもしれないけど。
934 ◆D69Zsbfg @夜勤 ★:01/09/09 21:14
秘密というか、今の状態は暫定です。
dat とかその辺は、全面改修の可能性あり。
たぶん、dat 直読みはできなくなるでしょう。。。(多分だけどね、まだ決まっていない)
こんな早い時間?から、お疲れさまですー。
936名無し娘。 ◆vP.bOZFQ :01/09/10 00:29
このスレで実装・検討待ちの案一覧

gzip/zlib関連conditionの整理
 gzip/zlibをconditionなしで採用し整理

#define Katjusha_Beta_kisei されていない(元はdefineされていた)

URL記述に対するリンク設定も時間帯によらせる
 >>817

"投稿日"非表示を時間帯によらせる

FORCE_304_TIMEの動的変動
 鯖負荷に応じて動的に変更する

CHUNK_ANCHORでnofirst=trueになっているが、どうか

mmap時にlockすべきか
 >>139 >>425

dat,kako
 /kako/ に対応
 ツール作者さんに対応お願い
  * raw=xxx.yyy の形式でリクエスト。 xxx=最終レス番号, yyy=そのときのサイズ。
  * 一行目はステータス:
  * [+OK] の場合は差分のみを送信する。
  * [-INCR] (Incorrect)の場合はすべてのデータを送信する。
  * [-ERR (テキスト)]の場合はなんかエラーが起きた。

datの一部についてのLastModを求める

NN4.72でgzip圧縮&&Content-LengthがあるとLast-Modifiedが無効
 >>872

キャッシュであぼーんされたレスが見える?(詳細不明)
 http://teri.2ch.net/test/read.cgi?bbs=saku&key=996761078&st=408&to=408&nofirst=true

deflate/板ダイジェスト/スレッド一覧/スレインデックス
 >>680 >>696
 そのうち対応

過去datの場所が変わりそう
 >>923 >>934

condition一覧/SETTING_R.TXT記述一覧
 http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998695422&st=81&to=81&n=true
   CM_BBSPINK, LOGLOGOUT x, TYPE_TERI, Katjusha_Beta_kisei

r2chhtml.hいろいろ
 http://natto.2ch.net/test/read.cgi?bbs=hp&key=999020167&ls=20

その他
 http://www.gedoh.org/aki/2ch/tiki/
>>914を確認したいんだけど、現在kaba鯖上に450KBとか、そういうでかいdat
が見当たらない……

どのように動作確認すべきだろうか?
>>937
MAX_FILESIZEを小さく書けばいいんでは
>>937
確認のために巨大なコピペを貼りまくる

アクセス制限を喰らう

(゚д゚)ウマー

ってかkaba鯖バージョンは警告未対応では?
940937:01/09/10 01:47
>938
……おれはなにをボケているんだろうか。
多謝。

>939
アクセス制限は勘弁願いたいが、警告未対応というのはマジですか?
テストされていないということ?
>>940
警告のコードが入ったのは夜勤さんが昨夜入れてからだってこと。
今日入ったpiza2版にはたぶん入ってる。
つーかいい加減新スレ行きなされ。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521
942937:01/09/10 01:52
恥の上塗りだ……

>940の発言は忘れてください……
とにかく、この2日間は、大車輪の活躍をしてくれた、
775さん、
名無し娘。 ◆vP.bOZFQさん
884さん、
886さん、
等に感謝したい。

本筋に関係ないので前スレで。
[r2chhtml.h]
//***********************************************
・追加
#define R2CH_HTML_TAIL_SIMPLE \
 " (%02d:00PM - %02d:00AM の間一気に全部は読めません)<br>\n"
/* テストなので使っていないけど */
#define CHUNKED_ANCHOR_SELECT_HEAD(bbs,key) \
 "<form><select onchange='" \
 "var st=parseInt(this[selectedIndex].text);" \
 "location=\""CGINAME"?bbs="bbs"&key="key"&st=\"+st+\"&to=\"+(st+49)+\"&"NO_FIRST"\";"\
 "'>"
#define CHUNKED_ANCHOR_SELECT_STARTNUM(num) \
 "<option>"num"-"
#define CHUNKED_ANCHOR_SELECT_TAIL \
 "</select></form>"


[read2ch.h]
//***********************************************
・ALL_ANCHORとLATEST_ANCHORをなくしたいので
LATEST_NUMの扱いをRES_NORMAL等と同様にしてほしい。

//***********************************************
・追加
/* select form形式で CHUNKED_ANCHORを表示する */
/*#define CHUNKED_ANCHOR_WITH_FORM
「掲示板に戻る」「レスを全部」「最新レス」との統一が取れていない
*/
[read.c]
//***********************************************
・前半にある#ifdef LATEST_ANCHOR - #endif を
全て条件を外し、中身を生きに。(全部 #ifdef USE_SETTING_FILE の中)

//***********************************************
・out_html()の後半、/* imode */ の手前、
  if (isbusytime && out_resN > RES_NORMAL) {
   ・・・
   return 1;
  }
の部分を、
  if (isbusytime && out_resN > RES_NORMAL) {
#ifdef CHUNK_ANCHOR
   pPrintf(pStdout, R2CH_HTML_TAIL_SIMPLE, LIMIT_PM - 12, LIMIT_AM);
#else
   ・・・
#endif
   return 1;
  }
に。
//***********************************************
・html_head()
#ifdef CHUNK_ANCHOR
 int i;
#endif
警告が出るので削除。

//***********************************************
・同、html_head()の真中辺りから、 } else { の手前(その下がimode)まで、
#ifdef ALL_ANCHOR
 ・・・
#endif
#ifdef CHUNK_ANCHOR
 ・・・
#endif
#ifdef LATEST_ANCHOR
 ・・・
#endif
を、
 /* ALL_ANCHOR は常に生きにする
  ただし、CHUNK_ANCHORが生きで、かつisbusytimeには表示しない */
#ifdef CHUNK_ANCHOR
  if (!isbusytime)
#endif
  {
#ifdef USE_PATH
   if (path_depth)
    pPrintf(pStdout,
     R2CH_HTML_PATH_ALL_ANCHOR);
   else
#endif
    pPrintf(pStdout,
     R2CH_HTML_ALL_ANCHOR,
     zz_bs, zz_ky);
  }
  html_thread_anchor(1, first_line()-1);
に。
//***********************************************
・html_foot()
最初から、
 if (line <= RES_RED && !stopped) {
の手前までを、
static void html_foot(int level, int line, int stopped)
{
#if 0
 /* 初期化した数値を再び使うのはダイジェスト関係だけのはず */
 out_resN = 0; /* ここで初期化するといいらしい? */
#endif

 if (is_imode()) {
  html_foot_im(line,stopped);
  return;
 }
 if (last_line() < lineMax) {
  /* RELOADLINKの表示条件の逆なんだけど */
  html_thread_anchor(last_line() + 1, lineMax - LATEST_NUM);
#ifndef CHUNK_ANCHOR
   /* 最新レスnnがかぶるので苦肉の策
    LATEST_ANCHORを生きにして、なおかつ末尾に持ってきているので
    out_html内の R2CH_HTML_TAILを修正するほうが
    処理の流れとしては望ましいが、
    「混雑時にCHUNK_ANCHORを非表示にする」等の場合には
    再修正が必要なので保留 */
  if (!(isbusytime && out_resN > RES_NORMAL))
#endif
  {
   /* LATEST_ANCHORも常に生きにする */
#ifdef USE_PATH
  if (path_depth)
   pPrintf(pStdout,
    R2CH_HTML_PATH_LATEST_ANCHOR,
    LATEST_NUM, LATEST_NUM);
  else
#endif
   pPrintf(pStdout,
    R2CH_HTML_LATEST_ANCHOR,
    zz_bs, zz_ky,
    LATEST_NUM, LATEST_NUM);
  }
 }
に。
//***********************************************
html_head()の手前あたりに、以下・・・最後までを追加

#ifdef CHUNK_ANCHOR
/* first-lastまでのCHUNKED anchorを表示
firstとlastはレス番号。firstに0は渡すなー */
static void html_thread_anchor(int first, int last)
{
 int line = ((first - 1)/ CHUNK_NUM) * CHUNK_NUM + 1;
 if (first <= last) {
#ifdef CHUNKED_ANCHOR_WITH_FORM
  pPrintf(pStdout, CHUNKED_ANCHOR_SELECT_HEAD("%s", "%s"),
   zz_bs, zz_ky);
  for ( ; line <= last; line += CHUNK_NUM) {
   pPrintf(pStdout, CHUNKED_ANCHOR_SELECT_STARTNUM("%d"),
   line);
  }
  pPrintf(pStdout, CHUNKED_ANCHOR_SELECT_TAIL);
#else
  for ( ; line <= last; line += CHUNK_NUM) {
#ifdef USE_PATH
   if (path_depth)
    pPrintf(pStdout,
     R2CH_HTML_PATH_CHUNK_ANCHOR,
     line,
     line + CHUNK_NUM - 1,
     line);
   else
#endif
    pPrintf(pStdout, R2CH_HTML_CHUNK_ANCHOR,
     zz_bs, zz_ky,
     line,
     line + CHUNK_NUM - 1,
     (line == 1 ? "" : NO_FIRST),
     line);
  }
#endif
 }
}
#else
#define html_thread_anchor(first, last)  /* (void)0 nothing */
#endif /* CHUNK_ANCHOR */
/* 最初と最後に表示されるレス番号を返す(レス1を除く)
imode未対応, isprintedと同じ動作を。
*/
static int first_line()
{
 if (nn_st)
  return nn_st;
 if (nn_ls)
  return lineMax - nn_ls + 1;
 return 1;
}
static int last_line()
{
 /* html_footを呼ぶ時に最終表示行を渡すようにすれば要らないんだけど */
 int line = lineMax;
 if (nn_to && nn_to < lineMax)
  line = nn_to;
 if (isbusytime) {
  int busy_last = first_line() + RES_NORMAL - 1 - is_nofirst();
  /* 細かい計算間違ってるかも */
  if (busy_last < line)
   line = busy_last;
 }
 return line;
}
950775:01/09/10 22:36
これは何ですか? (^^;
951次スレ166:01/09/11 17:35
H4sICBbKnTsAA2RpZnMudHh0ANVa/2sbyRX/eQP5H0Y+LkjWKtGuZFuqLr3TOUosIslGUi7X
byw+ax2LcyQjrU3vgn7wGNpLzl/SOl8o9O4Hc5Q2d20oR+4OyhVa4vQM9kEhtJTeDymFloQW
fFBa6E99Mzuzs7uaVaTYaVMFx9rZmXnvfd6b9208PDyMWuZ07fjM8WbrwtEjsViMPR89Muz5
0GekjY6q2ph+9AhCz9Vna+YsmirnXsmVquVcYTJ7iowr9YaFTjdbM6aRiCeNav2imaHzzUat
Pgsk2EqlkK3mKlUjWxqfmCw7KwvTltm2jNLiRc8q/rbeeL06fWF80crYzNoMaShGPgdhS06+
myhCHVQxLaveuNBGJ9GlIJxSwFbSS6B/uWM95e5mAWaVcxXja7lCYfK8ypEZI6oSyDw9BPzk
pYikNFVLjblw6FbR6cnyeM5mLl/MqX1aDRspnSuqPnEK+dLZavbM+Lkqx2QsDUwk/dYyGCvd
JL2EAJ9MEAYJIJ/u0yo8RGKBctnkEGpbrcUZi6iDSpqKA6kRl/YPLJGbhEw6PZ5UdS3eE9ZL
ypCXjyFVOcaN6bjXOFWl068JwLZCAM+Wwpr927FljpzeZY7B01UEUT0eV/X4SB+2cxAhBxSm
fxGCrVKPj4Le9D6tsn/uYk8ENbe15xYbhAHhV7gWNNDCqMuun2G0pVJIVaCPqXoi4VrhFYm+
gOF6w/S9UQIk7e/gMGICADchMapIMPEQIIrRQTG6SzFPQZCDM8yWOzoMUEcCjnpitNc5OBAj
MYlELpZcGzmjisTSBDTKiWHlXCVnVHLVar50xjidL+SU4RNcMwnQTMqlmacI5yHyLtNMWh9R
0wkaYxT4zAOhUjNiJypKx/5Vn0Xhevu1xfYbFtgPOnYMNRcto2W2S+iriJzE0mS5mC1E7MyF
5YuEg6lsdYLtTPZYmLbmjJq5YM1FOL2FqRakQ7PhhYpVg01ZZEhrYyow5vJJh8FalLNWyU1l
y6ALY3ziXOmsY4NRJGEIlfXxCWOiWiwY1Wy+YFTyxalCTkWFfDFfNaaKCDIDnT9mi4Q9oGPO
t81DwEKqsCRgM6LzRYoQUu051oNhOqNlWoutBtI8+HYQkQRdUsCmUP1is2YixE9BOqmr6WTK
q6TDYCfqjiYDMiYPx/ERCHEaM3K2X7s1Y+/InsMLKIo0Gw5K48TwAT8n7F0UYjxoIpc9lStT
0RX+5uD7szSKRPAxjyb6EzKKxKlQAk8FvKdeqWvcbLWaLfk61DDNWht1L7EV6/lmk/dPBb3O
1lttKzY/3bbwF3gb79IpuVNoujEz12zh/evfXP8RmQofOhXfo3P3VlZXXr12f+07yy/bwztx
vLfZwB/jz5a/Qa0kCon3tFWfQUvNeg3NWRfnDWuOVOmGvXWYlGh0rYrIV7JthCyjXoQWcMQb
Qa0WDtNpxIojJ5i44N8jaFg8EMgz9kI4+Pb8F07am7r9ksLkYyAY5/PVCQNietF2TV2eyTe9
kivkxqsGMbTw0PPtIRWR/yMqc2xvvmm81lYR/Hr9DfuUKcpss4XCKGMLw1hiT9GTbmkuBXlH
OQ+VarZchYXAR01wQPbllDsDyUQ8r8ezDs58lyeOSj1xNMATR5knc4IB2cRj8WISYcH7BBYg
rAFMRUWe1xwUhQsnDoeMG1dIkjPgVvUTshW27fsk0tCLaGgIfQWVJiGRKFeqEVXKe8fHN33u
eFTG8xjJeWNnjR4J6tLD5GRG4nCyG01rDlIddm6dDEcexNks5j/Wtjcu43tr26t/xjvEV+AP
8SP8kHsH8B/38cdh8oin8P7GD/FPI8yb0IByY+t7n19+FxxAe4Hgb9bwvc3b+KPNn639De8v
v0ymenyJ4zMMgkvY7S/AyhoNg/kQxznToYx7xnzbO4NsVJz+NuiGvhSOxBUTGcouJgiKXTwA
HBT32WbTwvurd/H99XfxDiCUJ8istfE+9ZB/we/hHfj9CH9+cwn/FX+Gt/CX+Jf4Nv4Nk9bt
/Rh/HhmsJsnC7C8v8BlMLLaMvhSLRP7mOBpCgwwaRBZY4cYVUBAJBTFb+Km3jUaTTgpzgyT6
/z3+Cd5aXVr/+pX7b/0J/wrfxQ9h5AGXhFIXZGxuuRNgvDqvM8Ks3eoRGvh/yRm8AzxF0kgv
RksdnhAitM7BQacRdd5cMudVNDM33UIzzQZAPmzVrXmTBVkbfEQbbtxfe7OCmG19dV9D1+6q
gi4pAVaGBNUWJFMCUVMJkS49AwIPIISXtNMpJEKNpJ38mtGhoSDi70oTMw5xiLOFggNwqDtO
hpAkTIZkyQAb9gdJsX8kg+w5TnnkzvO7t0O+7cROXJealiCdNt1XhPQhPPEPYj+E9zb+jneu
foTfp+7vIZ0CkQB/Cs7vznLWbYf4Fp23vZwFZ/Jr4b1g5R4NM3eI26ROJiTPbjmmIZfr83Mp
r6Xlyh8h9c3oaDdiMgUgiQL61KdHAfZLb1pJ9Ss2lR7iEM/d6uBetQyq0+SNuFL42pW5HUo/
AewkReyk+57Cyxp6jF5CgXo5eF0PCkySMi5xCPuH+slW2aS666ssIeTvnEaB9PAOkKTaCtF1
opBU1zXj4YosMf0++Q9S0hiJkynNcTXBuIQGxCUkTd4H0xI5UwE5u1+PHcEryZW7smhHI75O
LVMfeBwtkfA3fwZHX46SRJ8S39PtfIRgPXsaZJqkCgEk3YlmjDZKAsxgjJhB0pG8B/B+Q+kI
HykFPhQAfMARkZ+QID+op0FvSS1Qbx6UUW+UQ49BOTQAyiFeJgYv4qVExhtjGB+KXVzWwh7U
IqQWCfFXUj4jB0ZWbiFp4ijSkpjsYdBB2Xfs7UHXHTIS370IuJqh8ozR5XHyxclTOcMuKwyN
k3FnS+5fwAittOgq/oIbUhIOgDbicwBPSUiSq3k2ZA7qvyy4VM/aCMksRhOHV0d0tSZJye4u
J3jtYH9rW82FBbMmCgnFuQE5ieIZgh3+Ofzb3rh85d+Xf0GSW3wPqvotqO7v4K0XGZZO+QGl
NG1/hCMR/qcPOkip6ro7zX4WRBWd6eALHZCeyX0Hf3r12vfn8f7aXfzb9Qv4PbyL91aMlfGV
8yunV15duXDld6vnaacDxvEn3MSeCEx3aeoV27Ea4odHk8+evp3QSLiAN7QRqHKiGccgUsQg
vPl0L1Wg/40qorIuwaASyzVIsnVtNN3HenEfYz90RKnPWtfE2ZRzp2iw4gt7FD/ewEQSj0SE
K0YHtvQRz9XpoMw9/kbIZl60GV2NPt7BA/XYf8BDbq3xLqmLN/ZXN/Du2xZUx76Woiziu7eP
IhH/IeP1RgneyAv1dREs7jJog/jqK6T/22jgW1DL3wcT2sXbbz/a/BfeXfsHm4eQN/jgfdYm
uIPvLmdBmB+TNsCNG9f+iXfW36FdxvfhZ8veTGxC+CFybj7Au8svea+V8f7G+NUPqQ3/AY7D
LbFq462b7+Ddmx/gR2DdQBHv3fgW/oJYOL61nBXzlhfXPlg/Q3q6nlbF/rUvaUuCNjWWlzZ/
gHc3Hq19l7QqxNq1u5T6retnby6BPMD19T/evM2V4w+++IG3VcIPmuyCRX6/EnS94isf/DlE
9DHpQhQF3KA8np6clPQepTf9jugSu/8K9LDP+n8A6D+NSmYsAAA=
952外出ですか?:01/09/11 22:40
953外出ですか?:01/09/11 22:42
スレ違い。
    スレを埋めに来ました
______ __________
         ∨
   ------------- 、____
  /  ̄ ̄ ̄.// ̄ ̄|| |___/\○ ○
 /     //     .|| |  \\○○○○
[/______. //[ ]    || |    \\○○ ○
.||     |_| ̄ ̄  .|.| |___\\○○○○
.lO|--- |O゜.|______ |.|_|ニニニニニニl.|○○○○
|_∈口∋ ̄_l______l⌒ l.|_____| l⌒l_||  ○○○○
──`--'───`ー'─── `--' `ー' ┐ ○○○○
                         │  ○○○○
                         │   ○○○○
                         │ ミ  ○○ ○○   〃
                         │  ;:○○ ○○; ’〃、、..
                         | ミ ミ\○ ○゙○ ○/ミ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~〜〜〜〜~~~~~~~~~~~~~~~~~~~
955 :01/10/19 17:22
956--:01/10/19 17:26
957:01/12/16 03:27
不゜
958デフォルトの名無しさん:01/12/16 03:31
>>951

何それ?BASE64方式エンコードしたもの?
たしか次スレであぷ先がなくて前スレにBASE64エンコードして
貼ったものじゃなかったかな