ISUCON9予選一日目に🐶として参加しました

ISUCON9にチーム名「🐶」として予選参加しました。

1人チームで言語はPHPを選択し、最終スコアは11,590でした(ベストは12,780)。

スコア的には予選通過ラインだったようですが、追試をパス出来ず予選通過とはなりませんでした。無念…😇

isucon.net

f:id:yugo0624:20190910210212p:plain

 追試で落ちて本戦進出できない不幸な方がこれ以上に出ないように&来年の自分のためにも忘れないように記事にしておきます。

 

スコアの推移はこんな感じです。

f:id:yugo0624:20190910185934j:plain

最終的にはappサーバー×1、dbサーバー×1です。

(appサーバーを2台にしたかったけど、間に合わなかった…)

 

ほとんど準備らしい準備はしてなかったのですが、1人参加ということで最低限タイムスケジュールだけ決めておきました。

 --

10:00〜 レギュレーション読む

10:05〜  インスタンス作成

10:10〜 ブラウザで実際にアプリをさわる

10:15〜  デフォルト状態でベンチ回す

10:20〜 実装をPHPに切り替える

10:25〜 PHPでベンチ回す(チューニングいれない)

10:30〜 Xhprof、netdata、kataribe、myprofierなどモニタリングやチューニングに利用するツールをいれる

11:00〜 1台でチューニング

12:00〜 昼休憩

12:30〜 1台でチューニングの続き

15:00〜 複数台化

17:00〜 再起動チェック

17:30〜ベンチガチャタイム

--

1人でやると3人でやるときに比べてコミュニケーションコストが0になるというメリットがありますが、どこかに詰まってしまうとカバーしてくれる仲間がいませんので時間的にも精神的にも辛くなり致命的になります。

そのため、まずはデフォルト状態でベンチ回す、言語切替でチューニングいれないでベンチ回す、なにかチューニングいれたらその度にベンチ回す、といった感じでベンチがコケた時の原因を特定しやすいようにしておくという、基本的なところはちゃんと行うように気をつけました。

 

コードをさわるのは自分だけなのでデプロイもサーバー上の/home/isucon/isucari/webapp/php以下をローカルと同期し、コード編集して保存する度に自動的にsftpでアップロードするようにPhpStormで設定しておきます。

一応webサーバーを複数台した用にPhpStormと同期しているサーバーから指定したサーバーにソースコードrsyncでばらまくシンプルなデプロイ用のシェルだけ用意しておきました。

チューニングにあたってはkataribeでアクセスログ解析で重たいエンドポイントの確認して、アプリ側もXhprof&XHGuiでプロファイリングを行いました。

PHP7でXhprofを導入するのは下記に記事書いてますので参考にどうぞ。

https://qiita.com/takahashi-yugo/items/8f141e6ca0259a2bd2c8

もともとサーバーに用意されている/home/isucon/local/phpにあるphpバイナリは言語実装をPHPに切り替えるタイミングでapt-getでphpを新たにシステムに入れてsystemdのisucariのサービスで参照しているphp-fpmもapt-getでいれたものに変更しました。

これは後々チューニングでmemcache、redis、apcuやXhprof用にmongoのエクステンションを入れる事を想定していたのでいちいちビルドしていると面倒だからです。

一応/home/isucon/local/phpで特殊なエクステンションとか使われてないよねとかはphp -mで確認した上で変更を行いました(まぁ各言語の実装をあわせないといけないのであまり特殊なエクステンションは使ってないだろうとは思いつつ)。

Xhprof&XHGuiの導入は何回も飽きるほどやって来ましたので特に詰まることはなく、モニタリングツールやapt-getで色々導入する部分は事前にUbuntu16でリハーサルしておいて問題ないことを確認しておいたので特に問題ありませんでした。

主におこなったチューニングポイントは下記です。

PHP入れ直したタイミングでXdebugは無効に(お約束)

・mysqld.cnfにとりあえずで下記を投入

innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_size = 2G
innodb_log_file_size = 512M
innodb_log_buffer_size = 16M
innodb_doublewrite = 0

