phpcon2015

PHPカンファレンス2015に行ってきたよ!!聴講まとめ

Facebooktwittergoogle_pluslinkedintumblr

2015.10.03 SAT

PHPカンファレンス2015 に初参加して来ました!!

公式: http://phpcon.php.gr.jp/2015/
Twitterハッシュタグ: #phpcon2015
年に一度開かれるPHPの祭典…のようなもの?らしく、なんと参加登録2000人超え。

今年のテーマは

PHP7!!

現在の勤め先の会社もスポンサーになっていたり、
前々日に「第94回 PHP勉強会@東京〜PHPカンファレンス2015開催直前スペシャル〜」が開催されるなど
ムードが高まっていく中…

当日!! 盛大な寝坊と雑作業 諸事情により会場に着いたのが14:10頃という悲惨なスタートをかましました。
ごめんなさいごめんなさい…
以下、聴講しつつ取ったメモを記載。

聴講メモ凡例

  • タイトル
  • 登壇者名
  • スライドや動画のURL
  • メモ
  • 背景色水色な部分は、個人的なコメント


モダンなアーキテクチャのPHPベース OSS CMS Drupal8

14:20~
HASEGAWA Tomokiさん
スライド: http://www.slideshare.net/hasegawatomoki/drupal-8-phposs-cms
YouTube: https://www.youtube.com/watch?v=mPgV_PK3Q2s (3:35:00~あたりから)

  • オープンソースとは?
  • CMSとは?

→皆さん知ってるのでスキップ

残バグが全部潰れたかと思いきや、また増えてたので
Drupal8、昨日今日ではまだリリースはされないらしい…

ざっくり言うと、
モジュール → 機能追加
テーマ → デザイン変更
ディストリビューション → モジュールとテーマのパッケージ

ちょっとphpフレームワークの話に…
マイクロフレームワーク:外部ライブラリを組み合わせてフレームワークとする

  • Drupal8はPHPは5.5.9以上必要 ※PHP5.3以上だと、言語仕様が結構変わってるので注意
  • Composerは自分で入れなきゃいけない(‘、3_ヽ)_
  • まだコーディングルールはPSR2準拠してない…

質問タイム

Q. Drupal…何から始めるのがいいですか?
A. まずは管理画面をしっかり触りましょう。

Q. Drupalのおすすめモジュールは?
A. Drupal7のもので色々あるんですが、8で結構変わるので、8を使い始めた時に学習しなおしになっちゃうかも…

Q. ECモジュールって…?
A. すみません使ったことないです。苦笑

Q. 「コンテンツマネジメントフレームワーク」とどこかで謳っているのを見ましたが、要は他のCMSとどう違う?
A. WPよりは守備範囲広い感じです

Drupalって、WordPressよりは守備範囲広くて拡張性高いイメージですね。

脆弱性もバグ、だからテストしよう!

15:00~
Yasushi Ichikawaさん
スライド: http://www.slideshare.net/ichikaway/php2015-53484885
YouTube: https://www.youtube.com/watch?v=I9rdhl7o1oI (4:22:00~あたりから)

  • UNITテスト
  • 受け入れテスト

は行われているが

  • セキュリティテスト
  • パフォーマンステスト

こちらは忘れられがち…

Jenkinsとかのインテグレーションツールの普及で自動化が進んでいる

セキュリティテストも自動実行させよう!

ホワイトボックス

  • Parse(パース)

ブラックボックス

  • OWASP ZAP
    Javaが動く環境であれば使える

新人教育時の参考資料
Web(IPA)

  • 安全なWebサイトの作り方
  • 安全なSQLの呼び出し方
  • ウェブ健康診断仕様

書籍

  • 安全なWebアプリケーションの作り方

開発初期から継続的なセキュリティテストが理想的
単体テスト行う中に脆弱性テストも入れるのが理想的

しかし…
CIのフローにのせるのが結構大変。
ツール側でアプリケーションの動作を把握しないと行けない。
テストに工数がかかってしまう。

「工数のかからない、且つ簡単なものは無いか?」

無料ソフトVAddy 作った。
ブラックボックスのweb脆弱性診断。

GitHubからJenkins経由で自動実行可能。
Slackに通知も可能。
特別な設定無しで使えるように…と作った。
機械学習を使った独自エンジン使用。

今後のトレンド:継続的なセキュリティテストを行うこと

