Rebuild A Podcast by Tatsuhiko Miyagawa. Talking about Tech, Software Development and Gadgets.

May 27
2013

12: Perl 5.18, YAPC::Asia (lestrrat, tokuhirom)

収録時間: 56:06 | Download MP3 (32.3MB)

牧大輔さん, Tokuhiro Matsuno さんをゲストに迎えて、Perl 5.18, YAPC::Asia などについて話しました。

0:00

miyagawa: 今回のゲストは、JPA(Japan Perl Association) の牧さん(@lestrrat) と、tokuhirom さんです。

lestrrat: こんばんは。

tokuhirom: よろしくお願いします。

miyagawa: あ、tokuhirom さんは JPA の人じゃないんですけど。ないよね。

lestrrat: うん、違う。

tokuhirom: (笑)

miyagawa: そういう紹介になっちゃったけど。まあ Perl 関係と、YAPC 絡みの話をしようかなと思っております。

先週の日曜ですかね。Perl 5.18.0 というのが出ましたけど。一応 5.18 が出たのは5/18でいいのかな。たぶん、これ合わせてるんですよね。

lestrrat: そうか、なるほど。知らなかった。

tokuhirom: へえ。

miyagawa: だから毎年2日ずつリリースが遅れていくという。

lestrrat: オシャレ〜。

miyagawa: だから 5.30 の次が 6 になるみたいな。まあ、ならないんだけど(笑)そういうネタがありますけどね。

5.18 の変更点というのはどんな感じですかね。

tokuhirom: 5.16 も地味でしたけど、18 も相変わらずわりと地味な感じですけどね。

miyagawa: 一番大きい変更点は Hash randomization ですかね。

tokuhirom: そうですね。一番トップに出てますからね。perldelta の。

miyagawa: 聞いている人のために説明すると、Perl のハッシュっていうのはデフォルトでは順序がなくて、keys とか each とか values とかの返り値っていうのは入れた順番と同じになるとは保証されていなくて、それは今までもそうだったんですけど、ただ今までは同じ値のハッシュをコピーすると keys が同じ順番で返ってくるように何となく見えていたのが、今回の変更で、同じ値が入ってるハッシュをコピーすると必ず順序が変わるようになったと。

これはセキュリティ対策だと思うんですけど、けっこういろんなモジュールのテストがコケたりして、わりとつらいっていう感じですよね。

tokuhirom: そうですね。まあ、今までたまたま動いてたのが動かなくなってるっていう感じですけどね。

miyagawa: いろんなモジュールの人がテストをして、ぼくもけっこう引っかかるやつがあって、それは 5.17 の開発版が出てるときにすでに直していたのでいいんですけど、まだ直ってないのがけっこうありますね。

tokuhirom: ありますね。SQL::Interp とか、Template Toolkit とかもまだ直ってない感じですね。

一応全部の CPAN モジュールにテストを走らせて、コケたやつは RT っていうバグトラッキングシステム経由で報告してくれる人がいるので、アクティブなメンテナがいるモジュールは大体 5.18.0 がリリースされる前には直ってたんですけど、あまりメンテナンスする人がいないモジュールだとコケてるって感じになってますね。

miyagawa: 最初、5.18 が出る間近とか、出た後もそうなんだけど、JSON::XS が同じ理由でコケてて。メーリングリストとかでは指摘されてたんだけど、作者の Marc Lehmann はこの変更に意味がないと主張していて。かつ、この変更は Perl のドキュメントに書かれた仕様と異なるから変えろ、みたいな感じでずっと賛成してなくて。でもリリースされてしょうがないから「5.18.0 のバグに対応」みたいなのをこの間出していたので、一応今は通るようになってるんですけど。

けっこう微妙なんですよね、この変更自体は。Marc Lehmann の指摘だと、これによって得られるセキュリティのメリットはほとんどないっていう話で。いわゆる Hash randomization による脆弱性が出てからけっこう経つけど、実際のアタック手法がまだ公開されていないので、今いちどれだけシリアスなものなのかよくわからないっていうのもあるんですよね。

tokuhirom: 5.16.2 の脆弱性が公開されるって言ってから随分経って、たぶん3月か4月の末にフルディスクロージャーされるって言ってと思うんですけど、それもまだ出てなくて、よくわからないですけど、なんかその脆弱性を実際に突くためのハッシュの値を独自に調べて見つけた人がいて、その人の話を聞いた感じだと、一発でメモリをもりもり使いきって落ちるみたいな感じなので、けっこう実際に起きたら大変だなっていう感じはやっぱりありますね。

miyagawa: それって外から、何も環境変数を知らなくてもアタックできる感じなんですかね。

tokuhirom: そうですね、Perl を使ってるってことがわかってれば、ハッシュに特定のキーを渡せば OK みたいな感じなので。たとえば Webサーバとかだと、クエリパラメータは大体ハッシュに入れると思うんですけど、そのハッシュの key に特定のものを食わせればいいので、かなり攻撃は容易で、かつそれをフィルター的なもので除去するっていうのはかなり難しいと。そういう風に言ってましたね。

miyagawa: なるほど。それぐらいシリアスだっていうことをもうちょっとちゃんと言ってくれればいいんですけどね。そのスレッドが perl 5 porters にあるんだけど、アタックするためには環境変数を何とかしなきゃいけなくて、環境変数にインジェクトできるんだったら、そもそもアタック以前の問題だからどうのこうのって感じで、あんまり議論が成立してなくて。だから、そうじゃないっていうのがわかればいいんだけど、わかっちゃったら攻撃手法を公開することになるので、あまり公開したくないんだろうけど、でも CVE がすでにアサインされてるから、ちゃんと公開した方がいいと思うんですけどね。

tokuhirom: 一応 Linux のベンダーとかもひと通りパッチ提供し終わってるので、ぼちぼち出してもいいと思うんですけどね。

lestrrat: パッチの公開が終わってるんだったら、もうとっとと出してくれればいいんですけど、前に IRC で Yves に聞いたときも、やっぱりそれを待っているという話だったので。それが終わってるなら、単純に忘れてるか面倒くさくなってるかでしょ。

