横浜人ですので。例のごとくログとります。
yokohama.pmの成り立ち / clouderさん
DIS られない Catalyst とのつきあい方 / ikasam_aさん
FormValidator::LazyWay / tomyheroさん
- 読み方は、「とぅまいひーろー」
- FormValidator::LazyWay
- DRYな感じ ← アプリケーション全体で、フィールド名ごとに設定
- 検証モジュールがメッセージを持ってる。i18n
- 気軽に使える
- サンプルコード紹介
- 今後の予定
- 入力をfilterする機能
- 複数フィールドを合成してvalidate
- 検証後に値を変更
- 実運用経験
- Q. 指定されてないフィールドが入ってくるとまずいのでは?
- A. validate対象ではない物は渡って来ない
- Q. 国際化に関して、Googleのクローラーが来ても大丈夫?
- A. 指定した言語のみになるので、OK
- Q. 国際化の文言の調整は?
- A. yamlには依存してないので、大丈夫
- codereposにソースは上がってる
Imager / clouderさん
- Imager
- Tony Cookさんによる、イメージ操作ライブラリ
- wikiもあり、podも充実
- GD、Image::Magickが競合
- Imager
- 弱点
- 複雑なことをするには、画像変換の知識が必要
- 処理速度が遅い
- バギー(mod_perlと使うと、変なことになることもあるっぽい)
- コード例
- 大きさ変更
- 文字の描画(フォントファイルを指定、日本語も大丈夫)
- Imager::Inline
- インラインCが利用できる
- 全ピクセルの評価も出来る
- インラインCではなく、XSで作る
- .xsを作って、XSLoaderから呼ぶ
- Q. 指定できるフォントは?
- A. Trueタイプとか普通にいけます
- Q. 縦書きは?
- A. やってません
Introduction Parse::Yapp / ZIGOROuさん
- Lexer / 字句解析機。Talkenに分割する
- Parser / 広義ではLexer + Parser。構文儀を作成する
- パーザのアルゴリズム
- CPANにあるパーザ
- BNF記法
- EBNFとかABNFもあり、世間でよく見るのはEBNF。Parse::YappではBNF
- JSONの配列の例
- ABNFでは
array = begin-array [ value *( value-separator value ) ] end-array
-
- BNFでは
array: begin_array value_list end_array ; value_list: /* empty */ | value value_list_after ; value_list_after /* empty */ | value_separator value value_list_after ;
- 例題: JSONの配列、中身は数値(int)のみ。パーズしてこれをPerlにする。
- 0と1〜9は分けて定義する(始まりは0じゃないので)
- まずはBNFを作る
- shiftとreduce
- shift / ルールを構成するサブルールの状態が遷移すること
- たとえば、end_arrayが確定した後value_listにうつる場合
- reduce / 特定のルールが満たされたこと
- 例えば、array: ルールが満たされたこと
- ypファイルを、yappコマンドでpmファイルを作る
- ypファイル
- 今回は話さなかった
- レクサは? → Perse::LexやXSで
- ヘッダセクションでヒントが使える
- shift/reduce, reduce/reduce のコンフリクト
- yyerror / エラーハンドリング
- 速習yaccがおすすめ(Rubyソース完全解説、より)
- Q. パースの逆は出来る?
- A. 飲み会で
- Q. デバグは?
- A. アクションにデバグコードを差し込む
- Q. reduce, shift と アクションの関係は?
- A. reduceのタイミングでアクションが実行される
- Q. Perlオブジェクトをトークンとして返せる?
- A. やればできるはず
- Q. yaccとの速度の関係は?
- A. Cの方が100倍速い
- Q. shift/reduceの競合のデバグは?
- A. 確かshift優先になる。reduce/reduceは致命的なので起こらないようにルールを書くこと。Yappは教えてくれない。少しずつルールを追加してYappを実行すべし。どーんと書くのは絶対辞めた方がいい。
- %expect でヒントを書ける
YAPC::Asiaの開き方 / 台場さん
- 始まり → id:TAKESAKO さんより、nothingmuchさんの来日情報
- 後援者の選び方は、この話の対象外
- 開催場所と開催日時
- Seasar Confarensで法政大学でやってたことを参考に、大学を当たった
- 大学の難点 → 年度をまたがると、話しがうまく進まない
- 金勘定
- 赤字分は、小山さんによる補填
- チケットサービスの手数料は先に払い、払い戻しは興行終了後なため
- 今年はPaypal。赤字にならなかった。ビジネスアカウントにする。
- Paypalの難点
- 手元に紙チケットがないので、CHECKINが大変
- 支払いのフローのシステム化 → Act を利用
- ACTの難点
- ACTのサーバは世界でひとつ。そこにコードを入れないとNG。クローラが日本語拾わない
- 一括メール送信機能がない(支払い換気用)
- Talk内容の投票機能が欲しい
- CHECKIN機能がない。id:miyagawaさんが前日にCGI書いた。
- ACTでPayPal使ったのは世界初。id:miyagawaさんがフランスにも行ったらしい。
- ACT Cook book希望
- 備品
- プロジェクター。4000ルーメン。
- スクリーン。1週間前にあわてて調達
- 便利なお店
- eタマヤ(プロジェクタ)、ダスキンレントオール(スクリーン)
- 印刷関連 → やすいや、バンフー
- 搬入搬出
- 前夜祭は、搬入場所確保のため場所が余ってたからやったらしい
- ゴミ問題
- 段ボール150箱、ラーメン食べ残しとか
- 次回の課題 → 京都だろうから気にしなくていいw
- リスク管理
- 雨天のランチ。Yappoさんの怪我。
- そろそろ組織化が必要
- Q. カンファレンスのために、チェックシートがあるといい
- A. 毎回作ろうとしているが、面倒だから作れていない
- Q. QRコードは外国人さんは使えなかったのでは?
- A. 日本のQRコードを外国に見せつけたかった
Test::Declare / nekokakuさん
- 横浜の紹介
- テストがないと、激しくDISられる
- BugFixとテストを一緒に入れるべきでしょ
- リファクタリングに安心
- Test::Baseで書きにくい部分をDeclare的に
- Test::Declare
- DSL風、必要モジュールを一発use、planの数を自動で
- blocks テストメソッドの数を数える
- describe テストの大枠
- init 前処理。setup
- test テスト実行
- cleanup 後処理
- TODO
- plan数のカウントをPPIでもっとなんとかできない?
- Test::* のfunctionのラップが甘いかも
- gihyo.jpでPerlのテスト手法の記事書いた
- Q. no_planでは駄目?
- A. 途中でdieしても、失敗扱いにならない
できるXIRCD / kanさん
- XIRCD
- POEベース、プラガブル
- POE::Sessionの例。お約束の処理が面倒
- MooseX::POEの恩恵 : event 'event name' => sub
- Mooseなattributeに設定を記述すると読み込まれる
- post_message nick => message と書ける
- 将来
- Q. POEだとメモリとかで落ちたりしないか?
- A. 手元では落ちてない。問題ない
- Q. twitterのエラーで落ちたりしない?
- A. JSONだと思って処理するが、ステータス200で返ってくるエラーメッセージのため
- Q. コンポーネント追加は無停止ではできない?
- A. 現状はまだできない。reloadとかは実装したい
Email::Address::Loose, Email::Address::JP::Mobile / tomi-ruさん
*1:Yappoではない