PEAR :: Package :: Net_UserAgent_Mobile :: 0.24.0

Changelog:

- Added fallback mode on no match using $GLOBALS[’_NET_USERAGENT_MOBILE_FALLBACK_ON_NOMATCH’].
- Changed the EZweb regex pattern to be able to match au’s A5511T.
- Added support for DoCoMo’s SO506iS, SH901iS, F901iS, D901iS, P901iS, N901iS.

Net_UserAgent_Mobileが0.24.0にバージョンアップ。
901iSシリーズに対応したようです。

携帯サイトはPHPが主流になってきてる(ような気がする)のでお世話になってる人も多いんじゃないでしょうか。(詳しくない)

そして、作者がこのように素晴らしいスタンスの持ち主だと安心して使えます。

神の子どもたちはみな腕を磨く: PEAR::Net_UserAgent_Mobileにおけるエラー制御演算子の使用について

なぜこの書き方になったのか。それは単に当時コードを書くときに参考にしたPEAR::DBパッケージがそうなっていたからというものと、想定外の出来事が発生した場合のエラーメッセージを画面に出力しないようにという程度の考えだったと思います。しかし、コメントを頂いたことをきっかけにエラーハンドリングをユーザにゆだねる方法が望ましいと考え、バージョン0.24.0では次のように変更しています。

他人にやさしく、自分にモヒカン族

昨今、そんな姿勢が技術者には求められているんではなかろうか!!

PHPEclipse.net

This is a first preview release for Eclipse 3.1.

Especially some debugger issues aren’t solved completly at the moment.

Eclipse 3.1対応PHPEclipseの preview release版が出てます。
まだデバッガ周りが怪しいとか。結構すぐに正式版が出そうな雰囲気なので待ちます。

PHPカンファレンス2005の詳細が公開されました – HotPHPPER News

毎年恒例のPHPカンファレンスの2005年版、「PHPカンファレンス2005」の詳細が公開されました。
今回はPHPでも昨今注目度の高いフレームワークを重点に置いたプレゼンテーションになるようです。

PHPカンファレンス2005で各フレームワークのお話の前に基本的な「フレームワークって何?」というお話をさせてもらうことになりました。

PHPカンファレンスに行ったことが無いので雰囲気がよくわからないんですが、パワポ作って12時頃行けばいいのかな?(予備知識無しにも程がある)

PECL :: Package :: sdo

Service Data Objects (SDOs) are designed to make it simpler to work with data from heterogeneous sources whilst also being tailored for service-oriented applications. SDO provides developers the means to manipulate data in a uniform manner regardless of source, such as relational databases and XML.

IBMが作ったService Data Objects(SDOs) for PHPのextention。

SDOってまたっさっぱりわからないですが、 「ヘテロジーニアスなデータを簡単に扱える」みたいです!




・・・なんだよヘテロジーニアスって、、、おっかねぇ・・・。

BEAのサイトとかWebSphere絡みのページに引っかかるのでアプリケーションサーバでは流行の技術なのかも。

XMLやDB関係なくアクセスできる!感じなようです。SOAPとRDBにさらに一枚被せたAPIでしょうか。

mojaviinfo.png

以前、PHP勉強会でEthnaInfoを見て真似しようと思っていたMojaviInfoを作りました。

MojaviInfo-0.2.zip

単なるMojavi2のモジュールなのでmodulesディレクトリに置けば動きます。

設置例: iccサンプルのMojaviInfo

表示する項目は、configファイルで設定する値、include_path(Mojavi中で設定しているとphpinfoとは異なるので)、モジュール・アクション・ビュー・テンプレートの一覧、GlobalFilter一覧、index.phpで設定するLogger・Appender一覧、Authorization Handler、User、User Container、Session Handlerです。

ハードにMojaviを使ってるプロジェクトとかに入れてみるとズラーっと表示されて楽しいです。

PHPデスクトップリファレンス
  • PHPデスクトップリファレンス
  • オライリー・ジャパン (2001-04)
  • (著)ラスマスラードフ
  • (原著)Rasmus Lerdorf
  • (翻訳)石川圭
  • (翻訳)浜野 賢一朗
  • 定価:¥ 1,155
  • 新品価格:¥ 1,155
  • 中古価格:¥ 500
  • ASIN:4873110343

PHPデスクトップリファレンス。
オライリージャパンで出てるPHP本はこれだけで、扱いとしてはPythonより小さいです。
何とかしてPHPの本ももっと出してくれ!と働きかける方法はないもんでしょうか。

とりあえず現在英語で出てるPHPのオライリー本を列挙してみます。

Programming Php
  • Programming Php
  • Oreilly & Associates Inc(2002-03)
  • (著)Rasmus Lerdorf
  • (著)Kevin Tatroe
  • (著)Bob Kaehms
  • (著)Ric McGredy
  • 定価:¥ 4,653
  • 新品価格:¥ 5,156
  • 中古価格:¥ 7,738
  • ASIN:1565926102

これが日本語訳されてればマンモス本の代わりになったのかも・・・。

Learning PHP 5
  • Learning PHP 5
  • Oreilly & Associates Inc(2004-08-15)
  • (著)David Sklar
  • 定価:¥ 3,488
  • 新品価格:¥ 2,315
  • 中古価格:¥ 7,380
  • ASIN:0596005601

