YAPC行ってきました(1日目)

YAPC行ってきました!
以前からShibuya.PMとかは行っていたんですが、実はYAPC初めてなんです。

そんなタイミングで風邪を引いてしまいましたが、重たい体を引きずっていざ大岡山へ


今回は私が所属しているngi groupもスポンサーとして参加させていただきました。
色々ご案内してくれた941さんには感謝です。



ちょっと遅れていったので既に始まっていました。。

Perl 5.16 and beyond

  • まずはJesse Vincentさんの「Perl 5.16 and beyond」です。
    印象に残ったのはPerlの今後について。現在のPerlは5.14.2ですが、今どんどん開発が進んでいます。
    今後は下位互換性を持たせながらコア機能をどんどんCPANに移行してスリムにしていきEncodeやwarningなどもデフォルトとして標準化していくということでした。今後のPerlも期待ですね。



Carton: CPAN dependencies manager

  • 次はPerl界のロックスター宮川さんです。(写真がうまくとれてませんでした。。)
    今回の宮川さんの発表は「Carton」について。
    いわゆるCPANモジュールなどのVersionによる依存関係を解決するモジュールです。
    個人的にはlocal::libをよりソリューション的にしたモジュールのように見えました。
    Makefile.PLにモジュールとバージョンを書いておけばそのアプリ用に自動でモジュールをインストールしてくれるようです。
    carton installで一発インストール出来るみたいです。これCapistranoに是非仕込んでdeploy時に解決してくれるようにしたいですねー。



SmartPhone development guide with Node/CoffeeScript and HTML5 technologies, for Perl programmers

  • 次はGreeのnaoyaさんの発表です。
    やはりスマートフォン関連ということで要チェックです。
    最近のアプリの作り方としてネイティブ+Webのハイブリッドが主流らしいです。
    実際には以下のプロダクトを使用して作っていくようです。それぞれ特徴なども合わせて。
    • PhoneGap
      • UIWebViewのjsにネイティブブリッジjsで実装。JITコンパイラがないのでちょっと遅い
    • Titanium Mobile
      • Javascriptで記述してネイティブコードを吐き出す仕組み。細かいチューニングが出来ず、純粋なネイティブに比べると遅い
    • SL4A
      • PerlAndroidアプリが書けるが、速度や安定性を考えるとおもちゃのようなもの
  • まとめとして今後この方向性のFWは増えていきそうなので、チェックが必要そうですね。
  • ちなみにサーバー側ですが、クライアント側をJSで書くならサーバーもってことでNode.jsについても言及されていました。
    Nodeも今開発が進んでいてFWやモジュールなどが充実してきているようでした。
    またNodeの売りでもあるWebSocketに対応するsocket.ioですが、PerlでもPocketIOというものがあるのでPerlでも全然いけそうです。nodeのもう1個の売りのイベントドリブンもAnyEventで実装出来そうだし。でもやっぱり今後nodeは熱いです。早く手をつけなければ!



Rubyist のための Perl ウェブアプリケーション開発入門

  • お昼ゆっくりしていたらMarc LehmannさんのAnyEvent、Coroについてを見逃してしまったので、あとでyoutubeでチェックするとして、次はペパポの刺身☆ブーメランさんのRubyistのためのPerlウェブアプリケーション開発入門です。
    以下RubyPerlの比較
  • Ruby
    • Enviroment
      • RVM(Ruby Version Manager」でrubyのバージョン管理をする
    • WAF
      • Railsではなく最近流行りの軽量FWとしてSinatra、Padrino、Ramazeがあるよ
    • Platform
      • Rubyが使えるPaasとしてHeroku
  • Perl
    • Enviroment
      • 言わずと知れたperlbrew
    • WAF
      • Catalystではなく軽量FWではDancer、Mojolicious::Lite、Amon2::Liteなんかがあるよ。実は僕まだ使ってないので早く触りたい。
    • Platform
      • PSGIが動くPaasって?→dotCloud、ありました!
  • 結論:PerlRubyも同じような問題があり、同じような解決策がある。どっちもいい感じ!
  • そしてペパポさん、福岡に支社を作るようです。
  • 実はdotCloud名前は聞いてたんですが、PSGIが使えるとも思ってなかったので、早速実践したいです!



Perl Mongerなりきりカードゲームの考案と実践

  • なんとなく流れでそのままいたんですが、まかまかさんのPerlでカードゲームっていう謎の公演が始まりました。
    なんかPerlのカードゲームを作ったらしいです。「Parumon」。。詳細は語りませんが、かなり大爆笑でしたww



perl meets beats.

  • Perlと音楽?と思っていましたが、techno_nekoさんが実際に聞いているとPerlで音をWaveファイルに書き出すとのこと!昔僕も音楽やっててかなり打ち込みにハマッていたのでワクワクな感じになりました。
    中身としてはWaveファイルフォーマットの話から始まり、波形データや波形以外のメタデータPerlでpackして書きだすとWaveファイルが作れるようです。
    その後ドラム音の波形などの話があり、私も昔Cで音楽を作ろうと思って挫折したことを思い出しました。
    またGrooveの作り方など(おっcubase的なとこキターー!)やtechno_nekoさんが作っているモジュールを見てオシレータパラメータとかアンプパラメータがあり、オモシロ懐かしく興味津々で聞きいってしまいました。このあと「あのモジュール、オシレータとアンプがあったからフィルターとかもないのかなー」なんてつぶやいたらtechno_nekoさんから「すいません。間に合いませんでした!」とのリプライが。
    分かってらっしゃるwwリプライいただけて大変嬉しかったです!ありがとうございました。
    ぜひ今度社内のどこかで私も音楽発表したいです!
  • これ後で絶対触る!



他言語から見たPerlのテスト

  • その後くらいから風邪が辛くなってきて息切れしてきたので、申し訳ないですがさらっと書きます。
  • Perlでのテストについてですが、PerlにはTest::More、TAPを始めとする色々なテストFWがあり、またウェブ再現系のCatalystのテストやPlackのテストなど色々あるようです。テストってついつい手を抜いてしまいますが、テスト計画に基づいたリグリッションテストはちゃんとやったほうがいいですねー。
    気になったのはスタブとモックは明確に違うようです。混同してました。。実際の処理をするのがスタブでハリボテオブジェクトがモックですね。
    なるほどです。



Apporoで類似文字列検索

  • 類似文字列検索ということで、全文検索システムのApporoを紹介してもらいました。
    LuceneやSimStringと比較されていました。メンテナンスコストをかけずに類似検索が出来るって便利ですねー。全文検索使う際は今後検討してみたいです。



LT Day 1

  • この日の最後はLTです。
    気になったのはKAYACさんのPerl道場とかYappoさんのIkachan、kamipoさんのDBIx::Handlerとかですね。
    でも一番爆笑だったのがSixApartさんのiSteveですね。
    詳しくは動画を見てください。
    あとリクルートさんのMA7も気になりました。
    社内からも何名か参加してみたいと思います。




1日目まとめ

  • 1日目からお腹いっぱいの内容でした。また色々やりたくなってしまいました。懇親会出たかったんですが熱があってあまりにもつらかったので(帰って計ったら38度超えてた。。)泣く泣く帰りました。
    2日目に続く・・・