・sysctrl.confに下記を投入

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10


・userデータをAPCuにのせ、参照時はオンメモリで返せるように
・userのデータはオンメモリ化したのでN+1部分は許容
・categoriesもAPCuでオンメモリ化

・configsもAPCuでオンメモリ化

・/users/transactions.jsonで叩いている重たいクエリを調整しSELECTした結果はAPCuにのせる

・/items/editでitemsを更新後に無駄にitemデータを参照しているところを削除
・DBを別サーバーに分離
・外部APIのレスポンスをキャッシュ
・ある程度チューニングできたところでcampaignを増やし、最終的には4に。
php-fpmのプロセス数を増やす
・最後はXhprofを無効にし、nginxのアクセスログや不要なプロセスを落とす

 

/users/transactions.jsonSQL調整の部分は、下記のように調整した上で

SELECT * FROM `items` WHERE `seller_id` = ? OR `buyer_id` = ?) AND `status` IN (?,?,?,?,?) AND (`created_at` < ? OR (`created_at` <=? AND `id` < ?)) ORDER BY `created_at` DESC, `id` DESC LIMIT ?'

SELECT * FROM `items` WHERE (`seller_id` = ? OR `buyer_id` = ?) AND `status` IN (?,?,?,?,?) ORDER BY `created_at` DESC, `id` DESC

 取得したデータはAPCuに載せちゃいます。SQLを変更したことで1st pageの時でもpagingの時でもクエリが同じになりキャッシュを効きやすくします。

その上でアプリ側で (`created_at` < ? OR (`created_at` <=? AND `id` < ?)) の部分の処理をおこなったりLIMITの部分をarray_sliceで代替することで同じデータになるように調整します。

SQLで取得するデータは多くなるのですが、SELECTする結果が変わってしまうような更新がされるまではAPCuにのせる前提でしたし、クエリをシンプルにしてMySQL側の処理を軽くしたかった感じです。

このあたりはredisにキャッシュさせようか悩みましたが、キー設計などがすぐにはいいアイデアが浮かばなかったので結局キャッシュまわりは全部APCuになりました。PHPはpreforkでプロセスでわかれちゃって、Goみたいにメモリ上にデータ保持しておくということは出来ませんが、APCuだとそれに近いことができるのでアーキテクチャ的な弱点をカバーします。APCuだと難しいとか構造的に適さないとか複数サーバーで共有したいという時にはredisかmemcache使うという方針です。

 

後は/uploadにアップロードされる画像をnginxで返してブラウザ側でキャッシュされるようにもしましたが、あまりスコアには影響ありませんでした。

外部APIのレスポンスキャッシュ、DBサーバーの分離、campagin値を上げる、php-fpmのプロセス数を増やすあたりがスコアへの影響が大きかったです。

特にphp-fpmのプロセス数はあげる度にスコアが地味にあがっていくので最終的には150(!)くらいにまで上げました。

こんな設定、あのスペックのサーバーだったら業務ではまずやりませんが、isuconなので動けばいいや精神です。(こんな設定でもちゃんとさばけるPHPすごい)。

MySQLを別サーバーにした時はMySQLの権限まわり調整したけどなぜかappサーバーからつながらず、少し手間取ってしまった。google先生にきいてbind-addressということに気づけたけど、このあたり時間かかってたらやばかったです。

 

DB周りでどのクエリが重たいのかはmyprofierを使って確認しました。

https://github.com/KLab/myprofiler

このツールはすごくシンプルなので使い勝手がよく、いつもお世話になってます。

netdataはさくっとインストールできて便利なのですが、最初に全体のイメージ掴んだら後は終始アプリがボトルネックだったのであまり見なくなりました。だいたいはtopみてました。

 

前回もソロ参加でしたし、PHPでのチューニングや実装スピードには不安はなかったです。