なかなか良い。

PHP Cookbook
  • PHP Cookbook
  • Sitepoint Pty Ltd(2003-12-30)
  • (著)David Sklar
  • (著)Adam Trachtenberg
  • (著)Harry Fuecks
  • 定価:¥ 4,653
  • 新品価格:¥ 3,709
  • 中古価格:¥ 8,845
  • ASIN:1565926811

第二版求む。

Web Database Applications With Php and Mysql

評判が微妙。

Upgrading To Php 5
  • Upgrading To Php 5
  • Oreilly & Associates Inc(2004-07-22)
  • (著)Adam Trachtenberg
  • 定価:¥ 3,488
  • 新品価格:¥ 2,750
  • 中古価格:¥ 6,381
  • ASIN:0596006365

どういう内容なんでしょうか!

Php Application Design Handbook
  • Php Application Design Handbook
  • Oreilly & Associates Inc(2005-07-30)
  • (著)Kevin Tatroe
  • (著)Tobias Ratschiller
  • 定価:¥ 4,071
  • 新品価格:¥ 3,460
  • ASIN:0596007086

あーこれも見たい。

第2回PHP勉強会inTokyoが開催されました – HotPHPPER News

6月より始まっているPHP勉強会の第2回が東京で開催されました。

PHP勉強会の第2回。体調を崩してしまって行けませんでした。残念。
次は是非行きたいです。

ishinaoさんのとこのこのエントリを見て衝撃を受けたのでソースコード検索エンジンのgonzuiを入れてみました。(debian sarge)

# apt-get install ruby1.8 ruby1.8-dev libdb4.1-ruby1.8
# wget http://jaist.dl.sourceforge.net/sourceforge/gonzui/gonzui-1.2.tar.gz
# tar -zxvf gonzui-1.2.tar.gz
# cd gonzui-1.2
# ./configure
# make
# make install

gonzui at p0t

ソースコードの行にURIがあるなんて、何て凄いんだ。
先日のエントリこんなリンクがあればもっと直感的になったハズ。

ref: PHP4.4.0リリース、Mojavi2残念感

PHP 4.4.0 Released

The PHP Development Team would like to announce the immediate release of PHP 4.4.0. This is a maintenance release that addresses a serious memory corruption problem within PHP concerning references. If references were used in a wrong way, PHP would often create memory corruptions which would not always surface and be visible. The increased middle digit was required because the fix that corrected the problem with references changed PHP’s internal API. PHP 4.4.0 does not have any new features, and is solely a bugfix release.

PHP 4.4.0がリリース。バグ修正だそうです。

PHP: PHP 4 ChangeLog

Fixed bug #32685, Fixed bug #29423 (Segfault when using assignment by reference within function).

ChangeLogではこの「関数内で参照代入するとsegfault」ってやつが一番でかそうです。

・・・ぐらいに思ってたのにMojavi2動かすと、

PHP Notice:  Only variable references should be returned by reference(略
PHP Notice:  Only variable references should be returned by reference(略
PHP Notice:  Only variable references should be returned by reference(略
PHP Notice:  Only variable references should be returned by reference(略

mojavi-all-classes.phpでNotice出まくり。原因はまさにコレ。参照返ししてるのに値で代入したり、値返ししてるのに参照代入すると注意されるようになったためです。たしかに注意してくれるとありがたいですが、Mojavi2のエラーハンドリングの仕組みが動く前(Controller::dispatchの中でset_error_handler)なので止めようが無し。

とにかく困ってる人はこうすればとりあえずは凌げるっぽいです。

mojavi-all-classes.php

// this is an uncommented, auto-generated file
// for full source, please view the Mojavi lib directory

//error_reporting(E_ALL);
error_reporting(E_ALL & ~E_NOTICE);

あとでがんばってNOTICE元を全部修正したパッチを作りたいです。

2006/03/07追記: 修正版はこちら

引き続きセッションIDかぶっちゃう問題

p0t: PHPのセッションID3

一度session_id()を取得するんじゃなくて、

session_id(md5($_SERVER[‘SERVER_ADDR’].uniqid(rand(),1)));

とかやるのはどうですか?
某所でこんなコードを書いたことがあって、正解かどうか激しく気になります。正解でしょうか?教えてください。

あと、$_SERVERの値って、php.iniやらの設定で取れないことあるよね。そんな時どうしよう。どうしよう・・・

投稿者 kかべ : 2005年07月12日 14:16

kかべさんのこの案が素敵な感じがします。
調べてみるとセッションID発行md5(uniqid(””””,1))はほぼ等価っぽいので正解なのではないでしょうか!

php-4.3.11/ext/session/session.c

sprintf(buf, "%ld%ld%0.8f", tv.tv_sec, tv.tv_usec, php_combined_lcg(TSRMLS_C) * 10);
PHP_MD5Update(&context, buf, strlen(buf));

php-4.3.11/ext/standard/uniqid.c

if (more_entropy) {
    sprintf(uniqid, "%s%08x%05x%.8f", prefix, sec, usec, php_combined_lcg(TSRMLS_C) * 10);
} else {
    sprintf(uniqid, "%s%08x%05x", prefix, sec, usec);
}

$_SERVERはどういうとき使えないんでしたっけ。その場合は、どうしよう・・・。

ref: PHPのセッションID3