2日目です。地元開催なので、地の利を生かして朝からタリーズでのんびり朝食などとっております。今日もgihyo.jpさんのスペシャルレポートにレポーターとして参加しています。
Yasuhiro Horiuchiさん「Programming AWS with Perl」
- AWSの普及のため、各地を回る
- AWS → 日本でも20,000アカウント以上
- 認証をして、起動、停止、DB起動やバックアップ、情報取得などできる
- 対応している言語
- Command Line Interface すべてのサービスを一つのインタフェースで
- 今後はこれを使うのがベター
- pip install awscli
- AWS::CLIWRAPPER by hirose31さん
- VPCをPerlのプログラムから作成してWEBサーバを起動するデモ
- MTが起動するとこまで
- ラスベガスに行きたい人がいれば声をかけて下さい
- Q. Net::AWS::S3 とかモジュールがあるのだけど?
- Q. カジュアル用途じゃない場合はCLIはきつい?
- A. 中の人が書いているので・・・個人的にはCLIがいいかなと
Tatsuhiko Miyagawaさん「What's new in Carton & cpanm」
- cpanm
- インストールはcurl -Lして実行が簡単
- perlbrew, plenvと組み合わせると使いやすい
- cpanm 1.6
- cpanm 1.7
- Carton (Bundler for Perl)
- モジュールの依存関係をフリーズし、他のサーバでデプロイを可能に
- 「バージョンをあげたら壊れた」を防ぐ
- cpanfile と cpanm でも実現可能では?
- 依存先のバージョンが固定されているか未知数
- MetaCPANが必要
- ロールバックができない
- 8月に1.0が出た
- Cartonでのデプロイ
- cpanfile.snapshot を入れ、install --deploymentkで入れる
- herokuでデプロイにcartonを使う例も
- 待ってるだけでは対応してもらえないので、言ったほうがいい
- 今後の方向性
- デモ
- gitから入れる例。バージョンはSHA1になる
- carton tree
@naoya_ito さん「YAPC::Asia Tokyo 2013 特別座談会 「Rubyの良いところ語ってください 〜そんなPerlで大丈夫か?〜」」
- Rubyから習う。Perlに触れる
- PerlをDISる会ではない!!
- @shyouhei → 個人としてやってきた。Rubyの中の人
- コミッターとして。仕事ではPerl書いていたり
- @secondlife → はてな入って
1週間1ヶ月でRuby書くようになった- 組織的な話
- @masuidrive → 風呂でIKEAの人
- いろいろなコミュニティを見ている。ユーザの立場
- @tokuhirom → Shibuya.pm。Amon2の人。ツールチェーン。
- Perlの立場
- なぜPerl?
- 好き、嫌いは?
- @secondlife Rubyは標準ライブラリのセンスがいい。
- 「やろうと思えばできる?」「学習コストが高い。言語がサポートしていると入りやすい」
- @shyouhei
- @masuidrive 肌に合った。Rubyの良さは処理系の多さ
- @tokuhiromさん「goccyさんのような動きはある。Perl6は種類がある(どれひとつとして・・・だけど)」
- パフォーマンスを考えるとJVMで動くのはよい。実装が複数生まれたのは面白い
- @secondlife Rubyは標準ライブラリのセンスがいい。
- 言語を変えて生産性は?
- @masuidrive 1つに集中するとよくなる。知識の蓄積。肌にあうか合わないか。
- Ruby検定に落ちた。公式の検定対処本を書いた。二度と受けられない
- @shyouhei 適材適所。全部をRubyで書くのはどうか。Shellで書いたほうが早いとことか
- 「LLでの比較では?」「違いはわからない。開発する分野による」
- @secondlife Rubyがサポートが厚いという意味で生産性が高い。足りないものがあれば補えばいいけど。
- 会社内に詳しい人がいるといいけど、コミュニティが大きくないときつい
- @tokuhirom LLは言語レベルでの違いはない。行列計算とかだとpythonとかはあるけど。自分が使いたいライブラリは書いてしまったので、使いやすい
- @masuidrive 1つに集中するとよくなる。知識の蓄積。肌にあうか合わないか。
- こういうライブラリがあってすごいとかある?
- @secondlife Rails、Capistrano、bundler。OSSの活動が視覚化、活発
- 「他の言語との比較で?」「ファッション的な風。nodeとかでも感じる」
- @shyouhei 個人的にはない。Railsより前の人が多い。スレッド、struct。
- @masuidrive Railsがあるから。ビジネスとくっついた。経済圏(heroku、パフォーマンス監視)
- @shyouhei Railsは適当に作って適当に動かす。当時ビジネスになるかと疑問だったが、ビジネスチャンスがあったようだ
- @masuidrive Rubyなの?Railsなの? コミッターから見て
- @shyouhei RubyはRailsのものではないが、いろんな分野のいろんな専門家が来た。初心者の気付きは重要
- @secondlife Rails、Capistrano、bundler。OSSの活動が視覚化、活発
- Perlとビジネスの現状は?
- CPAN VS rubygems
- DevOps
- @secondlife puppet。Rubyで書かれてるだけど言語関係ない
- 「使おうとしているツールがRubyばっかなんだけど」「仕事として使っている人の比」
- @secondlife 言語学習のコストの問題。低いほどDevOpsで使いやすいのでは
- @masuidrive 一昔前はrubyをサーバに入れられると嫌がられた。5年前ならPerlで書かれていた気がする
- コミュニティとの関わり
- @shyouhei コミットしている。コミット権は比較的もらえる。時々集まる。フラっとコミッターが現れる
- 意外と言語のセッションがあって、いい意味で意外だった
- @masuidrive Seattle.rb。日本人に優しい。Matzを中心としたコミュニティ
- 「海外からの参加者との関わりは?」「RubyKaigiのほうが海外から来る方が多い」
- @secondlife 組織とコミュニティが関わっている企業も多い
- @tokuhirom 日本にPerlのコミッタは居ない。コミッタを崇める文化がない。コミッタをそもそも知らない。一方CPANモジュールのメンテナのほうが注目を集める
- @shyouhei コミュニティはふわっとしていて分断されているわけでもない。所属しているコミュニティを自分で思うのは自由だけど、排斥すべきではない
- @shyouhei コミットしている。コミット権は比較的もらえる。時々集まる。フラっとコミッターが現れる
- Perlリスク論が生まれることについて
- Perlでこういうことできるよ、ってよりは、いろんな言語のコミュニティに目を向けるといいでしょう
- Q. 昔RubyのプログラムはPerlより遅かった。苦労はない?
- A. @secondlife IOが支配的。なのできっと大丈夫でしょう
- A. @shyouhei CP社からはGCを早くと言われる。JVMのようなチューニングできるようにはしたい
- A. @masuidrive そういうことで実装が多数生まれている
- Q. FreeBSD でRuby 1.9になったが、いろんな物が壊れた。これを上げるとこういうものが壊れるというチェックは?
- A. @shyouhei やってない。壊れてもやる。これから書くコードを楽しくしたい
- A. @dankogai Perlでは奇数バージョンでなんとかする
- A. @secondlife 最近だと短期間で問題なく上げれた。最近は重視し始めた。新しいものを受け入れるコストはあるが、そのほうがトータルでプラスだろう
handlenameさん「チャットサービスの運用事例」
- Lobi チャット&ゲームコミュニティ
- 規模 550 req/seq, ピーク 2,000
- 6500qps。ピークが18,000。アカウントが800万程度
- 専属20名。サーバサイドエンジニア中心
- 他に、インフラチーム、CSチーム
- データセンターとAWSの併用。AWSに移行したい
- カンバン方式
- プランニングポーカーを利用
- ホワイトボードで見えるか
- レビュー
- GithubのPull Request
- レビューを経なければマージ不可
- 開発とレビューのバランス
- 巨大プルリク → 細かくレビューを
- GitHub Flow
- masterと作業用ブランチのみ。releasブランチはない
- masterはリリース可能
- 1日に数回〜十数回
- CIはJenkins
- テストの並列化
- App::Prove::Plugin::MySQLPool → Test::mysqldを一階建ち上げる
- c1.xlargeインスタンスで10並列
- 7分
- カバレッジ 85%
- デプロイはgit pull
- 変更のあるファイルに気がつける
- git status -s -uno
- parallel コマンドを並列実行するツール
- デプロイしたら通知をIRCへ流す
- IRCの活用 → botが簡単に作れる
- ボットに話しかけると、ログの検索してくれたり → 結果は社内用nopasteへ
- チケット番号をURLへ展開
- cronの実行結果をfluentdに投げ、社内に投げるfluent pluginの組み合わせ
- 5年で様々なリプレース
- Q. ORマッパとフレームワークの変更は、経営的に見てどういうメリットがあるのか
- A. 開発コストが下がる。新しいものを使いたいエンジニアがリードする。
- Q. 巨大なプルリク
- A. まとめてリリースする必要があるのはブランチのブランチ
- Q. リアルタイムメッセージのテストは?
- A. 並列実行のテストは甘いかもしれないけど、テストは必ずつけている
- Q. 秒間550はnode?perl?
- Q. デプロイツールはないようだけど、ロールバックは?
- A. revertしてpullする。スキーマの変更は別の手順が必要
- Q. リアルタイムメッセージングのスケールは?
- A. node.jsで受け、それぞれがつながっているユーザ情報を持っている。メインのアプリがnode.jsに流す。接続情報はKTが持ち、アプリケーション側で振り分ける
- Q. 1台で10並列すると競合するのでは?
- A. App::Prove::Plugin::MySQLPoolがそれをやっている。インスタンスのコピー。
makamakaさん「同人ゲーム「PM(ぷむ)からの野望」の考案と実践」
- Perlコミュニティについてアナログ的に考える
- 2011年 Paumon
- 2012年 やっぱしぃ YAPC → β版。未完
- 2012年 新春初笑いperlすごろくとして完成
- 牧さん曰く、「肉料理ばっかたべると飽きる。サラダが必要」
- 「PMレボリューション」に名前変更
- 良くないお知らせ → カードゲームになった
- 悪いお知らせ → 完成しなかった
- 理由 → YAPC::Asiaの開催時期が年々早まってる
- 概要
- プレーヤーはPMとなってイベントを皆済、ポイントを獲得。
- プレイヤー2〜4、10〜20分。
- PMカード、手札カード「人気カード、会場カード、特殊カード」
- PMカード → PMの属性、拠点となる会場が書かれる。CP(会場のキャパシティ)
- 13PM
- 人気カード → 初学者、初心者、ベテラン、ギーク
- 会場カード → CPが獲得ポイント最大数の制限
- プレイヤーができること
- Q. カードゲームの再販は?
- A. 「良い質問ですねぇ」
- Q. Acme大全は後何冊?
- A. 後7冊。引き換えて頂けると
Lightning Talks Day 2
kanさん「目指せ、テストカバレッジ100%」
- タイトルは釣り。100%は目指さない
- カバレッジ → テストがコードの何%を通っているか。ifの分岐とか忘れてないか
- Devel::Coverが鉄板
- HTML生成して確認するのはめんどい。チームの共有がめんどい
- coveralls
- Devel::Cover::report::Coveralls
- coverallsの人が入れてくれると言ってたけどまだ入ってない
walf443さん「DBIx::RecordFactory」
- DBIx::... → またか
- RubyのFactoryGirlのようなもの
- Tengのschemaからルールを自動生成
- intやvarchar、PKに合わせて自動でランダムにデータを作る
- DBIx::Inspectorとかはちょっと重い
azumakuniyukiさん「JSONでメール送信」
barimiさん「初めてのPerl 〜つぶやいてないでコードかけ〜」
papixさん「Perl入学式2013年度中間報告」
- 40人参加、サポーター10人
- YouTube APiをWebService::Simpleで
- 大阪:22回開催、福岡:3回開催、宮崎は3日
- 今年 大阪は3回、東京は6回
- 今後
n.tomitaさん「ねたモジュールについて」
kamadangoさん「5文字以内のレスを推奨する節」
- ボケてはスモールチームで開発した → マイクロコミュニケーション
- テンションの維持がポイント
- 依頼、了解、質問、回答、完了
- 短文+「!」
- 短文で開発効率が上がる。!でテンションが上がる
tokuhiromさん「Test::Power」
- okだけで書きたいんだけど、ok $x == 3 と書くとわからない
- Test::Powerが解決→gfxさんが話したから微妙・・・
- HTTP::Body::Builderを作っておきました
- (Yappoさんがビールを渡す)
takusさん「若者が Velocity Conferenceに参加して感じたPerlの現実」
cubicdaiyaさん「mruby_nginx_module」
nekokakさん「DeNA common tech Trial」
- CM動画が最後まで流れてなかったので改めて公開
- コミットログにfuckと書くと怒られる
- 個別な問題解決を避ける → common tech
- Baranネームスペース
- 弁当の隙間に入れる緑色のアレ
- 横の連携がとれるように
引き続き
pjfさん「Staying sane with Method::Signature」
- Method::Signature
- methodキーワードを使う
- !を使う
- $self
- JSONは審議がtrue、false
- 日付を自動で変換
- @_は使わなくて良い
Tomohiro Ikebeさん「management and Perl culture」
- 娘さん「またAKB??」
- EDGE、LIVEdoor、nhn、LINE (転職ではない)
- dankogaiさん、miyagawaさんと働いていた
- LINE**、livedoorポータル、livedoor Blog、naverまとめ
- livedoor Blog → 恐らくmod_perlでさばいたPV数で一番
- 負債が一気に返済されてよかった
- 2007年以降マネージメントを考え始めた
- Software development → PCに向き合ってカタカタやってデュフフ
- 昔のイメージ「少数のおかしい人が作るのがソフトウェア」
- 実際はそういうことはない。人間が集まって作る
- managerとは
- 上司?「きみきみ、やっておいてくれたまえ」?
- 中高生の頃はマネージャーは南ちゃんだったはず
- 偉そうにしていてもやる気はでない
- 選手が集中して競技できるようにする
- 「はちみつレモン的なことをやる」
- management != 管理
- マネージメント、と言いたい
- work environment
- 非常に大事。PC、椅子、朝起きれない、子供の送り迎え
- 自分の裁量で出来ないこともあるが、善処する
- personnel issues
- 自分より優秀な人を雇う
- 優秀な人をとるのは怖い。チームのキャップがマネージャーの能力になってはいけない
- personnel issues
- 個人個人で色が違うのが重要
- 「数字が上がることに興味がある」「技術的な正しさに興味がある」など
- ユーザに近いのが好きな人、苦手な人 → 辛辣な意見への耐性
- 誰に何をやってもらうか。誰と誰をペアにするか
- 将来をどうするのか。人事制度が必要
- できるエンジニアにマネージメントをやらせるのは無駄が多い
- エンジニアのまま相応の対価が渡るような人事制度
- マネージメントとリーダーシップ→一般的に、優れたエンジニアはリーダーシップがある
- 「そろそろマネージャーにならなきゃいけないんですよね?」はちょっと
- direction
- この仕事をなんのためにやっているのか
- 使うフレームワークとか、スマフォに力を入れましょうとか
- marketing
- 80人のエンジニアのチーム
- AKB48の研究生まで集めた人数くらい
- サーバサイドはPerl。Objective-C、Java、JS。Rubyを使っている人
- なぜPerlを使うのか?
- なぜPerlなのか
牧さん / YACP::Asia Tokyo 2013 Wrap up
- 8回目のYAPC::Asia。8回スタッフを経験
- チケット販売数、1,131枚
- ベストトーク賞
- 「SQL書くまでは投票大丈夫です」
- 3位 kazeburoさん
- 2位 myfinderさん (実はlestrratさんも2位タイ)
- 1位 yusukebeさん
- お知らせ → これがラストのYAPC
- 941さんとlestrratさんは引退
- JPAは継続
- わくわくする話はたくさんあったはず
- 今までのYAPCでやってきたことの芽が出始めている
- 次はあなたがYAPCを。今年中に話をしに来て下さい
- ネットワークチームより「ネットワークどうでした?」「よかった」
- 100Mbpsを記録(ほかは50mps)
- みんなiOS7をダウンロードし過ぎ!
- スタッフによる写真撮影「はいチーズ」
- 次はみなさんのYAPCでお会いしましょう