個人的な日記として書きます。
発表についてのフォローとかは特にありません。

去年に続き二年連続で枠をいただけたので、話してきました。

去年は 5 分間に 26 枚のスライドを詰め込みましたが、今年は 3 分間に 34 枚を詰め込みました。

内容については、今日たまたま見ていた PyCon JP 2012gevent についての発表が基礎からわかりやすく解説されていて素晴らしかったので、そちらを観るのがいいのではないでしょうか。
gevent と gunicorn については気になったのでソースコードを読んでみようと思いますし、コルーチンベースということなので PHP 5.5 なら Generator を使って同様のアプローチができないか、とかいろいろワクワクしてしまいますね。

他の方の発表を観た中では、最先端 Web 開発の話がダントツで良かったです。
特に「誰もこれない場所へ行くのではなく誰もがこれる場所を作る」というのは心に刺さる名フレーズだったと思います。
あとは Pull Request で仕事を進めていくのも凄くうらやましいですし、自分の会社でもそういう風にしていけたらと感じています。

ボクも元々はこういう日々の開発についての話がしたかったのですが、まだ自信を持って「成果があった」と言い切れる状態では無いので、他の人と被らなさそうなところで話を選んでみました。

この発表では「フルスタックフレームワークは夢」という話もあり、ボク自身も同じことを強く感じています。
最近は週末に単機能ライブラリを開発して GitHub に公開しておき、平日にそれを社内のコードベースに取り込む、みたいなことをしているのですが、諸般の事情によりいずれも PHP 5.2 で書かれているので、PHP 5.4 まで stable としてリリースされている今ではあんまりウケないんじゃないか、と思いました。
ところが今回のカンファレンスの基調講演によると PHP 5.2 はまだまだ使われているらしく (というかこのグラフ的には一番多い)、それらについても機会があれば話してみたいと思いました。

エンジニアになって 4 年目、勉強会で人前に出て発表するようになってようやく 1 年が経ちました。
(そういえば社外でまともに発表したのは去年の PHP カンファレンスが初めてでした)
振り返ってみると、便利なツールであったりフレームワークであったりの話ばかりで、より泥臭い実践的なノウハウについての話がほとんどできていません。
今の自分に足りないもの、そして仕事の中で求められているものはそこにある気がしているので、来年こそはそういう発表をしてみたいと思いました。
(それにはそれなりの成果が先立っている必要があるわけですが)

最後に、PHP カンファレンス 2012 のスタッフの皆様、素晴らしいイベントをありがとうございました。

,

Zend Engine 初心者による, Zend Engine 初心者のための発表という感じで話してきました.

今年に入ってから, scribble というなぐり書き用のブログを始めました.
GitHub Pages 内で Jekyll というツールを使って書いているんですが, Markdown で書いて git commit して git push するだけでサクッと公開できるのでとても気に入っています.

今のところ主に PHP 本体や, そのコアであるところの Zend Engine のコードリーディングが中心で, 今回の発表はこれらの記事をまとめた内容です.

闇 PHP 勉強会でのその他の発表はというと, PHP 製のパーサコンビネータとか, OpenCL とか, 魔改造 PHP とか様々で, こんな中でハッシュテーブルの実装について話し手も釈迦に説法なんではないかとかいろいろ危惧しましたが, わかりやすかったという声ももらえたようでよかったです.

この発表では, 既に scribble でも紹介している hashtable_dump という PHP Extension についても紹介しています.

本当は HashDoS 問題を解決したという Perl や Ruby におけるハッシュテーブルの実装についても調べて発表したかったんですが, 今回は間に合いませんでした.
次回の闇 PHP 勉強会があれば是非それらについて発表できればと思っています.

最後に, 主催の @anatoo さん, 会場提供のアシアル株式会社さん, 楽しい勉強会をありがとうございました.

最近イチオシの php-buildphpenv について紹介してきました.

内容はほぼ最近のブログ記事をまとめた感じです.

一度ブログに書いたものを敢えて発表ネタにしたのにはいくつか理由があります.
(もちろん, 一度記事にまとめたネタなのでスライドに起こしやすい, というのもありますが…)

  • もっと色んな人に知って欲しい
  • もっといろんな人に使って欲しい
  • まだまだこなれていない部分があり, フィードバックが必要
  • フィードバックやパッチによりもっと改善されるはず

というわけで皆さんどんどん使いましょう.

類似のツールについて

php-build および phpenv と類似の機能をもったツールは他にもあります.
勉強会でも, 例えば phpall とはどう違うのか, という質問がありました.

結論から言うと, 私は他のツールは特に使ったことが無いのでよくわかりません.
ですが, もともと rbenv は Ruby コミュニティではかなり人気のツールですし, 便利な機能はいろいろと揃っており, 比較的失敗の無い選択肢だと考えています.

また, phpall の違いとして, phpall は各バージョンのバイナリをそれぞれ php-5.2.8 といった, バージョン番号付きのファイル名にしているようですが, phpenv は php コマンド自体を自由に切り替えます.
特定のコードを複数のバージョンで一気に実行する, というときには phpall が便利そうですが, ライブラリの開発等には phpenv の方が適していると思われます.
また, phpenv においては pyrus, phar, phpunit といったコマンドも各バージョンごとに試すことができる, というのも大きな利点です.

phpenv のプラグイン機能について

元々, これまでのブログ記事をまとめただけの発表にするつもりでしたが, ひとつだけおもしろい機能を見つけたので, そこだけ新ネタです.
phpenv の元になっている rbenv にはプラグインという機能があり, 専用のディレクトリにシェルスクリプトを配置するだけで簡単にサブコマンドを登録できる, というものです.
当然 phpenv でも使える機能です.

phpenv each によるコマンドの一斉実行

rbenv のプラグインとして公開されているものの中で, とりあえず rbenv-each というものをつかってみました.
これは rbnev (もしくは phpenv) の管理下にある全てのバージョンのバイナリで, 指定したコマンドを実行する, というものです.

とりあえず, php -v によるバージョンの確認を試してみました.

phpenv each によるバージョンの一斉確認

phpenv each によるバージョンの一斉確認

これ自体はあまり意味の無い例ですが, 例えば PHPUnit によるユニットテストを, 複数のバージョンの PHP で一斉に実行できるすれば, ライブラリ作者に取ってはかなり便利なのではないでしょうか.
それについてはいずれ調べて, また記事にしたいと思います.

このように, php-buildphpenv にはまだまだ便利な使い方がたくさんあるはずです.
利用者が増えることで, そういったノウハウが発掘され, 共有されることを心から願います.

最後になりますが, 今回の勉強会の主催の @gusagi さん, そして会場提供の株式会社 VOYAGE GROUP さん, 楽しい勉強会を本当にありがとうございました.

, ,