月別アーカイブ: 2009年9月

PHP カンファレンス 2009 テックデイに参加してきました

PHP カンファレンス 2009
テックデイ

昨日のビジネスデイに引き続き、行ってきました。

#pcj09

2009_phpcon_enter2009_phpcon_first2009_phpcon_elephpant

9月5日(土)
大田区産業プラザ PiO

以下、会場でのメモをそのままアップするので
【加筆・リンク追加・文言修正する可能性があります】

去年と同じく、蒲田のPiOにて。
今年は懇親会にも参加できてよかったです。
普段はPHP触らない人や初参加の方が多いのはよいことですね。
色々なお話が聞けて刺激になりました。
昨日よりもMac率・iPhone率が多い多い。
Macだらけの職場にいるので参考になります。

スタッフの皆様、
スピーカーの皆様、
スポンサーの皆様、
参加した皆様、
お疲れ様でした!

—————–

オープニング
日本PHPユーザ会・安藤 祐介

事前アンケート結果

PHPカンファレンスに

参加したことがある
31%

参加したことがない
69%

APCについて
使用したことがある
24%

知っているがない
30%

知らない
46%

使っているフレームワーク

CakePHP 213
多くの人はフレームワークを使ったことがない

cakeとZendとSymfonyの人気は
ここ数年変わらず。

今回は海外ゲスト多数呼んだ!

知らないものを多数取り入れて日々の生活に役立ててください。

—————–

基調講演
日本PHPユーザ会・廣川 類

PHPの今とこれから

14年前
PHP1

PHP4
2000年

mbString統合
PHP4.1

4.4

5
で分岐

4.4は4.4.9でFIX

PHP5
WebDB
XML

PHP5.1
実行速度改善
PDO

PHP5.3
名前空間

PHP6.0
Unicode対応
レガシー機能削除

もしかしたら
PHP5.4

PHP5への移行

4.4.9の脆弱性のリスト提供と
SRA OSS による有償サポート

PHP5への移行が遅れた理由
4の完成度が高い
移行する理由がない
新機能へ興味がない

セキュリティ
・アプリケーション固有の脆弱性
・設定に起因する脆弱性
・システム固有の脆弱性

攻撃手段は毎日進化するので情報収集するしかない

基本を守る
最新の情報を見る

PHPのコードの品質は高い

コードカバレッジ→テストされていないコードには欠陥がある

PHP5.3
PHP6までのつなぎ
Unicode
レガシーコード廃止
ガベージコレクタ改良ー>メモリの使用効率のアップ
Late Static Call
動的変数
名前空間

国際化
Collator(文字列比較)、数値フォーマッタ

mysqlnd MYSQLドライバー改良

OpenSSLエクステンション

国際化・Unicode化

書き直しの範囲が大きい
パーサ
DB拡張

DB接続文字コード

Safe_mode
レガシーコード削除

PHP6ではUTF-16

PHP6ではmbstringの機能の多くがネーティブ実装

日本語対応は十分か
絵文字の問題
文字コード検出→不十分

正規表現
oniguruma(鬼車)拡張が提案中

mbstringは不要になるか
→残す。
ZEマルチバイト、関数のオーバーロードは削除

ICU版のmbstringを提案中

PHPが成功した理由
・コンセプト(初心者に優しく、現実的)
・コミュニティ

常に改善・改良を求めることで
オープンソースの活力が維持される

新たな開発者に参加してもらうことが必要
(若い人)

Google Summer Code
PHP勉強会

改善/機能強化の提案、貢献の方法・RFC
PHP本体
クラス・エクステンション
ドキュメントの整備

—————–

台湾PHPコミュニティの日々
Taiwan PHP User Group・江 明宗

Ubuntuを使っていた模様。言語は中国語(?)。

・PHP技術者の不足
・ハードウェアに強いがソフトウェアは弱い

他国、しかもアジア圏のIT関連の技術まわりについてお話が聞けたのは貴重かも。

—————–

APCによるハイパフォーマンスの実現
Facebook,inc・Brian Shire

Facebookの中の方

Mac使ってました。
Vim。
はやいなぁ・・・。

APCはPHPのコンパイルを行い
キャッシュして高速化します。

ソース

Lexerと呼ばれる空間解析

パーサ

オプコードが生成されて実行される

エクステンションによる例外処理

