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で、遠隔で話をしていただくってのはとても面白かったですね。
便利なツールを組み合わせてここまでできるってのは、いい時代です。
カメラとか音声とか、もうちょいうまいこと調整したかったなーと。
その辺は次回への個人的課題にしときます。
というわけでお疲れ様でした。ぺこり。
※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を書くのは
- 快適にphp-funcref-in-perlを利用出来るように
- anything拡張書いてみた
- git cloneしたものをEmacs上から参照できる
- まだ書かれていないリファレンスを書ける(実装中)
- チラ見もできる(anythingなので
Emacs使いがどんだけいるかについてツッコまれまくってたのは様式美。
あとは僕が次回予告でEucalyptus操作系の何か作るって話をちらりと。
次回までになんか書きます。
以降ヌーラボさんの事務所で懇親会。
外で2次会3次会。
懇親会まではust流してました。
キワい話もだらだら流してましたが、見てる人はすごく少なかったようなので多分大丈夫でしょう。
今回開催を引っ張ってくれたdai106oさん、ありがとうございました。
スピーカーの皆様ありがとうございました。
遠隔で参加しまくってスピーカーまで勤めてくれた牧さんありがとうございました。
# &次回お待ちしております。ふふふのふ。
Partty+IRC+ustで、遠隔で話をしていただくってのはとても面白かったですね。
便利なツールを組み合わせてここまでできるってのは、いい時代です。
カメラとか音声とか、もうちょいうまいこと調整したかったなーと。
その辺は次回への個人的課題にしときます。
というわけでお疲れ様でした。ぺこり。
Comments
dragon3
@ 15.03.2010 12:14 CEST
まとめありがとう!
超細かくてすんませんが、リンクしてもらっているBacklogのサイトでStarman使ってますが、Backlogスター(機能)自体には使ってないので、念の為。
まとめありがとう!
超細かくてすんませんが、リンクしてもらっているBacklogのサイトでStarman使ってますが、Backlogスター(機能)自体には使ってないので、念の為。
add a comment
This blog is gravatar enabled.
Your email adress will never be published.
Comment spam will be deleted!