7:30

miyagawa: それ以外だと、5.18 に新しく入った変更ってないんだよね。

tokuhirom: Lexical::Sub がエクスペリメンタルで入ったっていうのと、あと一番大きいのは、smartmatch がエクスペリメンタルに落ちたっていうのが大きいですけどね。

miyagawa: エクスペリメンタルに落ちたっていうよりDeprecatedみたいなものですよね、ほとんど。

tokuhirom: そうですね。前に YAPC::Asia で Jesse が「正直 smartmatch 失敗だったよね」みたいなことを言ってたと思うんですけど、それを聞いたときはまさかDeprecatedにするとは思ってなかったですけど。ああ、そういう風にするんだなあ、という感じはしましたね。

miyagawa: 実際、smartmatch とか given/when とかは単純なものには使えるけど、左辺と右辺の両方ともスカラーだと実行するまで何が起きるかわからないから、かなりつらいですよね(笑)

tokuhirom: そうですね。左辺はこの時にこうなって、右辺はこの時にこうなるっていうルールが表で見ないと実際にどう動くかわからないから、そこはつらいですね。

あとパフォーマンスもちょっと良くなくて。あまり真面目にチューニングした形跡がないので、いざ使ってみるとものすごく遅かったりするみたいな感じで。やっぱり中途半端なまま 5.10 に急いで入れちゃったっていう感じがするので、それで仕切り直しなのかなと思いますね。

miyagawa: 本当は MOP(Meta Object Protocol) とか subroutine signatures とかが入ればもっと楽しいリリースになるんだけど。これだけ見るとあんまり楽しくない感じですね。

tokuhirom: やっぱり MOP とかはいろいろ揉めるところもあるだろうし、て感じなんでしょうね。subroutine signatures は 5.18 にねじ込もうとして失敗して、5.20 でまた仕切り直しみたいな感じなのかなと思ってますけど。

lestrrat: ぼくもたしかそう読んだ記憶があるな。5.20 ターゲットでやってるはず。

miyagawa: それはサブルーチンを定義するときに sub foo() って書いてカッコの中に $ なんとかって書けるっていうことですかね。

tokuhirom: そうです、そうです。

miyagawa: どの辺が揉めてるんですかね。 実装がまだ固まってないということなのかな。

tokuhirom: 仕様ですかね、まだ。そういう段階っぽかったですけど。

lestrrat: スレッドを読んでいるかぎりでは、インターフェイスだけ用意して、後からフックを追加できるようにしろっていう人たちが、今すでにある実装がコミットされるのを阻んでいたっていう感じがしましたけどね。

miyagawa: CPAN モジュールだけで出来るようにしたい、みたいな話でしょう。

lestrrat: そうそう。だからフックだけ入れておいて、中身はデフォルトの何かを入れるかもしれないけど、それはあとで決めろよ的な感じがすごくしましたね。

tokuhirom: けっこう最近の Perl のコアな変更って全体的にそういう、CPAN モジュールでなんかするための穴を開けるみたいなのがけっこう多い気はしますね。

miyagawa: たぶんその MOP とかを入れるっていうのも、今 Moose とかでやってる MOP はすごい Package::Stash だっけ。かなり無理矢理感が強いから、ちゃんとした API とかフックをコアに用意して、CPAN モジュールがそういう黒魔術とか XS をゴリゴリやらなくても書けるようにしよう、みたいな感じだよね。

tokuhirom: そうですね。

miyagawa: まあそれ自体はいいと思って。それもあって次の 5.20 の開発が始まってるんですけど。さっそく次の日ぐらいに、5.19.0 が出てて。もう5万行ぐらいのコードが削除されてて。まあ CPANPLUS が消されたので。CPANPLUS とそれに依存したモジュールたち。

tokuhirom: それがけっこう 5.19 の大きい変更という感じですよね。もうみんな消したくてしょうがなかったんでしょうね(笑)

5.10 で入った時点で、ちょっとこれどうなの、みたいな感じの雰囲気もありましたからね。最初の時点で。

miyagawa: CPANPLUS はぶっちゃけ使ってる人、CPANPLUS の作者以外に知らないから。あと、CPAN テスターのセットアップが CPANPLUS はやりやすいっていうのがあるらしいから、それで使っている人がもしかしたらいるかもしれないけど。

あとは 5.20 に向けて Module::Build っていうビルドpl を使うやつと、CGI.pm をデプリケートして、5.22 で消そうとしているらしい。今。

tokuhirom: そうみたいですね。かなり一番盛り上がってるスレッドかなっていう感じですね。 Module::Build を消すのは。

miyagawa: ただ Module::Build って 5.8 でもコアじゃないから、たぶん消しても何も問題ないんですよね。

lestrrat: なんかFile::Tempか何かが、 Module::Build に変更したのが今ちょっと面倒くさいな、とか言ってるんじゃなかったでしたっけ。

miyagawa: そうそう、File::Tempはコアでビルドするときは Nakefile.PL 使うんだけど、CPAN から入れるときは Module::Build になっちゃって、たぶん古い Perl だと ブートストラップ問題が起きるから、Makefile.PL に変えなきゃいけないかもっていう話をしていた。

この間 tokuhirom がレポートしてくれたやつが、Exporter の何とかっていう最新バージョンを CPAN から 5.8 のすごい古いバージョンで入れようとすると、 Exporter がFile::Tempに依存してて、File::Tempが Exporter に依存してるから、インストールできないんですよね。とかいろいろあるんだけど、まあ Module::Build はたぶんべつに消えても問題ないかな。

tokuhirom: そうですね。今は configure_requires があるから。

miyagawa: どうせどれか、使うモジュールを入れようとしたときに CPAN クライアントが勝手にインストールするのでたぶん問題なくて。

CGI.pm スレッドはね、例によって「いや、Web ホスティングで CGI しか使えない環境があるから」って盛り上がってるんだけど。まあ、消してもいいよね。CGI.pm は。

lestrrat: もういいでしょう。