インストール
pecl install apc

キャッシュにはいくつか種類がある

apc.stat

ファイルを有効化するには
apacheの再起動が必要

現段階は実験段階です。
なんでも高速化するものではない。

またキャッシュになにも入っていなければ
またコンパイルするので
速くなりませんよ。

apache再起動の時点でキャッシュを生成する

もうひとつのキャッシュは
ファイル、変数を
キャッシュする方法

Lagy loading

複数のきゃっしゅして
おくこともできるので

ディレクトリごとに
apcのキャッシュを使うか使わないかを
選択することもできます。

会場でAPCを使っている人は少数。

高速化がうまくいかないときは
ほかのドッキングや設定を試してみてほしい。

PHP6に取り込まれるとかいってたけどどうなん?

PHP6以降に標準で搭載されます。

CakePHPと併用して高速になったよ!

開発に関して
何人か参加してるみたいだけど
どうやってコンタクトとってるの?雰囲気教えて。

準レギュラーが3人

やりとりはメーリングリストだね。
バグレポートでも活発に活動しているね

最初のオススメは
スタックのオプション
ドッキングメカニズムの設定
ユーザーの独自キャッシュ
だね!

導入にオススメのサイトってあるの?

基本的にPHPを使っていればおk。
大規模なコードベースだったらなのこと効果は大きいだろうね。

FaceBookだとリアルタイム性が重視しているけど
あまり変化がないようなサイトだと効果は感じられないかもしれないね。

ほかのキャッシュシステム使ってるけど
乗り換える場合は?

よくテストして。
コードの構造によってはバグがでるかも。
動かないようだったらおれに教えて!

サイトをはやくしたいなんて要望がまずでてくると思うけど
この点にとか調査したほうがいいのではないかと
アナウンスをしてほしい!

おk。

FaceBookの雰囲気教えて!
厳しい要求があるけど
クリエイティブ
社員1000人の中で
PHPのエンジニアは300人
言語はそのほかもできるよ!

半年前に導入試験
ZendOptがうまく動かず

うまくいかないことになっております。
新しいやつだったらうまくいくよ!

—————–

PHP を見える化する
新原雅司

~PHP Visualization~

findtwitterつくった。

会場でガンダム見た人は3割。

見える。僕にも見えるよ。

PHP 5.2.1
struct
zval struct

Profile

Xdebug

WinCacheGrind

Webgrind

XHProf

Function Trace

そしてブルースクリーン

—————–

CakePHPストーリー
CakePHPの何か安藤 祐介

RedmineのPHP版

CandyCane

CakePHP経験者
2/3

フレームワーク未経験
ちらほら

生産性の向上と
保守性の向上

コントローラー
component

モデル
Behavior

ビュー
Helper

Plugin

CakePHP2 (php5 only)

Cake3 (php5.3~):名前空間利用

CakeMatsuriやるよ!

すばやく快適な開発
オープンマインドでレベルアップ

—————–

PHP を「いじり」倒す 10 の方法
moriyoshi

PHPはテンプレートエンジン

SAPIモジュール
ZendEngine
Extensions

TSRM

ZnedEngineの構造

レクサー解析
Parser
Opcode emitter

zend_op
zend_op_array

znode

ここまでコンパイル

Virtual Machine

改造

–enable-debug つきで configure

Boost.PHP
C++

スライドが公開されました。
http://d.hatena.ne.jp/moriyoshi/20090905/1252159467

—————–

Q4MとFlareを使ってスケーラブルなサービスを作る!
漢祐介(nowel)

元Seaserの人

グラフ作成
vizoo

グラフの表示部分はswf

Q4Mとは

MySQLをつかったメッセージキュー

キューをInsertで入れる
参照はSELECT

APIのソキュメントはない

Flareとは

Webアプリで高負荷になりやすい箇所
DBに対してやりとりが多すぎるから。

Q4Mで
1台でなんとかする

Webさーばががんばる
・めーるを投げたり
・PDFをつくるとか
・xlsをつくるとか

スケールアウトしにくい
Session

これをSymfonyで実装

Flareをsymfonyのstorageとして実装したお話

—————–

Symfony, a web framework for professional websites
Fabien Potencier

プレゼンは英語で翻訳だけど
スライドが日本語なのがすばらしいです。

PHPによるMVS(フレームワーク)

