大江戸Ruby会議03に登壇しました

2013年3月17日、Asakusa.rb 200回記念の大江戸Ruby会議03に登壇しました。RubyWorld Conference 2012 の講演を見た [twitter:@kakutani] さんよりお声がけいただいたのが経緯。

最近、心と時間の余裕が無くてAsakusa.rbへ行けてなかったのだけど、1ヶ月ほど前に「なんだか行けそうだし大江戸の講演も近いし、最近はどんな感じかな」と、1年弱ぶりくらいにふらりと立ち寄ってみた。まぁいつも通りギークだかハッカーらがコードをテーマにしてるのかしていないのか雑談やら相談やらの雰囲気で大変心地よかったです。そういう場所だから200回も続いてるし、大江戸Ruby会議のクオリティなんだと思う。

大江戸Ruby会議からちょっとだけ日も空いたことだし、 togatter を眺めながら各講演について短い感想を。あ、各講演者のスライドは公式サイトのスケジュールにリンクされてるのでご興味があれば是非見てみて下さい。

一番下に自分の講演について書いてます。

オープニング

AM10:00開始はRubyistには早かった。200人で埋まるはずの座席は1/4程しか埋まっておらず10分ほど開始延長。角谷さんの開会のご挨拶と共にコンセプト「生活発表会」の説明。

招待講演『A Rubyist life in London』

[twitter:@makoto_inoue] さんのロンドンで9年エンジニアをしてきたお話。ロンドンでの働き方のお話。興味深かったのは、雇われエンジニアだと年収600万円ほどだけど、フリーだと1000万円ほどになるというお話。もちろんフリーでもレベルの高い人の話らしいけど、意外と日本と大差ないのではないかと。受託開発もそれなりにあるみたいだし。
ただ形態の外観は日本と似てるけど、中は違うんだろうなぁ。話を聴いてる間は懇親会でその辺詳しく聞こうと思ってたのに、すっかり忘れてたよ…orz。"日本だと受託開発が〜ノマドが〜"とか、乱暴な意見が相変わらず跋扈してるけど足下の問題を細かく見た方が良いよねって改めて思った。
あと、英語が苦手ならシンプルな日本語でジョーク控えめにすると意思疎通を文字上ででもできるからお勧めとか、そのテクニックが熱かった。

Ninja Talks 1『気づいたらここに立っていた(仮)』

[twitter:@takkanm] さんのお話。ご自身のコード遍歴とその途上で使ったライブラリのコードが流れ続ける感じ。ああ人に歴史ありって感じだなぁと。[twitter:@takkanm] さんとは割と長い知り合いだと思うけど、そういうのよく知らなかったので個人的に興味深かった。what_methodsというgemは結構仰天した。豪華な型システム無しにあんなのできんのって思って、コード読んだらずっこけた。

Ninja Talks 1『asakusa.rbに一年間通ったらこうなった』

[twitter:@katsyoshi] さんの何とも言えない世界の紹介。Asakusa.rbに毎週来るけど、あまりしゃべらないので謎だったから登壇して貰ったとか角谷さんの紹介。
面白い人だなというのは外から感じられる人で、Twitterで爆速でふぁぼつけてきたりするし、この前のAsakusa.rb新年会で少し話しただけだけど妙な雰囲気で呑んでくるので自分も興味あった。mikutterをどう動かすかを延々と話してる印象が残ってて、懇親会の帰りがたまたま同じ方向だったので、面白かったこともありずっとmikutterのコードの話を聴かせて貰ってた。講演によると特定のTweet機械学習で選別して機械的にふぁぼしつづけてるらしく、公演中もふぁぼが飛んできて最早謎。この講演が良いのは、[twitter:@katsyoshi] さんが舞台に上がって講演して降りるというだけで、[twitter:@katsyoshi]さんの日常が続いてる感が出てるところだった。ご本人は大変だったとblogで書いてましたが。

