Squeak4.2でのkeyDown:

Squeakが4.2になって、All-in-Oneパッケージが公開された。

早速使ってみようと遊んでいたところどうもおかしな挙動がある。

具体的にはkeyDown:メッセージで、引数イベントのkeyValueが0になるというもの。(MacOSX 10.6.6上で発生)

BorderedMorph subclass: #TestKey
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Test-Key'!
!TestKey methodsFor: 'event handling' stamp: 'e-itoh 2/18/2011 13:00'!
handlesKeyboard: anEvent
^ true! !
!TestKey methodsFor: 'event handling' stamp: 'e-itoh 2/18/2011 13:04'!
keyDown: anEvent
Transcript show: anEvent keyValue asString , ','! !

上記のようなTestKeyクラスを作ってTestKey new openInWorldをやると、Squeak 4.1までであればTrascript上にkeyValueの値が表示される。

同じクラスをSqueak4.2で動かすと0しか表示されない。VMをSqueak4.1で使っているSqueak 4.2.4beta1Uに変えても変化がないのでイメージの問題のようだ。

これが動かないとゲームが作れないぞ。困った。

OpenALのインストール(Windows)

主に以下のサイトを参考にした。

http://ameblo.jp/yoshi-no-blog/entry-10038122952.html

一部異なる部分について述べる。

(使用したVC++は、Visual C++ 2010 Express)

まず、インストール先をデフォルトのC:\Program FilesからC:\OpenALに変更した。(後で削除を楽にするため)

ダウンロードしたファイルは、

OpenAL11CoreSDK.zip

および

freealut-1.1.0-bin.zip

前者はzipを解凍するとインストーラプログラムが現れるので、こちらを起動してインストールすると、OpenAL 1.1 SDKフォルダに展開される。後者はそのままc:\OpenALに展開。

alut.dllはC:\Windows\System32フォルダにコピーし、alut.libはOpenAL 1.1 SDK\libs\Win32にコピーする。

なお、alut.hはincludeフォルダ内のALフォルダにあるので、ALフォルダごと、OpenAL 1.1 SDK\includeフォルダにコピーする。

VC++でリンカオプションにopenal32.libとalut.libを追加ライブラリとして設定するのだが、

#pragma comment(lib, "OpenAL32.lib")
#pragma comment(lib, "alut.lib")

と直接ソースに書いた方がてっとり早いのでそうした。

その他、ライブラリパスを設定するため、プロジェクトのプロパティのリンカーで、追加のライブラリディレクトリに「C:\OpenAL\OpenAL 1.1 SDK\lib\Win32」を設定した。

以上の設定でOpenAL関係のサンプルプログラムが動くようになった。

KinectをWindowsXPマシンに接続する。

主に以下のサイトを参考にした。

http://www.cyber.t.u-tokyo.ac.jp/~take/kinect/openni-windows-kinect.html

一部異なる部分について述べる。

まず、インストール先をデフォルトのC:\Program FilesからC:\Kinectに変更した。(後で削除を楽にするため)

また、Visual Studioは2005しか入っていなかったため、Visual C++ 2010 Expressをインストールした。ついでに、Microsoft Platform SDK(Windows® Server 2003 SP1 Platform SDKというやつ)をインストールした。

後は、先ほどのサイトの

1. OpenNIをインストール

2. Kinectのドライバをインストール

3. NITEをインストール

までは同じ作業を行った。

4. 設定ファイルの書き変え

については、なぜかlicenses.xmlの中身が既に修正後の内容になっていた(ので変更していない)。

5. サンプルの実行

については、あらかじめOpenNI/Samplesの内容をバックアップしておいてから、VC++ 2010 Expressで開いてみた。

2010のプロジェクトファイルを開いても、プロジェクトファイルの変換が必要といわれ、いくつかの警告が示された。

この警告は出力ディレクトリとリンカの出力ファイルの内容が異なるというもので、具体的には、出力ディレクトリが$(Configuration)を指し、リンカの方が../Bin/$(Configuration)/$(ProjectName).exeを生成するようになっている。

このままでは.exeをビルドしてくれないので設定変更する必要がある。

また、mfcのヘッダーファイルが見つからないというエラーでリソースのコンパイルにも失敗するので、これも設定変更する。