まずはVAddyやOWASP ZAP使って、ちょっとでも良いのでやってみよう!
どういうリクエストの時に問題が起こったのか、リクエストの参照も可能。

“クロール”って?

  1. 対象サイト登録
  2. クロール … ブラウザから VAddyを通してサイトを開き、アプリケーションの操作情報を記録する
  3. テスト実行

自動クロールでは限界がある

  • ログインは自動で行えない
  • 動的なセレクトボックスなど、アプリケーション特有の箇所は操作の手動登録が必要

Seleniumで作ったデータを流用できれば便利ですね。

質問タイム

Q. VAddyの使用時、サイトにBasic認証がかかっていても大丈夫ですか?
A. OKです。

Q. (ツールの使用時にはお客さんの許可が必要なのですが)お客さんを説得するための資料はありますか?
A. 今はないです。今のところ、開発者向けに作ってるので…。ただ、「早く見つけて早く直すのがいい」というコンセプトでやってます。

Q. 結果出力機能はありますか?
A. 今はないんですが、リクエストが多いので将来的には。

Q. コストがかかることを避ける開発者やお客さんが多いので、無料なのはすごくいいと思う。
ただ、責任問題になってしまう可能性もあるので、免責事項をしっかり書かないとマズイんじゃないでしょうか?
実行する際に毎回ポップアップで聞いたほうがいいのでは?
A. 毎回聞いてはいないんですが…w

  • 大きなアプリケーションに対しての実行は難しい
  • 本番では使うなと明記している
  • 一応規約はある

セキュリティテストの自動化はすごい魅力的だ…!!!
VAddy…!!使ってみよう。


LT

15:40~16:56

PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜

まどマギのマミさん Hikari Fukasawaさん
スライド: http://www.slideshare.net/hico00/phper2015php2015-phpcon2015

CodeIQさんからコラボ依頼きたのでコラボ問題を作った。その結果発表。
全4問で選択式ですが、選択肢全てがイケてない(!)
正解は、女子エンジニアが選んだ選択肢。

Q1. このコメントダサいなぁ。マシなのはどれ?
//modified by 2015-09-14 y.yamamoto
//TODO: あとでテスト
//カンマ区切りでsplitする

A1. //カンマ区切りでsplitする

Q2.後輩が困っている!どうする?
1. 「エラーログ見てごらん」とさりげなくアドバイス
2. 「この本を読んで勉強してみたら?」とそっと参考書を渡す
3. 自分で理解するのが一番!そっとしておく
4. 1から100まで聞かれていないことも懇切丁寧に長い時間をさいて教える

A2. 「エラーログ見てごらん」とさりげなくアドバイス

ちなみに「3. 自分で理解するのが一番!そっとしておく 」は
PHPer女子の支持率0%だったそうです。

