オープンラボ備後でPlayframeworkのこと喋ってきた


去る5/27に、福山市のまなびの館ローズコムで開催されたオープンラボ備後で、Playframeworkについて発表してきました。
Playframeworkは、最近2.0がリリースされ、ほぼScalaフレームワークとなりました。残念ながら自分はScalaには疎いため、今回は1.2についての発表です。死霊資料はこちら。

Playframeworkですが、やっぱりまだまだ知名度が低い感じ。しかし従来のフレームワークとちがったLL的にサクサク作れる環境に、皆さん興味を持って頂けたのではないでしょうか?

それにしても会場になったローズコムですが、施設が綺麗でよかったですね。

しかもここ、会場使用料がバカ安い!!勉強会を主催する身としては、毎回運営費に頭を悩ませるわけですが、こんな素晴らしい施設があるなんて、さすが独立国家福山。悔しいッ!(ビクンビクン

ちなみにその時に初めて知ったのですが、福山はバラが有名だったんですねー
ローズコムの周辺にはバラがたくさん植えてあって、周囲にバラの香りを漂わせていてなんとも良い感じでした。バラの撮影に行くのもいいかもしれないですね。

今回の勉強会も例によって写真を幾つか撮りました。以下から、ご覧いただけます。
http://flic.kr/s/aHsjzDxBW7

勉強会のススメ

みなさん、勉強会参加してますか?

ここで言う勉強会とは主にIT系の勉強会を指すわけですが、ここ最近、全国では多くのIT系勉強会が開催されています。
オーケイ、勉強会の話ならウワサには聞いたことがある。興味もある。しかし、どう参加していったらいいのかわからない・・・
そんな意識高いエンジニアを目指すあなたに送る、勉強会のススメです。

勉強会の探し方


勉強会に参加すると決めたら、最初は勉強会探しです。

勉強会の開催予定は主にイベント告知サイトでおこなわれていることが多いので、これで探します。主なものとしては以下のサイトです。

またこういった告知サイトを縦断的に検索できるサービスなどもあります。

変わったところでは、スタンプラリー形式でIT系の勉強会に参加することで景品をもらえる、IT勉強会スタンプラリーというものもあります。

こういったところを参考に、最初は近場の勉強会をチョイスするのがいいでしょう。

このときに注意すべきポイントが2つあります。それは

  • 営利団体(企業含む)が主催の勉強会は避ける
  • 参加費が安いところを選ぶ

この2点です。
基本、企業等が行なっている勉強会(というよりセミナーに近い)だと、どうしても企業の製品の宣伝活動も含んでいるため、幅広い技術に触れるには不向きです。*1

また、勉強会は主に有志が集まって草の根的に運営している場合が多いので、場所も公営のもの*2を使用。参加費も、その会場利用料を参加者で割りカンする、といった具合です。ですので無料〜\1000程度の勉強会を選ぶのがよいでしょう。

幸いなこと(?)に、ほとんどの勉強会は日曜日ではなく、土曜日に集中します。というのも勉強会を行った後には、有志で懇親会をやることが通例だからです。土曜日であれば、翌日が休みの方も多いので、例え飲み過ぎたとしても安心です。週明けの仕事にも勉強会疲れを持ち込むこと無く、仕事に集中できるでしょう。*3

ちょっとだけ勉強会のお手伝いをしよう

さて、このようにして勉強会に参加していけば、あなたも立派な意識高い系エンジニアです。
5回程度でいいでしょう、勉強会に出て、主催者とかになんとなーく顔を覚えてもらったぐらいで十分です。

次のステップは勉強会でちょっとだけ役に立つ人になることです。

先程も述べたように、勉強会を主催するのは主に草の根のコミュニティです。そこにいる人達は別にコミュニティ活動だけに専念しているわけではないので、人手が足りないなんてことは、よくあります。
ですので、自分のできる範囲で十分です。ちょっとしたことを手伝ってあげると、みんなきっと喜んでくれます。

例えば、ちょっとだけ早めに会場に行って会場の設営を手伝ってみる。これも立派なコミュニティ活動です。
例えば、あなたがUstやニコ生が得意である場合、勉強会の模様をストリーミング配信するのもいいかもしれない。*4
例えば、デジカメで勉強会の模様を撮影して記録に残せるようにすることでもいいかもしれない。
どんなことでもいいでしょう。ちょっとしたことで、コミュニティでのあなたの存在感は増すはずです。

勉強会でスピーカーデビューしよう


さて、ここまでであなたもコニュニティではちょっと知られた顔になってきたかと思います。
次のステップはあなたが勉強会で話をする事です。

勉強会で話をする人は、実はそれほど多くありません。どのコミュニティも発表してくれるスピーカを常に探しています。地方ほど、その傾向は顕著です。

あなたが話ができそうなことなら、なんでもいいんです。勇気を持って、「こういう話でセッションがしたい」と主催者に相談してみましょう。きっと喜んで発表の場を設けてくれるはずです。また発表のやり方などについても、きっと相談にのってくれるはずです。
万一、無下に断られるようなら、そこは悪い勉強会です!もう行かなくてもいいでしょう。

そして何より、勉強会において話をするということは、自分にとっても非常に大きなメリットがあります。例えば以下のようなものです。

  • 発表する技術についての理解が深まる

人前で発表するのは、その技術に対して体系的な知識を要求します。
例え業務などで慣れ親しんだ技術であっても、いざ発表するとなると、どう発表しようか迷うものです。そのためにも知っていることでも、さらにその知識を深めるべく、勉強することができます。

また、初心者にはおすすめできませんが、敢えて自分がこれから知りたい技術に関して発表する予定を、勉強会に組み込んでしまうことも効果的です。なぜなら、発表しなければならない!と思ったら、無理にでも自分が勉強しないといけなくなりますから。*5

  • アウトプットするとインプットが増える。インプットは更なるアウトプットへ

これは自分の言葉ではなく、TDDの伝道師 id:t-wada 氏の言葉です。
発表することで、すくなくともなんらかの反響が必ずあります。
この部分が面白かった、ここがよく分からなかったなどの発表した技術に関する質問。その質問の答えがよく分からなければ、当然調べますよね?これが更なるインプット。自分の技術の向上になります。
また、発表の仕方そのものについての意見などもあるでしょう。あるいは、Twitterなどでその技術の第一人者からツッコミが入るかもしれない。*6
そのフィードバックが、そのまま自分の経験値になります。
だからこそ、多少の間違いや失敗はあってもいいんです。*7

  • 人前で話をする度胸が身につく

普通に社会で生活してると、なかなか大勢の人の前で話をする機会というのはありません。また、大勢の前で話をするということは、立派なスキルです。残念ながらこのスキルはいくら(本などで)学習しても身につくことはありません。自分で人前に立って実際に話をすることでしか経験値を積むことができないのです。
勉強会はその貴重なスキルを磨く場でもあります。

  • 社会的評価

つい最近では、こういった個人のコミュニティ活動を重視する会社もたくさん見受けられるようになりました。
会社としても同じ給料を払うなら、フツーのエンジニアより、勉強会等で発表をするような意識高いエンジニアが欲しいはずです。
また、こういった活動をしているということを会社にも積極的にアピールするのもいいでしょう。
もし全く評価されないという場合、そこは悪い会社です!今すぐ転職を考えたほうがよいでしょう。

  • 様々な人に会える

ひょっとしたら、これが一番重要なのかもしれません。
勉強会にはエンジニアも当然いますが、そうでない人もいます。プログラミングとは無縁な人であったり、あるいは学生であったりと色々です。こういった人たちと積極的にコミュニケーションをしましょう。
また、そういった人たちに名前を覚えてもらうためにも、個人名刺は有効です。会社の名刺より個人名刺がベターです。
これに自分の名前やTwitterのID、メールアドレスなどを入れておきましょう。そして、自分が話を聞いて面白い!とおもった人には、必ず名刺を渡すようにします。可能であれば、相手の名刺ももらいましょう。TwitterのIDが書いてあれば、即フォローです。
エンジニアである以上、技術は当然大事なのですが、それ以前に人との縁というのは凄く大事です。この縁を広げ、大事にすることで、よりエンジニアとして充実できるのではないでしょうか。

Conclusion


以上、自分がいままで勉強会に参加してきて得た経験などをベースに、いろいろ書いてみました。

最近自分は「実はエンジニアってプロスポーツ選手のような世界なのでは?」と思うことがあります。

極端なことを言えば、別に勉強会なんか参加しなくてもこの業界でそれなりにメシを喰っていくことはできます。*8
プロ野球で言えば、万年二軍みたいなもんです。二軍でもメシは(多分)食えます。でも万年二軍でいいんでしょうか?
更に上を目指すなら、当然練習が必要です。プロの選手はオフには自主トレしますし、シーズン中でも絶えず練習しているはずです。それも自主的に。これは他のジャンルのスポーツ選手などもそうではないかとおもいます。
IT業界で言えば、休みの日にわざわざ勉強会に参加することだったり、あるいは帰宅後に自分の興味がある技術について調べたりすることが、これに相当するのではないでしょうか。
でも、これを楽しいとおもえるか?そこまでして仕事(あるいはIT)に関わりたくないって人もいるかもしれない。おそらく今のIT業界で働く大多数の人はこういう思いかもしれません。
しかしこれは残念なことに思えます。なぜならホントはエンジニアの仕事って楽しいものです。この楽しみを知らないのはもったいない!と自分は思うのです。

でも、この楽しみを獲得するためには、学び続けていくしかありません。
プログラマが知るべき97のこと」のきのこ18「学び続ける姿勢」の最後に、こうあります。
「技術はすごい速さで進化していきます。学ばなければ、置いて行かれることは確実です。」
これは真実です。

ぜひ、勉強会に参加して、自分が知らなかった新しい技術に触れ、新しい仲間を探してみてください。
きっと充実したエンジニアライフが、そこにあるはずです。

*1:但し、中には企業主催でも素晴らしい勉強会もあります

*2:例えば市民センターとか図書館といった場所

*3:それでも疲れてたら、RedBullを飲めばいいよ!

*4:でも主催者さんの了解は必ず取ってね

*5:人はこれを勉強会駆動勉強という。でも初心者はマネすんなよ!w

*6:でも怖いものではなく、素晴らしいアドバイスであることが多いです

*7:嘘はだめだけど

*8:と言っても未来永劫ではなく、せいぜいあと10年ぐらいとか思ってますが

オープンセミナー岡山2012を開催してきた

去る5/12に岡山県立大学でオープンセミナー岡山2012が開催されました。

オープンセミナー岡山は年1回開催され、今年で5回目。
岡山のIT系勉強会で100人以上の参加者が集まるのは、この勉強会ぐらいじゃないかとおもってます。それぐらいのビッグイベント。
メイン講師に小飼弾氏と和田卓人氏が岡山に来て、その話が聞ける、しかも無料で!とあって県外からも多数のエンジニアにご参加いただきました。

自分は今回、岡山Javaユーザ会を運営していることもあって、オープンセミナーの実行委員として運営に関わらせていただきました。
自分の主な役回りとしては、メイン講師のお一人で、テスト駆動開発の第一人者「和田卓人氏(id:t-wada)」との調整役。度々、確認のメールを送ったにもかかわらず、素早いレスポンスをくださった和田さんに、改めて御礼申し上げます。

勉強会の内容についてですが、今回自分は記録係(?)ということで、ちょっと前に購入したNikon D5100で勉強会の様子をひたすらカメラに収めていました。ですので内容については、他の参加者のブログを参照してくださいw

ちなみに今回の勉強会が、D5100の初陣でした。
以前は友人に借りたRicoh CX4で撮影していたのですが、やっぱり一眼レフはちがう!
特に、勉強会だとプロジェクターの関係で照明を落としていることが多く、必然的に暗い場所での撮影となります。暗いと当然ISO感度を上げるなどして撮影しないといけないのですが、コンデジではあまりISO感度を上げることができないので、そのぶんシャッタスピードが遅くなり、動く被写体がブレブレになることもしばしば。
そんな状況でも、ほとんどAUTOで撮影していましたが、ブレることもそれほどなく、バンバン撮影できるのは撮ってて楽しかった。
また、撮った写真をブログ等でも使っていただいたり、Twitterのアイコンにしてもらったりとかで、嬉しい限りです。

という訳で、当日の写真はflickrにあげてますので、以下のリンクからどうぞ。
特に懇親会ではいいショットが撮れた気がします。みんなの楽しい雰囲気が少しでも伝わればいいなぁ・・・と。

オープンセミナー岡山2012

JavaOne Tokyo 2012 Day 2

JavaOne Tokyo二日目のレポート。

Technical Keynote

1日目のStrategy Keynoteと同じく、特に目新しい内容は無し。
ちょっと面白かった(?)のが、Sponser Keynoteに登場した富士通のセッション。
話のネタに初音ミクニコニコ動画を持ちだして、なんとか聴衆を惹きつけようと頑張ったしたみたいですが、やはり途中退出した人が多かったようです。あの手のセッションをするのはなかなか難しいものですね・・・

Java7 Invoke Dynamic

Java7で導入されたInvokeDynamicの話。InvokeDynamicはJVM動的言語をサポートする機能です。
このセッションに参加した目的は、自分が最近業務でずっとRubyを触っているせいもあって、InvokeDynamicでJRubyがどれほど早くなるのか?というのを知りたかったから。
結論からいうと、InvokeDynamicに対応したJRuby1.7とJava7をあわせることで、CRubyよりずっと早くなることが分かりました。JRuby1.7の正式リリース後は、JRubyに注目です。

Project Jigsaw:Putting it all Together

Javaの依存関連を解決するための仕組み。またはライブラリ管理。ただ自分はイマイチ頭に入ってこなくて難儀しました・・・
module-info.javaに関連するjarとかを記述することで、モジュールの管理を楽にする仕組みになってるようです。
しかし、これによってMavenとかを使わなくてもよくなるわけではなくて、モジュールをダウンロードする部分などはJigsawではカバーされないようです。

JSR353:Java API for JSON Processing


Twitterのイケメンエンジニアこと、山本裕介さんのセッション。立ち見が出るほどの盛況でした。
前半はJSRとJCPとはなんぞや?という基本的な話からスタート。
JCPとはJava Community ProcessJavaの仕様策定の標準化機関。
JSRとはJava Specification Requests。ここで提案された仕様が、他のJCPメンバの投票によって、本当に必要かどうかが判断され、必要であると判断されればJSRの番号が割り当てられる、という仕組み。
ここから、1.メンバの選定、任命 2.詳細な仕様の策定 3.仕様の投票 4.参照実装の作成 5.TCKの作成
と進み、Javaの標準APIになるわけです。

JSR-353で中心となるクラスはJsonObject*1。このクラスからメソッド呼び出しによって、JSONの値を読み書きします。まだまだドラフト段階なのでクラス名やメソッド名はいまいちでしたが、APIを通じてTwitterの機能を提供しているTwitter社にとっても、JSONに関連するJCPは大変重要であるとのことで、これから山本さんが仕様の策定をどのようにしていくのか楽しみです。*2

あわせてよみたい
Togetterまとめ:JSR 353 : Java API for JSON

Learn how the JVM is fundamental to our Architecture

TwitterのアーキテクトRob Benson氏のセッション。
前半は、東京入り初日にOpenHouseで聞いた話と被ってました。しかし後半はしっかりとTwitterアーキテクチャについて、話をしていました。
JVMの話とかはあまりなくて、純粋にTwitterの仕組みを、一部コードを交えながら紹介。出てくるコードもほとんどScala
後で聞いた話ですが、ほとんどTwitterの新入社員研修で話す内容らしいですw

番外編:JJUG Night Party

JavaOne終了後にJJUG主催で行われたパーティー。実に楽しかったです!
いままでTL上でしか面識のなかった方や、去年のサンフランシスコでのJavaOneでお会いした方々と再会したり。
途中にはビンゴゲームとかあったりしました。

これはビンゴでちょんまげヅラをゲットした関ジャバの谷本氏www
しかも、ろくろwww

そして最後の締めは、我らの王子こと、Oracleの寺田さん。
今のJava開発者がJavaを見捨てない理由のほとんどは、寺田さんがいるからだと思ってるのは、自分だけではないはず。それは寺田さんが、本当にJavaを愛し、Java開発者を愛し、日本全国を一人で駆けまわったからだとおもうんです。そしてその姿をみんなしっかりと見ていた。だからこそ、自分たちJava開発者もそれぞれのコミュニティを通じて、Javaに貢献していけるんだと思うのです。
最後には会場から大きな、よしおコールが!そして感極まって、涙ぐむ王子!

この後には寺田さんの労を労って、みんなで胴上げしましたww
とにかく寺田さん、本当にお疲れ様でした!!

#てらだよしおありがとう

Conclusion

さて、こうして2日間にわたって開催されたJavaOneは終了。7年ぶりの東京でのJavaOneということでしたが、多くの参加者が集まり、大成功といっていいのではないでしょうか。
ただ次回(来年)はあるのか?といったら、自分は難しいようにおもいました。もちろんOracle社のJavaに対するスタンスが変わるかもしれないですが、現状では大きな変化というのはなさそうですし。
しかし、自分たち開発者が所属しているコミュニティを通じてなど、様々な手段でその声を届けていけば、それはOracleでも無視できないような、大きな意味を持つようになります。絶えず、自分たちの想いを伝え続けることが大事なんじゃないか?と帰りの飛行機のなかでぼんやり考えました。

来年なのか、再来年なのか、それとも何年後かわかりませんが、また皆さんと逢える日まで。
See You Next JavaOne!

*1:これ名前イケてないよね?JSONObjectでしょ?

*2:きっといい感じにしてくれるはず!w

JavaOne Tokyo 2012 Day 1

というわけで、7年ぶりとなる本番のJavaOne Tokyoが始まりました。早速1日目の模様をまとめてみます。

Java Strategy Keynote


まずはKeynoteから。といっても詳細な内容は、他でしっかりまとめているでしょうから、ここではざっくりと・・・
技評さんのレポートが詳細です

自分はSFでのJavaOne2011に参加していたのもあって、内容的には結構被るところが多かった印象。
しかし、大事な部分についてはしっかりとSFの内容を持って来てもらっているな、と感じました。
最近ホットなJavaFXについても、JavaFX on iOSの話もありましたし、またJavaFX + Kinectについては、実際に動くデモを行い、参加者は大変驚いていたようです。*1
これらはSFでも大きな拍手が起こった非常にインパクトのある内容だったので、これを日本でもやっていただけたのは、参加者にとっては嬉しいことだったように思います。

また、途中で、先日のTwitter Tokyo Open Houseに登壇したRobも壇上に上がりました。
知っている人も多いと思いますが、TwitterではバックエンドのほとんどをScala&Javaで実装していて、またJCPのメンバでもあることから、これからも積極的にJavaの発展に関わっていくという話でした。

またSFではまだ朧気だったProject Avatarについても触れられました。どうもProject AvatarHTML5を中心としたクライアントサイドのテクノロジーになる様子。キーワードとしては
- 双方向イベント駆動アプリケーション
- WebSocket,JSONなどを使ったクラウド対応
- JavaSE,ME,EE準拠
- モバイル対応
などといった様子。まだまだどんなものになるか、ちょっと良く分からない感じです。今後の情報に期待。

またJavaEEの話のなかではGlassFish 4.0が2013年にリリースされる予定とのこと。主な機能としてはクラウド対応がキーになりそうです。

NIO.2を使って、簡単ファイル操作

先日の岡山Javaユーザ会勉強会にも講師として登壇いただいた、櫻庭さんのセッション。
Java7で追加されたNIO.2の、特にファイル操作系のAPIについて詳細に説明をされていました。
多言語なら当たり前にできていたファイル操作、例えばファイルコピーとかは、Javaの標準だけでは結構手間がかかっていたんですが*2、これがNIO.2で非常に簡単にできるようになっていることが、よく分かりました。

ランチタイムのスペシャルセッション


ランチを食べながら、GlassFish開発のキーパーソンに直接質問しようというコーナーです。
Q&Aコーナーでは、GlassFishWebLogicの住み分けについて質問されて、「そんな質問は初めてうけたよ!でも、凄く興味深い質問だね!」というやり取りが。*3そこでもやはりGlassFishは先進性、WebLogicはミッションクリティカルなフィールドとった住み分けになる、という回答でした。

JavaFX + FXML + CSS = Javaの次世代GUI

初日の一番人気だったかもしれないJavaFXのセッション。JavaFXGUIを作っていくにはどのような手順で作成するかが、よくわかりました。MVCっぽくScene BuilderとCSSを使用することでViewを作成し、これを他のクラスから使用することで、JavaFXを使ったGUIが簡単に作成できます。
これからJavaFXは非常に面白いテクノロジーになりますね。

Project Lambda : Multicore and Beyond

Java8で導入予定のLambdaの話。今までちょっとイメージできていなかったんですが、どういうわけか最近Rubyをやってるせいもあって、なんだか前よりすんなり頭に入ってきました。
Lambdaが導入されれば今まで冗長だった記述が、驚くほどスッキリ記述できるようになるでしょうね。

トラブルシューターの頭の中身〜7年間のJavaトラブルシュートサービスから〜

岡山Java勉強会でLTもやって頂いた、id:cero-t 谷本さんのセッション。最初から谷本節炸裂の、いいセッションでした。*4
内容としてはJavaのトラブルシュートの現場で培ってきた、様々なノウハウを紹介していただきました。
谷本さんと同僚の江里口さんの二人で、トークしながら様々なトラブルの原因を調査していく様は、さながら掛け合い漫才のよう。*5
ちなみにいままで請け負ってきたトラブルシュートでは500戦以上無敗!今でも連勝記録を伸ばしているとのこと。

*1:この手のセッションで拍手が起きるってのは、日本では珍しい

*2:実際にはCommonsとかでやるのが普通でしょうけど・・・

*3:でも、みんな気になってる内容のような気も

*4:褒めてるんですよ?w

*5:褒めてるんですよ?w

JavaOne Tokyo 2012 Day 0

嵐の中で輝いて

4/3に移動だったのですが、前日から天気予報で言っていたように、日本を台風と同じクラスの低気圧が直撃。
日本全土が大荒れの天気のなかの出発です。
これはまさに「エクストリームJavaOne
しかし、SFのJavaOneで苦労したことを思えば、この程度の嵐は造作も無いこと。

しかし、空港に到着して、気象情報を眺めては飛行機がちゃんと飛ぶのかどうか心配していると、九州方面発の飛行機が軒並み欠航していることを知り、ますます不安に・・・アワワ ヽ(´Д`;≡;´Д`)丿 アワワ

しかし、そこは晴れの国大都会。しかも今回乗った機体が最新鋭の787!

何事もなかったように離陸し、定刻通り、定刻通り*1羽田にたどり着きました。

ひとまず先にホテルにチェックインしようと電車で東京まで来たところで、その先に乗るはずだった京葉線が全日運休の知らせが\(^o^)/
SFの時といい、今回といい、ホントJavaOneは何が起こるか分からないぜ!orz
どうしようかと悩んだ挙句、そのまま参加予定だった Twiter Tokyo Open House に行っちゃえばいいじゃね?ってことで、会場へ。

Architecture of Twitter


まずはTwitterアーキテクチャを支える、Rob Bensonのセッション。Twitterアーキテクチャについて、限らられた時間でしたが、非常に丁寧に話をされていたのが印象的。ここで初めて知ったんだけど、Apache Mesosなどのプロダクトも使ってるらしい。

Twitterオープンソース


毎度おなじみ(?)Twitterのイケメンエンジニアこと、ゆーすけさん
TwitterGithubなどで公開してるオープンソースのプロジェクトを紹介。
今人気があるのは、やっぱりBootstrap。しかし今日はHogan.jsというJavaScriptのテンプレートエンジンを紹介していただきました。
プリコンパイルするので、非常に早いのが売りだそうです。これも要チェック。

Twitterエンジニアの1日


ひげぽんさんのセッション。
Twitterのエンジニアの1日、というかTwitterでどんなスタイルで開発してるかという、非常に興味深い内容。
やっぱりSFとは時差があるぶん、その辺りを考慮した勤務スタイルになってるようです。
開発のスピードも最短で1日で本番に適用されるなど、スピード重視。
またエンジニア同士も非常に仲が良く、ちょっとした質問にも、みんな丁寧に答えてくれる文化が、社内に根付いている印象でした。

懇談会


セッション後はビール&ピザで、懇親会です。
また、みんなやはりTwitterのトップエンジニアに質問したいことがいっぱいあったんでしょうね、懇親会でもRobにいろいろ質問をしていました。Robは懇親会中にも、ホワイトボードを持ちだして凄く丁寧に参加者の質問に答えていました。優しい!

Conclusion

というわけで、嵐の中の移動でしたが、なんとかJavaOne前日を無事に終了しました。
当日の模様は、また追って書きたいかと。


そうだ、iPhoneは無くしてないですよ。

*1:大事なことなので、2回いいました

perfumeのアレをopenFrameworksで動かしてみる

今日、TL上で話題になっていたので、見た人もいっぱいいるとおもうけど、perfumeのアレ
http://www.itmedia.co.jp/news/articles/1203/30/news042.html
面白いですね。Rubyアイドルより、全然面白いとおもうんですがw

いや、池澤さんもカワイイんですけどね(ぉぃ

てなわけで、実機で動かす手順とかのまとめです。
環境は

example-openframeworkのソースを取得

まずはgithubからソースを取得

cd ~/github
git clone https://github.com/perfume-dev/example-openFrameworks.git

すると ~/github/example-openFrameworks ができます。
これにはexample-bvhとexample-sync-soundの2つサンプルが入っています。
example-bvhはサウンドなしで、踊っていないフツーのモーションが添付されています。
もう一方のexample-sync-soundは、モーションデータとサウンドを、Perfume global siteから別途ダウンロードしてきて実行します。

openFrameworkをダウンロードする

openFrameworkを公式からダウンロード。当然OSX用で。
これを適当な場所に解凍します。
そして解凍して出来たlibsディレクトリをそのまま ~/github にコピー。

Perfume global siteからリソース取得

Perfume global siteからモーションとサウンドを取得。
規約(Terms of use)にチェックを入れると、ダウンロード可能になります。

モーションデータは解凍するとbvhfilesフォルダ*1ができるので、これを example-sync-sound/bin/data*2 にコピーします。
サウンドデータは解凍してできたwavを、そのまま example-sync-sound/bin/data にコピー。

実行してみる

後は簡単。
example-sync-sound/example-sync-sound.xcodeproj をXCodeから開いてbuildしてrunするだけです。
ちゃんと設定できていればexample-bvhも動くはずです。

ついでに妄想

このモーションデータとかMMDあたりで、使えたりしないのかしら?*3

*1:ちなみにファイル名が丁寧にacchan,kashuyuka,nocchiになっているw

*2:多分bin/dataはないはずなので、ない場合はフォルダ作成

*3:教えてエロイ人