変更方法としては、ソリューションエクスプローラーでプロジェクトのプロパティを開き、構成プロパティのリンカーの出力ファイルを「$(Configuration)/$(ProjectName).exe」に変更する。

同様にリソースの追加のインクルードディレクトリの最後に、「;C:\Program Files\Microsoft Platform SDK\Include\mfc」を追加する。

以上でビルドは成功しコマンドがDebugフォルダに生成されるが、デバッグ実行しようとするとglut32.dllが見つからないというエラーが出るので、OpenNI/samples/binの中のglut32.dllをDebugフォルダにコピーする。

とりあえず以上の方法でNIViewerやNIUserTrackerをビルド&実行することができた。

冬休みの宿題

この冬休みにやりたいことを書く。時間的に難しいから、きっと最後の方で慌てるんだろうけど。

1.KinectとPCをつなぐ。

2.できれば1.をSqueakで扱えるようにする。

3.MicroSqueakで遊ぶ。

4.Defart5をAIBOに対応させる。

MicroSqueak 0.2

MicroSqueakのドキュメントを勝手に訳してみたり。

MicroSqueakとは?

MicroSqueakは、少なめのCPUパワーと100~200キロバイトのRAMを持つような組み込み用プロセッサ向けに設計されたSqueakです。

このようなCPUの例としてAtmel AT91R40008がありますが、これは66 MHzのARMプロセッサで、チップ上に256キロバイトのRAMを搭載しています。MicroSqueakのmicroは、マイクロプロセッサ上で動作するよう設計されたことに由来しています。(実際のところ、通常のSqueakに対して1桁小さいだけですが、”DeciSqueak”というのは”MicroSqueak”ほどかっこ良く聞こえません。)

(続く)

ツイッター

twitterを始める前までは「つぶやき」って軽いものだと思っていたけど、140字にまとめなきゃなんないし、すぐに伝播してしまうから、書く前によく考えるようになった。逆にブログは後から修正できるから、結構いい加減な内容を突発的に書いてしまうことが多い。

タイトル変更

最近、ここを利用していないのですが、 https://sumim.hatenablog.com/ さんのブログ名をもじってつけ直してみました。

(いままで、ずっとDynabookと思い込んでいました)

DynaBookといっても東芝のノートPCのブランド名ではなく、アランケイ達の構想したパーソナルコンピューターのことです。

まあ、初期の東芝のダイナブックもDとBが大文字ですが。

DynaBookのBが大文字だから、Smalltalkのtを大文字で書いてしまう人が多いのかなと思ってみたり。でも、たいていはDynaBookとSmalltalkの関連性を考えることもなく、書籍とか雑誌とかwebの記述を見て、それとなく知ったつもりになっているんじゃないかな。

Mozartシステム備忘録

Mozartをインストールしようと、http://www.mozart-oz.orgからMac用のバイナリをダウンロードしたのだが、展開して実行するとAquamacs not foundのエラーダイアログが出て起動しない。

ずっとあきらめていたのだが、ふとMozart.app内のContents/Resources/bin/ozを直接実行したら、普通にCarbonEmacsが起動して実行することができた。

{Browse 1 + 2}で、ちゃんとブラウザ画面も表示された。

SnowLeopardインストール備忘録

Twitterでhatenaダイアリーはご無沙汰。

以前のように備忘録だけ残すことにする。

新しく買ったMacBook Air(SnowLeopard)に関連してインストール関係の問題と対処を列挙。

iWork’08のPagesで文字が見えなくなる

→インストール後にアップデートすることで解決。

MacPortsで「can’t read “build.cmd”」というメッセージが出てインストールできない。

→SnowLeopard付属のXcodeで、Unix Dev Toolなるオプションをオンにしないといけないらしい。

Ĉu vi jam finis vian laboron?

「仕事は終わりましたか」

Ĉu — ~か?(可否を問う疑問文の文頭につける)

vi — あなた

jam — もう、もはや

finis — 終える(fini)の過去形

vian — 「あなた(vi)の(-a)」に、目的語を示す語尾(-n)を付けたもの。

laboron — 仕事(laboro)に、目的語を示す語尾(-n)を付けたもの。

「あなたの仕事」のように形容詞+名詞で目的語をなす場合、どちらの語に対しても語尾(-n)を付ける。

[出典]

http://twitter.com/NeDankinde_R

[参考]

エスペラント小辞典