bloggalleryaboutcontact

Fukuoka Perl Workshop #15 行ってきた話

※17.03.2010 k1LoWのエントリへのリンク追加
※19.04.2010 dragon3さんのスライドへのリンク追加
Webカメラ片手に行ってきました。
http://fukuoka.pm.org/2010/02/fukuoka-perl-workshop-15.html
IRCに流してた議事録からざっくりと書き起こし。
牧さんがust経由で色々突っ込んでくれましたので、語録とかも一緒に。

[HTML::FormFuとMojoMojoの話] by dai106o [動画]
HTML::FormFu -> フォームの作成ができるモジュール
- 入力値の受付
- 入力キーの定義参照
 - YAMLで定義することも可能
 - 定義しているkeyのみしか受け付けない、とかも可能
- 標準化(trimとか)
- 検証(requireとか)
- 入力値の収納
Catalystで使う場合: use base 'Catalyst::Controller::HTML::FormFu';
http://search.cpan.org/dist/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormFu.pod
実際: Catalyst + HTML::FormFu + FillInForm + Template-ToolKit + DBIx::Class
MojoMojo
- Catalyst実装のwiki
- 学習効果は高い
- Catalyst実例としては新しい
- JPAのwikiもこれ
デモ
- 「Larry Wallと俺」が言いたかっただけちゃうんか疑惑勃発

あとは質疑でFormValidator::Simpleの話なんかも。
牧さん語録
14:57 [lestrrat] MojoMojoはおもしろいけど、正直理想的な実装ではないと思うな。

14:57 [lestrrat] Wikiとしては別におもしろくないな。
14:58 [lestrrat] 強いて言えば中身のカスタマイズが(やろうと思えば)色々できるところか。

15:09 [lestrrat] フォームの生成は動的変更があると後でちょっと面倒になるんだよね>FormFu
15:09 [lestrrat] そういうときは ->elements とかで一気に流し込むんだけど
15:09 [lestrrat] そうすると作成コストが結構高い。
15:09 [lestrrat] あんまり言い答えがでなかったので
15:10 [lestrrat] できるだけできあがったフォームをキャッシュするようにしてる

15:11 [lestrrat] CatalystでFormFu使うと一番むかつくのは
15:11 [lestrrat] オブジェクト定義ユーティリティが
15:11 [lestrrat] Mooseと丸かぶりな部分があって
15:12 [lestrrat] リソースがもったいない。
15:12 [lestrrat] そういう理由で最近ちょっとHTML::FormHandler 見てる。

[Catalystアプリのセキュリティ対策に駆り出された話] by su_aska [動画]
Catalystのバージョンが相当古い
- XSS
- CSRF
- Session fixation
 - ログイン成功時にchange_session_id使おう
  - Catalystのバージョン古すぎて、change_session_idがいない
   - updateかける -> 100個くらいupdateかかる -> もろもろ動かない
   - 必要な分だけコピーしてきて解決
- Cookie Secure flag
- Cookie HttpOnly flag
- GETメソッド局所化 -> 必要以上にGETを有効にしない
- TRACEメソッド無効化(Apache)
 - このへん参考
IPAのセキュリティ周りの資料を見よう
・以下宣伝
ブックマ!: http://www.bookma.org/
 - 人力フィルタリングが非常にstrictなので、質が高い
ごぶさったー: http://gobusatter.nurumayu.com/
 - シャワーを浴びに行ったまま170日反応がないとかがわかるサービス
 - Net::Twitter::Lite
  - Liteじゃないほうは依存のモジュールが多い
  - ロリポとかだとLite系のは助かる
でかんじ: http://dekanji.nurumayu.com/
 - 形態素解析はYahooのAPI
 - 漢字のレベルもYahooのAPI
 - 調べた漢字はhttp://twitter.com/dekanjiに晒される
  - 15:39 [lestrrat] 人の名前の漢字とか見たい時についったーにばらされるの困るなw
- http://www.nurumayu.com/

[Plack/PSGI ですばやく実装&デプロイなお話] by dragon3 [動画] [スライド]
Starman -> 名前かっこいい
今日の目標
-> みんながplackupしたくなる
 -> 特にk1LoWがplackupしたくなる
・PSGI
- WEB+DB Press Vol.55読もう
- フレームワークとWebサーバをつなぐインターフェース仕様
 - WSGI, Rack, Servletみたいな
- PSGI前: Webサーバが変わる場合、フレームワーク側で差異を吸収
- PSGI後: やりとりをPSGIに則った形で共通化
 - ステータスコード, ヘッダのhash, body を配列で返す関数リファレンス
- http://search.cpan.org/~miyagawa/PSGI-1.03/PSGI.pod
・Plack
- PSGIサーバ - PSGIリファレンス実装
 - plackup(Plack::Runner)
- 他のPSGIサーバへのアダプタ
 - Apache2とか、他もいっぱい
 - 同じアプリでサーバは切り替えられる
 - Starman
  - プロダクション環境に最適化されたPSGI対応Webサーバ
  - Star na Otoko(yes, Unicorn!)
 - CGIとかFCGIとか