yahoo.comのbookmark
yahoo.comのAnsews
del.icio.us
もSymfonyで構築されている

Daylymotion

プロのためのフレームワークです。

・Symfonyはまとまりがあるが、個別でも使えるクラス郡だ。

※スタンドアローンでも使えるコンポーネントも公式にあります。

YAML
Dependency Injection
Event Dispatcher
がすでにリリース

Symponyは複数のコンポーネントから成り立っています。

テスト
ブラウザのエミュレーションを使用して
をコマンドラインから行うことができます。

APCとの相性が悪くない

メモリ管理を設定しているYAMLをno-cacheに設定してみてー。

—————–

LT

印象に残ったものを。

PHPの全バージョンの挙動を試す
hnw

museum.php.net
に全バージョンのphpがあるよ!

PHP4の現状とセキュリティパッチサービス
大垣靖男

・まだ4でやってる現場に遭遇したことがないなぁ・・

初めてのPHP Extension
yokkuns

・「なんともう時間がない」

〆として最高でした。

PHP カンファレンス 2009 ビジネスデイに参加してきました

PHP カンファレンス 2009
ビジネスデイ
に行ってきました。

#pcj09

2009_phpcon_oracle2009_phpcon_title2009_phpcon_skyview

9月4日(金)
オラクル青山センター13F・セミナールーム

以下、会場でのメモをそのままアップするので
【加筆・リンク追加・文言修正する可能性があります】

本日はビジネスデイ。
技術的なお話はたぶんないと思っていたけど
会社で社員としてPHPを書いている以上
お仕事のお話はやっぱり興味があります。

—————–

イントロダクション
日本PHPユーザ会 トライコーン株式会社 鈴木則夫

はじめてカンファレンスに来た人と来た人がある人が半々くらい。
技術的なことだけでなくビジネスとしてPHPを使いたい人向けに
ビジネスデイをつくった。

新しいPHPビジネスのネタをなにか持って帰っていただければ。

—————–

NetCommonsでオープンソース・ビジネスモデルの実現
NPO法人コモンズネット理事 OSSコンソーシアム理事兼CMSビジネス部会リーダ オープンソース・ワークショップ 代表 永原 篤

事例:
WEBサイト(国立情報学研究所)・オープンソース・ワークショップ
グループウェア net commons
ポータル 深川七中エリアスポーツクラブ様

twitter@nagasheep

CMSのイベントを2ヶ月に1回開催→CMSビズで検索

WARPプロジェクト
LAMPP環境のCMSがWindows環境ですぐに試せるパッケージ

NetCommonsとは

汎用CMSという言い方がわかりやすい

WEBサイト
プライベートスペース
グループウェア

・掲示板
・キャビネット(資料置き場)
・機能はオールインワン+追加も可能
・LAMPP環境で動作

・国産
・インストールと構築しやすい
・開発環境がつくりやすい

ビジネスがしやすい

・NetCommonsは学校向けではなく
営利・非営利問わず用途は多くあります。

ライスンスは
バージョン1はGPL
バージョン2はFreeBSD

NetCommonsは商標登録してある。

NPO法人コモンズネットとは
NetCommonsの普及・構築・開発
NetCommonsセミナーなども開催している

質疑応答

IISで動かないんだけど

インストールの仕方かも?
今後はIISにも対応していく予定。

フレームワークはmayple。

汎用だとパフォーマンスが心配
1だと重いかも。2だと問題としてはまだあがっていない。

NetCommons
http://www.netcommons.org/

—————–

世界標準パブリッシングプラットホーム WordPress
WordPress 日本語チーム / Automattic, Inc. マクラケン直子

WPの生い立ち
b2→wordpress→wordpress.com

ソフトウェア wordpress.org
レンタルブログ wordpress.com

実績
Technorati TOP 100 ブログ

WP 36%
Blogsmith 14%
MT 12%
Typepad 7%

ダウンロード
2.8.x
全世界で526万回

7割が英語圏

日本でのダウンロード数
1日・約1700回

wordpress.comのアクセス数:全世界19位
wordpress.comのユーザー推移:約700万人

豊富なテーマやプラグイン

用途
・企業ブログ
 mixiエンジニアブログ
 eBay
 Yahoo!

・メディア
 Wiredブログ
 Techクランチ

・テーマ
 P2(twitter風テーマ)
 BuddyPress(SNS用テーマ)

