PHPカンファレンス2008に行ってきた


はじめに

PHPカンファレンスというのは、日本のPHPユーザが集まってできたPHPユーザ会が主催のイベントです。
最近PHPの仕事が続いていて、ここら辺で一度しっかり学び直さないといけないなとか、あんまり幸せでないプロジェクトが続いていてこのままではPHPが嫌いになりそうだとか色々思っていたところに偶然、「開催するよ」という記事を見つけたので勢いで申し込みました。
行ってみた感想を書いてみます。

講演感想

講演の内容自体はニコニコ動画にアップロードされているので、
あんまり詳しく書きません。
是非動画を参照してみて下さい。
# それにしても開催日の夜にはアップされているって……さすがというか何というか
# 小会場の方は動画のアップ無いのかな……?残念
## アップありました。

ニコニコ動画へのリンク
http://techtalk.jp/2008/07/php2008.html

開催プログラム
http://www.php.gr.jp/seminar/20080721/prog.php

会場入りと第一印象

会場入り前

駅前で既にこの人らは同じイベントに参加するのだろうなと思わしき人々がちらほら……。駅から会場は本当に近いです。事前にGoogleEarthで確認していたので迷わずに会場まで到着。会場の建物自体もなかなか大きいものでしたが、そこは案内の表示があったので問題無し。

会場入り

受付で協賛企業のパンフとアンケート、それから飴*1を貰って入場。
会場は大会場と小会場の二つがあって、基調講演は大会場。というわけで大会場に入ったんですが、これが想像していたよりかなり広い。
私が会場入りした時間が9:40頃*2だったのもあって、まだあんまり人は居ませんでしたが、時間が経つにつれて徐々に増えていき、最終的に会場が埋まりました。
普段アルバイト先とかでもプログラミング自体に興味を持っている人とかがあんまり周りに居ないので、こういう集まりに参加する人がこんなに居るのだと思ってちょっと感動。

大会場の様子を撮った写真をアップした記事がありました。
http://d.hatena.ne.jp/shimooka/20080721

基調講演

会場 大会場
講演者 廣川類氏 (PHP5徹底攻略 エキスパート編の著者)
動画
  • 今秋にリリースされるというPHP5.3の話
    • 実行効率の上昇と各種機能の追加がメインになる
    • PHP6として公開しようとしていた機能の多くを実装
      • 名前空間、ラムダ、クロージャ、MySQLのネイティブドライバ等
    • PHP4は、2008/08/08にサポート打ち切り
    • なのに世間ではPHP4から5への移行が全然進まないのが悩みの種
    • Javaで言う「Jar」にあたる「Phar」にネイティブで対応
      • PHPアプリケーションの配布が容易になる
    • 他にも色々。ただ、PHP5.3を実際に仕事で使えるのがいつになるかは不明だ。
  • PHP自体の話
    • PHP本体のコード品質は比較的高い
      • 不具合混入率が低い
      • しかしPHP本体は巨大なコードなので率が低くても数は……
    • テストコードを頑張って書いているがまだカバー率55%(PHP5.2)

質疑応答で「PHPが4から6に移行するタイミングで4から乗り換えよう*3と考えている人も結構居ると思うが、6の開発が進まず、その機能の大半を5.3に実装しようとしている状態では、そういう人たちはどうすればいいのか」といった趣旨の質問がありました。
それに対しては、「PHP6はしばらく出せない状態が続くと思われるので、向こう3年ぐらいはPHP5でやった方がいい。また、PHP5から6への移行ではPHP4から5程の文法の大きな変化が無いので、PHP5に移行しておくことで6への準備にもなる筈」といった感じの返答でした。

#「」の中は記憶を元に再構成しているので実際の発言内容そのままではありません

この辺でかなり空調が効いていて寒いことに気付く

PHPでつくる ぐるなび

会場 大会場
講演者 佐藤史彦氏 (ぐるなびの開発部署の方)
動画

ぐるなびのシステム規模

店舗データ 500,000件
店舗詳細 62,000件
アクセス数 720,000,000PV/月
会員数 約5,800,000

ぐるなびのシステム構成

第一世代 第二世代 第三世代 第四世代
環境 Windows+IIS Linux+Apache
管理UI なし PHP
店舗データ Excel PostgreSQL Oracle+XML
詳細ページ 静的HTML(手作り) 静的HTML(CMS)
検索用DB DBF PostgreSQL*4 MySQL MySQL+XML
検索機能 Delphi PHP

