Shibuya Perl Mongersテクニカルトーク#14に行ってきた

多分5年ぶりぐらいにShibuya.pmに参加してきた*1
個人的に気になったところをメモ。

詳細な解説はid:hirataraさんのメモを参照されるのがいいと思います。

http://d.hatena.ne.jp/hiratara/20100930/1285815873

Perl6 Language Update by 小飼弾さん [twitter:@dankogai]

Perl6新機能の紹介。FizzBuzプログラムをとして機能を紹介するという内容だった。
ローカルスコープな名前付き関数が書ける話や、例外処理構文、遅延評価リスト、マルチディスパッチ
Javaでいうオーバーロード)、OOの話などがあった。
Perl6式OOはPerl5でもほぼMooseやMouseで実現できるけど、ドットでのメソッド呼び出しはPerl6じゃないとできないとのこと。
またPerl6では例外処理のCATCH文はtryの内側に書くということで、聞いたときは変な構文だとおもったけどgfxさんのツイートを見て良さを納得。

ぼくのかんがえたさいきょうのYAPC::Asia – 櫛井さん [twitter:@941]

YAPCの凄いところの紹介。特に気になったのは景品。MBPのMemory8Gは欲しいなぁ。発表しないので無理だけど。。。

JPA活動報告 – 牧さん [twitter:@lestrrat]

941さんの発表とは違い笑うところはない真面目な活動報告。
Web+DBプレスのリレー連載はJPAが監修していて、今のところ2月までは継続確定らしい。

memcached injection – 佐名木智貴さん

プロトコルは簡単なテキスト形式で、キー名に関してはエスケープ方法が規定されていない。
PerlのCache::Memcachedなどはキーをエスケープしていないのでアプリケーション開発者が意識する必要がある。
JavaライブラリはURLエンコードしてくれるものがあるとのこと。

memcachedの運用監視ノウハウ – 長野雅広(ライブドア)さん [twitter:@kazeburo]

memcachedの監視方法について。twitter:kazuhoさん作成によるcronlogを使った監視方法や、Nagios Pluginの方法が紹介されていた。
個人的にはdaemontoolsなどを使った場合、勝手に再起動してしまうのでどうするのか気になっていたが、uptimeで監視するという方法が紹介されていて参考にしたいと思った。

監視で大事なのはPDCAサイクル、自動化、可視化とのこと

パネルディスカッション - 身につけておきたい、今そこにあるシステムの救命措置

脆弱性を報告してもなかなか対処してもらえない。1000日以上も放置されているものがある。この現状を打破するにはどうしたらよいかということのディスカッション。

  • 治してもらえない場合だけ公開する?1000日ルールとか。
  • サンプルが少ないと対応してもえない。IPAがスキャンして一定数以上のサイトを報告して、全体的にどれぐらいのサイトが脆弱性があるのかを公表しみんなで直していくのはどうか
  • セキュリティ規準を満たしたら、保険がかけられるとか。リスクが担保できるとなると頑張るのでは

などの提案があった。

とはいえ現場からしてみるとずっと可動しているレガシーコードを対応するのは厳しいよなぁという意見も。同感ですw

http://togetter.com/li/55216

Perl 1,2,3,4 の歴史 – 前田薫さん [twitter:@mad_p]

Perlの歴史の話。

などで調べられるとのこと。

Android + Perl伊藤直也さん (グリー株式会社) [twitter:@naoya_ito]

Scripting Layer for Android (SL4A)を使うと、perlでアンドロイドアプリが作れるらしい。
アンドロイド上でコードも書けるそうだが、かなりきついので、Emacsで書いてadbコマンドでインストールするとのこと。
結構さっくり動くらしい。
perlでWebViewを起動して、JavaScriptのcallbackをキックとかも出来るそうで、個人的にはiPhoneアプリ作成でUIはWebView, 画面制御系はObjective+Cで作成しようか検討していて、そうするとAndroid展開も楽かもと思っていたけど、同じような手法がしかもperlできるとなるとかなり楽できそうなので、そのうち試してみよう

Data::MessagePack – [twitter:@tokuhirom]さん

JSON::XSより高速、ストリーミングデシリアライザといった特徴をもつシリアライズモジュール。
C++, Ruby, Java, Haskell他様々な言語で実装されていて、異なる言語間でデータ交換する場合に効率的かつ容易に利用できる。

Storableと比較
利点
・速い!(gfx++)
・他の言語ともつかえる
・データサイズがちいさい
欠点
・blessとかは使えない

JSON::XSと比較(かわった外人が作ったモジュール。コンパイラとか書いてるひとで非常に速い)
利点
・速い(ちょっとだけ)
・データサイズがちいさい
欠点
・バイナリなので人間がよみづらい

String::Filter 構造化テキストの正しいエスケープについて – 奥一穂さん [twitter:@kazuho]

最近あったTwitterXSSの事例を元に、正しいXSS対策の紹介。
バグがあるプログラムのほうがXSSがあるプログラムよりも遥かにマシということで、セキュリティホールを生み出さない様な設計が重要という話だった。
具体的には、

にわけて設計し、後者さえ正しく行えば前者にバグがあったとしても安全ということで、あらためてエンコーディングはできるだけ最後にという基本を再認識させられる内容だった。

Perl Parser Hacks vol.2 – 藤吾郎さん[twitter:@__gfx__]

前回はperlのParser定義ファイルであるperly.yの紹介をしたが、これをいじるとPerlソースコード全体を再コンパイルする必要があり大変なので、今回はPerlの新機能を使った手法の紹介。
plugable keywordと、parse fullstmtが紹介された。

pluggable keywordはperl 5.12から導入された機能で、任意のキーワードを追加できるものだが、パーサなどは自分で書かなければならず使いにくい人のこと。
pars fullstmtはperl 5.14に向けた新機能だが、単位がステートメント単位であるため粒度が荒く、使いどころが難しいかもとのこと

*1:その間興味がなかったわけではなくいつも気づいたら埋まっていたという。。。。最近はatndで気づけるので感謝 > twitter:@atnder