monazilla Part 5at TECH
monazilla Part 5 - 暇つぶし2ch800:デフォルトの名無しさん
07/11/01 18:41:28
URLリンク(www.atmarkit.co.jp)

これじゃだめ?

801:デフォルトの名無しさん
07/11/01 18:43:52
>>799
2.0以降なら
HttpWebRequest.AutomaticDecompression

802:デフォルトの名無しさん
07/11/01 19:02:51
>>800-801
ありがとう(・ω・)ノシ

でも.NET 2.0以降じゃないと対応してないのか・・・
あいにく1.1(VS2003)で開発しているんだよね(´・ω・`)

803:デフォルトの名無しさん
07/11/02 09:10:29
>>802
今時1.1はちとアレだ、Express Editionでも落として来い

と言いたいところだが

804:デフォルトの名無しさん
07/11/04 01:52:33
お題: 完成した専ブラをみんなに使ってもらうには

805:デフォルトの名無しさん
07/11/04 03:32:37
Microsoftに売り込んでWindowsにバンドルしてもらう

806:デフォルトの名無しさん
07/11/04 12:18:21
>>804
monazillaに登録されると一気に人が押し寄せてくるよ

807:デフォルトの名無しさん
07/11/06 11:21:52
いらないレスを削除してスレをまとめる機能を専ブラに付けようと思ってるんだが。
一体どう計算させればできるのだろうか?

独自ファイルを一時的に作り、datに毎行移動フラグを付加してみたら良いのか。
 読み込んだdat
  ↓
 一時保存ファイル(移動フラグ、フォントサイズ変更フラグ、色変更フラグなど付加)
  ↓
 HTML変換

808:デフォルトの名無しさん
07/11/06 11:46:02
いらないレスは透明あぼん扱いにして飛ばしちゃえば?

809:デフォルトの名無しさん
07/11/06 19:50:35
>>808
それどうやれば使えるの……ってググってくるよ。
あぼ~んのやり方知らないとか、やっぱりdatの扱い方を熟知しないと辛いか……

810:デフォルトの名無しさん
07/11/06 22:42:30
dat->html変換にはかけてるんでしょ。その変換がレス単位なら、
外部条件によって実行するか、<--あぼん-->とだけに
するかだけの話じゃないの?

811:デフォルトの名無しさん
07/11/06 23:01:09
どんなスキルで作ろうとしてるのか不安になるな・・・

812:デフォルトの名無しさん
07/11/07 09:09:01
工エエェェ(´д`)ェェエエ工工

>>809
こんな感じかな
dat読み込み

本文とか名前欄でいらない物が入ってるかチェックしていらないものはあぼん書き換え
ここでサイズ変更とか色変更もここでやればいいと思う

一時ファイルに書き出し?

html変換

813:デフォルトの名無しさん
07/11/07 12:24:35
>>811
javaで作る予定。
スキルは……2chの仕様書は何となく理解できたくらい。

>>812
そんな感じ。
そう複雑になるものではないはずなんだけど、もしかしたら無駄な行程を入れてしまっているのかも知れない……

814:デフォルトの名無しさん
07/11/07 21:12:02
>>813
> 2chの仕様書
kwsk

815:デフォルトの名無しさん
07/11/07 21:20:08
>>814
これ。
URLリンク(www.monazilla.org)

816:デフォルトの名無しさん
07/11/07 21:44:26
ところで、スレまとめソフトを公開してはいけない規約とかあったか?
参考にしようとしたらどこ探しても見あたらないんだ。
2chまとめブログが最近増えてきてるからどっか大手が作ってるんだろうなと思ってたんだが、ないんだな。

817:デフォルトの名無しさん
07/11/08 10:53:24
>>816
2ちゃん消滅騒動以来負荷をかけない、転送量を抑えるというのが暗黙の了解と思っている。
取得したdatに関してはどう使おうが問題はないはず

818:デフォルトの名無しさん
07/11/08 13:41:36
どなたかdatをHTMLに変換する方法を優しく教えてくれませんか。
形式を見てもどうすれば本文を<b></b>で囲ったり名前の前に番号を振ったりできるのか分かりません……

819:デフォルトの名無しさん
07/11/08 13:45:19
ただの文字列操作だ。

Jane等のオープンソースのコードを読んでみろ。

820:デフォルトの名無しさん
07/11/08 14:11:36
ありがとうございます。

821:デフォルトの名無しさん
07/11/08 15:59:32
>>818
おいおい
datを1行読んで<>で分解して本文の前後に"<b>"と"</b>"を結合するだけだろ

822:デフォルトの名無しさん
07/11/08 16:45:18
>>818
ぶっちゃけお前に2ちゃんブラウザは無理。
見た目より難易度高いよ、作るの。

823:デフォルトの名無しさん
07/11/08 21:09:47
>>818
正規表現でグループ化すれば

824:デフォルトの名無しさん
07/11/21 20:49:25
作って公開して自らスレを立ててもいいのだろうか
Duawinなんかは1=開発者のようだが

825:デフォルトの名無しさん
07/11/21 21:24:17
宣伝しなきゃデバッグしてくれるユーザーは現れないよ。

826:デフォルトの名無しさん
07/11/21 22:03:25
つか、良いとか悪いって基準はなんなんだよw

827:デフォルトの名無しさん
07/11/21 22:28:14
>>824
是非お願いします。

828:デフォルトの名無しさん
07/12/02 07:03:27
逆襲スレ落ちてしまったのか。

829:デフォルトの名無しさん
07/12/24 23:15:39
逆襲からここにたどり着くのが大変だった

830:デフォルトの名無しさん
08/01/13 02:59:27
age

831:デフォルトの名無しさん
08/01/24 15:05:57
PSPから書き込み

