いらないというか、デリミタを入れるとデリミタではなく正規表現の一部として認識される。
× - mb_split('/hoge/', $subject);
○ - mb_split('hoge', $subject);
「mb_split デリミタ」でググっても同様の事例が出ないのは、余程必要とされていない関数なのか。そういう自分も、何年もPHPを使っていて、この関数に触れたのは初めてだったりして。
いらないというか、デリミタを入れるとデリミタではなく正規表現の一部として認識される。
× - mb_split('/hoge/', $subject);
○ - mb_split('hoge', $subject);
「mb_split デリミタ」でググっても同様の事例が出ないのは、余程必要とされていない関数なのか。そういう自分も、何年もPHPを使っていて、この関数に触れたのは初めてだったりして。
第3引数、from_encoding は省略の場合内部エンコーディングとなることをはじめて知った!
省略した場合は自動判別かと思ってたよ。実際は内部エンコーディングとHTMLのエンコーディングが揃ってる場合がほとんどなので気づかなかったのだと思う。
ボビー×ミルコ・・・番狂わせもあり得ないし、ミルコが相手にあわせるとも思えないし、ミルコ×美濃輪のように、見所なく普通にあっさり終わりそうだ。ミルコはケガのため、大晦日は出たいけど一線級の相手はやだよと言ってるとか言ってないとかなので、その辺の噂と整合性がとれてるところが不吉である。
ボビー・オロゴンの紹介文 Nigerian television personality and ''part-time fighter'' ってところにややウケ。
FreeBSD の ports で PHP5.2 を入れようとしたら、タイトルの通りのエラーが出て怒られた。
確かにそんなファイル存在しないのだけど、、、と思ったら make config で Build Apache module なる項目にチェックが入ってない。デフォルトでOFF?いやいや CLI と CGI が ON で Apache module が OFF ってどういう初期設定よ?
いつの間にかヒョードル vs ハントのタイトルマッチが決定していた。
なぜタイトルマッチ?という声が大きいようだが同感。ハントは確かに去年の男祭りでミルコに勝ってはいるものの、ジョシュにああもあっさり負けているだけに、時期尚早なのではないかと思う。今年のベストバウトの一つにあげられる高坂vsハントの立役者だけに、DSEからのご褒美だったりして。でもやっぱり、今タイトルマッチするなら、ミルコかジョシュか、どちらかでしょう。
ハントはK-1でも活躍していただけに、チャンピオンになればライトファン層にリーチできてDSE的にはあるいは良い面もあるのかもしれないけど。まあ順当にヒョードルが勝つに違いない。
それにしても出場予定選手の顔ぶれがすごいことに。まさにオールスター。
現時点で・・・
ヘビー:ヒョードル、ハント、吉田、藤田、ミルコ、ジョシュ、シウバ、ノゲイラ兄
ミドル:中村、ショーグン、アローナ
ウェルター:三崎、郷野、菊田、美濃輪、ダンヘン、カーン
ライト:五味、青木、石田、川尻、マッハ、メレンデス、ハンセン
個人的にはショーグン×アローナをぜひもう一度みたい。あと、万全な状態でのカーン×パウロ・フィリオ(残念ながら出場予定選手に入ってないけど。ケガのせい?)。
EL3 が php4 × PostgreSQL7 なのは承知していたものの、 EL4 なら php5 が入っているとなぜか完全に思い込んでいた。でも実際フタを開けてみると
php4 × PostgreSQL7 でかなり想定外の展開に(単に、ちゃんと確認しとけよという話なのですが)。一瞬冷や汗ものだったものの、以下の方法で rpm をでっち上げて無事クリアー。
CentOS の rpm がそのままそっくり使えるという期待もあったのですが、この時点で最新の php-5.1.6-1.2.1.centos.src.rpm だと PostgreSQL 7 とセットでビルドされちゃってるっぽかった(あるいは単にライブラリのファイル名の問題?)。
まずははじめから入っている php4 と postgresql 関連の rpm を全て削除。依存があるとか言われても強い意志を持ってとにかく削除。
[PostgresSQL編]
ftp://ftp.postgresql.org/pub/binary/v8.1.5/linux/rpms/redhat/rhel-es-4
から必要な rpm を持ってきてインストールするだけ。
[PHP編]
とりあえずそのまま使えそうな CentOS 用の SRPM を持ってくる
wget http://mirror.centos.org/centos/4/centosplus/i386/SRPMS/php-5.1.6-1.2.1.centos.src.rpm
そしてインストール。
rpm -i php-5.1.6-1.2.1.centos.src.rpm
/usr/src/redhat/SPECS/ で
rpmbuild -bb php.spec
とやってみると、ビルドに必要なものが色々ないよと怒られるので up2date または、up2date でインストールできないもの(自分の場合は sqlite, sqlite-devel)
は http://rpm.pbone.net/ あたりから探し出してインストールする。
それが済んだら改めまして
rpmbuild -bb php.spec
すると、/usr/src/redhat/RPM/i386 に rpm が色々できるので、
これらを、http://mirror.centos.org/centos/4/centosplus/i386/RPMS/ あたりからとってきた
php-pear-1.4.9-1.2.centos.noarch.rpm と一緒にインストールすればできあがり。
※ php.spec を少し書き換えて RHEL4 用の rpm ですよということにすれば尚よし。
それにしても RHEL4 よ、php4 なのはともかくとしても(これも個人的には Agavi 使うのでありえないのだけど世の中的にはまだまだ php4 らしいので)、PostgreSQL が 7系なのはどうかと思うよ。サポート面倒くさいからひたすら枯れたものしか使わないってことなのだろうか。
Agavi の 携帯対応 SmaryView をキャッシュ対応にしてみた。
うむ、いい感じだ。
しかしながら、render メソッドをたった1行 display() のパラメータを変更するためだけにオーバーライドしていたり、
$this->getEngine()->display($this->getTemplate(), $this->getEngine()->cache_id, this->getEngine()->compile_id);
キャッシュされているかどうかを判定するメソッド isCached が
public function isCached ()
{
$original_template_dir = $this->getEngine()->template_dir;
$original_compile_dir = $this->getEngine()->compile_dir;
// display の直前と同じ状態を作成
$this->getEngine()->template_dir = $this->getDirectory();
$this->getEngine()->compile_dir = AG_SMARTY_CACHE_DIR;
$ret = $this->getEngine()->is_cached($this->getTemplate(), $this->getCacheId(), $this->getEngine()->compile_id);
// isCached が呼ばれる直前の状態に戻す
$this->getEngine()->template_dir = $original_template_dir;
$this->getEngine()->compile_dir = $original_compile_dir;
return $ret;
}
こんな感じだったりとあまり美しくない。
Agavi の View が十分よく設計されているのだと仮定すると、何か実装の仕方を間違えたんだろう、きっと。そもそも Decorator のこと全然考慮してないし。
前述の WebDrive を導入してみた。
今のところはとりあえずサーバーの設定不要で使える FTP 経由で使っているのだけど、とりあえず問題のない使用感。
ただし、WebDrive 経由のフォルダに Subversion でリポジトリからチェックアウトしてこようとすると、なんだかのエラーで失敗。ローカルのディスクにチェックアウトしてきたファイルを WebDrive 経由のフォルダにコピーしても、作業コピーとして認識されなくなってしまう。
ちょっと調べてみると FTP でなく WebDav 経由なら問題なくいけるようなので、今度試してみよう。なんとなく以前 WebDav を使おうとして、Windows XP のWebDav クライアントが全く安定しないので断念していらい WebDav には抵抗があるのだけど。