沖縄アンカンファレンス #0

10/27 沖縄アンカンファレンス #0 が初開催。僕も発表してきました。
端的ですが...


PIC と RoR heroku の無茶な関係 / @mgwsuzuki

PIC(23bit 80MHz CPU 128KB Flash Memory, 32KB RAM OS 無し)で、RoR なサーバに PIC のみで自動投稿するという試み!HTTPプロトコル部分は自前実装でなんとかする!小さなマイコンでもネットに繋がるという事を体験したかった!


Perl Mongers Group / @masakyst

僕です。1998年初のPerl Mongers Groupが、ニューヨークに設立されてから、現在、世界のPerl Mongersは 257 グループ。沖縄にもあったらいいよね、という事で、YAPCで宣言したOkinawa.pm(仮)...ではなく、 まずYomitan.pmを立てました。Urasoe.pm(南部)があるので、中部Yomitan.pm、北部Nago.pm(無い)と3つくらいグループがあると、地理的に丁度良いなと(今では)思ってます。問題は活動次第だろうし。
http://masakyst.github.com/talks/20121027-perl-mongers/


iPhone5OpenCV / @shumach217

iphone5を買ったので、opencv環境構築。プロセッサが変わったりXcodeバージョンアップしたりと意外と面倒。SIFT(Scale Invariant Feature Transform)の特徴点検出的なアルゴリズムの話。むずかしい!
特許関係で製品には使えないシロモノらしい。
http://www.slideshare.net/shumach217/unconference-20121027-14908691


開発者と心理学 / @fullkawa

1.マズローの欲求階層説
2.ヒューマン・ユニバーサル
3.コンコルド効果
4.六次の隔たり
5.マジックナンバー 7
5.ダンバー数
について。スライド無しでも話が上手な方!
やはりWebサービスは人が使うものなので、人の心理の勉強って重要ですね!


Okinawa Boot Camp のはなし / @kimihito

CoderDOJO 沖縄、小学生のためのプログラミング道場という事で、これからの子達にプログラミングを教えるという画期的な試み。次に、サムライインキュベートの話。シリコンバレーのY Conbinatorを参考にした感じの投資モデルを沖縄でやろうとする試みのようだ!きみひとさん、ギークハウス沖縄の人達って、本当に凄い!僕も見習わなければ!


勉強会やりましょうなナニ / @yamanetoshi

アンカンファレンス主催者のやまねさん。V6 UnixLinux勉強会やりたいということ。V6 Unixのソースを読む事が、現代のOSを理解する近道!という事でkernelのパッチ送ってたりとかすごいので、是非勉強会に参加いたしたいと思います!


クラウドが一般家庭に普及したら / @fullkawa

クラウドが一般家庭に普及したらどうなるか?みんなで談義!!
うむ!これは予想難しい。


AWS で行こう! / @k_nishijima

今や世界の半数のWebサービスAWS上にのっていると言われているアレ!パブリッククラウドを怖がる会社もあるけど、クラウドデザインパターンでトラブる事を前提としたシステム/ネットワークの組み方が大事!
http://www.slideshare.net/KoichiroNishijima/20121026-awsupdate


以上な感じです。勉強会って楽しいですね!

YAPC::Asia 2012 Changed My Life

日本でのPerl最大級のイベント「YAPC::Asia 2012」に行ってきました!


