昨年12/22(月)に、
第16回目となるPerl Beginnersを開催しました。
会場はもはやおなじみになりつつある「東京都中央区立京橋区民館」です。人数の都合上、当日急遽18名上限の5号室に変更となりました。
なお、今回のテーマは「webアプリのいろいろ」というものでした。だいぶ枠の大きいテーマですね!
※ちなみに今回は主催ができるだけ覚えている範囲で書いておりますので、記憶違いや抜けなどがあるかもしれません。。。
Perl成分薄め?の基調講演
PerlビギナーになぜDockerをおススメする理由として「環境を壊しまくっても作り直せばいい」「意外とシンプル」等を挙げ、かなり単純なPSGIアプリを例に、デモを交えて実際の利用法を解説しました。
もしこの発表をきっかけに実際に手を動かして試してもらえたら、主催としてこれ以上なく幸いなことです。
ライトニングトーク
Recorder.js というjavascriptライブラリを使ったブラウザでの音声録音の試みというのは、大変興味深いものでした。また、録音したデータのバックエンドに無料CDNのCloudFlareを使うよう改善をしていったのも、時代を先取りしている構成で、良いなあとおもいました。
ちょうど直前にGnuplot-Builder-0.27をリリースしたそうですが、それとは別のbusybirdというプロダクトに「use v5.8.0つけたほうがいいよ」という指摘を受け、ワンライナーで付加していくという内容でした。perlの実行時オプションに -pというのがあり、それが有効時に$.で行番号を取得して、条件に利用する、というテクニックは、さすがにすぐには出てこないものだと思いましたが、このように書き捨てのスクリプトにはうってつけですね。
まずOtogiri::Plugin::AutoReconnectの実装方法で悩んでいたという背景事情があり、その際、トランザクションの最中に再接続が発生した場合や、Prefork型のアプリケーションでどうするか、という問題点が考えられたそうです。
これらへの対応方法はそれぞれ、「トランザクション中では再接続せず、例外を投げる」「親側で $dbh->{AutoInactiveDestroy} = 1 しておく」というやり方でできる、ということでしたが、Tengを使うか、先述の対応方法を意識してTengのコードを読むのが良いのではないか、というまとめでした。
普段TengなどのORMを使っていると、無意識の領域となりがちな部分なのですが、改めてみてみるとまた興味深い内容だと思いました。