闇鍋プログラミング勉強会に参加

東京に引っ越してきて、今から数時間後には社会人というやつの仲間入りです。

せっかくの東京初週なので何か面白いものは無いかと思ってたら闇鍋プログラミング勉強会とかいうモノを見つけたので参加しました。
昼から雨だというので心配しながら八王子まで行きましたが、更に前日からの強い風で電車が止まったりで開始自体も遅れる事に(私は電車停止前に来たので大丈夫だったのですが)


発表で主に注目してたのは機械学習Dartなのですが、どの発表も内容濃くて終始楽しんでました。
最近CoffeeScriptを触ってるせいでどうしてもDartCoffeeScriptを比べてしまっていましたが、現状の実用的なJavaScript置き換えスクリプト言語としてはCoffeeScript、大規模な開発においてはDartなのかなという印象でした。静/動的型付の共存や、Isolateなど羨ましい部分が多々ある言語で、これからどうなっていくかが楽しみです。


触手被害者によって某A社ぴーFI社の魔の手(チラシやシール)が配られたり、
誰も発表者が居ないはずなのにD言語マスコットが2度も現れたり、
ネカマに存続の危機が訪れたり、
SQLでほむほむほむほむほむほむとしてたり、
ソースコードアセンブラがなければ機械語でプログラミングすればいいじゃないと言ってたり、
座席表にデカデカと焼肉が現れたり、闇鍋という名に相応しいカオスな勉強会でした。


主催者のid:krustfさんも9月ぐらいに次回を開催したいとおっしゃっていましたし、
またこういったごった煮な勉強会があれば色々学ぶ事ができるので、行きたいものですね。

FlexSDK4.5.1でFlashPlayer11の機能を使う

AS3でJSONを使いたい機会が出て、FlashPlayer11出たてで良い機会。ということでコンパイルしてみた。


まずは環境構築
AdobeFlexSDKサイトからFlexSDK4.5.1をダウンロードし、適当なディレクトリに解凍 & binにパス通し。自分はフリー版をダウンロード


先程解凍したFlexSDK4.5.1ディレクトリ下のframeworks/libs/playerに11.0という名前のディレクトリを作成、
続いてAdobeFlashPlayerダウンロードページからplayerglobal.swc FlashPlayer11版をダウンロードし、
そこにplayerglobal.swcという名前で保存(多分そのままだとplayerglobal11.0.swcとか別名付いてるので名前変更)

後はコンパイラmxmlcに -target-player=11.0 というオプションを付けて.asファイルをコンパイル
JSON.parse(str)が通った!!完!


...と思ったが、いざ実行するとReferenceErrorが出てパース出来ない。何故...?
調べてみると、どうやらSWFのバージョンも明記しないといけないらしい。
なのでコンパイラオプションに-swf-version=13も追加。後はFlashPlayer11さえ入れていればこれで動く(デバッガでもいいよ!)。

swfのバージョンまで必要とは思わなかったのでちょっと時間を食ってしまったが、これでFlashPlayer11への道が開けた。わーい

関西Kinect勉強会Vol.1に参加してきました

