contents
- 2006年5月27日(土) K*BUG 勉強会
- Squeakって?
- Squeakのライセンス
- Squeakと教育
- PDAで動く?
- Smalltalkって?
- FreeBSD portsに含まれるSmalltalk
- Squeakの仕組
- ファイル構成
- 仮想マシン(VM:VirtualMachine)
- イメージいろいろ
- デモ:3.7-5989-full/SqueakPlugin2005Jを中心に
- デモの内容
- もういちど、Squeakの仕組
- FreeBSDでSqueakを使う方法
- Linux版
- Linuxlatorで動かす
- Linux用SqueakLand版を試す
- というかFreeBSDでLinux rpmを使う;-)
- Windows版をWineで動かす
- Squeak事始め@FreeBSD
- Squeakの実行
- 武藤私家版ports
- Webブラウザプラグイン
- Croquet
- デモ:Croquet (on native FreeBSD)
- デモの内容
- 参考:Croquet Demoの地図
- Croquet Tips
- Croquet on Linuxlator
- Croquet on wine
- Croquet on native FreeBSD
- OpenALと戦うわたくし for Croquet
- OpenALと戦うわたくし for Croquet (cont'd)
- 私家版で確認している問題
- 今後の野望(for FreeBSD?)
- 今後の野望(その他)
- ちなみに、テストベッド;-)
- Squeakに関する最近(未来に向かって?)の話題
- 日本発/日本語化されたプロジェクト(新旧取り混ぜて)
- ネットの情報源
- ネットの情報源(日本の情報源)
- 書籍(写真)
- 書籍情報
- おまけ: i810系でDRIが効かないとおなげきのあなたに
- DRIが…
- まとめ
- 御静聴ありがとうございました
- 当日持っていったもの一覧
- 加筆履歴
FreeBSDでSqueak/Croquet
Squeakって?
- (ネズミなどの)チュウチュウ鳴く声 (Progressive英和中辞典第2版)
- Smalltalk + 楽しいことたくさん;-)
- 過去から来た未来のプログラミング環境@「Squeak入門」
- Mac用Smalltalk-80を掘り起こして作成
- 教育への利用を考慮
- 「パワフルに考える」≠コンピュータを使うための教育
- 豊富なマルチメディアライブラリ:デモを見るだけでも楽しい!
- PDAでも動作可能なコンパクトさ
Squeakのライセンス
- Squeak License(日本語訳)
- オープンソース的には問題がありそうなライセンス
- Squeak 1.1 ASPL2とのデュアルライセンス化(2006-05-24発表)
- http://squeakland.org/installers/Squeak1.1-APSL.zip
- ASPL2
- それ以降のコードのライセンス調整などが大変そう…
Squeakと教育
- SqueakToys:タイルスクリプティングプログラミング環境
- Etoysと言う場合も(商標の問題がある?)
- 実際に小中学校などで利用されている(ワークショップ)
- HPスーパーサイエンスキッズ
- ALAN-Kプロジェクト(京都)
- CAMP(けいはんな)
- キッズプラザ大阪
- 神戸大学発達科学部
- 関西大学
PDAで動く?
Squeak3.6(full)@FreeBSD5.2.1R/i386,Squeak3.0@NetBSD1.5.1/hpcmips Squeak3.0@WindowsCE(SigmarionI),Squeak@WindowsCE(PocketPostPet)
Smalltalkって?
- Xerox PARCでの成果
- AltoのOSのひとつ:暫定版ダイナブック
- 筋金入りのオブジェクト指向言語
- 全てはオブジェクト: 基本型などは一切無し!
- シンプルな言語仕様
- メッセージ送信のみ
- 制御構造すら言語仕様には存在しない
- IDEとともに提供されることが多い
- 強力なデバッグ環境もあり
FreeBSD portsに含まれるSmalltalk
- Squeak(lang/squeak)
- VisualWorks(lang/visualworks)
- 本格的な開発に耐えられるように順当に進化したSmalltalk
- Linux版がFreeBSDで動作
- 実行時にはヒープサイズを増やすために、-h 10mのオプションが必要かも
- GNU Smalltalk(lang/smalltalk)
Squeakの仕組
ファイル構成
- 仮想マシン(VM:Virtual Machine)
- 本体'${PREFIX}/bin/squeak
- プラグイン:機能拡張(X11,XIM対応など)'${PREFIX}/share/squeak/3.7-7/
- ユーザ環境
- prefixが同じペアで利用するもの
- イメージファイル'squeak.image
- チェンジファイル'squeak.changes
- ソースファイル'SqueakV3.sources': Read onlyで十分
- '${PREFIX}/share/squeak/SqueakV3.sources'へのシンボリックリンク
仮想マシン(VM:VirtualMachine)
- OSの違いを吸収して、共通のイメージが動作する土台を作る
- 単なる言語というよりもOSと考えた方が良い
- プラグインで機能拡張が可能
- 直接ライブラリを叩けるFFIプラグインなども
- SqueakのVMはSqueak(Slang)で記述
- C言語へ変換してコンパイル
イメージいろいろ
- 本家版
- 完全(Full)版: 全部入り / 基本(Basic)版: スリム版
- SqueakLand版
- 教育利用向け / Webブラウザプラグインとして動作
- 日本語版
- SqueakPlugin2005J: SqueakLand版でデフォルトが日本語
- SqueakNihongo6.1Hiragana:ひらがな版
- 他にもPDA版なども
デモ:3.7-5989-full/SqueakPlugin2005Jを中心に
デモの内容
- 3.7-5989-fullでのデモ
- デモを一通り説明する
- SqueakPlugin2005Jでのデモ
- Drive a Carをハンドルでの操作まで実際にやってみる
- 日本語の入力デモを忘れた…
もういちど、Squeakの仕組
FreeBSDでSqueakを使う方法
- FreeBSD本家ports(2006-05-20現在)
- VMバージョン:3.6-3 / イメージバージョン:3.6-5429
- squeak.org, squeakvm.org, squeakland.org版
- 何故かFreeBSD 4.10R対応…/5.xRや6.xRで動かない
- LinuxlatorでLinux用VMを使う
- WineでWindows用VMを使う
- 2006-05-21T01:09に何気に試して驚いた(!-!)
- 武藤私家版ports
- 鋭意作成/公開中
Linux版
- 3大プラットフォームとして考えられている?
- Mac OS, Windows, Linux
- XIM対応コードが入っているバイナリもあり
- bootableなLinux CD-ROM環境がある
- 教育用: Squeakware-edu
- Knoppix Squeak版計画も
Linuxlatorで動かす
- 必要ports
アプリケーション名 | 用途 | ports | テストバージョン | 備考 |
linux_base | Linuxエミュレーション | emulators/linux_base-8 | 8.0_14 | 他のemulators/linux_base-*でも動作するかも |
linux-XFree86-libs | Xライブラリ | x11/linux-XFree86-libs | 4.3.99.902_7 | FreeBSD側のXも必要 |
linux_dri | OpenGLライブラリ | graphics/linux_dri | 4.4.0 | |
linux-openal | OpenALサウンドライブラリ | audio/linux-openal | 0.0.9.0.3.20060226.c.f3 | Croquetで必要 |
Linux用SqueakLand版を試す
というかFreeBSDでLinux rpmを使う;-)
- インストール
> sudo rpm --ignoreos --root=/compat/linux -ivh squeakland-3.8-1.noarch.rpm squeak-vm-3.7i7sl-4.i386.rpm
- 実行
- 適当なイメージを指定して実行
> /compat/linux/usr/bin/squeak squeak.image
Windows版をWineで動かす
- 必要ports
アプリケーション名 | 用途 | ports | テストバージョン | 備考 |
wine | Windowsエミュレーション | emulators/wine | 0.9.12,1 |
% wine /ntfs/Program\ Files/squeak/Plugin/Squeak.exe Squeak3.7-5989-basic.image
- 動いてなさそうなもの
- XIM
- http://taka.no32.tk/diary/20060518.html#p01 を参考にしたけどダメだった
Squeak事始め@FreeBSD
- インストール
> cd /usr/ports/lang/squeak/ > make install
- 以下のtunableがある
- WITH_MPG_MMX(使わない):MMXを使うか?
- WITH_NPSQUEAK(使う): Webブラウザプラグインを使うか?
- 現状のportsではyesでも動かない
- WITH_RFB(使う): Remote Frame Bufferを使うか?
- WITH_X(使う): X11を使うか?
Squeakの実行
- 初めての場合(inisqueakの利用)
> mkdir squeak_dir > cd squeak_dir > inisqueak No default image, looking for alternatives... I found the following images: 1 Squeak3.9b-7032 2 SqueakNihongo6.1Hiragana 3 SqueakPlugin Which one should I install [1-3]?
- 二回目以降
> cd squeak_dir > squeak イメージ名 # inisqueakを使っていればsqueak.imageという名前でコピーされている
武藤私家版ports
- http://qml.610t.org/squeak/VM.htmlからたどれます
- 本家との違い
- Webブラウザプラグインが動作(send-pr:92757)
- FFIプラグインが動作(send-pr:94058)
- 日本語使いに優しい(?)
- XIMパッチ対応(=日本語入力可能)
- 日本語関連イメージもインストール
- OPTIONの選択がdialogで可能
- 3.6-3 VM, 3.7-7 VM, 3.9b-7 VMベースの3種類あり
Webブラウザプラグイン
- WebブラウザでSqueakが動く!!
- 準備: とりあえず武藤私家版を使ってください
> /usr/local/share/squeak/npsqueakregister # -uで登録抹消
Croquet
- http://www.opencroquet.org/
- 現在公開されているものはCroquet SDK 1.0 beta (Hedgehog:はりねずみ)
- 3Dコラボレーション環境
- P2Pによる通信でワールドを共有
- 3つのプラットフォームで提供
- Windows, Mac OS X, Linux
- Linux版はFreeBSD+Linuxlatorで動作
- Squeak 3.9b-7 VMを使えばFreeBSDでも動作する!!!
デモ:Croquet (on native FreeBSD)
デモの内容
- Demo(Master)でのデモ
- 実際に操作をしてみる
参考:Croquet Demoの地図
Croquet Tips
- マウス操作
- センターボタンで移動
- 左ボタンで選択
- 右ボタンはCroquetウインドウのハロを出す
- キー操作
- Ctrl-A:アバターの視点が変更可能
- Ctrl-H:ホームポジションへ
- カーソルキー上下/マウスホイール:上下に移動
- 下隅でいろいろな機能が出現:Mac OSみたい…
- フルスクリーンで操作を止めたくなったら、Alt+ドラッグで画面を動かす
Croquet on Linuxlator
- Croquet->downloadからuniversal.zipを入手/展開する
- 追加で必要なe2fsprogs-1.27-9.i386.rpmをインストールする(詳細)
surudoi [ tmp/squeak/linux-rpm ] % fetch http://download.fedoralegacy.org/redhat/8.0/os/i386/e2fsprogs-1.27-9.i386.rpm e2fsprogs-1.27-9.i386.rpm 100% of 740 kB 72 kBps 00m00s surudoi [ tmp/squeak/linux-rpm ] % sudo rpm --nodeps --ignoreos --root=/compat/linux -ivh e2fsprogs-1.27-9.i386.rpm e2fsprogs ##################################################
- Linux用のライブラリへシンボリックリンク作成
> cd Croquet_SDK_1.0_beta/bin/i686-pc-linux-gnu/ > ln -s /compat/linux/usr/X11R6/lib/libGL.so.1 libGL.so > ln -s /compat/linux/usr/X11R6/lib/libX11.so.6 libX11.so > ln -s /compat/linux/usr/lib/libopenal.so.1 libopenal.so
- 実行する
> Croquet.sh
- OpenAL周りはダメみたい
- DRIの効果は(テスト環境では)ありません
- nVidiaや3dfxなら効くのかも
Croquet on wine
- 遅いけど動きます(!-!)
% wine bin/Croquet.exe Croquet1.0.10.image
- オーバヘッドが大きいので遅いです
- DRIの効果はありません
- 流石にOpenALはダメみたい
- でも設定をいじるとなんとかなっちゃうかも
Croquet on native FreeBSD
- DRIが有効だと(linuxlatorを経由するよりも)速い
- 武藤私家版VMの3.9b-7を取得してインストール
- universal.zipの取得や展開は同じ
> squeak Croquet1.0.10.image
OpenALと戦うわたくし for Croquet
- CroquetではOpenALを利用した3Dサウンドが実現されている
- OpenAL portsはなんか変
- -lpthreadはいらんのか?/他のバックエンドライブラリは?
% ldd /usr/ports/audio/openal/work/openal-0.0.8/src/.libs/libopenal.so.0 /usr/ports/audio/openal/work/openal-0.0.8/src/.libs/libopenal.so.0: libm.so.4 => /lib/libm.so.4 (0x28195000)
- ESDを使うとなんとか音が出る
- でも切れ切れ(;-;)
- ~/.openalrc
(define devices '(esd))
- esdの実行を忘れずに
OpenALと戦うわたくし for Croquet (cont'd)
- OpenALのいい加減パッチ(make configureしてから当ててください)
--- src/Makefile.org Sat May 20 23:36:32 2006 +++ src/Makefile Sat May 20 23:37:18 2006 @@ -294,7 +294,12 @@ LDFLAGS = -L/usr/local/lib LIBM = -lm LIBOBJS = -LIBS = +LIBS = -lpthread \ + `${ESD_CONFIG} --libs` \ + `${SDL_CONFIG} --libs` \ + `${ARTSC_CONFIG} --libs` \ + `${SMPEG_CONFIG} --libs` \ + LIBTOOL = $(SHELL) $(top_builddir)/libtool LIBTOOL_DEPS = admin/autotools/ltmain.sh LN_S = ln -s
私家版で確認している問題
- XIMの問題
- Full screenにすると入力できなかったり
- XIM FrontendとWindow Managerの相性もあるかも
- make installの問題
- install時にイメージのzipを毎回展開しているので遅い…
- Webブラウザプラグインの問題
- 初回やアップデート後はうまく起動しない場合がある/もう一度読み込めば大丈夫
- Croquet関係
- OpenAL(audio/openal)がうまく動かない
今後の野望(for FreeBSD?)
- FreeBSDをUNIXでSqueakを動かすときの最強環境に!!
commitしてください(;-;)2006/05/22に動きはじめた- まずはportsをまともに!!
- configureに詳しい人求む!!: 現在はかなりadhocな対応
- XIMパッチ回りはどうしましょ? japanese/squeak作る?
- Croquetもportsにしたいね
- OpenALをまともにする必要あり
- lang/squeak-dev作る?
- FreeSBIEでbootableな1CD環境を作る
今後の野望(その他)
- ワークショップをやってみたい
- テストベッド;-p 長女(7歳),次女(3歳)
- 単なるお絵書きツールと思っている? (今はTuxPaintへ(;-;))
- とりあえずSqueak生活用イメージを作りたい
- 動かない/アプリが無いものはRFB(=VNC)で外に;-)
- どこまで生きれるでしょうか?
- もっとSqueak/Croquetを探求したい
- 下回りはそろそろ卒業したいです(;-;)
- Blender(graphics/blender-devel)を使ってアバターを作る
ちなみに、テストベッド;-)
Squeakに関する最近(未来に向かって?)の話題
- Tweak
- Morphの置き換えらしい
- MIT Media Lab 100$ Laptop
- SDK & シミュレータ
- ダイナブック(?)
- Squeakチームも関係しているようです
- Cロボ販売
- Squeak on Java VM: Squeak-2.2 miniが動作
日本発/日本語化されたプロジェクト(新旧取り混ぜて)
- Techo + Scamper : ノート+式の評価できるWebブラウザ
- WikiPhone : Wikiみたいな電話
- NetMorph : 共有環境
- 世界聴診器 : 音を入出力に利用
- Squeakware-edu : bootable CD-ROM (教育用)
- SuperSwiki2 : Wikiクローン+α
- AniAniWebJ : CMS
- SqueakSourceJ : 履歴管理システム
- SeaSideJ : Webフレームワーク
ネットの情報源
- Web
- 本家 ニ http://www.squeak.org/
- 教育向けコンテンツ ンテンツ 塔c http://www.squeakland.org/
- VM関係 W http://www.squeakvm.org/
- Squeak Swiki
- メーリングリスト
ネットの情報源(日本の情報源)
書籍(写真)
- 以下の理由で削除しました
- 写真をとった時期が古く、全部の書籍が入っているわけでは無い
- 権利者に許諾を取っていない
書籍情報
- SqueakToys関連
- スクイークであそぼう amazon 紀伊國屋 旭屋 楽天 世田谷区 i .
- 実践スクイーク教室 amazon 紀伊國屋 旭屋 楽天 世田谷区 i .
- 子どもの思考力を高める「スクイーク」 amazon 紀伊國屋 旭屋 楽天 世田谷区 i .
- SmalltalkとしてのSqueak寄り
- 自由自在Squeakプログラミング amazon 紀伊國屋 旭屋 楽天 世田谷区 i .
- Squeakプログラミング入門-オブジェクトランドへの招待 amazon 紀伊國屋 旭屋 楽天 世田谷区 i .
- Squeak入門-過去から来た未来のプログラミング環境 amazon 紀伊國屋 旭屋 楽天 世田谷区 i .
- ケントベックのSmalltalkベストプラクティスパターン amazon 紀伊國屋 旭屋 楽天 世田谷区 i .
- その他
おまけ: i810系でDRIが効かないとおなげきのあなたに
- 6.1Rぐらいだと以下のパッチを試すと動くかもしれません
- ftp://213.85.11.250/pub/drm3.patch
- 少なくともこのコンピュータでは動きました;-)
- 6-stableには既に入っています(6.2Rからは大丈夫なはず)
- でも普通はcurrent?
- 性能の高いビデオカード選びに参考になる情報
- 参考 from FreeBSD Press 2003 No.18
- 玄人志向 GFX5200-A128C w/ nvidia 2053.04FPS
- 玄人志向 RD92-A128C(RADEON9200 128M) w/ radeon 129.324FPS
- Matrox G450 w/ mga 310.462FPS
DRIが…
- 無い時
448 frames in 5.1 seconds = 88.549 FPS 392 frames in 5.6 seconds = 70.088 FPS 448 frames in 5.9 seconds = 75.859 FPS 448 frames in 5.1 seconds = 87.573 FPS 448 frames in 5.2 seconds = 85.688 FPS
- ある時
1687 frames in 5.0 seconds = 337.232 FPS 1749 frames in 5.0 seconds = 349.725 FPS 1708 frames in 5.0 seconds = 341.446 FPS 1512 frames in 5.0 seconds = 302.341 FPS 1565 frames in 5.0 seconds = 312.553 FPS
相変わらず遅いな…
まとめ
御静聴ありがとうございました
- FreeBSDでSqueak/Croquetが動きます
- お好みでWindows VM, Linux VM, FreeBSD VMからお選びください
- portsですぐに導入できるべく作業中です
- まだ少し時間がかかりそうなので、必要なら私家版を使ってください
- できれば一緒に深みにはまりましょう;-)
当日持っていったもの一覧
- マニュアル
- Croquet Programming A Concise Guide Draft 0.14
- DVD
- Squeakers (Subtitled Versionと2枚)
- CD-ROM
- Squeakware-edu 0.2, 0.3
- Squeak CD-ROM 3.8
- 基板
- 世界聴診器未作成基板
- PDA
- DoCoMo PocketPostPet (正常に動作せず)
- NEC MobileGear II MC/R530 (これもまともに動かせず)
加筆履歴
- 2006/06/03
- 当日持っていったもの一覧を作成
- デモの内容を追記
- Croquet for Linuxでの動作に必要な作業を追記
- 2006/06/01
- DRIが6-stableに入ったのを記述。