Hatena::ブログ(Diary)

言語ゲーム このページをアンテナに追加 RSSフィード Twitter

とあるエンジニアが嘘ばかり書く日記
ホームページ | blog | twitter

2004-09-14

ServerDirectory

Squeak では、アップデートの取得、プロジェクトの共有など、ネットワーク上のファイルを色んな時に使う。その中心にあるのが ServerDirectory というクラス。多分名前から言って、ネット上のファイルをあたかもローカルのように使う事を意図して作られた物だろう。Squeak の裏方である ServerDirectory について調べてみた。

1) サーバーを登録する。

まず、利用するサーバーを準備する。例えば以下のように設定しておく。

サーバ名: languagegame.org (www サーバと ftp サーバが稼動)
使うディレクトリ: /home/takasi/www/squeak/updates/
www 上のドキュメントルート: /home/takasi/www/
ftp ユーザ名: takasi
ftp パスワード: 内緒

次に、元々のサーバーの設定をファイルに書き出す。以下を do it.

(FileDirectory default directoryNamed: 'prefs',  FileDirectory slash,  'knownServers') assureExistence.
ServerDirectory transferServerDefinitionsToExternal.

これで、prefs/knownServers の中に既存の設定が保存されるので、このファイルを適当にコピペ編集で好きに設定する。例えば以下のようなファイルを languagegame.org のような名前をつけて保存する。関連するファイルの行末は全て CR なので注意。

name:	languagegame.org
directory:	www/squeak/updates
type:	ftp
server:	languagegame.org
group:	LanguageGame Updates
user:	takasi
url:	 http://languagegame/squeak/updates
acceptsUploads:	true

そして、以下を do it して、設定ファイルの内容を反映させる。

ServerDirectory fetchExternalSettingsIn: (FileDirectory default directoryNamed: 'prefs')

これだけで、フラップの公開ボタンの長押しに出てくるサーバーリストに FTP が現れる。

2) アップデートストリーム

先程はプロジェクトの共有だが、コードを共有する方法。現在は Monticello という洗練された仕組みが有るので、あまり開発者が使う必要は無いと思う。これをやるにはディレクトリ名が updates である必要がある。この例で言うと、updates ディレクトリに updates.list という名前でファイルを作り、以下のようにバージョン名を書く(行末は CR)。バージョン名は SystemVersioncurrent version で調べて下さい。

#SqueakNihongo6.1

次に、以下を do it して http から見たディレクトリの場所を伝える。

Utilities updateUrlLists add: #('Languagegame Server' ('languagegame.org/squeak/')).

これで完成。あとはチェンジセットを登録するだけだ。ファイルリストを開けて、公開したいチェンジセットを右クリックし、broadcast as update を選択する。するとファイル名の頭に勝手に番号がついて、アップデート出来る様になる。

  • 分からない事。
    • 『探す』ボタンを普通にクリックした時に出てくる画面で新しいサーバを出すようにする方法。
  • 参考

umejavaumejava 2004/09/15 01:04 サーバ上にあろうがローカルにあろうが、意識せずに使える仮想フォルダが欲しいです。プラットフォームごとのパスの違いも吸収できているやつ。

umejavaumejava 2004/09/15 22:50 URLは長いのでエイリアスの概念があると良いなーと思います。辞書風に使えると良いですね。’@home/resources’ at: ’auau.txt’ put: contents. とか。@homeの位置はデフォルトではSqueakの起動ディレクトリ。必要に応じてサーバ上に設定できると、Live CDのSqueakなどでも重宝するかも。

propellapropella 2004/09/16 13:14 辞書として使えるとはナイスアイデア。そういえば Perl5 には DB でも何でも辞書として扱える、tie というのがあって、それなりに便利でした。文法を変えなくても出来る Smalltalk はエライですね。

トラックバック - http://d.hatena.ne.jp/propella/20040914/p2

カレンダー
<< 2004/09 >>
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
最新コメント一覧