tokuhirom: 標準添付にしている意味もあんまりないですもんね、今は。どうせ OS のディストリビューターとか、コアなモジュールも入れてくれなかったりするし。そこにはこだわってもしょうがないのかなっていう気もします。

miyagawa: CGI.pm のせいでセキュリティ・パッチとかも年に何回か出たりするしね。ただ一個問題なのは、CGI.pm って CPAN から入れようとすると、なぜか FCGI っていう FastCGI モジュールを入れようとして、それが XS 必須なんですよね。

tokuhirom: FastCGI は Pure Perl バージョンが昔あったけど、消したんですよね、たしか。

miyagawa: 今はないですね。だから C コンパイラがないホスティング環境はさすがに結構あると思うんだけど、それで入れようとすると入らないので。まあ、それは今消す作業をしているみたいですけどね。

tokuhirom: ああ、CGI から FastCGI を。

miyagawa: そう、分離する感じで。正しい対応だと思うんだけど。

tokuhirom: 今の CGI.pm がちょっと変な方向に頑張りすぎてる感じですもんね。FastCGI だったらこう、とか mod_perl だったらこう、みたいなのが。すごいやってますからね。

miyagawa: それはべつにあってもいいけど、コアにある必要はまったくないというか。

15:27

miyagawa: 5.18 とか、ぼくも自分のラップトップで使っているバージョンは先週出たときにすぐ変えちゃったんだけど。プロダクションとかもぼちぼち変えるのか、それとも 5.18.1 とかを待ってからなんでしょうかね。

tokuhirom: ぼくは 5.18.1 が出るまで待つつもりですけどね。

lestrrat: ぼくもわざわざ、今入れる必要性がないので。

miyagawa: さっき言ったセキュリティの話だったら 5.16 系の新しいのとかを使えば大丈夫だという。

tokuhirom: そうですね、今のところは。あんまりとくに、すごく使いたい機能がある、とかもとくにないので。現時点だと 5.16.3 が一番いい選択肢かなという感じですね。

miyagawa: sri(Sebastian Riedel) のツイートで、Mojolicous のアプリで10%ぐらいパフォーマンスがアップしたって言ってて、何も数字が出てなかったので本当かどうか怪しいんだけど(笑)でもそれぐらいパフォーマンスがよくなってるなら、使いたい理由のひとつにはなるかもしれないけどね。

tokuhirom: そうですね。何が原因でパフォーマンスが良くなったのか全然書いてないから、ちょっとわからなかったですけど。

miyagawa: 何なんだろう。コンパイルオプションで速くなるオプションとかあったかな?

lestrrat: なんだっけ、Taint を消すとかなかったですっけ。

tokuhirom: Taint サポートを消すオプションがありますね。それが今回入ったというので。

miyagawa: そういうのを有効にすると、もしかしたらちょっと速くなるかもしれない?

tokuhirom: そうですね。いちいち値を操作するタイミングで Taint フラグをチェックしなくなるから速くなるんじゃないか、みたいな話はしてましたけど。今のところ、誰かが試してベンチマークとったっていう話もとくに聞かないですけどね。

17:30

miyagawa: あとはぼくもこのタイミングで……っていうわけじゃないけど、今までずっと perlbrew を使っていたんだけど、tokuhirom が作ってる plenv に変えてみて。plenv の方が何となく使いやすい感じなんだけど、ちょっと違いを説明してほしいんですけど。

tokuhirom: 違いは何でしょうね…… perlbrew の方が手厚く、パスとかを動的に、環境変数のパスとかを差し替えたりとかそういうことを頑張ってやってる感じなんですけども、plenv の場合は、パスをいじったりとかはしなくて、パスは一個のところを指してて、その指してるところのコマンドが実際のファイルじゃなくてシェルスクリプトになってて、そのシェルスクリプトが実際に実行したいファイルを exec するみたいな感じのディスパッチの仕組みになってて。そこが一番大きい違いですね。

miyagawa: perlbrew は最初はたんに、symlink を張るだけだったと思うんですけど、バージョンが上がるごとにすごいいろんなことをし始めて。すごい複雑な bash 関数とかに(笑)魔術的な感じになってきたよね。

tokuhirom: 魔術的なすごい長いシェルスクリプトが、自分の zshrc とか bashrc とかに書いておくと、それを読み込むだけでけっこう時間がかかっちゃったりして、それでもう無理だなあと思って、それで plenv 作り始めたみたいな感じですね。

miyagawa: plenv は rbenv からたぶんいろんなものを盗んでいると思うんですけど、今も言ったみたいに、シェルスクリプトに書いてあって、あと環境変数一発で切り替えられるのがすごくいいなと思って。perlbrew だと使う前に自分がどのバージョンを使うか、スイッチしなきゃいけないじゃないですか、基本的には。

tokuhirom: そうですね。

miyagawa: それが plenv だと、plenv version っていう環境変数を変えたら全部変わるから、シェルとかでいろんなバージョンをテストしたりするのがすごい簡単。

tokuhirom: そうですね。自分が今実行しようとしているその行だけ、実行する Perl のバージョンを変えたりとか簡単にできるので、そういった意味ではラクですね。

20:04

miyagawa: ただ plenv 自体が Perl で書かれてるから。

tokuhirom: はいはい(笑)

miyagawa: Perl を2回 exec するよね、最終的には。コマンドを実行した場合。だから若干そこが気になる人がいるかもしれないなと思ったんだけど。

tokuhirom: そうですね。宮川さんから GitHub の Issue で来てましたけど(笑) PERL5LIB とかそういう環境変数とかが、plenv 自体を実行するタイミングで効いちゃうから、そこがちょっと困るっていうのがあって。それはシェルスクリプトで全部書き直そうかなっていう感じにはなってますね。で、ちょっと書き直し始めてはいます。

miyagawa: できそうな感じですか? まあ、できないことはないんだろうけど(笑)たんに面倒くさいっていうだけで。