#PHPは最初から今までPHP4

  • システムの構成が結構面白い
    • コードをNAS上に置いて各サーバからマウントしている
    • 機能追加や修正等はNAS上に配置するだけで全サーバに適用できる
    • 全サーバからアクセスされるNASに負荷がかかるが、いいNASを使っているので現状は大丈夫
  • PHPのどこが良いか
    • 動的スクリプト*5
    • 標準ライブラリが充実
    • mbstringで日本語が扱える
    • PHPを含むシステム全体の導入コストを低くできる
  • 適当に組んでも動いてしまう分悲惨なコードを作りやすい面はある
    • セキュアコーディングセミナーへの参加
    • 外部によるセキュリティ診断等
  • php.iniの設定や使用しているライブラリは普通な感じ
    • テンプレートエンジンのコアはSmarty
  • PHP4から5に移行したいが、なかなか進まない
    • 現在の機能をPHP5の機能を使ってリファクタリングしつつ共通機能を分離・統合したいのでおおがかりになっている
  • SNS機能のベースはOpenPNE
    • 外部のもので使えるものは使っていきたい
  • ぐるなびには中国版がある

面白かった。ぐるなびは時々使うので、裏側が見られるのはやっぱり楽しい。
アルバイトでやっている案件は、だいたいが小規模な社内システムだったり想定している顧客数があまり多くなかったりして、負荷を分散させるようなシステムを構築した経験が無いのでこういう話を聞くたびに凄いと思います。
あとは、ちょっとだけ触れられた中国ではPHP技術者が少なくてJavaや.NETな人が多いという話ももうちょっと聞いてみたかったかもしれない。ぐるなび関係無いけど……。

Webセキュリティ

会場 小会場
講演者 永安佑希允氏(IPAのセキュリティ部門の方)
動画 無し
  • セキュリティ意識を高めるためのCDを貰った
  • IPAの脆弱性届出制度を使って下さい
    • 脆弱性を発見した時に届け出るとIPAから開発企業に連絡が行く
  • IPAにはセキュリティに関連した様々なコンテンツがあります
  • SQLインジェクションのデモ

内容的にはIPAのコンテンツ紹介がメインだったので少し物足りなかったかも。
ただ、「大会場:テクニカルセッション」「小会場:ビギナーズセッション」という扱いなので妥当だったとは思います。
個人的にはこの方に大会場でディープな話をしていただきたかった!けど色々事情があるのだと思います。

PHP開発環境 - Zend Studio for eclipse –

会場 小会場
講演者 佐藤栄一氏(ZendJapan)
間辺有理氏(ZendJapan)
動画 無し
  • Zend Studio 6 日本語版の30日体験版CDを貰った
  • PHPとZend社の関係
  • Zend社の扱う商品
  • Zend Core
    • PHP動作環境一式のインストーラ
  • Zend Platform
    • 色々便利な機能が付いたPHP実行環境
  • これらはPHPをより便利にするための物で、これらが無くてもPHPはフル機能で動きます
  • ZendStudioの紹介
    • 元々JavaでZendStudioを作っていた
    • Eclipseが開発環境の標準になりつつあり、ZendStudioをEclipse上で使いたいという需要が高まってきた
    • Zend社は手始めにPDTの開発に協力した
    • PDTの成果をもとに作ったのがZend Studio for Eclipse(Zend Studio 6)

PHPの開発ツールは前から悩んでいて、最近はEclipse+PDTを使っていたんですが、アカデミックライセンスでも年間2万*6という高額な製品では何が違うんだろうと思って参加。
機能的には、プロファイラとPHPUnitが統合されているのがPDTと比べて便利そうなところ。
「コードギャラリ」という機能は何が良いのかよくわからなかった……。
個人的にはZend Japanの親会社がTurbo Linux社だというのが凄い驚き。
Turbo Linux社のwizpyを持て余しているんです……。

PHPユーザ会活動報告

