read.cgi再開発スレ Part2
■ このスレッドは過去ログ倉庫に格納されています
◆cZfSunOs.Uさん作成のmod_cgidsoにより、大きな負荷軽減が図られたread.cgi。
このスレでは、そんなread.cgiの(再)開発・実装すべき機能について取り扱います。
前スレより:
574 名前:FOX ★[sage] 投稿日:05/01/05 15:54:28 ID:???
全てのサーバ cobra/toger/banana で read.cgi の dso化が完了。
これから href の置き換え ime.nu 対応を行い
それが終了したら第一ステップは完。
第2ステップは
2-1) bug つぶし
2-2) 仕様の変なところは変更
2-3) 時代背景にあわせたデコレーション
こんなとこかと、
前スレ:
read.cgi再開発スレ
http://qb5.2ch.net/test/read.cgi/operate/1087199303/ >>276
ソースちょっと読んで、わかりました。
てへてへ。
て裕香、スレッドキーは10桁までだとゆうことですか。 で、なんでこんなことになったかというと、
機動種士ガンダムSEED DESTINY PHASE-561
http://anime.2ch.net/test/read.cgi/anime/1120319538/
このへんから、先週の盛り上がり加減(というか実況度合い?)はどうだったのかなぁと、
ちと覗いてみたら、1のテンプレのキーが、そうなっていたと。 で、このエラーメッセージは、
スレッドキーの指定が不正です。
あたりが、よさげ。 機動戦士ガンタムSEED DESTINY PHASE-558
http://anime.2ch.net/test/read.cgi/anime/1120299148/
ほんとはこれだったみたい。おさわがせしました。 こちらが適当ではない内容ならすみません、
Over1000したときに出る『Over 1000 Thread』
に、日付と時刻を入れるのがよいかと思ったのですが。
普通のレスと同じ様な要領でも結構ですし。 お手数かけて済みませんでした、ありがとうございます。。 #include "apr_buckets.h"
#include "apr_date.h"
#include "apr_errno.h"
#include "apr_strings.h"
#include "apr_tables.h"
#include "util_filter.h"
#include "http_request.h"
static apr_status_t rdat_filter(ap_filter_t *f, apr_bucket_brigade *b)
{
return ap_save_brigade(f, (apr_bucket_brigade **)&f->ctx, &b, f->r->pool);
}
static apr_status_t read_dat(CH2READ *ch2, request_rec *r)
{
int rv;
ap_filter_rec_t frec = {"READDAT", {rdat_filter}, NULL, AP_FTYPE_RESOURCE, NULL};
ap_filter_t f = {&frec, NULL, NULL, r, r->connection};
char *uri = apr_pstrcat(r->pool, "/", ch2->zz_bbs, "/dat/", ch2->zz_key, ".dat", NULL);
request_rec *rdat = ap_sub_req_lookup_uri(uri, r, &f);
if (!(rv = rdat->status == HTTP_OK ? ap_run_sub_req(rdat) : rdat->status)) {
apr_brigade_pflatten(f.ctx, &ch2->BigBuffer, &ch2->zz_fileSize, r->pool);
apr_brigade_destroy(f.ctx);
ch2->zz_fileLastmod = rdat->mtime ? rdat->mtime
: apr_date_parse_http(apr_table_get(rdat->headers_out, "Last-Modified"));
}
ap_destroy_sub_req(rdat);
return rv ? APR_ENOENT : APR_SUCCESS;
}
----------------------------------------------------------------------
雪だるま版 read.cgi での dat 読み込みは↑な感じかなぁ,というのを何となく.
普通の CGI だと localhost にソケットで接続して(ryってところでしょうけど,
DSO ではサブリクエストを使えばいいんでソケット不要ですね.
ただ,mod_rewrite ではサブリクエストで reverse proxy を使えないという
制限があるんで,ProxyPass ディレクティブで↓のように指定で.
ProxyPass /livejupiter/kako !
ProxyPass /livejupiter/_datArea !
ProxyPass /livejupiter/ http://live22priv.2ch.net/livejupiter/
ProxyPassReverse /livejupiter/ http://live22priv.2ch.net/livejupiter/
CacheDisable /livejupiter/kako
CacheDisable /livejupiter/_datArea
CacheEnable disk /livejupiter/
過去ログ・dat 落ちログに関しては
・ ライブな dat のように転送 (live22 -> live22x) の即時性は要求されない.
・ mod_disk_cache のキャッシュ領域を /md に確保するとして,
即時性が要求されないデータで /md を食い潰すのはもったいない.
ということで,それらは rsync でマターリ転送することにすれば,
offlaw.cgi は無修正で Ok でしょうかね. 既出だったらすまない。メールアドレス入力欄に「sage」って入力
しなくても下げられるようになりませんか?
あれだけでも、かなり転送量減ると思う。
<a href="mailto:sage">sage</a>
今、転送量がどれくらいの位置付けで問題になってるのかは別としても、
メール欄でのsage機能を変えるって事は様々な方面に影響が出ちゃうからなぁ・・・ aタグ外せば?って話かと思ったのだが。mailto:sageは意味無いよね?みたいな >>290
実際にメアド書く人はほとんどいなからaタグって不要だとは思うけど、
それだとメール欄の内容表示はどこで?ってことにならない?
sageつつもそれプラスなにか書いてることあるし。ネタバレとか。 今は転送量は問題になってないはず
改修するコストに見合うだけのメリットがあれば変えてもいいんだろうけど 今の所転送量は問題になっていないが、そのうち2ちゃんねるユーザが増えて来たら
また危なっかしい事になりかねない。
せめて、<a href="mailto:sage">sage</a>は止めた方が良いのでは?
せっかくread.cgiを最開発するならそこを改良すると良いと思う。
そしてスタイルシートを使って、外部ファイルにするってのはどうだい?
ほとんどのユーザはダウンロード時間を早くするためにキャッシュを有効に
してるだろうから、うまくすればCSSをキャッシュしてくれるかもしれない。
そうすれば次回はダウンロードする必要無いし、転送量も減るかも。。 外部ファイルはしないってひろゆきが書いてたのに
またそこへ戻すの? <a>タグを削ることで、何%の転送量が稼げる?
もちろん、gzip圧縮前提で メール欄はそれなりに色々と役立ってるから
仕様変更する必要ないでしょ
いつぞやみたいに転送量削減するか2ch閉鎖するかみたいな
事態にならない限り 何に役立ってるのか理解出来ない。sageる機能ならチェックボックスにチェック
いれるだけで十分かと。良くメール欄に「晒しage」って書いてるの見かけるが
全く<a>で括る必要が無いと思われ。
実際メールアドレス書く人少ないしね。 メール欄にネタバレや、IE使ってる初心者に読んで欲しくないコメントや、
あとアップローダのパスとか入れてる人が結構居るんだってば
板によってはそういう事例が無視できるところも多いだろうけど sageだけ削るのとメール欄を削るのとごっちゃになって噛み合ってない気が。
sageは書き込み時にスレを上げない、という機能だけだから
読み込み時に見せても意味ないかも、というのは同意。
ただ>>298の言う通りどの程度削れるか実測してみないと説得力ないかも デフォルトでsageにしたら
メール欄に何か書いてるレスが少数になって目立っちゃうでしょ
ああこりゃ何か意図があるなということになっちゃう 現状のデフォでageになってるよりsageにした方が
並び替えが発生しなくなる分鯖の負荷は減るしage荒らしも減るよね 数%レベルの転送量削減のために機能を変えるぐらいなら、デフォ名を短くした方がよほど
効果がある。
転送量に限らず、性能とかもそうだけど、小さいとこからこつこつとじゃなくって、実測で評価
して効果が大きいところからやるべき。
それにしても、スレッドフローティング型掲示板って何なんだろう・・・ <a>を削ったところに<font>ををつけるとなるとだめかも。
このスレをつかって実験してみた。
<a href="mailto:sage"> 〜 </a> を <font color=green> 〜 </font>
にしたら 101377 byte → 101165 byte
datの<>sage を省いてみたら 77176 byte → 75886 byte
(sageを消してない状態で)
htmlで名無しを?に変えたら 101377 byte → 96733 byte
datでやったら 77176 byte → 72532 byte いや結論でてるし。
投稿年が4桁に戻せる状況なんだよ。閉鎖騒動後と違って。
改善すべきところは他にあるのだ 「動け動けウゴウゴ2ちゃんねる」を「GoGoGirl」にしたら、何バイト減る? 「以下、名無しにかわりましてVIPがお送りします」も長いんじゃない?
VIPの。。。 てかもうその話終わっちゃったしね
そこまで転送量減らしたいなら、
datの中身だけ送ってJavaScriptに表示やらせたほうが早いんじゃない? ていうか専用ブラウザ以外で閲覧できなくすればいいし…w 今もある(暫定的に)
多分ここのスレ扱いじゃないと思うけど倉庫入りしたスレの
2chリンクにime.stがついている不具合
例 ここの>>3とか
http://qb5.2ch.net/operate/kako/1087/10871/1087199303.html >>318
うちの環境では、そのスレはime.nuついてるけど。 <dt>と<dl>にid付けて<dt id="dtレス番">、<dl id="dlレス番">みたいにして
例 <dt id="dt3">3 :<font color=green><b>名無し </b></font>:2005/08/06(土) 16:15:20 <dd id ="dd3"> ・・・・・・
IEで見たときにも>>レス番のポップアップするようにしてみたんだけどどうかな?
// レスポップアップ
function popAnchor() {
var evt = window.event.srcElement;
if ((evt.tagName == 'A') && (evt.title == "")) {
if (evt.innerText.search(/^>>(\d+)\-?(\d*)/) !=-1) { // ハイパーリンクなら
var st = RegExp.$1;
var ed = RegExp.$2;
if ((st > ed) || (ed == "")) {ed = st;} // 変なリンクチェック
if ((ed - st) > 5) {ed = eval(st) + 5;} // 5レス以上は5に
while (st <= ed) {
evt.title += document.getElementById('dt'+st).innerText + "\n" + document.getElementById('dd'+st).innerText + "\n\n"; // レス内容獲得
st ++;
}
}
}
}
document.onmouseover = popAnchor; // マウス監視
if ((evt.tagName == 'A') ← これかわいい(´∀`*) >1にレスアンカーのあるスレをトラックバックするとタグが表示される件について トラックバック先が連投規制で書き込みが反映されなかったときに
エラーメッセージが出ない件について
多分落ちてるスレに対してトラックバックかけても同様だと思う 【トラックバック来たよ】 (ver. 0.11)
[タイトル] スレッド作成法とスレ立て相談の資料・研究
[発ブログ] 2ちゃんねる資料編纂室@2ch掲示板
http://that3.2ch.net/test/read.cgi/dataroom/1104683767/l50
[=要約=]
立て相 http://ttsearch.net/s.cgi?k=%97%A7%82%C4%91%8A&o=r
一般的なスレ立ての案内フロー他 <a href="../test/read.cgi/dataroom/1104683767/2-50" target="_blank">>>2-50</a>
>>327
トンクス
そのうえ、レスアンカーにこのスレのリンク貼られてるし
でも、スレ違いじゃない? いや
「>1にレスアンカーのあるスレをトラックバックするとタグが表示される」
ということが言いたくてトラックバックの内容自体はどうでも良いんだと思うが >>329
read.cgiはdatを読んでhtmlにしてるだけだからスレ違い
bbs.cgiかトラックバック関連のスレッドのがいいと思う 運用のトラックバックスレは検索では見つからないけどどっかにあんの >>319
補足すると「2ちゃんねるが外部サイト扱いになっている」
これもスレ違いだと思うけど一応
容量オーバーに関して、何の予告もでず、
容量オーバーになっても、投稿するまでそれがわからないのは不便です。
改善の余地はないでしょうか?
よろしく、お願いいたします。
たとえば、これなんかは容量オーバーになっていますが、みためにはわかりません。
http://life7.2ch.net/test/read.cgi/psy/1122591224/l50
E-mail (省略可):←これウザい
Mail:だけでいいよ。 「ウザい」なんて、心の中で思ってればいいこと
お前は客か? >>334
見た目で判るようになっているかと♪
501 KB [ 2ちゃんねるが使っている 完全帯域保証 レンタルサーバー ]
↑↑↑ >>339
Jane系はステータスにスレ容量を表示してる筈 ってか専用ブラウザの事までなんでread.cgiスレで言ってるんだろう・・・
自分が使ってる専ブラが対応していないなら
対応しているブラウザーに乗り換えるのもいいだろうし、
作者に問い合わせてみたりすればいいだろうし。
どちらにしてもスレ違い いやあの普通にread.cgiが吐き出していると思いますけれども、、、
501 KB [ 2ちゃんねるが使っている 完全帯域保証 レンタルサーバー ]
↑↑↑ 容量オーバーの容量ってhtmlファイルの容量なの?
datじゃなくて >343
htmlなら512KB
datなら500KB 多分、334が言いたいのは容量表示のことじゃなくて、
容量がオーバーしてますのでもう書けません、みたいな表示が欲しいってことじゃないん?
容量制限知らない人もいるだろうし。
たとえばレスが950超えると赤反転で注意文が出てますよね。
あれと同じ様なことを期待してるのではなかろうか。
あ、当然専ブラは関係無い話です。 >>347
read.cgi ver7.20p (04/01/07)
の時だと、バックグランドが赤で、白抜きで
上の方にこんな表示がでていたんですよ。
容量オーバーになっても、予告と同じ表示のままでしたけど。
■掲示板に戻る■ 関連ページ 全部 1- 101- 201- 301- 401- 501- 601- 701- 最新50
サイズが496KBを超えています。512KBを超えると表示できなくなるよ。
【xxxxx】zzzzzzzz【hhhhh】
そういえば以前はそんな感じだったね
たしか昔はレス全部表示が出来なかった気が 転送量が厳しい時 → こまごまと読んでもらいたい
サーバ負荷が厳しいとき → 一気によんでちょ わーちょろさんだーw
今は負荷が厳しいということ? ex11.ex10.news19.live20.live21のread.cgiを常時止めておけばいいんじゃね?
鯖にやさしい このスレかどうか知らんけど
鯖移転したあとに残ってる旧アドレスのスレの書き込みエラー
「ユーザー設定が消失しています」じゃわかりにくいんでは ユーザー設定が消失しています
は
SETTING.TXTがありません
という意味だったような・・・? いずれread.cgiが無くなるってのはどうですか
せんぶら普及andどっかでみたインスタント2chビューアーみたいなのを個人が作るとかで >>361
広告はどこに出せばいいの?
(2chの収入源を排除するの?) >>363
真面レスなんだが結構よくない?
ただread.cgiがかなり重くなるかな...?
もしくはスレ作成時にスレ毎に特定の広告を決めるようにしとけば、
(決めかたが難しいけど)スレの1行目(カウンタの次ぐらい)に
広告を出すことはできる...read.cgiも既存のままでいいし。。 Googleっぽく、関連がありそうなスレに関連がありそうな広告を出すのが
宣伝効果も高くていいような
ただ、今の現状ではアダルト広告ばかりになりそうな気もするけど 2ちゃんねるはアダルトは全面禁止
PINKちゃんねる行き ■
スレの頭に総レス数書いてあるとheadlineとかから開いた時便利
昔は700-とかがあったからどれくらい進んでるか目安に出来たけど ■
スレスト処理済のスレの書き込み欄が表示されてる→表示させないように
(以前は書き込み欄自体が消えていた) http://qb5.2ch.net/test/read.cgi/operate/1129726127/79-80n
これは LANG=ja_JP.SJIS で -c オプションを有効にした際の bbsd による
html 生成では対応してますが,read.cgi でも同様の対応をすればいいのかな.
まぁ少々面倒ではありますが. ■ このスレッドは過去ログ倉庫に格納されています