題名:GSIS

五郎の入り口に戻る

日付:2000/5/14

 最初に注意事項 | 主な機能 | Down Load | インストール方法  | SETI@homeの設定

 使い方 | プログラムが作るファイルについて | Q&A | 開発環境 | 謝辞  


注意:SETI@home client Ver3.08を使った場合GSISが動かない、という報告をいただいています。当方現在OS9環境から遠ざかっており、対策が可能だとしてもかなり時間がかかることが予想されます。ご了承ください。

GSIS-ver0.3 (2000/10/7) and 0.23の使い方(2000/6/12)-改訂履歴

本プログラムはSETI@homeのクライアントソフトの助けになればな、と思ってつくりました。

機能は本家Web SiteからリンクされているSETI Unit Manager(略称SUM)の簡易版のようなものと思っていただいて結構です。すなわちMacintoshのSETI@homeクライアントで、

・まとめて複数のWork Unitをダウンロード

・そのWork Unitを順番に解析。

といった機能を持っている(はず)です。加えて(たぶんこれは一番重要な特徴なのですが)SUMと違いソースプログラムを観ることができます。

このプログラムはSETI@homeの日本語メーリングリストの議論のなかから生まれました。

このプログラムの名前の後ろ3文字、SISは"Seti Intercept System"が本義、またの意味は"SIS IS not SUM"です。頭のGはこの論議と一部発表されたプログラムから私(五郎:Goro)が開発したプログラムであることを示しています。(おそらく他のもっとすぐれたバージョンが登場することでしょう)

バージョン番号の小ささは私の自信のなさをあらわすものです。

 

最初に注意事項

本プログラムはAppleScriptで作成されたApplicationです。従ってMacintosh専用、であるのはもちろん、AppleScriptがちゃんとインストールされていることを確認してください。(機能拡張フォルダの中に、Applescript, ApplescripLibがあればよいのですが)

またAkua SweetsのVer1.39以降をダウンロードして(ダウンロードのサイトは下にリンクがあります)システムフォルダにドロップしてください。

すると「スクリプティング機能追加フォルダにいれますか?」とかなんとか聞いてくるので、OKをおしてください。

このプログラムに関する意見、バグレポートその他何でも私に言いたいことがある方はまでお願いいたします。バグ及び改善意見に関しては余技でやっていることでもありすべて対応するとは約束できませんが、できる限りのことはしたいと思っています。

 

GSISはAs isの形で提供されており、このプログラムを使用したことによるいかなる問題、損害などなどについて私(大坪五郎)はいっさい責任を持てません。使用はご自身の責任においておこなってください。

注意:

SETI@home client Ver2.xをご使用の方は、GSIS Ver0.23をご使用ください。

SETI@home client Ver3.xをご使用の方は、GSIS Ver0.3をご使用ください。 

 

主な機能

[What's new in Ver0.3]

[What's new in Ver0.23] 

 

[Ver0.22以前からの移行方法]

そのままGrunSetiとGfillSetiを入れ替えてください

 

Down Load

 

インストール方法 

・Mac版は解凍してできるGSISフォルダの中に、

GfillSeti

GrunSeti

の二つのファイルができているはずです。

SETI@homeの設定 

・SETI@homeクライアントのPreferenceパネルを開いて、次の項目を設定してください。

Network Connection : Ask me before connecting to the internetをチェック

Enable Screen Saver : チェック

Sleep Corner : Top Leftを選択

一例としては以下のようになります。赤で囲んだところ以外はご自由に設定してください。

 

・またくどいようですが、Akua Sweetをシステムフォルダに放り込んであること(「スクリプティング機能追加」フォルダにあるはずですが)を確認してください。

 

使い方

(1)データのダウンロード

・[重要] 日本語Input Method(ことえりとかATOKの類)をOffにしてください。またSETI@homeクライアントが動いている最中は、SETI@homeクライアントが一番前にあるアプリケーションであることを確認してください。

また自分で作って於いてなんですが、この操作をやっている間は、SETI@Supportは終了させておいてください。妙なタイミングでデータを読み込むとおかしな事になります。

・まずGfillSetiをダブルクリックして立ち上げます。すると

"How many extra work units do you want to store ?"

と聞いてきます。これはいくつ余分のWork Unitを持っておくか、と聞いているのです。適当な数を入力してください。数を増減する方法は後述します。

・「まだかいな。。」としばらくまっているとそのうち(これが何故か結構長いのです。改良する予定なのですが。。。)SETI@homeのクライアントが立ち上がります。

するとクライアントは一生懸命SETI@homeのサーバーからデータをダウンロードするはずです。

 

(もし何かの間違い、あるいはバグもしくは一度も解析を行っておらず、SETI@home Dataの中になにない場合、は自分のアカウント(メールアドレスのはずですが)を入力するよう求められます。最初だけですのでがんばって入力してください。(2度目からは自動で繋がります)

すると"Connect Now"か"Connect Later"を選べ、と言われますが「手動で」Connect Nowを選んでください。)

・ダウンロードが終了して"Doing Baseline Smoothing.."とかなんとかいいだすと、自動的にクライアントは終了します。この手順が最初に指定した数だけ繰り返されます。

・すべてのWork Unitをダウンロードするとスクリプトは終了します。これで実行の準備はできました。

[New in Ver0.21] データのダウンロード中にエラーが起こった場合、以下の手順をとってください

1)まずSETI@home Clientを終了します。

2)GfillSetiが一番手前のアプリケーションであることを確認。その後Command Keyを"GfillSeti Quitting.."というダイアログがでるまで押し続けてください。これによりGfillSetiを終了し、データの位置を復元しようとします。

 