2週間前に。(様子 : http://togetter.com/li/192878)
素晴らしい更新速度

内容は導入的なものからFlashと連携してみたもの、
Android端末から制御してフラワーロックの様に音に合わせてLEDが光ったり、首を振ったりするもの、
更にKinect(というよりOpenNI)のビジネス展開や生活への活用など、普段の情報集めではなかなか見ることができない様々な活用方法を見ることが出来ました。


昨年発売後すぐにPCからのアクセスを試みられたり、注目度の高いKinectですが、ゲーム以外での活用は既に様々な場面でされています。

勉強会で案内された10/16に京都で行われる行われるdotFesにもいくつか展示があり、
昨日10/9まで行われていたEC2011でもKinectを使ったものが多数あったらしく、
現在神戸で開催されているアートイベント、神戸ビエンナーレでもKinectを4台も使用した床ホッケーゲームやアートがあります。

その他にKinectを活用したロボットがロボットコンテストで優勝などという話も見かけたり、私が確認していない所でも様々なイベントで活用されているものと思います。


ゲームデバイスが活用される例はPS3の計算機活用などがありますが、このようにゲーム以外に活用される姿は、ゲームにも、生活の中にも新たな可能性を感じさせるので注目していきたいところです。

clangビルドメモ

Macでのclangのビルドとclangでlibc++を使うためのメモ(ほぼ本家に書かれている事)

LLVMとclangのファイルをSubversionリポジトリからtrunk版をチェックアウト(clangはLLVMのtoolsディレクトリの中で)


svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang


buildディレクトリを作って(場所や名前は適当でいいし、作らなくてもいい)、configure。
configureのオプションとして--enable_optimizedを付けておく(付けないとデバッグ版でビルドされる。すごく遅い。)


cd ../../
mkdir build
cd build
../llvm/configure --enable_optimized


あとはmake


make -j4


libc++は同じくSubversionリポジトリから拾ってくる


svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx


Mac OS X 10.6の場合、LLVMのlibc++本家(http://libcxx.llvm.org/)に
OS X 10.6で必要なファイル(cxxabi.h, libc++abi.dylib)が置かれているので
それを拾ってきて適切なディレクトリにコピー


sudo cp cxxabi.h /usr/include
sudo cp libc++abi.dylib /usr/lib


libcxxのlibディレクトリに移動して、TRIPLEという環境変数を設定し、./builditを実行


cd libcxx/lib
export TRIPLE=-apple-
./buildit


生成されたlibc++.1.dylibに/usr/lib/からリンクを付ける。名前はlibc++.dylib


sudo ln -sf path/to/libcxx/lib/libc++.1.dylib libc++.1.dylib
sudo ln -sf libc++.1.dylib libc++.dylib


同じくlibcxxのincludeにも/usr/includeからリンクを付ける。名前はv1


sudo ln -sf path/to/libcxx/include v1

あとはclang++のオプションにstdlib=libc++ -std=c++0xを付ければc++0xの機能が使える
OS X 10.6の場合は-U__STRICT_ANSI__を付けるといいと書いている
本家に書いてることそのままなので他のツール等の生成は試していない。libc++についてもLLVMビルドと同時に作成が可能かもしれない

関西ゲームプログラミング勉強会 & Boost.勉強会 #5に参加してきました。

5/7に行われた関西ゲームプログラミング勉強会と、
5/14に行われたBoost.勉強会#5に参加してきました。
こういう勉強会自体が初参加だったのでちょっと緊張したりしてましたが大変楽しめました。

関西ゲームプログラミング勉強会はONE-UP株式会社様が主催して、ゲーム会社からこうしてゲーム開発の情報が提供されるという事自体が珍しく、またオンラインゲーム会社ということもあって、ゲーム会社らしくない開発スタイルなんかが聞けてためになる内容でした。

一般の発表者様方の発表も、VC6が、「仮想コンパイラ(VirtualCompiler)6」の略である!という衝撃の事実を知ったり、ライフゲームを計算機にするとかなんとかいう内容なライトニングトークだった気がしたけどホントにライトニング過ぎた物、大学院生の発表とは思えないほど分かりやすいシェーディングやBulletのお話等々、充実の内容でした。


恐怖の軍団として知られるC++erが、関数都市名古屋を崩落させようとして開催されたBoost"."勉強会。その目論見通り関数型言語のお話は少ししか見えませんでしたが、Boost自体も影を潜めていたような...
C++erの面子は濃く、女装やネコミミ、しまぱんは当たり前、一たびCとC++が似たような物なんて言おうものなら背中から刺されるなど、大変危険地帯でした。よく行ったな自分と褒めてやりたい。

個人的には自分の作ってる3Dプログラミング用ライブラリがuBLASを参考にしてるので線形代数(再)入門を注目してましたが、Lock-Freeの発表聞いてLock-Free女子力が上がったり、C++0x総復習が日本語でのいい具合なC++0xまとめだったり、OpenCVでOpenNI対応してることを知ったり、Spiritは変態性を知ったりして充実した勉強会でした。懇親会に参加できなかったのは残念。


勉強会に参加して思ったのが、発表の仕方や人との交流で学べる部分が多く、高校生が堂々と発表している様なんかを見て、自分ももっとやってく必要があるなと痛感したり、経験値上昇率がハンパないという事が分かったという事ですね。今後も機会があれば参加するべきだと心に刻み込みました。あとブログはもっと早く書くべきだとも

Scala & D言語勉強開始

最近はやらなきゃいけないことが多いのに他のことに手を出すことが多いですね。

ということでScalaD言語の勉強を始めました。
Scalaはパターンマッチが強力過ぎで、D言語C++の面倒くさいところが楽になる印象。
D言語C++との差異で色々混乱してます状態(ref constで右辺値取れないとか

新しい言語は楽で、強力な機能がたくさん詰まってて楽しいなぁ