London Perl Workshop 2016に行ってきた
tl;dr: It was really awesome (again)! A big thank you to the organisers and the speakers and everyone.
YAPC::Hokkaidoの前週ということで悩ましくはあったのですが、もろもろありまして、2016年12月3日にロンドンで開催されたLondon Perl Workshopに行ってきました。資料はそのうち公開されていくと思いますが、ひとまず参加できたセッションの情報をごく簡単にまとめておきます。
Custom Keyword Plugins
Paul Evans氏によるKeyword Plugin (Perl 5.12で導入)、Custom Op (Perl 5.14で導入)まわりの話。仕組みについて解説した後、Keyword::Boolean、Switch::Plain、Function::Parameters、Kavorka、Syntax::Keyword::Tryなど、この機構を使ったモジュール群を紹介し、Keyword PluginやCustom Opを使えば5年前のPerlにも機能を追加できて胸熱だからもっとみんな使ってみるべきだ、という話に。氏にはトーク後にもいろいろ話をうかがったのですが、Perlのソースコードを読むと内部の詳細に引きずられやすいので、参考になるモジュールのソースを読んだ方がいいとか、Perlをもっとよくしていくには、公開されている機能をギリギリまで使い倒して、できる人たちに「そんな無茶なやり方よりもっといい方法がある」と言わせるといい、という話にえらく納得感があったことでした。
ちなみに彼が最後に書こうとしていると話していたFuture::AsyncAwaitについてはp5pのメーリングリストに概要がポストされています。
Making the 'First Hard Thing' easy ? HTTP Caching done right
来年のYAPC::EUのオーガナイザであるTheo van Hoesel氏によるHTTPキャッシュ関連モジュールの話。キャッシュを正しく扱うのはなかなか難しいということで既存のさまざまなモジュールの問題点を指摘した後、氏の書いたHTTP::CachingやDancer2::Plugin::HTTP::ConditionalRequestの話に。
Making your website seem faster with HTTP/1.1 and HTTP/2
Leon Brocard氏によるHTTP 2.0まわりの解説。最後に『ハイパフォーマンス ブラウザネットワーキング』をおすすめしていました。
Web development and Perl 6
Stefan Seifert氏によるPerl6でウェブアプリ開発を、というネタ。Perl6のフレームワークなどの現状説明(クリスマス以後にも更新されているものは少ない等々)から、氏の書いたInline::Perl5を使えば(2年前にもネタにしていた)Catalystに限らず、DancerやMojoliciousもちょっと工夫すれば使えるので(=>や{ }はp5とp6で意味が異なるので直す、等々)、適材適所でやっていこう、と。
GDPR for Developers
春にQA Hackathonでお世話になったJJ Allen氏によるEUの一般データ保護規則(GDPR)とそれが開発者にもたらす影響についての話。個人情報は「もらったもの」ではなく「借りているもの」として扱うべし、という大原則から、預かる前には許諾を求めるとか、請求があったら返却する、返却したものを手元に残さない、なくしたら報告する、等々の制約を実現するにはどのようにアプリを設計していかなければならないか(たとえば、許可を得たかどうかという真偽値をDBに保存するだけだと情報開示の要件を満たせなくなるので、もっと複雑なメタデータとして保存するとか、単に情報を削除するだけだとデータの整合性に問題が起こるだろうから、データは消すのではなく復号不能な形で匿名化するようにした方がよいとか)、という話に。バックアップやログの扱いなど、まだまだ考慮すべき点は多そうでしたが、この件は対岸の火事とはいえないので、もう少し深掘りしておこうと思ったことでした。
Optimizing your Dancer2 and Plack apps
Sawyer X氏によるDancer2アプリの高速化の話。XSモジュールを入れようとか、速いサーバを使おうとか、静的ファイルは前段階でサーブしようとか、モジュールは事前ロードしようとか…たまに首をかしげたくなるものもありましたが、まあ、おなじみの話ですね。Dancer Advent Calendarの12日目、13日目、14日目、15日目に関連する記事が公開されています。
How does CPAN work?
QA Hackathonなどで何かとお世話になっているNeil Bowers氏によるCPANおよびCPANを取り巻く各種システムに関する初心者向けの解説。
The raptor and the butterfly
mst氏がYAPC::EUで話したネタの再演+後日談。Perl5環境にPerl6を入れるためAlien::Rakudo、Alien::MoarVM、Alien::NQPなどを作ろうとしていろいろ苦労したので、同じことを何度も繰り返さなくて済むようにObject::Remoteを使ってインストール済みのPerl6を外部から利用できるようにしたという話。試してみたい方は氏のサイトから6servまわりを一式落としてみるとよろしいかと。管理にはApp::opanという同氏作のツールが使われています。さらっと流されていましたが、簡易サーバがついていたりと便利そうなツールでした。
Teaching programming: let's do it right
Juan Julian Merelo-Guervos氏が21世紀にふさわしいプログラミング教則本を書きたいということで目次などを示しながらいろいろ提案されていたのですが…この辺は前提となるターゲットや学習曲線の設定次第でいかようにもなるよなあという感じ。
Error(s) Free Programming
David Cross氏がYAPC::EUで話したネタの再演。英語として適切なエラーメッセージを出すにはDamian先生作のLingua::EN::Inflexionを使うといろいろはかどるよ、という話。最後にはDamian先生グッズを買うとThe Perl Foundationにチリンチリンとお金が入るのでよろしく、と。
自分の発表資料
私自身は開催一月前になってもまだ行くかどうか決めかねていたためトークの応募などはしていなかったのですが、前夜祭で煽られたこともあって、当日飛び入りでPERL_JSONB_BACKENDの仕様変更をアナウンスするLTをさせてもらいました。
また、YAPC::Hokkaido向けに、今春Perl5のPumpkingになったSawyer X氏や、Elizabeth Mattijsen、Stefan Seifertの各氏からPerl5、Perl6の情報をうかがったりもしました。入れなくてもいいかなあと思っていたPerl6のUnicodeネタを入れたのはElizabeth Mattijsenさんの助言によるものです。Veel dank!