スコアに直接的に影響があったチューニングができるまで15時くらいまでかかってしまったり、序盤で初期で用意されているupload以下の画像を謎に消えてしまうトラブルに見舞われたりして他のサーバーからもってくるみたいなことやってて、もう今年は無理かなぁと諦めかけましたが、最終的にはなんとかスコアは1日目だと14位、全日だと26位の位置までいけたのでソロでやったわりにはまぁ上出来かなぁ。

 

ただ、ベンチが5回に1回くらいの確率で/buyが500になることでfailedになっていたのですが、毎回ではないから勝手に外部APIの問題かなーと決めつけてしまって、終盤気味で時間がなかったこともあり、とりあえず深く追わず他のチューニングや再起動チェックを優先してしまいました。実際には/buyはデッドロックが起きたときに500になっていたようです。

結果的にこの/buyのエラーで追試が失敗してしまい、本線進出は逃してしまいました。

追試時にデッドロックが起きなかったらいけてたかもですが、failedになった原因を確認するという超基本的な部分を怠ったのが原因なのでここは猛省ポイントです。 

ソロ参加は無謀な印象がありますが、自分的にはコミュニケーションコストや実装を複数人でやる際の細かな調整、実装方針の話し合い、PRマージしたり競合解決したりみたいなところが一切なくなるし、方針さえミスらなければ生産性的にはいいんじゃないかなと思ってます。

特に近年アプリが結構でかくなってきているので一人でガッツリやりきるパワーがあるならソロおすすめです。

でもwebサーバー、アプリ、DBの全体的な知識を求められたり、キャッシュ戦略なんかも全部自分で考えたり、失敗したときの責任も全部自分なのでまぁまぁつらいです(そこが醍醐味ですが)。なので、追試ミスをやらかしたのはさすがに落ち込んで、とりあえずやけ酒して家族に慰めてもらいました。

 

今回のミスはしっかり反省して来年につなげるぞ…!

『PHP Internals Book』を翻訳しました

PHPの内部構造についての資料として有名な『PHP Internals Book』というサイトがあるんですが、これを日本語に翻訳したサイトを先日リリースしました。

 

PHP Internals Book 日本語訳

 

本家のPHP Internals Bookは、Julien Pauliさん、Anthony Ferraraさん、Nikita PopovさんというPHPを実際に開発している有名な方々によって共同執筆されたもので、PHPの内部構造について解説したものです。

これほどまとまった資料はあまりなく、PHPの内部構造を勉強する人にとっては非常に役に立つ資料で、他のPHP内部構造について日本語で書かれた資料には言及されてないような情報も多く、PHP7.1がリリースされた今でも参考になります。

 

私自身、PHP内部構造を勉強する上でPHP Internals Bookをよく参照していましたが、もともと、PHPの内部構造についての日本語で書かれた資料は本当に少なく、勉強する上ですごく不便だなと感じていました。

私のように感じている人はきっといるはずだと思って、それなら翻訳してしまえということで翻訳しちゃいました。

なお、私自身の英語力は特別高いわけではないので、翻訳において不適切な部分等ございましたら連絡してもらえれば喜んで修正します(PR出してくれたら泣いて喜びます)。

 

翻訳サイトを公開するにあたっては、駄目元で『翻訳したけど公開していい?』って本家の方々にメールすると『翻訳ありがとう、問題ないよ!日本コミュニティにとって役に立つことを祈っているよ』という内容の返信をいただきました。いえい。

ちなみに、文章中で使用しているいくつかの図を使用することも許可を取ってあります。

 

さらに、PHP Internals Book本家サイトの方からリンク貼るね~って言ってくれたのでそのうち、リンク貼ってもらえるかもしれません。わくわく。

 

あと、PHPの内部構造について解説している有名な本に『Extending and Embedding PHP』というのがあるんですが、これも日本語訳がありません。内容は少し古いのですが、今でも非常に有益な情報が多いです。今更感は否めないけど、日本語訳でないかなぁ。

www.amazon.com

 

ねぇ、ハーモニーって知ってる・・・

先日、映画『ハーモニー』を観てきました。

