Navi2ch for Emacs (part 7)

このエントリーをはてなブックマークに追加
156名無しさん@お腹いっぱい。
今のnavi2chって板のスレリスト表示に時間がかかるし。
レス数の多いスレのレスを表示するのも結構時間がかかります。

そこでmewlsの2ちゃんねる版(cのプログラム)のようなものを作って
表示速度を上げるような実装って今現在開発されていますでしょうか?

>>156
されてません。
158名無しさん@お腹いっぱい。:02/09/19 22:29
>>157
誰かが作ってる気配とか
欲しいねという声が前々から上がってるとかその手の話も無し?
>>158
ありません。
>>158
いいだしっぺ。
>>158
よかったね、どうやら実装してヒーローになるのは君みたいだね。うらやましいなぁ。
EUC の掲示板に対応するにはどうすればよいでしょうか?
163名無しさん@お腹いっぱい。:02/09/19 23:21
>>156
いいね!それ。
作ってくれYO!
>>156
profileでもとって、ここが遅いから書きかえて
とか言ってくれれば誰かやるかもね。

ところで、mewlsって高速化というより非同期化
のためにあると思ってたんだけど、どの程度高速化に
貢献してるものなの?
165名無しさん@お腹いっぱい。:02/09/20 00:22
>>164
>ところで、mewlsって高速化というより非同期化
>のためにあると思ってたんだけど、どの程度高速化に
>貢献してるものなの?
言いたい事はそういう事。体感速度って言うべきかな。
スレリスト作ってる最中でもカーソルを動かして読みたいスレを
探せるのが理想。
mewもサマリリスト作ってる最中でもカーソル動かせるし。

それにJaneとかだとレス数の多いスレで全部表示してもストレスたまらないし。
166mami:02/09/20 00:41
>>156
> そこでmewlsの2ちゃんねる版(cのプログラム)のようなものを作って
> 表示速度を上げるような実装って今現在開発されていますでしょうか?
こういうのって、text-property もつけられるんでしょうか?
あと、navi2ch + Emacsen は
いろんな OS/アーキテクチャで動くんで、
その辺も考えないと。
167名無しさん@お腹いっぱい。:02/09/20 00:57
>>166
Cで(無難な関数を用いて)書けば問題は比較的少ないのでは?
mewlsはWindowsCEにすら移植されてるみたいですし。
色々の内容がwin32,winCE,unixmac(mac含む)ぐらいしか思いつかないんで
適当な事言ってます。
168142:02/09/20 01:00
>>144を参考にしてjisx0213を入れたらmake-charsetのプロパティで
怒られ,ようやく>>145の意味が分かりますた.

でも,今度はtae.elが無いと怒られる始末で,正直,へこたれますた.

UCS周りがデフォルトで実装されたら,再挑戦したいと思ってます
ヘタレでごめんなさい.
>>168
XEmacs-21.1 では Mule-UCS が動かないので、144 の jisx0213 は動きません。
単に JIS X 0213 を使えるようにするためであれば、145 の設定だけで良いと
思うのですが、それだとダメでしょうか?
;; もう XEmacs-21.1 は手元に無いので確認できない。
>>168
>>145 だけじゃ駄目?
>>166
> こういうのって、text-property もつけられるんでしょうか?
プロセスフィルタ関数でつけるんじゃない?

text-propertyを付ける部分が遅いんなら、font-lockを使うっていうのが
>>165さんが言ってる「体感速度」を上げる方法なんじゃないでしょか。
172名無しさん@お腹いっぱい。:02/09/20 07:08
http://www.sr3.t.u-tokyo.ac.jp/~takekawa/mew/mew_11.html

"mewls" と "mewencode" が必要なのはなぜ?
Mew では、Summary mode でメッセージを取得している間や、一覧を再表
示している間に、メッセージを読み進めることができます。これは、プロ
グラムの制御の流れが複数必要であることを意味しています。Emacs で制
御の流れを複数にするには、サブプロセスを作るか、TCP コネクションを
張るしか方法がありません (Emacs Lisp には light weight process が
ありません)。POP や SMTP には、 TCP コネクションを使うので問題あり
ません。しかし、Summary mode の一覧を再表示するためには、何かコマ
ンドを起動しないといけません。これが、 "mewls" が存在する理由です
。"mewencode" が存在する理由は、単に速度のためです。MIME の符号化
を Emacs Lisp で実装したところ、使い物にならないぐらい遅かったので
、"mewencode" を使い続けています。(ただし、Base64 が Emacs で実装
されていれば、そちらを使います。)
>>172
(゚Д゚)ハァ?
>>172
つまり、mewls 方式は Navi2ch では御利益が無い、ということでよろしいですか?
>>172
>>173
infoに書かかれてる事だろ。
176名無しさん@お腹いっぱい。:02/09/20 19:19
(゚Д゚)ハァ?
>>175
> >>173
> infoに書かかれてる事だろ。

