seeyourself5secsbefore

せっかくの祝日。そういや結局PS3Eye買ったけどたいしたことしてないなぁと思って、リハビリAS書き。コンセプトだけ思いついて、どうにも料理し切れなかったのでそのままwonderflにポストしました。

カメラで毎フレームBitmapData作って、配列につっこんでるだけです。ホイールで見るフレームを変えることができます。

なんかうまい応用ができればなー。

あと、しょーもないhackで、TextFieldを使ったページスクロール抑制をしてます。画面いっぱいにTextField作って、改行文字を大量に入れて、MOUSE_WHEELイベントが来るたびにTextFieldのscrollVを一定位置に設定してます。もしかしたら結構既知だったりするかもしれないですが……

北陸での勉強会とか

セキュリティ&プログラミングキャンプキャラバン金沢行ってきました。そこで「北陸の勉強会どうしましょうねー」って話の流れになったので、参考までに高専カンファレンスの例と、自分なりの考えを。

ノウハウをためて生かす

高専カンファレンスも昨年の第1回から回を重ねて今回で4回目。ノウハウについてもWikiにだいぶ蓄積されてきました。

@igaiga555さんを中心に、過去のカンファレンスを開催したスタッフが情報をまとめています。大変お世話になっています。

第4回の福井ではこのノウハウをベースにしつつも、割と好き勝手進めさせてもらっています。ノウハウはあくまでノウハウ。ルールでは無いですよ!ってところがポイントです。今回は初めて高専を会場として借りるので、ノウハウに無いこともいろいろあります。このあたりはおいおいまとめていこうかと。

個別のイベントについてノウハウを蓄積していくのはいいことですが、まだ蓄積がないコミュニティが勉強会を開く場合には、勉強会勉強会を頼りにしていくのがいいかと。

参考: 地方で勉強会をやることについて id:hyoshiok

参加者を集める

おそらくもっとも切実で、もっとも議題になっていたと思われる、人の集め方。高専カンファレンスについては、ついったったーを中心に集まっている感じです。かといって、みんながみんなふぉろわーというわけでもないですし、スタッフの中に非ついったったーもいます。福井では高専のほうにも声をかけて、参加者を募っているところです。

地方でどう参加者を集めていくか、といったテーマについては、相互告知がひとつの答えかなと思ってます。例えば今回は@coelacanthさんが「Flex勉強会よろしく!」と言ったことで、おそらく会場の半分以上の人はFlex勉強会の存在を初めて知ったんじゃないでしょうか。同じことを、他のイベントでも「スーパー告知ターイム!」ということで各イベントで行っていけば、十分人は来るんじゃないかと思います。

というわけで、最後になりましたが、「高専カンファレンス in 福井」、参加者募集中です!><!><!><

ライブラリ浦島太郎

最新のSTLport(5.2.1)を拾ってきたらINSTALLの先頭にこんな記述が。

Starting with 5.0 the 'wrapper' mode is not supported anymore. You cannot use native
compiler iostreams implementation with STLport STL (see doc/FAQ for explanations).
Now you have to choose between STLport iostreams or no iostreams.

これってiostream使うなら絶対にSTLportをビルドしなさいよねってことですね。iostream使わないってわけには行かないので、渋々ビルド。今までビルドせずにコンテナとかだけ使ってたので、一手間増えました。ほんの一手間ですけど。

cd C:\lib\STLport-5.2.1
configure msvc8 -x
cd build\lib
nmake clean install

だけですね。iostream必須になったのは5.0以降ってなってますが、その前のリリースがいつだったかというと、2004年のことなんですね。古すぎる。

【格安】VAIO type P ケース【入手容易】

部屋を掃除してたら、ダイソーのクッション付き封筒引用元)があったんですよ。もうそこからは、勢いですよ。

お、ぴったり!

やさしく入れます。

入りきった!

ちゃんと閉じます。どうみても郵便物です。本当にありがとうございました。

PLAYSTATION EyeをXPにつないだ

新 masafumi's Diary: すげぇぞPlayStation Eyeで、結構スペックがいいという話は聞いていたんですが、先日実物を見て、たしかにこりゃすごいなと思ったので、PS3持ってないのに買ってしまいました。同梱ソフトいらないわー。

この動画からリンクされているドライバ(バージョンは1.0)を落として、インストールしました。そして付属のテスト用ユーティリティを起動。

確かにこれは速い。遅延がほとんどないですね。ぬるぬる動くという言葉がぴったり合う感じ。遅延もブレもほとんどないので、30FPSでも十分リアルタイム感がありました。もちろん実際に動画処理する時には不十分だとは思いますけど。60FPSにするとユーティリティの挙動が微妙になってしまったんですが、ここはプログラムの組み方しだいかなと思います。解像度落としてもいいし。

Flashからはどうかなーと思ってまずは肌色検出で試してみたんですが、カメラからPS Eye選択したらなぜかうまくいきませんでした。ManyCamかませる形でやれば成功するんですが、なんなんでしょうね。

というわけで、久しぶりにまともなカメラが手に入ったので、何かできたら面白いかなぁと思ってる次第です。

VMについてのyak shaving

分からない単語を知ったかぶりして読んでると大変なことになるのは確定的に明らか。ということで、最近読んだ VM の本 - steps to phantasienを読んでてbasic blockという単語が分からなかったので調べてみることに。

まずはWikipedia。文章がほとんどオーガナイズされてないので分かりにくいですが、分岐などが無い、ストレートなコードのブロックのことだそうです。具体的には下記みたいな。

a = 4;
b = 10;
c = a * b;

どちらかというと、高級言語よりもアセンブラなどの低級言語のほうがブロックを理解するには簡単かもしれません。ジャンプ系とか入ってくればそれで終わるので。下のほうにある外部リンクからGCCのページを見ると具体的な話が出てきます。

なるほど、basic_blockが双方向リンクリストでずらずらとつながるのか。で、これを使って何を表現するのかというと、treeかRTLを表すのに使うそうです……って、また知らない単語が。RTLとかアラビア文字(BIDI的な意味で)ですか?ってぐらい無知です。

同じくGCCのドキュメントを参照したところ、10 RTL Representationという項目がありました。概要を読んだだけだと「命令の動作を代数的な形で表したもの……」って、よく分かりません。Lispにインスパイアされたとかなんとか。確かにRegs and MemoryとかArithmetricとかを見てるとそんな感じはしますね。

全部読んでると大変そうなので、とりあえずはGCCが使うコード内部表現ということで簡単に理解しておくことにしました。最初に知ったかぶりはイカンと言ったわりに適当です。もう片方のtreeについても9 Trees: The intermediate representation used by the C and C++ front endsという形で書かれているようです。こっちは割と直感的に想像できる、ソースコードのツリー構造ということでいいみたいです。

treeはcoretypes.hでtree_node*のtypedefとして定義されていて、tree_nodeはtree.hで定義されています。定義といっても激しいunionなんですが。

なんだか終わりが見えなくなってきたのでこれぐらいで止めておきますが、結論としてある程度レベルの高い記事を読むためには前提知識を詰め込むだけで大変だということですね。ま、こうやってコード追っかけるのもなかなか楽しかったです。

Processing 1.0

何かの間違いじゃないかと思ったんですが、Revision 0162にしてProcessingサイトの左上に燦々と輝いていたBetaの文字がついに外れました。ここまで長かった!別に何かしたわけじゃないけど!