tokuhirom: 元々、Perl で書いてたのは、plenv って、perl-buildっていうスクリプトがあって、その上に成り立ってて。ruby-buildは全部シェルスクリプトで書かれているんですけど、それがたんにバージョンを指定して、そのバージョンの Ruby のインタープリタをあるパスにインストールするっていう機能だけがあるスクリプトなんですけど。それを書くのが Perl だとちょっとしんどくて、Perl 用のやつを bash で書くのがつらいから Perl で書こうと思って。最初は plenv と perl-buildっていうスクリプトは全部一緒だったんですけど、それの名残で今、plenv も Perl になっちゃってるだけなので、あんまり Perl で書いてる必然性はないので。あと rbenv をそのままコピれば動くので、ちょっとそういう感じで plenv は書き直そうかなっていう感じにはなってますね。

miyagawa: perlbrew とか plenv とかを個人の開発で使ってる人はいっぱいいると思うんだけど、実際にプロダクションとかでも使う感じなんですか、plenv とかは。

tokuhirom: plenv は、プロダクションで使うのはたんにオーバーヘッドになるだけなので、あんまり意味がないかなと思いますけど、perlbrew を使ってるっていう話はけっこう聞きますね。

miyagawa: ぼくが前にいた dotCloud とか TravisCI とかもたぶん perlbrew 使っているんですね。

ちょっと思ってるのは、dotCloud とか Heroku とかでもそうなんですけど、Perl のバージョンを指定するための取り決めっていうのが今はあまりなくて。自分のアプリケーションでどの Perl バージョンを使いたいかが、たぶんプラットフォームごとに指定の仕方が変わっているので、plenv が .perl-version っていうファイルを使うんだったら、みんなそれに合わせた方がいいかもしれないなっていう風にはちょっと思ってるんですけどね。

tokuhirom: ああ、なるほど。

miyagawa: そうすると、たとえば Chef とか Puppet とかのものでもそれを使うようにすれば、いちいちこれを使う場合にはこういう風に Perl バージョンを指定しなきゃいけないとか、そういう不便さがちょっと解決するんじゃないかなっていう期待があるんですけど。

tokuhirom: そうですね。

miyagawa: ただ .perl-version に書くバージョンって、本当に Perl のバージョンだけじゃなくて、エイリアスみたいなものも書けるじゃないですか。だからそれを使い始めると、共通性がなくなっちゃうという問題があるよね。

tokuhirom: そうですね。

23:40

miyagawa: plenv は YAPC::North America で発表するんだっけ。

tokuhirom: そうですね。一応 plenv でやろうと思ってますね。手元にある中で一番わかりやすい話は plenv かなという感じなので。

miyagawa: たぶん perlbrew の方が知名度が圧倒的に高いと思うので。それと今のドキュメンテーションだと、perlbrew との違いが、アプリごとにバージョンを固定できるぐらいしか書いてなくて、今いちメリットが分からないので、ドキュメンテーションを頑張った方がいいかなと。プレゼンに合わせて。

tokuhirom: そうですね。perlbrew との比較っていうところだと、やっぱり起動が遅いとか、そういう感じでわりと perlbrew が駄目だっていう話になっちゃうので、そこはちょっと微妙かなと思ってまだあんまり書いてないんですけど。plenv のここがすごい便利、とかとくにあるわけでもないので。機能的には perlbrew の方がいろいろついてはいるので。

miyagawa: でも plenv の方がシンプルだからいいっていう気はするんですけどね。コアなデベロッパーはたぶん plenv の方がいいデザインで、シェルとのインテグレーションもいいんだ、みたいなことを言えばたぶんよくて。そういうのに興味ない人はどっちでも使いやすければいいから、そういう順番で攻めていったらいいんじゃないかって思うんですけど。

tokuhirom: そもそもこれ、コアなディベロッパー向けのツールですからね、基本。plenv にせよ perlbrew にせよ。複数のバージョンで試すっていうのがなければ、そんなにこだわる必要はないというか。

miyagawa: でもたぶん、今 Ruby とかで Rails とか開発しようって思ったら、まず rbenv か RVM 入れろっていうのが大体普通だから。node とかもそうだし。たぶん流れ的にそういうふうになってきてて、もうシステムに入ってる Perl とかを使うっていうのは、コアな開発者じゃなくても使うっていうのはあって、その上でいろんなバージョンをすぐ切り替えられますっていうのはちょっとコア向けになっちゃうんだけど、システムじゃない Perl を簡単にすぐ使えるっていう意味ではマスな開発者にアピールできる機能だと思うんですよね。

lestrrat: YAPC::NA でそういう話をぜひしてもらいたくてせっかく送り込むのに、今年はぼくは YAPC::NA に行かないという、すごく残念な状況になっているんですよね。

miyagawa: 元々行く予定だったんじゃないですか。

lestrrat: そうだったんですけど、ちょっと家庭内の問題で行けなくなってしまったので、お任せするんですが。本当はこれまで2回 YAPC::NA に行ってて、毎回何らかの形で tokuhirom のモジュールとかのゴリ押しをじつはしていて、現地で。そのときに、知らない機能とか、ドキュメントに書いてなくてよくわかってないことがあるじゃないですか。ぼくはただのユーザーだから。それを説明するのに本人がいてくれたらなあっていうことが何回もあったのに、今回はそのチャンスがあるのに行けないという、すごくもどかしい状況なんです。

miyagawa: ぼくもそのとき日本にいるから行けないんですけど、tokuhirom と、この間出てもらったゆーすけべーも行くみたいだから、頑張ってほしいですね。

tokuhirom: あと @xaicron も行くのかな。LT のネタを必死で考えてるって言ってました。

27:30

miyagawa: YAPC ネタが出たので、日本の YAPC::Asia の話もしたいんですけど。まだチケットとか、スピーカーの募集とかはまだしてない感じですか。

lestrrat: スピーカーの募集は、何も問題がなければ明日オープンします。今年は4トラック用意するので、若干枠が増える予定です。

tokuhirom: おお。

miyagawa: 去年は3トラックでしたっけ。

lestrrat: 3です。ずっと3。

miyagawa: で、日数は2日間。前夜祭みたいなのも含めると3日間。

lestrrat: 前夜祭は毎年あるので、今年もあります。

miyagawa: フルでやるのは2日間で、それが4トラックっていう。だいぶ、30%ぐらい増えるってことですね。

lestrrat: そうですね。まあそのうち一つとかはハンズオンな、Intro to Perl みたいなやつをやる予定で、それで若干減るので、プラス30行かないまでも 10%〜20% ぐらいは行く感じですかね。

miyagawa: JPA 体制で YAPC をやってから、もう3〜4年やってもらってる感じですけどね。

lestrrat: ええと 5回目? もしかして。5回目ですね。もういい加減飽きましたよ(笑)

miyagawa: とか言いつつ、毎年やる感じなんじゃないですか?

lestrrat: ん〜。やってくれるならいくらでも代わりますよ(笑)

miyagawa: この間、カンファレンス運営者のためのカンファレンスみたいなのがあって。食べ物の話題が出てましたけどね。

tokuhirom: 揚げ物とビールの話ですよね。

miyagawa: カルパッチョは要らないっていう謎の主張がされてましたけどね。

lestrrat: 去年とか来た人はわかると思うんですけど、去年はわりと豪華だったじゃないですか。まあ豪華なぶんには嬉しいんですけど、けっして参加者が求めているものではないとは思うんですよね。

miyagawa: 食べ物とかが?

lestrrat: だって、毎年ワインは余るし、日本酒も余るんですよ。だけどビールは追加注文しなきゃいけない。とかとかあるので、もう4〜5年やってて、経験則で言うと、もう皆さんは基本的に、ポテトと唐揚げとビールが欲しいのかな、と思っております。

miyagawa: なんでポテトと唐揚げなんですか。

lestrrat: そこはちょっとセットかなと思ってるだけなんですけど(笑)

miyagawa: 東工大の寿司は良かったですけどね。

lestrrat: あそこはすごく融通を利かせてくれていいんですよね。残念ながら、大学の学食というところを出てしまうとあまり自由がないんですよ。

miyagawa: じゃあ今年は、宴会は HUB でやるんですか。そういうわけじゃなくて(笑)

lestrrat: HUB は残念ながら300人入らないので。今回やるところは、慶応大学の日吉キャンパスというところで、そこの比較的新しい、5〜6年前にできたようなところで、協生館っていうんですけど、そこは HUB とかがある他に、2階に結婚式の披露宴みたいなことをやれるスペースがあるんですよ。なので、そこでやります。大体300人ぐらい入りますね。こちらもタダです。

miyagawa: カンファレンス自体の規模としては、300人よりもっと多いわけですよね。

lestrrat: 一応目標は1000人ですね。去年840ですから。

miyagawa: どこを目指してるんだっていう話もありますけどね(笑)

lestrrat: まあねえ、毎年そこは櫛井さんと話すんですけど。ここ4年ぐらいは二人で、向こうが主に企画とかそういうことをやって、ぼくがお金まわりとかをやってる感じで分担をしてるんですけど。その櫛井さんといつも話すんですけど、拡大するのか、それとも一回縮小して方向性を考え直してみるのか、いろいろ考えているんですけど、今のところ、今年までは、毎年ちょっと拡大路線で頑張ってるんですけどね。

miyagawa: 単純な視点で言ったら、数が減るよりは裾野が増えた方がいいわけですからね。

lestrrat: そうですね。だからどちらかと言うと、数を増やして、その代わり今まで来たことのないメンツをどんどん増やそうっていう方向でいろいろ頑張ってる感じですね。

miyagawa: 3週間ぐらい前にポートランドであった RailsConf っていうところに行ったんですけど。そこはもう規模がすごくて。たぶん1500人ぐらい来てたんじゃないかと思うんですけど。やっぱり Rails とかになるとマスへのアピールがもっとすごいから、そのぐらい来ても不思議はないんですけど。会場はオライリーの OSCONと同じところを使っていて、ただ部屋の数が半分ぐらいにはなってるんですけど、会場の規模としては全然それをさばくには問題ない規模だったんだけど、トラックが3つしかないんですね、たしか。3つか4つ。1500人とかいるカンファレンスで、3つとかのセッションになると、一番小さい部屋でも200〜300人なんですよ。だからトピックがけっこう難しくて。選ぶ方も喋る方も、たぶん面倒くさくて。ニッチな話がすごくしづらい雰囲気なんですよね。

この間の RailsConf の Podcast でも話したんですけど、たぶん全員が面白いと感じるトークって、あんまり面白くないと思うんですよ。30人ぐらいしかわからないんだけど、すごく濃くて面白いみたいな話のトラックが一個はほしいなっていうのがあって。だから規模を大きくしても、そういうネタがあってもいいし、あとそういう小さい部屋とか、そういうのがあればいいかなって思ってるんですけど。

lestrrat: まあその辺は、今年も大丈夫です。一番大きいところは450人だけど、一番小さいのは60人ぐらいなので、わりといい感じかなと思ってます。

あと、あんまり誰もが聞きたいネタじゃないっていう話で言うと、これはまだ企画段階なのであまり詳しいことは言えないんですけど、裏YAPC というか、大人の YAPC みたいなのをちょっと、時間外にやりたいなと思ってて。それはぼく一人じゃできないから、他の人と共謀してやろうと思ってるんですけど。あんまりオープンじゃなくて、ここで話したことは Web とかには書かないでくださいね系の話を1〜2時間できないかなって思ってて。ちょっとそういう新しい試みをやろうと思っています。

miyagawa: なるほどね。トークを募集するときに、何かテーマ的なところとかあるんですかね。

lestrrat: それも毎年考えながらやってたので、今年はちょっと前に、Perl 5 Census Japan っていうのをやったついでに、YAPC で聞きたいトークっていう設問をこっそり入れておいたらみんな真面目にいっぱい答えてくれたので、それをまとめて、みんな聞きたがっているのはこの辺のトークのリストですよっていうのをトークの応募ページに書くようにしてます。

miyagawa: 新しいというか、意外だったトピックとかありました?

lestrrat: 意外だったトピックはねえ、意外とみんな Perl 6について聞きたがってた。

miyagawa: へえ。

lestrrat: びっくり。なので、それも一応入れておきましたけど、あとは意外ではないけど、みんな聞きたいんだろうなと言いつつあまり出てこないのは、レガシー系のシステムをどうやっていくのかっていうのと、あと実際の、それも含めた事例。みんな事例を聞きたがっているのはすごくわかりましたね。

miyagawa: ただ YAPC::Asia は、North America とかヨーロッパに比べると、だいぶ事例の話が多いですよね。

lestrrat: うん、そうかも。

miyagawa: ただ事例っていうのと運用の話っていうのが、密接している場合もあるし、あまりレガシーネタには行かないパターンもけっこう多いしっていうので、全部はカバーしきれてはいないのかもしれないですけどね。

lestrrat: そうですね。あと意外に少なかったのは、みんなそんなに PSGI/Plackについては聞きたくないらしいですね(笑)もう浸透したってことなんでしょうね。

miyagawa: もう充分聞いたと。

lestrrat: あと何があったかな。細かいので言うと、ビッグデータとか、数値計算系? PDL みたいな話とか。

tokuhirom: ああ、ありましたね。PDL は情報が少ないですね、日本語だと。まあ海外でも情報があるのかは知らないですけど(笑)

lestrrat: 去年、YAPC::NA で PDL の話を聞きましたけどね。便利そうだったけど。

tokuhirom: PDL の人からバグレポートをもらったりしたこともあるので、一応アクティブに活動してるんだなと思いましたけど。

lestrrat: たぶん用途が合ってればガリガリ使えるんでしょうけどね。まあでも、そんなものかな。

miyagawa: 海外とかだと、Perl、Web ももちろんそうなんだけど、4〜5年ぐらい前まではバイオ系とかでけっこう使われたりしてたんですけど、ぶっちゃけ最近は Python にかなり押されがちというか。数値計算とかバイオ系もほとんど Python が主流になりつつあるみたいで。

Perl もそういういろんなところで、じつはけっこう使われてるっていうのはあって。アメリカとかだと、たとえば USA Today っていう新聞があるんですけど、そこの校正するシステムとかが Perl でできてるみたいな話とかがたまにライトニングトークで出てきたりして。ただ YAPC::NA ってそういう事例トークが少なかったりするから。そこの違いがけっこう面白いんですけどね。YAPC::Asia と両方行ってると。

lestrrat: たしかに。

38:20

miyagawa: RubyKaigi にぼくも来週行くんですけど、今週かな。RubyKaigi は規模を拡大する方向ではなくしたみたいで。拡大すると、来たい人が来れなくなるっていうこともあって、ちょっと値段を上げて、本当に来たい人だけ来れるようにしたっていう。それでも、ほとんどソールドアウトに近いような感じにはなってると思うんですけど。まあ、行けるところまでとりあえずやってみて、という感じですかね。規模的な話で言うと。

lestrrat: そうですねえ。正直、全体のサイズっていうか、そろそろ予算の管理ができなくなるんじゃないかっていうのが若干ありますけどね。

miyagawa: あと会場を探すのも大変じゃないですか。

lestrrat: もう、いつ幕張に行くのかワクワクしてますよ(笑)

miyagawa: この間、会場の写真がブログに上がってましたけどね。さっきもちょっと話したけど、芝生とかもあるし、HUB があるし(笑)

tokuhirom: Twitter とかだと反応が HUB ばっかりでしたけどね。

miyagawa: あれホームページみたら、日本国内初って書いてありましたけどね。「日本国内初キャンパス内のイギリス式パブ」って書いてあったので。どれが日本初なのかなって(笑)キャンパス内のイギリス式パブって言ったらすごい絞られるからね。まあそうなのかなって思うんだけど。

正直、去年の会場はちょっと座るところが少なくて、床に座らないといけない感じが多かったので。それがかなり改善されてそうな気がしたので楽しみですけど。

tokuhirom: けっこう会場の脇の所で座り込んでる人がいましたね。会場の出口の外のところで。

miyagawa: 去年は LT ソンっていう、一日中ライトニングトークやってるところなんかもあって、よかったんですけど、ダベって話すのにはあんまり向かない感じの構造だったかなって思って。東工大のときだと、会場間にちょっと移動があって、そこに芝生とかご飯食べるところとかあるから、そういうコミュニケーションがしやすかったかなと思うんですけど。

lestrrat: 今回は座るところはあるけど飲食は駄目だから、そこだけ気をつけてくれれば後はいいかなっていう感じですね。

miyagawa: ちょっとでも会場を出ればいいわけですよね、それは。

lestrrat: それで OK です。でも去年に比べたらはるかに自由度は高いですね。去年は諸事情により、だいぶ自由度が低くて申し訳ありませんっていう感じだったんですけど。

ここ最近の YAPC って、あまり Perl 色を強く出さないようにしていて。Perl って言葉を一回は言ってね、とはいつも言ってるんですけど、それ以外はべつにいいかなと思ってて。というかそういう所こそ、わりと Perl のコミュニティっぽいかなと思ってて。わりとみんな、Perl 好きだけど、Perl もうどうでもいいと思ってるでしょ(笑)だからそういう感じで、絡めてはほしいけど、それについて話す必要はないかなと思ってるという感じですね。

だから今年も、あえて煽り文句に Perl という言葉を入れずに、エンジニアのお祭りっていうことにしました。

tokuhirom: Perl の話も多い方がいいですけどね。

miyagawa: 先週の Podcast でも、Perl の YAPC と、Ruby 関係の違いがけっこうあるなと思ったのは、RubyKaigi に来る人は超 Ruby ラブなんですよね。だけど、YAPC に来る人はそうでもないっていう人もけっこう多くて。そうでない人が多いし、かつ Perl 開発者のぼくらとかも、Perl は好きなんだけど、Perl じゃないのもけっこうやったりするから、その辺の言語に対する距離感がだいぶ違うというか。

lestrrat: あんまり熱烈な人は来ないので、熱烈に Perl イベントにすると逆に、ちょっとチケット売れなくなるかなっていうぐらいの(笑)

まあどうなんですかね、ぼくと櫛井さんのペアでやっているかぎりはそういう方向性になっていくとは思いますけど、ただ、それが正しいものかはわからないから、他にもいろいろやってくれる人が、一緒にやってくれるといいなとは思うんですけどね。

miyagawa: RubyKaigi とかもちょっと似てるんですけど、YAPC があったときに、その次の週とかに、東京とか横浜とか、どこでもいいんですけど、首都圏でちっちゃい感じのもうちょっとコアなイベントをやるとか。そういうのを分けてもいいかもしれないなっていう。

lestrrat: たしかに。ただそこまでは面倒見切れないので、誰かやってほしいな。

miyagawa: 便乗してやる人が出てくるとちょうどいいんですけどね。

lestrrat: せっかくいろいろやってブランドも立ち上がっているので、うまくこの尻馬に乗ってやろうって思うぐらいの野心家が来てほしいなとは思いますね。

miyagawa: (Twitter の反応を見て)「それハッカソン」。ああ、ハッカソンとか今年はどうなんですか?

lestrrat: 相変わらずぼくらがやるには手が足りてないということで、オフィシャルにはやりませんけど、サポートできることがあればやりますけどね。

tokuhirom: なんだかんだで毎年やってはいる感じですよね。大体毎回ぎりぎりになってから決めてますけど(笑)

miyagawa: だいたい前日とかに場所が決まったりするから。でもけっこう、この間ぼくが3週間ぐらい前に日本に行ったときに、QA ハッカソンっていうモジュール関係の作者とか、そういうツールチェーンを開発するハッカソンをやったんですけど。会場とかも貸してもらったりして。100人は無理かもしれないけど、50人前後とかだったら、貸してくれる会社さんもけっこうね、今までの例で言うと、mixi とか、この間借りたのはフリークアウトとか、LINE とかも貸してもらえると思うので、環境としてはやっぱり東京はそういうのをやりやすいですからね。

lestrrat: そうですね。すごくやりやすいと思います。だからそれこそ手を挙げれば、わりとガンガンやれる材料は揃っているので、やるべきだなと思いますね。

miyagawa: YAPC::NA もそうなんですけど、Hallway Track って言って、ようはセッションを見ないでひたすら外でダベってるっていうのも全然ありなので。それが目的で行く人もけっこういますからね。

海外だと、行くのにもフライトとかかかっちゃうけど、日本だと東京の人が多いし、そうじゃなくてもそんなにフライトがバカ高いわけでもないですからね。

lestrrat: みんな気軽に来て、気軽に喋っていってくれればいいと思うんですよね。日本で Hallway Track をもうちょっとやれればいいなと思うんですけど、そういう施策もやろうかなと思ったんですけど、結局みんなシャイだから、俺らが頑張ってもどうなのかなっていうのもあるんですよね。

miyagawa: さっきのハッカソンの話もそうだし、運営側がやれっていうのじゃなくて、そういう雰囲気が醸成されていくのが一番いいですよね。

tokuhirom: 気軽にたとえば HUB で、今いるからおいでよみたいな感じで BOF とかやるとか、そういう感じとかなんですかね、今年だと。

miyagawa: 2年ぐらい前かな、オースティンでやったときに……マディソンかな。去年の。ストリーミングしてたんですよね。トークを。たぶん YAPC::NA としては初めてだったんですけど。で、ぼく去年そのときに、ワールドカップだったか……

lestrrat: 違う、ヨーロッパ(笑)

miyagawa: ああ、EURO2012 ね、FIFA の。それをやってたから、パブに行って、TV をそこで見ながら、PC で YAPC を見るってことをやってましたけどね。それは面白かったけど。

lestrrat: 俺その場にいたけど、それは上級者にしかできない(笑)

tokuhirom: あまり素人にはお勧めできない。

lestrrat: お勧めできない、できない。

miyagawa: YAPC::Asia の場合はとくに、スライドとかトークのビデオが3日ぐらいしたら上がるからね。だから本当にただ見たいだけだったら、べつに後で見ればいいわけで。やっぱり来て質問したりとか、会って話したりするのが一番でかいですよね。

lestrrat: 運営側からできる一番いいことは、壇上に立って喋ってる人たちは、みんなが言うほどモヒカンじゃないっていうことをね、教えてあげることだと思うんですね。

miyagawa: tokuhirom とかね、モヒカンな雰囲気出してるからね。

tokuhirom: そんなことないです(笑)

でも壇上とのコミュニケーションっていうことで言うと、昔に比べるとわりと気軽に、トークしてる最中に質問してくる人とかは若干増えてるかなっていう気がしますけどね。

lestrrat: あ、本当ですか。それは素晴らしい。

tokuhirom: 昔に比べると、ですけどね。

lestrrat: ぼくはほら、運営じゃないですか。だからトーク聞けてないんですよ。実際にどういう雰囲気なのかわからなくて。もしそうだったら嬉しいけどなあ。

miyagawa: 会場がやっぱりでかくなっちゃうと、ツッコミしづらいっていうのはありますけどね。あと最後の終わったときの質問っていうのも注目を浴びすぎるから、そこで手を上げて質問じゃなくて、終わってから直接話しに行くっていう。それはそれでいいんですけど、けっこう話してる方からすると、質問どんどんしてほしいんですよね。

lestrrat: そうそう。

tokuhirom: 手応えないですからね。

miyagawa: 日本と、あと台湾もそうなんですけど、台湾は言語の壁も若干あるとは思うんだけど、トークし終わった後に質問がないと本当に喋っている人は寂しいので。本当にしてほしいんですよね。切実に。

lestrrat: すごいしてほしい。

miyagawa: 本当に皆さんが思っている以上に、ぼくだけじゃたぶんないと思うんですけど、トークし終わった後に一個も質問なかったら本当にへこむから。

tokuhirom: そうですね(笑)刺さらなかったかなっていう感じがしますね。

miyagawa: だからみんな質問をしようっていうのがありますね。

(Twitter の反応で)「dankogai さんしか見たことがない」っていうツッコミが入ってますけどね。

tokuhirom: そんなことない(笑)まあ、LT のときに質問するのは弾さんぐらいかもしれないけど。

lestrrat: それはそうだ。

miyagawa: LT のときの質問は若干ちょっとね、しないほうがいいよね。

tokuhirom: けっこう5分に一生懸命喋ってる人もいますから。

miyagawa: そこでいきなり質問されて、え、ってテンポが変わっちゃうとね。

lestrrat: へこむのもそうだし、けっこう言い忘れたこととかもあるから、それが質問によって意外と呼び起こされることもあって。

miyagawa: あるある、それはありますね。

lestrrat: だからみんなトクすると思う、質問してくれた方が。

miyagawa: 話す人は全部わかってるから、なんか飛ばしちゃっても、わかってるだろうと思って話してるんですよね。だから聞いてる人が疑問に思ったということは、話す人が忘れたか、ちゃんと説明しきれてなかったっていう可能性が大きいから、それを質問するのはすごくいいことなんですよね。

(Twitter を見て)「今回の教室は奥行きが少ないから質問しやすいと思う」というコメントがあります。

lestrrat: これはスタッフです(笑)たしかにね、若干去年とかに比べると奥行きがなくて横に広いから、スピーカーと近いんですよね。

miyagawa: OSDC 台湾の会場がけっこうすごくて、メインホールは300人ぐらい入るのかな。

tokuhirom: 相当広いですよね。

miyagawa: 国際会議場なんですよね、場所が。で、一個一個の席にマイクがついてるんですよ。だから質問するときはボタンを押して質問すると、手元のマイクから質問できるっていう。それはけっこうよくて。

lestrrat: それは素晴らしい。

tokuhirom: あれは楽しいからついやりたくなる(笑)

miyagawa: そうそう(笑)あれやると、会場のスタッフの人が、あれは親切でやってるのかわからないけど、前にあるスクリーンにスピーカーが映って、質問者がピクチャーインピクチャーで右下の方に出てくるんですよね。

lestrrat: カッコイイ!

そういえば質問で思い出しましたけど、今年の YAPC に同時通訳入れるかどうかでまだ迷ってるんですけど。コストがすごいんですよ。

miyagawa: RubyKaigi は入れるって、ちらっと Twitter で見かけた気がしますけどね。

lestrrat: 気持ちとしては入れたいんですけど、ぼくは財務省なのではっきり言わせて頂くと、お金がないんですよね。なので、こういったところをサポートしてくれるスポンサーがこれを聞いてくれていたらすごい嬉しいなあっていう。

miyagawa: いま RubyKaigi を運営してる角谷さんから「 RubyKaigi は同時通訳を入れますよ」ってツッコミが入ってますけどね。

lestrrat: お金がほしいな(笑)

miyagawa: けっこう、話す内容をちゃんとわかってくれて通訳してくれないといけないわけですよね。

lestrrat: そうなんですよ。だから安いところに頼むのではなくて、けっこうちゃんとしたところにお願いしなきゃいけないことは必須なので。

miyagawa: RubyKaigi でも、スピーカーのほうから事前に資料を出さないと通訳が難しいので、普通はみんな当日にならないとスライドを上げないじゃないですか。だからそこの準備がだいぶ、スピーカー側にもちょっとつらい雰囲気があるかもしれないですね。

lestrrat: そう。まあでも今回は正直、日本人の発表を英語にするのは諦めているので。あくまでゲストの発表を日本語にするっていうことですね。

miyagawa: まあ YAPC だと、みんな日本人もスライドは英語で大体書く人が、言わなくてもやる人が大体多いから。興味があって英語しか喋れないで来る人ももちろんいると思うんだけど、そっちよりもやっぱり、海外ゲストの方が大きいのかな。

lestrrat: そうですね。

miyagawa: たぶん今年は Ricardo Signes と Paul Fenwick と、Matt Trout でしたっけ。ぶっちゃけ Ricardo は大丈夫だと思うんだけど、他の二人はけっこうアクセントがきついんですよ(笑) Paul はオーストラリアで、Matt は北イングランドなので、まあ、ぼくでもちょっとつらいぐらいだから。

lestrrat: ぼくは正直 YAPC::NA の Matt の話はよくわからなかった。

miyagawa: IRC で英語をポストするだけでもいいかもしれないですね。スクリーンに出すみたいな。何年か前にやりましたけど。ないよりはマシぐらいの話で。

lestrrat: ただやっぱり、カジュアルな参加者を増やすためには、そういうところをやらないといけないかなって思ってるんですよね。

miyagawa: Ricardo は今、Jesse から引き継いで Perl 5 のPumpkingをやってるんですけど、あと Paul もけっこう、Perl の開発者としては有名ではないと思うんですけど。

lestrrat: スピーカーとして有名な人ですよね。

miyagawa: Perl としての有名度で言うと autodie とかの作者なんだけど、それよりも OSCON とかで毎年キーノートしたりとか、YAPC::NA でもすごい面白いトークをしたりしているので、それが面白いかなと思いますね。

55:20

miyagawa: YAPC は Twitter のアカウントが @yapcasia があるんですけど、サイトは http://yapcasia.org/ で、たぶんスピーカーの募集とかもそこでやるんですよね。

lestrrat: やりまーす。

miyagawa: あれはメール登録とかもあるんですかね。

lestrrat: お知らせのやつがありますね。

miyagawa: あれに入ってると、早くお知らせが来ると。チケットの発売もそういう意味ではもうちょっと後になるんですかね。

lestrrat: トークがある程度そろってからですね。

miyagawa: 楽しみにしております。 tokuhirom さんは YAPC 頑張ってください。アメリカの方。

tokuhirom: はい、頑張ります(笑)

miyagawa: じゃあそんなところで、ありがとうございました。

lestrrat, tokuhirom: ありがとうございましたー。


Transcribed by Hiroaki Kadomatsu http://d.hatena.ne.jp/note103

Download Transcript