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

PHPカンファレンス2011へ行ってきました(2)

PHPカンファレンス2011に参加してきたので、その時のメモを公開したいと思います。
PHPカンファレンス2011へ行ってきました(1)の続きになります。
メモの内容には聞き間違い等あるかもしれませんがご容赦ください。

———————–
スタートsphinx
———————–

Sphinx:ドキュメントツール

ツリー構造の記述を行う
PDFを出力することができる

インストール
Windows:スタンドアロンで使える
Unix:easy_install(Phython)を使ってインストール

sphinx_quickstartコマンドで
最初のプロジェクトを作成、設定を行う

活用事例
・ドキュメントページの作成
・symfonyのマニュアルにも使われている

———————–
Cena-DTA:HTML5のローカルDBを使ったアプリ開発
———————–
Web SQL Database
→ブラウザの中でRDBを使えるようになった

Cena-DTA:
1回の登録で登録+変更が行える

mySQLのDBを作成し、そこに接続する

HTMLのソースから直接データをダウンロード/アップロードできる

サーバ側:PHP+mySQLで作られている
クライアント側:jQueryのプラグインを使う

サーバでデータを受け取って登録する部分がPHPで作られている

———————–
Large-Scale Data Processing
with Hadoop and PHP
———————–
Facebook:12TB/1日のデータが追加されている(2010年)
google:一か月あたり400PBのデータを扱っている

180GBのデータを読み取るのに45分かかる
メモリの量にも限度がある

解決法:パラレルI/O

I/Oボトルネックの問題:
データのあるところにコンピューティングリソースを持っていく

例:apacheログに対する処理
マッパー:ログを書き出すイメージ
 ↓
リデューサー:各IPごとに書き出す集約を行う

hadoop:
SQLのクエリを書く必要がない
Facebookでのデータの増加にも対応できている
Yahoo、Twitterでも使われている

インプットフォーマットを使うことによって
どのデータをどのように分けるかということを指定できる

障害に強い仕組みになっている

Hadoopは主にJavaで開発されているが、
PHPなどでもリデューサーは書ける

HadooPHP:HadoopでPHPを使うためのフレームワーク

———————–
Microsoft ? PHP ~ 3rd Stage ~
WebMatrix + Windows Azure!
———————–
マイクロソフトとPHPの歴史:
Windowsプラットフォームインストーラー

Windowsウェブマトリクス

Windows Azure+PHP

Windowsウェブマトリクス:OSSを使う/一から作る
→サイト作成に必要な機能を搭載

PHPのメジャーなアプリは殆ど収録されている

ASP.NETのテンプレートも使える

既存のサイトをウェブマトリクスに移行することもできる

エディタ機能もある
SSLの有無なども設定できる
ソースに問題があるかどうかチェックできる

DBの編集もできる
無償でダウンロードできる

あわせて使えるもの:
IEのF12キーを押す⇒開発ツールが使える
Expression Web Super View

Azure:空色の、という意味
WindowsサーバーベースのクラウドOS

ウェブマトリクスで作成したものを
Windows Azure上で動かすことができる

Azureのテンプレート作成
 ↓
ソースコードをコピー
 ↓
テスト環境を作成
(バーチャル環境のようなものができる)
 ↓
Azureへのパッケージ生成

リモートデスクトップでログインして
更新作業を行うこともできる

Azureのメリット:
・Paasなので管理いらず
・データセンターは数十万台規模

事例
トヨタ、ゲームサイトなど

EC-CUBE DAYでも話をする予定

———————–
徳丸本に学ぶ
安全なPHPアプリ開発の鉄則2011
———————–

■安全なPHP入門書で学ぶ:
XSSとSQLインジェクションぐらいは正しく覚える
セキュリティの甘いサンプルが載っている本もある

■入力、出力処理をしっかりやる
バリデーション
制御文字のチェック
「安全なSQLの呼び出し方」=IPAが公開している
準備文を使う

htmlspecialcharsを正しく使う

ファイルアップロードには罠がたくさんある:
アップロードされたファイルがPHPとして実行される
ファイル名が衝突してしまう