Ninja Talks 1 『某レシピ共有サイトの Ruby 1.9 対応で大変苦労しました』

[twitter:@mrkn] さんのタイトル通りの苦労話。結構いろんな人のブログにもあったけど、超人オリンピックみたいな会社でもああいうコードがあるのねというのが正直な感想で、安心しました(?)。
これからプロダクトでこのメソッド使うなよみたいなのを、「コーディング規約」とか「コードレビュ」じゃなくて、warningとして出力させてアプリケーションエンジニアに伝えるというテクニックは、Rubyならではだし、出力を整形すれば機械的なチェックも出来そうだしで、とても良いテクニックだと感心した。
あ、ご本人のblogには、講演で言わかった大事な前提が書いてあって、ああそうだよねぇ、大事な事忘れてましたという次第。

基調講演1『RubyGC の問題点と 改善手法についての一考察』

[twitter:@koichisasada] さんのワンダと巨像がいかに面白いかRubyGCの問題点と現在の実装とこれからについての講演。さすが大学で先生してただけあって重厚な講義風。

Mark & Sweep をひとまとめに実施するとGC中に止まるので、Sweep作業を細切れにしたのが1.9で、Markの場所をfork時の共有メモリを汚さない為にメモリの特定領域に移したのがBitmap markingでこれが2.0。一つのマシンの並列性が上がった現代には嬉しいですよと。あとは、再帰的にマークしていたのをスタック構造に移したのが2.0とか。

よく分からないけど、かつてのJavaの世代別GCだと若いオブジェクトを細切れにNew世代領域内でも行ったり来たりさせて効率化させてるけど、forkで使われる事が多いとこのテクニックもあまり使いにくいとか共有しているメモリへの書き込みが増えそう。

笹田さんはずっとGCRubyの処理系の事を考えて生活してるそうで、電車通勤でも飽きないのでGCRuby処理系お勧めとおっしゃっておりました。(3/22 訂正)

あ、そうそう。Bitmap markingがまんま画像フォーマットのbitmapに移せるのでそれを動画にしましたとかのデモが個人的に超楽しかった。いやああいうのってもうアートかSFじゃないですか。あの動画を出すツールを実行中横に出しておいて、「ああこのメモリの使い方はRSpecですねぇ。もうちょっとローカル変数を使うようにコード書いた方がいいですよ。」とか煙を燻らせながら言ってみたい(タバコ吸えないけど)。

Ninja Talks 2『RubyConfのNinjaの話の続きのおはなし』

[twitter:@yuri_at_earth] さんのmrubyをSTM32F4-Discoveryで動かしましたという話。組み込みでもRuby動いたら超楽しそうじゃないっすかという前振り。そう思います。LEDちかちかさせたい。で、個人的に前のめりになってしまったのが、STM32F4-Discoveryでmruby動かしましたというくだりで、私、実は同じ事試してたのですが、MacでSTM32F4の開発そのものが結構面倒の塊で、数日やってくじけてしまったのです。その資料是非ネットにアップして下さいって懇親会でお願いしてみた。

Ninja Talks 2『Travis-ciでのemberjsのi18n

関西弁を操るシアトル出身の [twitter:@morgan_randy] さんのお話。爆笑しすぎて何を話してたのか忘れそうになった。emberjs を使った静的なサイトでもi18nできるよというテクニックのお話。懇親会で詳しくお話を聞いたら、翻訳ファイルは全てクライアントに持って行く仕組みらしくて、「転送量大丈夫?」と聞いたら、assetsの圧縮は大したモンらしくてそうたいしたことは無かったとのこと。

Ninja Talks 2『ぼくのかんがえたさいきょうのお問い合わせ管理システム』

