言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

squeak

便利なパッケージ

Test Runner Enhancements バックグラウンドでテストを走らせる SARBuilder Squeak アーカイブを作るのに必要 WatchIt! 例えば。Time now と書いて右クリックして watch it すると、現在時刻がずっと更新される。

Fabrik

Max の元祖かな? とりあえず印刷して読もう↓ http://users.ipa.net/~dwighth/smalltalk/Fabrik/Fabrik.html

Zurgle

これは面白い! ここまで見かけが変わるのか?よく作ってあるなー

SqueakToys その1 …とクラス-インスタンス談義ちょっと

を復習。うーん。ムズイ。

デバッガにツールチップ

一度表示した変数を何度も取りに行かないように前回分のキャッシュをつける所が間違ってたのを修正。 http://www.languagegame.org:8080/propella/45

デバッガにツールチップ追加

FakeClassPool クラス変数を本物のクラスの代わりに保持する。doIt時使用。 TextMorphEditor(ParagraphEditor)>>evaluateSelection での rcvr class evaluatorClass new evaluate: (ReadStream on: varName) in: ctxt to: rcvr notifying: self ifFail: [Fak…

デバッガの仕組みを調べるための色んな分かった事

一番簡単なバルーンの出し方 ActiveHand showBalloon: 'hello' hand: ActiveHand現在のコンテキストのローカル変数をインスペクトしてみる。 ContextVariablesInspector openOn: thisContext withEvalPane: trueテキスト処理の仕組み PluggableTextMorph <>-…

自分で ThingLab のオブジェクトをつくる。

ThingLab では、既存のオブジェクトを組み合わせて簡単に新しいオブジェクトを作る事が出来る一方で、全く新しいオブジェクトを一から作るのはちょっと難しい。オブジェクトを作る為のツールが用意されていないばかりか、Smalltalk のマニアックな機能を沢山…

ThingLab でオームの法則

http://www.2share.com/thinglab/ThingLab%20-%20Chapter%205.html の Figure 5.2 を見ながら。制約がどのように働くのを調べてみます。 実はこのサンプル VoltageDivider は最初から ThingLab の中に入っているので用意は簡単です。テキストと同じ実験をす…

ThingLab で計算機を作る

http://d.hatena.ne.jp/propella/20030805#p1 の続きhttp://www.2share.com/thinglab/ThingLab%20-%20Chapter%202.html を教科書に、 Second Example をみながら。 この ThingLab は壊れているらしく、テキストどおりに行きません。特に入力機能を直すには、…

ThingLab

参考: http://sumim.no-ip.com:8080/zakkan/39#0617 最初のデモ 第1ペインから第4ペインまで FixedBridge - Picture - move - Point 第5ペインのアンカーを動かすAlan Boning の論文を元にサンプルを作成ThingLab のテキストとして、元になった論文 The Prog…

マイクの高さと大きさをリアルタイム表示

buf count mic mic _ SoundInputStream new samplingRate: 22050; startRecording. (InfoStringMorph on: [count _ 0. [mic bufferCount > 2] whileTrue: [mic nextBufferOrNil]. mic bufferCount = 2 ifTrue: [ buf _ mic nextBufferOrNil , mic nextBuffer…

SqueakToys って。

良い所。 ビューワでの操作性。 スクリプトがみかけオブジェクトに従属している。ブラウザだと、クラスに対する操作なのでちょっと抽象的になってしまう。 スクリプトやオブジェクトの名前を簡単に変えられる。 エラー回復。 クラスを直接使わないので、ロー…

音について調べる

http://minnow.cc.gatech.edu/squeak/1952 あらゆる「音の鳴るもの」は AbstractSound のサブクラスになっている。AbstractSound には音量などの一般的な情報が入っている。 AbstractSound によって定義された音は、SoundPlayer によって出力される。SoundPl…

複雑な形のモルフにマウスイベントを反応させる方法。

普通に Morph を継承しただけのモルフでは、マウスイベントはモルフの周りの矩形全体に反応してしまう。複雑な形状や中抜きを持つモルフの場合、描画していない場所ではマウスイベントを無視したい。Morph>>containsPoint: aPoint を上書きして範囲外では fa…

レイアウトマネージャを利用したツリー表示

問題点: サブモルフのレイアウトが反映されない。 原因: 親モルフをレイアウトする前にサブモルフのサイズを確定する必要があるが、その際にサブモルフをレイアウトしておかなくてはならなかった。 解決: レイアウト時明示的にサブモルフの fullBounds を呼…