Tweak

地図を表示する

アプリケーション登録などが必要なく手っ取り早かったので、ALPSLABのサービスを使ってみましたが、Squeakから使うなら、利用規約の面でYahoo!Maps APIの方が使いやすいかもしれません(今のところ日本地図データがないのですが)。Google Mapが JavaScript…

イベントのデリバリ

私にとって、プログラム内部の通信で同期的なイベント送信を使うとうれしいのは、イベント発行側が購読者のことを全く知らなくてもいいことです。例えば、汎用的な機能を部品にパッケージしたとします。処理経過を呼び出し側にメッセージ送信で通知するよう…

Painter

久しぶりにTweak本体にupdateが入り、Painterの見映えが変わってました。

イベントのデリバリ

SoundToysの中の音声波形表示は、WaveEditorで使われているGraphMorphのコードを、Tweakのプログラミングモデルにあわせて書き直しながら実装していっています。GraphMorphで実装している、リアルタイム性を実現するための非同期処理の仕組みをTweakに移すの…

Tweakland or not, その後

Tweakのインストール時に適用されるinitial/03CompilerHacksが原因ですね。このcsのpreambleに入っていた元の名前(CompilerHacks3.6)から推測するに、3.6時代にAR氏が作っていたコードを3.8ベースのSqueaklandコードにかぶせたために、3.8(O島さんのyo 8/…

Tweakland or not?

Tweakと動きを比べるため、Tweaklandイメージの中でビュワーからタイルを取り出してスクリプトを作ろうとしたら、どうしてもエラーになってしまいます。エラーの発生箇所である Parser(Scanner)>>xLetter をよくよく見たら、元のSqueakland版のコードと違い…

タイルのコスチュームを入れ替える

Tweakのアップデートをかけたら(Tweak-Tiles-bf.102.mcz)、代入文のタイル上の語順が変更されていました。 変更前:"set オブジェクト プロパティ to 値" 変更後:"オブジェクト set プロパティ to 値" オブジェクトにメッセージを送信するという言語形式…

Sophie

Sophieチーム?のBLOGに、ある程度まとまったコンセプト解説が掲載されています。http://www.futureofthebook.org/sophie/2006/03/an_introduction_to_sophie.htmlHyperCardが華やかな時代にボイジャーのコンテンツを見たことがありますが、こんなところ(Sq…

SoundToys近況

録音再生はできるようになったので、波形を表示しようとしています。 Morphicで既にあるものをTweak上に移しているだけで、アプリ的に新しい要素はないですが。

ScriptScheduler

userDrawで描画するプレイヤを書いて遊んでいますが、drawOn:in:とかにバグがあった時にスケジューラをいとも簡単に道連れにしてしまいます。しかもいったんその状態になると、PreDebug ウィンドウで Abondoneなどを選んでも復活できず、ProjectBuilderをい…

Sophie

BertさんのBLOG http://croquetweak.blogspot.com/ 経由。開発中のSophie(aka TK4, http://futureofthebook.org/tool/tk4/)の動画が http://www.geeksrus.com/sophie/ に掲載されています。Tweakの上でのまとまった規模の最初のアプリ(Croquetを除けば)…

Island/Projectあれこれ

はまりまくったので、覚書き。 Island内のオブジェクトについてインスペクタやデバッガが表示されている状態で、プロジェクトを保存しようとすると checkpoint failureになる。 インスペクタで"self island"をする時には、聞いている相手が何かを非常に慎重…

Islandにオブジェクトが格納されているとはどういう意味か

私がやろうとしていたのは、Legacy側と、Project側で相互にnon-C-Objectをやりとりする処理だったので、オブジェクトを相手側に渡すのにどうやればいいのかを理解するのが最大の課題でした。 異なるIslandどうしであればフレームワークにその機能が含まれて…

音声の保存・再現

一応動くようになりました。 (1) CSoundLibraryProxy legayな音声ライブラリとのインターフェース。各EToysProjectごとにこのインスタンスを持つようにします。 自分が属するEToysProjectの #shutDownProjectイベントを拾って、プロジェクト中で使われている…

音声データ保存と復元

プロジェクトの保存の際に起きていたことを調べると、次のことがわかりました。 先に「チェックポイントエラー」と書いてしまっていた「CheckPoint Failure」は、すぐエラーということではなく、Islandの外のオブジェクトへの参照が入ってしまっている場合に…

音声データ保存

Morphic側で録音した音声をSampledSoundのライブラリに登録した後、その中身をEToysProjectにプロパティとしてくっつけて保存しようとすると、SnapshotTracer でどうしてもチェックポイントエラーになってしまいます。 ProjectBuilderの機能を使ってインポー…

プロジェクト中の全部のタイルを拾う

Morphicのコードでは、ScriptEditorMorph (Morph)>>allMorphs で全部のタイルをなめています。これに相当する機能をCTilePlayerに追加します。 childTilesDo: aBlock self childTiles do: [:t | t childTilesDo: aBlock]. aBlock value: self allTiles | all…

SoundToysリハビリ

以前にいじっていた時には、SoundRecorderMorphのタイル化に該当する機能のところで、音声リソースの取り扱い方針が見えなかったので、作業が止まっていました。でもなかなか進展がなく待ちきれないので、勝手に機能拡張して遊ぶことにします。 やりたいこと…

eToys2の多言語化

id:propella:20060211:p1 のTweaklandイメージで遊んでいて、etoys2のビュアーを表示する時、CMessageAndArgCostume>>onUpdateEverythingの以下の箇所の #with:do: でエラーになることに気がつきました。 selectorParts := displayName findTokens: $:. sele…

Croquet HedgehogとIsland

Bertさんのブログ http://croquetweak.blogspot.com/2005/12/simplified-teatime.html に、先日のoopslaでの Croquetの新しいアーキテクチャの発表資料が紹介されていたので眺めています。 美しい。。。複雑なシステムを「人間が」取り扱う上で、決定論的に…

The Weekly Squeak

http://minnow.cc.gatech.edu/squeak/5740 少し前からGiovanni Corrigaさんが出していた表記のニュースレター、最初はsqueak-devのサマライズからスタートしていました。始まったころはMLのアクティビティも低かったのでわざわざサマリーを読むこともない…

Sophie

TweakにはCSSでのスタイル制御インフラが組み込まれているらしいのですが、ユーザがそれを使うことができる機能がありません。しかし、Imparaリポジトリのrssに流れてくるSophieの更新ログに、なにやらCSS関係を使っている形跡を見つけました。気になって、…

Tweak-Plugin

フィールドの仕組みの根幹である#propertyValueAt: などをプラグインで高速化することを目指している模様です。

Pure Tweak

ImparaのリポジトリのRSSに "Pure Tweak"なる見慣れないカテゴリのエントリが流れてきて気がつきました。 "Experimental repository for preparing the base of a 100% pure Tweak image. No Morphic, no MVC allowed" ということだそうです。"No * allowed"…

論理演算

昨夜のupdateで、"and or not" というビュアーカテゴリが追加されました。 これで ifThen 入れ子などを駆使せず、複雑な論理式をスマートに扱えます。 しかし "Player's not" というタイルは、表記が気持ち悪いです。

ProjectNavigator

久しぶりにTweakに触りました。 細かいですが、久しぶりに新機能が増えていました。MorphicのThreadNavigatorのような感じで、複数のProjectを順に切り替えることができます。基本的なことしか実装されていないですが、十分便利です。

こまごまと改良

昨夜のアップデートです。 以前はカーソルがプレイヤ上にくるとすぐバルーンヘルプが出てかなり煩かったのですが、少しディレイがかかるようになりました。このディレイを制御するballoonHelpDelayTimeというプリファレンスが追加されているのですが、CPrefe…

タイルのドラッグドロップ

従来のetoyの場合、ドロップ先領域にタイルの形状が少しでもかかっていれば、ドロップ可能であることを示すハイライト表示がされていました。一方、Tweakでは(タイルの形状ではなく)マウスカーソル位置でドロップ可否を判定しているので、ドロップ先がタイ…

プロジェクトの保存

今の実装での動きを確認する スケッチではなくpaintingで1つプレイヤを描画しただけのプロジェクトの保存を実行し、プロジェクトのIslandに外部からインポートしているものの中身を調べてみました。 インポートしているものは143個ありました。ほとんどは、…

プロジェクトの保存

SoundToysの作業が滞っている理由の一つは、取り込んだ音声データがどのように管理されるか(Projectへの保存、ライブラリと音声名タイル、CSoundPlayerなど)の実装がまだ中途半端で、方向性が見えないことにあります。アップデートがお休みの間に懸案処理…