- blogs:
- cles::blog
浮動小数点変換バグはJavaにもあった
php
java
cve
PoC 先日、PHPで特定の浮動小数点数を入力するとハングするという問題*1*2があって、急遽アップデート版が出たりとかしてちょっとした騒ぎになりました。
これと同じような問題がJavaにもあった模様。
・Security Alert For CVE-2010-4476 Released (The Oracle Global Product Security Blog)
・Java Hangs When Converting 2.2250738585072012e-308 - Exploring Binary
確かに、下記のようなコード実行すると、fooを出力してそのまま固まってしまいますね。
ウェブアプリなんかで、外部からの入力をDoubleに変換してるところがあったりすると目も当てられないかも。
PHPとJavaでは一番最後の数字が1違いますが、これがどのような境界値なのかというのはちょっと興味があります。
今はちょっとこういうことにうつつを抜かしているわけにはいかないので、懸案が片付いたらいろいろ調べてみたいと思います。
MSの人が書いた PHP on Windows ガイドライン
windowsserver
php Windows で PHP というと、XAMPPでApache + mod_php + MySQLの組み合わせというのがすぐに思い浮かびますが、このガイドラインはMSの人が書いているだけあって、IIS + PHP(fcgi) + Microsoft SQL Server とPHP以外は完全にMS環境を利用するという内容のようです。
PHP on Windows ガイドライン | IIS | マイクロソフト 技術情報
PHP 入門書の多くでは、 IIS が Windows 付属の Web サーバーであり、 PHP の実行環境として使用できることが示されています。しかしながら、PHP 環境を構築する実際の手順の説明では、IIS 以外の Web サーバーを追加インストールして行う方法が紹介されているケースが多く存在します。マイクロソフトでは近年 PHP の稼働環境としての Windows IIS が PHP ユーザーにとって快適になるように様々な製品を出荷したり、容易に構築できるツールも提供しています。本ガイドラインを使って Windows 上で動作する快適な PHP 環境を体験してください。
まだ1章だけのドラフト版なので、完成したら通して読みたいと思います。ただ、国内のちょっとしたレンタルサーバは全部Linux + MySQLだったりするので、ローカルのテスト環境としては全く使えなさそうです。おそらく、本当に本番環境がIIS+SQL ServerでPHPのアプリもちょっと使いたいなという場合にぴったりなんでしょうね。イントラ用のウェブサイトとか。
PHP 5.2.17が出るらしい
php PHP 5.2.xは先日の5.2.16で終了だったはずですが、どうやら5.2.17が出る模様。どちらにせよ打ち止めには変わりないので、5.3.x系列へのアップデートは考えないといけないわけですが。
またもや何もアナウンス出てませんが、突如Ilia氏のダウンロードディレクトリにtar玉が用意されました。svnタグも切られています。
* http://downloads.php.net/ilia/
NEWSの差分を見ると、PHP :: Bug #53632 :: PHP hangs on numeric value 2.2250738585072011e-308が修正されているようです。PHP5.3.45で対応予定のものが、バックポートされたっぽいですね。
PHP 5.2系最終版をインストール
php PHP5.2系のアップデートが出ていたので、アップデート作業を行いました。
本当にこれで最後? PHP 5.2系最終版登場 | エンタープライズ | マイコミジャーナル
PHPデベロッパチームはPHP 5.2.16が5.2系最後のリリースであるとし、すべてのPHP 5.2ユーザに対してPHP 5.3.4などの5.3系へアップグレードすることを強く推奨している。PHP 5.2系から5.3系へアップグレードするための移行ガイドが公開されているため、同ガイドを参考にしたアップグレードが薦められている。
どうやらこれで5.2.x系のバージョンアップは終了のようです。5.2系を使い始めたのは2008/1のことで、やはりこれも4.x系の開発が終了したのでという消極的な理由でしたが、今回も結局最後まで5.3.x系に移ることができませんでした。休暇中に仮想環境で5.3.x系の開発環境を作って、バージョンアップの影響を見極めることにしたいと思います。
PHP技術者認定が始まるらしい
php
certificate
oreilly PHP技術者認定機構というのが発足してPHP技術者認定というのが始まるようです。指定カリキュラムがオライリーの本になっているというのが特徴のようですが、オライリーのマーケティングの一環ということなんでしょうか。
設立準備が進むPHP技術者認定機構、9月にベータ試験実施を予定:CodeZine
資格は初級と上級の2種類が用意され、初級では簡単なプログラムを自作したり、チームの一員として開発に従事したりするスキルが、上級ではセキュリティやパフォーマンス対策、システムの設計等、一歩進んだ実践的なスキルが求められる。認定教材には特にオープンソース系で定評のあるオライリー・ジャパンの書籍が採用されており、初級は『初めてのPHP5』が、上級は『プログラミングPHP 第2版』が主教材として指定されている。その他にも、認定スクールによる資格受験コースや副教材、出版社による試験対策本の提供が見込まれる。
最近、技術系の資格のあるなしが仕事に関係することが無くなってきたので、今のところ受験予定はありません。ただ、顧問にPHPのセキュリティ関係で有名な大垣靖男さんが入っていたりするんで、その関係でセキュリティ関連の部分がキチッと出題されるというのだったらちょっと興味あるんですけどね。
PEARにproxyを使って接続するには
php
pear PEARのプロキシの設定のやり方がわからなくて時間を食ってしまったのでメモ。
あまり設定を変えたことがないので、知らなかったのですが、pearの設定はpear config-setというコマンドを通して行うようになってるんですね。config-getを使うと現在の設定値が参照できるようになっているみたいです。
PHPでモバイルとPCを区別する
php
pear PHPでモバイルとPCを区別してリダイレクトするスクリプトが必要になったのでNet_UserAgent_Mobileでサラッと書いてみました。
インストールはPEARなので、コマンドから一撃でインストールできます。
今回はPCとモバイルの振り分けができさえすればよかったので、こんな感じでした。
ライブラリ的には、DoCoMoとAUとSBの識別とかにも対応しているようです。
Pythonのif __name__ == '__main__':と同じ効果をphpで書く
python
php
cli Pythonのコード(特にライブラリ)を読んでいると下記のようなコードに遭遇することがよくあります。
これは、そのスクリプト自身がエントリーポイントである場合にのみ実行され、ライブラリとして呼び出されるときには実行されないというイディオムで、コマンドラインからユーティリティのように使えるようになっていたり、テストが書いてあったりします。これと同じことがPHPでできないかということでいろいろ試行錯誤してみました。
[Pythonのif __name__ == '__main__':と同じ効果をphpで書く の続きを読む]
AfterLogic WebMail Pro
php
server 最近はAjaxを使ったサーバーインストール型のウェブメールもだいぶ増えてきたので、いろいろとサーバに入れて試してみました。以前はRoundCubeを使っていましたが、あまり使い勝手が良くなかったのですが、それから4年以上経ったのでだいぶ使いやすくなりましたね。
Webmail front-end for your existing POP3/IMAP mail server. Offer your users the fast AJAX webmail and innovative calendar with sharing. Stay in control with the admin panel and the developer's API. Available for both Linux (PHP) and Windows (.NET) platforms
いくつかインストールした中で問題なく日本語の受送信ができるということで、AfterLogic WebMail Proという製品をしばらくつかってみることにしました。このPro版は5ユーザー以上の場合には有料ですが、カレンダー等の機能がないGPL版のAfterLogic WebMail Liteもあるので、人数が多く、メールだけで十分という場合にはこちらを使う手もありそうです。
インストール自体はウィザードもあるのですんなりと完了しました。メインのIMAPのメールボックスを読み込ませてみましたが、初めの読み込みに時間がかかったものの動作は軽快ですね。
phpの配列関数ランキング
php
ranking phpには配列を処理するためのarray_###というメソッドが大量にある*1のですが、どの関数がどれくらい使われているかをgoogle code searchで調べたランキングを見つけたのでメモ。
一番使われてない配列関数って何? (PHP懇親会での発表ネタ) - おぎろぐはてな
Googleコード検索で、PHPの多すぎる配列関数を検索して、一番使われていない関数は何かを調べてみたというネタです。
1位 array()
2位 count()
3位 list()
4位 in_array()
5位 array_merge()
6位 sizeof()
7位 array_keys()
8位 array_key_exists()
9位 each()
10位 reset()
77位 array_replace_recursive()
76位 array_product()
74位 array_diff_uassoc()
array_intersect_uassoc()
73位 array_uintersect()
70位 array_uintersect_uassoc()
array_uintersect_assoc()
array_udiff_uassoc()
上位のものはそれなりに納得感があります*2が、間違いなく下位の関数は使った事がないです。最近追加されたものも多いようです。PHPはバージョンアップの度にマイグレーションばかりやらされている気がしますが、PHPは標準の関数をもうちょっと整理してくれると嬉しいんですけどね。
- sadpkv
- CACHEMANAGER.phpというのはどうだろうかと
- pairb1m
- Lightning のToDoリストを複数のPCで共有できるアドオン
- majodca
- 九州旅行から帰ってきました
- majodca
- 九州旅行から帰ってきました
- hot534
- yum を使って OpenVPN をインストールする
- dresssu3
- NP_Trackbackを騙るトラックバックspamについて
- zippern7o
- NP_SpamBayesJP jp1b
- park81o
- Google Docs をメールフォームとして使う
- fogmpl
- なんで官庁の文章はPDFなんだろうか
- cutjw9
- 即席スライドショーを作る
- frightenlho
- 添付ファイルの容量を表示する「Attachment Sizes」
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(5064)
3 . GitHub が全ての公開リポジトリへのシークレットスキャンを有効に(4200)
4 . 年次の人間ドックへ(4132)
5 . 2023 年分の確定申告完了!(1つめ)(3990)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]


