カテゴリー
Computer Development

PHP 5.3とPHP 5.2

ちょっと前にPHP 5.3のブランチが作られた、と書きましたが今度は前のマイナーバージョンもしばらくメンテナンスされます。どれくらいメンテナンスされるかは分かりませんが、メンテナンスされるのは良い事です。

PHP 5.3とPHP6の位置づけですが、基本的にPHP6 = PHP 5.x(最新版)- Unicodeサポートという形で合意が形成されているでPHP 5.xのマイナー版は機能追加が行われる予定です。

PHP 5.3がリリースされても慌ててPHP 5.2から5.3にアップグレードする必要はありません。ただし、PHP 5.2のサポートはそれほど長くはないので次々とPHP 5.xへとアップグレードする必要性がなくなる訳ではありません。

PHP 5.3は来年の第一四半期にリリース予定です。

カテゴリー
Security

Javaの脆弱性

書かない日記なので書きませんがJava(JRE,JDK,SDK)の脆弱性が多数CVEとして公開されています。数日前のアップデートで更新されていると思いますが、WindowsUpdateのついでにJavaもアップデートの確認をした方が良いです。

アプレットを使ったリモートからの任意ファイルの読み取り、DNS Rebinding攻撃に対する防御などいろいろアップデートされています。

勝手に更新するように設定していたはずのPCでもJavaアップデータのバグか何かで更新ができていないPCもあるのでちょうど良い機会のなので念のために確認するのも良いと思います。

JRE1.6ならJRE Update 3(1.6.0_03), JRE1.5ならUpdate13, JRE1.4なら1.4.2_16になっていればOKです。

CVEの一部
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5274
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5273
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5239

カテゴリー
Security

IEの脆弱性

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3893

Unspecified vulnerability in Microsoft Internet Explorer 5.01 through 7 allows remote attackers to execute arbitrary code via unspecified vectors involving memory corruption from an unhandled error.

ということで、IEすべてにリモートコード実行の脆弱性があり

http://www.microsoft.com/technet/security/bulletin/ms07-057.mspx

がFIXだそうです。

普通にWindowsUpdateを動かしていれば今日中にはアップデートされると思います。

カテゴリー
Computer Development Programming

簡単なベンチマーク

最近のPostgreSQL, MySQL, SQLiteのパフォーマンスはどうかな?と言うことで非常に簡単なベンチマークをしてみました。

デフォルト状態のデータベースに郵便番号データ(12万件とちょっと)をINSERTしてみました。フラグを除く全てのフィールドをテキスト型として定義し、全てのフィールドを挿入しました。旧番号と現行番号にインデックスを付けています。スクリプトはPHPで記述し、DBが動作しているPC上からPHP 5.2.4で実行しました。1レコードが分割されている場合などは無視して挿入しているので12万2000レコードになりました。

PC

CPU: PentiumD 2.8GHz
Memory: 3GB
HDD: PATA

DBMS

MySQL: 5.0.45
PostgreSQL: 8.2.4
SQLite: 3.4.0 (PDO)

実行結果(12万行INSERTの実行時間)

InnoDb: 130.70663690567
MyISAM: 131.24672317505
Postgres: 159.47350597382
SQLite: 676.43534302711

MySQLもPostgreSQLもチューニングは一切無しで実行しています。

非同期クエリを利用するとPostgreSQLもInnoDb, MyISAMと同じくらいの速度になりました。

どのDBもペンチマーク中はディスク待ちの状態でCPU時間はあまり使っていませんでした。

MySQLとPostgresは概ね予想通りの結果でしたが、SQLiteが異常に遅いのでPDOを使わないで計測してみましたがあまり変わりませんでした。トランザクションかな?と思いBEGIN, COMMITを付けてみましたが変わりませんでした。

INSERTしたレコードをランダムにSELECTしてみました。番号はmt_rand関数で生成したのでほとんどがINDEXにヒットしないので、インデックスを利用した検索の最悪のケースのテストになります。単純にテーブルから検索をするだけです。永続的接続を利用しています。

Webサーバ:Apache 2.2.6
クライアント: ab -n 10000 -c 10 (別PCから実行。Athlon64 3500+/3GBメモリ)

パフォーマンス:リクエスト/秒

Postgres: 947.58
SQLite: 1096.00
MySQL(MyISAM): 1190.35
MySQL(InnoDb): 1245.85