会場 大会場
講演者 halt氏(events*7とかplanet*8とかの作者の方)株式会社RYUS
動画
  • PHPユーザ会は日本のPHPユーザの緩い連帯で成り立っている
    • 会長も会員名簿も会費も無い
    • 活動の自由度が高い反面、大きな行動を取りづらい
  • システム構築のプロジェクトなら[coderepos]を使って緩い連帯をうまく使えるのではないか
    • eventsで不具合が発生した時にcodereposを使ったシステムがうまく回った事例
  • eventsというシステムでPHP関連のイベントを自由に主催し、参加者を募ることができる
  • 今年に入って16件開催された
  • planetsというシステムで日本のPHP関連情報で有益なBlog等の更新情報を表示
  • 自分がPHPユーザ会会員だなと少しでも思ったらPHPユーザ会会員です
    • 皆さんも是非積極的にMLで発言したり活動に参加して下さい

PHPユーザ会主催のカンファレンスに参加しておいてあれですが、私はPHPユーザ会がどういう組織かよくわからなかったのでありがたい講演でした。
私にとってのPHPユーザ会は、PHPで検索したらトップに出てきてPHPのダウンロードリンクがある場所といった感じでしたから。
でもむしろ、ユーザ会というのは利用者の互助組織といった感じなのだろうと想像していたので、他の言語では会員登録とか会費とかが必要だということの方が驚いたかもしれない。
でもそりゃ「会」なんだしそうか。2ch的な繋がりに毒されすぎ?
eventsというのはちょっとチェックしてみたんですが、イベントの大半が東京というのがなかなか厳しいところ。
今回のように大きなイベントならともかく、小さなイベントには地方からだと頻繁に参加できませんからね……。

PHPネタの集め方

会場 大会場
講演者 下岡秀幸氏(Do You PHP?の方)株式会社セラン
動画
  • Firefoxのアドオンで国内外のPHP関連情報サイトのフィードをチェック
  • PHPやApache等の最新リリース情報は、ダウンロードディレクトリを監視していればわかる
  • フィードを配信していないサイトやページのチェックはWWWC
  • 情報は裏を取ること、自分で試してみることが重要
  • 皆さんも色々試して失敗し、それをWebに公開しましょう

PHP関連の情報を検索すると高確率で上位に出てくるサイトの中の人でした。
最近だとPHPUnitを試す時に参考にしたりしました。
ネタの集め方は、やはり地道な情報収集。
WWWCというのがとても懐かしい感じでした。
失敗情報をWebに公開しようというのに共感。
うまくいった過程よりも失敗情報の方が役に立つことがあるんですよね。
こんな失敗自分しかしないだろうと思っていたら意外と他の人も同じところではまっていたり。。

パネルディスカッション

会場 大会場
講演者 竹迫良範氏 (サイボウズ・ラボ株式会社)
高橋征義氏 (株式会社ツインスパーク,日本Rubyの会)
柴田淳氏 (日本Pythonユーザ会)
ひがやすを氏 (Seasarプロジェクト,ひがやすを blog)
id:amachang氏 (IT戦記)
個々一番氏 (日本PHPユーザ会)
動画

元々Rubyの開発者の方によるPHPがいかにダメな言語かを力説したAttacking PHPという文書があったんですが、それに端を発した一連の議論の流れを継いだ企画みたいです。
ディスカッションの内容は動画を見るのオススメです。

印象に残ったのは

・オススメ言語はJavaScript
これは同意です。何しろJavaScriptが書けるだけでできることが沢山。
ActionScriptもJavaScript系(ECMAScript系)だし、サクラエディタのマクロ用にJScriptを使えたり、Firefoxの拡張やGreasemonkey*9も書ける、といった具合。
そういう意味では、海外のソフトウェアを見るにPythonもいいのかな*10
勉強という意味ではC、LISP、機械語の3択になるのかな……。

・PHP自体がフレームワークと言えるから新たにフレームワークを導入する必要性を感じない
とはいえフレームワークを入れないとどうしようも無いのではないかという場面を最近見たし。。
あと、何で毎回毎回同じものを作っているんだとか……。
きっと場合によるんだと思います。
必要無い時に無理に入れることは無いと思いますし。
って普通すぎるか。。

ライトニングトーク

募集に応じた参加者が5分間の自由時間にPHPに関する内容を好きにプレゼンするといった趣旨だったみたいです。

デザイナとの協業を本気で考える
会場 大会場
講演者 桑田誠氏
動画
  • テンプレートの中にロジックを埋め込みたくない
    • Smartyで言えばforeachとかそんなの
  • Kwartzを使えば完全にロジックをテンプレートから分離できる
  • デザイナにカスタムタグとかを押しつけないで下さい