・ミドルウェア
 - Plack::Middleware
  - Apacheモジュール的な位置付け
  - ::AccessLog
  - ::Auth::Basic
  - ::Session
・PSGIフレームワーク
 - Tatsumaki
 - Noi
 - 既存のフレームワークもどんどん対応している
  - Catalystは? -> あるよ by lestrrat
 - 16:11 [k1LoW] もうPSGI対応っていうのはもう標準みたいなもんなんですかね
  - 16:12 [lestrrat] そう思っていいと思いますね。逆にしてないのがあったら「まだしてないの?PSGI非対応が許されるのは小学生までよね」って言っていいと思う
・おすすめデプロイ
- daemontools
 - 環境変数ファイルでパラメータ指定できる -> 便利
 - Plackをdaemontoolsで動かしたい
  - runスクリプトかくのめんどい
   - もうあった
- Module::Install::Bundle::LocalLib
 - local::Lib -> オレオレCPAN環境
  - perl -Mlocal::lib=extlib
  - extlibをcpanインストール領域にできる
   - アプリごとのモジュールライブラリを構築できる
 - Module::Install::Bundle::LocalLib
  - アプリ独自のモジュールディレクトリを構築できる
  - 解凍してmakeしてリンク貼って終わり -> 楽
  - backlogスターのつぶやきまスター機能はStarmanで動いてる -> スターだけに
 - cpanminus
  - http://cpanmin.us/ っていうURLでもOK by lestrrat

あと質疑で
- Hudson
- Plack::Builder

ここで急遽牧さんが「俺も喋る!でも声出せない!」ということで。
Partty!.orgとIRCを駆使しでプレゼン開始。

[daemontoolsの補足とplackup便利機能] by lestrrat
# 動画取れてなかった。。。すみません
基本はParttyでライブコーディング+IRCで解説(k1LoWが音読)。
ターミナル上で喋る場面もあり。
・daemontoolsの補足とか
- CATALYST_HOME, CATALYST_LIB, USE_PROXY
 - この辺が設定されてないとCatalystがPSGIで動かないよって話
- Starmanのデフォルト値
 - --max-request=1000 --workers=10
  - お遊びアプリには多すぎる値なので減らしてます
   - EXTRA_ARGSで設定
- daemontools配下にするためのシンボリックリンク
 - ディレクトリごとではなく、runとapp.psgiのみリンク
  - 設定ファイルとかをrepoに入れたくない
・plack便利機能
- ライブコーディングでCGIファイル作ってplackでさくっと動かす
 - Shotgunだとリクエスト毎に読みこむのでCGIっぽく動く
- ポート指定でXML吐き出したいとかも楽にできる
 - local::libがsudoで動かないのでgrrrrr
 - 設定しときゃちゃんと動きます
- -eでさっくり動かしてみるのも便利便利
・他
- HTTP::Engineとの棲み分け
 - 今使ってる人はそのまま使い続けるもよし
 - これからーな人はPlackだけにしとけば覚えること少ないよ!
- Twiggyとか
 - めんどくさいからまた今度
- Plackで書いた非同期サーバとかもあるよ
 - リアルタイムゲーム用

[anything-php-funcref-in-perl.el] by k1LoW [動画] [スライド込みエントリ]
- Fusicの人、Emacsの人、PHPの人
 - Perl書けませんが興味あります
- php-funcref-in-perl project
 - PHP関数をPerlでどう書くプロジェクト
  - なにそれ嬉しい(はぁと
 - Yappoさんとかyusukebeさんとかコミッタの皆さんとかありがとう!
- PHPerがPHPを書くのはエディタEmacsの上
 - 快適にphp-funcref-in-perlを利用出来るように
  - anything拡張書いてみた
   - git cloneしたものをEmacs上から参照できる
   - まだ書かれていないリファレンスを書ける(実装中)
   - チラ見もできる(anythingなので

Emacs使いがどんだけいるかについてツッコまれまくってたのは様式美。

あとは僕が次回予告でEucalyptus操作系の何か作るって話をちらりと。
次回までになんか書きます。

以降ヌーラボさんの事務所で懇親会。
外で2次会3次会。
懇親会まではust流してました。
キワい話もだらだら流してましたが、見てる人はすごく少なかったようなので多分大丈夫でしょう。

今回開催を引っ張ってくれたdai106oさん、ありがとうございました。
スピーカーの皆様ありがとうございました。
遠隔で参加しまくってスピーカーまで勤めてくれた牧さんありがとうございました。
# &次回お待ちしております。ふふふのふ。

Partty+IRC+ustで、遠隔で話をしていただくってのはとても面白かったですね。
便利なツールを組み合わせてここまでできるってのは、いい時代です。

カメラとか音声とか、もうちょいうまいこと調整したかったなーと。
その辺は次回への個人的課題にしときます。

というわけでお疲れ様でした。ぺこり。
Related Entries:
Fukuoka Perl Workshop #16 喋ってきた話 + お悔やみ
Comments (3)  Permalink