概ね予想通りの結果ですが、SQLiteが思っていたより遅いです。PostgreSQLは接続のネゴシエーション処理が重いので非永続的接続を利用するとかなりパフォーマンスが落ちます。システム全体でDBへの接続数を上手に制御できていない場合はpgpoolを利用するとパフォーマンス(システム全体のスループット)が改善することがこの事からも分かります。

「Postgresでこんな数字でないよ」という方、pg_pconnectで試してみましょう。コネクションプーリングが無いと話になりません。

カテゴリー
Windows

Windows Vista用パッチ

http://support.microsoft.com/kb/941649
http://support.microsoft.com/kb/941600

1台ハイバーネーションからの復帰にやたらと時間がかかるVistaがあるのですが、一応このパッチで対応している事になっています。KB938194,KB938979のどちらかが同じ問題を対処したことになっていましたが私が持ているPCには役に立ちませんでした。今回のパッチは役に立つのかも知れません。

http://support.microsoft.com/?kbid=941649

この更新は、互換性と信頼性と Windows Vista の安定性が向上させます。 このアップデートには、次の向上が含まれます。• モバイル デバイスのバッテリの寿命を拡張します。
• uninterruptable な電源装置(UPS)を使用するポータブル コンピュータのとデスクトップ コンピュータの安定性を向上させます。
• スタートアップ アプリケーションのメニューを開くと、 Windows Vista の信頼性を向上します。
• Web ページ開くと、 Internet Explorer の安定性を向上させます。
• ワイヤレス ネットワーク サービスの安定性を向上させます。
• 優れるタイミング構造体を使用しようと Windows Vista の起動時間を短くします。
• 一定期間が Windows Vista に発生した後、復旧時間を短縮します。
• Photo スクリーン セーバーを終了しようとする復旧時間を短縮します。
• Windows PowerShell の安定性を向上させます。
また、次の Windows Vista での問題がこの更新で解決します。• サードパーティ ウイルス対策ソフトウェアの一部のアプリケーションに影響する互換性の問題。
• Windows Vista-based コンピュータが特定のドライバのネットワーク構成を使用する場合、発生する信頼性問題。

http://support.microsoft.com/?kbid=941600