将来性

世界的に人気がある
(WordCampというイベントを開催)

活発なユーザーコミュニティ

・WordBench.org
・勉強会・イベント
・ビジネス向け事業者ディレクトリも計画中

WordPress=世界中で誰もが自由に使える

wordpress.com
大量のトラフィック分散しているシステムは実は公開している
メモリーキャッシュ・・・etc

みんなでノウハウを共有しましょう。

【Ust】
http://www.ustream.tv/recorded/2101299

WordPress
http://ja.wordpress.org/

—————–

eZ Publish ディスクール
– エンタープライズWebCMSに求められる機能とその実現 —
eZ Systems Japan Business Development Manager 藤田 拓

http://ez.no/jp/ezpublish

eZ Publish
CMS

eZ Publish,海外のWeb Idolにて3回大賞を獲っている

堅牢性と拡張性+オープンソース

エンタープライズは個人ではない。
イントラではどんどんやっていこう!

・ディスクールとは
制限がある中での発言や情報発信ができる

WebCMSに求められる5大要素

・コンテンツ投入
 ・ワークフロー
 ・アセット管理(バージョン管理)
 ・ユーザー管理・権限管理
・コンテンツ出力

CMSツール分布

OpenCMS
Typo3

システム連携

・Webからのコンテンツ投入
・複数のアップロードやwordファイルのインポートに対応。

事例
ELLE

セキュリティとバージョンアップがやばくなる
ブログやホスティングはままでつくれるよ!

eZプロジェクト
eZ Teamroom

ライセンスは無料!

オープンソースは怖い

バグ

公式のサポート

技術的な話

CouchDB
を使っている

スケールアップが楽

Oracleをサポート
MySQLを変換

OracleベースのeZデモを近日中に公開します。

eZ Publish
http://ez.no/jp/ezpublish

—————–

Oracleで加速させよう!PHPのビジネス活用
~スケーラブルで高可用性でクラウドで~

日本オラクル株式会社
マーケティング本部
シニアマネジャー
伊東裕揮

買収という戦略をとっている
・・・Sunさんとか?

PHPは人気ありますね。
・言語習得が容易
・オープンソース、ツールが揃っている。
・何かあったときにサポートする人材が多いというのは重要。

オラクルはPHPもサポートします。
・PHP OCIドライバー開発
・PHP Developer Center

Webサイトで求められるのは
・短期リリース
・キャパシティ拡大→急激に人気がでてからのキャパシティ拡大が容易なこと

OracleとPHPの問題点

・Oracleは高い→安いのもあります!SE1(約63万円)
開発ライセンスは無償です。
OTNから無償でダウンロードできます

・無償なのもあります!
XE:商用利用可能です。
1CPU 1GBメモリ、1 Databese、4GBデータ領域

無償ツールがそろっています。

Oracle SQL Developer(GUI DB管理)
Oracle Application express
Oracle VM(仮想化)

Oracleは難しい→カンタンです。
いまはGUIでできます。

・インストール
・運用管理

・無償のトレーニングを揃えています。
OTN掲示板

インターネットセミナーの開催
70~100
セキュリティやチューニングの方

とっかかりとして

Amazon EC2

PHP+Oracle XE

Oracle XEは無料です。
AMIイメージが利用できるのでインストールは不要。
Amazon EC2は(比較的)お安いです。

Amazon EC2

AMI
デモ

amazon EC2
AWS Managimant Console

GUI
でのSQLを流す

JALとヨドバシの検索速くしたよ!

Oracle
使いまわしできるライセンス

なぜ

基本的にスケーラブルな拡張

Oracleは安いもの、タダのものもあります。
Oracleは技術者育成もタダです。
とりあえずamazonEC2やってみませんか?

————————————-

ソーシャルメディア GREE
グリー株式会社 田中 良和

個人で趣味的に運営
2008/12に上場
役職員108名・平均年齢29歳

GREEはSNS+ソーシャルアプリ
SNSページビュー増加→広告メディア収入
SNS連動型ゲーム→有料課金収入

ソーシャルアプリは可能性があった
既存のゲームではなく
ソーシャルなオリジナルのゲームを作成したかった。

みんなが常に接続できている状況は
携帯だからできるという発想。

MMO的なゲームを携帯電話で→できたのが2007年。

