read.cgi改良スレッド 2
1 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/09 20:38
ここは read.cgi の改良だけを専門に扱うスレッドです。

2ちゃんねるで行われている他のプログラム開発や、動作報告・障害報告等に
ついては、それぞれ専用のスレッドが
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&ls=20
に一覧されておりますので、移動してください。お願いします。

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

●read.cgi最新ソースコード(定期的に同期されています)
 http://www.gedoh.org/aki/2ch/current/bbs/
 http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html

●2ちゃんねる軽量化関連スレッド群
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&ls=20

●前スレで提示されている案・意見の一覧
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=30
 あたりにまとめられているはず。


2 名前: デフォルトの名無しさん 投稿日: 01/09/09 20:45
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=927&to=930

if( s[2]!=0 && (strstr( s[2], "ストッパー" ) || strstr( s[2], "停止" )) ) threadStopped=1;

これだと
・偽ストッパーが出たら困るんでは?
・スレスト解除になってたら困るんでは?
つー気がするです。


3 名前: デフォルトの名無しさん 投稿日: 01/09/09 20:48
>>2
・s[2]は投稿日なので偽ストッパーは掛かりません。
・スレスト解除ならストッパーのレスも消されるはずです。
したがって問題ないと思います。


4 名前: デフォルトの名無しさん 投稿日: 01/09/09 20:48
>>2
ではどんなふうにすれば良いと思う?


5 名前: デフォルトの名無しさん 投稿日: 01/09/09 21:14
someReplaceの必要性について。
someReplaceは、non-TYPE_TERIのときに
・@+`を , へ置換
・&ampを&へ置換
するために使われていますが、どちらもressplitter_split内で
すでに行われており、不要です。とくに後者は二重にかける
とかえって表示がおかしくなります。
out_htmlx内のTYPE_TERIによるconditionはnon-CUTRESLINK
時代の遺物であり、conditionごと削除してしまって構いません。


6 名前: 前スレ775 投稿日: 01/09/09 21:15
>>5
んじゃそれを信じてバッサリいきまーす


7 名前: デフォルトの名無しさん 投稿日: 01/09/09 21:19
>>3
>・s[2]は投稿日なので偽ストッパーは掛かりません。
ぶラジャー。

>・スレスト解除ならストッパーのレスも消されるはずです。
>したがって問題ないと思います。

そうとも限らない。
鯖移転でスレスト解除となった場合はストッパーレス付きのまま。


8 名前: 6 投稿日: 01/09/09 21:21
>>5
doReplace, someReplaceバッサリ消した。


9 名前: デフォルトの名無しさん 投稿日: 01/09/09 21:23
>>7
>そうとも限らない。
>鯖移転でスレスト解除となった場合はストッパーレス付きのまま。

それは本来書き込めるべきではないのですから、
自主規制の意味でもフォームは必要ないと思います。


10 名前: デフォルトの名無しさん 投稿日: 01/09/09 21:32
>>9
いや、たとえば重複でスレストになっていて、鯖移転後のシャッフルで
本スレの方が順位が下になってスレ圧縮がかかり、本スレが倉庫行き
になった場合、スレスト解除になっている重複スレを本スレとして復活
させたい場合があるだろ。(実際そうなった板がある)


11 名前: デフォルトの名無しさん 投稿日: 01/09/09 21:41
>>10
ソースを見る限り最終レスがストッパーかどうかしか見ていない
ようなので、そういう状態で続行しているスレならちゃんと
フォームはでると思います…が確認してもらいたいので可能なら
スレのURLきぼん。
今後そういう状態になった場合はスレを立て直せばいいですし。


12 名前: デフォルトの名無しさん 投稿日: 01/09/09 22:06
http://kaba.2ch.net/test/read5x.cgi/news/
で[ここ壊れています]が大量に出るんだけど
これは修正の必要ないの?


13 名前: デフォルトの名無しさん 投稿日: 01/09/09 22:06
>>11
>今後そういう状態になった場合はスレを立て直せばいいですし。

過疎板でそれはきついな…
ちなみに、その板はいま見れないので確認不能。
2ch.server.ne.jpからebiに移ったいくつかの板で見れると思う。


14 名前: デフォルトの名無しさん 投稿日: 01/09/09 22:22
http://ton.2ch.net/test/read.cgi?bbs=gline&key=997994037
のdatを使い、とりあえず、ローカルで動かした結果では、
そのままではFORMも「新レス」も表示されず、
手動で30行目と29行目を入れ替えてから試すと
FORMも「新レス」も表示された事を報告しておきます。

まあ、当たり前ですが、ソース通りに最終レスしかチェックしてないということです。


15 名前: デフォルトの名無しさん 投稿日: 01/09/09 22:38
最終レスしかチェックしないのはかまわなくて、スレスト解除がかかった後に
bbs.cgiが許容しているのにread.cgiがFORMを出さないせいで実質的に
スレストのまま、という状態が2chの仕様としてどうか、って事なんだけど。


16 名前: デフォルトの名無しさん 投稿日: 01/09/09 22:41
>>15
解除されているかどうかはどうやったら分かるのかな。


17 名前: デフォルトの名無しさん 投稿日: 01/09/09 22:44
>>15
それは本来書けるべきでないものだから修正するとしたら
bbs.cgiのほうを書けないように修正するのが筋かと思われ…


18 名前: デフォルトの名無しさん 投稿日: 01/09/09 22:48
>>17の言うことが健全、というか正常だと思う。


19 名前: デフォルトの名無しさん 投稿日: 01/09/09 22:53
どんどん板が復活しております。わーい。わーい。


20 名前: デフォルトの名無しさん 投稿日: 01/09/09 22:59
bbs.cgiを修正するのなら
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=887&to=887&nofirst=true
も......


21 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/09 23:49
>>1
前スレの案一覧
(誤)http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=30
(正)http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&ls=30
。。。。。。(涙


22 名前: デフォルトの名無しさん 投稿日: 01/09/10 00:18
>>12
最新版を手元で動かすと再現しないなあ。


23 名前: デフォルトの名無しさん 投稿日: 01/09/10 00:19
>>22
どうなります?


24 名前: 22 投稿日: 01/09/10 00:21
>>23
>そんな板orスレッドないです。
となる。
read.cgi?bbs=net
(keyを書かない)で出したときと同じ。


25 名前: デフォルトの名無しさん 投稿日: 01/09/10 00:30
>>17
いや、本来は書けるべきなんだよ。副作用とはいえ解除されてんだから。


26 名前: デフォルトの名無しさん 投稿日: 01/09/10 00:33
>>25
解除されるべきでないんだから書けるべきでないと思う。


27 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/10 00:37
「スレスト解除がかかる」とはどういう状態なのかを整理した方がよろしいかと。
私も自信がないので言いっぱなしごめん。


28 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 01:05
どんなもんでしょか?
区切りのいいところですか?


29 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:09
いいんじゃないすか?


30 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 01:11
http://www.gedoh.org/aki/2ch/current/bbs/
ここから、落とせばいいんですよね?
zlib はかわってないですか?


31 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:13
>>30
zlibは変わってませんよ〜


32 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 01:14
了解ですー
今日は piza2 で行きます。


33 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:16
>>32
変わったのは
read2ch.h, read.c, r2chhtml.h, datindex.c, Makefile かな。


34 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 01:21
ふむー
なぜか、piza2 で zlib のコンパイルが通らない、、、

Makefile:42: *** missing separator. Stop.

なんて言われちゃいました。
kaba では ok だったのに、、、


35 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:24
>>34
そこでエラーってのは変ですね。
化けてるとか? (^^;
最新のread.tgzから展開してやるとどうでしょうか?

ってもしかしてmakeがgnu makeじゃないとか…OSからして違う? (^^;


36 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 01:25
いやん、すまぬ、私のミス makefile まちがった。
read.cgi 用のを入れてた。


37 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:26
>>36
なるほど(笑)


38 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 01:26
いぇーい

http://piza2.2ch.net/test/read5x.cgi?bbs=mona&key=1000048768&ls=50


39 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:28
>>38
またCGINAMEをread5x.cgiにしといてくださーい。


40 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 01:29
>>39
しましたー


41 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:29
>>26
>>10のような状況が考えられるので、解除されるのが必ずしも
間違いとは言えない。
それで運用された実績もあるし。


42 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:31
cvsでtag打っときました( YAKIN20010910 )


43 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:31
なかなか良い感じですね。

http://piza2.2ch.net/test/read5x.cgi?bbs=mona&key=999190395


44 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:32
>>41
だから新スレを立てればいいじゃん。


45 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:33
http://piza2.2ch.net/test/read5x.cgi/tech/1000035521/44-
ふむふむ


46 名前: 前スレ857 投稿日: 01/09/10 01:34
「誤爆だけで・・・」っていうスレ、>> のリンク動作を確認するのに便利だ。

http://piza2.2ch.net/test/read5x.cgi?bbs=ff&key=998319724&st=301&to=350
ここの333だけリンクが有効になってます。今の時間帯だと全部オフが正しい?


47 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:37
>>46
いや、「全部読む」の増加対策で、今見えてる範囲外の
リンクは消さないのが正しい。


48 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:38
「新レスの表示」サイコー


49 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:39
1は必ず表示した方がいいと思った。


50 名前: デフォルトの名無しさん 投稿日: 01/09/10 01:40
自分の行ってるスレのアドレスが出てちょっとうれしかった。
それだけ(藁


51 名前: 前スレ857 投稿日: 01/09/10 01:45
勘違いだったか・・・すまんです。


52 名前: 前スレ857 投稿日: 01/09/10 01:57
http://piza2.2ch.net/test/read5x.cgi?bbs=kao&key=986050461&ls=5

1000を超えてたら、
「サイズが496KBを超えています。512KBを超えると表示できなくなるよ。」
これはいらないかもしれない。


53 名前: デフォルトの名無しさん 投稿日: 01/09/10 02:00
サイズ超え警告が正常に働いてることはとりあえず確認できた


54 名前: デフォルトの名無しさん 投稿日: 01/09/10 02:04
http://piza2.2ch.net/test/read5x.cgi?bbs=mona&key=999190395&st=101&to=201&nofirst=true
の110のレスで >>18 のURLリンクがおかしいです。
 http://piza2.2ch.net/test/read5x.cgi?bbs=mona&key=999190395&st=1&to=50&nofirst=true#18


55 名前: デフォルトの名無しさん 投稿日: 01/09/10 02:06
>>54
別におかしくないと思うけど?


56 名前: デフォルトの名無しさん 投稿日: 01/09/10 02:08
>>55
今までの仕様だと
http://piza2.2ch.net/test/read5x.cgi?bbs=mona&key=999190395&st=18&to=18&nofirst=true
じゃないの?


57 名前: 55 投稿日: 01/09/10 02:10
ごめん、おかしいね。1が表示されてない。
こういう場合&nofirst=trueが付いてると上の「1-」とリンク先が
共通にならなくてキャッシュの効果が落ちると思うけどどうだろ。


58 名前: デフォルトの名無しさん 投稿日: 01/09/10 02:12
>>56
それはキャッシュの利用効率を高めるためのCHUNK_ANCHOR
の仕様。でもせっかくCHUNK単位でレスを区切っても&nofirst=true
が付いていては意味がないと思われ


59 名前: 56 投稿日: 01/09/10 02:16
>>58
index.htmでの表示と違うのは何とも・・・
操作と結果は統一して欲しい気が。
スレ違いだったらごめんなさい。


60 名前: デフォルトの名無しさん 投稿日: 01/09/10 02:52
>>59
それはテレホタイムにリンクをカットしてる時点ですでに
違ってるわけだし。
bbs.cgiのほうを修正できないとなんとも。


61 名前: デフォルトの名無しさん 投稿日: 01/09/10 02:56
とりあえず今日わかったことは

・トップの1-51-等の表示のために、CHUNK_ANCHORはONにしたい
・>>xxxのリンク先がCHUNKEDになるのは嫌だ。

仕方がないから、新しいcondition(CHUNK_RESLINK)をつけ、
>>xxxのリンク先をCHUNK単位に直すのはCHUNK_RESLINKの時だけにしよう
CHUNK_RESLINKがdefineされてCHUNK_ANCHORがdefineされてなかったらエラー。
(CHUNK_ANCHORは再定義できるけど、CHUNK_NUMの再定義は数値が必要だから)

・レス数とサイズの警告は、両方出てもよい。
・1000 Overの場合は、サイズ表示はいらない。

#ifdef CAUTION_FILESIZE の直後に if (line <= RES_RED) {
#endif の直前に }

NAME_ANCHORは、あってもいいのかなぁ


62 名前: デフォルトの名無しさん 投稿日: 01/09/10 03:16
BadAccessがrawmodeのときでもツールを弾いている気
がするんですが、ツールに読ませるためのモードが
ツールを弾くのはまずいのでは…。


63 名前: デフォルトの名無しさん 投稿日: 01/09/10 03:17
「名前:」をとっとと消せよ


64 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 03:19
piza2 に全面的に導入しました。
ver 5.20 にしました。


65 名前: デフォルトの名無しさん 投稿日: 01/09/10 03:20
>>xxxのリンク先を広げるconditonは、CHUNK_ANCHORより
CREATE_NAME_ANCHORであるべきではないでしょうか。
そうすればconditionを追加する必要もありませんし、
>>xxxのリンク先を広げる必要がなければname anchorも
いりませんからそのほうが合理的だと思います。


66 名前: 65 投稿日: 01/09/10 03:24
よく考えるとCHUNK_ANCHORが有効でないと
>>xxxのリンク先を広げる意味もないか…。


67 名前: デフォルトの名無しさん 投稿日: 01/09/10 03:26
CHUNK_ANCHORのとき、上に表示するリンクは範囲外の
ものだけにしたほうがいいと思う。
(たとえば「レスを全部読む」の場合にはぜんぜん必要ない)


68 名前: デフォルトの名無しさん 投稿日: 01/09/10 03:31
それから現在の表示範囲より下のCHUNKへのアンカーは
上ではなくて下に表示したほうがいいと思うんですが…。


69 名前: デフォルトの名無しさん 投稿日: 01/09/10 03:31
MAX_FILESIZE_BUSYが正式に採用されるまでの間、
dat_read()の最初
#ifndef MAX_FILESIZE_BUSY
 if (zz_fileSize > MAX_FILESIZE)
  html_error(ERROR_TOO_HUGE);
#else
 if (zz_fileSize > MAX_FILESIZE || (isbusytime && zz_fileSize > MAX_FILESIZE_BUSY))
  html_error(ERROR_TOO_HUGE);
#endif

正式にヘッダに入ったら、
Settingsにも加えたほうがいいでしょう。
(メンバー変数、初期値、#undef + #define、config.txt)


70 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 03:41
ちょっと 質問でーす

teri にも ver 5.20 いれたんですけど、>>12 というのだけを
一日中有効にするのは、どうすれば良いのでしょうか?


71 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 03:43
つまり >>レス番 の機能を teri サーバだけは一日中
有効にしたいのです。


72 名前: デフォルトの名無しさん 投稿日: 01/09/10 03:44
>>70
read2ch.hの
#define LINKTAGCUT
をコメントアウトすればいいのではないかと…


73 名前: 72 投稿日: 01/09/10 03:46
ごめんなさい、
#define LINKTAGCUT (0)
に変更、の間違いでした。


74 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 03:47
>>72
さんきゅです。
さっそく teri でやってみます。


75 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 03:47
>>73
了解でーす


76 名前: デフォルトの名無しさん 投稿日: 01/09/10 03:49
>夜勤さん
Ver5.20と見た目、機能はほぼ同じで、

・>>nnのリンク先が広がるのを避けたい場合
read.cの440行目付近の
#if defined(CHUNK_ANCHOR) && defined(CREATE_NAME_ANCHOR)

#if 0
に変えるとよいです。

LINKTAGCUTは、例えば、
/accuse/SETTING_R.TXTに
LINKTAGCUT=0
と書いて置いておく方法もあります。


77 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/10 03:53
どもです。
削除依頼板は、>>xx が効かないと、効率が悪いらしいです。
とりあえず、今日は >>73 をやりました。


78 名前: デフォルトの名無しさん 投稿日: 01/09/10 04:29
批判要望よりコピペ

697 名前:名無しさんの声 投稿日:01/09/10 04:20 ID:mhbyzSZQ
「新レスの表示」の
nofirst=true
は無いほうがいいな


79 名前: デフォルトの名無しさん 投稿日: 01/09/10 08:59
ブランチは作らないの?


80 名前: デフォルトの名無しさん 投稿日: 01/09/10 09:52
read.cgiではすでに行っているんですが index.htmlの方でもトップのJavaScriptのところで
----------------------------------------------------------------------
function ol(e){
 var N=getCookie("NAME"),M=getCookie("MAIL"),i;
 with(document) for(i=0; i<forms.length; i++)
  if(forms[i].FROM&&forms[i].mail)
   with(forms[i]){FROM.value=N;mail.value=M;}
}
onload=ol;
----------------------------------------------------------------------
というのを入れて その代わり投稿フォームのところでのdocument.write()を
やめてはどうでしょうか? 一番上の

NameMail = "<INPUT TYPE=text NAME=FROM SIZE=19 VALUE=" + getCookie("NAME") + "> E-mail:<INPUT TYPE=text NAME=mail SIZE=19 VALUE=" + getCookie("MAIL") + ">";

と 各投稿フォームのところでの

<SCRIPT Language="JavaScript"><!--
document.write(NameMail);// --></SCRIPT><NOSCRIPT></NOSCRIPT>

が削れる分 トータルでは節約になると思いますが


81 名前: デフォルトの名無しさん 投稿日: 01/09/10 09:59
>>80
スレ違いです


82 名前: デフォルトの名無しさん 投稿日: 01/09/10 10:05
rawmodeのときは、圧縮に対応していないクライアントは
弾くようにしませんか?
rawmodeで非圧縮のデータを返すメリットってほとんど
ないように思うのですが…。


83 名前: デフォルトの名無しさん 投稿日: 01/09/10 10:30
全レス表示規制中に「次の100レス」でたどっていくと、
表示範囲が
1-100
100-199
199-298

というふうに変化していきますが、CHUNK_ANCHORとの
噛み合わせが悪いので
1-100
101-200
201-300

と増えていくようにしませんか?
(というかそもそも「次の100レス」の代わりに
「101- 151- 201-…」を下に持ってくればいいと思う)


84 名前: デフォルトの名無しさん 投稿日: 01/09/10 10:45
read.cgi 5.20でも
http://piza2.2ch.net/test/read.cgi/mona/
で[ここ壊れてます]が連打する現象が解消されていません。
http://piza2.2ch.net/test/read.cgi/mona/?raw=0.0
とするとわかりますが、どうもsubject.txtを無理やり分解して
表示しようとしている模様。


85 名前: デフォルトの名無しさん 投稿日: 01/09/10 11:07
>>84
#ifdef USE_PATH
 /* スレ一覧を取りに逝くモード */
 if (1 <= path_depth && path_depth < 3) {
   sprintf(fname, "../%.256s/subject.txt", zz_bs);
   zz_fileLastmod = getFileLastmod(fname);
 }
#endif
こんなコードが入ってる割にこれ解析してないようだな。
これが原因か。


86 名前: デフォルトの名無しさん 投稿日: 01/09/10 11:20
↓こういうのって

<a href="read.cgi?bbs=tech&key=998997848&st=1&to=50">1-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=51&to=100&nofirst=true">51-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=101&to=150&nofirst=true">101-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=151&to=200&nofirst=true">151-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=201&to=250&nofirst=true">201-</a>
<a href="read.cgi?bbs=tech&key=998997848&st=251&to=300&nofirst=true">251-</a>

↓こうすると

<form><select onchange='
 var st=parseInt(this[selectedIndex].text);
 location="read.cgi?bbs=tech&key=998997848&st="+st+"&to="+(st+49)+"&nofirst=true";
'>
<option>1-
<option>51-
<option>101-
<option>151-
<option>201-
<option selected>251-
</select></form>

スリム化できるような気がする 現在表示中の範囲の記事番号のところは
<option>でselectedを入れておくと


87 名前: デフォルトの名無しさん 投稿日: 01/09/10 11:26
PATH仕様が標準になってくれればなー。
<a href="1-50">1-</a>
<a href="51-100">51-</a>
<a href="101-150">101-</a>
<a href="151-200">151-</a>
<a href="201-250">201-</a>
<a href="251-300">251-</a>
それでもFORMにしたほうが若干小さくなるかな。
ただFORMだと>>67-68 >>83のような工夫がしづらくなる。


88 名前: デフォルトの名無しさん 投稿日: 01/09/10 11:38
>>82の修正
BadAccessの最初に
if (rawmode && !gzip_flag)
 return 1;
を追加。


89 名前: デフォルトの名無しさん 投稿日: 01/09/10 11:41
>>88
if (rawmode)
return !gzip_flag;
のほうがよくないかな?


90 名前: 88 投稿日: 01/09/10 11:45
あ、
#ifdef GZIP
#endif
で囲む必要があるか。


91 名前: 88 投稿日: 01/09/10 11:47
>>89
>>62の修正も合わせてるわけね。納得。


92 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:08
>>85
・・・USE_PATHをundefすれば根本解決しそうな、、、


93 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:18
>>85>>89 あてた(85は#if 0にしただけ, 89はRAWOUTでも囲んだ)


94 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:24
>>92
USE_PATHしたときだけこんな処理が入るほうが変だと思うけど…
そもそもこのコードいつ誰がどういう目的で追加したの?


95 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:28
>>94
そのコードの下のほうでインデックス処理とかがあるようだけど
そっちは#if 0 /* #ifdef USE_PATH */で無効化されてたのに、
そのためにsubject.txtを読むように準備する部分が生き残ってたようだ。


96 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:32
こっちだけ殺して>>85は殺してなかったわけね
#if 0 /* #ifdef USE_PATH */
else if (path_depth == 2) {
if (zz_ky[0] == '-')
dat_out_subback(); /* スレ一覧 */
else
dat_out_index(); /* 板ダイジェスト */
}
#endif


97 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:39
板ダイジェストにcondition付けませんか?
#if 0で無効にしてるのって気持ち悪い


98 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:41
>>97
いらんだろ、
もともと余計な機能だったんじゃないか?


99 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:52
config.txt
×DIGEST
板ダイジェストを有効にする。
USE_PATHをONにしたときにのみ使用可能。
/test/read.cgi/tech/ 板ダイジェスト(index2.html相当)
/test/read.cgi/tech/- 全スレ一覧(subback.html相当)

read.cへの変更点
#if 0 /* #ifdef USE_PATH */

#if defined(USE_PATH) && defined(DIGEST)


100 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:54
>>98
そうだね。じゃあ
#if 0 /* #ifdef USE_PATH */
となってるconditionはバッサリ削除
digest.c digest.hも削除。Makefileからも取り除く
ということで。


101 名前: デフォルトの名無しさん 投稿日: 01/09/10 12:57
>>99-100
すでにMakefileのOBJSにはdigest.oは入ってなかったみたいだ。
従ってこのままではたとえconditionにしても使えん。


102 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:01
本当だ。SRCSには残ってるのに。
じゃあやっぱりバッサリ削りましょう。


103 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:02
>>94
cvs見ると、6411さんが8/30に作ったようだが


104 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:07
>>85は、#if 0で囲うと、初期化されていないメモリを参照して、どうなるかわからない。
if (1 <= path_depth ...) {
#if 1 /* #ifndef USE_PATH_DIGEST */
 html_error(ERROR_NOT_FOUND);
#endif
 ・・・
}
って感じにしてくれ。
理由は、皆が言うように、後半で参照されている部分が#if 0で(仮に)殺してあるため。

Expire関係の#if の#else節も生きているようだが、
これもいらない。

もうひとつ、細かいことだが
mainの最初の方に
 if (st == 1 && to == 1)
  zz_nf[0] = '\0';
というのがあるが、
CHUNK_ANCHORで1-50へのリンク(>>nn)にnofirst=trueがつくことを考えると、
 if (st == 1) /* レス1から表示する場合はnofirst=falseにする */
  zz_nf[0] = '\0';
の方が良いだろう。


105 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:07
前スレですでにこういう話が出てた。

850 名前:デフォルトの名無しさん 投稿日:01/09/09 03:27
>♯6411氏
digest.[ch]いらなくなったのなら、MakefileのSRCSから消してちょうだい。
あと、datindex.cの中身全部を#ifdef USE_INDEXで括っておくように。(w


106 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:10
>>104
> >>85は、#if 0で囲うと、初期化されていないメモリを参照して、どうなるかわからない。
これはどういうこと?
fnameもzz_fileLastModもその前後で設定されているが。


107 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:12
ダイジェクト削除するならr2chhtml.h後半の
/* スレダイジェスト用HTML */
/* スレインデクス用HTML */
も不要。


108 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:14
>>106
失礼。その通りだった。
後でエラーになるね。


109 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:22
>>52修正
#ifdef CAUTION_FILESIZE 直後の行を変更
if (zz_fileSize > MAX_FILESIZE - CAUTION_FILESIZE * 1024) {

else if (zz_fileSize > MAX_FILESIZE - CAUTION_FILESIZE * 1024) {


110 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:26
>>109
あてといた


111 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:37
>>104でも言ってるけどEXPIRESは全廃したんだから
これはいらないんじゃない?
char expires_str[1024];

#if 0
/* XXX これはウソ、Expires: は、
現在時間を基準にすべきである */
get_lastmod_str(expires_str, zz_fileLastmod + 5);
#else
{
/* ためしに廃棄期限をちょっと先に設定してみる */
time_t nw;
time(&nw);
get_lastmod_str(expires_str, nw + 10);
}
#endif


112 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:39
>>109より、
>>61の後半の形式の方がいいと思う。
>>109だと、レスが930まで来た時に突然読めなくなる可能性あり。


113 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:40
>>111
expires_strの宣言とともに削除した


114 名前: デフォルトの名無しさん 投稿日: 01/09/10 13:43
>>112
賛成。


115 名前: 110 投稿日: 01/09/10 13:50
>>112
そのようにあてた


116 名前: デフォルトの名無しさん 投稿日: 01/09/10 14:11
>>104の最後の修正も当てたほうがいいと思うんだけどどう?
当てるなら、get_path_infoの最後のほうの
/* nofirstの仕様をごまかすためのkludge XXX */
if (!zz_nf[0])
strcpy(zz_nf,
(atoi(zz_st) == 1
? "false"
: "true"));
こっちは不要になる。


117 名前: 116 投稿日: 01/09/10 14:15
いやごめん、やっぱり必要。


118 名前: デフォルトの名無しさん 投稿日: 01/09/10 14:22
r2chhtml.hで
./%s? (←%sにはCGINAMEが入る)
となってる箇所がいくつかあるけど、「./」は不要。
消せば多少は転送量の節約になる。


119 名前: デフォルトの名無しさん 投稿日: 01/09/10 14:34
>>118
細かいな(笑)
当てた


120 名前: デフォルトの名無しさん 投稿日: 01/09/10 16:28
imode=true&ls=11や
imode=true&st=nnで nn+RES_IMODE==lineMax-1だった場合に
RELOADLINKが表示されずに「次の10レス/最新レス10」が表示されるバグの修正

out_html()の最後、
 if (out_resN > RES_IMODE) {
のすぐ下に
  if (lineNo != lineMax)
(その下のpPrintfをifの条件下に入れる)

dat_out()のループ内の判定がisprintedと重複していることもあり、
修正ついでに全体を少し整理。
int dat_out(int level)
{
 int line;
 int threadStopped=0;
 char *s[20];
 char p[SIZE_BUF];

 for (line = 0; line < lineMax; line++) {
  int lineNo = line + 1;
  if (!isprinted(lineNo))
   continue;
  if (out_html(level, line, lineNo)) {
   line++;
   break; /* 非1が返るのは、エラー時とimodeのMaxに達した時 */
  }
  if (lineNo==1 && is_imode() && nn_st==1)
   ++out_resN;
 }
 out_html1(level); /* レスが1つも表示されていない時にレス1を表示する */
 ・・・
 最後の #ifdef RELOADLINK 内部の lineLast(2箇所)をlineに変更
 ・・・
}


121 名前: デフォルトの名無しさん 投稿日: 01/09/10 16:33
コメント違ってたー
×非1が返るのは
○非0が返るのは

コメントの間違いといえば、
isurltailのstrncmp("&quot;")は、
'"'で囲まれたURLの末尾判定だと後で気がついた。
恥ずかしいので修正してもらえるとうれしかったり。


122 名前: 120,121 投稿日: 01/09/10 16:36
 isurltail
→geturltaillen
だし。逝ってきます。


123 名前: デフォルトの名無しさん 投稿日: 01/09/10 17:05
>>120-122
当てた
一時2800行あったread.cは、現在2166行。だんだん減ってるな(笑)


124 名前: デフォルトの名無しさん 投稿日: 01/09/10 17:33
#if 0の整理(ダイジェスト関連以外)

#if 0
if (!is_imode()) { /* no imode */
pPrintf(pStdout, "<DL>");
}
#endif
が2箇所あるけど、すでに同等の処理はhtml_head()に吸収
されているので不要。いい加減削除したほうがいいと思われ

#if 0
/* put 2048byte */
/* もう要らないんじゃないかな、
XXX 追試求む */
while (whitespace--)
gzputc(pStdout, ' ');
#endif
頭切れの報告がないのでそろそろ削除しても大丈夫だと思われ


125 名前: デフォルトの名無しさん 投稿日: 01/09/10 17:51
今のget_path_infoだと
 /4 (st=4&to=4)
 /4- (st=4)
 /-6 (to=6)
 /4-6 (st=4to=4)
しかないんだけど、
 /. (nofirst=faluse) /5とかでnofirst=trueを基本にしたいから逆条件
 /=10 (ls=10) /-10ってls=10扱いって話があったはずなんだけどな
/i (imode=true) path_infoでimodeは実装不充分だけどね
なんてのを追加し、かなり自由フォーマットで書けるようにしてあるんだけど
commitしていいかな。
.や=について意見求む。


126 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/10 18:01
細かいことひとつだけ。

<r2chhtml.h>
#define R2CH_HTML_T_RELOAD(path) \
"<hr><center><a href=\"" path "\">新レスの表\示</a></center><hr>"

#define R2CH_HTML_T_RELOAD(path) \
"</dl><hr><center><a href=\"" path "\">新レスの表\示</a></center><hr><dl><dt><dd>"

にした方が、見た目が気持ちいいと思います(<hr>〜<hr>が<dd>にかかっているので
何となく気持ちが悪くて)。

HTML的には
#define R2CH_HTML_FOOTER \
"</dl><p>" CGIVER "</body></html>"
の</dl>をread.cの
#ifdef RELOADLINK
if (!level && lineMax == lineLast) {
html_reload(lineLast); /* Button: Reload */
}
#endif
の前あたりにもってきた方がすっきりしますが、どちらがいいかはおまかせします。


127 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/10 18:15
もちょっと。
>>77
同感です。あと、>>xx でchunk単位で50表示されるのは、若干のキャッシュ効果が
あるのかもしれませんが、それでも邪魔な気がします。
>>78
なにかと nofirst=true になっているのだけど、ない方がいいような気がしますね。
# 1も表示してくれた方がうれしいということです。
# スレ違い抑制のためにも役立ちますし。
>>83
賛成。


128 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/10 18:26
もいっこ。
target="_blank" 消えちゃってますね。すごく不便(^^;


129 名前: デフォルトの名無しさん 投稿日: 01/09/10 18:29
>>125
/=10 でls=10扱いってのはいいね。
でも . とか i ってのは保留にしたいところ?


130 名前: 125 投稿日: 01/09/10 18:41
>>129
.(nofirst=false)の扱い次第でプログラムの方針がかわるので
/10-20とかでnofirstをどうするか決めないといけない。

/10 (nofirst=true)
/10-20 (nofirst=false) #ここが問題
/100- (nofirst=false) #ここも同様
/-100 (nofirstはどうでもよい。1があるから)
/=10 (nofirst=false)
/n (nofirst=trueを強制)
/. (nofirst=falseを強制)

うーん。/10でnofirst=trueにしたいから変になってるなあ。


131 名前: デフォルトの名無しさん 投稿日: 01/09/10 19:17
>>124
これ当てた(削除した)


132 名前: (゚Д゚)ハァ?スレ発起人 投稿日: 01/09/10 20:16
また,スレタイトルの末尾の空白を取ったようですが...
http://saki.2ch.net/test/read.cgi?bbs=entrance&key=1000120416


133 名前: (゚Д゚)ハァ?スレ発起人 投稿日: 01/09/10 20:23
リモホばっちり出てた(;´Д`)


134 名前: デフォルトの名無しさん 投稿日: 01/09/10 22:36
>>67-68に対応してみた。
批判要望板のレスも読んで、
テレホ外は「レスを全部読む」を入れた。
最新レスnnも入れ、その分CHUNK_ANCHORの数を減らした。
>>86も試験的にコードにしてみたが、
「レスを全部読む」等との統一感がないのでOFFにしてある。
(つーか、俺HTML知らないし。)

変更が大きいのでコンパイルが通るかだけでも確認できる人、
大変だけど、お願いできるかな?
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=944&nofirst=true


135 名前: デフォルトの名無しさん 投稿日: 01/09/10 22:39
それと、>>132の不具合は
r2chhtml.hの
#define R2CH_HTML_HEADER_1
#define R2CH_HTML_IMODE_HEADER_1
#define R2CH_HTML_HEADER_2
#define R2CH_HTML_HEADER_2_I
とかだね。
直せる人が見ればすぐ直せると思う。


136 名前: |  - -) 投稿日: 01/09/10 23:37
>>135
done.


137 名前: デフォルトの名無しさん 投稿日: 01/09/11 00:04
CHUNKしてあっても、関係ない後半部分に追加レスがあるだけで、
If-Modified-Sinceが成立してキャッシュが無視される問題、
ETagを吐くことで対処できないかな。
昔調べたら、ネスケ4.70には無視されたけど、
IE5.01は次回にIf-Modified-SinceとIf-None-Matchを両方つけてきたと思った。


138 名前: デフォルトの名無しさん 投稿日: 01/09/11 01:22
rawモードでサイズを指定する意味って何なんでしょう?
無条件に指定レスのdat行を返してくれたほうがよっぽど便利だとおもうのですが。
rawモードのおかげでdatサイズの管理が不要になるかとおもいきや、そうはなりません。

唯一の意味は、上流でのあぼーんを検出できることですが、あぼーんの検出が
ユーザーにとってメリットであるかは微妙なところです。
また、検出したからといって、全てのdatを読み直すのは無駄のように思います。


139 名前: デフォルトの名無しさん 投稿日: 01/09/11 01:22
>>137
やっぱり投稿日フィールドデコードしちゃうべき?
秒が入ってないのが痛いけど…
デコードしてその一番後ろのレスの日時をLast-Modifiedに出せば
かなりいい動きしそうな気がするんだけど。
1分以内の複数の発言は仕方ないからひとつあたり1秒後ってことにして。(笑)


140 名前: デフォルトの名無しさん 投稿日: 01/09/11 01:23
>>138
途中があぼーんされたことをサイズの違いから判別するためです。


141 名前: 140 投稿日: 01/09/11 01:25
>>140
脊髄反射で書いてしまった…(鬱

>>138
>また、検出したからといって、全てのdatを読み直すのは無駄のように思います。
適切に同期を取る手段がない以上、仕方ないんじゃないでしょうか。
bbs.cgiにも手を入れられて、ファイルフォーマットなども変更できるのであれば
話は簡単になるんですが…


142 名前: デフォルトの名無しさん 投稿日: 01/09/11 02:17
cvs鯖ディスクフル起こしてません?


143 名前: デフォルトの名無しさん 投稿日: 01/09/11 02:24
Apache的にはETagは

etag = ap_psprintf(r->pool,
      "%s\"%lx-%lx-%lx\"", weak,
      (unsigned long) r->finfo.st_ino,
      (unsigned long) r->finfo.st_size,
      (unsigned long) r->mtime);

ってな感じで作ってるみたいね ただETagをCHUNK単位で有効に生成させるには
例えば指定範囲の記事テキスト等のハッシュ値を計算するとかいうことになるけど
これだと日付のパースの方が軽いのかも知れない......

ETagをハッシュ値で実装するメリットがあるとすれば 日付のパースだけでは
検出できないあぼーんがわかるということか


144 名前: デフォルトの名無しさん 投稿日: 01/09/11 02:37
>>134誰か確認した?


145 名前: デフォルトの名無しさん 投稿日: 01/09/11 03:14
CUT_DATE_STRINGはON固定でいいと思う。
つーかR2CH_HTML_DATEの定義を変えるだけのcondition
なんて必要ないでしょ。


146 名前: 125 投稿日: 01/09/11 04:04
>>138,141
raw=nnn.0 の時にあぼーん検出機能を無効にした。
あぼーん検出を積極的に使ってもらう意味で、あえて.0を必要とすることにした。
あぼーんの扱いは、ツール作者の方針次第になった。

PATH_INFOは、まだ表向きの機能ではないので、>>130を実装した。
ほとんどが機能強化で、後は/10や/10-20でnofirstをどうするかだけなので。
/=10 (ls=10)
/n (nofirst=true)
/. (nofirst=false)
/i (imode=true)

ただ、imodeの時をちゃんとしないとPATH_INFO自体を正式機能にするのに
問題がある。(?imode=tureつけちゃえば、5.20でも同様の問題)


147 名前: デフォルトの名無しさん 投稿日: 01/09/11 04:08
i-modeのときは
read.cgi/i/板名/キー/
ということにしてはいかが?
/i/の位置はここじゃなくてもいいけど


148 名前: 125 投稿日: 01/09/11 04:20
>>147
そういうことではなくて、
imode用の出力形式としてPATH_INFO用が用意されていないんです。
read.cgi/tech/998997848/read.cgi?bbs=tech&key=998997848&st=10&to=20&imode=true
なんてものが;_;

read.cgi/tech/998997848/i10-20
というような形式にそれぞれやらないといけない。


149 名前: デフォルトの名無しさん 投稿日: 01/09/11 04:29
批判要望で出ていた意見。俺も「新レスの表示」はわかりにくいと
思ってた。

166 名前:名無しさんの声 本日のレス 投稿日:01/09/11 04:25 ID:07YBBjEM
>>161
なるほど、未読レスの表示ね。
だったらそう書けっての。
新レスの表示なんて分りづらいことこの上なし。


150 名前: 125 投稿日: 01/09/11 04:42
>>149
妙に省略した言葉にするからわかりずらいんだよね。
いっそ、最後の番号からってことだから、
 149-
とかにしてしまえばいいのでは。文字数減るし。


151 名前: デフォルトの名無しさん 投稿日: 01/09/11 04:54
>>146
透明あぼーんのときはどうするの?
つーか、rawモード転送に、rsync的な手法は使えないかな?


152 名前: デフォルトの名無しさん 投稿日: 01/09/11 04:59
あぼーん検出を無効にしたということなんだから
当然透明も、だと思われ


153 名前: デフォルトの名無しさん 投稿日: 01/09/11 05:23
過去ログdatやhtmlの位置を#defineで変更できるように
しておきませんか?
read.cgi 5.20が導入されてる鯖で、倉庫落ちしてhtml化
待ちしているスレが削除されたと勘違いしているカキコを
要望板でときどき見ます。


154 名前: 125 投稿日: 01/09/11 05:42
>>151
だから、sizeを積極的に使えと。
sizeを使わないツールは、削除があった時に正しいデータを取得できない。
そこんとこよーく考えてツールを作りなさい。

今までのツールだって、ファイルのサイズかなんかを使ってサイズ管理
してたんでしょ。

ツール作成を楽にするために付けたんではなく、部分転送もgzip化して
転送量削減のために付けた機能なんだから。


155 名前: 125 投稿日: 01/09/11 06:03
>>151
rsyncってCRCかなんかで、既存部分の同一性チェックしてるんじゃなかったかな。
sizeじゃなくてCRCにしますか?
nnn.sizeがnnn.CRCになった方がいいですか?
あぼーん検出の確実性は増えますが、サーバーの負荷も増えるし、
ツールのプログラム量も増えますが。


156 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/11 06:47
>>146 >>154-155
話を蒸し返すようですが、あぼーん時はどんなツールに対しても強制的に
あぼーん済ファイルを全部転送しなすほうがよいと思うのですが。
あぼーん時に「正しいデータ」を取得させるべき動機は、読み手の利益のためというよりも、
2ちゃんねる本体で削除されたものはツール側でも削除されるべきであるという
ポリシーによると思うからです。透明あぼーんは例外的だし。
.dat直読み/直アクセスが不可になることも視野に入っているので、read.cgiが
あぼーんに敏感であることは、専用ツールに対してあぼーん強制をする最良の
手段となります。


157 名前: デフォルトの名無しさん 投稿日: 01/09/11 06:56
>>156
同意。sizeを使わない機能は無効にするかせめて
conditonで括るに一票。


158 名前: 125 投稿日: 01/09/11 07:02
>>156
うっ、本当にCRCにしたくなる話だ。
強制にもどすのは、&& raw_lastsize > 0を取るだけなんで一瞬です。
とりあえず、説明つきでコメントにしておきましょう。
ソースに運用ポリシー書いとかないと、理由を忘れていじっちゃいますから。


159 名前: デフォルトの名無しさん 投稿日: 01/09/11 07:10
>>134のcommitきぼーん。
>>83への対応にもなると思われ


160 名前: デフォルトの名無しさん 投稿日: 01/09/11 07:12
>>158 でもCRC実装したら それETagに流用できそうだね
っていうか もしそうなら専用ツールでもETag使ってもらうようにすればいいのか...


161 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/11 07:23
>>126-128 宣伝しとこ(笑 特に >>128

>>158
お疲れさまです。
4bit CRCくらいで試用してみるのもよさそうですね。
# 1bit でもいいか?(笑


162 名前: 125 投稿日: 01/09/11 07:34
>>161
CRC32なら、手持ちのソースがあるんですぐなんですけど〜。
算出可能にしておいて、どう使うかを後回しにしておきますか。

>>158 ちょっと手間取り中
ついでに書式ミス等の時に+OKを返してしまうのを修正している。


163 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/11 07:45
>>162
32bitはちと重たいかと。。。


164 名前: 125 投稿日: 01/09/11 07:57
rawoutの修正終了。

>>163
 CRC = (CRC>>8) ^ crc32_table[(CRC&0xFF) ^ *data++];
ループ内はこんなコードなので、bit数が増えたからといって
そんなに重くはないと思いますが。
tableは最初に初期化してますが、データにしちゃえばいいし。
減らすなら8bitかな。16bitは効率悪そう。


165 名前: 125 投稿日: 01/09/11 09:10
crc32算出は、zlibにいた。(w

>>161
表示外に跳ぶ時にtarget="_blank"を付けた。
condition USE_CHUNK_LINK を追加し、
CHUNKへのリンクと従来方式を選択可能にした。
とりあえず、従来方式ってことで。

今日はここまで。


166 名前: 134,135,137他 投稿日: 01/09/11 09:36
う、一晩たったのに相手してもらってない。ちょと悲しい。
動作確認はかなり厳密にやったし、
自分でコピペをCVSのソースに反映させても動くことを確認したのに。
(WinCVSの使い方をよく知らない俺が悪いんだけど)

それと、テレホタイムに&ls=101をつけると、
>>120と同じ現象が起こることを確認。
>>120と同じ対処でもいいけど、
表示レス数が限界に達した時に、out_html()内でレス表示後に
(最終レスかを調べずに)「これ以上表示できません」と表示するのが問題なので、
レスを表示する前に判定し、オーバーしてたら注意だけ表示して戻る等、
呼出側(dat_out)とあわせて、もっとうまく解決したほうがいいかも。


167 名前: デフォルトの名無しさん 投稿日: 01/09/11 09:36
zlibのを使うのなら crc32よりadler32の方が軽いみたい

% time ./test adler32
adler32 = c23cf731
1.18u 0.00s 0:01.14 103.5%
% time ./test crc32
crc32 = 7949b790
5.34u 0.01s 0:05.31 100.7%
% cat test.c
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <zlib.h>

#define FACTOR 65536

int
main(int argc, char *const *argv)
{
 if (argc < 2) fprintf(stderr, "Usage: %s function\n", *argv);
 else if (!strcmp("adler32", argv[1]) || !strcmp("crc32", argv[1])) {
  int i, fd = open(*argv, O_RDONLY);
  void *mmptr;
  uLong val;
  struct stat st;
  uLong (*fn32)(uLong, const Bytef *, uInt) = !strcmp("crc32", argv[1])?crc32:adler32;
  if (fd < 0) return -1;
  fstat(fd, &st);
  mmptr = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
  if (mmptr == MAP_FAILED) {close(fd); return -1;}
  for (i = 0; i < FACTOR; i++)
   val = fn32(fn32(0, NULL, 0), mmptr, st.st_size);
  munmap(mmptr, st.st_size);
  close(fd);
  printf("%s = %lx\n", argv[1], val);
 }
 else fprintf(stderr, "%s: Illegal function.\n", *argv);
 return 0;
}


168 名前: 167 投稿日: 01/09/11 09:41
>>166 とりあえず>>137はcrc32/adler32等によるチェックサムを実装することに
なれば そのスキームとしてETagを使うことが考えられるね


169 名前: 166 投稿日: 01/09/11 10:07
ETag話は続きそうなので、思いついた後に考えた事をいくつか。
(>>134は・・・)

まず、負荷の点で、
UAがIf-None-Matchをつけてきたら、
最初に(gzipとか呼ぶ前に)ETagを調べるためだけに
datを読み、レスを走査する必要があり、これがどうなのかな、と。
まあ、304を返せないなら、どうせ全体を返す事になるから、
それと比べればぜんぜん平気なんだけど、
変更された場合には、その後もう一回出力しなくてはいけない。

それと、LastModifiedの返し方によってはLastModifiedが変更されたのに
ETagが変更されないケースが多発するわけで、
下手するとLastModifiedとNotModifiedを両方出力してしまい、
その場合はapacheがどうするか、それを受けたUAはどう扱うか。
両方出力しないようにするには、ソースの変更が結構増えそう。

それから、ETagに反応してくれるUAってのはどのくらいなのかなと。
IEが反応してくれるから、やる価値はあるけど、
反応してくれなそうなUAなら、ETag自体を吐かない手もあるかなと。

もひとつ、基本的にCHUNK_ANCHOR時に有効と考えるんだけど、
(もちろん、それ以外でも有効だけど)
レス自体に変化がなくても、総レス数等が変わり、
「新レス」「901-」等が更新されない場合が出てくるわけで。
その場合、ある程度レスが増えたら値を変えてModified扱いしないと
あまりうまくないわけで、そのあたりをどうするか。
もちろん、1-150等の場合の時間帯制限も考えると、
URIで指定されたレスではなく、
実際に出力するレスから算出しなくてはいけないし。

それに、いろいろ見ると、CHUNK_ANCHOR自体が賛否両論な気がするし。


170 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/11 10:11
>>164
何bitにせよ.datの頭から積算するんだから、確かにあまり変わらないかもですね。
でもなんか、もったいない気がしちゃって(笑
>>165
ありがとうございます。
>>166 >>168
>>135 も |  - -) さんがやってくださったようですよ(^^
>>134 方向性は賛成です。余力がなくお役に立てないですいません。


171 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/11 10:18
>>169
>それに、いろいろ見ると、CHUNK_ANCHOR自体が賛否両論な気がするし。
CHUNK単位にあまりこだわらない方がいいように思います。
あくまでユーザーインタフェースとして、50なり100なりで区切ったリンクを
提供するにとどめた方がよいかと。
# その意味では、冒頭のCHUNK単位のリンクも target="_blank" で提供した方が
# よいのかもしれません。「前のxxレス」「次のxxレス」というのは、ページを
# 捲っていく感覚だけれども、CHUNK単位の参照は >>xxx のリンクを参照する
# ときの感覚に近いような気がする。


172 名前: 125 投稿日: 01/09/11 13:05
>>166
申し訳ない。
だが、あれだけの分量を検証しながらマージするのは正直言って面倒。
ここにソースを書きこむんじゃなくて、どこかにアップしてくれ。
ftp://210.170.170.118/incoming/ は...使えない?IP変わったのかな。

あと不具合修正は構わんが、機能的な変更(50- 100-の所)は、選択可能に
作って欲しい。

うーん、眠い〜。


173 名前: 167 投稿日: 01/09/11 13:21
>>169 If-None-Matchに対応してチェックサムを計算するとすれば
とりあえず dat_read() は二回目に呼ばれた時は すでにBigBufferが
代入されている状態なので その時は何もせずにそのまま帰るようにすれば
いいんでしょうかね でETagの比較をする時に dat_read() を呼んでしまう
ということでいいのでは...と思います(よく見るとdat_read()及びそこから
呼ばれるgetLineMax()では 実際にはパラメータの内st,to,lsはファイル読込
自体には影響しない模様) Last-Modifiedの比較をしてる部分にETagの
比較部分も突っ込んでしまえば 304なのにLast-Modifiedも吐いてしまうと
いうことは避けられると思います

あとネスケはETagに対応してないみたいですが 専用ツールについては
作者さんたちにお願いしてETag対応にしてもらうと(w


話は変わって>>167の付け足し OpenSSLで MD2/MD4/MD5/SHA1 出すと
いうのをやってみた 結論的には......これじゃダメだね(w

% time ./test md2
...メチャ遅くて終わるまで待てなかった(w
% time ./test md4
md4 = 2882041ac5dabc1417ee2d6af4359a7f
4.75u 0.01s 0:04.73 100.6%
% time ./test md5
md5 = ceeaea6c91f07e47c0c4828bc481901f
6.42u 0.01s 0:06.44 99.8%
% time ./test sha1
sha1 = 7fcc4d8c84772fa6d9050abe80820b8e4038d6a9
12.92u 0.02s 0:12.91 100.2%


174 名前: 166 投稿日: 01/09/11 16:19
本当、申し訳ない。書きこむ前にftp://210.170.170.118/incoming/
をチェックしたんだけど、使えなくて。
変更は、かぶらない限り全然後でもかまわないし、
他にやっていることがあるなら、是非そちらを優先して。

で、不具合(「全部読む」が出ないとか)と、
#ifdef SEPARATE_CHUNK_ANCHOR
化をして、
read.c 11-Sep-2001 09:05 52k
に対してdiff取ったんだけど、
169d168
< #ifdef LATEST_ANCHOR
こんな形式のヤツでいいのかな?
インデントがつぶれるのも不安だし。

もし、それでよければ、そいつ(190行程)をコピペして
前スレに貼るけど。
前スレの944の追加と合わせれば、
ちゃんと動くと思う。

って、もう寝てるか。
それと、CRCの計算等には、全然ついて行けないので、ごめんなさい。
さらに、timeの出力の意味すらしらない。


175 名前: |  - -) 投稿日: 01/09/11 16:37
diff があるなら -c or -u オプションつきでとってください... patch 当てやすいので。
あと、できるなら mimencode してくれるといいです。
# そのまま貼り付けはインデント崩れるしuuencode は &ltとか出てきてやばい


176 名前: 166 投稿日: 01/09/11 16:41
すんません、ど素人で。
mimencodeってWin上でどうやったらできます?
何のソフトで変換すればいいんだろう・・・


177 名前: 166 投稿日: 01/09/11 16:43
すみません、とりあえずgoogle行きます


178 名前: |  - -) 投稿日: 01/09/11 16:44
>>176
むー。Windowsか。メールソフトで
メールを作成→添付ファイル→送信せず保存→(メールの)ソースを見る
とかやればできないこともないけど...

diffがあるということはcygwin使っているのかな...?


179 名前: 166 投稿日: 01/09/11 16:48
>cygwin
そうです。かなり古いバージョンだと思うけど。


180 名前: - 投稿日: 01/09/11 16:58
ttp://www.cc.rim.or.jp/~ikuta/mime_pls/

mime_plsをとってきて、中に入ってる(はず)のwbodyってスクリプトで
MIMEに変換できた・・・はず。


181 名前: デフォルトの名無しさん 投稿日: 01/09/11 17:05
MIMEってBASE64 encodingのことかな。
これだと確かに[A-Za-z0-9+/]しか使わないから化ける危険少ないかな。
分量増えるからencodeかけるまえに圧縮してくれるといいかも?


182 名前: 166 投稿日: 01/09/11 17:12
皆さん、どうもです。
いろいろやってみます。
(メーラー添付はタブが残ってたので)
次からの事もあるので、何とかそれなりに簡単で安全な方法を探します。
(とりあえず>>180を落としてみた)

CVSの更新は続けちゃってください。
変更点は自分ではわかっているので、
安定していそうな頃を見計らってdiff -cした結果をどっかに貼ります。


183 名前: 166 投稿日: 01/09/11 17:37
何とか出来たかも。
前スレ944と951(difs.txt.gz)で
動いてくれることを祈ってみたり。
(-DSEPARATE_CHUNK_ANCHOR)

うまくいってたら、皆さんに大感謝。


184 名前: デフォルトの名無しさん 投稿日: 01/09/11 17:50
>>183
diffの出力をgzipしてmime encodeしたんですね。
diffの改行コードがCRLFなのに最初ひっかかったYO(笑)
とりあえず手元では当たった。


185 名前: |  - -) 投稿日: 01/09/11 17:53
>>183
done. あと CGIVER がいつまでたってもver14なのは変なので変更。
こんなの作ってみた→ http://piza2.2ch.net/test/read.cgi/tech/984182993/488


186 名前: デフォルトの名無しさん 投稿日: 01/09/11 17:57
first_line()とlast_line()を
#ifdef SEPARATE_CHUNK_ANCHOR
で囲まないとwarningが出るね。使ってないって。


187 名前: |  - -) 投稿日: 01/09/11 18:02
>>186 done.


188 名前: 166 投稿日: 01/09/11 18:17
125さん、|  - -) さん、180さん、181さん、
本当にお手数おかけしました。
ありがとうございました。
今後、大きい変更があったら、7行スレのを使わせてもらいます。


189 名前: デフォルトの名無しさん 投稿日: 01/09/11 18:22
今回の変更の説明をconfig.txtに記入キボー

?SEPARATE_CHUNK_ANCHOR
※CHUNK_ANCHORが必要
内容の説明キボー

?CHUNKED_ANCHOR_WITH_FORM
※CHUNK_ANCHOR定義時にのみ有効
select form形式で CHUNKED_ANCHORを表示する
「掲示板に戻る」「レスを全部」「最新レス」との統一が取れていない


190 名前: デフォルトの名無しさん 投稿日: 01/09/11 18:36
>>189
こんなところ?

▲SEPARATE_CHUNK_ANCHOR
※CHUNK_ANCHORが必要
続くchunkへのanchorは先頭ではなく末尾に表示する

▲CHUNKED_ANCHOR_WITH_FORM
(略)


191 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/11 18:38
いままでのところ ver5.20 の感想。

転送量は、機能が増えたのに 増えも減りもしなかった。
CPU等への負荷は、若干上がった。

という状況です。(piza2 , cheese/tako , saki)

で、お願いなんですが、実はいろいろ変更が予定されていまして、
今 read.cgi で使われている、各フォルダ名を ヘッダーで #define
するような形にして欲しいのです。

具体的に言うと、
dat
temp (仮称 : dat -> temp -> kako のような流れに改造中)
kako (kako以下のフォルダの生成は関数の方がいいかも)

temp に .dat があるときは現在このようなメッセージを出しています。
『隊長! スレッド 999973555.dat は、HTML化されるのを待っているようです。
しばらく待つしかないようです。』

ご検討のほど、よろしくお願いいたします。


192 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/11 18:39
× kako以下のフォルダの生成は
○ kako以下のフォルダ名の生成は


193 名前: 125 投稿日: 01/09/11 19:02
2220,2221d2155
< #ifndef SEPARATE_CHUNK_ANCHOR
< /* 初期化した数値を再び使うのはダイジェスト関係だけのはず */
SEPARATE_CHUNK_ANCHORで括るのは間違い。
out_resN = 0;を残すかコメントアウトするかはどうでも良いが
conditionで括る程のものではない。

/* out_resN = 0; ダイジェスト用に再初期化 */

ぐらいで、いいんじゃない。

>>174
寝たんじゃない、眠けに耐えながら仕事してたんだ。
ってことで、おやすみ〜。
起きたときに新バージョンがインストールされてるといいな〜。


194 名前: 369 ◆3XTuRnAc 投稿日: 01/09/11 20:03
えと、すんません、IP変わりました。
今日の午前1時か3時ぐらいにIPが替わった模様です。

新しいIPは
210.170.170.18
です。


195 名前: 153 投稿日: 01/09/11 20:33
おお、夜勤さん自ら要望に来てる


196 名前: デフォルトの名無しさん 投稿日: 01/09/11 20:47
/tech/dat/1000035521.dat
↓俗に言うdat落ち
/tech/temp/1000035521.dat
↓html化
/tech/temp/kako/1000/1000035521.dat(.html)
って形になるのかな?

すると、
read2ch.h
#define DAT_DIRNAME "dat/"
#define TEMP_DIRNAME "temp/"
#define KAKO_DIRNAME "kako/"
/* .datのディレクトリ構成
 /tech/dat/1000035521.dat
 /tech/temp/1000035521.dat
 /tech/temp/kako/1000/1000035521.dat(.html)
*/
それと、dat直読み禁止=.cgi化と仮定して、
#define DAT_EXTNAME ".dat"
って感じ?


197 名前: デフォルトの名無しさん 投稿日: 01/09/11 20:48
r2chhtml.h
R2CH_HTML_ERROR_5_DAT
 ・・・"スレッド %s" DAT_EXTNAME "</a> を"・・・
R2CH_HTML_ERROR_5_NONE
 "<a href=\"/%s/" TEMP_DIRNAME KAKO_DIRNAME "\">過去ログ倉庫</a>にも"・・・
/* 使われてないけど */
#define R2CH_HTML_ERROR_999_1
 ・・・
 "<a href=\"/%s/" TEMP_DIRNAME KAKO_DIRNAME "%s/%s.html\">過去ログ倉庫"・・・
 ・・・

read.c
main()
  sprintf(fname, "../%.256s/dat/%.256s.dat", zz_bs, zz_ky);
→ sprintf(fname, "../%.256s/" DAT_DIRNAME "%.256s" DAT_EXTNAME, zz_bs, zz_ky);

html_error()
  sprintf(doko, "../%.50s/kako/%.50s/%.50s.html", zz_bs,
   zz_soko, tmp);
→ sprintf(doko, "../%.50s/" TEMP_DIRNAME KAKO_DIRNAME "%.50s/%.50s.html", zz_bs,
   zz_soko, tmp);

  sprintf(doko, "../%.50s/kako/%.50s/%.50s.dat",
   zz_bs, zz_soko, tmp);
→ sprintf(doko, "../%.50s/" TEMP_DIRNAME "%.50s" DAT_EXTNAME,
   zz_bs, tmp);

あと、これ、まずいんじゃないかな?(9月9日問題か?)
倉庫ディレクトリは4桁に増えると予想してるんだけど。
html_error()
  strncpy(zz_soko, tmp, 3);
→ sprintf(zz_soko, "%d", atoi(tmp) / (1000 * 1000));


198 名前: デフォルトの名無しさん 投稿日: 01/09/11 20:50
html_error()の後半は、
→ sprintf(doko, "../%.50s/" TEMP_DIRNAME KAKO_DIRNAME "%.50s" DAT_EXTNAME,
   zz_bs, tmp);
だった。


199 名前: デフォルトの名無しさん 投稿日: 01/09/11 20:53
いや、これも違う。
もう一度よく考える。
→ sprintf(doko, "../%.50s/" TEMP_DIRNAME KAKO_DIRNAME "%.50s/%.50s" DAT_EXTNAME,
   zz_bs, zz_soko, tmp);


200 名前: デフォルトの名無しさん 投稿日: 01/09/11 20:55
>>196

/tech/dat/1000035521.dat

/tech/temp/1000035521.dat

/tech/kako/1000/1000035521.dat(.html)

ではないかと思われ。
それにこのほうが #define いじりやすそう。


201 名前: デフォルトの名無しさん 投稿日: 01/09/11 21:03
俺もそう思って書きなおしてた>>200

/tech/dat/1000035521.dat
↓俗に言うdat落ち
/tech/temp/1000035521.dat
↓html化
/tech/kako/1000/1000035521.dat(.html)
で、

read2ch.h
#define DAT_DIRNAME "dat/"
#define TEMP_DIRNAME "temp/"
#define KAKO_DIRNAME "kako/"
#define DAT_EXTNAME ".dat"
/* .datのディレクトリ構成
 /tech/dat/1000035521.dat
 /tech/temp/1000035521.dat
 /tech/kako/1000/1000035521.dat(.html) */

r2chhtml.h
R2CH_HTML_ERROR_5_DAT
 ・・・"スレッド %s" DAT_EXTNAME "</a> を"・・・
R2CH_HTML_ERROR_5_NONE
 "<a href=\"/%s/" KAKO_DIRNAME "\">過去ログ倉庫</a>にも"・・・
/* 使われてないけど */
#define R2CH_HTML_ERROR_999_1
 ・・・
 "<a href=\"/%s/" KAKO_DIRNAME "%s/%s.html\">過去ログ倉庫"・・・
 ・・・

read.c
main()
  sprintf(fname, "../%.256s/dat/%.256s.dat", zz_bs, zz_ky);
→ sprintf(fname, "../%.256s/" DAT_DIRNAME "%.256s" DAT_EXTNAME, zz_bs, zz_ky);

html_error()
  sprintf(doko, "../%.50s/kako/%.50s/%.50s.html", zz_bs,
   zz_soko, tmp);
→ sprintf(doko, "../%.50s/" KAKO_DIRNAME "%.50s/%.50s.html", zz_bs,
   zz_soko, tmp);

  sprintf(doko, "../%.50s/kako/%.50s/%.50s.dat",
   zz_bs, zz_soko, tmp);
→ sprintf(doko, "../%.50s/" KAKO_DIRNAME "%.50s/%.50s" DAT_EXTNAME,
   zz_bs, zz_soko, tmp);

倉庫ディレクトリは4桁に増えると仮定して、
html_error()
  strncpy(zz_soko, tmp, 3);
→ sprintf(zz_soko, "%d", atoi(tmp) / (1000 * 1000));


202 名前: 201 投稿日: 01/09/11 21:08
まーた間違えた。
html_error()の後半
  sprintf(doko, "../%.50s/kako/%.50s/%.50s.dat",
   zz_bs, zz_soko, tmp);
→ sprintf(doko, "../%.50s/" TEMP_DIRNAME "%.50s" DAT_EXTNAME,
   zz_bs, tmp);


203 名前: デフォルトの名無しさん 投稿日: 01/09/11 21:20
もしかしたら、read.cgiでtempだけでも読めるように
規制を緩める可能性もあるのかな?

だとすると、あらかじめ dat_out()に
if (isdigit(*zz_ky)) {
 threadStopped = 1;
 /* 過去ログはFORMもRELOADLINKも非表示にするため */
}
を入れておいたほうがいいかもしれない。


204 名前: 203 投稿日: 01/09/11 21:22
if (!isdigit())


205 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/11 21:42
>夜勤さん
.datへのアクセスはどのような形で許容されることになるのでしょう。
read.cgiからraw=xxx.yyy機能だけ切り出して別CGIを用意した方がいいのでしょうか。
あぼーん検出も差分(圧縮)転送もなかなかいい具合ですよ♪>raw=xxx.yyy機能

あと、「投稿日」消滅が確定的ならば、「名前」も無くしちゃっていいと思います。
むしろすっきりするかと。
「xxx :name :yy/mm/dd hh:mm」
の形式で、どうでしょうか。


206 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/11 21:54
>>205
まだ、なにも決まったわけではないのですが、
dat の直読みは、転送量の節約を鑑みて、できなくする方向です。
で、read.cgi がそのまま その機能を代行するようになると思います。
ディレクトリ構成は劇的に変わる予定ですので、試行錯誤をしたいので
出来れば #definr DAT "dat" 等は、サーバ内での相対パス、絶対パス
どちらが入れられても良いように意識していただけるとありがたいです。

なにせ、key が 10 桁になったり、dat を落とすにしても、一人一人は
少ないのですが、数千人が一度に集中したりしているので、いろいろ
改造が必要なんです。。。 よろしくお願いします。


207 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/11 21:55
もひとつ、CHUNK_ANCHOR と CREAT_NAME_ANCHOR 関連の方向性で案(ほとんどがいしゅつ)を
提示します。方針を決めておかないとさらに混乱しそうなので、当面の方向性を
確定させないとと思います。いかがでしょうか。

・CHUNK単位のリンクはページ冒頭でなくページ下部で提供する
・CREAT_NAME_ANCHOR はお蔵入りさせる
・>>xxx は旧来通り st=xxx&to=xxx&nofirst=true にする。 >>xxx-yyy も同様。
・LINKTAGCUT は config.txt の通りの動作をすることにして、採用する。
 >混雑時間帯に >>000 形式のレスへのリンクを削除。
 >「レスを全部読む」の増加への対策として、
 >表示範囲外のリンクは削除しないように変更。


208 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/11 22:06
>>206
了解です。

.dat をHTML化して提供する場合は、/dat/行き or /kako/行きした .dat に
ついても、read.cgi が全面的にカバーしようと思えば可能です。
# 現在は、過去落ちすると鯖側で .dat と .html の両方を提供していますが、
# .html を作らなくても read.cgi がどうにかできるということです。
# もちろん、このあたりは負荷との相談になるでしょうが。。。

一方で、HTML化されていない生の .dat を必要とするのは、おそらく専用ツールだけ
ですが、専用ツールとのやりとりに(いろんな機能を持って重たくなっている)
read.cgiを走らせるのは非効率ですので、生dat吐きに特化したCGIを別途用意する
ことも考えて良いと思います。
夜勤さんにそのおつもりがあれば、このスレで対応できると思いますが、
いかがでしょうか。


209 名前: 外出ですか? 投稿日: 01/09/11 22:42
これ↓
http://ton.2ch.net/test/read.cgi?bbs=sec&key=996966367&st=40&to=40&nofirst=true

前スレ上げちゃいました。ごめんなさい。


210 名前: デフォルトの名無しさん 投稿日: 01/09/11 22:48
>>209
imgタグが貼れてるんですね。ていうかbbs.cgiの問題ですよねこれ?
それともread.cgiのbuffer overflowでも突いたのかな? (^^;


211 名前: デフォルトの名無しさん 投稿日: 01/09/11 22:59
bbs.cgiのホールだって、そのスレでフィーネが言ってた気がしたけど。


212 名前: デフォルトの名無しさん 投稿日: 01/09/11 23:05
CGIのホールだとは言ってるけど、どのCGIだとは言ってないよね。


213 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/11 23:07
今日は速報板等々で夜勤さん大変そうだし、転送量もアレでしょうから、
おやすみしましょうか。。。。


214 名前: デフォルトの名無しさん 投稿日: 01/09/11 23:47
この事件で転送料が又跳ね上がっちゃいますね


215 名前: デフォルトの名無しさん 投稿日: 01/09/11 23:55
夜勤さんたら、まだ2chになってないサーバーまで突っ込んじゃてる。
ニュース速報板が4つもあるし。
今日は無理でしょうねえ。


216 名前: デフォルトの名無しさん 投稿日: 01/09/12 01:39
臨時サーバーで掲示板に戻るがうまくいかないね。
相対pathに変えた方がいいよね。


217 名前: (゚Д゚)ハァ?スレ発起人@批判要望板 ◆2Pees222 投稿日: 01/09/12 04:48
>>209-212
http://teri.2ch.net/accuse/kako/998/998399444.html


218 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/12 17:14
>>216
鯖がいくつもありますので、そのたびに設定を変えるのは最小限にとどめると
すると、#define すべきなのは >>191 >>200-201 に加えて
・test へのpath
・板 へのpath
でしょうか。piza2など既存の鯖の多くでは、両方とも "" になります。


219 名前: デフォルトの名無しさん 投稿日: 01/09/12 17:22
旅客機テロの影響か書き込みがパタリと止んでいますが…。
1つ提案です。
REQUEST_METHODがHEADのときは、本体を読み出して
解析しても無駄なのでLast-ModifiedとContent-Lengthを
吐くだけにしましょう。


220 名前: デフォルトの名無しさん 投稿日: 01/09/12 23:21
絶対pathでも相対pathでも対応可能にするには、
sprintf(buff, "%s%s", *TEMP_DIR == '/' ? "":"../", ...)
のように、強引にやる方法もあるけど、
それよりも、夜勤さんにしろひろゆきにしろ、わかってるんだから、
#define TEMP_DIR "../%s/temp/"  /* %s に板名がはいる */
のように、フォーマット文字列をdefineした方がやりやすいでしょ。
変更個所は>>201-202と同じで。

>kako以下のフォルダの生成は関数の方がいいかも
ということは、kako以下の仕様も変更するかもしれないってことかな?
なら、
/* buffに、倉庫のサブディレクトリ名を生成する
両端の'/'はつけないこと。
例 key="999888777"のとき、buffには"999"を入れる */
#define kako_dirname_copy(buff, key) \
 strncpy((buff), (key), 3) /* 3桁固定 */
/* 999の次を桁にする場合は
 sprintf((buff), "%d", atoi((key)) / (1000 * 1000))
 にする */
のようなものを、そのままread2ch.hに入れてしまえばよさそう。


221 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/12 23:45
実装・検討待ちの案一覧

ETag
 >>137 >>143 >>167-169 >>173

HEADリクエストに対しては Last-Modified と Content-Length を吐くだけにする
 >>219

CHUNK_ANCHOR NAME_ANCHOR
 nofirst=true をつけない("最新レス50"にも)
 アンカーへのリンクは冒頭でなく下部に & target="_blank" する
 >>xxx はCHUNK単位で呼び出さない & nofirst=true をつけない
  >>76

URL記述に対するリンク設定も時間帯によらせる
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=817&to=817&nofirst=true

「名前:」も「:」だけにする

</dl>するタイミング
 >>126

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

dat,temp,kako
 dat,temp,kako,test,板 のpathをdefineできるようにする
 kakoへのpathは関数で生成する
  >>191 >>196-202 >>216 >>220
 dat,temp,kako を read.cgi で読む
  >>203-208
 datの一部についてのLastModを求める
 ツール作者さんに対応お願い
  * raw=xxx.yyy の形式でリクエスト。 xxx=最終レス番号, yyy=そのときのサイズ。
  * 一行目はステータス:
  * [+OK] の場合は差分のみを送信する。
  * [-INCR] (Incorrect)の場合はすべてのデータを送信する。
  * [-ERR (テキスト)]の場合はなんかエラーが起きた。

condition一覧/SETTING_R.TXT記述一覧
 http://www.gedoh.org/aki/2ch/current/bbs/config.txt
 CUT_DATE_STRINGをON固定にする
 GZIP/ZLIBを整理
 追加すべきもの
  CAUTION_FILESIZE xx, MAX_FILESIZE_BUSY (xx)(デバッグ用)
  SEPARATE_CHUNK_ANCHOR(CHUNK_ANCHORが必要), CHUNKED_ANCHOR_WITH_FORM(CHUNK_ANCHOR定義時にのみ有効)
   >>189-190
  CM_BBSPINK, LOGLOGOUT x, TYPE_TERI, Katjusha_Beta_kisei
  RAWOUT
   rawmode時に圧縮対応していないと弾かれる


222 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/12 23:45
NN4.72でgzip圧縮&&Content-LengthがあるとLast-Modifiedが無効
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=872&to=872&nofirst=true

mmap時にlockすべきか
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=139&to=139&nofirst=true
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=425&to=425&nofirst=true

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

deflate
 そのうち対応

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


223 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/12 23:49
あと、>>207 についてのご意見をお願いしますです。


224 名前: 125 投稿日: 01/09/12 23:50
とりあえず、あらかた組み込んだ。
#define DAT_DIR "../%.256s/temp" 方式
CREAT_NAME_ANCHORはoffにした。

SEPARATE_CHUNK_ANCHORの動きが気に入らない。
特に、busyの時が不自然かな。

tempやkakoのチェックが面倒だった。


225 名前: 125 投稿日: 01/09/12 23:52
書き間違いごめん
#define DAT_DIR "../%.256s/dat/"


226 名前: 125 投稿日: 01/09/12 23:56
>HEADリクエストに対しては Last-Modified と Content-Length を吐くだけにする
Content-Lengthを吐くためには全部やってみないと算出できない。
ZLIBでgzipの時にデータを吐かなくすることは可能。


227 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/13 00:40
>>221
>CHUNK_ANCHOR NAME_ANCHOR
> >>xxx はCHUNK単位で呼び出さない & nofirst=true をつけない
訂正。この場合は nofirst=true をつけるべきです(現状のまま)。

>>224-226
おつかれさまです。


228 名前: デフォルトの名無しさん 投稿日: 01/09/13 01:04
「削除」はするけど「書き換え」はしないという方向かな?
基本的には賛成。
ただ、文字数を考えるとUSE_PATHの時は書き換えてもいいかも
(target="_blank"も結構長さを食う原因だけど)


229 名前: 125 投稿日: 01/09/13 01:12
Etagですが、ZLIB+gzip使用ならgzipが算出したCRC32をそのまま使う手もあります。
サーバー負荷は減らないが、転送量は減らせるでしょう。
ただ、対応部分のdatが何も変わっていなくてもhtml化の表現が変わると
無効になってしまいます。
23時に突入した時とか、レスが増えてanchorが増えた時とか。

>>222
NN4.xに対応するworkaroundは導入されてます。


230 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/13 02:34
>>228
表示中のページ内に該当レスがある場合にのみ「削除」をする、
あとはなにもしない、ってことになります。>>207
target="_blank"がないのは、特に >>xxx の場合は不便なのでぜひ付けて欲しいです。
その他の場合(冒頭部のCHUNK、最新レス50、etc.)はつけない方がいいのかも。。。
>>229
同じことを raw=xxx.yyy の時にやる場合は、html化後の表現には左右されませんよね。
# html化しないんだもの(笑
raw=xxx.yyy ではないときに Etag をはくのは、raw=xxx.yyy なときと比べると
おまけかなと思っているので、それでもよいと思いますです。


231 名前: 125 投稿日: 01/09/13 03:11
>>230
あれ?Etagの目的は、
 ブラウザで部分読みの場合に出力に変化がないにもかかわらず
 新レスのせいでIf-Modified-Sinceが成立しなくなる。
の対策じゃなかったけ。
ついでにあぼーんチェックの強化に使おうというのは主目的ではなかったはず。


232 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/13 08:09
>>231
失礼しました。私の勘違いです。

そもそも、raw=xxx.yyy の時に同一性チェックを行うのは、304を返すためではないので、
304を返すためにおこなうチェック(部分読みの時の同一性チェック)とは方向性が違いましたね。
# 具体的には、後者の場合、転送内容は「鯖側で同一性チェックにかけられる部分」に
# 確定している。前者の場合、転送内容は「.dat全部」か「鯖側で同一性チェックに
# かけられ*なかった*部分」のどちらかになる。
# 前者の場合(rawmode)の同一性チェックは gzip/zlib しないで行うべき、
# という認識で正しいですか?


233 名前: デフォルトの名無しさん 投稿日: 01/09/13 10:57
webブラウザでver5.20を見てみての>>207さんへの意見です
CHUNK単位のリンクは冒頭のままでよいかと思いますが、
・各CHUNK表示の下部に「次の50レス」へのリンクがほしいです
 最新表示の「新レスの表示」と同じ形式がよいと思います
・表示レス数50以下のCHUNKはいらないのではないでしょうか
 [(レス数-1)/50]*50-49 がトップにくるCHUNKまででよいと思います


234 名前: デフォルトの名無しさん 投稿日: 01/09/13 11:33
批判要望では、CHUNK単位のリンクが先頭にあると
読み終わった後でいちいち先頭まで戻るのがめんどくさい
という意見が出ていました。


235 名前: デフォルトの名無しさん 投稿日: 01/09/13 12:18
やはり一番下に前後CHUNKに移動する手段はほしいですね。
そうすることで一つひとつのページのバイト数は多少増えるかも
しれないけど、適切な誘導で無駄なページの閲覧を減らせるの
ならば、結果的に転送量の抑制にもつながるのではないかと。


236 名前: デフォルトの名無しさん 投稿日: 01/09/13 13:13
あ、>>235は「CHUNK単位のリンクに加えて」という意味です


237 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/13 14:52
999999999 以前のやつは、いままで通り
http://kaba.2ch.net/news/kako/

1000000000 以降のは、こんなディレクトリ構成考えてます。
http://kaba.2ch.net/news/kako/10/000/
つまり今よりは複雑になるので、#define じゃやりにくい
ということです。他の dat落ち、html化等のcgi も随時改造中
ですので、kakoフォルダのロケーションは関数化していただけると
ありがたいです。

注文多くて、すみません。よろしくお願いいたします。


238 名前: デフォルトの名無しさん 投稿日: 01/09/13 16:51
やはりCHUNK_ANCHORは下にあったほうがいいという意見が
多いですね。

762 名前:名無しさんの声 投稿日:01/09/13 16:44 ID:a2dTsqos
"1- 51- 101- 151- 201- 251- 301- 351- 最新レス50"
って部分"新スレの表示"の左側にも付けてもらえませんかね?
いちいち上まで戻して次の50表示するの面倒です。


239 名前: デフォルトの名無しさん 投稿日: 01/09/13 17:18
なるほろ。こんな感じ?

/* keyはkey=../kako/xxx等の場合でも、最後の"/"の次の位置が入る。
 普通は数値のみ(の先頭)が入っている。
 現在は、
 "999888777" → "999"
 "1000999888777" → "10/000"
 "1234999888777" → "12/234" */
void create_kakodirname(char *buff, const char *key)
{
 int tm = atoi(key) / (1000*1000);
 if (tm >= 1000) { /* 1000 Over */
  sprintf(buff, "%d/%d", tm / 100, tm % 1000);
 } else { /* 994-999 */
  sprintf(buff, "%d", tm);
 }
}


240 名前: デフォルトの名無しさん 投稿日: 01/09/13 17:23
夜勤さんがさらにいじりやすい(read.c内の位置を探すのが面倒)ように、
read.cの一番最後に置くか、
↑を全部#ifdef READC_MAINで囲んでread2ch.hに置いて、
read.cを
#define READC_MAIN
#include <read2ch.h>
にしておくのがよい?


241 名前: デフォルトの名無しさん 投稿日: 01/09/13 17:24
read.c内で一箇所に固めておくに一票


242 名前: 239 投稿日: 01/09/13 17:25
コメント滅茶苦茶だった・・・


243 名前: 239 投稿日: 01/09/13 17:58
コメントはともかく、動作がおかしいのはまずい。ってことで、
  sprintf(buff, "%d/%03d", tm / 100, tm % 1000);


244 名前: デフォルトの名無しさん 投稿日: 01/09/13 18:48
>>nnn形式のリンクをクリックするリクエストって、
全体からするとかなり低い割合なのかな?
すると、転送量に占める割合は、さらに極僅かかな?

>>nnnをクリックして読む場合って、
スレの別の部分を読んでいて、そこから参照するだけだから
書きこんだり、続きを読んだりする事ってほとんどないはず。
すると、1レス分の表示をするために沢山のリンクを提供して
javascriptでNAMEやMAILを取って、FORMを表示するのって、
(1レスを読むためだけには)すごい無駄な気がする。

refererを調べれば参照が元スレ(or index.html)かはわかるから、
その場合で、かつstとtoが同じでnofirst=trueの場合には、
レスの本文だけに特化して、それを返してもよさそう。

CHUNKや「次のnレス」を辿る場合にはカット出来ないから、
>>nnn-mmm形式のリンクにも対応するには、
stやtoの数値を見て判断するとか、
stとtoの差が10以内だったらカットするとか。

いずれにしても、最初に書いたように
変更個所が多岐に渡る割に、効果は不明だけど。


245 名前: 7743 投稿日: 01/09/13 22:13

倒れる
ソニック


246 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/13 23:24
>>245
0x7cのテスト??


247 名前: ghanyan 投稿日: 01/09/14 00:32
マイナーな2chブラウザを作っている、ghanyanです。
今回、まず初取得時にread,cgiのRAWモードを使おうと思ったのですが、
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=982853418&raw=0.0
では、スレにある\x00の連続が削られてしまい、read.cgiのリザルトコードを
除いた部分が元のdatファイルと一致しません。 これが一致してもらわないと、
過去ログあたりがみんな無効になったり、更新時にはread.cgiを介さない場合に
とても困るんですが。 (URL:http://www.geocities.com/ghanyan/ )


248 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/14 00:53
>>247
ご報告ありがとうございます。確認しました。
rawout時には.datをいじくらないようにしないといけないですね。


249 名前: デフォルトの名無しさん 投稿日: 01/09/14 00:57
printfだから\0を含む行を正しく出力できないわけね。
zlibにはバイナリ出力用の関数ってあるの?
pPrintf(pStdout, "%.*s", BigLine[i+1] - BigLine[i], BigLine[i]);


250 名前: デフォルトの名無しさん 投稿日: 01/09/14 01:09
こうすればOK?
if (gzip_flag)
gzwrite(pStdout, BigLine[i], BigLine[i+1] - BigLine[i]);
else
fwrite(pStdout, 1, BigLine[i+1] - BigLine[i], BigLine[i]);


251 名前: 125 投稿日: 01/09/14 02:27
テロ以来コードをcommitする人がいなくなっちゃたな。
私しか差ワット欄。

>>237,239-243あたり
kako_dirname()をread.cの最後に付けた。
>>247-250
dat_raw_out()のデータ出力をprintf系からwrite系に変えた。


252 名前: 125 投稿日: 01/09/14 02:39
いいかげんに上部と下部に付けるanchorを決めたいところだが。
上:掲示板に戻る 1- 最新レス50
下:次の50レス 1- 51- 101- ... 最新レス50

批判は出るだろうが、bbs=tech&key=xxxxだけの時は、1-50表示にすると
転送量減るんじゃないか。
スレの紹介で範囲を指定しないことが多いわりに全部読むことは少ないと思うが。
全部読みたきゃ、st=1を指定しなさいということで。
削除人は困るのかな?


253 名前: デフォルトの名無しさん 投稿日: 01/09/14 02:45
>>252
上は現在の範囲より前だけ
下は現在の範囲より後ろだけ
のほうが節約できると思うけどセコすぎ?


254 名前: デフォルトの名無しさん 投稿日: 01/09/14 03:11
>>253
それすでに実装されてるよ。
SEPARATE_CHUNK_ANCHOR


255 名前: 125 投稿日: 01/09/14 03:14
>>253
下から上に読む人がどのくらいいるかによるんじゃないかな。
50もさかのぼりながら読むようなら、次は1から読みたくなるんじゃ
ないかと思うけど。

途中から読みたいことがそんなになければ、

上:掲示板に戻る 1- 前の50レス 次の50レス 最新レス50
下:1- 次の50レス 最新レス50

なんてのもありだと思う。


256 名前: 125 投稿日: 01/09/14 03:17
>>254
実装されているかどうかじゃなくて、推奨設定を決めたい。
いつまでもテスト段階じゃしょうがないでしょ。


257 名前: デフォルトの名無しさん 投稿日: 01/09/14 03:22
>>252
>批判は出るだろうが、bbs=tech&key=xxxxだけの時は、1-50表示にすると
>転送量減るんじゃないか
 これ名案だと思う(笑)
様子を見るためにクリックしたが、最後まで読む気ないけど全部
表示されるってパターンは割とありそう。

>>255
さかのぼるってのは相対的にかなり少ないんじゃないかと思うけどどうなのかなあ。
古い順に読むのに比べて。


258 名前: デフォルトの名無しさん 投稿日: 01/09/14 03:25
>>252
>批判は出るだろうが、bbs=tech&key=xxxxだけの時は、1-50表示にすると
うーんしかし、もともとテレホタイムは全部表示しないようになってるような。
ピーク転送量(=テレホタイム)の削減目的では、何も変わらないか。


259 名前: デフォルトの名無しさん 投稿日: 01/09/14 03:25
>様子を見るためにクリックしたが、
あるある。最新レス50だと最初のほうが読めないから
「レスを全部読む」をクリック。
ただbbs.cgi側にも「レスを最初から読む」に変えてもらうとか
協力を仰がないと「全部表示されません」という文句が
批判要望に殺到しそうな気がする(w

「さかのぼる」については、マーフィーの法則風に言うと
「自分の読みたい参照先は、常に表示範囲の1つ前である」
ので上にはほしい。下にはいらないけど。


260 名前: デフォルトの名無しさん 投稿日: 01/09/14 07:06
転送量を削減するという名目でひたすら弄ろうとしているように見受けられる。
使い勝手を犠牲にしてまで機能を制限するのは混雑する時間帯だけでいいのでは。
それも、極力操作の変更を伴わない機能制限で充分です。
8月末までの一連の対策で転送量削減の結果は出たはずです。
操作方法を著しく変えて不便を利用者に強いてまで、これ以上の転送量を削減する
要望が管理側から出ていたでしょうか?
開発者はどこを向いて誰のために開発しているの?


261 名前: デフォルトの名無しさん 投稿日: 01/09/14 08:33
>8月末までの一連の対策で転送量削減の結果は出たはずです。

何寝ぼけたこと言ってんの?
板閉鎖と過去ログ閲覧禁止と強制IDでようやく目標に達しただけなのに。
自分のいる板が閉鎖されてないから他のことはどうでもいいってのが見え見え。


262 名前: デフォルトの名無しさん 投稿日: 01/09/14 08:39
>>260
>それも、極力操作の変更を伴わない機能制限で充分です。

それはお前が決めることではない。

>操作方法を著しく変えて不便を利用者に強いてまで、これ以上の転送量を削減する
>要望が管理側から出ていたでしょうか?

出てるよ。不便だと思うなら2chに来なければいい。お前の分の転送量が減る。


263 名前: デフォルトの名無しさん 投稿日: 01/09/14 08:47
>>261
一時の閉鎖とは打って変わってほとんどの板が順次復活してます。
過去ログ閲覧も順次復活してます。
縮小路線維持であればニュース速報板が何枚も増設されなかった。
状況は刻々と変化している。

>>262
>それはお前が決めることではない。
プログラマが決める事なの?

>出てるよ。
どこに?


264 名前: デフォルトの名無しさん 投稿日: 01/09/14 08:57
>>263
運営側から「もう充分だ」と言われていない。
まだ試行錯誤の段階で、転送量についてもまだ様子見の段階であることは
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&st=780&to=780
でも明らか。結論を急ぐな。


265 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:11
ここでどんなにread.cgiをいじくろうが、その採用を強制する力はここにはない。
最終的に何が実装されるかは運営側の判断に委ねられている。
建設的な提案ならともかく「これ以上やるな」というのはここで喚いても無駄。


266 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:29
某ツール作成者ですが、rawモードのときステータスといっしょに差分サイズを送るようには
出来ないですかね?

+OK 3093
みたいに。
そうすればブラウザ側とのサイズの認識のずれはなくなるし、こちらとしてもやりやすいので(^^;

あと、どのサーバーにどのバージョンのread.cgiが入っているとか、こうすればバージョンが判るぞ、
って言うのはどこかに情報ありませんか?
探したんですがちっと見つからなくて・・・


267 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:29
今の版だと、
304を返す時にも
Content-Type: text/html
を出力しているけど、いらないでしょ。

 puts("Content-Type: text/html");
(#ifdef RAWOUT以降)は
 putchar('\n')
の直前でいいと思う。


268 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:34
相変わらずバカだね。
>一時の閉鎖とは打って変わってほとんどの板が順次復活してます。

そんなこと、みんな知ってるよ。
だけど、お前の言う「結果は出たはず」ってのは
板を閉鎖している時点でのことだ。
資金的な目処がたった等の理由で板は復帰してるけどな。

キミはもしかして、
dat直読み禁止になっても
「かちゅ〜しゃで読めないのは改悪だ」
「どこからも要望は出ていない」
と叫びつづけるのかい?


269 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:39
制限や規制は2ちゃんねるの基本方針ではない。それがいい事か悪い事かは別として。
利用者の利便を否定して不便を享受させる権限がプログラマにあるのかな。
そういう実験や遊びこそ2ちゃんねる外でやってほしいものです。

>結論を急ぐな。
早急に開発したり機能を変更する局面も過ぎ去ったように感じます。
逆に、開発を急ぐな。変更を加えるな。と言いたい。
夜勤氏から要求のあった機能を除いて。

>まだ試行錯誤の段階で、転送量についてもまだ様子見の段階
Gzip転送を組み込んだ時は効果がすぐに出た。
今回の機能変更は様子を見なければ分からない程。
仮に減少しても、利便を損ねてまで得る価値があるのかどうか。

>最終的に何が実装されるかは運営側の判断に委ねられている。
それを都合のいいようにとってませんかな。
要求のある機能の開発のみにすれば判断も必要ない。

>建設的な提案
極力開発しない事を前提にしてという要望は、建設的な提案ではないのでしょうか。
今までの機能で困ってない利用者のニーズはどこへ。
開発第一の発想しかないのですかな。


270 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:41
そうそう、
>>206
>dat の直読みは、転送量の節約を鑑みて、できなくする方向です。
を読むだけでも、
「まだ、転送量の削減は求められている」
と言いきれるね。


271 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:43
>利用者の利便を否定して不便を享受させる権限がプログラマにあるのかな。

きみは他人の話を全然聞いてないみたいだね
そんな権限はプログラマにはないよ。
決定権を持っているのは別の人だってさっきから言われてるだろ、ヴォケ。


272 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:49
全てのケースでTry&Errorを行なうものではないですよ。
長期間を経てVer.5にもなっているのに、この期に及んで試行錯誤しなくてはいけない状況を
作り出すこともないですよ。

>dat の直読みは、転送量の節約を鑑みて、できなくする方向です。
変更したり追加しなければならない事情があれば、夜勤氏からちゃんと話を持ちかけてくる。
とも言えます。
それ以外の機能改変は要求がありませんよ。


273 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:50
なかなかいいキャラだけど、
このスレにしろ、動作報告スレにしろ、
騒げば騒ぐほど、
状況を把握せずにわめいているのは一人だけで、他の多くの人はそうは思ってない。
ということを強調する結果になるだけ。


274 名前: デフォルトの名無しさん 投稿日: 01/09/14 09:52
>>dat の直読みは、転送量の節約を鑑みて、できなくする方向です。
>変更したり追加しなければならない事情があれば、夜勤氏からちゃんと話を持ちかけてくる。
>とも言えます。
>それ以外の機能改変は要求がありませんよ。

まだ言ってるよ。
「転送量を削減する必要がある」と夜勤さんが言ってるんだろ?
その程度すら読み取れないのか。


275 名前: デフォルトの名無しさん 投稿日: 01/09/14 10:30
>わめいているのは一人だけ。
主張しているのは俺一人ではないですよ。
わめいているとしか受け取っていないとは、随分厳しいですね。
開発者の立場だけではなく、利用者の立場の意見も心に留めてほしいものです。
開発者の反発はある程度予期していましたけれど、違った意見に対してバカだの
ヴォケだの罵ってるのを目の当たりにすると先が思いやられます。
都合のいい拡大解釈や先走りは程々にお願いしたいものです。
ともあれ、最終的に管理者や利用者が納得する結果に落ち着く事を希望します。


276 名前: デフォルトの名無しさん 投稿日: 01/09/14 10:35
>>191
>転送量は、機能が増えたのに 増えも減りもしなかった。
>CPU等への負荷は、若干上がった。
つまり、動作報告スレの780
>機能が増えて転送量に変化がなかった = 転送量を減らす効果があった
>と理解しています。

>機能を変更した事により、使い勝手の不便だけではなく、トータルに見て転送量にも
>さしたる改善が認められなかったと報告があった。 >>766
と「俺解釈」し、
>>206
>dat の直読みは、転送量の節約を鑑みて、できなくする方向です。
を読んでも、
>これ以上の転送量を削減する要望が管理側から出ていたでしょうか?
と訴える。

だいたい、開発者だって利用者だ。
不便になるだけの変更はするわけがない。
自分の考えが絶対正しいと思っているのだろうが、
複数の人間が開発しているのだから、
妙な意見がそのまま通るわけがない。

前スレあたりから通して一遍読んでみろ。
自己満足機能は確かにあるが、削られているものもある。
批判や要望も取り入れられて修正もされている。
現在運用されているバージョン以降にもな。


277 名前: デフォルトの名無しさん 投稿日: 01/09/14 10:36
都合のいい拡大解釈

良い言葉ですね。


278 名前: デフォルトの名無しさん 投稿日: 01/09/14 10:51
>>276
聞かれたので意見を述べます。
これは夜勤氏の解釈ですけど、転送量に注目して言えば、
転送量が減った=転送量を減らす効果があった と判断するのは分かりますが、
増えも減りもしなかった=転送量を減らす効果があった になるのは不自然ではないでしょうか。
転送量を観察するのには、少なくとも一週間は必要です。と述べている割に、
その時点で効果があったと判断するのは、それこそ早計ではありませんか。


279 名前: デフォルトの名無しさん 投稿日: 01/09/14 10:57
>>267 いや......Content-Typeを吐かないと 例えば

#!/bin/sh

echo 'Status: 304 Not Modified
'

というので実験してみたところ

HTTP/1.1 304 Not Modified
Date: Fri, 14 Sep 2001 01:55:00 GMT
Server: Apache/1.3.20 (Unix) ApacheJserv/1.1.2 mod_gzip/1.3.19.1a mod_ssl/2.8.4 OpenSSL/0.9.6b
Connection: close
Content-Type: text/plain

となった Content-Typeを指定しておかないとDefaultTypeが返されてしまうようだ


280 名前: デフォルトの名無しさん 投稿日: 01/09/14 11:02
276のどこで聞いてるんだ?
脳内妄想垂れ流すのもいい加減にしろ。


281 名前: デフォルトの名無しさん 投稿日: 01/09/14 11:04
780 名前:夜勤 ★ 投稿日:01/09/14 00:29 ID:???
一日の間にも、当然ピークがあり
また、一週間の間にも波があり、、、
さらに、板によっても使われ方が違います。

転送量を観察するのには、少なくとも一週間は必要です。
出来れば、数週間欲しいところです。

誤解の無いように、
機能が増えて転送量に変化がなかった = 転送量を減らす効果があった
と理解しています。

機能が増えて
機能が増えて
機能が増えて
機能が増えて
機能が増えて
機能が増えて
機能が増えて
機能が増えて
機能が増えて
機能が増えて


282 名前: デフォルトの名無しさん 投稿日: 01/09/14 11:09
名前: や sageだけのメール欄(色変更だけにする) 削った場合ってなにか問題が起こるのでしょうか?
あと、見た目悪いし、普段はIDまで見る必要はない人も多いと思うので、
強制IDの板でもID表示しない表示モードを作る事は実用的に可能ですか?
(できれば1が表示をコントロール出来る様な物を、デフォルトのモードにするかは別問題として)


283 名前: デフォルトの名無しさん 投稿日: 01/09/14 11:13
sageだけの場合メール欄のアンカーを表示しないのは
実装済みです(SAGE_IS_PLAIN)。
ただしアンカーの代わりに<font>が入るので、効果が
薄いです。
スレ立て時にID表示を選べるかどうかという話はスレ違い。


284 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/14 11:19
>>282
「名前:」は「:」にしていいと思いますー。

sage のみのメール欄は SAGE_IS_PLAIN として実装済ですが、
今まではリンクがあったものを色変更だけにすることが、2ちゃんねるの
楽しさを損なわないか(age や sage が一見分かりにくいとか、
sage だと思って見ると (゚д゚)ウマー だったりとか)、そうでなくても勝手に
機能を変えることには抵抗があるでしょうから、私はおすすめできません。

1がコントロールして ID 表示しない云々は、1のメール欄に noid とかがある場合に
"ID"以下を切り落とすなどの方法で可能です。将来的な需要はあるかもですから、
実装してみるのもいいかも。


285 名前: デフォルトの名無しさん 投稿日: 01/09/14 11:26
>>284
IDを表示しない(というか出力しない)ようにするのは
bbs.cgiの領分ではないでしょうか。
もちろんdat直読みが禁止されれば理論的にはread.cgi
だけで対応も可能ですが…。


286 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/14 11:31
bbs と key のみの時に ls=50 するのであれば、「全部読む」用のオプションが
ほしいです。st=1 がその働きをするのでも構いません。

あと、混雑時間帯以外は、冒頭に「レスを全部読む」がほしいです。
確か、夜勤さんが 5.20 を入れてくださったあと、そういう要望が出てそのように
実装され直したと思いますが、念のため。


287 名前: デフォルトの名無しさん 投稿日: 01/09/14 11:30
424 名前: ◆WinMIRVY @マァヴ ★ 投稿日:01/09/09 18:14 ID:???
(中略)
>>423
どっちかっていうとIDを導入するかどうかの問題じゃないかな?(^_^;)それって
今のところIDは、板内での発言者の同一性を明かにするのが目的であって
その目的を否定するならID非導入ってことになるんじゃないかと・・・・。
んで、ID導入が2chとして妥当かどうかはおいらは関知しません。
あくまでID値の安全性についてだけね(^_^;)


288 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/14 11:35
>>285
本来はbbs.cgiの領分だとは思います。
「強制IDの板でID表示しない」とのことだったので、read.cgiが簡易にそういう
振る舞いをするのもありなのかなぁ、と思ったのです。
rawmode の際も dat から ID 部分を切り落とすのはさすがに問題でしょうから、
専用ツール読みが流行ることになるのかな。
まあ、運営の皆さんがそういう実装をほしがるようにはあまり思えませんね。
# なんて推測で書いてはいけないかな(汗


289 名前: デフォルトの名無しさん 投稿日: 01/09/14 12:24
>>275
>>わめいているのは一人だけ。
>主張しているのは俺一人ではないですよ。

どこに「開発するな」なんて主張している人間がいる?
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=1000218329
のスレの15=17=キミ以外に。
他にいたら、是非教えて欲しいな。参考にしたいから。

「全部読む」を戻せとか、
>>nnのリンクを戻せとか、
個別に、かつ具体的に書いてくれている人はたくさんいるし、
それらに対しては導入されていないだけで、ちゃんと対応されている。


290 名前: not 289 投稿日: 01/09/14 12:41
>それらに対しては導入されていないだけで、ちゃんと対応されている。

[一応わかりやすいように補完]

それらに対しては「現時点では」導入されていないだけで、「修正中のプログラムでは」ちゃんと対応されている。


291 名前: 125 投稿日: 01/09/14 12:51
上下に配置するもののを決めるのに意見を出してくれるかと呼びこんでみたが、
掻き回すだけなのか。
未だに、どうするのがいいのか模索しているってことに気付きもしないとは。
これが必要で、これは要らないってのを決める役にたちやがれ。

CHUNK単位へリンクしないのなら、CHUNK表示は要らないと思いますがいかかでしょう。
いったん機能を固めて内部の安定化を図りたいのですが。

上:掲示板に戻る 全部 前の50 次の50 最新レス50
下:1- 次の50 最新レス50

混雑時
上:掲示板に戻る 1- 前の50 次の50 最新レス50


292 名前: デフォルトの名無しさん 投稿日: 01/09/14 13:01
>>291
 現状のchunkは 50レス単位となっているが、これでは多すぎると
感じていたんだが、これを少なくするとchunk一覧が大きくなるという
問題を感じて、こんなもんかと思っていた。

 しかしchunkを一覧せず、前のXX / 次のXX とするなら、一括表示
単位を50より少なくしても何の問題もなくなるわけだね。この点で
この方式を推したい。
 もちろんこの50という数字が多すぎると感じるかどうかは板の性質
によるだろうし、もともとconfigで仮にdefault定義されただけの値だと
いうことは分かるが。

 ということでおおむねその形は良いと思う。
まあ、下には「新レス」も欲しいかな。別の機能ということで書かなかった
だけかもしれんが。


293 名前: デフォルトの名無しさん 投稿日: 01/09/14 13:05
新レスはあってもいいけど名前は変えたほうがいいと思う。
未読とか新着とか。


294 名前: 125 投稿日: 01/09/14 13:06
>>292
「新レス」と「次の50」は機能的にほぼ同じです。
両方つけるのは無駄でしょう。

あと表現(表示文字)についても意見をお願いします。


295 名前: 292 投稿日: 01/09/14 13:13
>>294
ああ、なるほど。確かにほとんど一緒か。

表現は、非混雑事の「1-」は上にあるほうが良くないかな。
というより、どうせなら非混雑時は上下ともに

掲示板に戻る 全部 1- 前50 次50 最新50

みたいにするとか。非混雑時は利便性を落とすほどに帯域を
気にしなくて良いので。


296 名前: 125 投稿日: 01/09/14 13:18
最後まで表示した時は、「次の50」を「未読」にするってのも
読み終わったことが判っていいかな。


297 名前: 292 投稿日: 01/09/14 13:33
 chunk表示はもともとキャッシュヒットさせやすくすることで
帯域削減効果を狙うものだった。
 だがchunk一覧を表示してしまうことにより、最大メッセージ数が
変化すると、末尾chunkでなくともchunk一覧の表示が変化し、結局
cacheが無効になってしまうというジレンマがあったね。

 前/次方式はその点でもキャッシュしやすくなるが、chunk sizeで
割り切れる位置(+1)からスタートする表示をしやすくすることで、
cache効果も狙えるようになるんではないかな。

 たとえば、「前50 / 次50」ならば、現在の地点の前/次にある
50区切りのchunkを表示するようにするとか。
(半端な位置から呼び出した場合重複は起きるが、cacheが
ある程度効くのであれば無視できる)


298 名前: 292 投稿日: 01/09/14 13:44
 297とは別に、従来のchunk方式をcacheしやすく改善する
方向も考えてみる。
 chunk一覧が変化することがcacheの妨げになるのであれば、
これをできるだけ変化しないようにすれば良いことになる。

 そこで、chunk一覧は現在のchunk以前のみにし、後続する
chunkについては「次chunk」「最終chunk」に変更する。

例: 300レスあるが、現在 101-150chunk を表示している場合の
一覧

1- 51- 次50 最終50

 「最終chunk」は、最新レスから50個分さかのぼるのではなく、
最後の50区切り地点以降をあらわす。リンク自体も固定化しない
とcacheされないため、実現にはcgiに新パラメータが必要になる。

 こうすれば、最終よりも前のchunkについては、あぼーんなどが
発生しない限り不変となり、cacheが効果的に期待できるように
なるのではないかと思う。


299 名前: 292 投稿日: 01/09/14 13:49
>>298
まあ、実際には前/次で十分なので、このようなアイデアは
混乱を呼ぶだけか。スマソ。


300 名前: デフォルトの名無しさん 投稿日: 01/09/14 13:50
実際の操作を考えると、上に「最新レス50」がある必要って
あまりないのではと思うのですが...
今までとの互換性もあるし、やはりあった方がいいのかな?


301 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/14 19:16
新スクリプト実験場も作ったので、
今夜あたり また新しい version の read.cgi を入れてみようかな?
と考えています。 区切りが良かったら教えてください。

いつも お世話になっています。


302 名前: 125 投稿日: 01/09/14 20:34
上:掲示板に戻る 全部 1- 前50 次50 最新50
下:掲示板に戻る 全部 1- 前50 次50 最新50

混雑時
上:掲示板に戻る 1- 前50 次50 最新50
下:1- 次50 最新50

こんなもんで実装して試してもらいましょうか?


303 名前: デフォルトの名無しさん 投稿日: 01/09/14 21:51
>>302
いいんじゃないすか〜


304 名前: 125 投稿日: 01/09/14 22:36
>>302の機能ができあがりました。
PREV_NEXT_ANCHORとして付け加えました。
ソース的にはまだ不完全ですが、今の組み合わせなら大丈夫なはずです。
(他のconditionとの組み合わせの検証、"前""次"がread.c内に残っている等)

CHUNK_NUM=50,RES_NORMAL=100だと混雑時にちょっと不自然な感じがするような気がします。


305 名前: 125 投稿日: 01/09/14 22:52
誰か他の人がチェックしてOKだったら夜勤さんにお願いといきたいんですが、
他の開発者は今いるのか?


306 名前: 前レス775 投稿日: 01/09/14 22:54
>>305
へーい、試します


307 名前: 306 投稿日: 01/09/14 22:57
>>304
なんか、現在表示中の範囲内のレスへの >> も
新しいウィンドウとして単独表示しちゃってるね。


308 名前: 306 投稿日: 01/09/14 23:03
>>307
ってread2ch.hでCREATE_NAME_ANCHORがコメントアウトされてたからか。
と実験してるうちに23時過ぎてしまったので混雑時モードに変わった(笑)
時刻範囲もいじって両方確認中…


309 名前: 306 投稿日: 01/09/14 23:05
>>304
PATH形式じゃない、従来型で呼び出したときにも
">>"のリンクがPATH形式になっちゃってるね。


310 名前: 306 投稿日: 01/09/14 23:08
>>304
「最新50」した結果に出てくる前50/次50が表示してるレス番号と
全然違う値になってる。


311 名前: 125 投稿日: 01/09/14 23:10
>>307
NAME ANCHORを使うかどうかによるんだけど、
CHUNK_ANCHORとセットじゃないといまいちって話が出てたんです。
>>207あたり)

NAME ANCHORを使って、表示内へは#で飛ばした方がいいんですかね。
それか、混雑時に内部リンクを切る機能があるはずだから平常でも使うように
するかですね。

上下の各アンカーは変な所はないですか?


312 名前: 306 投稿日: 01/09/14 23:15
>>311

> NAME ANCHORを使って、表示内へは#で飛ばした方がいいんですかね。
> それか、混雑時に内部リンクを切る機能があるはずだから平常でも使うように
> するかですね。
うん、NAME_ANCHOR未定義時は表示範囲内へはリンク切ったほうがいいかも。

> 上下の各アンカーは変な所はないですか?
>>310 がまずいかも。


313 名前: 125 投稿日: 01/09/14 23:17
>>309
えっ。逆じゃないですか?
まだPATHまで対応してません。
>>310
表示している最初のレス番と、前後のリンクの番号を教えてください。


314 名前: 306 投稿日: 01/09/14 23:25
>>313
たとえば
〜/test/read.cgi/tech/998845501/?ls=50
で表示されるヘッダが
次50が &st=100&to=150 になってます。

〜test/read.cgi/tech/998845501/read.cgi?bbs=tech&key=998845501&st=300&to=350
だと、本文中の >> が
〜/test/read.cgi/tech/998845501/299-299
の形式になってたりしてます。


315 名前: 306 投稿日: 01/09/14 23:25
>>314
〜/test/read.cgi/tech/998845501/?ls=50
のとき、手元のデータでは先頭が830になってます。


316 名前: 125 投稿日: 01/09/14 23:36
>>314-315
全部PATH形式で呼び出された後の問題ですね。
確かに変だ。

さて、どうしたものか。
とりあえず、従来形式では大丈夫なのを確認してください。
>>を表示内はカットする

ここまででやっておいて、
夜勤さんが来る前に間に合えばPATHをなおす
ということでどうでしょうか。


317 名前: 125 投稿日: 01/09/14 23:41
>>314-316
ああ、ls=とst=の両方が指定されたときの優先順問題でした。
path形式での出力をサポートすればOKかな。


318 名前: 306 投稿日: 01/09/14 23:41
>>316
> 全部PATH形式で呼び出された後の問題ですね。
あ、ほんとだ。
〜test/read.cgi/tech/998845501/read.cgi?bbs=tech&key=998845501&st=300&to=350
これ、path形式じゃないと思い込んでた。後半しか見てなかった。失礼しました。


319 名前: デフォルトの名無しさん 投稿日: 01/09/14 23:43
個人的には50レスごとのリンクより「50戻る」の方が欲しいっす。


320 名前: 306 投稿日: 01/09/14 23:44
>>319
今試してる「前50」がそれに相当するかな。


321 名前: 125 投稿日: 01/09/15 00:06
NORMAL_TAGCUT として、常に表示内への>>リンクをカット。
ls=とst=が両方指定された時の問題を修正。
これで、PATH呼び出しでも気持ち悪いリンクだけど一応動作する。

これで、いつ夜勤さんがきても大丈夫かな。
じゃPATH形式の出力やってます。


322 名前: 306 投稿日: 01/09/15 00:07
>>321
ほい、2点とも動作確認しました


323 名前: 夜勤 ★ 投稿日: 01/09/15 00:45
どでしょ、入れてもいいかな?


324 名前: 125 投稿日: 01/09/15 00:49
>>323
いま、最新版をコミットしましたので、5分ほど待ってから
入れてください。


325 名前: 125 投稿日: 01/09/15 00:51
PREV_NEXT_ANCHORのpath形式出力をサポートした。
相対pathにした「掲示板に戻る」がpath形式の時に正しくなかった。


326 名前: 夜勤 ★ 投稿日: 01/09/15 01:30
>>324
うむ? もういいのかな?
だめだったら、言ってください。あせっても、仕方ないので、ペース合わせます。


327 名前: 125 投稿日: 01/09/15 01:33
>>326
どうぞ入れてみてください。


328 名前: 306 投稿日: 01/09/15 01:34
>>326
いいんじゃないすかね(笑)


329 名前: 125 投稿日: 01/09/15 01:35
ちなみに、5分というのはコミットしてからWEBに反映されるまでの時間です。


330 名前: 夜勤 ★ 投稿日: 01/09/15 01:41
じゃ いきまーす、
今日は、スクリプト実験場。 ex.2ch.net に入れますネ。


331 名前: 306 投稿日: 01/09/15 01:48
>>330
お、変わった


332 名前: 夜勤 ★ 投稿日: 01/09/15 01:48
入れました。
http://ex.2ch.net/ainotane/


333 名前: 125 投稿日: 01/09/15 01:51
>>332
ご苦労様でした。

うーん。なんと実験に最適な環境なんだ。
mod_gzipが入っていれば完璧なんですけどねぇ。


334 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/15 01:51
>>332
夜勤さんいつもいろいろおつかれさまですー。
125さんもたくさんたくさんおつかれさまですー。
皆さんもおつかれさまですー。

でも<hr>に<dd>がかかってる。。。気持ち悪いよぉ(泣
# 機能にも転送量にも関係なくてごめん。


335 名前: 125 投稿日: 01/09/15 01:54
>>334
あっ。そ〜お〜いえば〜あ、そ〜いうのがあったなあ。
こめん忘れてた。


336 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/15 02:00
>>335
ぺこぺこ

「名前:」を「:」にするのは、夜勤さん&indexをいじれる人的にはどうなのでしょう。
なかなか大きいと思うのですが、index が先行してくれないと、やっちゃいけないのかな
という雰囲気があると思うです。


337 名前: 夜勤 ★ 投稿日: 01/09/15 02:01
繁忙期を2時までにしてくるです。


338 名前: 125 投稿日: 01/09/15 02:21
pathの時に>>nnnがnofirst=trueになってないな。


339 名前: イラストに騙された名無しさん 投稿日: 01/09/15 02:42
http://ex.2ch.net/test/read.cgi/ainotane/1000457087/

最後の / を抜かしても同じように表示されますが、
[1-][最新50]などのリンクがおかしくなるので、
フォーマットが間違ってるとかの理由つけて
エラーにしちゃった方がいいかと思います。いかがか?

Location: で正しいURL返してあげる、なんてことは必要ないでしょうから。


340 名前: 夜勤 ★ 投稿日: 01/09/15 02:45
read.cgi ver 5.21 入れたのと、ほぼ同時に、転送量が 3倍くらいに
なったんですけど、、、

単に、人が増えただけですかねー?


341 名前: 306 投稿日: 01/09/15 02:50
>>340
gzipはちゃんとかかってるみたいだけどなあ。
前50 次50 方式は逆効果だった? (^^;
使いやすくなってサクサク開いちゃってるとか(笑)


342 名前: 投稿日: 01/09/15 02:58
皆様お疲れ様です.

実験場で,レス 1 と 204-252 が表示されている状態,10241 バイトなんですが,
これに css を使う(<font color=green></font> を消す)と 670 バイト減らせます.
こういうのって,すでに意味がなくなってるんでしたっけ?お邪魔だったらすみません.


343 名前: 125 投稿日: 01/09/15 02:59
>>340
人が増えて+ものめずらしさであっちこっちクリックして、じゃないかと。

cgiの変更で増える要因は「全部」だけのはずです。
落ち着けば、その分は他の機能が相殺してくれると踏んでるんですが。

転送量の評価には、ある程度安定したアクセスのサーバーじゃないと
無理でしょうね。
あそこは、復活して間も無いし。


344 名前: 125 投稿日: 01/09/15 03:05
全部 1- → 全 最初から読む

こんな風に変更したら、「最初から読む」の方を使ってくれないかな。
途中まで読んで、もういいやってことも良くあるし。


345 名前: 342 投稿日: 01/09/15 03:06
定量的には
css の宣言で +122 バイト
<font...> で -25x(メール欄のない発言数)バイト
です.


346 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/15 03:06
>>340
ふが。。。
なぜだろう。。。>>343 の通りでありますように。。。


347 名前: デフォルトの名無しさん 投稿日: 01/09/15 03:11
単に「全部読む」がクリックされまくっているのでは(index.htmlからも含)?
時間制限はずしてあったし。


348 名前: 125 投稿日: 01/09/15 03:20
下にある「掲示板に戻る」は便利過ぎるかも。
読み終わって、即戻れるとindex.htmlのアクセス数が増えそう。


349 名前: デフォルトの名無しさん 投稿日: 01/09/15 03:22
ところで125さん、cvsにtag打っといてくれますか〜
YAKIN20010915かな。


350 名前: 125 投稿日: 01/09/15 03:26
>>349
へい、打っときました。


351 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/15 12:32
要望板からこのような報告が。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&st=833&to=833&nofirst=true

確認したところ、確かに10番目の発言を取りこぼしています。
びっくりしました(^^;


352 名前: デフォルトの名無しさん 投稿日: 01/09/15 12:35
がいしゅつかつ修正済みです。 >>247-250


353 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/15 12:46
>>352
あ、NULLだということは&修正は認識していたのですが、version違いを忘れてました(^^;
すいませんです。


354 名前: 125 投稿日: 01/09/15 14:30
下に便利さのための機能は、置かない方がいい気がしています。

本当にその機能を必要とする人は、上まで戻ってでも使うでしょう。
そうでない人には、余計な選択肢は出さない方がいいかと。

下に置くものは、「次50/未読」だけがいいんじゃないかな。
「最新50」で読みたい人でも手近に「未読」しかなければ、かなりの人が
未読でがまんしてくれると思います。


355 名前: デフォルトの名無しさん 投稿日: 01/09/15 14:43
>>354
注意すべきは混雑時だけですよね?


356 名前: デフォルトの名無しさん 投稿日: 01/09/15 18:32
main()をちょっといじるだけで、他の部分へ影響しないようにできたので、>>244を実装してみた。
混雑時に>>nnをクリックした時に、FORM等が出なくなる。
圧縮すらしてない、ただのテキスト。

W3JlYWQyY2guaF0KLyogjayOR46eitSR0YLJgUE+Pm5ujGCOroLMg4qDk4NOgqmC545Rj8aC
s4Lqgr2P6o2HgskKICAgj2+XzWh0bWyCqYLnl12VqoLIg4qDk4NOk5mC8I/Igq0gKi8KLyoj
ZGVmaW5lCVJFRkVSRFJFU19TSU1QTEUqLwoKW3IyY2hodG1sLmhdClIyQ0hfSFRNTF9IRUFE
RVJfMSCCzI78ldMKI2RlZmluZSBSMkNIX1NJTVBMRV9IVE1MX0hFQURFUl8xKHRpdGxlKSBc
CgkiPGh0bWw+IiBcCgkiPGhlYWQ+IiBcCgkiPG1ldGEgaHR0cC1lcXVpdj1cIkNvbnRlbnQt
VHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9U2hpZnRfSklTXCI+IiBcCgki
PHRpdGxlPiIgdGl0bGUgIiA8L3RpdGxlPiIgXAoJIjwvaGVhZD4iIFwKCSI8Ym9keSBiZ2Nv
bG9yPSNlZmVmZWYgdGV4dD1ibGFjayBsaW5rPWJsdWUgYWxpbms9cmVkIHZsaW5rPSM2NjAw
OTk+IgoKW3JlYWQuY10KbWFpbigpgsyBQWRhdF9yZWFkKCk7IILMgreCrozjgsmBQQojaWZk
ZWYJUkVGRVJEUkVTX1NJTVBMRQoJaWYgKGNhbl9zaW1wbGVodG1sKCkpIHsKCQlvdXRfc2lt
cGxlaHRtbCgpOwoJCXJldHVybiAwOwoJfQojZW5kaWYKCoLHgrGCqYLJCiNpZmRlZglSRUZF
UkRSRVNfU0lNUExFCmludCBjYW5fc2ltcGxlaHRtbCgpCnsKCWNoYXIgYnVmZlsxMDI0XTsK
CWNvbnN0IGNoYXIgKnA7Cgljb25zdCBjaGFyICpyZWY7CglzdGF0aWMgY29uc3QgY2hhciBj
Z2luYW1lW10gPSAiL3Rlc3QvIiBDR0lOQU1FICI/IjsKCXN0YXRpYyBjb25zdCBjaGFyIGlu
ZGV4bmFtZVtdID0gImluZGV4Lmh0bSI7CgkKCWlmICghaXNidXN5dGltZSkKCQlyZXR1cm4g
ZmFsc2U7CglpZiAoIW5uX3N0IHx8ICFubl90byB8fCBpc19pbW9kZSgpKQoJCXJldHVybiBm
YWxzZTsKCWlmIChubl9zdCA+IG5uX3RvIHx8IG5uX3RvID4gbGluZU1heCkKCQlyZXR1cm4g
ZmFsc2U7CgkvKiCCxoLogqCCpoK4gUGDioOTg06Q5oLMg4yDWIKqglCCwoLMj+qNh4K+gq8g
Ki8KCWlmIChubl9zdCAhPSBubl90byB8fCAhaXNfbm9maXJzdCgpKQoJCXJldHVybiBmYWxz
ZTsKCS8qaWYgKCEobm5fc3QgKyAxMCA8PSBubl90bykpCgkJcmV0dXJuIGZhbHNlOyAqLwoJ
cmVmID0gZ2V0ZW52KCJIVFRQX1JFRkVSRVIiKTsKCWlmICghcmVmIHx8ICEqcmVmKQoJCXJl
dHVybiBmYWxzZTsKCQoJc3ByaW50ZihidWZmLCAiLyUuNTBzLyIsIHp6X2JzKTsKCXAgPSBz
dHJzdHIocmVmLCBidWZmKTsKCWlmIChwKSB7CgkJaW50IG4gPSBzdHJsZW4oYnVmZik7CgkJ
aWYgKCoocCArIG4pID09ICdcMCcpCgkJCXJldHVybiB0cnVlOwoJCWlmIChzdHJuY21wKHAg
KyBuLCBpbmRleG5hbWUsIHNpemVvZihpbmRleG5hbWUpLTEpID09IDApCgkJCXJldHVybiB0
cnVlOwoJfQoJcCA9IHN0cnN0cihyZWYsIGNnaW5hbWUpOwoJaWYgKHApIHsKCQljaGFyIGJi
c1tzaXplb2YoenpfYnMpXTsKCQljaGFyIGtleVtzaXplb2Yoenpfa3kpXTsKCQljb25zdCBj
aGFyICp0bXAgPSB6el9xdWVyeV9zdHJpbmc7CgkJenpfcXVlcnlfc3RyaW5nID0gcCArIHNp
emVvZihjZ2luYW1lKS0xOwoJCXp6X0dldFN0cmluZyhiYnMsIHNpemVvZihiYnMpLCAiYmJz
Iik7CgkJenpfR2V0U3RyaW5nKGtleSwgc2l6ZW9mKGtleSksICJrZXkiKTsKCQl6el9xdWVy
eV9zdHJpbmcgPSB0bXA7CgkJcmV0dXJuIHN0cmNtcCh6el9icywgYmJzKSA9PSAwICYmIHN0
cmNtcCh6el9reSwga2V5KSA9PSAwOwoJfQojaWZkZWYJVVNFX1BBVEgKCXNwcmludGYoYnVm
ZiwgIi90ZXN0LyIgQ0dJTkFNRSAiLyUuNTBzLyUuNTBzLyIsIHp6X2JzLCB6el9reSk7Cglp
ZiAoc3Ryc3RyKHJlZiwgYnVmZikpCgkJcmV0dXJuIHRydWU7CiNlbmRpZgoJcmV0dXJuIGZh
bHNlOwp9CgppbnQgb3V0X3NpbXBsZWh0bWwoKQp7CgljaGFyICpzWzIwXTsKCWNoYXIgcFtT
SVpFX0JVRl07CglpbnQgbiA9IG5uX3N0OwoJCgkvKiBodG1sX2hlYWQoKSAqLwoJc3BsaXR0
aW5nX2NvcHkocywgcCwgQmlnTGluZVswXSwgc2l6ZW9mKHApIC0gMjAsIDApOwoJaWYgKCEq
cCkKCQlyZXR1cm4gMTsKCXBQcmludGYocFN0ZG91dCwgUjJDSF9TSU1QTEVfSFRNTF9IRUFE
RVJfMSgiJXMiKSwgc1s0XSk7CglwUHJpbnRmKHBTdGRvdXQsIFIyQ0hfSFRNTF9IRUFERVJf
Miwgc1s0XSk7CgkKCW91dF9yZXNOKys7CS8qIIN3g2KDX49vl82C8Jd9jn4gKi8KCWlmICgh
aXNfbm9maXJzdCgpKSB7CgkJb3V0X2h0bWwoMCwgMCwgMSk7CgkJaWYgKG4gPT0gMSkKCQkJ
bisrOwoJfQoJZm9yICggOyBuIDw9IG5uX3RvOyArK24pIHsKCQlvdXRfaHRtbCgwLCBuLTEs
IG4pOwoJfQoJCgkvKiBodG1sX2Zvb3QoKSAqLwoJcFByaW50ZihwU3Rkb3V0LCBSMkNIX0hU
TUxfRk9PVEVSKTsKCXJldHVybiAwOwp9CiNlbmRpZgkvKiBSRUZFUkRSRVNfU0lNUExFICov
Cg==


357 名前: デフォルトの名無しさん 投稿日: 01/09/15 23:19
>>266のサイズ出力を加えて、dat_out_raw()を整理したよ。
getlinelenは消していいね。

int dat_out_raw(void)
{
 const char *begin = BigLine[0];
 const char *end = BigLine[lineMax];
 /* ・・・ */
 if(raw_lastnum > 0
  && raw_lastsize >= 0
  && !(raw_lastnum <= lineMax
   && BigLine[raw_lastnum] - BigBuffer == raw_lastsize)) {
  pPrintf(pStdout, "-INCR");
  /* 全部を送信するように変更 */
 } else {
  pPrintf(pStdout, "+OK");
  /* 差分送信用に先頭を設定 */
  begin = BigLine[raw_lastnum];
 }
 pPrintf(pStdout, " %d\n", end - begin);
 /* raw_lastnum から全部を送信する */
#ifdef ZLIB
 if (gzip_flag)
  gzwrite(pStdout, (const voidp)begin, end - begin);
 else
#endif
  fwrite(begin, 1, end - begin, pStdout);

 return 1;
}


358 名前: デフォルトの名無しさん 投稿日: 01/09/15 23:28
>>357
あてた


359 名前: デフォルトの名無しさん 投稿日: 01/09/16 02:01
NORMAL_TAGCUTなんかいらねーよ。
通常時間帯の使い勝手を悪くするのは、ただの「改悪」だろ。
「レスを全部読む」の件をもう忘れたらしいな。


360 名前: デフォルトの名無しさん 投稿日: 01/09/16 02:29
>>359
忘れたも何も、「レスを全部読む」の件はお前が知らないだけ。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&st=906&to=906


361 名前: デフォルトの名無しさん 投稿日: 01/09/16 02:37
>>359
要らないかどうかを判断するのはお前ではない。ましてや開発者でもない。
このスレは与えられた命題に対する回答を提案するためのもので、実際に
導入するかどうかは運営側に委ねられている。


362 名前: 125 投稿日: 01/09/16 03:53
>>359
NORMAL_TAGCUTを見つけるぐらいちゃんと見てるわりに、ここの趣旨が
理解できてないな。

作って見る→あんまり良くない→OFF推奨でプログラムには残す。
一度作ったものは、そう簡単になくしはしない。
改悪にしか思えなくても転送量が減るなら試すのがここのやり方だ。

何のために簡単にON/OFFできるように作ってると思ってるんだ。
おまえが言うべき言葉は「NORMAL_TAGCUTはOFFにしとけ」だ。
否定的意見は歓迎するが、全否定は言うだけ無駄だぞ。

まあ、NORMAL_TAGCUTはOFFにしとくかな。

それと言い方変えると採用されやすいぞ(藁
「通常時間帯までTAGCUTしないでいいんじゃないの。」
「そうでした。じゃ、NORMAL_TAGCUTはoffにしておきます。」
それでも運営側がONにするかもしれんがな。


363 名前: 359 投稿日: 01/09/16 14:23
>>360-362
どうやら、俺を誰か他の人間と勘違いしているらしいな。
一応俺もそれなりの量のコードは書いて、反映されているんだがな。
例えば>>357とか。
過去の要望や修正で忘れられているものを直しながら読み進め、
動作を確かめるのが遅れたから、今更言ったわけだが。

>>361
それには当然目を通しているが、俺の認識では
「全部読む」がなくなったのはCHUNK_ANCHORを優先させるために
ただ入れ忘れただけだと思っていたが。
もちろん、「混雑時なら」実験としても意味があると思うし、
そこには書いてないが、コピペしてst=やls=を外せばいいだけだから、
混雑時に(どうせ100しか読めない)「全部読む」が無くなっても
大きな問題だとは、俺も思わない。

>>362
例えば、>>276なども俺なのだが。

>要らないかどうかを判断するのはお前ではない。ましてや開発者でもない。
俺も開発者であり、利用者でもある。

>このスレは与えられた命題に
ピーク時の転送量削減と、負荷の低減が与えられた命題。
混雑時以外は、できるだけ要望に沿った機能にすべきだと思っている。
サイズが大きすぎになる前に警告を出すとか、ね。

>回答を提案するためのもので、
俺は、開発者の1人として、運営者に提案したくないと思ったから、
ああ書いた。俺以外が皆賛成なら、仕方ないが。

>実際に導入するかどうかは運営側に委ねられている。
だから、実際に本格導入される前に意見を述べている。


364 名前: 359 投稿日: 01/09/16 14:24
>>363
>NORMAL_TAGCUTを見つけるぐらいちゃんと見てるわりに、
ほぼ全て把握しているつもりだけど?

>ここの趣旨が理解できてないな。
それは申し訳なかったね。

>一度作ったものは、そう簡単になくしはしない。
INDEXはどうした?COOKIEは?
それに、「OFF推奨」が試験導入に際しては意味が無く、
read2ch.hでのdefineがそのまま残ることは、
今までの動きから明らかだろ。
それが本格導入ではないとしても、数日から数週間の間、
試験導入されたサーバーの住民から見れば、
「完全に変更された」ように見えるわけだ。

>おまえが言うべき言葉は「NORMAL_TAGCUTはOFFにしとけ」だ。
いや、違うね。
「ピーク時の転送量と負荷という主命題を忘れるな」だ。
「自己満足になってないか?」もね。
あらかじめ言っておくが、key=xxxxだけでls=50になるとかも、俺は反対だよ。
NORMAL_TAGCUTは要望もなく、同意も求めていないように見えたが。
俺は、「ピーク時」が全てだ今でも思っているからね。

>それと言い方変えると採用されやすいぞ(藁
そいつは悪かったな。
俺は2ちゃんの良さは、「発言者」「言葉遣い」ではなく、
「発言内容」のみで評価されることにあると思っていたからな。
言い方は、その時の気分で豹変しちゃうんだよ。
「丁寧な言葉遣いで煽り」より、
「乱暴な言葉遣いだが正論」な、
茶羽的な方針でいたいね。
ま、「丁寧な言葉遣いで正論」が一番だろうけどな。


365 名前: 359 投稿日: 01/09/16 14:25
さてと。
>>360-362さんは著しく気分を害されたでしょうし、
俺も、世話になっている人達に文句を言うだけというのは
本意ではないので、
うざいでしょうけど、少々考えを述べたいと思います。

まず、俺を含んでCVSを触らない人間が
修正や変更をした部分をCVSに反映してくれている方々には、
本当に感謝しています。
(特に前スレの775さんには本当にお世話になりました)
ありがとうございます。

本来なら、自分でCVSに触れる方が他の人の手を煩わせずに済むのですが、
逆に自分で触れない場合は、必ず自分以外の誰かの評価(同意)の上で
修正が施されることになるわけで、
自分で見落としていた観点からの評価や、機能自身に対する評価等も
ある程度行われ、同時に不具合を発見してもらえる場合すらあります。
そんな事から、俺個人の意見としては、
「常に他の誰かにやってもらう」のは悪い事ではなく、
むしろ好ましいとさえ思うようになっています。

また、「誰でも簡単にできること」でも、思いつくまま
書きこむようにしていますが、これは邪魔でしょうか?
例えば報告された簡単な不具合の修正個所や、夜勤さんからの要望等でも、
だれも書きこんでいなければ書きこむようにしていますが、
これも、書き込む人と修正する人の2人が目を通すことで
「ちょっとしたミスを避けられれば」との考えからです。
修正する人が注意深く変更してくれるのなら
(不具合報告等の見落としがなければ)必要ないとも考えています。


366 名前: 359 投稿日: 01/09/16 14:25
ところで、「常に他の誰かにやってもらう」とした場合、
修正が数行で済む時はここに書きこむとして、ある程度変更点が大きい時は
CVSを触る人にとってどのようにすれば作業が楽になりますか?
考えつくのは、
・変更個所と変更・追加を示した部分をftp://210.170.xx.xx/incoming/に置く
・diffを取り、ftp://210.170.xx.xx/incoming/に置く
ぐらいですが(なんかまた変わったっぽい)。
こちらで可能な範囲で楽な方法にしたいと考えていますので、
(「自分でやれ」というのはナシで)
できれば希望する方法を書いてもらえると助かります。
(上のftpが使えない時は圧縮してBase64でエンコードして貼ればいいですか?)

最後にもうひとつ。
read.cgiに求められているのは、
「ピーク時の転送量と負荷の低減」でよろしいでしょうか?
現在はまだ実験中ということで、
いろいろ試したい機能もでてくるかと思います。
前スレの734あたりにちらっと書きましたが、実験の方針として、
「転送量削減が見こめるが、使い勝手を損なう可能性がある」
ものは、「試験的に混雑時のみ実施」、
「利便性を向上させるが、転送量を増大させる可能性がある」
ものは、「試験的に非混雑時のみ実施」
という形がbestではないかと思います。
そのために、不必要(かもしれない)な時間帯による場合分けや
外部ファイルによる設定変更等の追加が求められるとしても、
試行錯誤している段階では、できるだけそのようにコードを作るのが
理想ではないかと思っています。いかがでしょうか。


367 名前: |  - -) 投稿日: 01/09/16 15:19
> CVSを触る人にとってどのようにすれば作業が楽になりますか?

私の場合、になりますが。
diff (ただし-c または -u付きで)を取ってもらうと patch → cvs ci だけで
作業が終わるので楽です。patch にすることで他人の修正内容が上書きされて消
される、という可能性もなくなりますし。
しかしながら、本当は cvs を使ってもらった方がいいのですけど。変な修正が
施されてもどうせ元に戻せるので...。

あ、あとどこかで「"新レスの表示"はどこ?」とか言われていましたね。私も
ちょっと見てどれが「新レスの表示」なのか分からなかったのでできるだけ「未
読」は目立つように太字にするなりもうちょっと表現を改めるなりした方がい
いかと思います。
# わざわざバイト数増やしてどうすんだという声もあるかもしれないけど見つけ
# られずに使われないよりかはマシだと思う


368 名前: 125 投稿日: 01/09/16 16:10
>>363-364
>「レスを全部読む」の件をもう忘れたらしいな。
これで、他の誰かと勘違いした。スマソ。

NORMAL_TAGCUTは、言われて見ればそのとおりかなと思ったが、
開発やめろとしか言わない誰かさんだと思ってああいう書き方をした。
ソースからなくすのは、ある程度の合意か、cvs触っているやつの独断が
必要だ。
(INDEXはまだ完全にはなくなってないよ。COOKIEは使用上の弊害が認め
られたので削除された。)

>>365-366
変更部分を確認するなら手間が少ないんだが、確認しながら変更するのは
かなり手間がいる。
「動作するところまでは確認したから、変更部分に問題ないか確認して
commitしてね。」で、read.cそのものか、diffを渡すのが手間が少なく
ていいかな。
(個人的にはreac.cそのものがいいが)

>「ピーク時の転送量と負荷の低減」でよろしいでしょうか?
「ピーク時の」って所をすぐ忘れるんだよなあ。

>>367
表現の変更で転送量に望ましい選択をしてもらえるならいいんじゃない。


369 名前: 125 投稿日: 01/09/16 17:02
上に「次50」があるのはよくない気がしてきました。
「次、次、次、あっ、ここから読もう。」があまりにも便利。

ということで、再び、上下に置くものについてのご意見をお願いします。

ver5.21の現状
上:■掲示板に戻る■ 全部 1- 前50 次50 最新50
下:掲示板に戻る 全部 1- 前50 [次50/未読] 最新50
混雑時
上:■掲示板に戻る■ 1- 前50 次50 最新50
下:1- [次50/未読] 最新50

これを

上:■掲示板に戻る■ 全部 最初から 前50 次50 最新50
下:掲示板に戻る 全部 最初から 前50 [次50/<b>未読</b>] 最新50
混雑時
上:■掲示板に戻る■ 最初から 前50 最新50
下:[次50/<b>未読</b>] 最新50

こんな感じかな。
混雑時は、下の最新50も取って未読を最優先にしたい所。

#「前、前、前」ってパターンもあるな。
#それでも「全部読む」よりはましか。
#CHUNK_ANCHORがベストな気がしてきた。


370 名前: デフォルトの名無しさん 投稿日: 01/09/16 17:57
>混雑時は、下の最新50も取って未読を最優先にしたい所。
これ賛成。
それと、5.20の「新レス」(「新着」「未読」かはともかく)の見かけは、
結構好評で、悪評は少なかったように思う。

そこで、平常時を2段式にして、下半分だけのイメージを書いてみる。
続きがのある/なしで最新50が上段/下段となるのが面倒くさいけど、
こんなイメージはどうかな?(表示される文字は適当)

平常時・続きあり
――――――――――――――――――――――――――――
      続きを読む     最新50
――――――――――――――――――――――――――――
 掲示板に戻る 全部読む 1-50
――――――――――――――――――――――――――――

平常時・最後まで読んだ
――――――――――――――――――――――――――――
      追加レス
――――――――――――――――――――――――――――
 掲示板に戻る 全部読む 1-50 最新50
――――――――――――――――――――――――――――

混雑時・続きあり
――――――――――――――――――――――――――――
      続きを読む     最新50
――――――――――――――――――――――――――――

混雑時・最後まで読んだ
――――――――――――――――――――――――――――
      追加レス
――――――――――――――――――――――――――――


371 名前: 370 投稿日: 01/09/16 18:03
平常時の最新50をつける位置が逆だった。
続きがある時につけなくちゃだめだね。
両方につけてもいいけど。


372 名前: 370 投稿日: 01/09/16 18:07
いや、371が間違いだった。
ちゃんと最新50は上段についてる。
自分でも間違えるくらいだから、使いにくいか。


373 名前: 125 投稿日: 01/09/16 18:42
CHUNK方式が最も効率よさそうなんで、少し考えてみました。
混雑時の100レス制限との噛み合わせを考えて、CHUNKは100単位。

上:■掲示板に戻る■ 全部 CHUNK_ANCHOR 最新50
下:[続きを読む/新着レス]///掲示板に戻る 全部 前100 次100 最新50
混雑時
上:■掲示板に戻る■ CHUNK_ANCHOR 最新50
下:[続きを読む 最新50/新着レス]

※混雑時は表示内への>>リンクははずす。
※続きを読む/新着レスは、最後まで一気読み。


374 名前: 125 投稿日: 01/09/16 22:30
意見くれage


375 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/16 23:14
>>373-374
混雑時間帯には「続きを読む」に100レス制限つくんですよね?

平常時について「続きを読む」「次100」「最新50」がなんかかぶってるような気が
するんだけど、どれかをなくすとしっくりいかなく、迷っております。

混雑時間帯は
上:■掲示板に戻る■ CHUNK_ANCHOR 最新50
下:続きを読む 最新50
でOKだと思います。


376 名前: 125 投稿日: 01/09/16 23:57
>>375
混雑時100レス制限はそのままです。
平常時の「次100」は、見た目の都合ということで。
害はなさそうですから。

上下のアンカーは、nofirst=trueにしないでいいんですよね。
転送量的には、nofirst=trueですけど。

上に前/次よりもCHUNK_ANCHORを推奨ってことで実装してみます。


377 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/17 00:12
>>376
はい。いいと思います。


378 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/17 00:49
実装・検討待ちの案一覧

ETag
 >>137 >>143 >>167-169 >>173 >>229-232

HEADリクエストに対しては Last-Modified と Content-Length を吐くだけにする
 >>219 >>226

URL記述に対するリンク設定も時間帯によらせる
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=817&to=817&nofirst=true

「名前:」も「:」だけにする

</dl>するタイミング
 >>126

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

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

condition一覧/SETTING_R.TXT記述一覧
 http://www.gedoh.org/aki/2ch/current/bbs/config.txt
 追加すべきもの
  CAUTION_FILESIZE xx, MAX_FILESIZE_BUSY (xx)(デバッグ用)
  SEPARATE_CHUNK_ANCHOR(CHUNK_ANCHORが必要), CHUNKED_ANCHOR_WITH_FORM(CHUNK_ANCHOR定義時にのみ有効)
   >>189-190
  CM_BBSPINK, LOGLOGOUT x, TYPE_TERI, Katjusha_Beta_kisei
  RAWOUT
   rawmode時に圧縮対応していないと弾かれる

mmap時にlockすべきか
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=139&to=139&nofirst=true
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=425&to=425&nofirst=true

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

deflate
 そのうち対応


379 名前: デフォルトの名無しさん 投稿日: 01/09/17 01:00
すみません
>342=>345 は検討さえしていただけないのでしょうか…


380 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/17 01:07
>>379
失礼しました。見落としです。ぺこぺこ。
CSSによる軽量化ですね。
HTML文法にあるCSS宣言ならいいと思います。
# 意味不明かな...HTMLには無くてCSSにだけある定義使うとブラウザがまだ
# 対応し切れていないような気がしたので...ということ。


381 名前: 379 投稿日: 01/09/17 01:33
>380
ありがとうございます.WEB 制作板の方の話はすっかり止まってしまっているので
こちらに直接書き込ませていただきました.

追加されるのは以下の文字列:
</title> の直前に
<meta http-equiv=Content-Style-Type content="text/css">
</script> の直後に
</script><style type="text/css"><!--b{color:green}a b{color:blue}--></style>

削除するのは <font color=green> と,対の </font> です.

>345 にも書きましたが +122-(25*age 発言) バイト減ります.
表示は NN4.78(Win) でも大丈夫なので,ほとんどのブラウザで大丈夫だと思います.


382 名前: |  - -) 投稿日: 01/09/17 01:41
>>378
#define Katjusha_Beta_kisei と config.txt の書き換えはやりました。


383 名前: デフォルトの名無しさん 投稿日: 01/09/17 01:57
>>378

></dl>するタイミング
> >>126
出力サイズの小さい、後半であてました


384 名前: デフォルトの名無しさん 投稿日: 01/09/17 02:00
>>378
>>189-190はconfig.txt見るとすでに反映されてますね。


385 名前: デフォルトの名無しさん 投稿日: 01/09/17 02:44
>>378
>「名前:」も「:」だけにする
CUT_NAME_STRINGとして追加しときました。


386 名前: デフォルトの名無しさん 投稿日: 01/09/17 02:56
>>378
>  * [+OK zzz] の場合は差分のみを送信する。zzzは差分サイズ。
>  * [-INCR] (Incorrect)の場合はすべてのデータを送信する。
INCRのときも、[-INCR zzz]という形になってるよ。サイズがついてる。


387 名前: デフォルトの名無しさん 投稿日: 01/09/17 03:46
>>378
>HEADリクエストに対しては Last-Modified と Content-Length を吐くだけにする
> >>219 >>226
これやってみた。

ZLIB時:
 HEADに対してはヘッダのみ出力する。内部的には全部圧縮して、結果の
Content-Lengthも出力。

GZIP時:
 本文も出力しているまま。

無圧縮時:
 通常のヘッダ出力後即終了。Content-Lengthは従来同様出力していない。


388 名前: 125 投稿日: 01/09/17 04:05
PREV_NEXT_ANCHORと同時にCHUNK_ANCHOR/RELOADLINKを指定した時、

上:■掲示板に戻る■ 全部 CHUNK_ANCHOR 最新50
下:[続きを読む/新着レス]///掲示板に戻る 全部 前100 次100 最新50
混雑時
上:■掲示板に戻る■ CHUNK_ANCHOR 最新50
下:[次100 最新50/新着レス]

の形にした。
config.txtの内容をチェックして、ダブりと現状に合っていないものを修正。
PREV_NEXT_ANCHORで使用している文字列をr2chhtml.hに追い出した。
>>のリンクがno_first=trueになっていなかった。


389 名前: 125 投稿日: 01/09/17 04:32
>>381
USE_CSSとして付けた。
一応ONにしておいた。
が、私は普段CSSはoffしてるので、ちょっとだけ悲しい。

#まずい、寝なきゃ。


390 名前: デフォルトの名無しさん 投稿日: 01/09/17 05:07
>>356
これ適用してみた。


391 名前: デフォルトの名無しさん 投稿日: 01/09/17 06:23
>>387
内部的に圧縮を行ったりgzipを呼んだりしてしまうと負荷が
ほとんど下がらないのでContent-Lengthは出力しなくて
いいと思います。


392 名前: デフォルトの名無しさん 投稿日: 01/09/17 07:26
>>391
sousitemita.


393 名前: デフォルトの名無しさん 投稿日: 01/09/17 15:58
>IEはヘッダにはAccept-Encoding: gzip, deflateと含めているにも
>関わらず、実際にdeflateでエンコードしたデータを喰わせても
>解釈できないです。

根拠はここ。
http://cvs.m17n.org/~akr/diary/d2001_01.html
ちなみにこの日記自体がContent-Encoding: deflate
で圧縮されているので尋常な手段では読めません。

一言でまとめると、HTTP仕様はzlibフォーマットのdeflateを
要求しているにもかかわらず、IEやNetscape6はzlibヘッダ
の付いていない生のdeflateストリームでないとデコード
できません。
というわけで事実上Content-Encoding: deflateは使えないです。


394 名前: デフォルトの名無しさん 投稿日: 01/09/17 22:44
cvsにChangeLogファイル作ってみたよ。
今までの変更のサマリーとtagごとの採用状況をざっと書いてみました。


395 名前: 369 ◆3XTuRnAc 投稿日: 01/09/17 23:30
新しいアドレスは、

ftp://10.170.136.232/incoming/

です。IP変わったのは15日の23時ちょっと前の模様。


396 名前: 369 ◆3XTuRnAc 投稿日: 01/09/17 23:44
あ、ちょうどいい機会なんで、dyndns取りました。

ftp://readcgi.dyndns.org/

ってことで。

あとはこれを自動更新(せめて一時間に一度程度の自動更新)
ができると良いんですが・・・。

なんとか、一日に一度はチェックするようにしたいと思います。


397 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/17 23:55
みなさまお疲れさまです。

★CVS使わない人は ftp://readcgi.dyndns.org/incoming/ をご利用下さい

★condition一覧/SETTING_R.TXT記述一覧 変更したら随時更新してね♪
 http://www.gedoh.org/aki/2ch/current/bbs/config.txt


実装・検討待ちの案一覧 @396

ETag
 >>137 >>143 >>167-169 >>173 >>229-232

URL記述に対するリンク設定も時間帯によらせる
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=817&to=817&nofirst=true

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

mmap時にlockすべきか
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=139&to=139&nofirst=true
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=425&to=425&nofirst=true

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

deflate
 そのうち対応(実用困難らしい >>393


398 名前: 369 ◆3XTuRnAc 投稿日: 01/09/17 23:58
たびたびすみません(^^;;。
369ってのは、ここのスレッドの番号じゃなくて、以前の騒動の時の
コテハンでして・・・。


399 名前: デフォルトの名無しさん 投稿日: 01/09/18 00:09
>>397
実は>>378もそうなんだけど、リンクされているスレが3つとも、
前スレじゃなくて、このスレだったりして。


400 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/18 00:12
>>398
おひさしぶりです。
>>399
.....鬱氏(^^;
1000035521 -> 998997848


401 名前: デフォルトの名無しさん 投稿日: 01/09/18 00:15
>>397
>★CVS使わない人は ftp://readcgi.dyndns.org/incoming/ をご利用下さい
どちらかというと新たにcvsを使いたい人は、ですね(笑)


402 名前: デフォルトの名無しさん 投稿日: 01/09/18 01:31
>>397

>/tech/998997848/817
>・URL記述に対するリンク設定も時間帯によらせる NO_LINK_URL_BUSY
やっときました。


403 名前: anony ◆3XTuRnAc 投稿日: 01/09/18 02:03
ちょっと要望なんですが、

■掲示板に戻る■ 1- 51- 101- 151- 201- 251- 301- 351- 401- 最新レス50

これ、上じゃなくて下においていただけないですかね。
特に「1- 51- ・・・」の部分。
いったん流し読みして、次を読むためにもう一度一番上までスクロールさせて・・・
ってのはちょっと面倒(^^;;。


404 名前: デフォルトの名無しさん 投稿日: 01/09/18 02:15
>>403
下に 前100 次100 と付く予定ですが、それじゃ駄目ですか?


405 名前: anony ◆3XTuRnAc 投稿日: 01/09/18 02:28
>>404
あ、そういう予定があるならそのほうがいいな。

この5.20の書式で行くのかなーと誤解してしまい。
申し訳ない。


406 名前: デフォルトの名無しさん 投稿日: 01/09/18 05:53
mmap時のlockは どちらにしても読み出し側単独では不可能(というかナンセンス)で
書き込み側での対応が必要かと


407 名前: デフォルトの名無しさん 投稿日: 01/09/18 07:09
んーっと、とりあえず、ETag実装してみた。
知識が足りないので、これでいいのかもよくわからない。
足りない点や見落としなど含め、意見求む。
大幅に書きなおしてくれる人も歓迎。

動作は、まず当初の目的を考えたので、
to=nnが指定されている時だけETagを出力するようにした。
main()の流れは、こんな感じ。
・・LastModifiedチェックの後、atexitを登録してから、
#ifdef PUT_ETAG
 if (need_etag(st, to, ls)) {
  char etag[60];
  dat_read(fname, st, to, ls);
  create_etag(etag);
  if (match_etag(etag)) {
   puts("Status: 304 Not Modified\n");
   return 0;
  }
  printf("ETag: %s\n", etag);
 }
#endif
出力部のチェックサムは、とりあえずcrc32を使い、
>>173を参考に、dat_read()の先頭でBigBufferをチェックするようにした。
また、影響を少なくするため、NotModifiedを返すのは混雑時のみにした。

出力情報は、%x形式で、
ETag: "crc-全サイズ-全レス数-送信部サイズ-送信部レス数-flag"
flagは出力が混雑時のものか、等。
かなり冗長で使っていない情報も出力しているが、
必要最小限にすべきか?
もし、ツール等が使う可能性があるなら、
to=nn以外のリクエストにも必要があるかも。

今のままだと、st=1&to=150とした場合、
時間帯が異なると必ず更新扱いされてしまう。
リクエストのレス全てから算出した値と
実際に出力するレスから算出した値を両方求め、
それぞれと比較して一致したら304を返す方が望ましい?

動作確認は、apacheをいれてないので中途半端にしか出来ていない。
・ETag出力の確認
・match_etagがtrue/falseを返す時の出力をそれぞれ確認
・HTTP_IF_NONE_MATCHをputenvして、datに手動で行を追加して確認
等はしたものの、
IEのリクエストから動作を確認したわけではないので、
ONにする前に(可能な人に)動作確認をお願いしたい。
NotModifiedを返す条件も募集中(追加をお願い)。


408 名前: デフォルトの名無しさん 投稿日: 01/09/18 07:09
ところで、昨日いろいろ調べて、ようやくcheckout出来た。
(今まで、sshでつまずいていた)
WinCVSではなく、コマンドラインから動かしているけど、
updateは正常に動いているようなので、
commitも動作自体は大丈夫だと思う(これからテスト)。

よく見たら、改行コードが変換されている。
まあ、これはcommitする時に戻されるだろうからいいとして、
他に気になるのは漢字コードか。
コメントを書くのにEUCで保存できないエディタを使ったり、
間違えてSJISで保存したりすると、化けるんだろうな。

ということで、ETagの動作確認の他に、commitの動作確認もお願い。


409 名前: 408 投稿日: 01/09/18 07:50
ちゃんとできたみたい。
でも、read.c以外は触りたくないし、
細かい修正は今まで通りここに書きこむ方が気楽だ。


410 名前: デフォルトの名無しさん 投稿日: 01/09/18 08:31
>>408
困ったことに(笑)
read.cとr2chhtml.hはSJISだけどread2ch.hやconfig.txtなどはEUCなんですよね。
文字コード自動判別&元の文字コードを維持してくれるエディタを使うようにしないと。

改行コードについてはWinCVSなんかはテキストとして扱うものは変換してくれますね。
バイナリファイルをaddするときはバイナリフラグをつける必要があります。


411 名前: デフォルトの名無しさん 投稿日: 01/09/18 08:43
>>407
need_etagを呼ぶタイミングだけど、
gzip対応かどうかを判定する前にBaddAccess()を呼ぶのはまずいっす。
etag判定時と実処理時で結果が違ってしまう。


412 名前: デフォルトの名無しさん 投稿日: 01/09/18 08:52
>>407
> to=nn以外のリクエストにも必要があるかも。
to以外もすべて、ツールに限らず必要だと思う。


413 名前: 411 投稿日: 01/09/18 08:55
>>411
タイミング遅らせてみた。


414 名前: デフォルトの名無しさん 投稿日: 01/09/18 12:10
「>」はタグの終了と紛らわしくない限り、「&gt;」と文字参照にする
必要はないことになっています。実際、IEやNetscapeでは
問題ありません。
文中の「&gt;」を「>」に置換すれば1つにつき3バイト節約できます。


415 名前: デフォルトの名無しさん 投稿日: 01/09/18 13:27
>>414
「>」を&gt;や「<」を&lt;に変換するのは、本文中にタグを埋め込まれるのを
避ける意味もあるから、まずいことになりゃしないか?


416 名前: デフォルトの名無しさん 投稿日: 01/09/18 13:29
あれ?
&amp;gt; って書いたのに、「>」になっちゃった。
何で?前はこれで書けてたのに。

ってことで修正
>「>」を&gt;や「<」を&lt;に変換するのは、本文中にタグを埋め込まれるのを


417 名前: 415=416 投稿日: 01/09/18 13:31
さらに自己レス。かちゅ〜しゃの仕様ですね。
失礼しました。


418 名前: デフォルトの名無しさん 投稿日: 01/09/18 13:51
>>414
>>で始まる他レス番号参照のところでのみ対応してみました。
あと、PATH_INFO時に他レスへのリンクが常に範囲指定になっていたのも
直しました。


419 名前: デフォルトの名無しさん 投稿日: 01/09/18 14:15
2001/09/18 13:09現在の採用状況
http://teri.2ch.net/test/read.cgi/accuse/1000730692/8


420 名前: デフォルトの名無しさん 投稿日: 01/09/18 15:49
>>415
タグが閉じるのが早くなるだけだから不正にタグを埋め込まれた
場合にはむしろ望ましいはずです。
&lt;の置き換えだとかなり問題ですが。


421 名前: デフォルトの名無しさん 投稿日: 01/09/18 15:52
>>416
かちゅ〜しゃのバグです。せっかく開発してるのだからread.cgiで
見てみてください。ちゃんと書けてます。


422 名前: 421 投稿日: 01/09/18 15:54
417で自己レス入ってるのが見えなかった鬱打


423 名前: デフォルトの名無しさん 投稿日: 01/09/18 16:52
#ifdef NN4_LM_WORKAROUND
if (!memcmp(zz_http_user_agent, "Mozilla/", 8)
&& zz_http_user_agent[8] == '4'
&& zz_http_user_agent[10] >= '5'
&& !strstr(zz_http_user_agent, "compatible"))
putchar('\n');
else
#endif
この対策が必要なのはNN4.xでも4.5以降だけなので(それ以前
はそもそもgzipに対応していない)もっと絞り込めるはず。
それともgzip非対応バージョンでもContent-Lengthがあると
Last-Modifiedが無効になるのでしょうか。


424 名前: デフォルトの名無しさん 投稿日: 01/09/18 16:54
こうしたほうがいいか。
#ifdef NN4_LM_WORKAROUND
if (!memcmp(zz_http_user_agent, "Mozilla/4.", 10)
&& zz_http_user_agent[10] >= '5'
&& !strstr(zz_http_user_agent, "compatible"))
putchar('\n');
else
#endif


425 名前: デフォルトの名無しさん 投稿日: 01/09/18 17:26
USE_CSSは

・メールリンクなしのfusianasanやトリップに色が付かない
・sageリンクをクリックしていても紫にならない
・名前のリンクを選択中でも赤くならない

など、かなり見栄えへの副作用が大きいので、
とりあえずOFFを希望します。


426 名前: 425 投稿日: 01/09/18 17:33
あと、
・CREATE_NAME_ANCHORが有効だとメールリンクなしの
 名前まで青くなる
というのもありました。


427 名前: デフォルトの名無しさん 投稿日: 01/09/18 17:52
私の計算が間違っていなければ
<a href="mailto:sage "></a>も
<font color=#0000c0></font>も
同じバイト数で、SAGE_IS_PLAINはまったく意味がない
ので廃止を提案してみます。


428 名前: デフォルトの名無しさん 投稿日: 01/09/18 18:00
#ifdef ZLIB
if ( is_head() || gzip_flag == compress_none )
#endif
{
/* HEADリクエストならここで終了 */
if ( is_head() ) {
return 0;
}
}

は不必要に冗長。

/* HEADリクエストならここで終了 */
if ( is_head() ) {
return 0;
}

と論理的に等価。


429 名前: デフォルトの名無しさん 投稿日: 01/09/18 20:19
PATH仕様で「ls=」を意味する文字を、「=」から「l」あたりに
変更することを提案します。
そうすると「"」を安全に省略できるので、リンク1つにつき
さらに2バイトの節約になります。


430 名前: デフォルトの名無しさん 投稿日: 01/09/18 21:16
>>428
ああ、それはHEADリクエストでも圧縮処理するように戻すことを考えて
残したんです。


431 名前: デフォルトの名無しさん 投稿日: 01/09/18 21:27
>>423
誰かNNユーザーの方この検証キボン


432 名前: デフォルトの名無しさん 投稿日: 01/09/18 22:16
>425-426

CSS の実装を提案した者です.ご意見ありがとうございます.

>・メールリンクなしのfusianasanやトリップに色が付かない
これは…トリップのところまで含めて </b> になってないのはなぜなんでしょう?
また,そこが太字であったら(見栄え以外の)不都合はありますか?

>・sageリンクをクリックしていても紫にならない
>・名前のリンクを選択中でも赤くならない
今は名前のところが<a><b>...</b></a>になっていますが,これを <b><a>...</a></b> には
できませんか?できるなら css 宣言の a b{color:blue} を外すだけで対応できます.

#ところでこのあたりの色,うちの IE55 NN478 Moz094 だといずれも紫にも赤にもならないのですが?

>・CREATE_NAME_ANCHORが有効だとメールリンクなしの名前まで青くなる
これは<a name></a> を<b></b> の前に置くか,あるいは <b><a>...</a></b> にして css の a b{} を外すか.

ということで,いずれも<a><b> の順番を変えるとかそういうことで対処できますが,
問題はそれをするのにどのくらい手間がかかるかということです.
<font color=green> のところは確実に減るのでその減る分に見合うだけの作業になるか
どうかですが,これは作業をしてくださる方の判断にお任せします.


433 名前: デフォルトの名無しさん 投稿日: 01/09/18 22:43
>>424,431
大丈夫そうに見えるのでcommitした。(memcmpはやめてstrncmpにした)
要NN4.0xで検証

>>429
=をlにした。"は、まだ取っていない。

>>339
PATH_INFOで/の数が不正の時にエラーになるようにした。

USE_CSSはとりあえずOFFにした。


434 名前: デフォルトの名無しさん 投稿日: 01/09/18 22:43
>これは…トリップのところまで含めて </b> になってないのはなぜなんでしょう?
名前欄に「</b>◆トリップ<b>」のように入るからです。

>また,そこが太字であったら(見栄え以外の)不都合はありますか?
トリップは◆があるからまだいいのですがfusianasanは騙りと区別が
付かないというかなり強力な不都合があります。
見栄えも十分問題だと思いますが。

>今は名前のところが<a><b>...</b></a>になっていますが,これを <b><a>...</a></b> には
そうすると今度はfusianasanしたとき<a>と<b>が互い違いに
なるのでネスケで細字に見えないという不都合が発生します。
というかそれでわざわざ順番を変えてもらったのです。

>#ところでこのあたりの色,うちの IE55 NN478 Moz094 だといずれも紫にも赤にもならないのですが?
うちのIE55では紫にも赤にもなるのですが。
NN478でもクリックした瞬間にはちゃんと赤になります。

>これは<a name></a> を<b></b> の前に置くか,
すると今度はメールリンクしなくなります。<a>要素をname用と
href用と2つ書いたらサイズが増えて本末転倒になりそうだし。

>あるいは <b><a>...</a></b> にして css の a b{} を外すか.
すでに述べた通り却下です。

>ということで,いずれも<a><b> の順番を変えるとかそういうことで対処できますが,
というわけでそうでもないです。あらためてUSE_CSSは
オフにすることきぼん。


435 名前: 434 投稿日: 01/09/18 22:45
って書いてる間にOFFになってましたか。


436 名前: デフォルトの名無しさん 投稿日: 01/09/18 22:54
>>435
名前の所を強烈にいじらないと問題ありそうだったからOFFにしました。

>>433
書き忘れ
>>427
<font color=#0000c0>を<font color=blue>に変えた。
これで一応意味はあるのかな。OFFだけど。


437 名前: 432 投稿日: 01/09/18 22:55
>434
なるほど.背景をきちんと理解せずに中途半端な提案をしていたようで,申し訳ありません.
以上のようなことがあるとすると,CSS を ON にするのは難しそうですね….
やはり,見栄えを変えずに CSS でサイズ削減ってのは(今回の場合には)無理そうですね.


438 名前: デフォルトの名無しさん 投稿日: 01/09/18 23:06
まだちゃんと見てないんだけど、
PUT_ETAGがあるとdat_readを複数回呼ぶ場合があるんじゃない?

サーバーの負荷の問題もあるので、Etag使用は本当に必要な場合のみに
抑えたいところ。


439 名前: デフォルトの名無しさん 投稿日: 01/09/18 23:22
CSSの話は最初からボーっと眺めているだけで、
「IEとNNは大丈夫」を読んで、時代に逆行するけど
「それ以外に問題が発生したら、UserAgentからMozillaが含まる場合」などと、
昔よく行われていた(らしい)ことを考えていた。

もし、CSS使用時の他の問題が解決する目処が立ちそうなら、
UserAgentを判別してIEの場合だけCSSを使うとか、
NNの場合は<b>や<a>の順番を変える方法もありそうだね。
結構変更が大変そうだから、
転送量的に必要で、変更する手間があれば、だけど。


440 名前: 424 投稿日: 01/09/19 00:33
すんまへん、大嘘ついてました。NNのgzip対応は4.06からです。

GET http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&ls=100 HTTP/1.0
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.06 [ja] (WinNT; I)
Host: piza2.2ch.net
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: Shift_JIS,*,utf-8


441 名前: デフォルトの名無しさん 投稿日: 01/09/19 00:38
で、NN4.05で試すとAccept-Encodingがないにも関わらず、
なぜかgzip圧縮された内容が返ってきて見事に文字化けしたのですが、
これってread.cgi 5.20の既知の不具合でしたっけ?
もちろんキャッシュは完全にクリアしてから試しています。

GET http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&ls=100 HTTP/1.0
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.05 [ja] (WinNT; I)
Host: piza2.2ch.net
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
Accept-Language: en
Accept-Charset: Shift_JIS,*,utf-8

HTTP/1.0 200 OK
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
Date: Tue, 18 Sep 2001 15:18:37 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: Tue, 18 Sep 2001 14:22:56 GMT
Content-Length: 19216
Content-Type: text/html


442 名前: 441 投稿日: 01/09/19 00:42
んーNN4.06で見てみたけど今書き込んだ内容が反映されてない…
経路上のどこかにキャッシュでもあるんだろうか…。


443 名前: 441 投稿日: 01/09/19 00:47
Shift+リロードしたら圧縮されてない内容がちゃんと
返ってきました。やっぱりどこかでキャッシュされてたみたいです。
お騒がせしました。


444 名前: デフォルトの名無しさん 投稿日: 01/09/19 00:50
>>441-443
Proxy-Connection: Keep-Alive
 ↑
この辺か?


445 名前: デフォルトの名無しさん 投稿日: 01/09/19 00:53
4.05以前の場合どのみち圧縮された内容は返されない
(=Content-Lengthは出力されない)ので、そんなシビアに
取らなくてもいいと思われ

#ifdef NN4_LM_WORKAROUND
if (!strncmp(zz_http_user_agent, "Mozilla/4.", 10)
&& !strstr(zz_http_user_agent, "compatible"))
putchar('\n');
else
#endif


446 名前: デフォルトの名無しさん 投稿日: 01/09/19 01:03
>>445
あてた。


447 名前: デフォルトの名無しさん 投稿日: 01/09/19 01:13
ん? 先祖がえりしてるような…。

#ifdef NN4_LM_WORKAROUND
if (!memcmp(zz_http_user_agent, "Mozilla/", 8)
&& zz_http_user_agent[8] <= '4'
&& !strstr(zz_http_user_agent, "MSIE"))
putchar('\n');
else
#endif


448 名前: デフォルトの名無しさん 投稿日: 01/09/19 01:24
>>447
http://www.gedoh.org/aki/2ch/current/bbs/
の更新がとまってるみたい。


449 名前: デフォルトの名無しさん 投稿日: 01/09/19 01:49
現在の最新版を
ftp://readcgi.dyndns.org/incoming/read.tgz
に置いておきました。


450 名前: 夜勤 ★ 投稿日: 01/09/19 03:47
みなさん、いつもありがとうございます。

新しいの入れようと思うのですが、、、
どれ(どこ)なのかな?


451 名前: デフォルトの名無しさん 投稿日: 01/09/19 03:49
>>450
>>449が最新です。

5.21の問題点

上に前、次があるのは転送量的に問題。
NORAML_TAGCUTは、要らなかった。


452 名前: 夜勤 ★ 投稿日: 01/09/19 03:53
>>451
どーもです。
これから、choco に入れてみます。


453 名前: 夜勤 ★ 投稿日: 01/09/19 04:07
Makefile:11: *** commands commence before first target. Stop.

make ここて、止まっちゃいます。
なぜに?


454 名前: デフォルトの名無しさん 投稿日: 01/09/19 04:10
>>453
なぜだかわかりませんが、SRCSからの3行を削ってみたらどうでしょう?
SRCSはcgiを作るのには関係ありませんから。


455 名前: 夜勤 ★ 投稿日: 01/09/19 04:16
うっ

こんどは、
Makefile:71: *** missing separator. Stop.


456 名前: デフォルトの名無しさん 投稿日: 01/09/19 04:18
??
なんか、継続行を理解できないmakeな感じですね。
gmake 使えませんか?


457 名前: 夜勤 ★ 投稿日: 01/09/19 04:20
gmake はいってないです。

GNU Make version 3.74, by Richard Stallman and Roland McGrath.
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

いままでの makefile で ok ですか?
5.21のやつ


458 名前: デフォルトの名無しさん 投稿日: 01/09/19 04:22
>>457
はい、SRCSに一つ追加しただけですから。

なんか変ですね。改行コードがおかしいのかしら?


459 名前: 夜勤 ★ 投稿日: 01/09/19 04:23
いままでの Makefile で、make しました。
choco に 5.22 入りました。


460 名前: 夜勤 ★ 投稿日: 01/09/19 04:25
>>458
なんか そんな感じです。
ちゃんと追っていないので、断定はできませんが、、、
何かへんなコードが紛れ込んでいるのかしらん?


461 名前: デフォルトの名無しさん 投稿日: 01/09/19 04:28
>>459
ご苦労さまでした。

しかし、Makefileのどこがまずいんだろう。
SRCSの最後にChangeLogを追加しただけなんですが。


462 名前: 夜勤 ★ 投稿日: 01/09/19 04:30
#define R2CH_HTML_ERROR_5_TEMP \
"隊長! スレッド <font color=deeppink><b>%s.dat</b></font> は、html化されるのを待っているようです。<br>しばらく待つしかない。\n"

次期 ver では、にしていただけるとありがたいです。


463 名前: デフォルトの名無しさん 投稿日: 01/09/19 04:33
>>462
やっときます。


464 名前: デフォルトの名無しさん 投稿日: 01/09/19 04:57
う、imode時のPATH仕様対応をやってたんだが一足遅かったか。
[r2chhtml.h]
/* tail: npath=生成するURLその1 nst=次のxxxレス
lpath=生成するURLその2 ls=最新レスxxx */
#define R2CH_HTML_T_IMODE_TAIL(npath, nst, lpath, ls) \
" <a href=\"" npath "\">次の" nst "レス</a>" \
" <a href=\"" lpath "\">最新レス" ls "</a><br>\n"

/* tail: PATHナシ
%s=cgi %s=board %s=key %d=開始 %d=終了 %d=レス数
%s=cgi %s=board %s=key %d=レス数 %d=レス数 */
#define R2CH_HTML_IMODE_TAIL \
R2CH_HTML_T_IMODE_TAIL("%s?bbs=%s&key=%s&st=%d&to=%d&imode=true", "%d", \
"%s?bbs=%s&key=%s&ls=%d&imode=true" NO_FIRST, "%d")

/* tail: PATH仕様
%d=開始 %d=終了 %d=レス数
%d=レス数 %d=レス数 */
#define R2CH_HTML_PATH_IMODE_TAIL \
R2CH_HTML_T_IMODE_TAIL("%d-%di", "%d", \
"l%di", "%d")

/* i-Modeで見たとき: PATH仕様
%s=スレ名 %s=板 %d=一度に表示するレス数
%d=一度に表示するレス数 %d=一度に表示するレス数 */
/* </title>の前の空白は削除しないこと */
#define R2CH_HTML_PATH_IMODE_HEADER_1 \
"<html>" \
"<head>" \
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">" \
"<title>%s </title>" \
"</head>" \
"<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \
"<a href=\"../../../../%s/i/\">■掲示板に戻る■</a>" \
" <a href=\"1-%di\">レスを最初から読む</a>" \
" <a href=\"l%di\">最新レス%d</a>"

#define R2CH_HTML_PATH_RELOAD_I \
"<center><a href=\"%d-i\">新着レスの表\示</a></center><hr>"

#define R2CH_HTML_FORM_IMODE(depth) \
"<form method=POST action=\"" depth "bbs.cgi\">\n" \
"<input type=submit value=\"かきこむ\" name=submit> " \
"NAME:<input name=FROM size=20 value=\"\">" \
"MAIL:<input name=mail size=20 value=\"\">" \
"<br>" \
"<input type=hidden name=bbs value=%s>" \
"<input type=hidden name=key value=%s>" \
"<input type=hidden name=time value=%ld>" \
"<textarea rows=5 cols=60 wrap=off name=MESSAGE></textarea>" \
"</form><br>"


465 名前: デフォルトの名無しさん 投稿日: 01/09/19 04:59
机上デバッグしかやってないのでうまく通らないかも。
[read.c]
out_html()に追加:
#ifdef USE_PATH
if (path_depth)
pPrintf(pStdout, R2CH_HTML_PATH_IMODE_TAIL,
lineNo, lineNo + RES_IMODE, RES_IMODE,
RES_IMODE, RES_IMODE);
else
#endif

html_head()に追加:
#ifdef USE_PATH
if (path_depth)
pPrintf(pStdout, R2CH_HTML_PATH_IMODE_HEADER_1,
title, zz_bs, RES_IMODE,
RES_IMODE, RES_IMODE);
else
#endif

html_reload()に追加:
#ifdef USE_PATH
if (path_depth)
pPrintf(pStdout, R2CH_HTML_PATH_RELOAD_I, startline);
else
#endif

html_foot_im()に追加・変更:
#ifdef USE_PATH
if (path_depth)
pPrintf(pStdout, R2CH_HTML_FORM_IMODE("../../../"), zz_bs, zz_ky, currentTime);
else
#endif
pPrintf(pStdout, R2CH_HTML_FORM_IMODE(""), zz_bs, zz_ky, currentTime);


466 名前: デフォルトの名無しさん 投稿日: 01/09/19 05:01
>>462
done.

tag: YAKIN20010919を打った。
MakefileのSRCSを分割してみた。これでなんとかならないかな?


467 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/19 13:12
みなさんお疲れさまです。
5.22のユーザーインタフェース(?)すごく使いやすい。。。とてもお気に入りです。
使いやすすぎるのが転送量的に問題とならないことを祈ります。


468 名前: デフォルトの名無しさん 投稿日: 01/09/19 16:04
http://www.gedoh.org/aki/2ch/current/bbs/
ってもう更新されないんですか?


469 名前: デフォルトの名無しさん 投稿日: 01/09/19 17:26
>>464-465
やってみた。


470 名前: 転載 投稿日: 01/09/19 20:43
ニュース速報が最新スクリプト5.22になっていた。


471 名前: デフォルトの名無しさん 投稿日: 01/09/19 20:44
見栄えに副作用を与えないUSE_CSS案。のつもりだったんだが
どういうわけかNN4だと名前が全部緑になりやがる。
マジで氏ね>ネスケ

#ifdef USE_CSS
#define R2CH_HTML_CSS_DEFINE \
"<style type=\"text/css\"><!--" \
"body{background:#eee;color:#000}" \
"a{color:green}" \
":link{color:blue}" \
":visited{color:#609}" \
":hover{color:red}" \
"--></style>"
#define R2CH_HTML_BODY_DEFINE "<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>"
#else
#define R2CH_HTML_CSS_DEFINE ""
#define R2CH_HTML_BODY_DEFINE "<body>"
#endif

#define R2CH_SIMPLE_HTML_HEADER_1(title) \
"<html>" \
"<head>" \
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">" \
"<title>" title " </title>" \
R2CH_HTML_COOKIE_SCRIPT \
R2CH_HTML_CSS_DEFINE \
"</head>" \
R2CH_HTML_BODY_DEFINE

[CREATE_NAME_ANCHORがオフのほうを変更。オンのほうはそのままでいい]
#ifdef USE_CSS
#define R2CH_HTML_RES_NOMAIL(n, nm, d, t) \
"<dt>" n " " R2CH_HTML_NAME "<a><b>" nm " </b></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>"
#else


472 名前: デフォルトの名無しさん 投稿日: 01/09/19 20:54
#if defined(LATEST_ANCHOR) && !defined(SEPARATE_CHUNK_ANCHOR)
/* LATEST_ANCHORも常に生きにする */

どっちが正しいの?


473 名前: デフォルトの名無しさん 投稿日: 01/09/19 20:57
#if 0 /* #ifdef USE_PATH */
ってやっぱ気持ち悪いから
#ifdef USE_INDEX
にしたいなあ。と言ってみる。


474 名前: デフォルトの名無しさん 投稿日: 01/09/19 21:01
SAGE_IS_PLAINについて。
どうせ3バイトの節約にしかならないなら
<font color=blue></font>
より
<a href=mailto:sage></a>
のほうがCREATE_NAME_ANCHOR時に有利なぶんいいと思われ

それにこれだと見栄えに影響を与えないからONにしても
いいはず。


475 名前: デフォルトの名無しさん 投稿日: 01/09/19 21:02
/* ここには、If-None-Matchを付加しないUAのリスト
(又は付加するUAのリスト)を置き
無意味な場合にfalseを返すのが望ましい。 */

If-None-Matchが規定されたのはHTTP/1.1からだから
HTTPバージョンを見るといいのではないかと。


476 名前: デフォルトの名無しさん 投稿日: 01/09/19 21:06
rawmodeでERR_NOT_FOUNDのとき、
・倉庫落ちかどうか判別できるようにする
・倉庫落ちで.datにアクセス可能ならそのURLを返す
ことを提案。

倉庫にもないことがその場で分かればツールが無駄に
もう一度アクセスする必要がなくなる。
過去ログURLの形式が変わるたびにツールのほうで
対応しなおす必要もなくなる。


477 名前: デフォルトの名無しさん 投稿日: 01/09/19 21:08
rawmodeのとき、たとえば
+OK 12345/512K
のような形式で、ツールに限界サイズを知らせるようにすることを
提案。

dat直接アクセスが禁止されればツールも「大きすぎます」の
影響を受けるようになるのでこの情報が必要になるはず。


478 名前: デフォルトの名無しさん 投稿日: 01/09/19 21:20
>>476
[r2chhtml.h]
#define ERRORMES_NOT_FOUND "そんな板orスレッドないです。"
#define ERRORMES_DAT_FOUND "過去ログ倉庫で発見 %s"
#define ERRORMES_TEMP_FOUND "html化待ち"

[read.c]
#ifdef RAWOUTの前に
*tmp = '\0';
strcpy(tmp, LastChar(zz_ky, '/'));
kako_dirname(zz_soko, tmp);
を移動。

#ifdef RAWOUT
if(rawmode) {
/* -ERR (message)はエラー。 */
if (errorcode == ERROR_NOT_FOUND) {
sprintf(doko, KAKO_DIR "%.50s/%.50s.dat",
zz_bs, zz_soko, tmp);
if (!stat(doko, &CountStat)) {
pPrintf(pStdout, "-ERR " ERRORMES_DAT_FOUND "\n", doko);
} else {
sprintf(doko, TEMP_DIR "%.50s.dat",
zz_bs, tmp);
if (!stat(doko, &CountStat)) {
pPrintf(pStdout, "-ERR %s\n", ERRORMES_TEMP_FOUND);
} else {
pPrintf(pStdout, "-ERR %s\n", mes);
}
}
} else
pPrintf(pStdout, "-ERR %s\n", mes);
exit(0);
}
#endif


479 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/20 00:41
>>476
ちょっと関連しますが、将来的には /kako/ 以下の .dat は rawmode で
あろうとなかろうと、read.cgi が扱った方が転送量減ると思うのですが、
予定としてはどうなのでしょう。。。
/kako/ 行きでも ls st to の指定ができるのは大きいと思いますので。
# 今でもブラウザでURL指定すればできますが、いちいちやってくれる人は
# 多くはないかと。結果、/kako/ 行きのものは html 全体が呼び出される、と。


480 名前: デフォルトの名無しさん 投稿日: 01/09/20 00:52
>>479
># 今でもブラウザでURL指定すればできますが、

これの意味が分からん。


481 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/20 02:25
>>480
ごめん、忘れて(^^;


482 名前: デフォルトの名無しさん 投稿日: 01/09/20 03:07
>>473
>>478
> USE_INDEX用処理の一部が#if 0になっていたので#ifdef USE_INDEXに訂正。
> rawmodeリザルトで "-ERR 過去ログ倉庫で発見 %s" と "-ERR html待ち" 追加。
やったんだけどcvsにcommit挑戦してるんだが固まってる…
落ちてるのか? 単に重いのか?


483 名前: 482 投稿日: 01/09/20 03:21
>Secure connection to iwato.uryusoft.net refused.
>cvs [commit aborted]: end of file from server (consult above messages if any)
(´д`;)


484 名前: デフォルトの名無しさん 投稿日: 01/09/20 03:27
ホスト名出したらまずくないか?
CVSたててくれたけど、ログに残るの嫌がってたのに。


485 名前: 483 投稿日: 01/09/20 03:32
>>484
すまん、うっかりしてた。


486 名前: ghanyan 投稿日: 01/09/20 04:03
read.cgiの5.22ですが、RAWモードで末尾に変なHTMLがつくみたいです。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&raw=0.0
で確認してください


487 名前: デフォルトの名無しさん 投稿日: 01/09/20 04:11
不具合は確認。
HTMLヘッダが最後についちゃってる。
これから原因調べます。


488 名前: デフォルトの名無しさん 投稿日: 01/09/20 04:14
原因判明。
main()の最後で、
#ifdef REFERDRES_SIMPLE
 if (can_simplehtml())
  out_simplehtml();
 else
#endif
 dat_out(0);
これがあるので、RAWMODEの最後にゴミが付く。


489 名前: デフォルトの名無しさん 投稿日: 01/09/20 04:18
>>488
>#ifdef USE_INDEX
> if (path_depth == 2) {
ここでelseのchainが切れてしまってるんだな。
> else if (path_depth == 2) {
とすれば直るはず。


490 名前: 488 投稿日: 01/09/20 04:20
>>489
いかん、else入れる場所違うな。
> } else
>#ifdef USE_INDEX
> if (path_depth == 2) {
こんなふうにしないと。


491 名前: 489=490 投稿日: 01/09/20 04:21
>>490
あ、490は俺。名前間違った


492 名前: デフォルトの名無しさん 投稿日: 01/09/20 04:28
>>490
対策は、
#ifdef RAWOUT
 if (rawmode)
  dat_out_raw();
 else
#endif

#ifdef REFERDRES_SIMPLE
の直前にもってくるか、
 if (rawmode) {
  dat_out_raw();
  return 0;
 }
とすれば楽なんじゃないかな?

ツール作者の方々、申し訳ありませんが、
Ver5.22がこの世の中から消滅するまでの間、
サイズを手がかりに切り捨てちゃってください。


493 名前: デフォルトの名無しさん 投稿日: 01/09/20 04:31
お、CVS復活してる


494 名前: 482 投稿日: 01/09/20 04:31
>>473 >>478 >>489
cvs commitできた。
鯖オーナーありがとう。


495 名前: aki 投稿日: 01/09/20 04:53
ごめん。
YahooBB来たんでocnとマルチホームさせたり
Nimda対策で壁の設定いじってたりして間欠的に落ちてました。

gedoh.orgのミラーが止まってるのは謎なので調べてみます。


496 名前: aki 投稿日: 01/09/20 05:01
cron埋まってた;)


497 名前: デフォルトの名無しさん 投稿日: 01/09/20 05:16
おつかれさまですぅ
いつもありがとうございますぅ


498 名前: ghanyan 投稿日: 01/09/20 05:33
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&raw=0.0
をリクすると、
>Content-Length: 23869
>Content-Encoding: gzip
で、展開後のサイズは111,953バイト
展開後の一行目は+OK 45902
OKの後に続く数字はいったい何なんでしょう?


499 名前: デフォルトの名無しさん 投稿日: 01/09/20 05:37
>>498
データ部のサイズです。


500 名前: ghanyan 投稿日: 01/09/20 05:42
すみません、あんまりサイズが違うもんで、ちょっと不安になってしまいました。


501 名前: デフォルトの名無しさん 投稿日: 01/09/20 05:48
>>500
5.22のバグで、後ろに余分なものがついてます。
+OKに書かれたサイズ分より後ろは無視してください。

それにしてもずいぶん差があるな…


502 名前: デフォルトの名無しさん 投稿日: 01/09/20 05:56
これ、datの後にhtmlが送られてきてる感じ。
長い1行データがテキスト扱いで来るから、IEが死にそうになる。
これで末尾は短く出来ると思うけど、どう?
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&raw=0.0&ls=1


503 名前: デフォルトの名無しさん 投稿日: 01/09/20 06:18
ETag生成時、dat_read()が二回呼ばれることがあったが、1回のみにするようにした。

>>490
確かにreturn入れたほうがケアレスミス防げるね。ってことで入れた。


504 名前: デフォルトの名無しさん 投稿日: 01/09/20 06:24
>dat_read()が二回
dat_read()の先頭で対策されている


505 名前: デフォルトの名無しさん 投稿日: 01/09/20 06:33
ぬお、いつのまに。1.113で入ってたのか。
つーことで無駄な追加だったので消しました。
ChangeLogも適切な位置に移動。


506 名前: デフォルトの名無しさん 投稿日: 01/09/20 06:42
げ、pathと旧形式の出力を統合してたんだが、
1.124と内容までコンフリクトしちまった。
形式気にしないで出力できるようにしたんだが、
さて、どうしよう。


507 名前: 1.124の人 投稿日: 01/09/20 06:51
んと、俺が考えていたのは、
あれから発展させて、r2chhtml.hを少しいじって
pPrintfのフォーマット以外のパラメータを
(特に#ifdef USE_PATHと#elseとで)統一しようかなと。

で、将来的に必要があれば
時間帯やUA,imode,PATH_INFO,SETTING_FILE等による
実行時の出力切替を容易にすることも可能だろうと。
struct {
 const char *head1;
 const char *head2;
 const char *res_mail;
 const char *res_nomail;
 ・・・
} zz_html = {
 R2CH_HTML_・・・
 R2CH_HTML_・・・
};
こんな感じで、実行時にzz_html.head1等を書き換えて
 pPrintf(pStdout, zz_html.head1, ...);
という形式にしたいなって。
(ただし、フォーマット間違いの警告が出なくなると思うけど)


508 名前: 506 投稿日: 01/09/20 06:57
>>507
URLの生成を関数に追い出して、文字列を共用できるようにしたんだが、
たとえば、こんな感じ。

pPrintf(pStdout, R2CH_HTML_CHUNK_ANCHOR("%s", "1"),
    create_link(1,CHUNK_NUM,0,0,0) );

ついでに、path形式の時は"を取るなど。


509 名前: 506 投稿日: 01/09/20 07:04
やってることは大差ないんだが、機能がダブってるんでマージできないんだよね。
ちなみに、r2chhtml.hにPATHの文字は残っていない。


510 名前: デフォルトの名無しさん 投稿日: 01/09/20 07:06
506の方法は美しそうだ。がんばれ(笑)


511 名前: 507 投稿日: 01/09/20 07:24
rewrite_hrefの方はconflictしてないだろうとして、
「掲示板に戻る」のリンク先かな?
可能なら、zz_board_nameから作成してもらったほうがいいけど、
だめなら、無視してくださいな。
html_head/html_footの内部の
#ifdef USE_PATH
#endif
#ifdef CHECK_MOD_GZIP
#endif
#ifdef GZIP
#else
#endif
が1つのpPrintfだけになっちゃったから、その辺がまずいかな。

あと、zz_server_softwareも、
「使わないから消した」だけだから、
必要ならもどしちゃってください。

将来formatの切替を考えるにしても、
パラメータが(関数としてでも)統一されさえすればよいので、
無理にzz_thread_nameにこだわるつもりはないです。


512 名前: 506 投稿日: 01/09/20 07:34
>>511
実は、rewrite_hrefから何からread.cgiを呼び出す奴は全ていじった。
掲示板に戻るも考え方は同じだが、違う実装をした。

他にも、細かい所を修正してあったので、悪いが1.124の変更はキャンセルして
commitしました。

途中のマージ忘れがないか、これからチェックします。


513 名前: デフォルトの名無しさん 投稿日: 01/09/20 07:49
特に機能的に変更した内容はChangeLogにも書いて頂けますか?


514 名前: 506 投稿日: 01/09/20 08:06
>>513
機能的な変更は、ほとんどがバグ対応です。
マージミスの修正とコメントの追加が済んだら、一緒にコミットします。


515 名前: デフォルトの名無しさん 投稿日: 01/09/20 08:19
>>472ですが、
LATEST_ANCHORは常に生きにしたはずなのに
conditionが残ってるのはどうしてなんでしょうか?
(ALL_ANCHORのほうは残ってない)


516 名前: 506 投稿日: 01/09/20 08:42
>>514
コミットしました。

>>515
SEPARATE_CHUNK_ANCHORの時に出力する場所が違うせいで、
取りにくかったのが原因かな。


517 名前: デフォルトの名無しさん 投稿日: 01/09/20 09:05
整理されてみると、first_line()やlast_line()が何回も呼ばれているのが気になってくる。


518 名前: 506 投稿日: 01/09/20 09:21
>>515
LATEST_ANCHORのcondition削除
ついでに、SEPARATE_CHUN_ANCHORがONの場合を調整


519 名前: デフォルトの名無しさん 投稿日: 01/09/20 16:15
config.txtで、ALL_ANCHORも「採用決定のためcondition削除」
へ移動したほうがいいのではないかと。


520 名前: デフォルトの名無しさん 投稿日: 01/09/20 16:32
PATH仕様でないときの「最新50」では1が表示されますが、
http://news.2ch.net/test/read.cgi?bbs=news&key=1000969048&ls=50
PATH仕様で「最新50」にすると1が表示されなくなります。
http://news.2ch.net/test/read.cgi/news/1000969048/l50
「l」を指定したときはnofirst=falseをデフォルトにしたほうが
動作が統一されていいのでは。


521 名前: デフォルトの名無しさん 投稿日: 01/09/20 17:29
全鯖read.cgi 5.22になったようなので、bbs.cgiのパス仕様対応を
要望しに行きたいのですが、
http://piza2.2ch.net/test/read.cgi/tech/998921988/219-222n
計算間違いなどのツッコミ希望。


522 名前: デフォルトの名無しさん 投稿日: 01/09/20 18:52
#ifdef GZIP
if (!gzip_flag)
strcpy(p,"index.html");
else
#endif
strcpy(p,"index.htm");

これおかしくないですか? GZIPがオフならindex.htmlに
戻らなくてはならないはずですけど。
それと戻り先を /板名/ にすれば10バイト減らせます。
以上を考え合わせて
#ifdef GZIP
if (gzip_flag)
strcpy(p,"index.htm");
#endif


523 名前: 521 投稿日: 01/09/20 20:03
read.cgi 5.22はi-mode用がパス仕様に未対応でしたっけ。
http://piza2.2ch.net/test/read.cgi/tech/998921988/i
もうすこし待ったほうがいいか。


524 名前: デフォルトの名無しさん 投稿日: 01/09/20 20:44
非パス仕様のURLで呼ばれたときはBASEを出力して、
常にパス仕様でリンクを生成

[r2chhtml.h]
#ifdef ALWAYS_PATH
#define R2CH_HTML_HEADER_0 \
"<html>" \
"<head>" \
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">"

#define R2CH_HTML_BASE_DEFINE "<base href=\"http://%s/test/" CGINAME "/%s/%s/\">"
#endif

変更(<title>以前を削除):
#define R2CH_SIMPLE_HTML_HEADER_1(title, cookie_script) \
R2CH_HTML_CSS_TYPE \
"<title>" title " </title>" \
cookie_script \
R2CH_HTML_CSS_DEFINE \
"</head>" \
"<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>"

変更(<title>以前を削除):
#define R2CH_HTML_IMODE_HEADER_1(title, board, alllink) \
"<title>" title " </title>" \
"</head>" \
"<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \
"<a href=\"" board "\">■掲示板に戻る■</a>" \
" <a href=" alllink ">レスを最初から読む</a>"

[read.c]
#ifdef ALWAYS_PATH
char const *zz_server_name;
#endif

zz_GetEnv()に追加:
#ifdef ALWAYS_PATH
zz_server_name = getenv("SERVER_NAME");
#endif

html_head()内「if (!is_imode()) {」の直前に追加:
pPrintf(pStdout, R2CH_HTML_HEADER_0);
#ifdef ALWAYS_PATH
if (path_depth < 3 && zz_server_name) {
pPrintf(pStdout, R2CH_HTML_BASE_DEFINE, zz_server_name, zz_bs, zz_ky);
path_depth = 3;
}
#endif


525 名前: デフォルトの名無しさん 投稿日: 01/09/20 21:19
>>520
最新版では合わせてあるはずだけど?
5.22のことを言ってるのかな。

>>522
過去の動作に合わせた。判定しないときはindex.htm推奨の名残。
いまさらindex.htmにする意味はないから、index.htmlでかまわないけど。

index.htmlを付けるかどうかは、バイト数削ることより
bbs.cgiも含めて統一することの方が大切。
2chの板じゃ回転速すぎて意味がない気もするが。


526 名前: デフォルトの名無しさん 投稿日: 01/09/20 21:23
>>525
bbstableは /板名/ にリンクしてるからそのほうがいいかと
思った。リロードは常にindex.htmだし。
過去動作との互換は了解。
>判定しないときはindex.htm推奨の名残。
どこで推奨してたの?


527 名前: デフォルトの名無しさん 投稿日: 01/09/20 21:42
1から表示したときは「前100」が省略されるのに
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&to=50
最後まで表示されてても「次100」は省略されない。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&ls=50
これもcurrentでは修正済みだったりする?


528 名前: デフォルトの名無しさん 投稿日: 01/09/20 21:46
PREV_NEXT_ANCHOR有効時はi-mode版もリンクを
「1-」「最新10」「次10」のように簡略化すること希望。


529 名前: デフォルトの名無しさん 投稿日: 01/09/20 21:46
>>526
書き方が悪かったかな。
判定が入っていない時期に、2chで.htmの使用を推奨していたため。

現実には一度も実使用されてない部分だからindex.htmlでいいんだが。


530 名前: デフォルトの名無しさん 投稿日: 01/09/20 21:53
>>527
1より前はありえないから「前100」は省略した。
最後は読んでるうちに増えるかもしれないので「次100」は残しておいた。

取った方がいいですか?


531 名前: 527 投稿日: 01/09/20 21:55
>最後は読んでるうちに増えるかもしれないので「次100」は残しておいた。

なるほど。


532 名前: デフォルトの名無しさん 投稿日: 01/09/20 21:57
でも1000超え時にはさすがにいらないかも。
http://news.2ch.net/test/read.cgi?bbs=news&key=1000822776


533 名前: デフォルトの名無しさん 投稿日: 01/09/20 21:58
CHUNK_ANCHORの「1001-」もいらない気がする。
Over 1000 Threadを読むためだけに「1001-」を
ほしがる人はいないでしょう。


534 名前: デフォルトの名無しさん 投稿日: 01/09/20 22:00
どこかcurrentの動作テストを常にできるところってある?


535 名前: 批判要望から 投稿日: 01/09/20 22:10
196 名前:哀モですが 投稿日:01/09/20 22:04 ID:cr4UsmUk
哀モードからなんですけど、表示が10レスきざみですよね。
で、今の状態だと最初と最新の 10レスしか見れないじゃないですか。
>>も使えない板もあるし。

【前の10レスを見る】のようなんは導入されないのですか?


536 名前: デフォルトの名無しさん 投稿日: 01/09/20 22:32
>>532-533
スレストに失敗することもあったりするからなあ。
「1001-」は、気持ちよくないのは確かだね。

>>534
テスト公開してくれた所が一時期はあったようなんだけど、今は?

>>535
i-modeでどうなると嬉しいかを実感できないので不具合修正にとどめています。
具体的に要望を出す人もいなかったし。

次ぎの10レスでnofirst=trueの方がいいんじゃないか
とか思ってもいじってません。
>>528みたいに具体的な要望をあげておくのがよろしいかと。


537 名前: デフォルトの名無しさん 投稿日: 01/09/20 22:56
COOKIEの残骸を取った。
create_bbs_path()を作って、FORMの出力まわりも整理した。
なんかもっとましな方法がありそうだが、他との統一ということで。

>>524
相対パス対応が欲しいな。(/test/もはずしたい)
SCRIPT_NAMEあたりか?
HTTP_HOSTとSERVER_NAMEの扱いは?


538 名前: デフォルトの名無しさん 投稿日: 01/09/20 22:58
>>537
HTTP_HOSTは「Host:」ヘッダがないと定義されないから
クライアントに依存しないSERVER_NAMEにした。
実際には「Host:」がないと「ブラウザ変ですよん」を喰らっ
たり鯖によっては見ることさえできないから気にし過ぎ
かもしれないけど。


539 名前: デフォルトの名無しさん 投稿日: 01/09/20 23:06
相対パス対応(>>524と違うところのみ)
#define R2CH_HTML_BASE_DEFINE "<base href=\"http://%s%s/%s/%s/\">"

#ifdef ALWAYS_PATH
char const *zz_server_name;
char const *zz_script_name;
#endif

if (path_depth < 3 && zz_server_name && zz_script_name) {
pPrintf(pStdout, R2CH_HTML_BASE_DEFINE, zz_server_name, zz_script_name, zz_bs, zz_ky);
path_depth = 3;
}


540 名前: デフォルトの名無しさん 投稿日: 01/09/20 23:07
書き忘れ。
#ifdef ALWAYS_PATH
zz_server_name = getenv("SERVER_NAME");
zz_script_name = getenv("SCRIPT_NAME");
#endif


541 名前: 夜勤 ★ 投稿日: 01/09/21 00:52
おっと 現在は index.htm だの色々ありますが、完成形は
全部 .html だけの運用になりまする。(.htm は廃止の予定です)

よろしくお願いいたします。


542 名前: デフォルトの名無しさん 投稿日: 01/09/21 03:22
>>524
>>539-540
 まとめてあてた。


543 名前: デフォルトの名無しさん 投稿日: 01/09/21 04:44
>>540,542
HTTP_HOSTが使える時はそちらを使うようにした。

掲示板に戻るは、できるだけ/板名/を使うようにした。
path形式で/iのバグ修正
ALL_ANCHORの記述移動


544 名前: デフォルトの名無しさん 投稿日: 01/09/21 05:02
>>528
#ifdef PREV_NEXT_ANCHOR
#define R2CH_HTML_IMODE_TAIL(path, next) \
" <a href=" path ">次" next "</a>"
#define R2CH_HTML_IMODE_TAIL2(path, ls) \
" <a href=" path ">最新" ls "</a><br>\n"
#else
#define R2CH_HTML_IMODE_TAIL(path, next) \
" <a href=" path ">次の" next "レス</a>"
#define R2CH_HTML_IMODE_TAIL2(path, ls) \
" <a href=" path ">最新レス" ls "</a><br>\n"
#endif

#ifdef PREV_NEXT_ANCHOR
#define R2CH_HTML_IMODE_HEADER_1(title, board, alllink) \
"<title>" title " </title>" \
"</head>" \
"<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \
"<a href=\"" board "\">■掲示板に戻る■</a>" \
" <a href=" alllink ">1-</a>"

#define R2CH_HTML_IMODE_HEADER_2(latestlink, ls) \
" <a href=" latestlink ">最新" ls "</a>"
#else
#define R2CH_HTML_IMODE_HEADER_1(title, board, alllink) \
"<title>" title " </title>" \
"</head>" \
"<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \
"<a href=\"" board "\">■掲示板に戻る■</a>" \
" <a href=" alllink ">レスを最初から読む</a>"

#define R2CH_HTML_IMODE_HEADER_2(latestlink, ls) \
" <a href=" latestlink ">最新レス" ls "</a>"
#endif


545 名前: デフォルトの名無しさん 投稿日: 01/09/21 05:13
i-mode版で不要な</dl>が出力されるバグの修正。

if (!is_imode())
を、dat_out()内の
pPrintf(pStdout, R2CH_HTML_PREFOOTER);
の前に付ける。

今はi-mode版ではcan_simplehtml()がfalseを返すから
関係ないけどout_simplehtml()も修正しておいたほうが
安全かも。


546 名前: デフォルトの名無しさん 投稿日: 01/09/21 05:44
>>544-545
当てた


547 名前: デフォルトの名無しさん 投稿日: 01/09/21 06:14
パス仕様で倉庫落ちしたスレッドのURLを指定したとき、
「そんな板orスレッドないです。」の画面でリンクが切れる。
http://teri.2ch.net/test/read.cgi/accuse/990769720/
存在しないスレの場合の「過去ログ倉庫」へのリンクも同様。
http://teri.2ch.net/test/read.cgi/accuse/990769721/
とりあえず報告だけ。


548 名前: デフォルトの名無しさん 投稿日: 01/09/21 06:23
>>547 修正。
#define R2CH_HTML_ERROR_5_HTML \
"隊長! 過去ログ倉庫で、<a href=\"%s%s\">スレッド %s.html</a> を発見しました。\n"

#define R2CH_HTML_ERROR_5_DAT \
"隊長! 過去ログ倉庫で、<a href=\"%s%s\">スレッド %s.dat</a> を発見しました。<br>" \
"<b><font size=+1 color=red>が</font></b>、しかしまだ html化されていません。残念、待つしかない。\n"

#define R2CH_HTML_ERROR_5_NONE \
"<a href=\"%s" KAKO_DIR "\">過去ログ倉庫</a>にもありませんでした。<br>" \
"問い合わせても見つかる可能\性はほとんどありません。\n"

pPrintf(pStdout, R2CH_HTML_ERROR_5_HTML,
create_bbs_path(), doko, tmp);

pPrintf(pStdout, R2CH_HTML_ERROR_5_DAT,
create_bbs_path(), doko, tmp);

pPrintf(pStdout, R2CH_HTML_ERROR_5_NONE,
create_bbs_path(), zz_bs);


549 名前: デフォルトの名無しさん 投稿日: 01/09/21 06:25
create_bbs_path()は関数名を変更したほうがいいかも。


550 名前: デフォルトの名無しさん 投稿日: 01/09/21 06:41
>>548
当てた


551 名前: デフォルトの名無しさん 投稿日: 01/09/21 06:47
要望なのですが。

鯖移転した板のスレへのリンクをクリックしたとき、現状、
http://news.kakiko.com/mentai/へ飛ばされますよね。
これを、倉庫落ちなどと同様に、新鯖のスレへ飛ばすようには
できないでしょうか?
bbs名はほとんど変わらないと思うので。

夜勤さん(鯖側)の範疇なのかな。


552 名前: デフォルトの名無しさん 投稿日: 01/09/21 06:57
>>477
dat_out_raw()を修正:
pPrintf(pStdout, " %d/%dK\n", end - begin, MAX_FILESIZE / 1024);


553 名前: デフォルトの名無しさん 投稿日: 01/09/21 07:16
>>552
当てた。

あとcreate_parent_link()などを毎回呼ぶのをやめて
一回だけグローバル変数に作って使うようにした。


554 名前: デフォルトの名無しさん 投稿日: 01/09/21 07:58
>>nnリンクを削除する場合に余分な"</a>"が残ってしまっていたバグ修正。


555 名前: デフォルトの名無しさん 投稿日: 01/09/21 08:28
dat_out()とかのlevel引数って使ってないみたいだけど、
バッサリ消してもいいんでしょうか?


556 名前: デフォルトの名無しさん 投稿日: 01/09/21 08:46
>>555
#ifdef USE_INDEXで囲むくらいにしておいたほうがいいかも。
関数の引数として渡されてる部分は難しいけど。


557 名前: デフォルトの名無しさん 投稿日: 01/09/21 08:48
USE_INDEXってのは.idxファイルのサポート用で
ダイジェスト表示とは直接関係ないんだっけ?
だとすると #ifdef USE_INDEX は変だな。
やっぱりバッサリ逝くか?


558 名前: デフォルトの名無しさん 投稿日: 01/09/21 09:12
>>557
#ifdef USE_INDEXで囲った。
USE_INDEXが有効ならダイジェストを呼び出すようになってたので。


559 名前: デフォルトの名無しさん 投稿日: 01/09/21 10:15
sageのメールリンク最適化。

[r2chhtml.h]
#ifdef CREATE_NAME_ANCHOR
(中略)
#ifdef SAGE_IS_PLAIN
#define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \
"<dt>" n " <a name=" l ">" R2CH_HTML_NAME "<font color=blue><b>" nm " </b></font></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>"
#else
#define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \
"<dt>" n " " R2CH_HTML_NAME "<a name=" l " href=mailto:sage><b>" nm " </b></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>"
#endif

#else
(中略)
#ifdef SAGE_IS_PLAIN
#define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \
"<dt>" n " " R2CH_HTML_NAME "<font color=blue><b>" nm " </b></font> " R2CH_HTML_DATE d "<dd>" t "<br><br>"
#else
#define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \
"<dt>" n " " R2CH_HTML_NAME "<a href=mailto:sage><b>" nm " </b></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>"
#endif

#endif

[read.c]
#ifdef SAGE_IS_PLAIN (1箇所だけ)を削除

SAGE_IS_PLAINはいちおう残してみたけどオンにしたほうが
とくなことって何もない気がする。


560 名前: デフォルトの名無しさん 投稿日: 01/09/21 10:27
>>559
これってsageのために囲む " を取っただけ?
圧縮率にも、cgiのバイナリサイズにも逆効果な気がするなあ。


561 名前: デフォルトの名無しさん 投稿日: 01/09/21 10:40
>>560
じゃあ危なそうな文字( " とか空白とか)を含んでない
ときはいつも " を削除するというのはどう?


562 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:28
あちこちにあるtarget="_blank" の「"」って消せるんでない?


563 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:36
_ は " で囲まなくても安全な文字じゃないんだけどすでに #
とか囲まないで書きまくってるしいまさらそんなこと気にしても
確かに仕方ない


564 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:39
HTML 2.0/3.2の仕様上は、 " で囲まなくてもいい文字は
英数字と - と . だけ。
現実のブラウザはもっとはるかにルーズだけど。


565 名前: デフォルトの名無しさん 投稿日: 01/09/21 12:10
HTML 4.0(とそれ以降)の仕様上は、 "" で囲まなくてもいい文字は
英数字と . と - と _ と : の四つ。
現実のブラウザは以下同じ。


566 名前: デフォルトの名無しさん 投稿日: 01/09/21 13:29
>>553
>あとcreate_parent_link()などを毎回呼ぶのをやめて
最大2回しか呼ばないんだけど・・・。
使わないときは、初期化もしないんだけど・・・。


567 名前: デフォルトの名無しさん 投稿日: 01/09/21 16:05
>>562
r2chhtml.hでTARGET_BLANK, TARGET_BODYにマクロ定義した上で
「"」を消してみた。
駄目ならこのマクロ定義直してくれ。


568 名前: デフォルトの名無しさん 投稿日: 01/09/21 16:47
効率とはまったく関係ないけど
REFERDRES_SIMPLE のスペルミスが気になる…
×REFERDRES_SIMPLE
○REFEREDRES_SIMPLE


569 名前: デフォルトの名無しさん 投稿日: 01/09/21 17:48
開発中のみ、平常時間帯でも混雑時の出力をするquery、
Faketime=true(あえて大文字)を提案したいが、どうだろう?
ローカルで確認する時もSETTING_FILEのLIMITを変更するのが面倒だし、
逆はともかく、制限が強くなるだけだから、
そのまま実験サーバーに上げられても不都合はないと思うので。

もしやるなら、zz_GetEnv()の最後でisbusytimeを設定した後に、
#ifndef NDEBUG
 {
  char fake[1024];
  GetString(zz_query_string, fake, sizeof(fake), "Faketime");
  if (*fake == 't')
   isbusytime = 1;
 }
#endif
(read2ch.hに記述するような内容ではないと思う)


570 名前: デフォルトの名無しさん 投稿日: 01/09/21 17:56
それだと、すべてのリンクにFaketime=trueが付くようにしないと
ちゃんと確認できないと思うが…
REFERDRES_SIMPLEとか確認できなさそうだし。
常に混雑時間帯のCGIとか別ディレクトリに用意しておいたら?


571 名前: デフォルトの名無しさん 投稿日: 01/09/21 18:07
いや、嫌なら別に無くてもかまわないけどね。
開発時に出力をCUT&TRYする時に確認を楽にしたいだけだから。
別CGI作って置いといても、read.cをいじっている最中には無意味だし。


572 名前: 571 投稿日: 01/09/21 18:31
「嫌なら」って言い方良くなかった。
「自分以外に需要がなければ」ってことです。

どうしても必要だと思ったら、同意など求めずに勝手にcommitしてますが、
自分の判断だけで決めるのは避けたいので。


573 名前: デフォルトの名無しさん 投稿日: 01/09/21 18:41
>>572
HTTP_HOSTの最後が:80だったら混雑時にするってのでいかが。
http://localhost:80/ とかでアクセスすればいい。

int IsBusy2ch(void)
{
#if 1
 if (zz_server_name && strstr(zz_server_name, ":80") ) return 1;
#endif


574 名前: 571 投稿日: 01/09/21 19:09
どうも、「別のディレクトリに」を勘違いして解釈していた気がする。
テスト用にLIMIT_AMやLIMIT_PMを変えた板を用意して、
bbs=techbusyのような形式でリクエストしてテストすれば、
read.cには手を加えずとも、出力確認程度なら
Faketimeとほぼ同様の効果が得られる、という気がしてきた。
ということで、この提案は取り下げます。

ところで、>>475のHTTP1.1判別なのだが、
もし、If-None-Matchを付加するのがHTTP1.1クライアントのみとしても、
クライアントがHTTPのVer1.0か1.1のどちらでGETしているかを
CGI側で判別することはできるのだろうか?
ちょっと調べた限りではみつからなかった。


575 名前: デフォルトの名無しさん 投稿日: 01/09/21 19:17
>>574
IE5.5 : SERVER_PROTOCOL="HTTP/1.1"
NN4.78 : SERVER_PROTOCOL="HTTP/1.0"
telnetでGETのみ(HTTP指定なし) : SERVER_PROTOCOL="HTTP/0.9"

いや、ちょっといれ忘れたんだけど、0.9かよ。
無理に調べて対応する程のことってあったけ?


576 名前: デフォルトの名無しさん 投稿日: 01/09/21 19:47
0.9は無視していいと思う。
せっかくタグ吐いてもApacheに全部捨てられちゃうだろうし。


577 名前: デフォルトの名無しさん 投稿日: 01/09/21 19:53
知らんかった。
SERVER_PROTOCOLって、Apacheがレスポンスで返すバージョンのことだと思ってた。
どうもありがとう。


578 名前: デフォルトの名無しさん 投稿日: 01/09/21 19:54
で、HTTP/の指定が無いと0.9扱いになると。


579 名前: デフォルトの名無しさん 投稿日: 01/09/21 20:17
一応ソース。
http://hoohoo.ncsa.uiuc.edu/cgi/env.html
・SERVER_PROTOCOL
The name and revision of the information protcol this
request came in with. Format: protocol/revision


580 名前: デフォルトの名無しさん 投稿日: 01/09/21 21:08
みなさんお疲れさまです。

http://teri.2ch.net/test/read.cgi?bbs=accuse&key=988761989&st=768
批判要望板でこのような質問がありました。
http://cocoa.2ch.net/test/read.cgi?bbs=cg&key=975777954&st=265&to=265
http://cocoa.2ch.net/cg/dat/975777954.dat
このスレッドの265レス目が[ここ壊れています]になっているというものです。
datファイルを確認すると、265行目は次のようになっていました。
<><>2001/03/09(金) 00:36<> <>
名前欄、本文欄ともに半角スペースだけのデータです。

現在のbbs.cgiでは、本文欄のデータをdatファイルに送る際に
各行の先頭と末尾に半角スペースを加えています。
しかし、[ここ壊れています]となっているレスが書かれた頃はまだそのような
データの追加はされておらず、本文欄が半角スペースならdatファイルの本文の部分も
半角スペースのままだったと思います。

古いbbs.cgiの頃に書かれた「本文が半角スペースだけのレス」の全てが
[ここ壊れています]になるのかどうかは確認できていませんが、
もしread.cgiの方で本文半角スペースのレスを読み込めないようになっているのでしたら
その点を改良できませんでしょうか。
よろしくお願い致します。


581 名前: デフォルトの名無しさん 投稿日: 01/09/21 21:12
#define R2CH_HTML_CSS_TYPE "<meta http-equiv=Content-Style-Type content=\"text/css\">"
インラインスタイルを使ってないからこれは不要。


582 名前: デフォルトの名無しさん 投稿日: 01/09/21 21:59
>>580
対処した


583 名前: デフォルトの名無しさん 投稿日: 01/09/21 22:34
READ_KAKOを追加
 read.cgiで過去ログ、dat落ちを読む
指定方法
 read.cgi/tech/kako/nnn/ または read.cgi?bbs=tech&key=kako/nnn
 read.cgi/tech/temp/nnn/ または read.cgi?bbs=tech&key=temp/nnn

現在はONにしてあるが、転送量が増加すると思うので
本番導入前に夜勤さん★に考えてもらうこと。

ChangeLog読んでから導入してもらいましょう。


584 名前: デフォルトの名無しさん 投稿日: 01/09/21 23:02
以前は
bbs=tech&key=../kako/nnn/nnnmmm
で読めたものを
負荷の問題から止めてあるだけでしょ。

dat_readのhtml_error()を呼ぶ3つ目ifを削れば、
kakoのサブディレクトリまで指定しないといけないけど、
そのまま読めるはず。


585 名前: デフォルトの名無しさん 投稿日: 01/09/21 23:18
READ_KAKO conditionを設けるのはいいと思うが、
理由があって読めなくしてあるのだから、
OFFにしておくべきだと思う。

PATH仕様への対応も、
「過去ログ読む程度にそこまでやる必要はあるの?」
という気がする。

でも、ディレクトリが移動して
../kako/でアクセス出来なくなる場合もあるから
その場合に備えて対応はしておくのはいいかもね。


586 名前: デフォルトの名無しさん 投稿日: 01/09/21 23:34
まあ、>>206 >>237 みたいな話もあるし、
過去ログの指定先がどこになるかわかんないから、
kako/nnnで統一できた方がいいでしょ。

PATHで、../kako/を指定されるのは困るってのもある。
read.cgiが扱うなら、提供するかもしれない。

どれもこれも夜勤さん次第。


587 名前: デフォルトの名無しさん 投稿日: 01/09/21 23:46
そういえば、st=などを「過去ログを発見しました」に透過的に渡して、
転送量を節約しようって話もあったね。


588 名前: 名無し 投稿日: 01/09/21 23:49
>>582さん
ありがとうございます。
新バージョン導入待ちですね、、


589 名前: デフォルトの名無しさん 投稿日: 01/09/21 23:52
FTP鯖内のpub/MP3ってなんだろうね?


590 名前: デフォルトの名無しさん 投稿日: 01/09/21 23:58
だからOFFにしとけっての。


591 名前: デフォルトの名無しさん 投稿日: 01/09/22 00:04
>PATHで、../kako/を指定されるのは困るってのもある。
>>585はそこまでする必要があるのかって話でしょ。

>どれもこれも夜勤さん次第。
だから、今まで過去ログをあえて閲覧できないようにしていたんでしょ。


592 名前: デフォルトの名無しさん 投稿日: 01/09/22 00:35
READ_KAKOは、必要があれば夜勤さんがONにすればよいだけなので、
現状に合わせてOFFにします。


593 名前: デフォルトの名無しさん 投稿日: 01/09/22 01:42
>>587
READ_KAKO_THROUGHとして実装した。

>>591
やるからには、ちゃんとやる。
ALWAYS_PATHを採用し、全読み以外を提供するならやらない訳にいかない。

html化された過去ログには広告ついてるやん。どうすんだ。


594 名前: デフォルトの名無しさん 投稿日: 01/09/22 01:52
意味がわかりません


595 名前: デフォルトの名無しさん 投稿日: 01/09/22 02:12
>>594
わからないのは、↓のことかな。
>ALWAYS_PATHを採用し、全読み以外を提供するならやらない訳にいかない。

read.cgi?bbs=tech&key=../kako/999/999xxxで表示したときに
ALWAYS_PATHだと、中のリンクが使い物にならなくなるの。

全部読むことしか提供しなければ、リンクが機能しなくても
なんとかなるけど、範囲指定を提供するならリンクも機能して
欲しいよね。


596 名前: デフォルトの名無しさん 投稿日: 01/09/22 04:42
以前、過去ログがread.cgiで読めた頃から
>read.cgi?bbs=tech&key=../kako/999/999xxxで表示したときに
>中のリンクが使い物にならなく
なってたけど、
苦情は見たことなかったな。
html化した後のリンクの苦情はあったね。
アンカー振って欲しいって。

kakoが読めなくて苦情が出た事は知ってるけどさ。


597 名前: デフォルトの名無しさん 投稿日: 01/09/22 05:27
こんなの作った。read2ch.hはいじってない。

△CUT_TAIL_BLANK
直前の文字がShift_JISの1バイト目であるかを厳密に判定する事により、
名前欄とメール欄の末尾の空白、及び<br>タグ直前の空白をほぼ消滅させる。

▲STRICT_ILLEGAL_CHECK
(意図的な)文字化け防止のため、
'<',"http://"の直前の文字がShift_JISの1バイト目かを厳密に判定し、
必要ならば空白を加える。(fusianasanのbold化け対策と似た処理)
コスト(負荷)がかかる割に転送量減少には貢献せず、
仮に文字化けしてもその部分だけで留まり、大きな影響はないため、OFF推奨。

/* 名前末尾・メール末尾・<br>タグ前・レス末尾の空白を
(可能なら)全て削除する */
#define CUT_TAIL_BLANK

/* '<',"http://"の直前の文字を調べ、必要ならば空白を加える。 */
/* #define STRICT_ILLEGAL_CHECK */


598 名前: デフォルトの名無しさん 投稿日: 01/09/22 06:09
kakoの読み出しとtempの読み出しは別々のconditionに
すべきだと思う。現在kakoは読めるけどtempはdatさえ
読めないのは理由のないことではない。
もちろんデフォルトは両方ともOFF。


599 名前: デフォルトの名無しさん 投稿日: 01/09/22 06:38
>>598 変更点。
▲READ_TEMP
(READ_KAKO定義時のみ有効)
html化待ちのdatもread.cgiで読む。

先頭に追加:
#ifndef READ_KAKO
#undef READ_TEMP
#endif

main():
#ifdef READ_KAKO
if (read_kako[0] == 'k') {
char buf[256];
kako_dirname(buf, zz_ky);
sprintf(fname, KAKO_DIR "%.20s/%.20s.dat", zz_bs, buf, zz_ky);
#ifdef READ_TEMP
} else if (read_kako[0] == 't') {
sprintf(fname, TEMP_DIR "%.20s.dat", zz_bs, zz_ky);
#endif
} else
#endif

html_error():
#ifdef READ_TEMP
pPrintf(pStdout, R2CH_HTML_ERROR_5_TEMP,
zz_cgi_path, zz_bs, "temp/", tmp, tmp);
#else
pPrintf(pStdout, R2CH_HTML_ERROR_5_TEMP,
tmp);
#endif


600 名前: デフォルトの名無しさん 投稿日: 01/09/22 12:45
>>599 当てた
>>597 config.txt, ChangeLog, read2ch.h にも反映した


601 名前: デフォルトの名無しさん 投稿日: 01/09/22 15:50
>>593
READ_KAKO_THROUGHの実装ってcvsに入ってないみたいな。


602 名前: デフォルトの名無しさん 投稿日: 01/09/22 16:20
>>601
CUT_TAIL_BLANK作った人が消したようだ。
入れなおし中


603 名前: 602 投稿日: 01/09/22 17:05
>>602
READ_KAKO_THROUGH復活&整理した


604 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/22 18:18
いつも お世話になっています。
区切りのよさそうなところで、また新しい version を入れて見たいのですが、
どんなもんでしょうか?


605 名前: デフォルトの名無しさん 投稿日: 01/09/22 18:45



Rubyはクソです。ゴミ箱逝きです。

いじょ
この発言をコピペしていただければ幸いです。


606 名前: デフォルトの名無しさん 投稿日: 01/09/22 18:48
>>605は誤爆か?


607 名前: デフォルトの名無しさん 投稿日: 01/09/22 19:09
>>604
お疲れ様です〜
区切りは良いんじゃないでしょうか。

5.22からの大まかな変更は:
・i-mode関連の修正複数
・rawモードの末尾に余分な出力があったバグ修正, 結果書式に上限サイズ追加
・行末の空白を削除
・過去落ち画面のリンクがおかしかったバグ修正
のほか、新機能として:
ALWAYS_PATH: read.cgiからリンクされるレスへのリンクがすべてパス形式になる
が有効になっています。
また、
READ_KAKO: 過去ログをread.cgiで参照可能にする
READ_TEMP: 過去落ち前datも参照可能にする
READ_KAKO_THROUGH: 範囲指定を過去落ち/過去落ち前にも継承する
という新機能もありますが、こちらは無効になっています。

詳しい修正内容はChangeLogをご覧下さい。


608 名前: 592 投稿日: 01/09/22 19:29
>>601-603
申し訳ないです。ごめんなさい。


609 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/22 20:20
じゃ 入れよーと思います。
どこから 落とせばいいのかな?


610 名前: デフォルトの名無しさん 投稿日: 01/09/22 20:23
>>609
いつもの
http://www.gedoh.org/aki/2ch/current/bbs/
が復活してま〜す


611 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/22 20:25
了解。


612 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/22 20:31
choko に read,.cgi ver 5.23 いれましたー。


613 名前: デフォルトの名無しさん 投稿日: 01/09/22 20:33
http://choco.2ch.net/dancesite/SETTING_R.TXT

FORCE_304_TIME=0
とか書いておくと、この板のみ実況対策機能が無効になります。


614 名前: デフォルトの名無しさん 投稿日: 01/09/22 20:34
cvsにtag YAKIN20010922 打っときました


615 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/22 20:37
>>613
うーむ、、、
なんせ 一秒間に数十回とか呼ばれる cgi なんで、極力ファイルの参照は
行いたくないというのが本音だったりします。

そのへんは、今後も考えなきゃならないところですが、、


616 名前: デフォルトの名無しさん 投稿日: 01/09/22 20:40
なるほど…
次バージョンからはUSE_SETTING_FILEはデフォルトで
オフにしておきましょうか…


617 名前: デフォルトの名無しさん 投稿日: 01/09/22 21:11
>>613-616
こんなもんでも作ってごく一部のみsettingを変えられるようにしましょう。
実況板といえども、FORCE_304_TIME=0はやめといた方がいいと思う。

[read2ch.h]
#define SPECIAL_SETTING \
 { "saku", "LINKTAGCUT=0" }, \
 { "dancesite", "FORCE_304_TIME=3" },

[read.c]
struct _setting {
 char *board_name;
 char *settings;
} special_setting[] = {
 SPECIAL_SETTING
 { NULL, },
};


618 名前: デフォルトの名無しさん 投稿日: 01/09/22 21:26
ttp://piza2.2ch.net/news3/kako/100/1000336331.html
予想はしていたけど、過去ログが kako/100/ に逝ってるyp。


619 名前: デフォルトの名無しさん 投稿日: 01/09/22 21:33
http://piza2.2ch.net/test/read.cgi/news3/1000336331/
さらに倉庫を見つけるのに失敗してるyp。


620 名前: デフォルトの名無しさん 投稿日: 01/09/22 21:34
SETTINGFILEをOFFにすると、
メモリ参照が即値になり、ファイルを探さなくなるので
負荷は少し減りますね。
板別に設定が出来なくなってしまうので、
鯖別に設定を持つだけになってしまうのと、
状況をみて外から簡単に変更するというのが出来なくなるのがデメリットですか。

でも、ファイルの負荷を考えるなら、まず、mmapのパラメータ、
 zz_mmap_size = zz_fileSize + 0x10000,
 PROT_READ | PROT_WRITE,
 MAP_PRIVATE,
を変更するほうが先だと思います。


621 名前: 名無し 投稿日: 01/09/22 21:35
iモードの動作を何とかしてください。
機能をWEB版と同じにして欲しい。


622 名前: デフォルトの名無しさん 投稿日: 01/09/22 21:36
板別の設定は>>617のような方法で何とか…
簡単に変更できなくなるのは同じですが今まで一度も
使われていないようですし。

>でも、ファイルの負荷を考えるなら、まず、mmapのパラメータ、
> zz_mmap_size = zz_fileSize + 0x10000,
> PROT_READ | PROT_WRITE,
> MAP_PRIVATE,
>を変更するほうが先だと思います。

どのように変更すればいいんでしょうか?


623 名前: 名無し 投稿日: 01/09/22 21:43
あとCSS版を早く入れて欲しいです。
ブラウザによってAAがズレると言ってました。


624 名前: デフォルトの名無しさん 投稿日: 01/09/22 21:44
AAのズレとCSSは関係ないと思いますが…。
CSS使用はfusianasanや<a name>の対応に問題があって
無効にされています。過去ログ参照。


625 名前: デフォルトの名無しさん 投稿日: 01/09/22 21:45
>>621
どの機能が欲しいんですか?
全機能だと画面につらいと思うんですが。

>>623
CSS版は問題があって無効にしてるんじゃなかったっけ。


626 名前: デフォルトの名無しさん 投稿日: 01/09/22 21:53
CHUNK_ANCHORをi-modeでやったら「1- 11- (以下100個続く)」
ということになってほとんど不可能だと思われ
RELOADLINKは実装済み。
したがってPREV_NEXT_ANCHORでは。


627 名前: ◆D69Zsbfg @夜勤 ★ 投稿日: 01/09/22 22:03
ひとつ 提案なんですが、英語版とか何とか語版とかつくれたらなー
なんて考えています。

各文字列を #define とかしちゃって、

おひまな時でよいので、そんなのが実装できるように ちよっと考えてみてください。
で、 bbs.cgi で 二バイト系の文字はじけば、英語のみの板ができるのでは?
と思っています。 英語でお祭り 2ちゃんねる vs Yahoo.com とか、


628 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:07
文字列はすでにほとんどr2chhtml.hに追い出されてるから
あとは英語版を用意すればいいかな?


629 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:10
>>619
5.22でpath形式の時のバグです。
5.23では直っているはず。


630 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:13
>>622
間違いなく変更してよいのが、
 zz_map_size = zz_fileSize,
 PROT_READ,
の2つです。
(他のプロセスによって書きかえられなければ)オーバーランしないように
なっているし、書き換えもしていないはずです。

で、あぼーんとの関係で若干問題があるのが
 MAP_SHARED
だけど、あぼーんとの関係で
・サイズが詰められたことで、行末の判定を誤る
・その結果、行末が見つからずにオーバーランする
という可能性が僅かにあるものの、
MAPしている間に書き換えが起こるのは滅多に無いと思うし、
それが起こる度合いを考えれば、
その時は素直に500エラーで良いのではと思います。
(実は、負荷的には、これが一番効果があると過去ログにあった気もします)


631 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:17
>>629
いや、そのバグはリンクは出るけど正しくリンクしていない
というものだったはず。
リンクそのものが出ないというのは別のバグでしょ。


632 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:24
gzip_flagが0の時は、setvbuf系を使って、
出力系のwrite回数を減らすのも手だね。
ZLIBではあまり効果がないかな。


633 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:25
1が表示されないのはともかく、次の10レスが表示されない。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=1&to=10&imode=true&nofirst=true
http://piza2.2ch.net/test/read.cgi/tech/1000035521/1-10in
比較対象
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&st=1&to=10&imode=true
http://piza2.2ch.net/test/read.cgi/tech/1000035521/1-10i

最新版では直ってるかな?


634 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:29
>>633 直ってないね。
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/1-10in
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/1-10i


635 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:36
>>633-634
それは、st=1でnofirst=trueの時に1が表示されないのが原因
1-10が内部で2-10扱いになり、次10が出なくなっている。

&st=1&to=10&imode=true&nofirst=true
どこからか、↑みたいにリンクされてるの?


636 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:37
名無し娘。 ◆vP.bOZFQさん最近見かけないな…
そろそろまとめをきぼーんしたいけど


637 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:38
>>635
11〜20の10個でもやはりnofirstだと次10が出てないみたい。
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-20in
比較用: nofirstなし
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-20i


638 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:41
iモード用じゃなければ出てくるね
やっぱりバグでは
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-20n
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-20


639 名前: イラストに騙された名無しさん 投稿日: 01/09/22 22:42
http://choco.2ch.net/test/read.cgi/dancesite/1001154756/11-in
実際には 11個 表示されますね。そこらへんがポイントかなぁ・・・


640 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:44
ところで順番は in でいいの?
5.22だと「&imode=true&nofirst=true」の順だったけど
5.23では「ni」になってる。
5.23はURLの生成を集中的に行ってるからたぶん一貫
していて問題ないとは思うけど


641 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:53
英語版は、まだ誰も作り始めてないだろうけど、
r2chhtml.hがこれ以上#ifdefになるのはちょっと嫌なので、
read.cで
#ifdef ENGLISH
#include "r2chhtml_en.h"
#else
#include "r2chhtml.h"
#endif
をきぼー。


642 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:53
>>637-638
次10は、混雑時の100レス制限と同じ方式で出している。
表示した個数で出すか出さないかを決めているのだから、
nofirst=trueでは、1個減って出なくなる。

imode用には、終点を指定しない方がいいね。
/1-i とか /11-ni とかに。

でも、nofirst=trueを付けるのは誰?
read.cgiは最新とか新着にしか付けてないはずなんだけど。


643 名前: デフォルトの名無しさん 投稿日: 01/09/22 22:56
imodeは1が長いと嫌なので、
スレへのリンクにnofirstをつけることは結構あるよ。


644 名前: デフォルトの名無しさん 投稿日: 01/09/22 23:06
>>642
iモード版じゃなければ混雑時でも出る。
http://choco.2ch.net/test/read.cgi/ainotane/1000491518/101-200
http://choco.2ch.net/test/read.cgi/ainotane/1000491518/101-200n


645 名前: デフォルトの名無しさん 投稿日: 01/09/22 23:17
>>643
そこらにあるリンク(imode用indexとか)やスレへのリンク(ls=10扱い)、
cgiが出す次10では問題は出ないよ。

で、st=11&to=20などにnofirst=tureをわざわざ付けて、
次10が出ないというのは、バグではなくて要望でしょ。

そうか、だからi-modeでも同じに機能にしてって要望が来るのか。

>>644
それ、混雑時の次100じゃありません。
PREV_NEXT_ANCHORの次100です。

ようするにimodeでPREV_NEXT_ANCHORが付けば全て解決か。


646 名前: デフォルトの名無しさん 投稿日: 01/09/22 23:20
バグだろ


647 名前: デフォルトの名無しさん 投稿日: 01/09/22 23:21
どっちでもいいから出るようにしてほしい


648 名前: デフォルトの名無しさん 投稿日: 01/09/22 23:21
以前はちゃんと出ていたものが出なくなったんだから。


649 名前: デフォルトの名無しさん 投稿日: 01/09/22 23:25
「すぐ直せ」「誰のせいだ」と
責めているわけではないのに、
なんか、
「どこからもリンクされていないから」
「バグではなくて要望だ」
って、何なんだろ、一体。


650 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/22 23:27
>>636
御無沙汰してましてすいませんです。まとめまするー。


651 名前: デフォルトの名無しさん 投稿日: 01/09/22 23:30
>>649
プログラマの防衛本能かも(w


652 名前: デフォルトの名無しさん 投稿日: 01/09/22 23:45
あんまり関係ないことで、うるさくしてスマソ。

「どこからもリンクされていないから」は、状況の把握。
そんなことはないはずと思っているのと違うから確認している。

「バグではなくて要望だ」は、プログラマとしてのプライド。
そんな改悪はしてないってこと認めて欲しいと思っている。
まあ、こっちは防衛本能と言われてもしかたがない。

「最初から読む」で出てなかったって責めないでね。
cvsに入ったときからそうなってたんだから。直したのも俺だし。

ほんじゃ、imode用のPREV_NEXT_ANCHORやっとくわ。


653 名前: デフォルトの名無しさん 投稿日: 01/09/22 23:53
ついでに聞いとくけど、次10でnofirst=trueの方がいいのかな?
その方がよさげなんだけど、要望として上がってるのを見たこと無いんだけど。

もう一つ、次10で読むとき前の最後のレスが次にも出てるんだけど
出さない方がいいかな?


654 名前: デフォルトの名無しさん 投稿日: 01/09/23 00:00
>>653
>ついでに聞いとくけど、次10でnofirst=trueの方がいいのかな?
>その方がよさげなんだけど、要望として上がってるのを見たこと無いんだけど。

iモードの場合1が大きいと読めなくなって邪魔というのを
過去ログで見た気がする。

>もう一つ、次10で読むとき前の最後のレスが次にも出てるんだけど
>出さない方がいいかな?

ブラウザ版の仕様に合わせて、出さないようにしたほうが
いいと思う


655 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/23 00:06
★ftp鯖 ftp://readcgi.dyndns.org/incoming/

★condition一覧/SETTING_R.TXT記述一覧 変更したら随時更新してね♪
 http://www.gedoh.org/aki/2ch/current/bbs/config.txt


実装・検討待ちの案一覧 @654

ETag(もう実装完了?)
 >>137 >>143 >>167-169 >>173 >>229-232 >>438

dat,temp,kako
 datの一部についてのLastModを求める
 ツール作者さんに対応お願い
  http://www.gedoh.org/aki/2ch/current/bbs/read2ch.h 内の #define RAWOUT 直前に仕様書あり

imodeでもいろいろ使いやすくする
 >>633-635 >>637-640 >>642-645 >>652-654

mmapまわりを軽く
 >>620 >>630

板別設定(内部で)
 >>617

多言語対応
 >>627 >>628 >>641

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

deflate
 そのうち対応(実用困難らしい >>393

mmap時にlockすべきか(bbs.cgi側と協働で作業できるときに)
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=139&to=139&nofirst=true
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=425&to=425&nofirst=true
 >>406


656 名前: デフォルトの名無しさん 投稿日: 01/09/23 00:09
>>655
ETagに関してはどっかにHTTPバージョンをどうやって
取得するの? って話がなかったっけ?


657 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/23 00:19
>>656
>>574-579 あたりじゃまだ解決してないのかな。。。
それとは別の話だったりして(汗


658 名前: デフォルトの名無しさん 投稿日: 01/09/23 00:21
>>657
案は出てますけどまだ実際のコードは入ってないみたいです。
need_etag()参照。


659 名前: デフォルトの名無しさん 投稿日: 01/09/23 00:26
>>654
ブラウザ版で「出さなくなった」のはCHUNK_ANCHORに合わせるために
やむなくやったことなんだ。
前の一個が見えた方が俺には嬉しかったんだけど、文句出てないね。

imode使いの人に具体的な要望を出して欲しいんだよね。
次10だせやゴラァと、前10が欲しい以外で具体的なの見たことない。
俺が見逃してるだけかな?

box出して番号いれたらジャンプできるとimodeで便利かなとか思ったり
するんだけどね。
N210i使ってるけどi-mode契約してないから、実際の操作感が全然わからん。


660 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/09/23 00:40
>>658
フォローありがとうございます。

...ということで、ETag に関して >>656-658 もよろしくです>みなさま


661 名前: デフォルトの名無しさん 投稿日: 01/09/23 01:17
前スレよりコピペ。iモード使いはnofirst=trueのほうが
ありがたいと思う確率が高いと思われ

123 :- :01/08/29 02:07 ID:lLO5yHHU
imode=true のとき、先頭に [最新レス10] が出るけど、ls=10 は不要。

その変わりに、nofirst=true が付いてたほうが使いやすいと思うのだけど
いかがですか?

125 :名無しさん@MZ-2000 ◆Ewz1Jtuw :01/08/29 02:13 ID:nZtnifzg
>>123
nofirst=true に激しく同意。
imode 時に 1 がデカイと後ろが見れなかったりするんで
1 いらないです。


662 名前: デフォルトの名無しさん 投稿日: 01/09/23 01:25
>>661
抜き出しありがとう。

123は、最新レス10は/niにしなさいってことだな。
ほっとけば、ls=10だからl10は削れると。


663 名前: デフォルトの名無しさん 投稿日: 01/09/23 02:35
imode用PREV_NEXT_ANCHORをcommitした。
つでに、1-100nでのnofirst=trueを無効にした。
/nだけ/2-になるが、まあいいか。(w

imodeの現状は、
上:■掲示板に戻る■ 1- 最新10
下:次10 前10 最新10

imodeの人に意見求む。
最新10は上下に必要ですか?
次10 前10 最新10の順番はこれでいいですか?


664 名前: デフォルトの名無しさん 投稿日: 01/09/23 05:25
>>641
ENGLISH が定義されていると r2chhtml_en.h をincludeし、
日本語リテラルで残ってたものを r2chhtml.hに移動した。
SJIS判定部分のような日本語処理部分がまだ残ってるけど。
あと、TZ環境変数の設定内容はread2ch.hに移動(CONFIG_TIMEZONE)。


665 名前: デフォルトの名無しさん 投稿日: 01/09/23 05:46
>>664
please add HDRS r2chhtml_en.h in Makefile
please "cvs add r2chhtml_en.h" and commit

TZを下手にいじると混雑時の判定で困るかも。


666 名前: 665 投稿日: 01/09/23 05:54
あ、英語化はしてないのかな。
とりあえず、r2chhtml.hのコピーをcommitしておいた方がいいんじゃない?


667 名前: 664 投稿日: 01/09/23 07:26
コピーするのもまた、まだ定義増えたりするときに保守がややこしくなるので
実際に着手するまではコピーしないほうがいいと思って。
HDRSへの追加と、ダミーファイルの追加だけはやっときました。


668 名前: 664 投稿日: 01/09/23 07:31
>>665
混雑時の判定にもまぎらわしくないように、TZ定義はread2chhでLIMIT_PM/AMの
定義に並べて置いてます。


669 名前: デフォルトの名無しさん 投稿日: 01/09/23 08:59
>>617
readSettingFileを以下のように修正:
if (fd >= 0) {
 :
}
となってる部分を
if (fd < 0)
 return;

に変更

char const *cptr;
char const *endp;
struct stat st;
を関数の先頭に移動

#ifdef USE_INTERNAL_SETTINGS
void *mmptr;
struct _setting setting;
for (setting = special_setting; setting->board_name; setting++) {
 if (!strcmp(bbsname, setting->board_name))
  break;
}
if (!setting->board_name)
 return;
mmptr = setting->settings;
st.st_size = strlen(mmptr);
#else
char fname[1024];

st.st_size = read(fd, mmptr, 8192);
#endif /* USE_MMAP */
#endif /* USE_INTERNAL_SETTINGS */

関数末尾の#ifdef USE_MMAP〜#endifを
#ifndef USE_INTERNAL_SETTINGSで囲む。

注意点は、settingsの文字列は>>617そのままではなくて
最後に'\n'が必要なこと。


670 名前: デフォルトの名無しさん 投稿日: 01/09/24 01:06
>>630
mmapの変更(サイズ, READONLY, SHARED)、
>>632
setvbufを一応、
>>574-579
ETagでHTTP/1.1チェック、
>>669
USE_INTERNAL_SETTINGS

を組みこんだ。


671 名前: イラストに騙された名無しさん 投稿日: 01/09/24 01:12
>619 >629 >631
ver5.23 でも、過去ログ見つけるの失敗してます。
ttp://choco.2ch.net/dancesite/kako/100/
ttp://choco.2ch.net/dancesite/kako/100/1001164016.html
ttp://choco.2ch.net/test/read.cgi?bbs=dancesite&key=1001164016
ttp://choco.2ch.net/test/read.cgi/dancesite/1001164016/


672 名前: デフォルトの名無しさん 投稿日: 01/09/24 01:41
結局単純に先頭3桁取ればいいのか?

#ifdef NEW_KAKODIR
#else
void kako_dirname(char *buf, const char *key)
{
sprintf(buf, "%03d", tm);
}
#endif

こんなconditionでも組み込んでとりあえずOFFに
しておきましょうか。


673 名前: デフォルトの名無しさん 投稿日: 01/09/24 01:48
某2chブラウザを作っているものですが、raw=0.0のCGIパラメータを渡して
DATを取得すると、一番最後の部分に本来の(非rawの)モードで出力するHTMLの
内容が付加されてしまっているようです。

1行目に出力されるサイズを見て無視できないこともないのですが、
やはり余計なデータは転送しない方が良いと思います。

やっと全板にrawモード対応のread.cgiが入り、これから各2chブラウザの
対応も進むと思いますので、是非対応の方お願いします。


674 名前: デフォルトの名無しさん 投稿日: 01/09/24 02:08
>>673
ver5.23では直ってるはず。過去ログ見れ。


675 名前: イラストに騙された名無しさん 投稿日: 01/09/24 02:09
500番あたりの発言ね。


676 名前: デフォルトの名無しさん 投稿日: 01/09/24 02:09
>>672
いつ頃、どういう形で移行するかわからないので、両対応しておいた方がいいと思います。
ということで、過去ログ検索関数製作中。

>>673
本当に申し訳ありません。
ver5.22のバグで、ver5.23(chocoにインストール済み)では修正されています。
サイズを見て後ろは捨ててください。
詳しくは、>>498-502を見てください。


677 名前: デフォルトの名無しさん 投稿日: 01/09/24 02:18
作ってcommitする寸前だったけど、どう?
/* 旧形式 /bbs/kako/100/1000888777.htmlに対応。
dokoにpathを作成する
.htmlだけで充分だとは思うが・・ */
static int find_old_kakodir(char *doko, const char *key, const char *ext)
{
 struct stat CountStat;
 sprintf(doko, KAKO_DIR "%.3s/%.50s.%s", zz_bs, key, key, ext);
 return stat(doko, &CountStat) == 0;
}

html_error()
  if (!stat(doko, &CountStat)) {
→ if (!stat(doko, &CountStat) || find_old_kakodir(doko, tmp, "html")) {


678 名前: デフォルトの名無しさん 投稿日: 01/09/24 02:26
>>677
READ_KAKOのfnameを作成してやらないといけないので、
datを発見した所をdokoに入れてくれる形のものも必要です。


679 名前: デフォルトの名無しさん 投稿日: 01/09/24 02:33
あ、それで充分ですね。
if(!find_old_kakodir(fname, tmp, "dat"))
 新形式fname作成
でOKかな。


680 名前: 673 投稿日: 01/09/24 02:34
>>674 >>676
すんません、思いっきりガイシュツでしたか。申し訳ないです。

ところでsubject.txtの圧縮転送もサポートしてもらえると、
スレ一覧更新時の転送量削減(ブラウザにとってはレスポンスup)が
見込めるのですが、どうでしょうか。

bbspinkだけはmod_gzipが使えるのですが、それ以外は相変わらず
無理みたいなので。


681 名前: 677 投稿日: 01/09/24 03:00
よければ、誰かcommitしちゃってください。


682 名前: デフォルトの名無しさん 投稿日: 01/09/24 03:08
>>681
もうすぐcommitします。やっとテストが終わった。
rawモードのエラーでdokoを渡してますね。
そのままdokoを出してますが、最終的にはkako/nnnnnにすることに
なると思います。
read.cgiが過去ログ読みにならないと変えられないかな。


683 名前: デフォルトの名無しさん 投稿日: 01/09/24 03:22
>>680
ダイジェストを部分的に復活させましょうか。
http://piza2.2ch.net/test/tech/?raw=0.0
で tech の subject.txt を生のまま返す。


684 名前: 683 投稿日: 01/09/24 03:22
間違い。
http://piza2.2ch.net/test/read.cgi/tech/?raw=0.0


685 名前: デフォルトの名無しさん 投稿日: 01/09/24 03:31
>>683 こうすればいいはず。

/* スレ一覧を取りに逝くモード */
if (1 <= path_depth && path_depth < 3
#ifndef USE_INDEX
&& rawmode
#endif
) {
sprintf(fname, "../%.256s/subject.txt", zz_bs);
zz_fileLastmod = getFileLastmod(fname);
}


686 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/09/24 04:02
ん?
この状態は、切がいいのかな?


687 名前: デフォルトの名無しさん 投稿日: 01/09/24 04:17
>>686
ご苦労様です。
一応、問題ないはずです。

主な変更点は、
・内部に板ごとの設定を指定できる。
・imodeで前10次10が付いた。
・現在の過去ログの場所に対応した。
入れるときに、read2ch.hのSPECIAL_SETTINGの内容を
ちょっと検討してみてください。


688 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/09/24 04:32
今日はもうおねむになったので
急いては事を仕損じるということで
明日の夜(つーか今晩か、もう)やりまーす。


689 名前: デフォルトの名無しさん 投稿日: 01/09/24 08:13
>>685
あてた
しかしsubject.txtのときにはraw=パラメータは0.0に限定して使うように注意かな。


690 名前: デフォルトの名無しさん 投稿日: 01/09/24 14:45
「2ちゃんiモード」にある
「頁BOTTOM」 (先頭にあり、末尾にある#BTMへ)と
「頁TOP」(末尾にあり、先頭にある#TOPへ)って
iモードに限らず便利そうな気がするけどどう?


691 名前: デフォルトの名無しさん 投稿日: 01/09/24 17:02
>>680
いまだに bbspink 以外で mod_gzip が使えないのはなんで?
批判要望板の案内では

>これら文字化けの不具合は、MOD_GZIPが導入されると同時に解消されます。
>※来週末になる見通しです。

って前から書いてるのに.


692 名前: デフォルトの名無しさん 投稿日: 01/09/24 19:24
>>690-691
スレ違い


693 名前: うーん 投稿日: 01/09/24 20:19
agew


694 名前: デフォルトの名無しさん 投稿日: 01/09/24 20:21
>>1-10
のような1を含む複数レスへのアンカーで1が消えてしまいます。
おそらく複数レスへのアンカーの際nが無条件に付加されてるのだと思いますが、
これは仕様でしょうか?


695 名前: デフォルトの名無しさん 投稿日: 01/09/24 20:40
>>694
バグです。create_link()の
if (nf && (st!=to || ls)) /* 単点は'n'不要 */

if (nf && (st!=to && st > 1 || ls)) /* 単点または1を含むときは'n'不要 */
に変えればいいと思われ


696 名前: 批判要望より 投稿日: 01/09/24 22:05
329 :名無しさんの声 :01/09/24 22:03 ID:f9UAKBCQ
>>328
要望なんですけれども、長すぎるレスは自動的に
カットしていただきませんかね?
続きが読みたい場合は「クリック」みたいに
していただければ非常にうれしいのですが・・・

よろしくおねがいします


697 名前: デフォルトの名無しさん 投稿日: 01/09/24 22:07
696はiモード版の話です。

iモード版のメニュー
http://teri.2ch.net/test/read.cgi/accuse/968935230/329


698 名前: デフォルトの名無しさん 投稿日: 01/09/24 22:08
>>692
690はスレ違いじゃないぞ。
でも、下にアンカーを色々出しているから、なくても困らんと思うが。
混雑時はわざと不便にしてあるから、頁TOPつけると転送量増えるんじゃないかな。

>>694-695
最新版では、1-10nでも1を表示するようになっています。
矛盾した指定を出すなって言われれば、そうではあるが。


699 名前: デフォルトの名無しさん 投稿日: 01/09/24 22:20
697のリンクをクリックしたら簡易表示になったけど、
違うスレから呼ばれた時も簡易表示になるんでしたっけ?


700 名前: デフォルトの名無しさん 投稿日: 01/09/24 22:23
>>698
1バイト減らせるし、矛盾した指定は出さないほうがいいと思う。
5.22では&nofirst=trueを出してなかったんだし。


701 名前: デフォルトの名無しさん 投稿日: 01/09/24 22:26
http://teri.2ch.net/test/read.cgi/accuse/968935230/330
330 :329 :01/09/24 22:06 ID:f9UAKBCQ
>>329
記号の羅列もカットしていただけると非常にうれしいです・・
携帯からだとAA見ても訳がわからないので、、、


702 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/09/24 22:48
投稿内容を改変するような仕組みは、あまりよくないと思います。
一律に長いのを省略する というのならば良いかも知れませんが、

今回の一連の改造には含めないことにしましょう。


703 名前: デフォルトの名無しさん 投稿日: 01/09/24 22:54
>一律に長いのを省略する というのならば良いかも知れませんが、

ということは>>696はOK?
bbs.cgiでも
(省略されました・・全てを読むにはここを押してください)
はやってますし。下手に改造すると無限ループになりそうだけど。


704 名前: デフォルトの名無しさん 投稿日: 01/09/24 23:02
>>699の件
 ref = getenv("HTTP_REFERER");
 if (!ref || !*ref)
  return false;
 return true;

なんだこれ?
どういう理由でこんなふうにしたんだ?
他のスレへのリンクだったら、
その後に全部読んでみたい等に備えて
カットしないようになっていたはずなのに。


705 名前: デフォルトの名無しさん 投稿日: 01/09/24 23:07
>>704
ゴミじゃないの? その後を無効にする意図があるなら
conditionになってるはず。削除しちゃっていいと思われ
あと>>695もcommitきぼん。


706 名前: デフォルトの名無しさん 投稿日: 01/09/24 23:29
>>705
あてた。


707 名前: デフォルトの名無しさん 投稿日: 01/09/24 23:39
夜勤さん見てたらそろそろお願いします。

>>687以降の変更点は
http://piza2.2ch.net/test/tech/?raw=0.0 で圧縮された
 subject.txtを返す。
・>>nnnが1を含んでいるときは'n'を出力しない。
・他スレからのリンクは簡易表示にしない。
です。
SPECIAL_SETTINGは、削除依頼板で>>nnnのリンクを
カットしないようになっています。


708 名前: また間違えた 投稿日: 01/09/24 23:39
http://piza2.2ch.net/test/read.cgi/tech/?raw=0.0 で圧縮された
 subject.txtを返す。


709 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/09/25 00:40
はーい、やりますー。

http://www.gedoh.org/aki/2ch/current/bbs/
ここで いいのかな?


710 名前: デフォルトの名無しさん 投稿日: 01/09/25 00:46
>>709
ご苦労様です。
そこのでOKです。


711 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/09/25 00:52
皆様 いつもありがとうございます。

read.cgi ver5.24 (01/09/25) が choco に入りましたー。

やったー。


712 名前: デフォルトの名無しさん 投稿日: 01/09/25 00:59
お疲れさまです。

チェック用リンク
http://choco.2ch.net/test/read.cgi/ainotane/1000457087/353


713 名前: デフォルトの名無しさん 投稿日: 01/09/25 01:03
・他スレ参照でも簡易表示になるのが直ってないような…


714 名前: デフォルトの名無しさん 投稿日: 01/09/25 01:05
>>713
712のリンク先は簡易じゃないでしょ。
向こうからのリンクは、ver5.23が処理するから直ってません。


715 名前: 713 投稿日: 01/09/25 01:07
あ、そうか。スマソ


716 名前: デフォルトの名無しさん 投稿日: 01/09/25 01:09
tag打ちたいんだけど、cvsサーバーが落ちてるっぽい。


717 名前: デフォルトの名無しさん 投稿日: 01/09/25 01:50
>712のリンク先は簡易じゃないでしょ。
712のリンク先が簡易表示なのは俺だけ?
Ver5.24でFORMが出ないんだけど。


718 名前: デフォルトの名無しさん 投稿日: 01/09/25 02:00
結局どの程度速くなったの?


719 名前: 717 投稿日: 01/09/25 02:02
ごめん、たぶん俺だけだ。
http://mentai.2ch.net/test/check.cgi
これで、REFERERを確認したら、
どうも勝手にrefererが設定されてしまって、
しかもキャッシュされてNotModifiedになっているだけみたい。
ツールでリンク先をShellExecuteして読んでるんだけど。


720 名前: イラストに騙された名無しさん 投稿日: 01/09/25 02:47
「簡易表示」時
<html><head><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
が無くて、いきなり <title>からになってる・・・


721 名前: デフォルトの名無しさん 投稿日: 01/09/25 02:55
理論的にはどれも必要ないけどね。
強いて言うなら文字コードの指定がないと文字化けする
危険があるくらいか。


722 名前: aki 投稿日: 01/09/26 02:32
えーん。ごめんなさい。
cvs鯖ディスクトラブルで落ちてます。
明日の夕方までには何とかがんばって直したいです...

/bin/sh が read error (泣)


723 名前: デフォルトの名無しさん 投稿日: 01/09/26 16:51
tag YAKIN20010925 打ちました


724 名前: デフォルトの名無しさん 投稿日: 01/09/26 18:25
レス指定の >> が、&gt; じゃなくて > になってるんですが
これは良いのでしょうか?


725 名前: デフォルトの名無しさん 投稿日: 01/09/26 18:50
>>724
いいんです。 >>414


726 名前: デフォルトの名無しさん 投稿日: 01/09/26 20:33
すいませんー。サーバーアドレス変わってます。
210.170.179.110
です。>ftp

# DiCEでちゃんと定期的に監視する設定にしたと思ったのだけど・・・・。
# うーむ、設定ミスか・・・。

たびたび混乱させて申し訳ないです。


727 名前: デフォルトの名無しさん 投稿日: 01/09/26 20:33
以前のまとめは >>655
残ってるのは、英語版と >>720 ぐらい?

imode回りはどうしましょうか。


728 名前: デフォルトの名無しさん 投稿日: 01/09/26 20:46
<html><head></head></body></html>
は全部省略でいいと思うんですがどうでしょうか。
HTML 2.0の時代から省略可能なことになってるので
省略したことによって誤動作するブラウザというのは
考えづらいです。もちろんIEもネスケも問題ありませ
んし。


729 名前: デフォルトの名無しさん 投稿日: 01/09/26 21:45
<html lang="ja">
とか入れとくといい、かも(IE5.5でこれを入れとくとAAのズレが
直る……とかいうのがあったような……かちゅ〜しゃだけか?)。後は全て省略で。


730 名前: デフォルトの名無しさん 投稿日: 01/09/26 22:05
>>729
かちゅ〜しゃだけ。IEだとずれないのにかちゅ〜しゃだと
ずれるというのが直るに過ぎない。
IE5.5問題はフォントの設定をいじらないとダメ。


731 名前: デフォルトの名無しさん 投稿日: 01/09/26 22:41
>>720 を修正した。
ついでに、can_simplehtml()のバグを見つけたので修正。


732 名前: デフォルトの名無しさん 投稿日: 01/09/26 22:51
えっと、専用ブラウザ作者です
通信失敗したときのためにdat取得途中にもいったん保存したいと思ってるんですが、
datのサイズを計算するとき、\0も含めて\r\nまで数えれば計算合いますか??
それとも\r\nは含まず?

モバイル時、rawモードで一気に900近いレスを取得するのは難しいので・・・


733 名前: デフォルトの名無しさん 投稿日: 01/09/26 22:57
datの改行は\r\nじゃなくて\nです。
もし\r\nに見えてるとしたらお使いのライブラリか何かが
勝手に変換してるということなのでそのままでは絶対に
計算合いません。

それはそれとして、rawモードでも部分取得に対応したほうが
いいのだろうか。こういう意見もあるし。

614 :作者 本日のレス :01/09/26 01:16
つまり、最新50とか、10-30までとかいった読み方は考えていないということか。


734 名前: 732 投稿日: 01/09/26 23:00
失礼、\r\nは単純にそう思っただけです(^^;
実際には\nでしか判定してません


735 名前: デフォルトの名無しさん 投稿日: 01/09/26 23:31
5.24が各鯖にインストールされた模様。
SPECIAL_SETTINGが動作しているのを確認。

混雑時の設定は、22-03のようだから、
read2ch.hも合わせておいた方がいいかな。


736 名前: 729 投稿日: 01/09/26 23:32
>>730
Thanks.
やっぱりかちゅだけだったか……個人的には言語指定位入れといても
いいような気がするけど、まぁ全部省略だろうな、ここは(何)。


737 名前: デフォルトの名無しさん 投稿日: 01/09/27 02:54
READ_KAKO/READ_TEMPには問題がいくつかある。

第一に、READ_KAKOがdefineされていないときには
READ_TEMPをundefしているが、
これはプログラム上の都合であって、動作としては望ましくない。
実際には、kako/はhtmlを読めばよいので閲覧禁止にしてあっても、
datでしか読めないtemp/は(特にdat直読みが禁止されると)
閲覧を許可するという状況は十分に考えられる。
逆は考えにくいので、逆になっていればよかった。

次にREAD_KAKOをrawmodeでも一律に扱っているが、これはどうだろうか。
ツールを使っていても、倉庫送りにされたログを読む場合には
結局datに直にアクセスすることになる。
大半が取得済みのdatの場合は、圧縮をあきらめて差分取得する
ことになってしまうし、
全体を新規取得する場合でも、圧縮はmod_gzipとその設定次第となる。
何より、直読み禁止になったらどうしようもない。
「rawmodeのみ過去ログ取得を許可する」conditionを設けるべきだと思う。

さらに細かい点を指摘すると、read.cgiで過去ログを読む事を前提とするなら
過去ログのdatがどこにあるかなど、ユーザーには関係ない。
kako/とtemp/でわけて指定させる必然性は全く無い。
もっとはっきり言えば、READ_KAKOが有効な場合には、
key=999999999を指定するだけで透過的に過去ログにアクセスできる方が
はるかに望ましい動作といえる(もちろん、書きこみは不可にする)。
しかも、これならリンクのkako対応やpath_depth操作も不要になる。
(逆に、ツールに過去ログ化を知らせるためのサインが必要になる)
転送量を問題視するなら、混雑時間帯以外とRAWMODE時のみ
透過的アクセスとする手もあるだろう。

最後に、これが最も重要だが、過去ログの形式が一定ではないという点がある。
teri,cornなどは過去ログも全て"<>"区切りだが、
mentaiから始まりpiza,saki,...等の古いログは
全て","区切りのdatが保持されている。
最も早くログ変換が始まったpizaでも5月初めで、他のサーバーはもっと遅い。
mentaiなどは大半が旧形式であると言える。
現行のparseルーチンでは、動的なデリミタ変更には対応していないので、
全て「ここ壊れています」になるだろう。
(過去に2、3度、bbs.cgiのバージョンを間違えたために
teriなのに数分間の投稿だけがsaki形式になっているdatもあるが、
これは「壊れたスレ修復」スレへ行けばよいかもしれない)
負荷との相談になるが、本気でちゃんと過去ログ読みに対応するのならば、
リンク先が無効になることより、こちらの方がずっと重要だと思うのだが。


738 名前: デフォルトの名無しさん 投稿日: 01/09/27 02:55
で、READ_KAKO,READ_TEMPの優先順位を直し、
rawmode時に対応し、temp/を廃止して一律kako/に、
等をやってみようとしたのだが、面倒になってやめた。

代わりに、AUTO_KAKOを作った。
(変更は多くないので、新しく作る方が楽)
AUTO_KAKO_MODEを数値としてdefine(SETTING_FILE可)し、
 0 = RAWモード時のみ、temp/,kako/どちらのdatも取得可能
 1 = RAWモード以外は、temp/のみ閲覧可能
 2 = RAWモード以外でも、temp/,kako/どちらも閲覧可能
とする。
過去ログに対しても全く同じようにkey=999999999の指定で
(スレスト扱いで)アクセスする。
ただし、今のところ、rawmode以外は(#if 1で)混雑時間帯外に制限してある。
READ_KAKOと排他ではないので、どちらも指定できる。

ログ形式の違いには対応していないが、
もし、READ_KAKOかAUTO_KAKO_MODE=2となることが想定されるなら、
#ifdef AUTO_LOGTYPE等として自動判別することも
そんなに難しくはないと思われる(負荷が少し大きくなる可能性あり)。

その他の変更点は、
・find_old_kakodirと同形式でfind_kakodirとfind_tempdirを作り、
 html_errorをif-elseif-else で並べた(RAWOUTも)。
・mainでファイル名を作るところがごちゃごちゃしてきたので
 create_fnameとして独立させた。
・他、細かい修正を少し。

それと、>>671の過去ログ探しが正常に動いているか確かめようと思ったら、
Ver5.23の「そんな板orスレッドないです」がでてきた。
キャッシュに残っていてNotModifiedが返ったからだが、
getFileLastmodが-1を返した(ファイルが見つからない)時は
LastModifiedを出力せず、304も返さないようにした。


739 名前: デフォルトの名無しさん 投稿日: 01/09/27 02:59
そうだ、
スレッドストッパーの判別に
「移転したよ」
もあった方がいいかも。
(1に書いてあるので有効なのは移転直後だけだし、実際には書きこみ出来るが)


740 名前: デフォルトの名無しさん 投稿日: 01/09/27 06:37
LIMIT_PMを22時にした。
"移転したよ"をストッパー判定に加えた。
AUTO_KAKO時に注意を表示するようにした。
AUTO_LOGTYPEを作った。
レス1に<>が含まれるかどうかで判定するので、
途中で一部変化しているものには対応できていない。


741 名前: デフォルトの名無しさん 投稿日: 01/09/27 11:58
</title>の前に空白入れれ


742 名前: デフォルトの名無しさん 投稿日: 01/09/27 12:04
>>741
それよりタイトル末尾の空白もCUT_TAIL_BLANKの
対象にしたほうがいいと思われ


743 名前: デフォルトの名無しさん 投稿日: 01/09/27 12:51
>>742
splitting_copy(というかressplitter_split)が各フィールド切り出すときに
統一的に末尾空白カットと空白の追加やってるようだから
すでに大丈夫と思われ


744 名前: 名無し 投稿日: 01/09/28 00:06
iモードで Next Page やるとURLが見つからないみたいです。
アドレス間違えていませんか?

http://news.2ch.net/news/i/


745 名前: デフォルトの名無しさん 投稿日: 01/09/28 00:21
おの〜最新レス50を押しても最新でないんですけど、
また最新50もなんかおかしい。
バグですか?


746 名前: デフォルトの名無しさん 投稿日: 01/09/28 00:29
>745
おめーの環境が悪い。
買い替えろ


747 名前: デフォルトの名無しさん 投稿日: 01/09/28 01:21
ページ上部の1-、101-、…が相対リンクなため、
http://ebi.2ch.net/test/read.cgi/nohodame/993580528/288-/
こういうリンクで飛んだとき、1-、101-、が効きません。


748 名前: デフォルトの名無しさん 投稿日: 01/09/28 02:22
>>744
pageview.cgiはこのスレでは扱っていません。
>>745
どのスレで起きた等、詳しく説明してもらえると助かります。
>>747
こっちならうまくいきます。
http://ebi.2ch.net/test/read.cgi/nohodame/993580528/288-
最後に余分な'/'が入っている時は、
../をつけるか、無効扱いするか、どうしましょう。


749 名前: デフォルトの名無しさん 投稿日: 01/09/28 06:46
>>748
後ろに余分なものがついているときは旧形式で呼ばれたとき同様に
R2CH_HTML_BASE_DEFINEを出すとか…


750 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/09/28 14:44
いつも、ありがとうございます、

ところで、誰か core dump はくんですよ、read.cgi か bbs.cgi のどちらかだと
思うんですが、、、

時間あったら調べてみてください、


751 名前: デフォルトの名無しさん 投稿日: 01/09/28 16:08
>>750
 strings core | grep REQUEST
とかが可能でしたら、悪者が特定できてcore dumpの条件も判るのですが。


752 名前: デフォルトの名無しさん 投稿日: 01/09/28 16:29
bbs.cgiってPerlではなかったでしたっけ? となるとcore吐くのは
read.cgiじゃないかと思いますが gdbが使えれば
  $ gdb read.cgi core
と打ち込んで
  (gdb) bt
  (gdb) q
で出てくる結果から目星が付けられるかも知れません
coreを吐くプログラム名自体は gdbを起動した時に
  Core was generated by `hoge.cgi'.
のように表示されます


753 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/09/28 19:45
choco に strip してない read.cgi 入れたので、 core 吐かれたら
調べてみまーす。


754 名前: デフォルトの名無しさん 投稿日: 01/09/28 19:47
getLineMax()がちと怪しいので、一応差し替えてみたけど、どうかなあ。


755 名前: デフォルトの名無しさん 投稿日: 01/09/28 19:52
てゆーか、ミラーが死んでるから、変更点がわからないか。
do {
 ・・・
 p = (char *)memchr(p, '\n', p1-p) + 1;
} while(p != p1);
が、途中であぼーんが入るとpが死ぬ可能性があるので、
do {
 ・・・
 p = (char *)memchr(p, '\n', p1-p);
 if (p == NULL)
  break;
 ++p;
} while (p < p1);
に直した。


756 名前: デフォルトの名無しさん 投稿日: 01/09/28 20:31
datの書き込み時にどういう処理をしているのかわからないけど
もし open("hoge.dat", O_WRONLY|O_TRUNC) or fopen("hoge.dat", "w")
に相当するようなやり方でオープンして書き込んでたりすると
その書き込み中にread.cgiでBigBufferを参照すると
  ファイルの終端より後ろの領域を参照 -> SIGBUS or SIGSEGV
ということもあり得るんだな...... 例のmmap時のlock問題


757 名前: デフォルトの名無しさん 投稿日: 01/09/28 21:18
bbs.cgiに関してはそんな.dat消失の危険があることは
やらんでしょう。普通はO_APPENDを使うと思われ
流出スクリプトもそうなってるし。
ただ削除系のスクリプトはぁゃιぃかも。


758 名前: デフォルトの名無しさん 投稿日: 01/09/29 01:31
非常に簡単なテストプログラムを作ってみたのだが・・・

255個の空白と改行を1行とし、
1)まず新規にファイルを16*4行分作成し、閉じる
2)次にファイルサイズ+10バイトをPROT_READ,MAP_SHAREDでmmapする
3)マップされた領域をスキャンし、行数と最初に'\0'が現れる位置を表示する
4)次に同じファイル名で(マップしたまま)16*1行分作成し、閉じる
5)3)を繰り返す

この結果は3の時と5の時で異なり、
どちらも実際のファイルの行数(64と16)を報告し、
最初に'\0'が見つかったのは、ファイルサイズの次の位置だった。
どちらも実際のファイルサイズを超え、ページ境界をまたいでいるが、
coreは吐かなかった。
(ページ境界をまたがない時でも、
'\0'が最初に現れた位置はファイルが終わった位置だった)

もしこれ(ファイルサイズ以上の領域には'\0'が入り、
マップされている間にサイズが小さくなっても'\0'が入る)が常に当てはまるなら、
map_sizeをほんの少し多めに取り、
BigBufferをスキャンしている最中に'\0'が現れた場合のみ、
オーバーしているかをチェックすればよいことになる。

とりあえず、これが成立するを仮定して、
dat_readとressplitter_splitを修正した。


759 名前: デフォルトの名無しさん 投稿日: 01/09/29 03:32
ファイルを書きかえるプログラムとの協調ができない限り
どうやろうが危険は残る。
ターゲットOSがいつまでも同じとは限らない。
未定義部分の振る舞いなんか利用したら、後で必ず痛い目にあう。

削除ツールとかを変更できるまでは、mmapの使用はあきらめた方がいいんじゃない。


760 名前: デフォルトの名無しさん 投稿日: 01/09/29 04:08
振るまいが違ったらその時直せばいいじゃん。
納品して終りじゃないんだから。

それと「mmapの使用」と「MAP_SHAREDの使用」は等価ではないよ。


761 名前: デフォルトの名無しさん 投稿日: 01/09/29 08:35
cvs鯖落ちてる?


762 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/09/29 14:37
umm
choco にまだ、 core できてませんでした、
観察継続中。。。


763 名前: デフォルトの名無しさん 投稿日: 01/09/29 15:54
read.cgi の不具合報告です。
http://piza2.2ch.net/test/read.cgi/tech/1000035521/627
http://piza2.2ch.net/test/read.cgi/tech/1000035521/627/
どちらも同じ書きこみが表示されますが
下のURLだと
「■掲示板に戻る■ 全部 1- 101- 201-・・・・」
とか
>>123
などのリンク先がおかしいです。
(それともこのような指定方は想定外?)


764 名前: デフォルトの名無しさん 投稿日: 01/09/29 15:56
がいしゅつです。>>747-749
で、
・エラーにする
・R2CH_HTML_BASE_DEFINEを出す
どちらにしましょうか。


765 名前: デフォルトの名無しさん 投稿日: 01/09/29 16:55
>>764
BASE出すほうに一票


766 名前: デフォルトの名無しさん 投稿日: 01/09/29 19:15
>>732-733にあるようなdatの部分取得と、
subject.txtの上位50件取得等に対応するために、
raw=0.0時のみ、
st,to,lsを参照して要求された部分のみを返すようにすることを考え、
RAWOUT_PARTIALとして試験的に加えてみた。
(nofirstは無視したので、ls=nn時にはレス1は送信されない)

ls=nnに対応するために、送信するレス番の範囲を教える必要があり、
是非次回は続きを差分取得して欲しいから、
dat全体の中でどの部分にあたるかの、位置と範囲も返したい。
となると、部分取得時は返信ヘッダがかなり窮屈になってしまう。

実行した場合のヘッダ("/512K"以後の区切りはTAB)。
 /tech/?raw=0.0&to=50 #subject.txtの範囲指定にpathは使えない
+PARTIAL 2441/512K Range:0-2440/22735 Res:1-50/478
 /tech/998845501/?raw=0.0 #今までと同じ
+OK 297551/512K
 /tech/998845501/50-99?raw=0.0
+PARTIAL 11767/512K Range:12226-23992/297551 Res:50-99/883
 /tech/998845501/l50?raw=0.0
+PARTIAL 27967/512K Range:269584-297550/297551 Res:834-883/883
 /tech/998845501/l20000?raw=0.0 #強引に全部送信
+PARTIAL 297551/512K Range:0-297550/297551 Res:1-883/883
(本物のログとサイズが違うのは、手動でいじったからなので気にしない)

返信するステータス等を勝手に決めるのも心苦しいので、
返信コードやフォーマットなども含め、意見求む。


767 名前: デフォルトの名無しさん 投稿日: 01/09/29 19:17
cvs使えないので、ここに書いて意見を聞く
int dat_out_raw(void)
{
 const char *begin = BigLine[0];
 const char *end = BigLine[lineMax];
 char statusline[512];
 char *vp = statusline;
#ifdef RAWOUT_PARTIAL
 int first = 0, last = 0;
 if (raw_lastnum == 0 && raw_lastsize == 0
  && (nn_st || nn_to || nn_ls > 1)) {
  /* nn_xxはnofirstの関係等で変化しているかもしれないので再算出 */
  int st = atoi(zz_st), to = atoi(zz_to), ls = atoi(zz_ls);

  first = 1, last = lineMax;
  if (ls == 1) /* for Ver5.22 bug */
   ls = 0;
  if (ls)
   st = lineMax - ls + 1;
  if (0 < st && st <= lineMax)
   first = st;
  if (0 < to && to <= lineMax)
   last = to;
  if (first > last)
   last = first;

  begin = BigLine[first-1];
  end = BigLine[last];
  vp += sprintf(vp, "+PARTIAL");
 } else
#endif
 /* ・・・ */
 if (・・・) {
  ・・・
 } else {
  ・・・
 }
 vp += sprintf(vp, " %d/%dK", end - begin, MAX_FILESIZE / 1024);
#ifdef RAWOUT_PARTIAL
 if (first && last) {
  vp += sprintf(vp, "\t""Range:%u-%u/%u",
   begin - BigLine[0], end - BigLine[0] - 1, BigLine[lineMax] - BigLine[0]);
  vp += sprintf(vp, "\t""Res:%u-%u/%u", first, last, lineMax);
 }
#endif


768 名前: デフォルトの名無しさん 投稿日: 01/09/29 19:17
続き
#ifdef AUTO_KAKO
 {
  static char *messages[] = {
   "",
   "\t""Status:Stopped",
   "\t""Location:temp/",
   "\t""Location:kako/",
   /* 正確な位置を知らせる必要はないはず */
  };
  int where = zz_dat_where;
  if (where || isthreadstopped())
   where++;
  vp += sprintf(vp, "%s", messages[where]);
 }
#endif
 pPrintf(pStdout, "%s\n", statusline);
 ・・・
}


769 名前: デフォルトの名無しさん 投稿日: 01/09/29 19:45
subject.txtのraw=0.0時の出力内容は、意味的には1が最新だし、
途中からの受信はそれまでの取得済み内容の続きにできないので
st, toは無視して、lsで先頭からの個数を指定するほうが
より良いような気もする。


770 名前: デフォルトの名無しさん 投稿日: 01/09/30 00:23
かちゅ〜しゃのgzip対応化DLLを作っている者です。
現在のrawモードの仕様だと最終レス番号を指定しなくては
ならないので、これをログから取得しているのですが、
ディスク上のログがすぐには更新されないとか、
ログ保存をオフにしたりレス取得上限を設定したり
されると対応できないとか、いろいろ大変です。
http://piza2.2ch.net/test/read.cgi/tech/1000035521/?raw=.12345
のように、レス番号指定を省略しても(指定位置が
ちょうど行頭なら)差分だけを返すようにできないでしょうか?


771 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/09/30 02:57
以下のサーバに mod_gzip が導入それました。

mentai , saki/corn , cheese/cocoa , teri/ton , kaba , bbspink2
www/salami , salad , yasai , natto , ebi/curry

そこで yasai に read.cgi を /*#define GZIP*/ のようにコメントアウトして
コンパイルしたものを上げました。
本当はどうすればいいのかな? 教えてください、おねがいします。


772 名前: デフォルトの名無しさん 投稿日: 01/09/30 04:21
今、永らく読んでなかったかちゅスレ(18-19)を読んでます。
伸びが急激なので、まだ19の途中ですが。
proxyではなく、DLL対応とは結構驚きました。

で、できるだけ(他の人の同意があれば)対応する方向にしたいのですが、
現行のかちゅ〜しゃをサーバー側から見ると、2つ程欠点があります。
1つ目は、If-Modified-Sinceを付加していないこと
2つ目は、常に1バイト以上の送信をリクエストすること
です。
どちらも本質は同じで、更新がなくてもファイルI/Oの負荷が発生するため、
必要以上にサーバーに負担をかけることになっています。
多分、かちゅ〜しゃのidxに保存されているのは
サーバー側のLastModifiedではなく、ローカル側のGET日時だと思うので
難しいとは思いますが、可能ならば、If-Modified-Sinceをお願いしたいです。

実際の対応ですが、
まだwsockspyのソースもろくに読んでいないので
外れたことをいってるかもしれませんが、
その形式だと、最終の'\n'部をGETしないため、
リクエストのRangeが範囲を超える場合が頻発すると思います。
その場合、
・Rangeの範囲がファイルサイズジャストの次からだった場合
→304 NotModifiedを返す
としたいと思いますが、よいでしょうか?
また、
・Rangeの範囲が大きく超えた場合、及び、指定位置が行頭ではなかった場合
はどうしましょう?
かちゅ〜しゃでは、
あぼーん等でRangeが範囲を超えていて全体が返された場合でも
(ローカルあぽーん等の結果が無効となるため)
それを利用してログを再構築する事はせず、
常に「ログが詰まった」を表示しているように思います。
ですので、この場合はエラーが起きたことだけを知らせ、
全体は返さないようにしたいと考えていますが、
それでよいでしょうか?


773 名前: デフォルトの名無しさん 投稿日: 01/09/30 04:21
あと、「過去ログが取得できない」問題は、
read.cgi側でAUTO_KAKOをONにすれば即対応可能です。
夜勤さんにお願いするしかないですが。
こうなった場合、最初のGETで取得できなければ、
../kako/や../dat2/をGETするのは完全に無駄なので
DLL側で(302を返すよう)対処してもらえればと思います。
(-ERRの戻りが、「../kako/...で発見」の場合は非対応)

もう1つ、他のツールの作者さんも読んでいると思うので。
この形式での対応は、
Accept-Encoding: gzip
かつ、
User-Agent: Katjusha
の場合だけにしたいと思います。
これは、同様のリクエストは(レス番号さえわかれば)
RAWOUT_PARTIALで対応可能で、
そこで返されるRangeを見ればあぼーん等の検出も可能であり、
ツールの(ソースに触れる)作者から見れば
あまり必要のない機能だと思うからです。
かちゅ〜しゃユーザーののgzip移行を促すためにも
あえて厳しくしたいと思います。


774 名前: デフォルトの名無しさん 投稿日: 01/09/30 04:25
あ、以上は>>770でした。

mod_gzip導入については、
特に何もしなくてもいいと思います。
(全鯖導入されたら、index.htm/index.htmlチェックが不要になるので消しますか)
GZIPは、ZLIBが定義されていると再defineされちゃいますし。


775 名前: デフォルトの名無しさん 投稿日: 01/09/30 08:07
cvs復活してるね


776 名前: デフォルトの名無しさん 投稿日: 01/09/30 08:50
http://www.gedoh.org/aki/2ch/current/bbs/
がInternal Server Errorになるよー


777 名前: 770 ◆DLL/lGHE 投稿日: 01/09/30 09:10
>>772-773
「Range:」ヘッダは削除して、?raw=nn.xxxxに変換しています。

>・Rangeの範囲がファイルサイズジャストの次からだった場合
>→304 NotModifiedを返す
>としたいと思いますが、よいでしょうか?

よって「+OK 12345/512K」みたいな1行だけが返ってくる
はずなのでとくに考慮は不要です。

内部的に、ファイルサイズジャストでも実際にファイルを読み込
んで処理しているとしたら、その内部処理だけを修正してインター
フェースは変えない(上記のヘッダ行を生成する)ようにしたほうが
いいのではないでしょうか。

>・Rangeの範囲が大きく超えた場合、及び、指定位置が行頭ではなかった場合
>はどうしましょう?

おっしゃる通り、エラーの通知のみでいいと思います。

>あと、「過去ログが取得できない」問題は、
>read.cgi側でAUTO_KAKOをONにすれば即対応可能です。

過去ログに関しては.datをmod_gzipの圧縮対象に指定するという
手もありますね(過去ログの差分取得はあまり行わないでしょう
から)。

>DLL側で(302を返すよう)対処してもらえればと思います。

今でも、「過去ログ倉庫で発見」以外のエラーのときは
無駄なリクエストが飛ばないように対処済みです。
ちなみに、BIG-serverではNot Foundだったとき404を返す
代わりに news.kakiko.com/mentai/ へ飛ばす(302を返す)
ようになっているので、302ではだめです。


778 名前: 770 ◆DLL/lGHE 投稿日: 01/09/30 09:13
Last-Modifiedについては、ファイルサイズジャストのとき
中身を読まないように修正すれば結局stat一回だけなので
対応不要だと思っているのですがどうでしょうか?


779 名前: デフォルトの名無しさん 投稿日: 01/09/30 09:19
AUTO_KAKO関係、AUTO_LOGTYPE関係とその周辺を少し変えた。
rawmode時はget_title()等を呼ばないようにした。
subject.txt取得時と!busytime時はMAP_PRIVATEにした。
RAWOUT_PARTIALで、subject.txt取得時のみ、
lsがあってtoがなかったら、lsをto扱いするようにした。
Katjusha_DLL_REPLYを作った。

read.cにデバッグコードが残ってたらごめん。

>>778
LastModifiedの判定の他にサイズ判定をいれたので、要らなくなったです。


780 名前: デフォルトの名無しさん 投稿日: 01/09/30 09:26
>「Range:」ヘッダは削除して、?raw=nn.xxxxに変換しています。
あ、そういう意味です。

>よって「+OK 12345/512K」みたいな1行だけが返ってくる
>はずなのでとくに考慮は不要です。

これは、read.cgi側の都合です。
+OKを返すときは、通常、HTTPヘッダを全て出力した後、
さらにdatを読みこんで(行数を数える等もして)からなので、
サイズだけでNotModifiedが返せた方が楽だからです。
サイズだけで判定して+OKを返しても大差ないといえばその通りなのですが。

>ちなみに、BIG-serverではNot Foundだったとき404を返す
>代わりに news.kakiko.com/mentai/ へ飛ばす(302を返す)
>ようになっているので、302ではだめです。
「302を返す」は、そのつもり(404の代わり)で書きました。
かちゅ〜しゃは302に反応すると思われるので、
見つからない時にはDLLで細工してかちゅ〜しゃに302を返すという意味です。

っていうか、cvs修正した直後に>>777(おめでとう)を読んだので、
サイズジャストは+OKではなく、NotModifiedのままです。
直しましょうか?


781 名前: デフォルトの名無しさん 投稿日: 01/09/30 09:30
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342
ruby撲滅スレ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1001125342


782 名前: デフォルトの名無しさん 投稿日: 01/09/30 09:33
>+OKを返すときは、通常、HTTPヘッダを全て出力した後、
>さらにdatを読みこんで(行数を数える等もして)からなので、
>サイズだけでNotModifiedが返せた方が楽だからです。

なるほど。「+OK」を返してもらえると私(とかほかのツール
作者)が楽なので結局どちらが楽できるかの問題ですね。

>サイズジャストは+OKではなく、NotModifiedのままです。
>直しましょうか?

面倒でなければお願いします(^^;。


783 名前: ◆DLL/lGHE 投稿日: 01/09/30 09:36
782も私です。

よく考えたらレス数を求めるには中身を読まなくてはならないから
ほかのツールは関係ないですね。


784 名前: デフォルトの名無しさん 投稿日: 01/09/30 09:54
仕様書き忘れてました。
今(304を返す仕様)のところ、

・ファイルサイズと一致
304 Not Modified
Content-Type: text/plain
(ヘッダのみ)
・あぼーんされたっぽい(要求Rangeが大きすぎ)
-ERR どこかであぼーんがあったみたいです。
(非圧縮・この時はLast-ModifiedやContent-Encodingを出力しない)
・あぼーんされたっぽい(要求Rangeが大きすぎ)
-ERR どこかであぼーんがあったみたいです。
(ヘッダにLast-ModifiedとContent-Encodingが含まれる)
・続きあり
+OK 27967/512K
・・・

wsockspyのソースを見て問題なさそうだったので、
サイズだけをみてあぼーんが判断できる場合は
非圧縮で返すようにしています。

あと、304を返す代わりに
+OK 0/512K
にする方向にしますね。


785 名前: ◆DLL/lGHE 投稿日: 01/09/30 09:57
>・あぼーんされたっぽい(要求Rangeが大きすぎ)
2つありますけど下のは

・あぼーんされたっぽい(行頭ではない)
ですね。


786 名前: 784 投稿日: 01/09/30 10:02
>>785
ごめんなさい。その通りです。

ところで、他のツールの場合は
必ずIf-Modified-Sinceをつけてくると思いこんでいたので、
「raw=x.xでファイルサイズジャストの場合」というのは
あまり想定していなかったんですが、
もしかしたら、
raw=x.xのリクエスト全てに対して、
「ファイルサイズジャストなら+OKの行のみを返す」
ことを考えた方がいいかもしれませんね。
その方向で考えます。


787 名前: デフォルトの名無しさん 投稿日: 01/09/30 10:12
仕様が固まったらread2ch.hとconfig.txtの更新もよろしくー


788 名前: デフォルトの名無しさん 投稿日: 01/09/30 10:14
>>787
ChangeLogもね(o^-')b


789 名前: 784 投稿日: 01/09/30 10:35
>>786の変更を加えた。

うーん、でもよく考えたら、If-Modified-Sinceには
「実況禁止」効果を見こんでいた部分があるので、
できれば何か対策が欲しいところでもある。

>>787-788
これからやりまーす。


790 名前: デフォルトの名無しさん 投稿日: 01/09/30 10:45
>>786
OKのみの行を返すときでもLast-Modifiedはあったほうがいいような。
サイズは一致していても変更があったかもしれないし(まれだろうけど)


791 名前: 784 投稿日: 01/09/30 11:29
read2ch.h,config.txt,ChangeLogを更新しました。

Last-Modifiedはどうしましょ?
サイズを見てOKのみを返す場合は、
既にIf-Modified-Sinceのチェックをくぐってしまった時なので、
そういうUAにLastModifiedを返す必要があるかとか、考えたんですが。
まあ、出す分には全然かまわない気もします。
ただ、「偶然の一致」を減らすなら、レス数も数えた方がいいでしょうし。

あと、この場合にはContent-Lengthも返さないので
それも問題ありかもしれません。


792 名前: 784 投稿日: 01/09/30 11:46
サイズを見て+OKのみを返す場合に、条件として
「If-Modified-Sinceがなかった場合」を加えてみた。


793 名前: デフォルトの名無しさん 投稿日: 01/09/30 14:00
おお、mod_gzipはいったんだ。ご苦労様>>夜勤さん

Trying 64.71.134.194...
Connected to piza2.2ch.net.
Escape character is '^]'.
HEAD /tech/index.html HTTP/1.1
HOST: piza2.2ch.net
Accept-encoding: gzip, inflate

HTTP/1.1 200 OK
Date: Sun, 30 Sep 2001 04:55:31 GMT
Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_gzip/1.3.19.1a mod_ssl/2.3.6 OpenSS
L/0.9.3a
Content-Type: text/html

って 771みると piza2には前から入ってた?


794 名前: デフォルトの名無しさん 投稿日: 01/09/30 15:12
対応したread.cgiが導入されるまでの間、
かちゅーしゃでの巡回は
今まで以上に無駄な負担を鯖に強いることになるわけか。
巡回が重くなったって言われるのもわかる気がする。
mod_gzipで重くなったってのもあるだろうけど。


795 名前: デフォルトの名無しさん 投稿日: 01/09/30 16:41
Katjusha_DLL_REPLY時には、
getLineMaxで全体を走査する必要がない事に気付いたので、変えた。

そうすると、この形式は、他の?raw=x.xのリクエストに比較して、
(mmapが有効に使える点も含め)負荷的に有意ということになる。
ならば、UserAgentチェックも外して、
他のツールにも積極的に利用してもらうことも考えた方がいいかな?
UserAgentチェックは、かちゅ〜しゃ利用者の(変更しての)
非rawモードでのread.cgi呼出を減らせるかも、と考えたからなんだけど。


796 名前: デフォルトの名無しさん 投稿日: 01/09/30 18:39
>>747-749,>>763-765
PATH形式での呼出時、解析された以降の文字列に'/'が含まれるとき、
BASE_DEFINEを出力するようにした。


797 名前: デフォルトの名無しさん 投稿日: 01/10/01 04:17
>>795
UAチェック外すほうに一票。


798 名前: デフォルトの名無しさん 投稿日: 01/10/01 10:29
rawモードでファイルサイズジャストの時にも
Last-ModifiedとContent-Lengthを出すようにした。
raw=.nnn形式のUAチェックを外した。

というのをやったんだが、cvs鯖落ちてるっぽい。


799 名前: デフォルトの名無しさん 投稿日: 01/10/01 10:43
今はcvs動いてるみたい


800 名前: デフォルトの名無しさん 投稿日: 01/10/01 12:15
>>799
ありがと。
>>798をcommitした。


801 名前: 名無しさんの声 投稿日: 01/10/01 16:14
iモード時の要望です。
批判要望板のスクリプト関連要望統合スレッドにも
書き込んだのですが

iモードでスレ巡回するときは
決まったスレを見ることが多いので
1-10よりも最新-5レス前 とか5レス前-10レス前とか
今見てるとこから数レス前とかの方が便利です。

現在iモードから見る際
ログが流れると1-10を開いてブックマークしてから
編集して見たいレス番号に書き換えて移動って
手順で見ているので何かと不便で博打性も強いです。

手間がかかるかも知れませんが検討をお願いしたいと思います。


802 名前: デフォルトの名無しさん 投稿日: 01/10/01 19:53
>>801
最新10レスというのがなかったか?


803 名前: デフォルトの名無しさん 投稿日: 01/10/01 19:54
「大きすぎます」対策として、ファイルサイズが
MAX_FILESIZE - 4255バイトを超えたら
フォームを消すようにできませんか?


804 名前: デフォルトの名無しさん 投稿日: 01/10/01 19:58
CGI自身にgzip圧縮の機能がなくても、その先のmod_gzip
が圧縮してくれるかもしれないので、BadAccess中での
gzip_flagの判定とかNN4_LM_WORKAROUNDの処理とか
Katjusha_DLL_REPLYの判定とかはしたいのですが、
これらをGZIPのconditionから外に出せませんか?


805 名前: デフォルトの名無しさん 投稿日: 01/10/01 21:49
>>804
mod_gzipに圧縮をまかせたら、NN4_LM_WORKAROUNDは役にたたないよ。


806 名前: デフォルトの名無しさん 投稿日: 01/10/02 00:20
bbs.cgiがパス対応になったので、USE_PATHとALWAYS_PATHは
オン固定にしましょう。


807 名前: デフォルトの名無しさん 投稿日: 01/10/02 00:44
>>805
mod_gzipが勝手に付けちゃうの?
そうだとしても後2つのこともあるし。


808 名前: デフォルトの名無しさん 投稿日: 01/10/02 05:37
むー、なんか俺には意味が完全には把握できない話が続いている気がする。

>>801の件は、>>802の言うように
「最新10」「前10」「次10」があった気がするのだが。
もう一回確かめて、なければ作る。
上部に欲しいということかな?
もしかしたら、呼出形式によっては表示されないかもしれないので、
・どういう形式のリンクだと不足があるのか(実例を出してもらえるとうれしい)
・その時に、現状のほかにどんなリンク先が欲しいか
を書いてもらえると助かる。

>>803の件は4255というのが「1レスの最大バイト数」なのかもしれないが、
これは>>nnのリンクや改行の数によって左右されないのかな?
よくわからないので、
#define WRITESTOP_FILESIZE 5 として、
MAX_FILESIZE - WRITESTOP_FILESIZE*1024 を超えたら、
スレッドストップ扱いにしてみた。

>>806
USE_PATHとALWAYS_PATHはON固定で良さそうなので、そうした。
RAWOUTも外せない機能ではあるが、
こちらは、「RAWモード専用CGI」の可能性があるので、残しておく。


809 名前: デフォルトの名無しさん 投稿日: 01/10/02 05:38
>>804の意図が一番わからないのだが、
>CGI自身にgzip圧縮の機能がなくても、その先のmod_gzip
>が圧縮してくれるかもしれないので、
これは、mod_gzipがcgi出力も圧縮するという意味だろうけど、
>BadAccess中でのgzip_flagの判定とか
>NN4_LM_WORKAROUNDの処理とか
>Katjusha_DLL_REPLYの判定とかはしたいのですが、
>これらをGZIPのconditionから外に出せませんか?
「これら」というのが何を指しているのかが不明なので、よく理解できない。
「Accept-Encodingを見てgzip_flagを設定すること」を言っているのか、
「rawmode時等に圧縮非対応のリクエストは受け付けない」を言っているのか、
「NN4リクエスト時にContent-Lengthを出力しない」を言っているのか、
「rawmode以外はKatjushaのリクエストを受け付けない」を言っているのか。

出力の圧縮を完全にmod_gzipに任せることになった場合、
#define GZIP/ZLIBを外す事になり、
そのことにより、いくつかのリクエストがBadAccessで弾けなくなり、
特にrawmode関係のリクエストが受け付けられてしまうのがまずいということかな?
それなら、その通りだとも思うけど。
ただ、出力の圧縮を全てmod_gzipに任せる可能性はあるかな?

というか、既に、
http://piza2.2ch.net/test/check.cgiの出力なんかは圧縮されて返ってくるから、
どちらかというと、
・CHECK_MOD_GZIPで、mod_gzipが導入されていれば、圧縮しないで出力する
・BadAccessで、圧縮を受け付けないrawモードのリクエストは弾く
ぐらいでもいいかもしれない。
負荷的にも、mod_gzipに任せた方がいいかもしれないし。
ただ、NN4時にもContent-Lengthを付けてしまう(おそらく)のが欠点か。


810 名前: 801 投稿日: 01/10/02 05:50
>802>808
確認しました。付いておりました。
多謝です。お騒がせして申し訳ありません。


811 名前: デフォルトの名無しさん 投稿日: 01/10/02 06:45
>>809
mod_gzipが入ってるならGZIP/ZLIBとも外したほうが
オブジェクトサイズの節約になるのでは。
とくにZLIBはスタティックリンクされてますし。
で、現状ではGZIP/ZLIBを外してしまうと、たとえば
rawモードの取得をgzip対応クライアント以外に認め
ない機能も消えてしまうと言いたかったわけです。


812 名前: デフォルトの名無しさん 投稿日: 01/10/02 07:10
了解。

ZLIB/GZIPはOFFにする方向で、
なおかつrawモード時のAccept-Encodingチェックは行うにする、と。
かちゅチェックは、rawモードに含まれるのでそのままでもよさそう。
NN問題はとりあえずあきらめて、
圧縮をmod_gzipに任せ、cgiサイズ(と負荷)が小さくなるようにする。

この方向でよい?


813 名前: デフォルトの名無しさん 投稿日: 01/10/02 07:12
read.cgiが生成するURLは常にパス仕様になりましたから、
create_link()の旧形式を生成してる部分はバッサリ削除
できます。


814 名前: 811 投稿日: 01/10/02 07:15
>>812
かちゅチェックは
main()の
#if defined(GZIP) && defined(RAWOUT) && defined(Katjusha_DLL_REPLY)

#if defined(RAWOUT) && defined(Katjusha_DLL_REPLY)
にしてくださいと言いたかったのでした。
あとはよいと思われ


815 名前: デフォルトの名無しさん 投稿日: 01/10/02 08:17
>>813
#ifndef ALWAYS_PATHに相当する部分なので消してもよいかと思ったが、
一応#ifdef CREATE_OLD_LINKで囲むだけにした。
>>814
read2ch.hは変えなかったが、
GZIP/ZLIBがなくてもAccept-Encodingをチェックするようにした。


816 名前: デフォルトの名無しさん 投稿日: 01/10/02 12:57
たまたまrawモードをブラウザで叩いてみたんですけど、
>>[レス番号] にアンカー入ってるんですけど…こういう仕様ですか?


817 名前: デフォルトの名無しさん 投稿日: 01/10/02 13:05
>>816
bbs.cgiが.datに書き込んでるので仕様です。
read.cgiは仕方ないので指す先を捨ててURLを再生成してます。


818 名前: デフォルトの名無しさん 投稿日: 01/10/02 13:16
>>817
解かりました。有難う御座います。


819 名前: 林檎おいしいよ。 投稿日: 01/10/02 16:30
がいしゅつだったらスマソ。。
ニュー速板で、"最新50"の時、下の「掲示板に戻る」をクリックしたら、
http://news.2ch.net/news/index.htmに行っちゃって、
ブックマーク変更してねっていわれちゃったんですけど。。
私はとっくに変更済みなんですけど、
夜勤さんに念のためここで報告するようにいわれたので。。よろしくです。


820 名前: デフォルトの名無しさん 投稿日: 01/10/02 19:43
どうやらmod_gzipがまだ入っていない板でもindex.htmが
廃止されたみたいなので判定のロジックはばっさり
捨て去ったほうがよさそう


821 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/02 21:00
お世話になってま〜す。
負荷がばかにならないくらいあがっています。
なにやら かちゅーしゃとかが新しくなったとか。。。(詳しく知りません)

で提案なんですが、ご検討していただけないでしょうか?
-------------------------------------------------------------
大きな流れとしては、各ツールの要求に答えていくことなんだけど、、、
うーん 転送量の次は負荷が、

dat を細切れにして、さらに圧縮をかけて転送量を削る方向に
向かっているから、これをやめるのが吉か?

ルールが必要か?
1.dat 読みのときは、一気に全部読む。
2.read.cgi はあらかじめ作ってある xxxxxxxxxxxx.dat.gz を返す。

まずは、プログラム板で聞いてこよう。


822 名前: ◆DLL/lGHE 投稿日: 01/10/02 21:04
差分はdat経由で読むようにしましょうか?
とりあえず現在開発中のバージョン入れてKatjusha_DLL_REPLY
が使えるようになると負荷が多少は減ると思います。


823 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:06
夜勤さん、かちゅ"〜"しゃです。。。
それとかちゅ用のwsock32.dll作ってる人に聞くと仕様わかるっすよ。


824 名前: 823 投稿日: 01/10/02 21:07
( ̄□ ̄;)!! のんびりし過ぎた!!


825 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:21
プロセス起動数の増加による負荷を下げるなら、
rawモードをさらに拡張して複数dat同時転送とかできませんかね。


826 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:26
read.cgiをApacheモジュールにしちゃえば軽くなるんだろうけど
mod_gzipの導入でもいろいろ交渉したりしなきゃならなかったみたいだから
大変なのかな......CGIプロセス起動しない分軽くなるのは確実だけど


827 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:27
みんな速くなってますます巡回しまくっちゃったりして…


828 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:28
read.cgiが自分でgzipを使うかを動的に選択できるのなら、
raw差分転送である程度以下のサイズのものは圧縮しないようにするとか。


829 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:32
それはmod_gzipがすでにやってたりして…
そういう意味でもmod_gzip任せにしたほうがいいのかも。


830 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:33
>>827
一応一度巡回すると5分間巡回できない制限ありますので、
レス取得の速さは特に大きな問題ではないです。


831 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:37
ん? 今のread.cgiで使ってるのはgzipじゃなくてzlibでわ?
mod_gzipにやらせるのと負荷的にはあまり変わらないと思うけど......
それにmod_gzipにやらせた場合NN4_LM_WORKAROUNDに相当する処理が
可能かどうかも問題だけど


832 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:37
巡回がとんでもなく無用な負荷をかけてるってことでしょ。


833 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:39
同じようなことするバイナリはCGI側に持たせなければ
CGIは軽くなるよ。多少は。


834 名前: 831 投稿日: 01/10/02 21:40
勘違い 無視してちょ 氏ぬわ


835 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:44
そういえば、UNIX板でやってた頃、これを勧めてた人がいたね。
http://www.fastcgi.com


836 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:46
>>835
cgiのロードタイムは短縮できるだろうけど
fastcgiにするならグローバル変数バシバシなのは一旦見直さないとまずい?
あと、ロードタイムがどれだけ負担になってるのかってのも分からないと…(^^;


837 名前: デフォルトの名無しさん 投稿日: 01/10/02 21:51
とりあえず、
http://www.gedoh.org/aki/2ch/current/bbs/read.tgz
が更新されないので、変更されたファイルを
ftp://readcgi.dyndns.org/incoming/ver5/read.5.24.1.tgz
に置いてみた。


838 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:01
夜勤さん召喚しますか?


839 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:05
うん、一度これをいれて様子をみてもらったらいいと思う。
(あまり変わらないかもしれないけど)
mod_gzipが導入されている鯖はZLIB/GZIPの#defineを外してもらって。


840 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/02 22:09
過去ログ(もうほ更新されない dat)の読み込みが
とてつもなく沢山リクエストが来ているようです。

kako/xxx/xxxxxxxx.dat は、あらかじめ xxxxxxxx.dat.gz にしておいて
read.cgi が呼ばれたとき、そのまま返すとかにしたいなぁ


841 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:11
>>840
.dat.gzを用意しておいてmod_gzipでdatを処理対象に加える
だけで解決します。


842 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/02 22:14
今、 salad//anime/kako で実験しています。
.htaccess に dat も gz 読めよって書けばいいのかな?
(こっそり、書式教えてくだせ〜)


843 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:16
mod_gzip_item_include file \.dat$
です。


844 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/02 22:21
う〜ん、よく考えたら、 xxx.dat.gz だけ置きたいんだなぁ。

anime/kako/xxx/xxxxxxxxxx.dat.gz だけってことです。
dat の本体は、見えないところで管理ということなんです。

ということは、kako を見る場合はツールが直接 .dat.gz を
取り込めばいいのかな?

anime/kako/xxx/xxxxxxxxxx.html
anime/kako/xxx/xxxxxxxxxx.html.gz
anime/kako/xxx/xxxxxxxxxx.dat.gz
の三つを可視にすると、


845 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:22
サフィックスに関わりなくテキストを圧縮するということなら
mod_gzip_item_include mime "text/.*"
でいいと思うけど......しかしNN4_LM_WORKAROUNDを
.htaccessでどうやって実現できるのかが難儀......


846 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:24
>>844
確かに非圧縮版のdatを置いておく意味はあまりありませんね。


847 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:25
>>845
mod_gzipのデフォルト設定でtext/.*は圧縮対象に含まれてる
はずなんですけど.datはなぜか指定してやらないと圧縮対象
にならないみたいなんです。


848 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:25
hoge.datのリクエストにhoge.dat.gzを返すということなら
mod_gzip_can_negotiate Yes
かな?


849 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:29
>>848
index.html.gzで負荷が減ったそうなのでそれはすでに
オンになってるはず。


850 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/02 22:29
ツールさんたちは、直接 .dat.gz を読むということで、いかがでしょうか?
というか、そうしたいです。

kako の中の話です。
anime/kako/xxx/xxxxxxxxxx.html
anime/kako/xxx/xxxxxxxxxx.html.gz
anime/kako/xxx/xxxxxxxxxx.dat.gz

の三つを可視にするという仕様です。
ほとんどの場合 kako 下のファイルは、できあがったら
そのままで変更はかからないので、あまり細工は必要ないと思います。


851 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:31
異議ありません。


852 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:31
>>847 ん? オレのとこで実験すると mod_gzip_item_include を何も指定しないと
*.txtも圧縮しないで返ってくるし 逆に mime "text/.*" を指定すると
*.datでも圧縮されて返ってくるけど?


853 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:32
mod_gzipに任せちゃった方がCPU負荷は減るはず。
lawモードはほとんど何もする必要がない(.datを更新分だけ
出力してくれればいい)のだから、別cgiにすることでオーバー
ヘッドを減らせないだろうか。


854 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:33
>>850
それで良いと思います。2chあってのツールですし、
作者さん達にも納得してもらえると思いますです。


855 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/02 22:35
あっ 今日の話は、過去ログ(dat落ちして、html化されたスレッド)の話ですので、
ライブなスレッドとか、html化待ちしているやつは、また別の話ですよ。


856 名前: デフォルトの名無しさん 投稿日: 01/10/02 22:36
>>852
bbspinkはsubject.txtは圧縮されるけど.datは圧縮されないから
そうなのかと思った。
単に.txtが圧縮対象になってるだけか。


857 名前: イラストに騙され(略) 投稿日: 01/10/03 13:11
J-PHONE 使ってないのでさっぱりわかりませんが…

2chの動作報告はここで。−2−
http://teri.2ch.net/test/read.cgi/accuse/1000645308/703

703 :701 :01/10/03 09:51 ID:DNeYtlDo
「J-PHONEでスレッドが表示されない」の件、原因が分かりました。
URLの最後にスラッシュが付いていると解消されます。

× http://***.2ch.net/test/read.cgi/***/1000000/i

http://***.2ch.net/test/read.cgi/***/1000000/i/

ご考慮ください。。。では。


858 名前: デフォルトの名無しさん 投稿日: 01/10/03 16:25
■掲示板に戻る■のリンク、index.htmlにならないかな
bbstableとかと統一されてないので、分かりづらいです


859 名前: デフォルトの名無しさん 投稿日: 01/10/03 19:05
bbstableのリンクは /板名/ で、統一されてると思いますが…
newsで index.htm になってる件なら激しくがいしゅつです。


860 名前: デフォルトの名無しさん 投稿日: 01/10/03 21:35
J-PHONE対策で、末尾に余分な'/'が含まれるpath形式で呼ばれた時、
リンク先の末尾にも'/'を付加してみた(imode時のみ)。
本当は、呼出形式からではなく、UserAgentで判断したいが。

※/accuse/1000645308/i/という形式で呼ばれる時に
リンク先(POST先含む)がおかしくなる点は既に修正済み。


861 名前: 860 投稿日: 01/10/03 21:44
なんか不要な修正だった気がしてきた。消すかも。
JPHONEがbase hrefに対応していないとかが原因かもしれん。
話の流れをもう少し見守ってみよう。


862 名前: 860 投稿日: 01/10/03 21:54
というわけで、元に戻した。


863 名前: イラストに騙され(略) 投稿日: 01/10/03 23:17
read.cgi側の問題じゃなかったようですね。
お騒がせしてごめん、特に860さん。


864 名前: しよ〜しゃたん 投稿日: 01/10/04 01:26
BASEの位置がBODYタグ内にあったため端末が正しく解釈できなかったという原因らしい。
bbs.cgiですでに対処済みの模様。


865 名前: デフォルトの名無しさん 投稿日: 01/10/04 02:37
なんじゃそりゃ。。。


866 名前: デフォルトの名無しさん 投稿日: 01/10/04 07:44
昨日のJ-PHONE問題でいろいろやって思ったこと。
(実は向こうのスレにも少し書きこんだ)

今、imodeだと>>nnの形式のリンクが全て表示されないようになっているのだが、
これは最初に「リンク先がimode対応ではないから」というのが理由のひとつだったはず。
今はリンクを完全に書き直しているので、
imodeでも>>nnでのリンクを有効にしてもいいような気がするのだが、どうだろう?
もちろん、混雑時間帯の表示範囲内リンクはカットして。
また、表示する場合でも、imode時はtarget=_blankは無くしてもいいかな?

もう一点。
現在、index.htmlでは<base href="..">を使っていないのだが、この理由として、
各スレに書きこまれた>>nnのリンクが無効になるというのがあると思う。
(pageview.cgiでもbaseを出力するようになれば同じ)
ということは、>>nnの形式のリンク(「省略されました・・全部読むには」も)が
index.htmlから呼び出された場合でも
read.cgiが正常に動作すれば、bbs.cgiで完全path形式へ移行することも可能になる。
>>nnのリンクとして、
・旧形式
<a href="../test/read.cgi?bbs=tech&key=1000035521&st=1&to=1&nofirst=true" ...>
・現在
<a href="../test/read.cgi/tech/1000035521/1" ...>
・完全path(index.htmlでもbase hrefを使用)
<a href="1000035521/1" ...>
の3種類を想定して考えると、
index.htmlに<base href="http://piza2.2ch.net/test/read.cgi/tech/">が
あった場合、それぞれ、
http://piza2.2ch.net/test/read.cgi/test/read.cgi?bbs=tech&key=1000035521&st=1&to=1&nofirst=true
http://piza2.2ch.net/test/read.cgi/test/read.cgi/tech/1000035521/1
http://piza2.2ch.net/test/read.cgi/tech/1000035521/1
として呼び出されることになる。
3番目の形に対応出来るのは当たり前だが、
この形式に移行出来ればindex.htmlのサイズの他に、
bbs.cgiがdatに書きこむサイズももう少し減らせる。

ということで、上の2形式にも対応しておき、その版が導入されたら
bbs.cgiにbase href出力と>>nnリンクの完全path移行を
提案出来ると思うのだが、どうだろう?
ちなみに、対処は非常に簡単で、get_path_infoに数行追加するだけで済む。


867 名前: デフォルトの名無しさん 投稿日: 01/10/04 19:01
かなりがいしゅつですが■▲▼がまともに機能しなくなります


868 名前: デフォルトの名無しさん 投稿日: 01/10/04 21:50
そっか、逆に今#がついてるのが全部無効になるのか。
気付かんかった。読み流しちゃってたらしい。ごめん。


869 名前: デフォルトの名無しさん 投稿日: 01/10/06 13:50
USER_AGENTかなんか見ることで携帯かどうか判別して
勝手にimode=trueになるようにできんかな?


870 名前: デフォルトの名無しさん 投稿日: 01/10/06 14:08
>>869
できなくはなさそう。
http://www.nttdocomo.co.jp/mc-user/i/tag/s2.html


871 名前: デフォルトの名無しさん 投稿日: 01/10/06 14:25
>>870
HTTP_USER_AGENTが "DoCoMo/"で始まってたらi-modeってかんじ?

ついでにEZWebは
http://info.ezweb.ne.jp/factory/tec/spec/4_4.html
"UP.Browser/"かな。

J-Skyは…ちらっと探したがわからんかった。


872 名前: デフォルトの名無しさん 投稿日: 01/10/06 15:04
Jスカイweb
http://www.j-phone-east.com/p_and_s/sds/jskyweb/jsky_page/web/caution.htm

ドットi(東京電話アステル)
http://www.ttnet.co.jp/tokyodenwa_astel/doti/siyou/jyokyo.htm


873 名前: デフォルトの名無しさん 投稿日: 01/10/06 16:13
>>869-872
対応してみた。


874 名前: デフォルトの名無しさん 投稿日: 01/10/06 20:36
saladで過去ログあってもrawモード時のエラーが
「そんな板orスレッドないです」になる


875 名前: デフォルトの名無しさん 投稿日: 01/10/06 20:45
.datだけではなく、.dat.gzも探すように直さないとね。


876 名前: 名無し 投稿日: 01/10/07 14:06
夜勤さんに聞いたところでは、pageview.cgi は廃止されたそうです。
iモードで Next Page を read.cgi で実装していただけないでしょうか。
どうかよろしくお願いします。

http://news.2ch.net/news/i/


877 名前: デフォルトの名無しさん 投稿日: 01/10/07 14:08
>>876
それはread.cgiの管轄じゃないような(^^;


878 名前: 名無し 投稿日: 01/10/07 15:14
>>877
pageview.cgi は廃止されてしまったので
read.cgi でやってもらうしかないのです。


879 名前: デフォルトの名無しさん 投稿日: 01/10/07 15:19
>>878
リンク元がpageview.cgiという名前で飛ばしてるのに
read.cgi側では何もできない。

リンク元が変更できるとしても、pageview.cgiと同じものを
read.cgiとは別に作るほうが合理的。やることまるで違うし。

となると結局read.cgiの話ではない。


880 名前: デフォルトの名無しさん 投稿日: 01/10/07 16:26
>read.cgiとは別に作るほうが合理的。

rawモード全てにあてはまるね。


881 名前: 名無しさん 投稿日: 01/10/07 17:06
というかimodeでpageviewを使ってるのに勝手に廃止って言うのが
なんか場当たり的でみっともないなあ。1chのことを馬鹿に出来ないような。


882 名前: デフォルトの名無しさん 投稿日: 01/10/07 21:47
ver5.24 で902以降のレスの 次100 の範囲が 1001 を
越えるのはこれでいいんだっけ?
外出だったらすまん.


883 名前: デフォルトの名無しさん 投稿日: 01/10/07 22:24
>>880
確かにrawモードも別にしたほうが綺麗だね。
ただ読む対象が同じなのでread.cgiでもまあいいんでないかな。


884 名前: デフォルトの名無しさん 投稿日: 01/10/08 16:15
このスレッドを差分取得しようとしても、
http://natto.2ch.net/test/read.cgi?bbs=isp&key=997962695&raw=1064.254564
常に全レス返って来てしまいます。
-INCR 254564/512K


885 名前: デフォルトの名無しさん 投稿日: 01/10/08 16:18
>>884
1000超えまくりスレなんですね。


886 名前: デフォルトの名無しさん 投稿日: 01/10/08 16:21
1000超えなだけに余計深刻な感じ…
ホットゾヌがいつもログを取得しなおすので気付きました。
どうやら1000超えならどのスレッドでも発生するみたいです。
http://saki.2ch.net/test/read.cgi/sakura/1001730357/l100


887 名前: デフォルトの名無しさん 投稿日: 01/10/08 16:33
dat_out_raw()の
&& !(raw_lastnum <= lineMax
と、getLineMax()の
if (line > RES_RED)
break;
の合わせ技で-INCRになってると思われ

read.cgi経由ではrawモードでも1000超えのレスの取得は
認めない(+OK 0/512Kを返す)という方針でどうでしょうか。


888 名前: デフォルトの名無しさん 投稿日: 01/10/08 18:59
1001レスオーバーのdatがあってもそこでファイルが終了したものと見なすようにした。
どうかな。


889 名前: デフォルトの名無しさん 投稿日: 01/10/08 19:02
そろそろ夜勤さんの降臨きぼーんだけど
ラウンジの圧縮が滞ってたりするとこ見ると
最近いないんだろうか


890 名前: 名無し娘。 ◆vP.bOZFQ 投稿日: 01/10/09 05:14
御無沙汰しております。みなさまお疲れさまです。

>>889
http://teri.2ch.net/test/read.cgi/accuse/996674822/420
とのことで(^^


891 名前: 名無しさん 投稿日: 01/10/11 00:17
ところで、わざわざdatディレクトリ見に行かなくても、
ブラウザで見た時にdatのファイルサイズがわかるように、
一番下のread.cgiのバージョンの横に、
そのスレのdatファイルのサイズ表示しません?
モナー板とかでは、ファイルサイズが重要なので
+10バイトくらい転送量が増えるけど、許容範囲なんじゃないかな?


892 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/11 00:41
きょうは、ひさびさに います。


893 名前: デフォルトの名無しさん 投稿日: 01/10/11 01:50
時間がありましたら、
http://www.gedoh.org/aki/2ch/current/bbs/read.tgz (自動更新されていた分)と、
ftp://readcgi.dyndns.org/incoming/ver5/read.5.24.2.tgz (それ以後に更新された分)
を、試しにいれてみてもらえますか?


894 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/11 03:36
http://www.gedoh.org/aki/2ch/current/bbs/read.tgz を落として
ftp://readcgi.dyndns.org/incoming/ver5/read.5.24.2.tgz を上書きですか?

それとも、これら二つは別物ですか?


895 名前: デフォルトの名無しさん 投稿日: 01/10/11 03:55
下の方には、read.cやread2ch.h等が入っているので、
展開されたファイルを上書きしちゃってください。


896 名前: デフォルトの名無しさん 投稿日: 01/10/11 08:46
ん? 帰ったかな?
重要な注意ですが、今回からmod_gzip未導入の鯖に入れるときは
#define GZIP
#define ZLIB
を忘れないでください。さもないといきなり転送量が跳ね上がると
思われ…


897 名前: デフォルトの名無しさん 投稿日: 01/10/11 14:35
read.5.24.2.tgzってcvsの内容と違うね。


898 名前: デフォルトの名無しさん 投稿日: 01/10/11 14:37
>>897
ってcvsのほう最新見てなかった。一致してたよ。スマソ


899 名前: デフォルトの名無しさん 投稿日: 01/10/11 14:39
つーか
http://www.gedoh.org/aki/2ch/current/bbs/read.tgz
はもう復活しないの?


900 名前: ヒロユキ@ギコナビ 投稿日: 01/10/11 21:53
こんにちは。ギコナビ作っている人です。
rawモードで取得するときは、「If-Modified-Since」は付けたほうがいいですか?
先日から実験しているのですが、2〜3日くらい前から上記ヘッダを付加
し、未更新のスレを取得しようとすると、5秒くらい後に304が返ってきます。
前は、GET投げるとすぐに304帰ってきたんだけど。。。実況対策の為かな?
また、1レス程度更新されていても、304が帰ってくる場合もありました。
これって、仕様でしょうか?


901 名前: デフォルトの名無しさん 投稿日: 01/10/11 21:57
>>900
まさに実況対策のためです。
Katjusha_DLL_REPLY機能のついたread.cgiが投入されたら
そっちを使ったほうが更新があってもなくても負荷は
低くなります。


902 名前: デフォルトの名無しさん 投稿日: 01/10/11 22:50
現状では、If-Modified-Sinceは付けてもらわないと困るくらいです。
+OK 0/512K
だけの行が返るのは、全く無意味な負荷になっています。

Katjusha_DLL_REPLY形式のリクエスト(?raw=.nnnn)であっても、
If-Modified-Sinceがあれば、
サイズをチェックする前にLastModifiedをチェックするので、
同じく304が返ります。
また、If-Modified-Sinceだと実況対策の304の効果も期待できるので、
できれば付加するようお願いします。

ただ、rawモードだと.datをGETするのに比べて
cgiプロセス起動の分だけ同じ304でも負荷が余分にかかり、
鯖の重さの影響をもろに受けます。
それが時間がかかる原因かもしれません。


903 名前: ◆DLL/lGHE 投稿日: 01/10/11 22:55
>>845をもう一度お願いしてみたんですけど
今は鯖増設の作業のほうが優先みたいですね…


904 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 00:19
新しいの入れましょー


905 名前: ◆DLL/lGHE 投稿日: 01/10/12 00:23
とりあえず最新版固めてみました。
http://user.freedomainspace.com/read.tgz


906 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:23
お疲れ様です。


907 名前: ◆DLL/lGHE 投稿日: 01/10/12 00:24
URL間違えた。
http://user.freedomainspace.com/bbs/read.tgz


908 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:26
今gameとnewsはmod_gzip入ってないんでしたっけ?
>>896参照。


909 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 00:29
まずは、choco にいれますー


910 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:32
どきどき


911 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 00:34
#define GZIP
#define ZLIB

choco は、mod_gzip 入ってないから、read2ch.h のこれらは
#define したままでいいんですよね?


912 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:35
>>911
です


913 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:37
>>911
はい、そうです。


914 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:39
お、変わってる
>read.cgi ver5.25 (01/10/12)


915 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:40
わーい
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/


916 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 00:40
入りましたー

http://choco.2ch.net/test/read.cgi/ainotane/1002814747/l50


917 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:41
マンセー
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.147


918 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:42
tag YAKIN20011012打ちましたー


919 名前: ◆DLL/lGHE 投稿日: 01/10/12 00:42
Katjusha_DLL_REPLY使ってみたいな…(ボソ


920 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 00:44
>>919
それは、どうすればいいの?


921 名前: ◆DLL/lGHE 投稿日: 01/10/12 00:46
>>920
いまchoco鯖に入ったread.cgiではすでに使えるのですが、
負荷が上がるんじゃないかと心配してるのです。
転送量は下がります。
今現在はどちらが優先でしょうか?


922 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:47
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=77
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.76
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.77
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.78
http://choco.2ch.net/test/read.cgi/ainotane/1002814747/?raw=.2500


923 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 00:49
うーん、微妙。。。
今現在は、負荷下げかな(サーバ増設も含めて)


924 名前: ◆DLL/lGHE 投稿日: 01/10/12 00:50
じゃ、とりあえず見送ることにします。
つーか負荷優先なら>>845やってほしい…


925 名前: デフォルトの名無しさん 投稿日: 01/10/12 00:58
choco、なんかgzip圧縮が効いてないみたいです。


926 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:03
telnetで叩いてみた結果
ちょっとやばいかも…

GET /test/read.cgi/dancesite/1002815310/?raw=.0 HTTP/1.0
Host: choco.2ch.net
Accept-Encoding: gzip

HTTP/1.1 200 OK
Date: Thu, 11 Oct 2001 16:01:40 GMT
Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_gzip/1.3.19.1a mod_ssl/2.3.6 OpenSS
L/0.9.3a
Last-Modified: Thu, 11 Oct 2001 16:01:56 GMT
Connection: close
Content-Type: text/plain

+OK 2467/512K
KINTAMA<><>01/10/12 00:48<> ナインティナインの@llnightnippon
.com <br> 1:00〜3:00 <br> <br> ホームページ <br> http://www.allnightnippon.com/
(以下省略、生のまま)


927 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:05
mod_gzipが入ってるので、read.cgiでは圧縮やってないんですね。
しかしmod_gzip側もまた圧縮してくれてない。


928 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:06
つーこって >>845 が必要ってかんじですかね?


929 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 01:06
うっ まずい?
choco は、 GZIP はいってません。
で、どうすれば?


930 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:08
>>929
>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
mod_gzip入っているようにしか見えませんが(^^;


931 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:08
>>929
↓これ見る限りmod_gzipは入ってるようですので
Server: Apache/1.3.6 (Unix) PHP/4.0.3pl1 mod_gzip/1.3.19.1a mod_ssl/2.3.6 OpenSS
L/0.9.3a

>>845をお願いします。
それで圧縮されるようになるはずです。


932 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 01:10
あれっいつのまに。。。
(勘違いしてたかな?)

mod_gzip_item_include mime "text/.*"
を .htaccess に入れるといいのですね、


933 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:10
>>932
はい、そうです。よろしくお願いします。


934 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 01:12
いれましたー。


935 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:14
うまくいってませんね。


936 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:14
変化ないですね…
実際にはmod_gzipが入ってないのに表示だけ変わってる?


937 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:15
read2ch.hの
#define CHECK_MOD_GZIP
をコメントアウトするしかないかな? (^^;


938 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 01:16
うーん、mod_gzip がちゃんとインストールできていないようです。

natto サーバに、read.cgi ver5.25 いれましたー


939 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:17
>>938
chocoに関しては>>937の対策をお願いします。


940 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:17
>>938
nattoはちゃんと圧縮できているようです。


941 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:19
nattoはちゃんと圧縮されてますね。一安心。


942 名前:  ,-- 投稿日: 01/10/12 01:22
>>929
割り込んですみません。
ホットゾヌユーザですが、chocoでスレ一覧出すときに問題が出てます。

スレッド一覧取得エラー
http://choco.2ch.net/tv/
This is not gzip!

nattoは入れ替え後も問題ありません。

状況はわかりましたので、気長にまってます。よろしくお願いします>夜勤さん


943 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 01:23
>>939 を choco でやってみました。

mod_gzip の入っているサーバ > choco 版
mod_gzip の入っていないサーバ > natto 版

を入れると良いのかな?


944 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:25
逆のような


945 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:25
>>943
逆では?
mod_gzip の入っているサーバ > natto 版
mod_gzip の入っていないサーバ > choco 版


946 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:26
choco圧縮されるようになりました。


947 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 01:26
ありゃ 逆でした。


948 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:27
テレホタイム以外の間だけ、html化待ちのスレッドをread.cgiで
読めるようにするのは駄目ですか?

もし、軽めの鯖(そんなの鯖はないか)だけでも許可してもらえるなら、
#define AUTO_KAKO
#define AUTO_KAKO_MODE 1
をお願いします。


…でも、そうするとツールからは常時に全部のdatが読めてしまうので、
それも禁止するなら、面倒ですけど、
read.cの2194行目から("everywhere"を検索してみつかったところ)の
 if (rawmode)
  mode = 2; /* everywhere */

 if (rawmode)
  mode = 0; /* everywhere */
にしてからお願いします。


949 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:28
むしろ>>845を全鯖でやってほしいかも。


950 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:29
>>948
うわ、0とか2ってなんだ(笑)
意味分からん


951 名前: 942 投稿日: 01/10/12 01:30
choco読めるようになりました。ありがとうございました。


952 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:31
>>950
0 dat/のみ許可
1 temp/も許可
2 kako/も許可
です。


953 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 01:31
>>949
なにがどう違うのか、解説して欲しかったりして、
すみませんが。


954 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:32
>>953
.datの直読みが圧縮できるようになるので、
転送量を増やさずに負荷を下げられます。


955 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:33
config.txtより
>AUTO_KAKO_MODE
>AUTO_KAKOで過去ログを取得/閲覧できる制限を設定する(0〜2)
> 通常読み出し RAWモード
> temp/ kako/ temp/ kako/
> 0 = × × ○ ○
> 1 = ○ × ○ ○
> 2 = ○ ○ ○ ○
> 凡例) ○は閲覧可能 ×は閲覧禁止

これか。
ていうかマジックナンバーをソースに埋めるのやめようよ(´д`;)
せめて書き換えるなら
mode = 0; /* dat/ only */
のようにコメントも…


956 名前: 949 投稿日: 01/10/12 01:34
もしかして>>948の間違いだったとか?


957 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 01:37
>>954
それは mod_gzip が入っているサーバだけですよね?


958 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:38
>>957
あ、そうです。
mod_gzipが入ってない鯖でやるとInternal Server Errorに
なっちゃいます。
<IfModule "mod_gzip.c">
</IfModule>
で囲めば大丈夫かな?


959 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:44
mod_gzipの入ってない鯖ではread.cgi経由にすればいいから
最悪でも現状維持です。


960 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:46
teriが圧縮されなくなってますね。


961 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:47
うへえ、piza2も!


962 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:50
>>960-961
ちゃんと圧縮されてるよ。
300バイト以下とか、圧縮してかえってサイズが大きくなりそう
だったり負荷の割にサイズの節約にならなさそうなとき
圧縮しないのはmod_gzipの仕様。


963 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:51
>>962
あ、そうか。ホットゾヌがgzip決め打ちで駄目になってるだけなのか。


964 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 01:58
mod_gzip が導入されていないサーバ
choco , news , game

>>937
>>845 ×

mod_gzip が導入されているサーバ
その他全部

>>937 ×
>>845

となりました。


965 名前: デフォルトの名無しさん 投稿日: 01/10/12 01:58
ところでそろそろ1000が近いんですけど…


966 名前: デフォルトの名無しさん 投稿日: 01/10/12 02:01
>>845の設定効いてないみたいですね…
>>843でないと駄目なのかも…


967 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 02:04
natto を >>843 にしてみた。
mod_gzip_item_include file \.dat$


968 名前: デフォルトの名無しさん 投稿日: 01/10/12 02:06
>>967
nattoの.datが圧縮されるようになりました。
mod_gzipの入ってる鯖は>>843でお願いします。


969 名前: ◆YaKIN/eo @夜勤 ★ 投稿日: 01/10/12 02:12
りょうかいー


970 名前: デフォルトの名無しさん 投稿日: 01/10/12 02:20
新スレ立ててきます。


971 名前: デフォルトの名無しさん 投稿日: 01/10/12 02:24
立てました。移動よろー
http://piza2.2ch.net/test/read.cgi/tech/1002820903/l50

>>969
お疲れ様ですー



2ちゃんねるは、ここのサーバを使ってるです。。。