832:デフォルトの名無しさん
08/01/24 15:22:41
もう一度

833:デフォルトの名無しさん
08/01/24 15:43:58
しつこく
改行
テスト

834:名なし
08/01/24 16:02:08





835:デフォルトの名無しさん
08/01/24 16:07:03
たなは

836:デフォルトの名無しさん
08/01/24 17:12:22
ここにも貼り
URLリンク(foo-bar-web.hp.infoseek.co.jp)
PSP用のmonazillaです

837:デフォルトの名無しさん
08/01/25 10:11:38
おぉ、乙!

838:デフォルトの名無しさん
08/01/25 16:54:51
てすと


839:デフォルトの名無しさん
08/02/10 18:02:13
ただいまmonazilla.orgでは、記事を投稿して下さる方を募集しています。
2ちゃんねる専用ブラウザの開発者様は是非ご応募ください。

URLリンク(www.monazilla.org)

840:デフォルトの名無しさん
08/02/10 23:50:54
>>839
目的は何?

841:デフォルトの名無しさん
08/02/11 02:39:39
>>840
monazilla.orgを盛り上げて、2chブラウザの世界も盛り上げるためでしょう。

>>839
宣伝で、一言ずつソフトウェア板の2chブラウザのスレに声をかけてみたら?

842:デフォルトの名無しさん
08/02/11 21:03:20
>>839
ここは技術的話題がメインだから >>841 が言うようにソフトウェア板の
例えば乱立スレとかに・・・んーそれはそれで問題が起きそうだな・・・

843:デフォルトの名無しさん
08/03/24 12:48:49
………

844:デフォルトの名無しさん
08/03/27 13:25:20
今まで動いていた●での過去ログ読み込みができなくなりました・・・
Firefoxでofflaw.cgiへのsid付きURLベタウチ&User-Agent:Monazilla/1.00 kage(1.00)だと
きちんと読めました。
これと同じURLで自分のプログラムから送信しても
-ERR もうつかえません
となります。
User-Agentの指定、セッションのURLエンコード、他に何かミスりそうなことありますかね。

845:デフォルトの名無しさん
08/03/27 14:10:44
>>844
Firefoxでクッキー削除してみたらどうなるかな
FirefoxアドオンのLive HTTP headersでリクエストとレスポンスを確認してみたら何かわかるかも


846:デフォルトの名無しさん
08/04/13 12:22:41
UTF8になるのかな・・・

datをUTF8にするのはどうだろうスレッド
スレリンク(operate板)

847:デフォルトの名無しさん
08/04/13 14:32:29
何か問題でも?>DATのUTF8化

848:デフォルトの名無しさん
08/04/13 19:32:13
文字コードの変更だからめちゃくちゃ面倒だろ。

BE板のみがEUCになったときでも対策大変だったのに。

849:デフォルトの名無しさん
08/04/13 22:10:54
EUCはSjisに変換すれば良いだけだったけど、
UTF8はSjisに含まない文字もあるので大変
内部処理も表示も変えないと

850:デフォルトの名無しさん
08/04/13 22:54:24
全部UTF-8に変換すればいいじゃない

851:デフォルトの名無しさん
08/04/13 22:58:51
Windows9xのころからあるレガシーな開発環境だと
Unicodeまともに対応してないとかありえるけど
Windows2000が登場して8年だし、もう仕方ないよな

852:デフォルトの名無しさん
08/04/13 23:14:55
仕様変更するなら早い方がいい
後になればなるほど対応が大変になる

853:デフォルトの名無しさん
08/04/13 23:37:39
datサイズがどうなるとか、生きてるdatも変換してしまうのかとか、UTF8とSJISのdatが混在してしまうのかとか
過去ログはどうするのかとか、UTF8はUTF8専用のdatを用意するのかとか、古い専ブラ(開発が停止している専ブラ)を見捨ててしまうのかとか、
いろいろ問題があるようだからすぐにはやらないとは思うけどな

854:デフォルトの名無しさん
08/04/14 02:14:12
だがいつかはやらなきゃいけないことでもある

855:デフォルトの名無しさん
08/04/14 07:56:13
なんでやらなきゃいけないの?

856:デフォルトの名無しさん
08/04/14 13:31:44
遅くなる前にというけど、もう十分手遅れだと思われ・・・
やるとしたら既存のは捨て、新たなシステムで、ということになるだろう。
文字コードよりも、もっと仕様固める方がいいな。
エラーとかわけわかめ。

857:デフォルトの名無しさん
08/04/14 14:13:16
結局 >>846 のリンク先の話題は、専ブラ的にはまったく関係ない方向性で収束したっぽいね。