PHPのテンプレートエンジンはSmartyとPHP自体しか使ったことないですが、
そっちに慣れているので逆に違和感。
デザイナがループや条件判断を使いたくなったりしないのかなとか思ったり。

PHP meets Ext JS(MA4で受賞するための5つの法則)
会場 大会場
講演者 直鳥裕樹氏(Ext Japan株式会社セブンズ)
動画
  • Ext JSを使えば簡単に凄く見えるUIが作れる
  • Ext JSを使って[ http://ongmap.com/:ONGMAP]というマッシュアップサイトを作った

Ext JSが何のことかわからなかったんですが、よく考えたらJavaScriptのライブラリについて調べていた時にprototype.jsやYUIなんかと一緒に名前が出てきていた気がします。
その時は、結局jQueryを使うことになったんですが。
Ext JS自体のことは結局よくわからなかったですが、5分という制約だと仕方ないのだろうなあ。
続きはWebで。

Flash 書き換え PHP extension
会場 大会場
講演者 よや氏(よやのメモ帳)
動画
  • SWF Editor for PHPの話
  • PHPからSWFファイルの中身を解析して中の画像ファイルや文字列なんかを抜き差しできる

PHPからSWFファイルの中身をということで、
サーバに格納されているSWFファイルをいじるみたいです。
使いどころが難しそう。でもこんなことができるというのは面白い。
extensionは全然作ろうと考えたことも無かったな。
発表者の方の日記で、当日諸々の事情でできなかったデモが見られます。

前日Hackathonでなにがおきたか?
会場 大会場
講演者 高橋邦彦氏(株式会社ディノ,Maple Project kunit)
動画
  • カンファレンスの前日に色々やっていたらしい
    • 技術的な話に興味がある人が集まって夜通し話そうというイベント?
  • 人が集まってコードを書いたりするイベントを開催するといいのではないか
  • このイベントをまたやるので興味がある人は来るといい

前日にやっていたというイベントのレポートでした。
多分この方:http://d.hatena.ne.jp/kunit/20080624
ところでよく見たら参加者の方々ほぼ全員がはてなダイアリーユーザじゃないですか。

家族持ちIT系技術者の交流会in東京・リベンジとこれから
会場 大会場
講演者 kano-e氏( kano-e no memo)
動画
  • 家族持ちの技術者は通常のカンファレンス等に参加し辛い
  • 大阪で家族持ち技術者のイベントがあった
  • 東京で開催してみた
  • 子供がいるとなかなかイベントに参加できない問題はなんとかならないか
  • wikiも作ったので参照してみて

自分はこういうイベントに参加したこと自体がはじめてですが、
確かに家族が居ると参加し辛いのでしょうね。特に小さい子供。

講演内容とは関係無いですが、はてなダイアリーで見たことのあるBlogの著者なので懇親会の時に思い切って話しかけてみました。
……が、話しているうちにわけがわからなくなってもの凄い挙動不審に。
ごめんなさいでしたとしか言いようが。
でも少しでしたが話せて良かったです。ありがとうございました。頑張ってみるものだ。

いよいよPHPの人達にrhacoを紹介しちゃいますよ。
会場 大会場
講演者 露木誠氏(rhaco-ja)
動画
  • フレームワーク
  • django?

rhacoというフレームワークがあって、それが凄いらしいです。
Djangoという単語が出てきましたが、これはPythonのWebアプリフレームワークらしいです。
宣伝用ソフトウェアって何だったんだろう……?

PHPで作る携帯の新しい未来
会場 大会場
講演者 荒木稔氏(memokami)
動画
  • 携帯魔法の杖プロジェクト

これは動画を見るのオススメです。視覚的に面白いので。
携帯電話上で動いているのはFlashで、PHPでサーバを書いているらしいです。
なぜあえてPHPなのかを聞くの忘れた。。

関連:

PHPプログラマ・エンジニア育成のポイント
会場 大会場
講演者 秦崇氏(リナックスアカデミー)
動画
  • 未経験者をOJTで鍛えるのはいいけど、わからない人にググれと言って放置しているようじゃだめなのではないか
  • できる人はわからないことがわからないから人を教えるのには向いていない
  • 人から教えられて育った人はわからない人に教えることができる
  • 続きはWebで!

リナックスアカデミーというのが何かよくわからなかったのですが、
後で検索してみると……んー……やっぱり良くわからなかった。
多分資格の大原とかそういう感じなのかな。

最後に参加者全員で椅子を片付けて終了
椅子の片付けけ方を間違えてちょっと恥ずかしかった。

懇親会

知り合いが誰も居ないのに勇気と無謀をはき違えて参加してしまった懇親会。
受付に行くと透明なケースだけ貰って何だこれは???となり、
周りを見渡すとみんなそこに名刺を入れているのに名刺とか持ってきてないし。
とりあえず体裁を繕おうと学生証を入れてみたんですが。
しかし、どの人も和気藹々と歓談しているしこれは一体どうしたらいいんだと。
そうこうしているうちに段々と緊張しすぎて何がどうなっているのかわからなくなりました。
隣に居た方に話しかけてみたら答えて貰えてものすごーーーーーく助けられました。
本当に感謝しています。

かなりずっと挙動不審だったんですが、
何人かの方に話しかけて貰えて、また、何人かの方に話を聞かせて貰えました。
結果的に参加して凄く良かったです。
でも本当に緊張した……。

とりあえず前述のkano-e氏に物凄い挙動不審な状態で話しかけてしまったのと、
ウノウ株式会社の方が忙しそうでほぼ挨拶できただけだったのが心残りなのとごめんなさい。

*1 : 何か由来があるんだろうか……/20080730追記:コメント欄で教えて貰いました。スポンサーの一社である株式会社ディノのロゴということです

*2 : 開場9:30の10:00開始

*3 : 5を飛ばして6へ行く

*4 : 店舗データ用のとは別に用意

*5 : コンパイル不要ということ?

*6 : 買い切りではなく「年間」2万です

*7 : PHP関連のイベント主催・参加者募集システム

*8 : PHP情報の更新アンテナ

*9 : Sleipnir2ならSeaHorse、OperaならUserScript

*10 : と思いつつ独特の文法を敬遠してまだ触ったことない……。

参加してみて

  • コードをどうこうするとかそういう方面の技術的な話は全然出てこなかったのは少しイメージと違った
  • 懇親会の参加者の方はほとんど全員が社会人だった
    • 更に多くが関東、特に東京の方だった気がする
  • 色々な人の話を聞いてパワーを貰えた感じがするというのが一番行って良かったと感じた点
    • 一人でずっとやっていると色々鬱屈してくるので、外部から力を貰えるのは凄く良いです
    • 頑張ろうと思えた
  • 全講演の中では、基調講演とぐるなびの話が面白かった
    • PHP5.3にPHP6の新機能が降りてくるとかそういう話全然知らなかった
  • こっそり「例えば、PHPを避ける」の件についてIPAの方に質問できたのが良かった

来年も参加できたら参加したいです。

来年以降はじめて参加する方へ

もう何年も続いているらしいので、多分来年もあるんだと思います。

  • 現地の地形をGoogleMapで確認
  • 昼ご飯とか
    • 会場を出てひたすらまっすぐ歩いて行くと飲食店がそれなりにあるところがあります
    • GoogleMapで見ると会場の北西、松屋がある辺り
    • 次回も同じ会場とは限らないわけですがまあ同じ場所だったなら
  • 上着がある方がいいかも
    • 空調が超寒かったです。
    • でも人によっては暑かったみたいなので多分暑い側にあわせた感じ?
    • 上着は脱げるし持って行って損無し。かさばるけど
  • 懇親会に参加するなら名刺を用意する
    • 多分ああいう場は名刺交換の場でもあるようです
    • てか常識なのかな。それは
    • 挨拶する度に名刺ありませんというのもなかなかあれでした
    • 社会人じゃなくても個人の名刺を作れば問題無いし
  • 事前登録をしてもメール確認とか無かったり
    • 事前登録が必要とのことでしたが、チェックとかは無かったです
    • 最初登録した時に本当に登録できているのか、会場ではどうなるのか心配でした
    • そういうものらしいので特に心配いらないです
  • 参加しようかどうか迷ってるなら参加しちゃうといいと思う
  1. 会場で配られていた飴は、うちの会社(ディノ)のロゴ入り飴です。
    会社名がどこにも出てないし、普通は何の飴なのかわかんないよね…w

  2. そうだったのですね。
    http://www.dino.co.jp/
    確かにロゴと同じ形です。
    実は会場で食べなくてまだ手元にあったり。
    気になっていたのが解消しました。ありがとうございます。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>