残念ながら横浜市民ではなくなりましたが、Yokohama.pm #9に参加しています。USTはこちら。
myfinderさん - 転職して1年間(弱)やってきたこと
こちらのトークは、USTなしでした。
kanさん - use Smart::Options
- Getopt::Long
- 標準
- 使い方がキモい
- Getopt::Compat::WithCmd
- けっこう複雑
- opts
- Smart::Argsをパクry
- 型の変換
- optimist(node.js)
- 直感的、きっちりも使える
- Smart::Options
- ->parse を呼ぶとハッシュにまとめてくれる
- ->boolean('y')などとして型を指定
- ->alias 別名、 ->demand 必須、 ->default でフォルト値
- dot notation は実装されてない
- 展望
- サブコマンド対応、DSL
Yappoさん - 10 Amon2 実践 Tips
- perlbrewをそのままprojectに突っ込む
- cartonは配布時にバージョン揃えるのには便利だけど、自社プロダクトには不要では
- PERLBREW_ROOT 環境変数を指定して perlbrew init
- buildのログはコミットしないように抜く
- cpanmはラッパーかぶせて使う
- 間違えてデフォルトのperlを使わないよう
- plackup はdaemontoolsのrunファイルっぽいランチャーから使う
- runファイルの方はこのランチャーを呼べば楽
- batch用のconfigは元configを読んで少し書き換え
- batchもランチャーから起動する
- crontab でも嬉しい
- 「カシュッ!!」
- contextのbootstrapメソッドを呼んでおくとCLIとして使いやすい
- Amon2::DBIは使わない
- TengでもOK?
- contextにdbhを取れるようメソッド生やす
- FORCE_MASTERフィールドでマスタを呼ぶよう強制できるようにしておく
- ログの処理はcontextに生やす
- CLIでもWEB appでも使えるように
- $cは引き回さない
- ->context を呼べばよい
- デフォルトで作られる *::Web の中身は早めにきれいにしておく
- 次回のWEB+DB PressでAmon2の特集あるよ
nekoyaさん - インターネット広告とPerl、ここ数年の歩み
- 広告枠 - SSP or ad server - adnetwork or DSP
- 複数のシステムが連携している
- Perlが使われている
- Kauli - adnetwork + SSP
- 日本初のRTB Kauli - FreakOut
- SSP Supply Side Platform
- 広告枠の最適化
- 一般的にはRTB対応している(DSPが相手なので)
- "50ms or die" VS "100ms or kill"
- プレイヤーが多い → チャンス
- 広告配信の特徴
- 大量リクエスト (他所のサイトの分まで)
- 高速レスポンス
- 落とすとまずい (問題があったときに犬の写真を出しても許されない)
- ふつうのことをふつうにやる
- 検索システムと似ている → Googleを支える技術
- 昔はJava、Cに向いた分野だった
- 2007年 → PHP、RAID1でコピー、sudo cpan、DBI +DBD::mysql、Storable
- 2008年 → PXE boot、Puppet、rsync、LVS、mod_perl2、Jocde.pm、DBIx::Class、tt
- 2009年 → cobbler、capistrano、LVS、nginx、starman、cronolog、daemontools、Any::Moose、DBIx::Skinny
- Mouseの出始めで安定してなかった
- URI::Excape::XS
- 2011年 → perlbrew、TokyoTyrant、Mouse、Text::Xslate、Object::Container
- Mouseはlazyとdefaultが便利
- 2012年 → 突然のPython
- Pythonにも興味のある方の応募をお待ちしております
risouさん - "What Does Your Code Smell Like?"で学ぶPerl6
- Larryのトークの内容を日本語で紹介
- strand sortをPerl5からPerl6のCodeへ
- シンタックスハイライトを変える
- 引数の撮り方が変わる
- 括弧を消せる
- 全ての変数がリファレンス (@$は要らない)
- 配列の添字に-1は使えない * - 1 whatever演算子
- ^..^ 最初や最後の要素は省く
- 見慣れないCode
- infix:
→ 中値演算子を定義する。xxxx= という形でも使える - is rw → 通常はPerl6の変数は読み取り専用だけど
- gather ... take → 遅延評価リスト
- Inf → ∞
- infix:
- Perl5とPerl6は異なる言語
- perl5でもPerl6::Gatherモジュールが使える
ikasam_aさん - As an Test Engineer
- 1年やってたこと → Brownie、Perl Advent Test Track、QA Team
- 去年のYAPC "Perl Testing Consideration"
- Brownie → 前回のYokohama.pm
- QA → 昔のイメージ「ポチポチ押す」
- QAのミッション
- プラットフォームエンジニアに対し、新しい機能開発のため、プラットフォームの品質を担保
- QAの活動
- プラットフォームの保証
- 自動テストを書く
- プラットフォームの品質を上げる
- テスターではなく、テストエンジニア
- 書いてるテストの内容
- グレイボックステスト
- モックなどは使わない。複雑なテストのため内部向けのデータを使う
- 例: スマートフォンのゲーム
- 例: APIのテスト → ブラウザではなくHTTPでテスト。perlを利用。
- 例: Developer Site → ブラウザ+Capybara(ruby)、Brownie(perl)
- ポリシー
- テストエンジニアはdeveloperである
- グレイボックステストをする → コードへの理解。開発もできるスキル
- テストコードの品質→Readable、Writable、Maintanable
- まとめ「奥が深くて楽しい」(日本語)
LT
Csideさん - Modelより上のレイヤーのテスト
Songmuさん - 突然のMarkdown期
bayashiさん - 小粒なユーティリティ書いたyo!
soh335さん - vim のはなし
xaicronさん - JSON Web Token Introduction
懇親会
号令方式。43人。提供はDeNAさんでした。
*1:関内にあるよ