月: 2010年9月

PHPカンファレンス2010 ビジネスデイの講演資料(PORVE for PHP)

PHPカンファレンス2010ではビジネスデイにリグレッションテストツールのPROVE for PHPを紹介させて頂きました。その講演の資料です。Keynoteで話しながら説明するように作っていたので、PDFで見ても大丈夫なように少し改変しています。

http://blog.ohgaki.net/media/users/yohgaki/PHPCON2010PROVE4PHP.pdf

商用ですがビジネスモデルは決まっていません。今のところパーソナルユースは無償で利用できるようにする方向性でビジネスモデルを考えています。

このプレゼンの中では解説していませんが、厄介なのがSESSIONモジュールのデータの取り扱いです。セッションモジュールのセッションセーブハンドラは直接I/Oを行っているのでラッパーを書けません。幸いセッションセーブハンドラはモジュール構造を持っているので、少し無理やりですがPROVEが定義した関数を呼び出すようにしてTRACEとVALIDATIONモードが正しく動作するようにしています。

まだまだ作り足りない部分が多いのでリリースは先になりますが、アップグレード時の動作チェックが劇的に楽になります。

 

PAGERの設定でgitのANSIエスケープシークエンスが…

私の環境では、PAGER=’lv’ としていたのでMac OSXのターミナルでgit diff とかするとANSIエスケープシーケンスが正しく処理されない。GIT_PARGER環境変数を以下のように修正した。

export GIT_PAGER=’/opt/local/bin/lv -c’

これはMacportsのlv(マルチバイト文字も正しく表示できるテキストビューアー)ですが、普通のlessを使っている人は

export GIT_PAGER=’/usr/bin/less -R’

でカラー表示になると思います。

 

 

OSX 10.6でPHPソースのbuildconfが実行できない

Mac OSX 10.6のPHPはPHP5.3なのでPHP5.2をビルドしてインストールしたい、と思っている方も多いと思います。Macportsが入っていれば、

sudo port install php52 php52-web

のような感じでPHP5.2をインストールできます。Portsじゃなくてソースから、そしてPECLなど他のモジュールもロードするのではなくスタティックに組み込みたい!という場合もあるでしょう。いちいちモジュールディレクトリを作ってphp.iniでロールするのは面倒ですから当然です。
もっと読む

Mac OSX 10.6のAquaemacsでバックスラッシュ(\)がUnicodeの円記号(¥)になる

Mac上でEmacsを使うと言っても、コードを見るくらいでAquaemacsを使っています。Aquaemacs 2.0以上からはタブも使えてかなり便利です。今は2.1を使っています。PHP、RubyはEclipseやNetBeansを使っています。

Aquaemacsでコーディングはしていなかったので今まで困らなかったのですが、PHP本体のコーディングとビルドをMac上で出来るようにしました。Cのコードは普通はEmacsで書いているので、AquaemacsでCのコードをコーディングしようと思ったら「バックスラッシュ(\)が円記号(¥)になる」現象で困ってしまいました。
もっと読む

DLLハイジャック対策

DLLハイジャックが可能なアプリケーションは多数見つかっています。

http://www.corelan.be:8800/index.php/2010/08/25/dll-hijacking-kb-2269637-the-unofficial-list/

しかし、対策はあまり取られていません。
いちいち対策するのは面倒なのでKB2264107のFIX ITでネットワーク共有、WebDAVからのロードを無効にする方がよいでしょう。

ユーザができる対策はこちら
http://support.microsoft.com/kb/2264107
https://www.microsoft.com/technet/security/advisory/2269637.mspx#EGF

開発者ができる対策はこちら
http://msdn.microsoft.com/en-us/library/ff919712%28v=VS.85%29.aspx