(゚Д゚)ハァ?
>>177
何が (゚Д゚)ハァ? なのか知らないが書かれている事は確かだ。
何か意見があるからはっきり言え。
>>178
(゚Д゚)ハァハァ
180名無しさん@Emacs:02/09/20 21:36
1byteカナが読めない環境なので
上にあったnavi2ch-article-filter-list が便利
なのですが、スレ一覧でも1byteカナを2byteに変換してほしいのですが
どうしたらいいでしょうか。
>>179 (;´Д`)ハァハァ
;;バッファにためるスレッドの最大数
(setq navi2ch-article-auto-expunge 10)

って設定しても10以上のスレがバッファにたまっていきます。
これって11個目のバッファが出来たら一番古いスレのバッファ
が自動でkillされるっていう意味じゃないんですか?
183mami:02/09/20 23:35
>>182
(setq navi2ch-article-auto-expunge t)
(setq navi2ch-article-max-buffers 10)
としてください。
184mami:02/09/20 23:37
>>162
> EUC の掲示板に対応するにはどうすればよいでしょうか?
multibbs モジュールを書く、でしょうか。
navi2ch-jbbs-shitaraba.el で coding-system を euc-japan に
してるんで、参考にしてみてください。
185142:02/09/21 00:23
>>169
>>170
init.elに>>145入れて,navi2ch-jisx0213.elをnavi2chのディレクトリに突っ込んだら
ちゃんと出ました.フォントは意識して設定したつもりは無いんですが,表示され
ました.

ありがとうございました.
186162:02/09/21 01:36
>>184
ありがとうございます。実はelispはサッパリなんですが、トライしてみます。
レス表示のどこに時間がかかってるのか見たら、おれの場合は
(setq navi2ch-article-enable-fill t)
してるのが一番でかかった。

なので、現在のメッセージだけをfill-regionできるような
コマンドがあると、navi2ch-article-enable-fill をnilにできて
うれしいです。
188186:02/09/21 03:17
>>184
言われたとおりに、navi2ch-hoge-funk-alist と navi2ch-hoge-variable-alist
とかをいじって、multibbs モジュールもどきを作るとうまくいきました。

ありがとうございました。elisp 初心者でもなんとかなりました。
189名無しさん@お腹いっぱい。:02/09/21 14:51
>>174
違うって

g unix
と打ち込んでスレ一覧がでるまでのタイムラグって気にならない?
Mewとかだとサマリリストを作りながらメッセージの表示できるでしょ。
>>189
ごめん、俺はそんなの気になったことない。

Mew の場合は、MH フォルダ内のメッセージの scan で、
open() やら read() がボトルネックになってるのを別プロセスにして
非同期な処理の流れを作って高速化(偽)してるわけなんだよね。

では、Navi2ch ならば、どのボトルネックをどうやって別プロセスで処理すれば
同様の高速化(偽)が実現できるのか、ちゃんと考察して説明しる。
191nanashi:02/09/21 16:48
mewls に相当する処理は、subject.txt の処理ですね。190 さんが書いてると
おり、MH フォルダの scan と違って一つのファイルを parse してるだけなん
で外部に追い出してもほとんど効果無いはず。

その後 board buffer に各スレタイトルを insert してる部分は環境によって
はかなり遅いんですが、これは text property の設定やその insert() にか
なり時間を食ってるみたいです。ここで fontlock を使うと速くなるかと言う
と、face 以外にも色々 property をくっつけてるんで、たぶんあまり速くな
らないと思います。

これ以上速くしようとするなら、subject.txt だけじゃなくて lisp object
を text property 付で prin1 / read するようにし、前回と変わった部分だ
け parse する手もあるんですが、これやると GNU Emacs と XEmacs で
~/.navi2ch/ を共有できなくなっちゃいますし。。。