RO_GPS.pmBBS_2002
過去ログ:2002年,2003年Q1,2003年Q2,2003年Q3,2003年Q4,最新
名前 : 瀧(2002/12/09 17:46)
FreeBSD 4.7では標準の/usr/bin/perlでは動きません(5.005が入っているから)。
/usr/ports/lang/perl5.8/からperl5.8をインストールし、
rotooldの1行目を/usr/local/bin/perlにすれば問題なく動きます。
一応、報告です。
- えーと、とりあえずIO::Socket::INETが標準で入っていないせいで動かないのだと思います。(5.0では標準モジュールじゃなかったのね(^^;)。ですので、FreeBSDの場合はports/packageから、"p5-IO"をインストールすれば動きそうな気も。
- ということで某所のFreeBSD環境で試してみましたが見事敗北いたしました。--2002/12/13 01:03 ynakata
名前 : nyui(2002/12/09 11:55)
らぐぽじって出ましたが互換は無いって事ですが
対応予定とか無いものでしょうか?(^^;
- 既に自分じゃROやってないんですよね。
- コードを書くのは好きなのでプロトコル情報があれば対応します。
- っていうか誰か標準プロトコルセット定義しろよ、とか思わなくもないですな。--2002/12/09 13:25 ynakata
名前 : もひろ(2002/11/30 03:17)
さて。RoGPS のクライアント公開が 終わってしまいますが、
ギリギリ EP1.5 client (Patch 213) の Ro_GPS.INI が掲載されましたねー。
理論的には、RoGPS さへ動けば RoGPS.pm ( rotoold ) には影響ないハズなんですが…
新MAPの情報だけは追補が必要かなー? ・・・お金払って 入れてからの話だな(TωT)
名前 : itsu(2002/10/28 22:04)
20021027_0 を試してみて気付いた点を一つ。
クライアントにRO-GPSを使っていますが、Lvの表示部分がおかしくなりました。
通常 職/Base/Job で表示されていますが、Base/--/-- になります。
20021023_1版では正常でした。
環境はVineLinux?2.5 + perl5.6.1、クライアントはRO-GPS v0.3で
試してます。
- この点修正した、20021028_0版を公開しました。--2002/10/28 23:15 ynakata
名前 : fumi.(2002/10/28 02:08)
修正が必要というわけではないのですが、
$PIDFILE を有効にしている状態で、pidfile が生成できないと、
log に何も出力せずにプロセスが死亡します。
(console には perl の error mesg. が出ます)
自動起動をしようとしているときにハマるかもしれません。
# というか、2,3 min 考え込みました(^^;
- 了解です。次の公開版では、最悪該当部分でエラーを吐くようにします。--2002/10/28 02:14 ynakata
名前 : somebody(2002/10/27 23:47)
rotooldの自動起動を頑張って試していましたが
8行目の"ROGPSDIR"は"ROTOOLDDIR"なのですね
非力なのでたっぷり悩んでしまいました。
もしかして初心者避けでした?
- 単にメンテナンスが間に合ってないだけです(ぉ 私自身が自動起動設定にしてないのも悪いのですが。ということで、直します。--2002/10/28 01:08 ynakata
名前 : もひろ(2002/10/27 14:22)
いつも(テストサーバも(ぉ))利用させていただいております。
1027版… File Not Found になりますです (T_T)
ご確認いただけますと幸いです。では。
- 斬新なぐらい明白にupし忘れてました(死 --2002/10/27 14:35 ynakata
名前 : ynakata(2002/10/27 11:38)
20021027_0出しました。
- 接続時時刻について修正。(ROTool/AcoNavi?/Client.pmでの初期化順のミスが原因。)
- RO-GPSが行っている" <--> &doublequote; というencodeに対応。アコナビで繋いだときに化けなくなります。
- devtoolsなるディレクトリの追加。RO_GPS.pmに含まれていた、開発用ダミーサーバ/クライアント入り。
名前 : パッチ出した人(2002/10/23 15:44)
20021023_1 動かしてみています。今のところ安定して動いていますが一点だけ。
rotoold では接続後メッセージ投入まで時刻が空欄ですが、アコナビ内蔵サーバでは接続時の時間が表示されます。
細かくてすいません。大勢に影響なさそうなので何かのついでに直していただければ満足です。
対応ありがとうございました。
名前 : ynakata(2002/10/23 15:09)
パッチ提供に伴いまして、「時刻」取得方法の再修正と--portオプションの追加をした20021023_1版を公開しました。
ろくにテストしてないので、とりあえず不安定版ってことでよろしくお願いします。
名前 : ynakata(2002/10/23 11:29)
時刻取得方法の修正と、二重表示対策をほぼそのまま取り込ませていただきました。感謝。
名前 : somebody(2002/10/23 00:24)
えっと 解決したときの方法は
CD /d D:\rosvと カレントディレクトリにしてから
perl rotoold
とすると見事に動きました
(D:\rosv\ の中にrotooldが入っている場合です)
あと、エラー原因として
コマンドプロンプトを起動した場合 カレントディレクトリがC:\になっていることが原因かと思います
rotooldファイルを動かすとき ファイルの中の 6行目 use ROTool; で指定されるファイルがこの場合
カレントディレクトリ(C:)\ROToold.pm になるからだと思います
流石にROToold.pmはC:\に入れてないだろうですから
CDでディレクトリ移動後 rotoold を実行したら良いかもです
6行目を#でコメントアウトした場合7行目も同じエラーが出て最後のline 6.がline 7.になるだけですからたぶんこれであってると思います
あと、ちょっとだけ技を使うとWin起動時に自動も可能ですね
batファイルを使って
CD /d D:\rosvperl rotoold
という中身でバッチファイルを作り スタートアップに入れたら動きます
(鯖PCでこの方法を使用中です)
名前 : somebody(2002/10/22 21:17)
アコナビで接続したときに同じクライアントが二重に表示されることがある件の続きです。
少なくとも私の環境では、AcoNavi?/Client.pm の recv において
アコナビによる最初の接続の $self->{"param"}->{"id"} が
undef ではなく '' になるため、ROTool::UA_regist されて誤動作の原因となっていました。
UA_regist を呼び出す前のチェック条件を追加する(undef に加えて '' もはじく)ことで回避できました。
名前 : somebody f(2002/10/22 20:45)
Windows 2000 Pro. 上の Perl ver.5.6.1 で使用させていただいています.
コマンドプロンプトから perl rotoold で起動しているのですが
使っているうちに 情報の更新や新たな接続ができなくなることがあります.
その際,rotoold を実行したプロンプトから Ctrl+c で終了させると
Use of uninitialized value in numeric eq (==) at rotoold line 105.
とのメッセージが表示されます.
回避方法あるいは修正について情報をいただけると幸いです.
既知の事項でしたらすみません.
--2002/10/23 11:38 ynakata
状況からみると、ネットワーク絡みでIOブロックが発生してるんじゃないかなぁ、と思います。現象が発生するのが新しいクライアントが接続してきた直後に限られるなら、ほぼ決まり。
考えられる対策は、そのへんケアしてプログラム書き直すこと、だけです(--;
それから、表示されたというエラーメッセージについてはあまり気にしないでください。エラーと言うよりは警告というべきレベルのメッセージで、動作には支障ありません。
名前 : ynakata(2002/10/22 16:54)
そのエラーは、「モジュールが読み込めない」というエラーです。
ROTool.pm、およびそのサブモジュールをPerlに読ませることができれば解決します。
解決案いくつか
- "@INC contains: ..." で 出て来たディレクトリに、配布パッケージのROTool.pm と ROToolディレクトリをコピーする
-
モジュールの読み込み前に、
use lib "D:/path/to/rotoold";
などと書く。 - Perlスクリプトの実行前に、配布パッケージを置いてあるディレクトリに移動(cd)するようにする。
これでわかんない人は、たぶんrotooldを動かすべきではありません<無責任
他に、「作者に『Makefile.PLをちゃんと書け』とヤキを入れる」という方法もありますが、これはかなり望み薄。
名前 : somebody(2002/10/22 15:06)
私も同じエラーでたんですが、どうやって解決されたのか教えてください。
Can't locate ROTool.pm.........................
BEGIN failed--compilation aborted at .......................... line 6.
です。
名前 : さっきの書き込みのやつ(2002/10/21 22:45)
すみません 分かりました
名前 : somebody(2002/10/21 21:52)
Win2000・ActivePerl? 5.6.1上で
rotoold alpha_20021016_0版の
エラー報告です
Can't locate ROTool.pm in @INC (@INC contains: D:/user/local/lib D:/user/local/site/lib .) at D:\homepage\home\rogps\sv3rotoold line 6.
BEGIN failed--compilation aborted at D:\homepage\home\rogps\sv3rotoold line 6.
と出ます
名前 : somebody(2002/10/17 17:55)
日付の件です。
このパッチ、このままだと } と $ が足りませんでしたがそれは直したとして、
これだとクライアントのキャラ状態に何か変化があると日付が変わりました。
立ちアコのサーバで試してみたところメッセージに変化があった時だけ日付が
変わりましたので、全部のフィールドではなく
$self->{"param"}->{"message"} の変化だけチェックすると
いいのではないかと思います。
名前 : ynakata(2002/10/16 19:18)
timeについて、えらく簡単にパッチ作ってみました。ROTool/AcoNavi?/Client.pmに当ててやってください。これでうまくいくなら正式採用のつもり。
名前 : somebody(2002/10/16 19:05)
FreeBSD 4.6 に perl 5.6.1 を入れて rotoold-a20021016_0 を動かしてみました。
アコナビしか繋いでいないのですが、なぜか最後に接続したユーザ情報が二重に表示されるという
現象が起こっています。debugger でステップで追うと起こらなくて、accept_new_client の最後に
sleep 2 くらい入れると起こらなくなるので何かタイミング問題のようなのですが、あまりちゃんと
追いかけていません。
あとメッセージを変更したときだけ日付フィールドが変わるのが本来の仕様と聞いたのですが、
ROTool/AcoNavi?/Client.pm の recv で読み込む前の message を一時保存しておいて新しい
物と比較し、変化があったときだけ time を更新するようにするのはどうでしょうか?
名前 : ynakata(2002/10/15 20:18)
確認報告、ありがとうございます。
なお、一部の情報がおかしくなるのは、現時点では仕様です(--;
RO-GPSとアコナビの間で、データの扱いが若干異なるのが原因です。
今後、修正して行きたいとは思ってますです。
名前 : someさん(2002/10/15 19:35)
こんにちわ。パール初心者ですが、動作報告させてもらいます。
動作環境MacOSX(10.2)
動作確認(最新版使用)
rotoold alpha_20021010
RO_GPS.pm alpha_20020930_0
共に動作しました。
一部の情報はおかしくなりますがGPS&立ちアコ混在環境可能でした。
名前 : somebody(2002/10/13 14:00)
KEEP_MESSAGE_TIMEが反映されていなかったので、loglevel設定の後あたりに
&ROTool::keeptime($KEEP_MESSAGE_TIMEOUT) if($KEEP_MESSAGE);
を追加してみました。
修正反映をお願いします(^_^)
名前 : somebody(2002/10/11 06:08)
修正ありがとうございます。
現在のところエラー無く順調に動作しておりますのでご報告致します。
名前 : ynakata(2002/10/10 23:41)
あらかた動作には問題のないメッセージなのですが、修正したalpha_20021010_1版を公開しました。
名前 : somebody(2002/10/10 18:45)
早速の修正ありがとうございます。
が、さらにエラーが出ます。
エラーメッセージ出力が
Argument " sock non blocking fail : Bad file descriptor
" isn't numeric in numeric le (<=) at ROTool.pm line 103.
Use of uninitialized value in substitution (s///) at E:\Games\Ragtoolrotoold-a20021010_0rotoold-a20021010_0rotoold line 107.
Use of uninitialized value in substitution (s///) at E:\Games\Ragtoolrotoold-a20021010_0rotoold-a20021010_0rotoold line 108.
Use of uninitialized value in substitution (s///) at E:\Games\Ragtoolrotoold-a20021010_0rotoold-a20021010_0rotoold line 109.
Use of uninitialized value in substitution (s///) at E:\Games\Ragtoolrotoold-a20021010_0rotoold-a20021010_0rotoold line 110.
Use of uninitialized value in substitution (s///) at jcode.pl line 535.
Use of uninitialized value in substitution (s///) at jcode.pl line 645.
Use of uninitialized value in concatenation (.) or string at E:\Games\Ragtoolrotoold-a20021010_0rotoold-a20021010_0rotoold line 113.
標準出力に
RO_GPSクライアントの接続時
check by CODE(0x1a9ec18)
アコナビクライアント接続時
check by CODE(0x1a9ec18)
check by CODE(0x1a8e508)
が出力されます。
尚、エラーメッセージをファイルに出力させるためrotooldの最初に2行書き足しております。
名前 : ynakata(2002/10/10 18:22)
エラー報告ありがとうございます。
状況を確認の上、修正したrotoold alpha_20021010_0版を公開しました。
- IO::Socket::INET->blocking(0) が、動作していないことが原因でした。
名前 : somebody(2002/10/10 14:00)
下の人と同じような環境ですがRO-GPSのときは以下のようなメッセージが出ます。
Use of uninitialized value in pattern match (m//) at ROTool/RO-GPS/Client.pm line 102.
名前 : somebody(2002/10/10 10:57)
動作報告
ActivePerl? v5.6.1 Build633 with Windows98SEおよびXP 両環境下において正常動作しません。
具体的には、接続はできるが情報が表示されない(=データが送られてきていない?)
そして、アコナビ切断時に
Use of uninitialized value in pattern match (m//) at ROTool/AcoNavi?/Client.pm line 118.
というエラーが出る
というものです。
私の持ってるXP,98SEの2台とも同じ動作しかしませんが
Windows環境で正常に動いてる方いらっしゃるんでしょうか・・・?
名前 : ynakata(2002/10/06 12:14)
了解です。
タイマー処理を、「main側でtime()関数の結果が変化した」を条件に回すことにします。
修正したalpha_20021006_1版を公開しました。
名前 : somebody2(2002/10/06 09:26)
とりあえずぐぐってみると
http://tohoho.wakusei.ne.jp/lng/199908/99080050.htm
引っかかりましたのでご報告。
名前 : somebody(2002/10/06 07:43)
WIN2000サービス化報告したヤツでっす。
>とりあえず、私は欲しいです。いろいろ改造して遊びたい。
なるほど。人様に見せれるものじゃないヘタレソースでも良いのであれば、
後日にでもココにDLアドレスを公開してもいいんですけど・・・公開出来るといいなぁ。
Perl超初心者なので、ミスあるかも・・・。
あと、rotooldの動作報告です。
Win2000の方では動きませんでした。
「The Unsupported function alarm function is unimplemented at rotoold line 61.」
と出ました。行を見てみると alarm(1); と書かれてます。
調べた所こんな文が・・・
WindowsではActivePerl?がalarmを実装していないために "The Unsupported function alarm function is unimplemented" のエラーになりました。
との事です。私のようなActivePerl?を使ってるWinユーザーは使えないようです・・・?
名前 : ynakata(2002/10/06 02:26)
おお、それを応用すると、
- 五分に一回ぐらいモニターして接続状況記録
- レベルアップしたら自動的にお祝いメール送信
とか、いろいろわけわからんちんなことができるですよ。>CGIが接続してくる
とりあえず、私は欲しいです。いろいろ改造して遊びたい。
名前 : somebody(2002/10/05 21:36)
WIN2000サービス化報告したヤツでっす。
・Webから状況確認できるようにしてみる。
動的生成版:HTTPリクエスト時にCGIがネットワーク接続してくるようにする
ってのを、クライアントTESTのソースをPerl初心者なりに改造して、とりあえず表示させる所まで作ってみたんです。
が、ギルドメンバーには「見るんだったらGPS起動すればいいじゃん」みたいな反応で少し寂しい感じでした。w
i-modeで見れるようにもしてはみたんですが、これも反応いまいちw
これを期に、Perlの勉強という事でイロイロやってみようと思ってやってますが、実際の所需要ありな人っていますか?
名前 : somebody(2002/10/03 02:50)
↓のプロクシ作者です。
回収して公開しておいて戴けるととても助かります。
配布条件等は特に考えていませんが、特に問題になるようなことはないと思いますし。
- ROGPSproxy-20020929.zipとして上げておきました。--2002/10/03 08:37 ynakata
名前 : somebody(2002/09/29 16:23)
本家の掲示板では複数鯖接続の要望がかなりあるみたいですね
それを可能にするプロクシみたいなのを作ってみました
かなり危険なツールですが...
http://dtsi.dyndns.info/~uploader/2ch-ro/file/20020929162008.zip
2chのあぷろだで申し訳ないですが、サーバースペース持ってないもので。
- よければここでも回収して上げときましょうか?--2002/09/29 23:58 ynakata
名前 : somebody(2002/09/26 23:21)
WINDOWS2000のサービス化一応出来たので一応報告って事で。
かなりムリヤリですが。
FireDaemonを使ってPerl.exeに対してサービス化して、
引数にplファイルをフルパスで入れたら、「とりあえず」動いています。
無論他人がコレをしてトラブルが起きても無保証って事で。
名前 : ynakata(2002/09/26 20:10)
メッセージキープ機能を追加しました。
切断時のメッセージが"()"で囲まれていた場合に限り、そのメッセージを所定の時間残留させます。
この機能は、デフォルトではオフになっています。
有効にする場合は、RO_GPS_serv.pl 冒頭部の以下の部分を適切に書き換えてください。
#additional feature my $KEEP_MESSAGE = 0; <= 1 で有効 my $KEEP_MESSAGE_TIMEOUT = 10800; # in second <= 残留時間を秒で指定
名前 : somebody(2002/09/25 04:04)
WINDOWS2000のサービス化て可能ですか?
-
ごめんなさい、実験環境ないのでわかりません(--;
-
むしろ
人柱実験していただけるとありがたいです。 - 起動用のバッチを組んで、そいつをサービス登録すればなんとかなる……といいなぁ。
-
むしろ
--2002/09/25 11:47 ynakata
名前 : somebody(2002/09/23 19:04)
昨日の時代遅れのKondara野郎です。
とりあえずrc.dに起動スクリプト放り込みました(^^;)
サーバで切断時のメッセージが残留(場所は未接続とか)できるなら、大変ありがたい。が、どう削除するかですねー。残留思念は24時間で削除とか。
-
よければ、rcスクリプトを提供していただけませんか? 使用例として紹介したいので。
- や、自分で書けばいいって話もありますが、面倒なもんで(死
--2002/09/25 11:47 ynakata
-
サーバでのメッセージの保持機能、追加しました。
--2002/09/26 20:15 ynakata
名前 : somebody(2002/09/22 22:46)
使わせていただきました。24時間運転が1台に集約できるのがありがたい。
環境は、Kondara2000+Jirai(古い)です。
メッセージログ機能、ひょっとしたら伝言板に使えるかなー、と期待してます。
うちのPTは社会人中心なので、時間が合わない事が多いため簡単な伝言板が欲しいなと。
-
ログ機能は、「書きかけ・打ち間違いのメッセージをいかに排除するか」に問題が。
- とりあえず、メッセージの単純延伸は同一メッセージとみなす方向で実装するつもりです。
-
意図されてるような使い方でしたら、特定IDについて、接続切ってもエントリを維持するのがありかもしれません。当然メッセージは切断時のものを残して。RO-GPS単体でログ見るのは(現状では)無理ッス。
- データ構造の複雑化、タイムアウト処理との兼ね合いあたりが難点かな?
--2002/09/23 13:29 ynakata
名前 : チャッピー(2002/09/19 09:23)
昨日はありがとうございました「ynwhite.dyndns.org」でお世話になったマジです。
WWWサーバでRO_GPS.pm(755)RO_GPS_serv.pl(755)jcode.pl (644)で設置して使わせていただいているのですが、FTPしかできないのでWWWブラウザからRO_GPS_serv.plをキックして動かしています。
しかしながら、しばらくすると落ちてしまうようです。
RO_GPS_serv.plの「my $timeout = 30;」を1440(1日)とかにしてみましたが、まだ結果は出ていません。
また、coreという2Mバイトのファイルを吐くのは気のせいでしょうかw
- すいません。基本的にはコマンドラインツールとして作ってあるので、CGIでキックという使い方は想定してませんです。
-
動作停止は$timeoutとは関係なく起こっていると思います。
-
可能性として濃厚なのは、Webサーバが「返事をしないCGIをtimeout扱いして落した」です。
- core吐いてるのが気になる……
-
可能性として濃厚なのは、Webサーバが「返事をしないCGIをtimeout扱いして落した」です。
-
以下、まったく推奨しませんがどうにか出来るかもしれないhack案
- シグナルハンドラ追加して特定シグナルを無視させる
- forkして親はexit子はexecするようなラッパーを書く
-
いずれにせよ、Webサーバが想定している以外の使い方だと思います。
- RO-GPS相当で、httpで通知/取得するようなアプリケーションを作るのが正しいでしょう。
- お手軽解決法としては、Windows上で動くRO-GPS - http proxyを作ってしまえばいいでしょう。
--2002/09/19 13:59 ynakata
- RO_GPS.pmのパーミッションは644で大丈夫です。
- 今気づきましたが、単純にHTTPヘッダを返してからstdin、stdout、stderrを閉じるという作戦でうまくいくかもしれません。
--2002/09/25 17:55 ynakata
名前 : somebody(2002/09/18 20:21)
alpha_20020917_0版にて、クライアントの「切断」を押さずに、右上の×で終了してしまったら、
サーバー側にデータの残骸が残っている模様です。
次回接続時にIDを変えてログインすると、残骸が残っているのが見えました。
- 手元では状況を確認できないのですが、ソケットのクローズがうまくいっていないせいだと思います。クライアントのタイムアウトを確認するようにすれば、治るかな?--2002/09/18 22:22 ynakata
名前 : somebody(2002/09/18 14:24)
HTTPとの連携はナイスアイディアだと思います。
これならhttpdいれたWin鯖でも簡単に実装できそう。
- 褒められてますがネタ自体はRagarok On/Offlineのパクリです。もうなんちゅうか人の褌で相撲とってばっかり。--2002/09/18 14:38 ynakata
名前 : somebody(2002/09/18 03:12)
alpha_20020917_0版を使用していたら、時々、クライアント側の最後の一人のデータが二つに増えて、
増えたほうのフィールドが一つずつ右にずれていました。(HPのところに場所が、SPのところにHPがというように)
バグだと思いますが、改善のほどよろしくお願いします。
- サーバからのメッセージ生成でバグを出してるのだと思いますが、原因つかめてません。調査中。--2002/09/18 08:42 ynakata
名前 : somebody(2002/09/16 19:12)
サーバー→クライアントの通信内容(\001で区切られた〜\002までの一区切り)の第2フィールドは
PROTO_VERではなくレコード数ではないですか。
\002までに(RP_GPSクライアント画面での)何行ぶんのデータが入っているかを表現しているのだと思われます。