■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50
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 
  あたりにまとめられているはず。 
 
- 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(""")は、 
 '"'で囲まれた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 
 < #ifdefLATEST_ANCHOR 
 こんな形式のヤツでいいのかな? 
 インデントがつぶれるのも不安だし。 
  
 もし、それでよければ、そいつ(190行程)をコピペして 
 前スレに貼るけど。 
 前スレの944の追加と合わせれば、 
 ちゃんと動くと思う。 
  
 って、もう寝てるか。 
 それと、CRCの計算等には、全然ついて行けないので、ごめんなさい。 
 さらに、timeの出力の意味すらしらない。 
 
- 175 :|  - -) :01/09/11 16:37
 -  diff があるなら -c or -u オプションつきでとってください... patch 当てやすいので。 
 あと、できるなら mimencode してくれるといいです。 
 # そのまま貼り付けはインデント崩れるしuuencode は <とか出てきてやばい 
 
- 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を登録してから、 
 #ifdefPUT_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 
 「>」を>や「<」を<に変換するのは、本文中にタグを埋め込まれるのを 
 避ける意味もあるから、まずいことになりゃしないか? 
 
- 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
 -  #ifdefined(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()の最後で、 
 #ifdefREFERDRES_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 
 を 
 #ifdefREFERDRES_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を設定した後に、 
 #ifndefNDEBUG 
  { 
   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>タグ前・レス末尾の空白を 
  (可能なら)全て削除する */ 
 #defineCUT_TAIL_BLANK 
  
 /* '<',"http://"の直前の文字を調べ、必要ならば空白を加える。 */ 
 /* #defineSTRICT_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/512KRange:0-2440/22735Res:1-50/478 
  /tech/998845501/?raw=0.0 #今までと同じ 
 +OK 297551/512K 
  /tech/998845501/50-99?raw=0.0 
 +PARTIAL 11767/512KRange:12226-23992/297551Res:50-99/883 
  /tech/998845501/l50?raw=0.0 
 +PARTIAL 27967/512KRange:269584-297550/297551Res:834-883/883 
  /tech/998845501/l20000?raw=0.0 #強引に全部送信 
 +PARTIAL 297551/512KRange:0-297550/297551Res: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; 
 #ifdefRAWOUT_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); 
 #ifdefRAWOUT_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
 -  続き 
 #ifdefAUTO_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()の 
 #ifdefined(GZIP) && defined(RAWOUT) && defined(Katjusha_DLL_REPLY) 
 を 
 #ifdefined(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 
 お疲れ様ですー 
 
325KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30