[twitter:@hsbt] さんの会社の日常業務をさいきょうにしたお話。ありますよね?カラム毎の入力欄と 'name LIKE %?%' で全検索とかやっちゃうギョームシステム。少し違う検索をしたいだけなのにエライ時間かかったりテクニックが必要だったり。そういうのをえいっと横断的に探索して全文検索エンジンで均しちゃうお話。
このお話が良いのはスパナ持った隠れた伝説のおっちゃんが会社を歩き回って問題を解決するような雰囲気が出てるところ。おっちゃんは楽しいのでちょっと違う技術で直してしまうけど、問題はきっちり直ってる。そういうのをやらせてくれる会社も懐大きい。

あと、Rubyコミッタになった(おめでとうございます!)から、Rubyコミッタが忙しくて手出しできてない周辺環境をぐいぐい整備していきたいとかもうやってるよとか頼もしい事もおっしゃってた。流石や・・・。

基調講演2『Asakusa.rb vs. the World』

我らが [twitter:@a_matsuda] さんのお話。Asakusa.rbに集うハッカーは凄すぎて地の利を生かす手は無いとか。コードで世界を相手にするには、この陣容は素晴らしすぎるだろうという感じ。いや、あそこで会話聞いてるだけで面白いもんなぁ。
私的には [twitter:@a_matsuda] というハッカーの磁力がかなり強くてその相乗効果でさらに磁力がエライ事になってるとは思います。RubyのコミッタもRailsのコミッタもスゴイですよ。

Ninja Talks 3『Diversity is Good. RailsGirls Tokyoの取り組みと、そしてあなたがいつか得られるもの』

この辺から舞台袖で緊張しながら聴いていたので、あまり分からない…。

[twitter:@yotii23] さんのお話。RailsGirlsTokyoのオーガナイザー。多様性は善だけど、相変わらず男性に偏ってるけど、RailsGirlsTokyoやってみると女性も結構興味持ったし、きっかけさえ作れば偏りなんて関係無いし良いこと起こるんじゃないかなとかそういう感じだったと思う。

Ninja Talks 3『From 0 to 1: How to Get Involved in "Open Source"

よし、つぎは俺だと思ってたらいつの間にか順序が変更になってて、緊張のやり場に困ってしまいますますよく聴いていない。ふぇぇ。

[twitter:@yuki24] さんの、オープンソースコミュニティに打って出るハウツーやらを丁寧に説明してたと思う。スライド見たいけどまだ上がっておらず残念。

Ninja Talks 3『Rubyを始点としてもう一つのエンタープライズ開発を続けたあるSIerの事例』

このタイトルは誤植ではありません。隠しきれないエンプラ臭…。自分のなので割愛。

招待講演2『桐島、Rubyやめるってよ』

[twitter:@nari3] さんのコードを書く意味についてのお話。最早数日で伝説のトークと化してしまい、いまさらなんか書くことも無いけど、良かった。忘れてましたよ、楽しいから書くだけでもいいじゃん。そういう感じなのにスゴイ仕事を残してしまう人の例としてmameさんとかyharaさんとか挙がってて、自分もそう思って密かに憧れてましたよ。ほんと。nari3さんのGCもそうなんじゃないかなぁ?

自分の講演について

RubyWorld Conference 2012の再演でした。角谷さんに撮って頂いた写真がかっこよすぎたので何故か置いておきますwwww。他の人も格好いい(こちら)。

同じ話をこんな大舞台でしていいのかしらんという悩みはあったけれども、やってみて良かったです。角谷さんに再演をしかも大江戸でと依頼されたのは密かに嬉しかったのです。頑張ってみました。
案外、RWCの動画は上がってるけど見てなかったとか、直に見れてよかったとか大勢の方に言っていただけました。ブログ上で恐縮ですがホントにありがとうございます。

広義のシステムを使う人からコンピュータまで一貫して繋げられる技術とそのやり方がおぼろげながらも見えてきた時代だと思います。その見え方を見るための入門にはRubyはとてもいいんじゃないかと。

あ、この講演について、[twitter:@arton] さんがスゴイ感想記事を残して頂いていて恐縮です。両側の壁というのは端的で分かりやすいと思いました。