今回は沖縄から初参加したので、いつもとちょっと違った気持ちでした。ちなみに、飛行機はエアアジアで、往復15,000円くらいでびっくりするくらい安かったんですけど、飛行機の発着場所は遠くてバス移動で、その待合室的なものが(ry


で、前夜祭は行けませんでしたが、YACP初日、遅刻せずに到着。


1日目


941さん「オープニング」

今年は参加者数が過去最多!個人スポンサー120名!941さんのフレンドリーなトークはいつ聞いても、楽しい気分になってきてしまいますね!1


Larry Wall氏「What Does Your Code Smell Like?」

Perl5のコードから、Perl6のコードに徐々に書き換えて動作させていくデモは、Perl6への期待を戻すのに十分でした。
その後のセッションで、tokuhiromさんもおっしゃっていましたが、Perl6 Rakudo* の速度はものすごく遅かったけども、最近になって大分速くなった、という事で、徐々にPerl6に期待を戻してもいいんじゃないですか!


HASEGAWA Yosukeさん「Web::Security beyond HTML5

Webセキュリティ、Ajax/XHR Lv2についての脆弱性の話で、もはや教科書として欲しいレベル。さすがとしか言いようが無い内容でした。


Tokuhiromさん Nana/Tora Language

別の視点からのPerl5の未来。シンプルな新言語Nana/Tora について...と思いきや、NodeJSの話、node-perlPerl CPANモジュールをNodeJSから使うとか、Perlにmrubyを埋め込めるmRuby作った「誰かがやると思ったので、やられる前にやってやった!」とか、さすが笑える点満載のトークでした。


motemenさん / Perlでファントム

PhantomJS wrapperなWightについて。他言語のPhantomJSに無い機能などもいくつかあり便利すぎて泣いた。今度絶対使う。


xaicronさん / 続Mobageを支える技術

APNsやC2DM、GCMというプッシュ通知サービスの裏側に使っている、Message Queueの実装、そのプロセスを、Perlで書く場合のシグナル処理を具体的なコードで説明。話はまじめなはずなのに、会場の笑いが止まらないのは、xaicronさんだからでしょうか!


yappoさん「位置情報系処理のお話 a.k.a 続・自文書抽出日本的住所」

GeoHashのとてもまじめな話。混沌とした住所の話とか、Heatmapの作成、オープンな白地図を作成していきたい...など、とても実用上重要な話でした。yappoさんはとてもまじめだったり、ドラクエ(の内容のみ!)のLTを始めたりまったくどんなトークが来るか読めない!


Tatsuro Hisamoriさん「平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用」


広告の表示リクエストが飛ぶ度に複数の広告主によるオークションがリアルタイムに行われるという、まさに、今までの広告モデルを破壊しにかかっている男らしい内容!厳しいレスポンスタイムを実現する、広告関連技術をかいま見た気がしました。
50ms or die
かっこいい


1日目のLTを終えて、懇親会!

相変わらず懇親会では、ぼっちになって困ってしまう僕ですが、Hokkaido.pm Casualをやってらっしゃる @techno_neko さんに発見され保護されました。なんという良い人!!111
その後、@hondallicaさん @hide_o_55さん、@ytnobodyさんや @uzullaさんの元に探して連れてってくれるなど、神がかり的な親切さに土下座ものでした。本当にありがとうございました!無料のビールを飲みまくれる(食べ物も)など、さすがYAPC、懇親会もすばらしいですね!


2日目


yusukebeさん「新しい」を生み出すためのWebアプリ開発とその周辺」

YAPCでは大規模サイトの運用ノウハウなども多いなか、新しいサービス/中小規模をリリースする際の、企画のフローや技術的なポイントなど、僕の様な、中小規模ばかりの人には、参考になる内容でした。
cookpadの例から途中一転して、エロい話がでてきましたけど


この2日目の最初のセッションは、悩んだ...。
kazeburo先生の「1台から500台までのMySQL運用(YAPC::Asia編)」
前回サインを頂いた近藤先生の「Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に! 」
いずれも見たかったです。


ytnobodyさん「CPANに恩返ししよう」


僕もPerl/CPANに多大な恩恵を受けてきたので、とても共感する話でした。やはりそういった気持ちって、単にどの言語が使える/使っている、という一線を超えるのに重要ですよね...!


...この後、昼飯を食い、「Perl 今昔物語」
miyagawaさん、nekokakさん、tokuhiromさん、naoyaさんの対談でしたが、これには参加せず、同会場のLT-thon(hachioji.pmリーダー @uzulla さん主催)にて、地域.pm ミートアップに参加しました。


LT-Thon 地域.pmミートアップ

Hachioji.pm Fukuoka.pm Hokkaido.pm Nagoya.pm Sendai.pm Niigata.pm Chiba.pm
のリーダーによる、地域PMの状況を聞きしました。その後、新しいPM立ち上げたい人宣言、的なものがあって、国際展示場前.pm(Kokusaitenjijoumae.pm) を起てたmaka2_donzokoさんの話に吹いていたら、Tachikawa.pmを起てたい、という方が壇上に呼ばれて宣言されていたので、ドキドキしていたところ、@uzullaさんより、「あれ?Okinawa.pmやりたいって言ってた人は?」的な感じになりますよね、そうですよね。懇親会で相談させて頂いていたのです。多少ガクブルしながらでしたが、やりたい気持ちは変わらないので、Okinawa.pmを立ち上げたいと言ってきました。ただ、沖縄だと大きく、Okinawa.pmにした方がいいのか、Urasoe.pmが既にあるので、もうちょっとこじんまりにやった方がいいのか、をちょっと悩んでいます。その辺りすっきりさせて開始します。最後は、地域PM面子などで記念撮影にまぎれてみました...! @uzullaさん色々ありがとうございました。
このあたり、yappoさん、kazeburoさんにRetweetされて驚きました、ありがとうございます!


で、よくわからないテンションの状態で、セッションに戻る。


Tatsuhiko Miyagawaさん「10 more things to be ripped off」

他の言語の良いところをPerlに持ってきたらいいじゃない、という話。PSGI/PlackStarman、Cartonなど様々な氏のプロダクトは、Rubyプロダクトからも大きく影響を受けているという事で、参考にして競い合う事でお互い良い環境/関係になっていくんでしょうね。先日の札幌Ruby会議では、Perlの話をされたようなので、YAPCではRubyの話をしたという、なんという紳士的なかっこよさ!さすがロックスター!


この後、Tim Bunceさん「Performance Profiling with Devel::NYTProf」 を眺めて、その偉大さを目の当たりにしたり...、


Gosuke Miyashitaさん「How Perl Changed My Life」

Perlがいかにして、自分の人生を変えたのか...!というあまりに感動的な話。Plaggerを通じたmiyagawaさんとのコンタクトなど、涙無くしては聞く事が出来ない内容でした。途中Larry Wallに英語でお礼「Larry が Perl を作ってくれたおかげで、みんなしあわせです」を語りかけているシーンがあり、もう号泣です。心の中で。


Daisuke Makiさん「Closing」


牧さんによるクロージング。今年はスポンサー33社、スタッフ43名、トーク/セッション63、発表者やスタッフを含めて841名の過去最大の参加者となったという事でした。毎年過去最大に更新していてすごいです!


...以上、という感じで、今回のYAPCは自分にとって、違ったものになった様な気がしています。Changed My Lifeですね。まだ何も変わってませんけど。


という事でこの場をかりて、お話させて頂いた皆さんありがとうございました!
帰り際、握手してお話させて頂いた、@kazeburoさん、@neko_gata_sさん、@egoproさん、ありがとうござました!


スピーカー、スタッフ、JPA、スポンサーの皆様の運営側の尽力あっての事かと思います。
本当にありがとうございました!
来年も、よろしくお願いいたします。

YAPC::Asia 2011の感想 次期Perl編

日本でのPerl最大級のイベント「YAPC::Asia 2011」に行ってきました!

今更ざっと書いてもしょうがないと思うので、私が以前からずっと気になった点を1つ2つ局所的に書いてみようと思います。


Jesse Vincent 氏 の Perl 5.16 and beyond

スライド
http://yapcasia.org/2011/talk/96


もう初っぱなから、私的にクライマックスになってました。

今回のYAPC::Asiaの内容に限らず、現時点の「Perl」に対して、一番気になっていた内容でした。というのは、既にPerl6がコミュニティからあまり受けが良くないようで「次期Perl」という立ち位置すら失ってしまってから、個人的には今まで、Perlの未来が見えていませんでした。


私はPerl6に過剰に期待していた事もあって、結構最近まで、悲しい気持ちであったのを覚えています。折角Larry含め、みんな頑張っていたのですしおすし。


...。


でまあ、トークの内容に話を戻すと、Perl6はひとまず置いておいて、Perl5がその系譜のまま進化していくのが、ハッキリと見える内容でした。
大きなポイントをいくつか...、


useのセマンティクスを変える

以降のuseの挙動は、指定されたバージョンのランタイムで実行するという事でした。単一バイナリで複数のランタイムを切り替えられるような仕組みですね。後方互換を、コアチームが最大限重視している事が、よくわかりましたし、長くプログラムを運用していくにあたって、大変ありがたい大きな進化だと思います。


Perlコアを小さく

コアから極力不要な機能*1 を削ぎ落した小さなPerlと、十分な機能をバンドルしたPerl、の2系統用意していく、という事です。
というのは、以後のPerlは、あらゆるOSだけでなく、あらゆるVM、あらゆる電話機やあらゆるブラウザの上で動作するよう目指していく、という性質上の理由からだと思います。Perlが普通に、スマホやブラウザ上で動作する日が来る、と言うことを想像するだけでも、ファンタスティックですね!


simpleなMOPがビルトイン

Mooseという、素晴らしいクラスビルダーが出来てから数年経ちました。Mooseを知った当時、Mooseのsyntaxは、RubyPythonOOP的な意味で引けを取っていた部分を覆す、Perlらしい進化を見たような感覚を持ったのを覚えています。(Mooseはビルトインされる、と思っていた時期が僕にもありました...)

が、それから数年たった今、Mooseはあまりの高機能さゆえ、ビルドするにも、依存やテストが多く、あまり好んで使われなくなってきたように思います。個人的にも、Moose依存したライブラリは少し躊躇してしまいます。Catalyst以外は。

Mooseの不満点を改善しようと、Mouseを筆頭に、Moo、Mo, M *2含め、さらにクラスビルダーは混沌としていく一方な気がしていました。まさにCommon LISP的なイメージ の様に。*3しかし以降は、現在のblessed hashベースのクラス定義はデフォルトでoffになり、新しいsimple-MOPがデフォルトになるという事は、 この混沌から一気に解放されるのでは!と、今から楽しみでしょうがありません。


以上、Jesse Vincent 氏の発表は、全て興味深く、現在のPerl5の問題の多くを解消し、全体的に見て「次期Perl」を感じられるような、進化をしていく事がはっきりわかる内容だと思います。

Perl6、Perl7 ... どう系統が流れていくかは、はまだわからない事だと思いますが、少なくとも、Perl5は、もはやRuby1.9(2.0), Python3 ...に勝るとも劣らないものになっていくのは、間違いないでしょう。


...という事で、YAPCに参加すると、素晴らしい技術的なトークの他、今後の動向も詳しく分かったりするので、是非、もっとみんな参加すると良いと思います。また、プログラマーだけでなく、Webデザイナーの方が見ても、楽し/参考になるイベントだと思います。毎年楽しみに待っているので、早くも来年の動向が楽しみですね!

スピーカー、スタッフ、JPA、スポンサー、皆様、ありがとうございました!

(画像提供元 Japan Perl Association[JPA])

*1:
SysV用のIPC関数
SocketIO用の関数
Unixユーザ/グループ情報用の関数
Unixネットワーク情報用の関数
プロセス/プロセスグループ用の関数
フォーマット
スマートマッチ(w

*2:Mはネタですね!

*3:2日目LTの深町英太郎さん「PerlCommon LispPerl」の様に。爆笑しました!