ロールアップ修正プログラムに修正される問題
925528 (http://support.microsoft.com/kb/925528/) 停止エラーは、 2 GB または複数の RAM を持ちそして NVIDIA nForce USB コントローラを使用している Windows ベースのコンピュータで発生します。
929734 (http://support.microsoft.com/kb/929734/) スリープまたは休止から Windows Vista-based コンピュータを再開した後、問題が発生することがあります。
930568 (http://support.microsoft.com/kb/930568/) Windows Vista-based コンピュータがスリープまたは休止へ状態とすると、エラー メッセージ:「 STOP 0x000000FE BUGCODE_USB_DRIVER」
929478 (http://support.microsoft.com/kb/929478/) ポータブル Windows Vista-based コンピュータから組み込む光ドライブを削除するために、ハードウェアの安全な取り外しオプションを使用した後に、ドライブに再接続することができません。
930570 (http://support.microsoft.com/kb/930570/) スリープまたは休止から Windows Vista-based コンピュータが起きるとき、 Usbhub.sys プロセスでのエラー メッセージ:「 STOP」 0x00000044
928631 (http://support.microsoft.com/kb/928631/) Windows Vista がスリープまたは休止から再開された後、正しくもう USB デバイスが機能しない可能性があります。
933433 (http://support.microsoft.com/kb/933433/) RAM または複数のを持つ Windows Vista-based コンピュータで USB マイクを使用すると、品質を記録するのが不十分です。
933442 (http://support.microsoft.com/kb/933442/) USB 複合デバイスはデバイス マネージャでの Windows Vista を実行しているコンピュータ上の装置を無効にした後、そして有効に次にした後、動作しません。
934633 (http://support.microsoft.com/kb/934633/) Windows Vista-based コンピュータに USB 多機能プリンタ デバイスを接続すると、プリンタ オブジェクトの 2 のインスタンスを作成し、最初のインスタンスが動作しません。
934796 (http://support.microsoft.com/kb/934796/) USB 複合デバイスを実行している Windows Vista-based コンピュータでのエラー メッセージ:「 STOP」 0x000000FE
933824 (http://support.microsoft.com/kb/933824/) ハードウェアの安全な取り外し機能と「取り出す」エクスプローラのコマンドが Windows Vista-based コンピュータが接続されたアップル iPod で正しく機能しません。
935782 (http://support.microsoft.com/kb/935782/) “選択的に中断する” UHCI USB コントローラを使用する Windows Vista-based コンピュータでのモード長い時間 USB デバイスが再開されるようとります。
935783 (http://support.microsoft.com/kb/935783/) スリープからの Windows Vista-based コンピュータを再開すると、 USB デバイスからの予期しない現象が発生することがあります。

次の問題については、以前サポート技術情報(Microsoft Knowledge Base)に記載されませんでした。• コンピュータがサスペンド状態または休止状態から再開するとき、コンピュータがコンピュータは、応答を停止します。 また、「 0x9F」にブルー スクリーンの STOP メッセージを表示します。
• コンピュータは、長い時間サスペンド状態または休止状態から再開するのにとります。
• VIA コントローラを使用する場合、長い時間サスペンド状態または休止状態から再開するのにとります。
• AuthenTec USB 指紋リーダーを使用する場合、コンピュータは、コンピュータの応答を停止します。 また、「 0xFE」にブルー スクリーンの STOP エラーまたは「 0x9F」にブルー スクリーンの STOP エラーを表示します。
• USB Bluetooth オーディオ デバイスを使用する場合、コンピュータは、コンピュータは、応答を停止します。
• 拡張 ホスト コントローラ インターフェイス(EHCI)コントローラを使用する場合、長い時間サスペンド状態または休止状態から再開するのにとります。
• USB デバイスを削除すると、コンピュータは、コンピュータは、応答を停止します。 また、「 0xFE」にブルー スクリーンの STOP エラーを表示します。
• コンピュータがサスペンド状態または休止状態回複数再開するとき、「 0xFE」にブルー スクリーンの STOP エラーを表示します。

SP1リリースまでにかなり時間がかかるので地道にこれらのアップデートを適用しなければならないですね…

カテゴリー
Computer

VMWare Fusion 1.1 beta vs. Paralells Desktop 3.0

Boot CampでOSXとVistaをデュアルブートにして利用しています。Boot Camp 1.4 betaにアップグレードしてからParalellsの調子が非常に悪く、直ぐに固まるのでVMWare Fusionを試してみる事にしました。

キーボードの配列がAT配列になる、ディスプレイドライバの設定に問題があったのかVistaの画面がSVGAになった、Boot Campのドライバをインストールし直す必要があった、などのマイナーなトラブルは有りましたが普通に使えます。もっともチャレンジャーにもParalellsをアンインストールしないでVMWare Fusionをインストールした事が問題の原因かもしれませんが。

結論から言うとVMWareを使う事にしました。

– CPU消費が少ない
– 速い(体感的に)

が決め手になりました。Paralellsでぎくしゃくしていたアプリもかなり快適に動作するようになりました。フルスクリーンも使いやすいです。(OSXのメニューバーは邪魔なのでVMWareを使っている時のように隠れてくれるとうれしいのですが… 確かアプリ毎だった気がするのでOSでは変えれないのかもしれません。知らないだけで設定があるのかな?)

3DとDual Coreを有効にする設定も試してみましたが、3Dを有効にするとVistaでは無理ある(?)らしくまともに利用できませんでした。Dual Coreも有効にして少し使うとフリーズしたので無効にしました。

細かい所、例えばMacに無いキーが送信できるなどの機能はParalellsの方が良い感じです。しかし、VMWareは多少の問題は在りますが、軽快に動く方が助かるのでVMWareに乗り換えると思います。

Paralellsをインストールしている方でVMware Fusionを試したい方は最初にParallelsでWindowsを起動してParalells Toolをアンインストールした方が良いです。このツールはParallelsで起動していないとセットアッププログラムが動作しないようになっています。このツールを削除しておくとここに書いていたキーボードやドライバの問題は発生しないのかもしれません。

カテゴリー
Computer

OSX 10.5 Leopardは10/19(大安)発売?

テキトーにMac OSXのニュースを見ていたらLeopardの発売日は10/19の大安ではないか?と言う説を見つけました。

過去発売日の4回のうち2回は大安、他も先勝などの縁起の良い日だったそうです。日本はAppleにとってお得意様だから縁起の良い日に発売しているのでは?と書かれていました。

ブックマークしなかったので元ネタURL無しで申し訳ないです。

追記:
見つけました。
http://blogs.itmedia.co.jp/2013/2007/10/mac_os_x_leopar_b514.html

http://japan.cnet.com/news/biz/story/0,2000056020,20358086,00.htm
によると10月26日(金)発売かも、となっています。