カンファレンス中、マミさんコスをされていたので目立ってありましたね~(LT関係ねぇ

ランダムデータをPHPで作る

Kenichirou Kishidaさん
スライド: https://speakerdeck.com/sizuhiko/randamudetawophpdezuo-ru

テストデータどうやって作ってる?

ジェネレートデータ ganeratedata.com これで作ればいいよ!

  • phpの配列データとかも作れる!
  • Smartyも使える
  • ただ日本語化してない

Fakerも似てる

  • こっちは日本語化してる

Fabricateを作った

  • エンジンはFakerを使ってる
  • とにかくDBに適当なデータを入れたい時はこれ!

良いことを聞きましたヾ(:3ノシヾ)ノシ大量のテストデータが必要になったらこれですな!

PHPでRubyのゲームを攻略する PHPWarrior

マスクドPHPさん

マスクドPHP!!
技術的可能性を追求する覆面集団、レガシーズの一人

Ruby Warrior:
結構難しいゲーム。中々クリアできない
→ Rubyだから全力出せないのでは? → じゃあPHPで!

PHP Warrior 作った

  • PHPに移植して全面攻略した
  • PHP7にも対応
  • 大半がロシアユーザーなのでロシア語にも対応!ついでに日本語にも対応。

マスクドPHP!( ゚∀゚)o彡゚マスクドPHP!( ゚∀゚)o彡゚

良心的にまじめに開発するための心構え

村上 俊介さん

  • 真面目に考える
  • 良心をもって開発する

去年上司から上記を言われ続けた…

IDEのファイル検索機能を使ってる→NG
良心を持って設計したら探したいファイルは見付かるはず。然るべき場所に置け。

クラスの責務を真面目に考えて実装するべき(ネーミングや依存関係など。)

(memo) やり過ぎると老害って言われるかも?w

これは…もう少し具体的な指示も欲しくなったり…しませんかね…?(小声

PHPでDIをする

大橋 勇希さん
スライド: http://www.slideshare.net/OhasiYuki/phpdi-53487642

依存性の注入
依存性の探索

「DIしようぜ!」

ごめんなさいまともにメモ取れてませんでしたorz

サンタクロースを支えるIT技術 チャリティーサンタ

Masayuki Ishikawaさん

「チャリティーサンタ」でボランティアを行っている
ボランティアサンタさんをITでサポート!

  • 本番git化
  • ララベル5とかも使用中
  • ボランティアなので自分のやりたいことができる

まとめ: ボランティア活動いいよ!!

「自分のやってみたい開発」をボランティアを活動という形で実現しているのがすごい。

phpと夫婦生活

竹澤 有貴さん

奥さんが1人。2世帯住宅にお住まい。
家でずっと作業をしてると → 「家事もやらずに…」
キリの悪いところで → 「ご飯だよー」

理解して貰うため、「もっとPHP感を出せばいいんじゃ?」ということで家族のために開発を行う。

家計簿
奥さんと要件定義
額がおかしい。へそくりっぽい影が浮上…? → 結果的に失敗

健康管理系
奥さんと要件定義
レディーに体重入力させるとは何事 → 失敗

ペッパー  
奥さんと要件定義(目が光ってるのが怖いとか、掃除をさせようとか、稼働実績をDBに入れようとか…)
→ペッパーの握力200gしかなくて失敗

ペッパーの握力(´・ω・`)笑
夫婦生活って、た、大変そうですね…

(あなたにもできるかもしれない)ローカルPHPカンファレンスの作り方

赤瀬 剛さん

福岡から来られた方。
cakephperさんと色々主催してる
今年、phpカンファレンス福岡を開催した!

PHPカンファレンス+地名でツイートしたら
登壇者、スタッフ… 大体必要なものは勝手に集まった。

”言い出しっぺの法則”…苦笑

「ぜひ、前向きに責任を取っていただきたい」

PHPカンファレンス福岡、参加してないんですよね…orz
来年開催されたら行きたい…!!

THE NEW PERFECT PHP WILL BE COMING SOON

小川雄大さん
スライド: https://speakerdeck.com/fivestar/the-new-perfect-php-will-be-coming-soon

改訂版パーフェクトPHP発売決定!

  • 環境構築の章をGitHubPagesで公開します
  • PHP7対応!
  • フレームワーク完全刷新
  • PHPエクステンションの章を追加

現在執筆中…!!

楽しみですね!ヾ(:3ノシヾ)ノシ

小説執筆の現場で活躍するPHP

Yusuke Tsuikiさん
スライド: http://www.slideshare.net/yusuketsuiki/php-53505570

プログラム書いて執筆を効率化。
satsugai.php
を作った。 ちょ、ネーミング…!!(・ω・;)笑

  • hostsを書き換えて時間泥棒サイトを自動ブロック → ツイッター等にアクセスしようとすると「ベストを尽くせ」画面表示
  • JustRight!Pro欲しかったけど買えなかったので、buncheck.php作成。誤字・脱字をチェックするようにした
  • 進捗の可視化 → count.phpでコマンド叩いたらその日の生産量を原稿数に換算して表示
  • ついでにcount.phpで原稿のバックアップも取るようにした

蚊にさされないためのPHP

青木啓剛さん

裏口の鍵を持たない職場同僚からSlackが。

「蚊に食われた…入り口を開けて下さい」

そんな連絡が頻繁に入り、その度にオフィス内の誰かが席を立って壁のスイッチを押さないといけない。

Slackからのコマンド入力で自動で入り口オープン(壁のスイッチを押下)するプログラムを書いた。
アプリも作った。

すごい!ハードまで扱ってるあたりが特に…!
しかし、セキュリティ的に大丈夫なのかちょっと心配に。苦笑

ISUCON2015 PHPで予選を戦ってみた

Ken Gotohさん
スライド: http://www.slideshare.net/kengotoh/isucon2015-php

webサービスを高速化させて競うISCONにPHP7で参戦。
予選突破できなかったけど、PHP 5.6.13での実行と比較するとスコアが大幅に上がった。
PHP7速いね!すごいね!


以下、懇親会以降の流れ~感想など。

 懇親会

17:30~

※LT以降の順番は記憶がおぼろげなので間違っている可能性もあります

  1. 乾杯
  2. 料理を食べながらの歓談
  3. 懇親会LT(懇親会LTはメモ取れませんでしたorz)
  4. ゲストでありPHPの生みの親、Rasmusさんのご挨拶とか
  5. カンファレンス実行委員長のご挨拶とか
  6. 会場ネットワーク設営したCONBUさんの紹介とご挨拶とか
  7. ノベルティ獲得じゃんけん大会
  8. 解散

なんと!!
ノベルティ獲得じゃんけん大会に
「いや~勝つわけ無いっしょwww」
なんてノリで参戦したら

phpcon2015戦利品

Tシャツ2枚もGETできました…!!!(´;ω;`)
有限会社アリウープさんの「RUN PHP」Tシャツと、
(これは…元ネタはRun-D.M.C.のバンドTシャツ?)
PHPカンファレンス2015 スタッフTシャツ!!
スタッフやってないけどGETできたよ!!!
サイズはLですが!笑
全然体格と合ってないんですが!www

嬉しい…!業界のノベルティTシャツなんて1枚も持ってなかったので、
これは超嬉しい!!
(勉強会などでこの手のノベルティ OR イベントTシャツ着ている方を見るにつけ、
「あのイベントに参加したのか、良いなぁ」と思う次第です)

[反省点]
1つ目のTシャツを獲得した後は、他のTシャツ争いに参加するなよ大人げない… → ごめんなさいorz

二次会!!

懇親会でお酒も入り、Tシャツもゲットして、イイ感じにテンションが上がっておりました。
まだ帰りたくない…!!二次会行きたい!でもどこでやってんの?? と思いつつ、
「二次会無いんですか?」と親しい方(スタッフさん)に聞いてみたところ

「スタッフオンリーの二次会はあるけど、一般参加者の二次会は公式には無いからねぇ…
参加者の一部でやってるんだろうけど。」

という回答を頂きました…

ナンテコッタイ\(^o^)/
数少ない顔見知りの方々が、揃いも揃ってスタッフさん…
一般参加者の二次会には、知ってる人はいないのか!?
ということは、二次会には行けないのか!?

…と、(´・ω・`)していましたが

なんだかんだで二次会会場に加わることに成功し、
(二次会行きそうな方に「ついて行っても良いですか?笑」ってかましてしまった…すみませんでした…)
周囲の方々から、技術の話だけでなく仕事とか私生活とか
諸々ディープなお話を聞けました…笑
本当にありがとうございましたーーー!!

まとめ

初参戦だったPHPカンファレンス2015、思っていたより楽しくて
来年も行こう!と思いました。
イベント参加は楽しいね!!ヾ(:3ノシヾ)ノシ

あと、周囲の人の話を聞いて、発表してみるのも楽しそうだな…、と思った。
勉強会とかの小さめの場でのLTレベルで良いので。

大規模イベント参加のメリット

  • 高レベルな技術者の話が聞ける
  • 様々な業界にいる、他の技術者の話が聞ける
  • 懇親会や二次会で顔見知りが増える(他のイベントで出会った方にも会えたりする)
  • 何かしら刺激が満載
  • イベントグッズとかノベルティとか入手できるかもしれない

大規模イベント参加のデメリット

  • (覚えるのが苦手なこともあり)顔と名前が高確率で一致しない
    →聴講中は登壇者の名前と特徴のメモを取り、自己紹介をしっかり聞いておくこと
    →会場で新しく知り合った方は特にそうなるので、名刺をばらまく&できるだけ名刺を頂くこと推奨
  • 開催場所が自宅から遠いと、終電が早い&帰るのがダルい
  • “歩いてたらたまに顔見知りの方を見かける”程度が(チキンとしては)気楽。
    誰一人顔見知りがいないところに飛び込んで行くのは、ちょっと緊張するので。
  • 公式で二次会が設定されていない場合、自力で二次会に潜り込む必要がある

まぁ、何度か参加すれば、その分顔見知りさんも増えていろんなイベントに参加しやすくなるんだろうなー。

Facebooktwittergoogle_pluslinkedintumblr