(2)実行 

"GrunSeti"というスクリプトをダブルクリックして立ち上げてください。するとまたしばらくまった後にカーソルが勝手に左上に移動して、SETI@home clientがスクリーンセーバーモードで立ち上がるはずです。(立ち上がらなければ私のバグか、もしくは「設定」を確認してください。)

・画面右上のメニューを観ると、GrunSetiが立ち上がっているのが解ると思います。このままScreen Saverモードで実行させてもよし、あるいは別の作業をしていただいても結構です。GrunSetiが立ち上がっている限りにおいて、常に実行状況を監視していて(とはいっても2分間隔ですが)解析が終わると古いワークユニットから順に入れ替えて実行を続行します(少なくともそのはずです)

 

(3)データのダウンロード(Again)

・データが減ってきたら、再びGfillSetiを立ち上げてください。すると解析が終了したWork Unitに関して結果を送信、データのダウンロードを連続して行います。

 

 

プログラムが作るファイルについて+変更可能な設定

・一度GfillSetiを立ち上げた後に

システムフォルダ->[OS8の場合]初期設定フォルダ、[OS9の場合]アプリケーションサポートフォルダを開いてもらうと、中に"GSISFolder"というのができていることがわかると思います。

でもってこの中には"unit0","unit1",....というフォルダ、それに"_temp"というフォルダ、またGSIS.prefsというテキストファイルができています。

 

・_tempフォルダは、ワークユニットをとっかえひっかえするときに使うフォルダですから、動かしたり、名前を変えたり、中に何か入れたりしないでください。

 

・"unit0","unit1"..というのがWork Unitを入れておくフォルダです。もしもっと多くのWork Unitをダウンロードしたいと思えば、このフォルダを増やしてください。ちなみにすでにデータがあるディレクトリから"user_info.sah""version.sah"をコピーしておくと、ダウンロードの時に「user accountを入力しろ」と言われずにすみます。

フォルダの名前は

(1) 最初の文字が"_"でない(例:"_unit0"はだめ)

(2)名前が"fill_"で始まらない(例:"fill_75_unit0"はだめ)

で或限りにおいて適当につけていただいて結構です。 

 

ちなみに、上の条件(2)ですが、名前が"fill_"で始まるフォルダを作った場合、データをダウンロードしますが、実行の時には使用しません。これは複数のMacintoshをLanで接続していて、一台だけからインターネットに接続してWork Unitを送受する場合にを想定(というは私はそういう形態で使っている)して作った機能です。他のマシン上のunit0,unit1のエリアスを"fill_unit0","fill_unit1"..とかの名前でおいておくと、データの送受だけをやってくれます。

 

・GSIS.prefsファイルをあけてもらうと

AutoEmpty 0

AutoLog 1

#

 と書いてあるのが解ると思います。項目ごとに説明すると。。

 

 

 

Q&A

Q:GfillSetiを立ち上げて、"SETI@home Connection"ダイアログが現れるのですが、自動的にダウンロードにならず、かわりにInput Methodのウィンドウが開いて「あ」とか表示されます。