個人的には『屍者の帝国』の映画がダメダメすぎて、それと比べてはまぁよかったかなと思えるレベルでした。

  それよりなんなの、あのビルとかのデザインは。

ピンク色という設定は原作にもあるし、世界観的に意味のある色だけど、あの蜘蛛の巣みたいなデザインは世界観に全く合ってない。

しかもピンクの色も濃くて肉色っぽくて、あの毛細血管みたいなデザインは、生府のアグリーメンツにとっては不快感すら感じそう(そしてWatchMeにも警告されそう)

 

建物のデザインは監視社会を描く上でも、小説を映画化するという意味でも非常に大事な部分なのになぁ、、

 

ビジュアル的にいけてなくてそこに違和感が拭えなかったのですが、生原画ほしさにart bookはポチりました(ズコー

 

PHPカンファレンス2015 スライドまとめ

PHPカンファレンス2015に参加してきました。

PHPの生みの親のRasmusさんによる基調講演があり豪華なイベントでした。

今回はトラック数が8つもあり、皆さん見逃したものも多かったはず。

ということで公開されているスライドをまとめてみました。

 

 

PHPの今とこれから2015』 廣川 類

www.slideshare.net

 

『今どきのSQLインジェクションの話題総まとめ』 徳丸浩

www.slideshare.net

 

基調講演 Rasmus Lerdorf

talks.php.net

 

『いまどきのPHP開発現場 -2015年秋-』新原雅司

www.slideshare.net

『Composerではじめるアプリケーション開発』岸田 健一郎

speakerdeck.com

 

『超高速 WordPress 〜PHP7 vs HHVM vs PHP5.6』 中村けん牛

http://www.prime-strategy.co.jp/resource/pdf/PHP2015Tokyo.pdf

 

『OWASPよりPHPプログラマに贈る セキュリティ実装虎の巻』仲田 翔一

speakerdeck.com

 

PHPの基本クイズ  ーこの動き、あなたは知っていますか?』寺田渉

slides.com

 

Visual Studio Code』戸倉彩

www.slideshare.net

 

MySQL 5.7にやられないためにおぼえてほしいこと』yoku0825

www.slideshare.net

『営業・運用を支える 気づける管理画面』前田雅央

www.slideshare.net

 

『How to Build Efficient and Integrated Development Environment for The Team』sotarok

speakerdeck.com

 

『Electronからクロスプラットフォーム・アプリケーションの歴史を考える』 秋山顕治

speakerdeck.com

 

『Behat Driven Development』富所亮

www.slideshare.net

 

『モダンなアーキテクチャPHPベースOSS CMS Drupal8』長谷川智希

www.slideshare.net

 

『WebRTC開発者向けプラットフォーム 「SkyWay」の裏側』仲裕介

www.slideshare.net

 

脆弱性もバグ、だからテストしよう!』市川@cakephper

www.slideshare.net

 

『フリマアプリ「メルカリ」の急成長を支えるエンジニアリング』久保達彦

speakerdeck.com

 

『Database Theory Models and Abstracations』Eugene Cook

speakerdeck.com

 

PHPデプロイツールの世界』 yuuki takezawa

www.slideshare.net

映画感想『ミッションインポッシブル ローグ・ネイション』

スパイ映画の敵とは、悪とは。

 

『ミッションインポッシブル ローグネイション』観てきました。

一言でいうと個人的にシリーズ中では最高傑作だと思いました。

 

以下ネタバレを含む感想でっす。

 

まずオープニング。予告編で流れている飛行機にしがみついてイーサンが侵入を試みようとするシーンが冒頭でイキナリでてきます笑

 

なんだと!!

 

その後、いくつかのアクションシーンは登場しますが見事にこの飛行機アクションを凌駕する爽快さでした。

またアクション自体がMI:2のようにダレることなく見れたなので単純にハラハラできてよかったです。

あと今回のローグネイションの特徴としてイルサという女スパイが登場します。

この女スパイが強い。イーサンがピンチの時にはこの女スパイが華麗に助けるのです。

そして表情が知的なのが個人的には好み。

 

あとベンジーが今回重要なポジションなので、でずっぱりなのも個人的にすごく嬉しかったです。

ベンジーとイーサンの友情がアツかったですね。

あといつも通りトム・クルーズはかっこいいです。はい。

 

さて、前作ゴーストプロトコルの最後の最後で名前だけ登場した『シンジケート』というのが今回のストーリーに大きく関わります。

 

話が進むに連れて、ん?こいつはなんの目的なんだ?本当に敵なのか?

という感じでサスペンス色も強めであります。

今作の監督がクリストファー・マッカリーさんという人で、ユージャル・サスペクツの脚本の人といえば納得か。

 

ミッション・インポッシブル含め、スパイ映画を見る時は「敵」の存在をすごく意識して見てしまいます。

ひと昔前のスパイ映画の敵にはその時代性が現れ、ソ連北朝鮮、イランイラクあたりまではそれら特定の国というパターンが多かった気がします。

しかし最近では敵が「テロリスト」というのが多くなってきました。

 現代の戦争が国家間のものでなくなりつつあることと、特定の国を敵にしたらよいという単純な時代ではなくなったためでしょう。

それに今は特定の国を敵として映画を作りにくい世の中です。

テロリストだとどの国の人も標的となり得えるため、誰にとっても他人事ではないリアリティのある恐怖を与えられますから、作り手にとってはすごく都合がいいのでしょう。

 

特にMIのような王道スパイ映画には観客が納得する悪役が必要です。

これまでMIの敵を思い返してみると、結局敵は身内か、テロリストでした。

しかし今作はテロリストが敵という単純なお話ではありませんでした。

物語が進むに連れて「シンジケート」の全貌が徐々に明らかになっていきます。

簡単にいうと、シンジケートとはイギリスにとって都合の悪い存在を、各国の人材(例えば死亡しているエージェントのようなならず者)をスカウトしてその任務にあたらせ、その障害に対処させるというものです。

このならず者はイギリスの国から資金や人材の援助を受け、任務にあたります。

レーンはそのシンジケートを利用し、人材と資金を得て世界中でテロをおこなっている今作の敵役です。

しかしレーンは悪でしたでしょうか?

これまでのシリーズのテロリストはキメラウィルスをばら撒いて特効薬で儲けることや、世界を全面核戦争に陥れる目的でしたので、敵であり悪でした。

 

 レーンはそれとは違い自分なりの信念をもって世界中でテロをおこしているようでした。

この行動だけみれば、イーサンとあまり変わりませんね。

イーサンも信念をもって殺人を行なうエージェントであり、他の立場からすればテロリストと同じです笑

なのでレーンとイーサンは敵対する関係ではありますが、差はほとんどありません(カメラがあるかどうかくらい笑)。

それにイーサンはもはや体制側でもなんでもありません。むしろ政府からの援助を得ているレーンの方が、CIAに追われてるイーサンよりよっぽど体制側でした。

イーサンとレーンはどちらもならず者組織(ローグネイション)で、どちらにも正義はないが信念があるだけなのです。

今作の敵はレーンでしたが、悪は倫理なき社会システムの腐敗ということでした。

この敵役がイコール悪ではなく、敵対する存在がイーサンとほぼ同じというのはシリーズの中でも新しかったんじゃないでしょうか。

 

個人的にはレーンにもっと自らの信念を主張する独白シーンは欲しかったなーと思いました。

今作の敵と悪がイコールではないという点と、それ故にイーサンは簡単にレーンとなり得るんだという恐怖がより強調されるかなーと。

 

続編の製作が既に伝えられておりますが、次の敵はテロリストなのか、身内なのか、今作のような信念あるならず者か、はたまたそれらとは違う新しい何かなのか。

期待して待ちたいと思います。

 

映画感想『ジュラシック・ワールド』

恐竜がSFじゃなくなった日

 

先日、話題の『ジュラシック・ワールド』を見てきました。

米オープニング興収歴代トップということでワクワクで映画観に乗り込んだのであります。

以下ネタバレを含む感想です。

 

ネタバレっていうかまぁこの映画に限っては見る前から大筋は誰でもわかりますよね。恐竜が逃げ出して暴れてなんとかする映画です。そうそれだけ!

 懐かしいBGMが流れて、恐竜がバシバシ逃げて人間を殺しまくるいう、観客期待通りのシーンでお腹いっぱいになれる感じの映画でした。

 

シリーズ作の第一作である『ジュラシック・パーク』と同じ世界観で描かれ、その22年後という設定の本作は、

ジュラシック・パーク』で登場するパークが現実のものとなって一般人がディズニーランドに行くように、恐竜がエンターテイメントとなっている時代が背景となっています。

このように書けばこの映画は一種の近未来SF作品と思われるかもですが、これはSF作品ではありません。少なくともそういう演出ではありませんでした。そのSFっぽさが抑えられててよかったなーと思ったことをつらつらと書いていきます(こういう映画は恐竜パニックを楽しむことが正しい鑑賞スタイルであって、ストーリー性とか細けえことはいいんだよな作品だと思いますが笑)

 

第一作の『ジュラシック・パーク』は紛れもないSF作品でした。地中深くに埋まった古代の蚊の体内に含まれていた恐竜の血液を採取し、そのDNA情報をもとに恐竜を復活させるというバイオテクノロジーのIFがお話の根底にありますので(まぁそれが実際可能なのかどうかはおいておいて)。

また『ジュラシック・パーク』では主人公が古生物学者ですし、恐竜を目の前にした博士たちの目の輝きはこちらも見ていてニヤニヤしてしまうほどのSOW(センス・オブ・ワンダー)でした。

これまで本や化石からしか触れられなかった古代生物が目の前に存在している。存在してしまっている。

そこでは存在が先行しているので、これまでのいくら権威ある学会の通説など意味をなさない瞬間を主人公は経験しているのです。

 

あ、恐竜ってこうやって鳴くんだ!集団で行動するんだ!恐竜はこんな賢いのか!

と。

 

恐竜が襲ってきて、キャー怖いなところも勿論見どころですがね。そこも含めて恐竜を体験するというSOWを描いているので立派なSF作品です。テクノロジーによって、時代を超えて地球を支配した2つの生物が対峙したらというIF。

 

しかし『ジュラシック・ワールド』はどうでしょう。

未来なお話でパークでは様々なテクノロジーを駆使されている描写はありますが、この映画のストーリーのテーマをあえて表現するなら『恐竜がエンターテイメントとして当たり前となった時代、あるいはその時代への変化そのもの』、でした。

 

この映画では恐竜を単なる見世物だけでなく戦争の道具として社会のために軍事利用するべきだとか、いやいや駄目だとか、その辺の倫理のお話がでてきており、テクノロジーの産物として復活させた恐竜を社会派なテーマへとシリーズを通して推移させています。

 

シリーズ作同様、この映画でも恐竜は逃げ出し暴れまくりますが、やはり背景が違うので受ける印象も違ってきます。前述したように、第一作ではそういう部分含め、恐竜という生物とのエンカウント体験として描かれてますが本作での演出は単なる災害・事故感が際立っています。

そこでは恐竜は思ったより知性があって手強い存在であるとかそういうのよりも、この災害をどう解決するかという人間側の解決力や運営力に力点が少し移動しているように思えます。

 (おいおい何千万ドルかけた商品を殺さないようにしようぜ!とか同じような声が現代のどこかの会社の会議から聞こえてきそうなセリフでしたね)

 

このように、映画の演出もあえてSF感は出さないように意図しているのかなと。

っていうかもしこの映画がSF映画として送り出したかったのなら、恐竜と心通わすオーウェンを主人公にしていなかったでしょう笑

インドミナス・レックスがラプトルとDNA的につながりがあってラプトルが寝返ったというこの映画の数少ないSFちっくな状況も、科学技術によって解決するのではなく、結局オーウェンとラプトルの絆が解決しちゃいましたし笑

  

言ってしまえば『ジュラシック・パーク』ではSFとなるために恐竜はちゃんと恐竜でないとマズイですが、『ジュラシック・ワールド』ではぶっちゃけ恐竜は恐竜でなくてもいいのです。

実際、今作の時代の人々は「もっと歯を」という心理で獰猛そうに見えるモンスターを望んでいるだけのようですので、学術的な、なんちゃらザウルスとして恐竜を見に来るのではなく、あくまでモンスターショーを見ているだけでしたし、インドミナス・レックスはもはや恐竜ではなくただのモンスターでした(恐竜がエンタメとして当たり前な存在となった時代ではもはや正確な恐竜には拘らなくなり、単純に強そうに見えるモンスターを望むようになるという人々の心理はいかにもありそうです笑)。

 

まぁSFの体はしていなかったのですが、恐竜を管理・運営するあたりやオーウェンがおこなっていたように恐竜が心通わす対象となっているあたりがどことなく無性に感慨深いんですよね笑

SF作品がSF作品でなくなったほどに現実も時間が推移しているのが感じられて笑

(ちなみにジュラシック・パークは93年公開なので22年前の作品で、

ジュラシック・ワールドはそのジュラシック・パークから22年後先のお話!)

 

このSFっぽさをあえてなくして現実ぽく描く感じがよかったなーと。

そういう意味ではシリーズの続編としてはまぁ王道的というか、ファンが喜ぶ良い展開な感じです。

昔に第一作で恐竜すげぇとか感動していたいたのを思い出して、懐かしくもあり、ちょっぴりもの悲しくなりましたが笑

 

あとラストの第一作のボス、我らがヒーローTREXと今作のハイブリッド遺伝子な新モンスターの激アツバトルの行方とか完全にギャグでした笑

 

おまえかよ、と笑

 

最後にまとめますと、コーラとポップコーン片手にデートする映画としてはなかなかいい感じの映画じゃないでしょうか(まとまってない)。

 

PHPカンファレンス関西2015 スライドまとめ

 

PHPカンファレンス関西2015に行ってきました。

今回から場所が変わったり、初の有料化だったりとスタッフの皆さんは色々と大変だったかと思います。本当にありがとうございました。

 

今回はセッションのトラックが5本で、内容的にも初心者用から濃いものまで充実しており、非常に満足できました。

 

見られなかったけど気になるセッションが数多くありましたので、ネットで公開されているセッションのスライドをまとめてみました。

 

とりあえず見つけられたものを掲載させて頂いておりますが、これからアップされるもの等もあるかと思いますので、また見つけ次第更新させて頂きます。

 

セッションのスライド

 

基調講演『PHP7で変わること 言語仕様とエンジンの改善ポイント』

www.slideshare.net

 

『ビッグウェーブ到来!? 関数プログラミング導入の要点』

www.slideshare.net

 

PHPにないセキュリティ機能』

www.slideshare.net

『DMMプラットフォームの失敗から学ぶスクラム開発体制』

 

PHPとフロントのイイ関係 動くスタイルガイドを作ろう』

www.slideshare.net

『Codeceptionのテスト』

www.slideshare.net

 

 

PHP初心者に贈る 間違えないPHPの始め方 学び方』

www.slideshare.net

 

継続的インテグレーションとChatOpsでシステム開発 運用を効率化』

speakerdeck.com

 

PHPで始めるAWSモバイルサービス』

www.slideshare.net

 

『PHPerだからこそ知っておきたい JSテストを複数ブラウザで自動実行する話』

speakerdeck.com

 

PHP × AWSでスケーラブルなシステムをつくろう』

www.slideshare.net

 

Symfony -フレームワークの先へ-』

speakerdeck.com

 

『Yii Framework 2.0 いま求められるRAD標準とは』

www.slideshare.net

LTスライド

 

www.slideshare.net

 

www.slideshare.net

 

www.slideshare.net

 

www.slideshare.net

RubyWarriorをPHPに移植した - Yusuke Ando a.k.a yando

 

www.slideshare.net

www.slideshare.net