釣り
ペット育成ゲーム

プロモーション

多様なプロモーションを展開してみた。
マスプロモ-ションをする会社にしたかった。

コミュニティ監視

・パトロール
・健全サイト

変なメールがこないなどの条件が
サイトのクオリティを決めると考えてた。

月間、純増100万ユーザ

日本人のほとんどはPC持ってない。

携帯ならほとんどのユーザにアピールできる!

PC、携帯、どっちが好きとかじゃなくて。

男女半々
地方ユーザーが多い

年齢:20代→30代(全体の4割)が多いのがポイント

よいサービスをつくっていくには
利益が出ないとまずい。

ネットの利用はPCからモバイル中心。
PCユーザは減るという予想。

使いやすい・楽しいという定義が変わっていく。

コミュニティがコンテンツを融合する。

「寝ながらできないと流行らない」

アプリ設計思想

短時間でも長時間でも
初心者もヘビーユーザーも
1人よりも複数の人がおもしろい
無料でも有料
すべての年齢・性別
シンプル
リアルでもバーチャル
継続して開発、改善し続けられるチーム力が最も重要。

エンジニアとしてもずっと耐え続けることができる精神が必要。

プラットフォームでもサードパーティでも。

今後

クロスプラットフォーム
ソーシャルアプリへ分野を拡大
グローバル化

————————————-

45分で分かる、安全なWebアプリケーション開発のための、発注・要件・検収
HASHコンサルティング株式会社 代表取締役 徳丸 浩

徳丸さん、PHP勉強会でお世話になりました。

脆弱性の責任と契約について
発注者側にあるというのが今のスタンス

ただし、判例があるわけではないので要注意

発注者は自衛のために要求仕様にセキュリティ要件を
盛り込んでおくべき

・提案を求める
→あいまいになりがち。

・詳細な仕様を出す
厳密に→コンサルタントにつくらせてしまう

・検査仕様を提示する
第3者がコンサルする。

脆弱性の名前を列挙する
対策の質を問うことは難しい。

実装方法を指定する方法
既存ソフトの流用やフレームワークの使用に制限が生じるとコスト増の原因になる。

検収の方法を指定
コストは高くなる。

・オススメのRPF
基本はベンダーに提案してもらう

開発言語、ミドルウェア
フレームワークを考慮したセキュアな開発体制の提案

セキュリティ的な機能の実装

脆弱性を作りこまない体制の提示を求める

セキュリティ検査にパスできる根拠を説明してもらう
※検査仕様が明確になっている必要がある

納品物としてセキュリティ検査結果を添付してもらう

検収時に自らセキュリティチェックをしてもらう

セキュリティ要件について

対策はサイトに関してはどれも似たようなものになる

リスク分析は手間のわりに効果がない

重要なのはデータベースに決まっているので
わかりきった資産の洗い出しをするよりも、
「対策を選ぶ」ようなアプローチの方が効果的

・採用
・不採用時のリスク
・代替コントロール

受託案件では
Windowsなケースがある。

脆弱性対策と開発プロセス

SQLインジェクションやクロスサイトスクリプティングなどが
「ないこと」という要求は、仕様としてもりこみにくい

リスク分析の結果で脆弱性対策をする
ものではない
→常にするべき

セキュリティ機能と
セキュリティバグは分けて考える

セキュリテイ要件とはなにか

・セキュリティ仕様の例を出す。

・セキュリティ機能の実装は、要件定義からウォーターフォールで粛々と実施

開発標準と教育
・開発標準で定義

・開発標準は一度すると作りっぱなしになることが多く
定着が難しい。

意識の持ち方→教育って大事。

開発標準として利用できるリソース
・安全なウェブサイトの作り方
・発注者のためのWebシステム・Webアプリケーションセキュリティ要件書

「また上野宣か」

方式設定のすすめ

HTML表示の際にライブラリ

コスト要素は
セキュリティ要件

・テスト

検査の話

セキュリティ要件にせよ、
セキュリティバグにせよ、
最終的にはテストで品質を保証する

ウェブ健康診断の仕様書を公開されています。

~実際に脆弱性のあるサイトのデモ~

契約にも注意しよう。

【資料がアップされました。】
http://www.hash-c.co.jp/archive/phpconf2009.html

ウェブ健康診断
http://www.nippon-net.ne.jp/cms/12,1284.html