ひ(r 「dat を UTF-8 にしたい。read.js が使えるから。AAがまずい?」
stream 「UTF-8 にしてもAAは問題なし」
SunOs 「UTF-8 にしないと read.js が使えないって?IE6 では anydat.so でやってる」
ひ(r 「anydat.so って重くない?」
SunOs 「IE6 は捨てよう、JavaScript 周りが変だし」
stream 「Shift_JIS は腐っていやがる」
SunOS 「早すぎたんだ」
ひ(r 「anydat.so がなければ人大杉が無くなるんじゃ?」
SunOs 「別に anydat.so は重くない。read.js 全面移行できないのは IE6 が腐ってるから」
SunOs 「おいちゃんが『人大杉で read.html に振らないようにして欲しい』と言ってたし」
ひ(r 「ほいだら、人大杉のときは、read.htmlをデフォルトで動くようにしちゃってくださいー。」
スレリンク(operate板:93番)
SunOs 「した」

… と思ったらまだ何かやるつもりか。

stream 「多言語扱えたほうが便利でしょ」
未承諾 「perl 処理方面は軽くなる?」
 :
 :

ひ(r 「文字コードを変えるとしたら、サーバ移転ごととかそんな感じすかね。」
スレリンク(operate板:167番)
む 「UTF-8 にするなら、専ブラ的にも bbs.cgi 的にも SETTING.TXT でやるのがいいのでは?」
む 「2chの内部処理的な意味で」
む 「PC 方面は UTF-8 にしてもわりかし大丈夫そう。携帯方面はどうだろう?」
strem 「Shift_JIS の板と UTF-8 の板が混在するってこと?」
む 「混在するかどうかはともかく、bbs.cgi 的には両対応にしたい」
 :
 :

858:デフォルトの名無しさん
08/04/14 15:03:11
時期を指定して、これより以降に保存されるdatはすべてUTF-8で保存されます
と決めちまったらどうだ?

これなら各ブラウザも余裕を持って対応改修できるだろ。

859:デフォルトの名無しさん
08/04/14 19:09:44
まあ、猶予期間は必要だわな

860:デフォルトの名無しさん
08/05/23 06:26:47
あげ

861:デフォルトの名無しさん
08/05/26 15:24:30
さげ

862:デフォルトの名無しさん
08/05/27 15:47:47
サーバー型のブラウザを作ろうと思ってます
取得したDATをどの程度使っていいのか判断がつきません
DATをDBに格納して使うって著作権に触れないんですかね?

863:デフォルトの名無しさん
08/05/27 16:10:12
>>862
個人でサーバーにスクリプトを設置する方式だったら問題ないと思うよ。

公開型だったらdat落ちと同時にDBから削除しなければ、怖い人から訴えられるかもね。
ノラp2やorz、讃岐などを参考にね。公式p2やべっかんこは参考にはできない。

864:862
08/05/28 11:32:27
>>863
公開型を考えています
・常識的な負荷/転送量にする(差分取得・gzip)
・dat落ちは即削除

この辺を守れば問題無いと考えてよさそうですね
ありがとうございました

865:デフォルトの名無しさん
08/05/28 12:41:44
dat消さなくても問題ないだろ
過去ログ置き場とかいっぱいあるし

866:デフォルトの名無しさん
08/05/28 16:09:54
>>865
あれって厳密に言えばNGですよね?

867:デフォルトの名無しさん
08/05/28 16:32:30
dat落ちしてないスレッドとdat落ちしたスレッドで扱いが違うなんてことはない。
どっちも著作権的には同じ。

868:デフォルトの名無しさん
08/05/28 17:17:00
著作権ではなくて●の問題じゃないだろうか
dat落ちは運営の資金源にもなるわけで

869:デフォルトの名無しさん
08/05/28 17:20:31
>>864
人気が出たら常識的な負荷ではなくなるのが難しいところですが。
公式コンテンツになるか許可が下りれば問題はなくなりますがね。

>>867
当面の敵は著作権じゃない。
狐、root、ひろゆきだ。

870:デフォルトの名無しさん
08/05/28 18:01:29
とりあえず好きなように作ってみて
おこられたらまた考えればいいんじゃね?

871:デフォルトの名無しさん
08/05/28 18:36:31
>>865の通りだ
問題はない

872:デフォルトの名無しさん
08/05/28 19:52:44
dat 落ちした物を公開するのに金が絡まなければ、とりあえず問題ないんじゃない?
むしろ、公開型の問題は「書き込み機能」があるか否かじゃないかな。
いわゆる非公式の公開 p2 は軒並み N.G. 喰らってるべ?
書き込み機能を持たせたいなら、そこはひ(r とかおいちゃんとかに相談じゃないかな?

873:デフォルトの名無しさん
08/05/28 20:25:51
URLリンク(ss.chbox.jp)
とりあえずここ見てる限りバーボンが問題だな。
バーボンの除外は運営と利害が一致しないと回避は無理。

書き込み機能はひろゆきの管轄だな。
そして狐による規制の嫌がらせを受けるw(公式p2の例)

874:デフォルトの名無しさん
08/05/29 12:53:19
>公開型の問題は「書き込み機能」

これは何故だろう
荒らされやすいとか、それを通り越してアタックされやすいとかそんな理由なのでしょうか


875:デフォルトの名無しさん
08/05/29 13:22:30
>>874
鯖管がしっかり管理してないと身元を隠して書き込みできるようになるから

876:デフォルトの名無しさん
08/05/29 21:18:35
>>874
大きく分けて問題点は二つかな。

・せっかく2ch側でプロクシとか荒らし規制とかしているのに、そこから書き込み
 できるようでは意味が無い(まぁ、現状でも公式 p2 で似たようなケースはあるけど)
 → 現状、非公式な書き込み機能付き中間鯖は、のきなみ N.G.

・お上が「ログを出しなさい」と言ってきた場合、2ch -> 公開鯖管とお鉢がまわって
 くるけど、それへの事前の処理(ちゃんとログの管理をしているか)、対応。
 → まぁ、ログさえちゃんとしていればいいだろうけど(それでも膨大な量になるかと)

特に一番目の問題は、なんとか許可を取り付けても、少なくとも常に2chと同等
レベルの規制機構・処理が必要になるから、できたとしても大変だと思うぞ。

877:デフォルトの名無しさん
08/05/29 22:30:09
ノラp2は公開プロキシと同じだからね。
書き込み責任者を割り出せなければ管理人の責任になるとの理屈かな。

公式p2はひろゆきの関連企業の業務になったから問題はないんだろう。

878:デフォルトの名無しさん
08/05/29 22:40:18
なるほど
書き込みは公式に飛ばすのが無難かもね

879:デフォルトの名無しさん
08/05/30 02:31:11
公式p2はユーザ単位でのピンポイント制御できるからな

880:デフォルトの名無しさん
08/06/07 22:05:19
てs

881:デフォルトの名無しさん
08/07/18 19:02:20
勉強の為に専ブラ作ってるんですけど、dat⇒htmlって必要ですか?
てか表示部分はwebbrowser使うのが基本?

richtextじゃダメ…ですよね…

882:デフォルトの名無しさん
08/07/18 19:26:57
richtextでもかまわないだろ

883:デフォルトの名無しさん
08/07/18 19:27:10
まて
dat->htmlが必要かどうかをこのスレで聞くことにどのくらい意義があるんだ?

884:デフォルトの名無しさん
08/07/18 22:32:02
出力なんてどうにでもなるだろうjk

885:デフォルトの名無しさん
08/07/21 19:22:40
好きなようにつくればいいのです。

886:デフォルトの名無しさん
08/07/21 19:53:56
あ、レスついてた。
datからそのまま表示させるより、
html形式にしてから表示させるほうがいろいろ便利なのかなーと…。

まぁそれくらいもわからないほど知識ないって事です。すんません

887:はらぐろ
08/07/22 08:26:24
弱小ブラウザ開発のはらぐろとか言う者です。
サイト移転したんでmonazillaからのリンクも更新して欲しいので、
とりあえずここに書いておきます。
えくすちゃねらー
URLリンク(www.optimize0.jp)

888:デフォルトの名無しさん
08/07/23 23:12:00
>>887
URLリンク(monazilla.org)
更新しました。


URLリンク(jbbs.livedoor.jp)
に他の記者さんがいることがあるので次回はこちらからもどうぞ。

889:デフォルトの名無しさん
08/07/24 01:28:35
ちなみに記者募集スレッドというのがあります
記者になればmonazillaを自分で編集できますよ

URLリンク(jbbs.livedoor.jp)

>>886
richtextで作ったらスレに貼られたURLをクリックとか
ポップアップ表示とか制御できない(し辛い)気が

勉強でどの程度のものを作るのかによりますが

890:デフォルトの名無しさん
08/07/24 14:06:58
しばらく考えてwebbrowserで作ってたけど、レスポップアップで挫折です。
本当にありがとうございました。

誰か障りだけでもヒントください

891:デフォルトの名無しさん
08/07/24 16:02:53
>>890
OpenJaneのソース嫁
URLリンク(cvs.sourceforge.jp)

892:デフォルトの名無しさん
08/07/24 16:55:33
高度すぎて&デルファイで意味不明だったオワタ。
とりあえず別の勉強します。thx

893:はらぐろ
08/07/25 00:02:36
変更ありがとうございました。

894:デフォルトの名無しさん
08/09/13 18:35:27
保守ですまん

895:名無しさんだよもん
08/09/15 23:50:40
プログラマー諸氏がんがれ!

896:デフォルトの名無しさん
08/09/16 22:00:17
イヤなんか今さら開発しても出尽くしてるし・・・みたいな・・・

897:デフォルトの名無しさん
08/09/16 23:46:16
rep2がもっとクライアントサイドによらんかなってのはある
スレ一覧のソートぐらいならJavascriptでできるんじゃないか、とか

898:デフォルトの名無しさん
08/09/17 12:24:32
さすが kage だ何ともないぜ… Cookies.txt の hana=mogera 系エントリが無限に増えそうで
怖いけど

899:デフォルトの名無しさん
08/09/29 23:37:21
DATの差分取得を試みているんですが、

If-Modified-Since: リモートDATの最終更新時刻(値は応答ヘッダのLast-Modifiedを調べる)
Range: bytes=ローカルDATのファイルサイズ-

の2つを要求ヘッダに入れることは必須ですか?
それともRangeだけでも差分取得は出来ますか?

膨大な数のdatファイルごとにIf-Modified-Since値を記憶しておくのは管理が面倒です。
ローカルのDATファイルのサイズは簡単に調べられますのでRangeだけで差分取得
ができるのならプログラムはぐっと簡単になります。

URLリンク(age.s22.xrea.com)

900:デフォルトの名無しさん
08/09/30 00:19:40
あぼーんで減ったバイトと新たな書き込みで増えたバイトが
たまたま同じだった場合、rangeだけでどうする?

901:デフォルトの名無しさん
08/09/30 00:28:42
ローカルのdatファイルの最終更新日時を使うのじゃだめなの?

902:899
08/09/30 01:21:43
>>900
事前にsubject.txtをDLして各スレのレス数を解析しておこうと思っています。
これなら新たな書き込みがされればレス数が増えてるので、たまたまバイト数
が同じだった場合でもあぼーんを検知でき(実際何もDLされてこないわけですから)
ると思います。

>>901
ローカル側のファイル更新時刻をif-Modified-Since型に変換できるなら
それもありのような気がします。

903:899
08/09/30 01:28:28
ちょこちょこっとプログラムを組んでみたんですが、

if-Modified-Since

を指定しないと差分取得は出来ないようですね。
いくら Range でローカル側のファイルサイズを申告しても
1からdatを再取得してしまうようです。

差分取得するならローカル側のファイルの更新時刻をどうにかして
調べて if-Modified-Since に収納してやらないとならないようです(´・ω・`)

904:デフォルトの名無しさん
08/09/30 01:48:26
Last-Modifiedだけでなく、ETagも見た方がいい
>>424とか参照

905:899
08/09/30 02:33:59
>>904
たとえばC#でLast-Modifiedを保存するには

HttpWebRequest.LastModified

でリモートファイルの更新時刻を取得することができ、
またデータのフェチの際は

HttpWebRequest.IfModifiedSince

に更新時刻を出力すればサーバーとやりとりできました。

ETagに関してサーバから取得、出力するにはどうしたらいいでしょうか?
出力に関しては

HttpWebRequest.IfNoneMatch

でETagをサーバーに送信できるようですが、ETagの取得に関しては
どう操作すればいいか分かりません(´・ω・`)

906:デフォルトの名無しさん
08/09/30 05:08:15
ここで特定のフレームワークのこと聞かれてもな
まあ、普通に考えれば任意のヘッダを送受信する手段くらいあるはず
探せ

907:デフォルトの名無しさん
08/09/30 12:31:27
ETagにしろ更新日時にしろ応答ヘッダで返ってくるんだが
まずHTTPの資料を読むことを薦める

あと、>>902の方法だと透明あぼーんしか検知できなくないか?
subject.txtを毎回取得しにいく仕様もどうかと思うぞ



908:デフォルトの名無しさん
08/09/30 12:53:11
>膨大な数のdatファイルごとにIf-Modified-Since値を記憶しておくのは管理が面倒です。
そもそもこんなことを言ってる時点で(以下略

他の専ブラ参考にすれば?
datと同名のidx作って管理するとか、データベース使うとか、datの扱いの基本中の基本でしょ。

909:デフォルトの名無しさん
08/09/30 13:01:47
たまにだけど、subject.txtのレス数と実際のレス数が違うことがあるから100%信用すると痛い目に遭いそう

秒単位の更新チェックは知らなかった・・・ツール更新しなきゃ

910:899
08/09/30 15:08:16
ETagはサーバーが返してくる値をローカルに保存しておかないといけないですか?
ローカルに保存したdatファイルからETag用の値を計算できればわざわざ
ローカルにETag値を保存しておく必要は無くなると思うのですが。

911:デフォルトの名無しさん
08/09/30 15:35:24
じゃあそうすれば?


912:デフォルトの名無しさん
08/09/30 19:49:15
ローカルに ETag を算出…?どうやって?まさか「ETag 計算方法」とかでググって
出てくるものを実装して「たまたまそのとき一致したらからおk」とか思ってないよな?

913:デフォルトの名無しさん
08/09/30 20:55:40
弱いETagならローカルで算出やつでも通用するんじゃない?
強いETagはまず不可能だろうけど

914:899
08/09/30 21:45:35
話は変わりますが、サーバーにDATを要求し、返ってきたヘッダーに書かれた情報を見ようと

GetResponseHeader("Content-Range")

という命令を書いてみたのですがなぜか何も取得できませんでした。

GetResponseHeader("Content-Length")
GetResponseHeader("Content-Type")

はきちんと値が返ってきました。

2chの鯖には変数"Content-Range"を返さないものがあるということでしょうか?

915:デフォルトの名無しさん
08/09/30 21:49:47
送るヘッダが間違ってるだけだろ

916:デフォルトの名無しさん
08/09/30 22:05:37
誰か多段ポップアップの方法をVBでお願いします。
あれはスキンとかに対応してjavascriptで実装したほうが簡単なのでしょうか…

917:899
08/09/30 22:47:34
もう一つヘッダがらみの質問です

2chでは転送量を抑えるためGZipで圧縮をかけたデータのやりとりを推奨
しているようです。そこで以下のように(言語はC#です)GZipフラグをヘッダ
に付けてリクエストを出すようにしています。

webRequest.AutomaticDecompression = DecompressionMethods.GZip;

ただこの方法だと差分取得で問題が発生してしまいました。

webRequest.AddRange( fileSize );

の fileSize の部分にローカルにDLしたDATファイル(GZip圧縮は解除され
平文のテキストファイルです)のファイルサイズを調べて指定したのですが、
どうやらGZipフラグを付けると AddRange で指定すべきファイルサイズは
GZipで圧縮したときの容量ではないといけないようなんです。

ローカルのDATファイルのファイルサイズを指定すると416:RequestedRangeNotSatisfiable
が返されてそれ以降DATを取得できなくなってしまいます。

GZipで差分データをやりとりするときは、GZip圧縮をかけた状態で受け取った
DATのサイズを計測し、それを累積加算しながら AddRange でリクエストしない
とデータは取得できないのでしょうか?DATファイルひとつごとにGZipで受け取った
ときのサイズを累積加算してローカル側に記憶しておく必要があるうえに、
万が一その値を失った場合は最初からDATを取得しなければならない等
不便が予想されるわけですがみなさんはどうやって対処されていますか?

918:デフォルトの名無しさん
08/09/30 23:13:59
今はgzipなんて推奨してません。

919:デフォルトの名無しさん
08/09/30 23:16:33
というのはウソです。

920:デフォルトの名無しさん
08/09/30 23:23:03
関連するAPIをぜんぶ実装して
モジュールとして公開してくれてるひとっていますか?

921:デフォルトの名無しさん
08/09/30 23:23:58
>>917
twintailはどうなってるのか読んでみた?
C#のソースが公開されてるから読んでみたら?
URLリンク(www.geocities.co.jp)

922:899
08/10/01 01:15:16
>>917に自己補足です。
GZip圧縮を有効にしたとき、鯖によってうまくいったりいかなかったりするようです。

実況鯖はGZip圧縮をONにしてもうまく差分取得できました。
一方でN速+といった通常鯖はGZip圧縮をONにすると
416:RequestedRangeNotSatisfiable
エラーが返されてしまうようです。

2ちゃんはGZip圧縮は非推奨ってことなんでしょうか(´・ω・`)?

>>921
ありがとうございます。
時間ができたときにソースコードを読ませてもらいます。

923:デフォルトの名無しさん
08/10/01 01:19:03
転送量が問題だったのは過去の事

924:899
08/10/01 01:25:33
>>923
> 転送量が問題だったのは過去の事

そ、そうなんですか(;´∀`)

それでは多くの2ちゃんブラウザではGZip圧縮をかけずに転送してるんでしょうか?

925:デフォルトの名無しさん
08/10/01 01:39:01
今はサーバーリソースの方が問題だからそもそもgzipの圧縮をやらない。

926:899
08/10/01 02:02:23
>>921
> URLリンク(www.geocities.co.jp)

で紹介されたTwinTailブラウザのソースをざっとですが見てみました。

ソースコードの中に
「datファイルがgzip圧縮されていればtrue、そうでなければfalseを指定する」
と記述されたパートがありました。もしかしたら鯖ごとにdatがGZip圧縮されて
いたりされていなかったりするということでしょうか?

>>922の例で言えば実況鯖はGZip圧縮がONで、それ以外の一般鯖はGZip圧縮
がOFFだったため、違いが生じたのでしょうか?

だとしたら何らかの方法で鯖ごとにGZip圧縮されてるかされてないかを識別し、
それに従ってdatをフェチする際にGZip圧縮フラグをONにするかOFFにするか
自動選択させればどの鯖にも対応できるようになるかもしれません。

あるいはGZip圧縮は無視して全鯖非圧縮でdatを取得するようにしてしまっても
いいかもしれませんね(´・ω・`)

927:デフォルトの名無しさん
08/10/01 03:01:08
GZIP要求を出して圧縮されて返ってくれば解凍、datで返ってくればそのまま
どちらの形式で返ってきたかは応答ヘッダを見ればいい

GZIP圧縮すべきかどうかは>>248-249

928:デフォルトの名無しさん
08/10/01 12:59:26
HTTPプロトコルを理解するためにRFC2616を読んだり
Wiresharkとかで既存ブラウザがどういう通信しているか見ればいいのに

929:899
08/10/01 13:00:32
>>927
もう一度調べてみたんですが、要求ヘッダに

req.AutomaticDecompression = DecompressionMethods.GZip;

とGZipをリクエストしておけばほとんどの鯖はGZipで圧縮されたデータを
送信してくれるようです。

では問題は何かと言いますと、初回以降の差分要求をするときにヘッダー
に付けて送信する If-Range ヘッダーに記述する容量を、圧縮されたとき
のものにしておく必要があるようなんです。

たとえば生では10バイトのDATをGZip圧縮して送信してもらったとします。
GZip圧縮をかけた結果5バイトに圧縮されたとします。
すると次回以降差分要求をするときに If-Range ヘッダーには10バイトでは
なく5バイトと記述しておかないと正しく差分データが受信できないようなんです。
そうでないと鯖からエラーコード416が返されてしまうようです。

これは結構ゆゆしき問題なんです。
ローカルに保存したDATは当然GZip圧縮を解除した状態なので、GZip圧縮を
かけたときのサイズを If-Range ヘッダーに記述するには、圧縮されたときの
のデータサイズをDATファイルごとにどこかに記憶しておく必要があるんです。
管理が面倒になるうえにこの圧縮されたときのサイズのデータが吹き飛べば
DATは最初から再取得しなければならなくなるんですね。

GZip圧縮は綺麗さっぱり忘れて無圧縮状態でデータを送信するようにした
ほうがいいってことなんでしょうか?
あるんです。


930:デフォルトの名無しさん
08/10/01 13:57:09
>>929
差分取得の時はAcceptEncodingにgzipを付けずに生で受け取る。
初回のレス1から読むときのみAcceptEncodingにgzipを付ける。
でホントにgzipだったら解凍する。生だったらそのまま。

ま、最初はgzip無視で作っちゃってもいいと思う。
君一人が非圧縮で受信したところでたいした負荷でもないし。
余裕出来たら、レス1から読むときはgzipで読むでいいのでは。

931:デフォルトの名無しさん
08/10/01 14:00:54
あと、HTTPサーバーの基本知識をもう少し付けるべきだと思うけど、
独自仕様もあるので注意。
板移転はレスポンスにステータスコード301,302といったリダイレクトが返ってくるわけじゃない。
200が返ってきて、中のjavascriptの
window.href=移転先URL
を見ないと駄目。しかも移転先に、さらに移転先が書いてある場合も。

932:899
08/10/01 15:31:30
>>930
> 差分取得の時はAcceptEncodingにgzipを付けずに生で受け取る。
> 初回のレス1から読むときのみAcceptEncodingにgzipを付ける。
> でホントにgzipだったら解凍する。生だったらそのまま。

その手がありましたか(`・ω・´)!

言われてみれば圧縮されたgzipファイルを差分取得するっておかしな概念ですよね。
レスが加えられていくごとに圧縮ファイル全体はつど変化していくわけですし
そうなればif-Rangeで範囲指定をしても取得できるデータに誤差が生じるのは
当たり前です。

Janeといった一般的なブラウザも差分取得時は無圧縮で取得してたりするんでしょうか?

ちなみにC# + .NET2.0で開発していますがこれ幸いか落としてきたデータの
gzipを解凍する手順はプログラマーが意識しなくてもいいようです。
勝手に解凍してくれるようで普通にReadToEnd()で読めちゃったりしています。

>>931
了解です。移転の検出は実装したほうがよさそうですね。

933:デフォルトの名無しさん
08/10/01 18:16:03
何度でも書くけどHTTPの資料読もうな
脊髄反射で質問するのはもう止めような

934:デフォルトの名無しさん
08/10/01 19:06:56
>>932
他のブラウザがどう動いてるかはパケットキャプチャを使って調べる。

935:デフォルトの名無しさん
08/10/02 06:09:25
>>933
HTTPの資料嫁とか方向違うだろ
どう見ても言語側でHTTPアクセスをサポートするライブラリ使ってるっぽいし

936:デフォルトの名無しさん
08/10/02 07:30:00
HTTPの資料読んでたら半分は質問減ったと思うが
C# + .NET2.0で開発してる人は読まないのか?

937:デフォルトの名無しさん
08/10/02 08:20:43
>>935
HttpWebRequest/Responseは、HTTPの仕様を知ってはいるんだけど、
自分でリクエストを組み立てたりレスポンスヘッダを解析したり
chunk転送をデコードしたり、KeepAliveを管理するのが面倒な人向け。

938:デフォルトの名無しさん
08/10/02 08:41:45
ごめん>>933だけで脊髄反射しちゃった

939:デフォルトの名無しさん
08/10/02 13:53:29
HTTPの仕様は読む必要あるだろう
if-modified-sinceやらe-tag、クッキーの仕様とか知らんと話にならん。
俺も浅い知識で組んだせいで後の修正大変だった。
一番大変なのは2ちゃんのどこにも明記されてないような謎仕様と
トライアンドエラーで戦わないと行けないことだ。


940:デフォルトの名無しさん
08/10/02 18:47:16
>>939
そういうのは、monazilla-ML(だっけ?)に入って聞いたほうが早いんじゃない?

941:デフォルトの名無しさん
08/10/02 19:43:54
あれまだ機能してんのかな・・・

942:899
08/10/02 20:32:17
>>937
C# with .NET2.0の環境でもヘッダを解析したり構築したりして
送受信されてる奇特な方っていらっしゃるんですか?

943:デフォルトの名無しさん
08/10/03 18:29:56
HTTPの意味もよく分からず開発を始めて質問しまくる人とか
人の忠告を聞かない人はよく見かけるね

944:デフォルトの名無しさん
08/10/03 19:19:08
っ 鏡

945:デフォルトの名無しさん
08/10/05 10:16:41
>>942
プログラムの勉強をしたい人とか、生粋のプログラマとか。

車輪の再発明と言われるけどプログラムやプロトコルを勉強するには
一から作るのが一番良い方法だと思うよ。
作ったうえでライブラリを使うともっと理解が出来る、ただ使うだけなら疑問を持たず
「そうなんだ、こうしないとダメなんだ」で終わらしておく方が良い。

946:デフォルトの名無しさん
08/10/05 11:29:25
HTTP1.0はシンプルだから、ソケット使って自前で通信したほうが
用途によってはコードも分かりやすいこともある

947:デフォルトの名無しさん
08/10/05 14:02:00
1.0 限定ならな… 1.1 になるととたんに面倒くさくなる。
クライアント側が GET ~ HTTP/1.0 しているのに、HTTP/1.1 で返事を返してくる
サーバって多いはずだけど、Apache ってどうだっけ?

948:デフォルトの名無しさん
08/10/05 14:04:34
>>947
HTTP/1.1という返事は、「うちのサーバーは1.1まで対応してますよ」って意味であったはず

949:デフォルトの名無しさん
08/10/05 17:10:33
よく読むスレを登録しておき、未読スレがないか一度に確認させるプログラムを
作ろうと思っているんですが、各スレを連続で読み込みするのにどのくらいの
時間をおけばいいものなんでしょうか?

それともそういうことは気にせず、いくつスレを登録してようと一度に一気に
読み込むプログラムを組んでしまっていいものなんでしょうか?

2ちゃんの方で明確な指針が掲載されていないと言うことは常識の範囲内で、
ということなんでしょうが、どのあたりが常識とか決まっているんでしょうか?

950:デフォルトの名無しさん
08/10/05 17:11:44
↑あと上記に絡んだ質問です。

過度に連続読み込みしたことで2ちゃん側からシャットアウトされる可能性って
ありますか?もしシャットアウトされたとしたらどんな返答が返ってくるんでしょうか?
シャットアウトされたことも知らずに続けて連続読み込みのリクエストを出し続ける
と後々問題になりそうなので・・・

951:デフォルトの名無しさん
08/10/05 17:56:01
>>950
ばーぼんなんとかだったかな

952:デフォルトの名無しさん
08/10/05 18:04:15
スレリンク(operate板:962番)
962 名前:鷲鴨 ★[] 投稿日:2008/09/15(月) 06:27:06 ID:???0 (PC)
みんなでツールで巡回しやがって
ボボン値も変更するか

巡回は負荷かかるから締め出し

953:デフォルトの名無しさん
08/10/05 18:28:04
>>951
「ばーぼん」ですか・・・
ちょっとググッてきます。

>>952
とはいえ、きょうび巡回機能が無い2ちゃんブラウザなんてお話にならないかと・・・

954:デフォルトの名無しさん
08/10/05 18:41:39
未読チェックだけならsubject.txt取得だけでいいだろ

955:デフォルトの名無しさん
08/10/05 19:27:55
>>954
チェックしたいスレが複数の板をまたがると

956:デフォルトの名無しさん
08/10/05 20:54:45
複数の板のsubject.txtを取得すればいいだけの話だあろ

957:デフォルトの名無しさん
08/10/05 21:01:45
リードのみでも連続アクセスするとばーぼんへ飛ばされるんですね。
ばーぼん回避のためにスレ1つ読むごとに1秒間のウェイトを入れておこうとおもいます(´・ω・`)

958:デフォルトの名無しさん
08/10/05 21:02:25
バーボン飛ばされたらつなぎなおせばOK

959:デフォルトの名無しさん
08/10/05 21:16:32
こういうことはあんま言っちゃいけんのかもしれんが
プロクシサーバを複数確保して巡回させればボボン回避は
十分可能なんじゃないか?

960:デフォルトの名無しさん
08/10/06 02:28:47
複数確保が簡単にできる環境は少ないんでは。

961:委員長 ◆/DABoneCRY
08/10/06 02:43:13
「ダメだ!辞めろ」と言うつもりはありませんが、
どれくらい時間をおけば「許される」というものではないと思います。
限界ギリギリを狙おうとするのではなく、可能な限り負荷をかけないよう
配慮する発想の方が健全だと思います。

962:デフォルトの名無しさん
08/10/06 02:49:00
>>960
っ サイバーシンドローム

963:デフォルトの名無しさん
08/10/06 12:57:01
>>925
折角、GZIPInputStream調べてgzip転送に対応しようと思ったのに必要なかったのか。・゚・(ノД`)・゚・。

964:デフォルトの名無しさん
08/10/06 19:27:18
>>925
gzip圧縮やってないってどこのサーバ?

>>963
今もAccept-Encodingにgzip設定すれば圧縮して返してくるから
クライアント側は対応しておく方がベターでしょう

965:デフォルトの名無しさん
08/10/06 20:02:20
>>964
そうなん(・∀・)?実況専用ブラウザにしようと思ってるけど、じゃあそうしよう。

966:デフォルトの名無しさん
08/10/08 18:24:57
多くの2ちゃんブラウザでは鯖移転を自動的に検出して対応していますが、
これはどういう仕組みで追尾しているんでしょうか?

できればこの便利な機能をマイブラウザにも実装したいと思っています。

967:デフォルトの名無しさん
08/10/08 18:29:33
<URLリンク(qb.2ch.net) のソースコードとか見りゃ分かるはずだ

968:デフォルトの名無しさん
08/10/08 18:42:55
> 板が移転した場合、/板のキー/のHTMLに移転先が書いてあるので、それを調べるのがよいかと。

URLリンク(age.s22.xrea.com)


HTMLに移転先が書かれているとのことですが、どの場所に書かれているのか決まっているんでしょうか?


> subject.txtが見つからない場合は、板が移転したと判断しても大丈夫でしょう。

あと移転したかしてないかは subject.txt があるかどうか調べればいいとのことですが、
たとえば先ほど

URLリンク(gimpo.2ch.net)

URLリンク(anchorage.2ch.net)

に移転した板の、移転前のsubject.txtを調べてみると
URLリンク(gimpo.2ch.net)
移転したはずなのにまだ存在しているようです(まっさらな状態ですが)。
これだとsubject.txtの有無で移転の有無を調べることができないかと思うのですが
一般的な2ちゃんぶらうざは何をもって移転したしないを判断しているんでしょうか?

969:デフォルトの名無しさん
08/10/08 20:54:19
なぜ>>967を無視する。

location.hrefを辿ってくだけだ。

970:デフォルトの名無しさん
08/10/08 23:25:53
URLリンク(qb.2ch.net)

のHTMLソース内にlocation.hrefが見あたらないのはブラウザで読むと転送されてしまうからでしょうか?

971:デフォルトの名無しさん
08/10/08 23:34:26
<html>
<head>
<script language="javascript">
window.location.href="URLリンク(qb3.2ch.net)"</script>
<title>2chbbs..</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp">
</head>
<body bgcolor="#FFFFFF">
Change your bookmark ASAP.
<a href="URLリンク(qb3.2ch.net)">GO !</a>
</body>


972:デフォルトの名無しさん
08/10/09 01:19:47
>>971
どうも、やはりすぐに転送されたためにそのページは飛ばされて見えなかったようです。

973:デフォルトの名無しさん
08/10/09 01:36:12
ところで上記のHTMLファイルのフルパスは

URLリンク(qb.2ch.net)

でよろしいでしょうか?

974:デフォルトの名無しさん
08/10/09 12:32:26
>>973
Webサーバ(アパッチ?)の設定により、URLを/で止めた場合のアクセスは異なる
/で止めておけばWebサーバ側が設定によりindex.htmlとかindex.cgiとかを返してくれるから/で止めておけばいいと思う

975: ◆TWARamEjuA
08/10/09 23:08:19
(´-`).。oO(971を読めば判ると思うけれども。。。2ch鯖監視係。もそうしています。@板移転自動追尾)

976:デフォルトの名無しさん
08/10/09 23:26:38
どうもです。index.htmlは抜きでトライしてみます。

977:デフォルトの名無しさん
08/10/09 23:41:37
window.location.href="URLリンク(qb3.2ch.net)"</script>
これ最後のセミコロンがないね
JavaScriptってセミコロンなしでもいいんだっけ?

978:デフォルトの名無しさん
08/10/09 23:49:18
いいんだよ

979:デフォルトの名無しさん
08/10/09 23:56:32
グリーンダヨ

980:デフォルトの名無しさん
08/10/10 00:58:02
板移転ってDATファイルを読み込んだり板一覧を更新するときに毎回
location.hrefのところを読んで検出してるんですか?

それとも毎回検出するのは無駄ですか?

981:デフォルトの名無しさん
08/10/10 01:11:50
URLリンク(menu.2ch.net)
が更新されてたらそれを取得するだけでいい。

bbsmenuが移転に対応してないときに検出すればそれだけで事足りる。
あとはユーザーに明示的に移転作業をさせたいときとか。

982:デフォルトの名無しさん
08/10/10 15:09:42
取得できなければ移転してんじゃね?
302ってなんだか良く分からんが。

983:デフォルトの名無しさん
08/10/10 16:39:36
302 Found

おそらく「移転したよ」という意味。

984:デフォルトの名無しさん
08/10/10 21:02:18
委員長空気・・・

985:デフォルトの名無しさん
08/10/10 22:26:19
本来404を返す状況で
ErrorDocumentが外部URLを指している場合
代わりに302が返る。

まめちしきな。

986:デフォルトの名無しさん
08/10/11 01:06:11
>>985
> ErrorDocumentが外部URLを指している場合

ここのところよく分からないんだが

987:デフォルトの名無しさん
08/10/11 02:36:47
>>986
URLリンク(httpd.apache.org)


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch