YAPC::Asia 2014 行ってきた
YAPC::Asia 2014に行ってきました。 2日目しか参加してないです、まじすいません。
会場について
- 個人的には日吉は家からめちゃくちゃ近いので助かるなあ。
- コーヒースペース サイコーでした。 お菓子めっちゃ食べてすみません。
- 飲食できるのがイベントホールのみっていうのがちょっと厳しかったかも。 でも幸い雨降らなかったので外出ればよかったんですが。
「オープンソースの開発現場 -Perl 5.20のSubroutine Signatureが来るまでの奮闘の軌跡-」 by 牧さん
- 2012年にMartiniさんという方がsubroutine signature機能導入の提案をp5pメーリングリストに投下してからPerl 5.20で採用されるまでの経緯を解説。
- こういったパッチを投下するともう人格攻撃と言えるようなdisりや本筋と関係のない脱線を含む返信がドカンと返ってくるのが(特に海外のOSS開発MLでは)定番みたい。
- 特にPerlは歴史が長くて老練の技術者がたくさんMLにいるし。
- なのでそういった返信に大人の対応をしつつ、開発者が「しつけーなこいつ!」って思うほど辛抱強くパッチを修正して送り続けることが大事なんだとか。
- Martiniさんの最初の提案はメタプログラミング用のAPIも備えるようなものだったらしい。
- だけどそれをやると@_をいじるハックとかと相性がよくなさそう。
- あとprototype組み込み関数を拡張することでsignature情報を取り出すとかで、このへんも互換性に関してはアブなそうに思える。
- いろいろあって最終的には今の「@_をチェックしてmy変数にバインドするコードを動的生成」といった無難な仕様に落ち着いた。
- ただし、この仕様の実装はMartiniさんのコードではなく、100% 他の人が書いたものだとか。
- き、厳しい(´・ω・`)
「Plack for Fun and Profit (But Mostly Profit) 」 by Saywer Xさん
- Booking.comは超巨大Webサービス。
- 15年モノのレガシーPerlコードが山のようにある!
- Plack/PSGIとかクールだし開発効率上がるんだけど、レガシーコードも捨てるわけにはいかないんだよ、お前ビジネス分かってんのか? っていう話。
- 前段にリクエストをさばくルーターのようなフロントエンドをかませて、
レガシーなコードにもモダンなコードにも適宜振り分けられるようにする、というのがやっぱり基本になるみたい。
- レガシーコードをPSGIアプリにするラッパーなんかも作ってる?
「Perl5 meta programming」 by karupaneruraさん
- string eval, typeglob, symbol tableあたりを使ったメタプログラミングテクニック
- typeglobの扱い方とかすぐよく分からなくなるので、Package::Stashモジュールは便利そうだと思った。
「Mobile Application Development for Perl Mongers」 by ninjakunさんとgfxさん
「そんなにビッグでもないデータ処理手法の話」 by tagomorisさん
- 一発のクエリで扱うデータのサイズでどういう手を取るかを考えるべき。
- そんなにビッグでもないデータは
- 1マシンのメモリに全部乗せるにはちょいとキツい。
- 1マシンのディスクに乗せることはできるけどそれだとパフォーマンス的にキツい。
- なので分散処理をやりましょうという話、かな?
- 処理内容によってボトルネックは変わってくるのでそれに合ったプロダクトを使うべき
- 検索処理ならI/O intensive
- 機械学習やグラフ処理はCPU + メモリ intensiveになりがち。
- Hadoop MR代替ブツはたくさんあるけど、なんだかんだ言ってMRは安定してるし、基本。 ですよねー
- ちなみにMRv1はもうオワコンだからMRv2使っとけだとか。 えー