2008-12-02 (火)
■ Zend Framework 1.7.1 がリリース
Zend Framework のバージョン 1.7.1 がリリースされました。 Zend Framework 1.7.0 と比べて 18 箇所の修正や変更がされています。 変更箇所のリストはこちらです。
あとメーリングリストに、ZF 1.7.1 に上げて動かなくなった場合の対処法、みたいな話が載っていたので、 一応リンクを張っておきます。
2008-12-04 (木)
■ 「だれでもアンケート」の Web サービスを12月8日に公開予定
現在、だれでもアンケート という Web サービスの公開に向けて準備しています。 一部の機能が使えるベータ版を、12月8日から利用できるようにする予定です。
だれでもアンケートは、無料でアンケートを作成したり、投票できるサービスです。
- 誰でも自由に、無料でアンケートを作成できます。
- アンケートを自分のウェブページに貼り付けて利用することもできます。
- どのアンケートに回答済みなのか、一目で分かるようになっています。
開発状況を書き記していくために、開発日誌を新たに作成しました。 今後、だれでもアンケート関連の情報は、以下の日記に書いていきます。
それ以外の情報は、こちらの「れぶろぐ」に書いていくつもりですが、 集客のために、PHP や JavaScript 関連の記事を向こうの開発日誌に載せたりするかもしれません。 その場合は、誘導するための記事をこちらのブログにも書くと思いますが、できたらしばらくの間、向こうのブログもチェックしてみて下さい。 よろしくお願いします。
2008-12-06 (土)
■ SIE 0.38 がリリース
SIE は Internet Explorer で SVG を表示可能にする JavaScript ライブラリです。
バージョン 0.37 からの変更点:
- tspan要素にFontStyleを適用
- STGroupオブジェクトの実装
- バグ[#13947] gnuplotから出力されたSVGが表示されない を修正
- バグ[#13703] のクリッピング異常を再修正
- bug[#13963] viewBox属性などを指定すると、text要素の位置がずれてしまう を修正
- Objectembedsオブジェクトを全ブラウザで作成するように
- == 演算子を === に
- i++ を ++i に
- XLinkにおいて、ファイル名のみを記したURIのバグを修正
コードがどう変更されたのかは追っていませんが、試してみたところ、 画像が表示された後で1ピクセルくらいピクッとずれる現象が直っているようです。 クリッピングの再修正、というのはおそらくこのことなのでしょう。
なお、VML つながりということで、本日リリースされた uupaa-excanvas.js についても書きたいことがいろいろあるのですが、 忙しくてまだ検証できていないので、落ち着いたら改めて書こうと思います。
2008-12-13 (土)
■ CentOS 用 PHP 5.2.8 のパッケージをビルドする
単純に PHP 5.2.8 の rpm パッケージが欲しい場合は、この辺 から入手できます。 以下の説明は、自分でパッチをあてたりしてビルドしたい人向けの説明です。
Fedora 用の PHP のソースパッケージを、この辺のサイトからダウンロードしてきます。 この記事を書いている時点では、php-5.2.8-1.fc11.src.rpm が最新です。
ソースパッケージをインストール。
$ rpm -ivh php-5.2.8-1.fc11.src.rpm
spec ファイルのディレクトリに移動。
$ cd ~/rpm/SPECS
php.spec に以下の変更を加える。
- T1lib のパッケージが CentOS にはないので用いないように変更
- PHP のソースコードに含まれている PCRE 7.8 を用いてビルドするように変更
- aclocal workaround の部分は Fedora 11 用の設定らしいので、削除
--- php.spec.orig
+++ php.spec
@@ -271,5 +271,5 @@
Requires: php-common = %{version}-%{release}
# Required to build the bundled GD library
-BuildRequires: libXpm-devel, libjpeg-devel, libpng-devel, freetype-devel, t1lib-devel
+BuildRequires: libXpm-devel, libjpeg-devel, libpng-devel, freetype-devel
%description gd
@@ -420,7 +420,4 @@
%build
-# aclocal workaround - to be improved
-cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4
-
# Force use of system libtool:
libtoolize --force --copy
@@ -462,5 +459,4 @@
--with-xpm-dir=%{_prefix} \
--enable-gd-native-ttf \
- --with-t1lib=%{_prefix} \
--without-gdbm \
--with-gettext \
@@ -471,5 +467,4 @@
--with-png \
--with-expat-dir=%{_prefix} \
- --with-pcre-regex=%{_prefix} \
--with-zlib \
--with-layout=GNU \
バイナリパッケージをビルド。
$ rpmbuild -bb php.spec
2008-12-15 (月)
■ Google ブログ検索への更新通知
最近、このブログを更新しても Google のブログ検索に反映されていないようなので、設定の見直しを行いました。 今まで設定していた更新通知先を1つ1つチェックしてみると、
の2つが死んでいたので、まずこれらは外すことにしました。
次に、 Google ブログ検索の更新通知 API について を参考に、
を新たに追加してみました。 メソッド名には weblogUpdates.extendedPing を設定するよう書かれていますが、 実は tDiary の ping.rb を使うと weblogUpdates.ping になります。 でも確か、これでも問題ないはずです。
2008-12-17 (水)
■ 39種類の言語に対応したシンタックスハイライタ SHJS 0.6 がリリース
SHJS (Syntax Highlighting in JavaScript) は、 JavaScript で書かれたシンタックスハイライタです。 このバージョンでは、バージョン 0.5 と比較して、以下の言語に新たに対応しています。
- S-Lang
- Scala
- Java properties files
- Desktop files
- LSM (Linux Software Map) files
- Xorg configuration files
- RPM spec files
- Haxe
- LDAP files
- GLSL
- Objective Caml
- Standard ML
- JavaScript with DOM
- C
おそらく、JavaScript 製シンタックスハイライタの中では、対応言語が一番多いはずです。
拙作の PukiWiki 用 shjs.inc.php プラグイン もありますので、ぜひご利用下さい。
2008-12-24 (水)
■ Zend Framework 1.7.2 がリリース
Zend Framework のバージョン 1.7.2 がリリースされました。 バージョン 1.7.1 からの変更点は、以下のページに載っています。
テスト用のファイルの修正が多いみたいですが、個人的に気になった変更点としては、こんなのがありました。
- [#ZF-5121] Several properties of Zend_PDF need UTF-16 encoded - Zend Framework Issue Tracker
- [#ZF-3921] conditional comments for HeadScript and HeadStyle - Zend Framework Issue Tracker
Zend_Pdf って一度も使ったことはないのですが、日本語も十分使えるレベルになってきているんですかね?
2008-12-26 (金)
■ GeSHi 1.0.8.2 がリリース
GeSHi は PHP で書かれたシンタックスハイライタです。 このバージョンでは、以下の言語に新たに対応して、 126 種類の言語をサポートするようになりました。
- Brainfuck
- HQ9+
- INTERCAL
- LOLcode
- LScript
- Pixel Bender
- ProvideX
- VIM Script
- Visual Prolog
- Whitespace
PukiWiki 用 GeSHi プラグイン のスタイルシートの方も更新しておきました。 ただ、こうやって GeSHi のバージョンアップの度に作業するのも面倒臭くなってきたので、 次のバージョンのプラグインでは、
- 外部スタイルシートは使わない設定をデフォルトにする
- 外部スタイルシート作成に使うツールも公開して、必要なら自分でやってもらう
のようにして、外部スタイルシートを利用するのはオプションの機能にしようかと思っています。
2008-12-30 (火)
■ ignore_user_abort(true) の設定はあまり意味がない
今まで、PHP 4 で file_put_contents() 相当の処理を行うには、以下のように書いていました。
function write_file($filename, $data)
{
$fp = fopen($filename, file_exists($filename) ? 'r+b' : 'wb');
if ($fp === false) {
return false;
}
flock($fp, LOCK_EX);
$last = ignore_user_abort(1);
rewind($fp);
$bytes = fwrite($fp, $data);
fflush($fp);
ftruncate($fp, ftell($fp));
ignore_user_abort($last);
fclose($fp);
return $bytes;
}
ignore_user_abort() という珍しい関数を使っていますが、これは、 開発談義/23 - PukiWiki Plus! に書かれていたのを参考にしたものです。 でもこれって、本当に必要なのかな? とずっと思っていたのですが、最近、こんな記事を見つけました。
- GASOLINE STAND » ignore_user_abort=falseなのにスクリプトが止まらない
- 作業日報 | ignore_user_abort(false)でPHPが処理を中断しない件
どうも、画面表示を含まない処理なら、わざわざ ignore_user_abort(true) に設定する必要は無いみたいです。 ということで、実験してみました。
<?php
ignore_user_abort(false);
$filename = 'log.txt';
$fp = fopen($filename, 'ab');
flock($fp, LOCK_EX);
for ($i = 0; $i < 10; ++$i) {
fwrite($fp, "$i\n");
sleep(1);
}
fclose($fp);
こんなスクリプト log.php を作って、
- ブラウザ1から log.php にアクセス
- ブラウザ2から log.php にアクセス
- ブラウザ1の「中止」ボタンを押す
というのを数秒の間にやった場合、ログファイルがどうなるかというと、
0 // ブラウザ1からのリクエストに対する処理開始 1 2 3 // ブラウザ2からのリクエストに対する処理は、排他ロックがかかっているので後回し 4 5 6 // 「中止」ボタンが押されたが、処理はそのまま続けられる 7 8 9 // ブラウザ1からのリクエストに対する処理終了 0 // ブラウザ2からのリクエストに対する処理開始 1 2 3 4 5 6 7 8 9 // ブラウザ2からのリクエストに対する処理終了
のように、きちんと書き出されました。 やはり、上の file_put_contents() の例で言えば、ignore_user_abort() は不要っぽいです。
