このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

WSM Watcher 1.5 & 2.0 ベータ

発言者:田中求之
( Date Monday, October 08, 2001 13:58:12 )


WSM Watcher の新しいバージョンのベータ版です。変更点はページの History
の部分に書いておきましたが、

・基本機能への絞り込み
・XFCN や Rb の文字関数を自前のコードに書き換えたことによる高速化

がメインです。起動時やチェック時のメッセージの読み込み(スプールの
読み込み)が劇的に早くなっています。MemoryBlock 使いまくりで書き換えを
行いました。


また、処理速度は落ちるのですが、REALbasic 2.1.2 でビルドしたバージョン
(2.0)も公開します。機能(コード)は 1.5 と全く同じです。メリットは
一つ(でも、大きい)

・文字のインライン入力ができる

コードを調整した結果、PPC ならなんとか使い物になる速度になったと
思います。

お試しください。

設定のやり直しなどは不要です。

→  WSM Watcher

田中求之 さんからのコメント
( Monday, October 08, 2001 14:03:58 )

現在分かっているバグは、Open Page の簡易ブラウザでページ表示を行った
ときに、表示されないページがあることです。

田中求之 さんからのコメント
( Monday, October 08, 2001 15:29:20 )

REALbasic のプロジェクトのリンクがおかしかったですね (^_^;;
修正しておきました。

よしもと さんからのコメント
( Monday, October 08, 2001 21:18:20 )

>コードを調整した結果、PPC ならなんとか使い物になる速度になったと
>思います。

iBook Dual USBで使ってみましたが、これならOKですね、速度は。

>・文字のインライン入力ができる

これは嬉しい。

たまちゃん さんからのコメント
( Monday, October 08, 2001 22:15:28 )

早速試しました。有り難うございました。

以下,2.0 での現象です(うまく説明できないかもしれません)。

新規発言を取り込みます。そうすると未読発言の数が表示されます。
未読1つ前,つまり既読発言の最後のメッセージのタイトル欄にカ
ーソルがあるとします。以前のバージョンではここでカーソル(下
矢印)を押してやると未読1つ目のメッセージ移ることができまし
たが,2.0 ではできません。

そこでマウスで上の方の発言を選択しようとしますが,そのときに
複数の発言が同時に選択されてしまいます。それでキャンセルをし
て,右横のタイトルバーを上の方にマウスで移動させて任意のタイ
トルを選択します。このときは1つだけ発言が選択できます。

その状態で下矢印でタイトルのところを下に移動するとはじめて未
読のメッセージにたどり着けます。

Mac OS 9.2.1 での現象です。再現性は私の環境では100%です。

たまちゃん さんからのコメント
( Monday, October 08, 2001 22:36:59 )

>以下,2.0 での現象です(うまく説明できないかもしれません)。

1.5 で確かめましたが,同様の現象は起こりませんでした。

>新規発言を取り込みます。そうすると未読発言の数が表示されます。
>未読1つ前,つまり既読発言の最後のメッセージのタイトル欄にカ
>ーソルがあるとします。以前のバージョンではここでカーソル(下
>矢印)を押してやると未読1つ目のメッセージ移ることができまし
>たが,2.0 ではできません。

今もう一度確かめましたが,下へ1つ移動させようとすると上へ
1つ移動しました。実際には下へは移動できていませんが,この
ときに未読メッセージ数はゼロになっています。

田中求之 さんからのコメント
( Monday, October 08, 2001 23:35:27 )

2.0 での発言移動がおかしくなる現象は、私の方でも確認しています。キーボード操作による
移動がおかしくなりますね。

Rb 2 の問題のような気もするのですが、理由を探って、対策がとれるようであれば対策をとり
ます。

田中求之 さんからのコメント
( Thursday, October 11, 2001 14:36:42 )

b2 を登録しました。

2.0 での表示がおかしくなる問題への対処はできていません。

Thread 表示モードを新設しました。Popup メニューで Flat (時系列=これまで
の表示方法)、Thread (取り込んである発言の話題別のリスト)の表示を
切り替えるようになっています。

田中求之 さんからのコメント
( Thursday, October 11, 2001 14:48:12 )

今回,Rb 2.1.2 でビルドした 68K 版も作ってみました。で,今,PB190 を使って
動かして,コメントを書いているのですが,やはり少々もたつきますねぇ。でも,
インライン入力ができるのは,快適ですね。

田中求之 さんからのコメント
( Monday, October 15, 2001 11:39:04 )

fc を登録しました。b2 からの改良点は、

コードの改良による高速化( 2.0 の 68K の方も、ほぼ使い物になる速度に
なったと思います)

30K 以上のスプールやダウンロードデータを処理する際に Progress Bar を
表示するようにした(体感速度の向上 (^_^;; )


→  WSM Watcher

田中求之 さんからのコメント
( Monday, October 15, 2001 13:16:36 )

>コードの改良による高速化

今回のバージョンアップは、これに全精力を注いだと言ってもいいんですが、じっさいにやったことは
以下の作業です。今どき Rb 1 からの移行(移植)を行うという人は少ないとおもいますが、参考まで
に書いておきます。

1: XFCN の廃止 XFCN は 68K コードですので、PPC で動かす場合に足を引っ張るところがあります
  ので、これを Rb 内部で処理するようにしました。具体的には MemoryBlock を使って処理してます。

2: NthField, InstrB あるいは ReplaceALL の各関数を使用していた部分を全面的に書き換え。 Rb2
  で遅くなる最大の原因は NthField が極端に遅くなったことになりますので、これを回避するために、
  スプールとダウンロードしたデータの処理の部分を、全面的に書き換えました。汎用性を犠牲にして
  私のサーバの仕様にガチガチに依存したものにするとともに(たとえばタグの大文字/小文字の使用
  など)、MemoryBlock でバイトごとにチェックをおこなっていくような泥臭い処理にしました。
  (コードが読みにくい… (^_^;; )

3:ProgressBar の表示 処理自体が遅いときには、遅さを感じさせないインターフェースの工夫をする
  というのが定石なんですが(このへんは HyperCard でのスタック作りで鍛えられた)、その工夫と
  して 30K 以上のデータを処理する場合には Progressbar で進行状況を表示するようにしました。
  起動時のスプールの読み込み時など、処理速度自体は若干落ちていますが、待ちの快適さはあがって
  いると自負してます (^_^;; 
  なお、この点に関しては、コードを見てもらった人にはわかることなんですが、本来は Window の
  open イベント内で処理すべきスプールの読み込みを、わざわざ Timer の一発目のキックで処理する
  仕様になっているのも、先にとにかくウィンドを開けてしまった方が、待ちの体感速度があがる
  (待っている間のじれったさが減る)からなんです。


コードとしては、ほぼ、こんなもんかなというものになりましたので、後は、しばらく実際に使いながら
バグがないか等のチェックを行って、正式版にしたいと考えています。

使用して(試用して)、気がついたことがあれば、遠慮なく言ってください。

なお、Rb 3.x でのコンパイル、あるいは 3 での Carbon 版のコンパイルは、おそらく問題ないとは思い
ますが(InterfaceLib には依存していない)、保証の限りではありません。

よしもと さんからのコメント
( Monday, October 15, 2001 14:31:06 )

>なお、Rb 3.x でのコンパイル、あるいは 3 での Carbon 版のコンパイルは、おそらく問題ないとは思い
>ますが(InterfaceLib には依存していない)、保証の限りではありません。

試しに4.xでコンパイルしたところ、バイナリはできましたが、立ち上げると
ウインドウは表示されず、メニューバーだけが表示されました :-)

田中求之 さんからのコメント
( Monday, October 22, 2001 22:39:47 )

>ウインドウは表示されず、メニューバーだけが表示されました :-)

今日、たまたま Rb 3.5.1 で Carbon 版としてコンパイルしたものを OS X (10.1 では
ない古いほう)で動かしてみたのですが、起動すると、確かにメニューバーだけになり
ますね。(+) をクリックしてウィンドウを展開するとちゃんと表示されました。基本
的な処理は問題なく動いていたようでした。もっとも、Rb 3.5 を Demo モードで動か
したので、ちゃんとした検証は行なっていませんが(5分で使えなくなってしまうし)

…そういや、Rb の Definitive Guide の 2nd Edition も出たし、やっぱ Rb のバー
ジョンも上げようかなぁ…

よしもと さんからのコメント
( Friday, October 26, 2001 06:02:12 )

RB 4a3 でmakeしてみました。

確かに(+) をクリックしてウィンドウを展開すると問題なかったです。
ただ、新たに発言を取り込もうとしたとき、44発言しかとりこめません
でした。それと、「OpenURL」問題は重松さんの方と同じ症状が出ます。

それ以外は今のところ大丈夫そうですし、速度も許容範囲です。

田中求之 さんからのコメント
( Friday, October 26, 2001 20:30:19 )

今週末に最終的なチェックを行なって、週明けに正式版をリリースする予定です。
Rb 3 とか OS X 上での動作の確認も行なえたらいいのですが、なにせ OS X を
動かしていないので、この点については保証外になります。ただ、OS X でウィン
ドウがシェードした状態でオープンする点については、もしかしたらこれで防げる
かもしれないという手は打っておきました(明示的にウィンドウを開くようにした
だけですが)。

fc 以降の変更点としては、メッセージリスト欄を広げたこと、そしてコメント用の
ウィンドウに1行の文字数の目安になるマーカーをつけたということです。

2.0 が、けっこう使い物になる速度になってきているので、1.5 はやめて、2.0 だけ
のリリースでいいかなと考えているんですが、ベータ版を試された方、どう思います
か? 68K (PB190) でも 2.0 で、まぁ、こんなもんかなという個人的には納得して
いる速度になったと思うんですが。

田中求之 さんからのコメント
( Friday, October 26, 2001 23:45:02 )

あ、そうそう。メッセージの削除機能も実装します。いったん読んで、もう保存して
おく必要がないと思ったメッセージは削除できるようにしました。

考えてみれば、最初から実装されていてしかるべき機能のような気もする…

たまちゃん さんからのコメント
( Sunday, October 28, 2001 22:16:48 )

実はずっと 1.5 を使ってきて,あわてて 2.0 を使い始めました。

発言リストでのキーボードによる移動の問題はこつみたいなものを
覚えたので運用でカバーしています。

ということで私は 2.0 のみのリリースで問題ないと思っています。

楽しみにしています。

重松修 さんからのコメント
( Monday, October 29, 2001 17:46:19 )

あたらしい 2.0 使ってみました。

速度的には、それほど遅くないな、という印象を受けました。
# 大昔に最初 Rb 2.x で WSM Watcher を使ったときは固まったと思い、強制終了してしまいました。;-)

それから、スレッド表示、ちょっとわかりづらい気がします。。。
田中先生がお使いの 2.0 だと、Windows の Explorer 見たいに、リストの項目 (下位項目があるもの)
を閉じたり開いたりできると思うのですが。これに対応すると、非常に直感的になるかと思います。

田中求之 さんからのコメント
( Monday, October 29, 2001 22:32:33 )

>大昔に最初 Rb 2.x で WSM Watcher を使ったときは固まったと思い

ですよねぇ。私も強制終了しました。NthField, ReplaceAll を追い出し、文字列の
比較を StrComp に切り替えることで、なんとか 2.0 でも使える速度になったと
思います。

>それから、スレッド表示、ちょっとわかりづらい気がします。。。

そうなんですよね。重松さんが指摘されているように、ListBox の階層化の機能を使う
のが正しいように思うのですが、個人的に、好きじゃないんですね(試してはみた)。
で、現在のように、話題のリストを表示して、View の切り換えで潜っていくという
仕様にすることに決めました(内部的に実装が楽だったというのも大きな理由ですが)。
これについては、今回は、このままでいきます。ただし、Thread 一覧の表示方法を
若干手直しし、登録発言数も確認できるようにしたのと、ListBox のコラム数の変更
を中止しています(視点が動きすぎるのが嫌だったので)。

個人的には、Thread 単位でばっさり削除できるようになったのが便利なので、まぁ、
この機能が使えるようになっただけいいか、と思ってます (^_^;;

とりあえず、削除機能を実装した 2.0 GM を明日にでも登録しておきます。正式版を
出してもいいんですが、ちょっとプライベートの方がごちゃごちゃしてまして (^_^;;
説明のページを書き換えている余裕がないので、もうしばらくテスト状態で引っ張り
ます。

田中求之 さんからのコメント
( Tuesday, October 30, 2001 12:53:54 )

2.0 GM を登録しておきました。今回から 2.0 のみに絞ります。

新たな機能はメッセージの削除機能です。なお、メニューではショート
カットのキーが表示されていませんが、Command-Delete をショートカット
に設定してあります。

その他としては、コメントを書くウィンドウに文字数の目安をつけたこと
と、Thread の表示を変更したことです。

→  WSM Watcher

田中求之 さんからのコメント
( Tuesday, October 30, 2001 13:00:52 )

プロジェクトの方も Rb 2 用しか登録していません。

なお、App オブジェクトの Open イベントの最初の部分で、バージョン名(リクエスト
に使う Agent 名)、Spool と Preference をセーブするフォルダーの定義を行って
いますので、OS X などの異なる環境で動かそうとする場合など、必要ならこの部分を
修正してください。

よしもと さんからのコメント
( Tuesday, October 30, 2001 15:44:42 )

>2.0 GM を登録しておきました。今回から 2.0 のみに絞ります。

今RB4a3でビルトしたものを試しています。
「Open URL」は相変わらずダメですが、後は問題ないかな?
インライン入力がちょっと変ですが、これはRBの方の問題でしょうね。

# wsm_watcher_spec.txtが嬉しかったりする :-)

田中求之 さんからのコメント
( Wednesday, October 31, 2001 11:51:46 )

>「Open URL」は相変わらずダメですが、後は問題ないかな?

起動時にウィンドウはちゃんと開きますか?

よしもと さんからのコメント
( Wednesday, October 31, 2001 19:00:31 )

いえ、ダメです。

よしもと さんからのコメント
( Friday, November 09, 2001 08:32:54 )

今日出た3.5.2でmakeしてみました。

・起動時にウインドウが開かない
・Open URLがだめ

この2点の改善はなかったです。一応報告まで。

モリヤ さんからのコメント
( Thursday, November 22, 2001 21:36:33 )

 WSM Watcher を最近ようやく使い始めました。
 私のところの環境では,check をクリックしてサイトから読み込んだ後,
未読が残った状態でアプリを Quit すると,次回起動時に未読が 0 に
なってしまいます。(もしかして仕様?)

・WSM Watcher 2.0 PPC (2.0GM)
・Mac OS 8.1(J)
・PowerMacintosh 8500/120

 とりあえず気づいたので報告です。

田中求之 さんからのコメント
( Thursday, November 22, 2001 22:10:15 )

>もしかして仕様?

そうです。未読というのは、起動してから取り込んだメッセージのうちで、
まだ読んでいないものの数、ということです。取り込んだメッセージをスプール
に記録しているのですが、未読かどうかのフラグは保存しないようになって
いますので、いったん終了して再起動すると未読は 0 になります。

モリヤ さんからのコメント
( Friday, November 23, 2001 01:44:58 )

仕様だったんですね。了解しました。

#個人的には,どこまで読んだかを保持しておいてくれると
#便利だと思うのですが。そう思うのは私だけなのかな?

田中求之 さんからのコメント
( Sunday, December 02, 2001 14:59:01 )

未読マーカーも保存するようにした 2.0 正式版を先ほど公開しました(ようやくページを
書く時間がとれたので)。

田中求之 さんからのコメント
( Monday, December 03, 2001 23:32:25 )

…バグをみつけたんだけど、気がついた人、いるかなぁ?? (^_^;;

たまちゃん さんからのコメント
( Tuesday, December 04, 2001 10:03:14 )

>…バグをみつけたんだけど、気がついた人、いるかなぁ?? (^_^;;

未読の件ですか。 別件かな??

田中求之 さんからのコメント
( Tuesday, December 04, 2001 12:05:40 )

>未読の件ですか。

う、それは何? (^_^;;

Thread の一覧表示の状態で、すべての話題を削除すると、ソフトが死にます。すべて
を削除してしまう場合のことを考えてなかった、私の単純なミスです。

たまちゃん さんからのコメント
( Tuesday, December 04, 2001 12:24:57 )

>未読の件ですか。

未読がゼロの状態にして,再起動すると前回の未読発言数が現れる
という件です。

田中求之 さんからのコメント
( Tuesday, December 04, 2001 12:26:46 )

>未読がゼロの状態にして,再起動すると前回の未読発言数が現れる

う、確かにバグってますね。やっぱあわてて実装したもんは見落としが多いなぁ。

明日にでも、2.01 を出して修正しますわ。

田中求之 さんからのコメント
( Wednesday, December 05, 2001 13:35:06 )

2.01 を登録しました。

未読マーカーのバグと削除機能のバグを修正したものです。

→  WSM Watcher

たまちゃん さんからのコメント
( Thursday, December 06, 2001 20:43:45 )

少し気になる点が見つかりました。

1.発言リストの中に本来あるべき発言が表示されないことがある
  (リストを矢印キーで上下してやるとそのうち現れる)。
2.発言リストの中のあるメッセージを選択していると,下の発言
  欄には1つ下のメッセージ(発言)が表示される。

1は NetBarrier のスレッドで NAMA さんの発言を見落としたこと
から気づきました。2は分かりづらいかもしれませんが,スクリー
ンショットを撮ってありますので,お渡しすることが出来ます。

田中求之 さんからのコメント
( Thursday, December 06, 2001 23:59:59 )

どちらの症状も私のところでは現われていないようです。

たまちゃんさんの現在の環境ってどういうものでしょうか?

特定のハードや OS に依存する問題とは思えないので、やはり WSM watcher の問題だ
ろうとは思うのですが…

たまちゃん さんからのコメント
( Friday, December 07, 2001 00:15:07 )

>たまちゃんさんの現在の環境ってどういうものでしょうか?

現在は Mac OS 9.2.2 です。上の2の問題は 9.2.1 のときにも
起こっていました。

新規発言を取り込んだときに矢印キーで下に降りて新規発言を読
めませんので,いったん上の方のリストまで矢印キーで上がって
いき,そしてまた下の方に下がっていくと新規発言を読むことが
出来ます。その途中で発生しやすいようです。

複数のマシンで起こっていますが,似たような環境なのでもう少
し再現性を含め確かめてみます。

田中求之 さんからのコメント
( Friday, December 07, 2001 13:48:40 )

矢印キーを使って発言をナビゲートしていくと、動作がおかしくなることは確認して
います。これは REALbasic 側の問題のようでして、私の側では修正のしようがない
ところがあります。

もちろん、表示データの処理方法などを変更することで、問題を解決できるかもしれない
のですが、私の方で、確実に再現させる方法がわからないため、とりあえずリリースしま
した。

モリヤ さんからのコメント
( Wednesday, December 12, 2001 17:55:43 )

遅くなりましたが。未読マーカーの保存機能を追加して下さって
ありがとうございました。ひとこと御礼まで。

たまちゃん さんからのコメント
( Monday, May 20, 2002 21:44:43 )

ここで発言してよろしいでしょうか。

今日の夕方以降だと思いますが,WSM Watcher でこれまで取り込んで
いないメッセージが取りこめない状況になっています。

preference や spool ファイルを捨てて設定し直したりしましたが,
同様です。複数の環境で(1.5,2.0 にかかわらず)再現します。


田中求之 さんからのコメント
( Tuesday, May 21, 2002 00:14:57 )

あ、すみません。プログラム(WSM Watcher の背後で動いているプログラム)
をいじったのですが、バグがあったようです。私の方でも、自宅に戻ってから
確認しています。明日の正午には復旧しますので、それまでお待ちください。

…自分用のスケジュール管理システム(人知れず動かしているものなんです)
を改良しようとして、マヌケなことをやってしまったのでした (^_^;;

田中求之 さんからのコメント
( Tuesday, May 21, 2002 12:54:26 )

さきほどプログラムの修正をおこないましたので、これで最新のものもきちんと
取り込むようになっているはずです。

取りこぼした分については、すみませんが、リカバリーできません(バイナリで
Pref ファイルを編集できる環境の方は、最後にチェックを行ったタイムスタンプ
の部分を書き換えれば可能です)

たまちゃん さんからのコメント
( Tuesday, May 21, 2002 16:01:39 )

>最後にチェックを行ったタイムスタンプの部分を書き換えれば可能です

これでばっちしOKでした。 有り難うございました。

田中求之 さんからのコメント
( Tuesday, May 21, 2002 16:05:06 )

今回のトラブルで思ったんですが、強制的にチェックする日付(何日以降の
発言を取り込むかという日付)を設定・変更できるようにしておいた方が
親切ですね。

内部的に、同じ発言が送られてきても重複が起きないようなチェックはかけて
ありますので、取りこぼしたり、誤って消してしまったものだけをもう一度
取り込んだりできるようになりますから。

2.02 としてリリースしますわ。