Archive for 10月, 2007

2007/10/28

[自由自在Squeak][FileMan] サンプルコードをまとめてBOM付きに

自由自在Squeakプログラミング」は、今から3年前に出た本です。当時はSqueakは3.6で、BOMなしUTF-8をソースとして読む仕様になっていました。現在はBOMつきを読むようになっています。

そのため当時のサンプルコードを最近のSqueak(3.8以降)で読ませるようにするにはBOMをつけるという変換を行わなければなりません。これを我らがFileManで行ったという話です。

まずはBOMを付ける処理です。SampleCodes以下のサブディレクトリ群以下にあるファイル全てについて、BOMを先頭に追加します。以前のファイルを消さずに、ファイル名に'.bom'を付けています。

dir := './SampleCodes' asDirectoryEntry.
bom := {16rEF. 16rBB. 16rBF} asByteArray.
dirs directoriesDo: [:dir |
dir filesDo: [:file |
binContents := file binaryContents.
dir binaryAt: (file name, '.bom') put: (bom, binContents).
]
].

どうやら変換がうまくいったようなので、'.bom'以外のファイルを全て消します。
rootDir := './SampleCodes' asDirectoryEntry.
rootDir allFilesDo: [:file |
(file extension endsWith: '.bom') ifFalse: [file delete]
].

次にファイル名をもとに戻します。
rootDir := './SampleCodes' asDirectoryEntry.
rootDir allFilesDo: [:file |
file rename: (file name copyReplaceAll: '.bom' with: '')
].

ということで、Squeakであればファイル操作も簡単にできますよ。

変換したサンプルは自由自在SqueakプログラミングサポートWikiに置いてあります。

記事を見てコメントする | 友だちに紹介する

広告
2007/10/27

[SIXX] SIXX 0.3 preview

そろそろ出ますよ。待ちきれない人はSqueakSourceJからダウンロードしてください。

主な特徴として

  • #sixxNonReferencableInstVarNames フックの追加
    • 参照形式を使わずに常にそのまま書かれるインスタンス変数を定義できます。これはコンパクトなリテラルで表現できるオブジェクトなどをいちいち参照で書いているとSIXXのテキストファイルとしてのリーダビリティが落ちるという意見を反映したものです。
  • "Formatter"のサポート
    • Formatterとは、サブクラスを定義せずに特定クラスのSIXXフォーマットを動的にカスタマイズする仕組みです。例えばArrayやBagのイン スタンスなどで、場合によっては非常にsparseだったり冗長なオブジェクトが要素に含まれているときに、専用のサブクラスを定義しなくとも、インスタ ンスの状況に応じたフォーマットでオブジェクトを書き出すことができるというものです。
  • ShapeChangerのリファクタリング
    • もともとクラス定義の変更に柔軟に対応するための仕組みですが、いままではSixxShapeChangeReadStreamという専用の ReadStreamを使う必要がありました。今回からは、もっと簡単に#readSixxFrom:の前にコンテキストにShapeChangerを登 録すれば良いだけとなりました。(従来のやり方もサポートしています)


shapeChangers := {#SixxMockFixedNewFailedClass->SixxMockFixedAlternativeClass} as: Dictionary.
SixxContext applyShapeChangers: shapeChangers while: [
  object := Object readSixxFrom: oldSixx.
].

などとなります。Formatterもほぼ同様の使い勝手です。

11月はじめに正式リリースの予定です。

記事を見てコメントする | 友だちに紹介する

2007/10/11

[Morphic] Sun Labs Lively Kernel

すごいですよ。MorphicがJavaScriptで動いています。

つまり画面上の任意のオブジェクトをつかんで回してプログラミングという、通常のデスクトップ以上の体験が、Webブラウザ上で出来てしまうのです。


#さすがDan Ingallsといったところでしょうか。

現在Safariが推奨となっていますが、Firefoxでもそこそこ動きます。

チュートリアルもあったりします。ブラウザで実際に動かしながら確認できるので楽しいです。

Web 3.0系ですね。これは。

記事を見てコメントする | 友だちに紹介する