■文字コードのセキュリティを気にする
5c問題

■クリックジャッキング対策をする
クリックジャッキング:
透明なiframeを正しい画面の上に表示させて、
違う操作をさせること

X-FRAME-OPTIONSヘッダを指定する
(古いブラウザは対応していない)

CSRF対策をする

パスワードの保存はハッシュ化を繰り返す

7文字ぐらいのパスワードではすぐに破る
ツールがある

ハッシュ値にSalt値をつけるのがベター

ストレッチング:
ハッシュ化する計算を何度も繰り返す

■PHPのバージョンアップにとことん付き合う

———————–
ライトニングトーク
———————–

Making DSL with []
Paml→テンプレートエンジン
PHP:配列とハッシュの区別がない

PHP技術者認定試験:
ウィザード試験が始まる

sismo:
ciTool
テストツール
githubに対応
symfonyと同じ会社が作っている

Symfony2HttpCache
リバースプロキシを使う
→Cacheカーネルを使う
 4倍ぐらい速くなる

クラウドを比べてみた:
HDDのスピード=かなり違う
GMO:1インスタンスに物理HDDを1つアサインしている

Symfony:behatというテストツールがある

PHP祭
10月15日、16日に大阪で開催

PHPBugs
バグ候補を指摘してくれる
(これから作成)

プロジェクトの規模が大きくなると
おかしいといわれているところが
本当におかしくなる

Ethna2.6
PHP5.3に対応

PHPカンファレンス2011へ行ってきました(1)

昨日PHPカンファレンス2011に参加してきたので、その時のメモを公開したいと思います。
当日は大勢の人が熱心に耳を傾けていました。
会場が満席で聞けない話があったのが少し残念と言えば残念でした。
メモの内容には聞き間違い等あるかもしれませんがご容赦ください。

——————
基調講演
——————-

PHPがブレイクしたのはver4.0(2000年)
PHPカンファレンスも2000年から
2004年ver5.0→オブジェクト指向
2009年ver5.3
ver5.4→5.3に比べると地味なアップデートになる

PHP
リリースサイクル1年
ライフサイクル3年(バグ修正2年、セキュリティ修正1年)

PHP5.4
9月半ばにβ版
今年中にはリリース
セーフモード、レジスタグローバル、マジッククォートはなくなる
SQLiteはver3のみとなる
5.3に比べて19%〜43%高速化
trait:コードを再利用する仕組み
  多重継承よりもシンプル
オープンタグの短縮形が追加
配列の簡略定義が可能
配列デリファレンシング、
2進数表現が可能に
不正なUTF-8に対するチェックの強化
Unicode6.0のケータイ絵文字を収録

セキュリティに対して:
基本を守る
最新の情報をチェックする

Coverity→ソースをチェックするツール?
Coverityでスキャンした結果、PHPの品質は高かった
もっと高かったもの=Ruby

PHPの成功理由
・小規模〜大規模なサイト(Facebook,Yahoo!)までサポート
・言語がシンプルでドキュメントが充実
・必要十分な現実的な解を提供している
(キラーアプリの存在、モバイル対応、新標準への対応)

————————————————–
PHPライブラリの歩き方・作り方
————————————————–

技術の動向によって、ライブラリに求められる機能は増えていく

主なライブラリ
PEAR:570ぐらい
PECL:270ぐらい

Rubyなどでは1万を超えている

欲しいものがなければ作るしかない

ライブラリのパッケージ名:
ネームスペースを使うと良い
まだ使われていないものを使う

クラス読み込みの定義:PSR-0に従う

PSR-0に従うと
require_once,class_existsを使う必要がなくなる

例外処理:SPLを使う

マジックメソッドは学習を困難にさせる

ライブラリ:パッケージにまとめて配布する

Pyrus:
任意のディレクトリにPEARパッケージをインストールできる
パッケージの作成もできる

紹介していた本:
オープンソースの育て方

PHPカンファレンス2011へ行ってきました(2)へ続きます。