A:日本語インプットメソッドがOnになっているためです。とりあえず手動で"Connect Now"を選んでください(実害はありません)

つぎに立ち上げるときは、日本語Input MethodをOFFにしてあることを確認してください。

 

Q:GfillSeti実行中に(Any kind of)エラーが起こって実行が止まりました。しかしデータはどこにいったのでしょうか?

A:私にも多少良心というものがありますから、こうした場合の処置は一応考えているつもりですが、正直言って試験も不十分ですし、それに増して私の知恵も不十分です。

GfillSetiは概略以下のような動作をします。

1)SETI@home Dataフォルダに解析済みのデータがあれば送受信する。

2)次にSETI@home Dataの内容を_tempフォルダに移す。

3)unit0, unit1...のフォルダの中身をSETI@home Dataフォルダに移す。

4)データを送受信する。

5)新しく受け取ったデータをSETI@home Dataフォルダからunit0,unit1..に戻す。

6)すべてのユニットを送受信し終わると、_tempフォルダからSETI@home Dataに中身を戻す。

従って大抵の場合、SETI@home Dataの中身を unit0,unit1..の中の空になっているフォルダに戻し、_tempの中身をSETI@home Dataに戻せば現状が回復出来るはずです(一応スクリプト中でこの処置をすることになってはいるはずなのですが。。)

 

Q:指定時間に自動的にデータを送受信したり、使用可能なWork Unit数が一定数以下になったら自動的に送受信する機能はないのですか?

A:もしScriptを注意深く観ていただくと、やたら挿入されているコメントの中に後者の機能を私が実装しようとした、という痕跡が認められると思います。

しかしながら私は自分のプログラムの動作にあまりにも自信がないため、結局この機能は先送りにしてしまいました。何度もテストは繰り返していますが、今だにGfillSetiを起動するときは、画面の前で心拍数を30%ほど増加させながら見守っているのです。

また「指定時間での自動実行」もSomeday in the future...ということで見送っています。この「指定時間での実行」は他のユーティリティ(iDo Script Scheduler)などを使えば実現できるのでは、、と他力本願になっているのです。実際こうしたユーティリティを使ったほうがはるかに確実に定時起動ができるはずです。

 

Q:SETI@homeクライアントをアプリケーションモードで立ち上げて制御することは可能でしょうか?

A:今のバージョンではできません(きっぱり)

 

Q:Ver0.2からデータのログがとれるようになったのはいいのですが、"Analysis Started"の時間がどうもずれている気がするのですが。

A:これには二つ理由があります。一つは避けがたいもので、もう一つは将来的には解決しなければならないものです。

まずAnalysis Startedというのは、’データを受信したら、即解析開始’という前提の元にwork_unit.sahが作られた時間を表示しています。ところがこうした「まとめてダウンロードツール」を作ってしまうとその前提がくずれてしまうのです。従って「解析開始時間」ではなく「ダウンロード終了時間」を示してしまっています。これはあれこれ考えたのですがどうもうまい解決方法が考えつきません。

さて、そう思ってまじまじと時間をみると、まだおかしいことに気がつくと思います。実は本来このログデータにはGMT(世界標準時)で時間を書かなければならないのに、私の技量不足でJST(日本標準時)で書いてしまっているのです。

ところがSETI@Supportは律儀に「これはGMTからJSTに変換しなければならない」と9時間時間をずらしてしまいます。結果として「どう考えてもおかしい」という時間になってしまっています。

この問題の後者のほうはいつかなんとかなるかもしれません。(でもAppescriptの時間の変換って結構大変。。)

 

Q:どうもGfillSeti(もしくはGrunSeti)がフリーズしたように見えるのですが

A:この状態になったら、Command + Option + Escapeをおし、出てきたダイアログで「キャンセル」を選択してください。また動き始めるはずです。

これでうまく回復しない場合は、Command + Option + Escapeを押し、"Ok"を押してプログラムを強制終了してください。

 

開発環境

* Macintosh Version: PB2400 + G3@320MHz Mac OS8.6 :SETI@Home Client for Mac Ver2.04と組み合わせて使用 及び PowerMac7500 + G3@466MHz Mac OS9.0.4 :SETI@home client for Mac Ver 2.04と組み合わせて使用。

 このプログラム開発にともなうドタバタはJavaDiary23章-AppleScriptをご参照ください。

謝辞:このプログラムの制作には以下のかたがたのプログラムを参考にさせていただきました。


注釈