[Squeak-ja: 2255] Re: プロジェクトファイル(.pr)で保存されるもの

"土本 (Florian) 強 "土本 (Florian) 強
2005年 1月 11日 (火) 21:25:27 JST


 土本( Florian )です。
 返答ありがとうございました。

メール「[Squeak-ja: 2243] Re: プロジェクトファイル(.pr)で保存されるもの」(2005/01/07 11:29) に於いて
「Takashi Yamamiya」 語りて曰く、

Takashi> >  これを受けて、もう少し本格的なグラフィックリソースとサウンドリソース
Takashi> > を含めた作品を作ってみようと思っています。
Takashi> すばらしい!

 リソースはともかく、行き帰りの電車ではどこまで作業出来る事やら(^^;)。

#土本は普段SqueakでのプログラミングをZaurus上で通勤電車で行っています。
#腰を落ち着けてPCで作業するほどは時間的余裕がないので……。

Takashi> > (1)サウンド、グラフィック、スクリプトデータなどの保存に付いての質問
Takashi> >  サウンドに関しては、阿部さん曰く、
Takashi> > 
Takashi> > 	6x以降はプロジェクトファイルに音も一緒に保存されるので自分の作品に新しい音を追加できます。
Takashi> > 
Takashi> >  とのことですので含めることは可能と思われますが、クラス変数内に含まれ
Takashi> > る(あらかじめロードした)ColorFormなどをProjectファイル内に含めることは
Takashi> > 可能でしょうか。
Takashi> >  また、マップデータやシナリオなどの情報をCollectionとしてクラス変数内
Takashi> > に(あらかじめロードして)持ったものについても同様に可能でしょうか。
Takashi> 
Takashi> 一番簡単なのは World のプロパティ(モーフはみんなプロパティ辞書を持っています。)
Takashi> に入れる事だと思います。オブジェックトなら何でも入ります。プログラムを書いていて
Takashi> 使いやすいのは storeString かなんかでシリアライズした文字列を ChangeSet に
Takashi> クラスメソッドとして持たせる事です。

 なるほど。
 Worldに限らず、どこかのMorphのプロパティ辞書に一括してリソースを持た
せる方針で問題なさそうですね。

Takashi> > (2)Projectファイルで保存されるもの
Takashi> >  これらに付随して質問なのですが、projectファイルの正体はどのような物
Takashi> > なのでしょうか?
Takashi> >  予想としては、
Takashi> > 
Takashi> > 	プロジェクト内で作られたインスタンスを直列化したもの
Takashi> > 	プロジェクト内で作られたClassを直列化した物
Takashi> > 	プロジェクト内で作られたClassのソース(「ChangeSetの中のものを
Takashi> > 含めるか?」との質問があるため)
Takashi> > 
Takashi> >  なのですが、残念ながら手元でpkzipとgzipを駆使してAscii文字列の入った
Takashi> > バイナリにまでは直せたのですが、中身のデータの意味までは判りませんでし
Takashi> > た。
Takashi> 僕も良く知らないのですが、クラスは名前だけ入っています。ChangeSet を
Takashi> 含める事が出来るので、新しいクラスを入れるときは ChangeSet に入れると
Takashi> 良いです。

 諒解しました。
 ただ、ちょっと落とし穴があることに気付きました。

 プロジェクトファイルで結構いろんなものが自動的にセーブされると知って
以下の形でプロジェクトをやりとりして楽しんでいました。

・3.6ベースのイメージでSystemBrowserを開いたままプロジェクト(prファイ
ル)としてセーブ
・3.8ベースのイメージでプロジェクトをロード

 すると、実際のアプリ(いつものRainDrop)とSystemBrowserが開いたままプ
ロジェクトが生成されます。Look & Feelが変化してなかなか楽しい……ので
すが、よく見ると、なんかSystemBrowserが3.6の見かけをしているような……。

 試しに別のWorldに移って新たにSystemBrowserを開いても3.6の
SystemBrowserが。ってことは、これは、

・3.6のSystemBrowserのクラスがChangeSetの形でprファイルに含まれていた

 ……ということなのでしょうか。
 Projectの形でセーブすると、確かに一見さんには判りやすい形になるので
すが、下手なもの開いたままプロジェクト公開しちゃうと他の人の環境を破壊
する羽目になるような気がします。たとえば、workspaceを開いた状態で今プ
ロジェクトを公開していますが、まさか、workspaceのクラスの中身がプロジェ
クトのロード時に書き換わってしまうとかいうことすらも考えられます。
 この辺り、どのようなルール付けで保管されているのかが少し気になります。

Takashi> > (3)公開についての質問
Takashi> >  今回はProjectファイルとして公開することを前提として質問していますが、
Takashi> > 本来、作ったソフトウェアは、Squeak-Plug inで実行することを期待して
Takashi> > Projectファイルとして公開するべきなのでしょうか?
Takashi> >  それとも、sarファイルとしてパッケージの形にまとめるべきでしょうか?
Takashi> >  それとも、mczファイルとしてアーカイブしリソースに関しては別途用意す
Takashi> > べきでしょうか?
Takashi> > 
Takashi> >  また、そもそもSqueakMapはどの程度「気軽に」登録しても良い物なのでしょ
Takashi> > うか?
Takashi> 見てのとおりかなり気軽な物も多いので、相当気軽だと思っています。説明を
Takashi> ちゃんと書けば特に迷惑では無いと思います。

 諒解しました。
 説明……。やっぱり、abstructに関しては英語ですよね……。善処します
(^^;)。

Takashi> pr -- 初心者重視
Takashi> sar -- ユーザ重視
Takashi> mcz -- 自分重視
Takashi> 
Takashi> 自分ではこんな感じに使い分けています。mcz は 3.7 以降インストーラが付属
Takashi> しているのですが、Monticello 自体が付属していないのとバイナリを含める事が
Takashi> 出来ないので、配布物としては特に利点が無いと思います。

 諒解しました。
 基本的にはsarで、デモとしてプラグインで見せる時にはprで公開するポリ
シーにします。

Takashi> > コン
Takashi> > ピュータシステムというものに対するハックの興味を「人に見せる」ところか
Takashi> > らはじめるのも選択肢としては大変有用だと思っています。
Takashi> これには激しく同意します。

 これは、たまたま自分のコンピュータシステムに対する初動の動機が上記の
通りだったための経験則です。
 公開する範囲によっては諸刃の剣ではありますが、モチベーションの維持に
はやはり他人の目は不可欠かと。


 では、失礼します。

-----------------------------------------------------------------
土本( Florian )強/florian @ seagreen.ocn.ne.jp
Florian's Neo Pages http://www.cise.co.jp/%7eflorian/
/* 朝には消えたあの歌声をいつまでも聞いてた
   僕らが残したあの足跡をいつまでも追ってた */
=================================================================




Squeak-ja メーリングリストの案内