まとめ ブログ ダウンロード 掲示板 メール

れぶろぐ

< 前月 翌月 > 最新


2008-05-02 (金)

PHP 5.2.5 with Suhosin Patch の CentOS 5 用 rpm パッケージを作成

参考にしたのはこのページ。

ただし、内容が古かったり、そんなことしなくていいのに、 というのが何ヶ所かあったので、手順を若干変更している。

  • PHP のソースパッケージは Fedora 用のものを利用する
  • パッチは Suhosin Downloads のページから最新のものをダウンロードする
  • パッチは .gz ファイルのまま展開しなくてもよい
  • パッチをリネームする必要もない

Fedora 用のソースパッケージは、 ここから php-5.2.5-7.fc9.src.rpm というのをダウンロードしてきた。

spec ファイルは、このように書き換えれば十分。

--- php.spec.orig       2008-04-24 23:26:15.000000000 +0900
+++ php.spec    2008-05-02 05:44:50.000000000 +0900
@@ -16,6 +16,7 @@
 Source2: php.ini
 Source3: macros.php

+Patch0: suhosin-patch-5.2.5-0.9.6.2.patch.gz
 Patch1: php-5.2.4-gnusrc.patch
 Patch2: php-4.3.3-install.patch
 Patch3: php-5.2.4-norpath.patch
@@ -357,6 +358,7 @@

 %prep
 %setup -q
+%patch0 -p1 -b .suhosin
 %patch1 -p1 -b .gnusrc
 %patch2 -p1 -b .install
 %patch3 -p1 -b .norpath

詳しい手順については、また後で、Wiki の方にまとめておきます。

このエントリの続き: 2008-05-03 (土)
Tags: PHP CentOS | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-03 (土)

PHP 5.2.6 がリリース

昨日、PHP 5.2.5 の rpm パッケージをビルドしたばかりなのに。 ブツブツ…。

各ディストリビューション用のパッケージはまだ出てきていませんが、 私の使っている Dotdeb 版パッケージはもう PHP 5.2.6 になっていました。 Suhosin パッチ も PHP 5.2.6 対応になっていました。 仕事が早いです。

Tags: PHP | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-04 (日)

SIE 0.21 がリリース

SIE は Internet Explorer で SVG を表示可能にする JavaScript ライブラリです。 ブックマークレットとして利用することもできます。 SIE 0.13 からの変更点は以下の通りです。

  • opacity属性のバグを修正(パッチ#12315)
  • points属性とfill、stroke属性の変換をやめる
  • <g>という、属性の付いていないタグに対応
  • text要素のずれを修正(バグ#11696)
  • stroke-width属性の改良(パッチ#12358)
  • mコマンド以降の複数の座標をlコマンドとして対応させた
  • HTMLでobject要素の幅が%の場合クライアント領域の幅を用いることにした
  • 円弧の最適化(パッチ#12129)
  • viewBox, preserveAspectRatio の処理の修正(パッチ#12415)
  • xml:base属性のバグを修正
  • transform 属性 (translate, rotate) の修正(パッチ#12423)
  • image要素のサポート
  • 色のキーワードを120色以上に増やした

個人的には、テキストのズレがほぼ解消されたのが嬉しいです。 もともと、SVG 形式のグラフを Web ページに貼りたい、と思って SIE に注目したのですが、 これでようやくその目的に使えそうです。

それと、私が書いたパッチの部分について書いておくと、 地味な改良ですが、stroke-width 関係の修正をかなり行っています。

  • 線が 1.25 倍の太さで表示される場合があったのを修正
  • 1px 以下の太さの場合、色を薄くして細く見えるように
  • 回転させると線が細くなるバグの修正

色々な SVG ファイルが正しく表示できるようになってきたので、 テストページのサンプルも少し増やしておきました。

また適当な SVG ファイルがあったら、追加していく予定です。

Tags: SVG JavaScript | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-05 (月)

RENESIS Player 1.0 がリリース

RENESIS Player は、 Internet Explorer や Explorer に組み込んで、 SVG を表示できるようにするソフトです。 そういえば、あの RENESIS Player というソフトはその後どうなったんだろう? と見に行ってみたところ、バージョン 1.0 がちょうどリリースされていました。

試してみましたが、やはりこのバージョンでも、日本語が表示できないのは直っていません。 将来的には結構期待できそうな感じなんですが、 今の段階では、このプラグインをインストールするより、Firefox でも使った方が良さそうです。

Tags: SVG | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-08 (木)

Invitation to try Google App Engine

こんなメールが来た。

Hello,

Thanks for signing up to try Google App Engine! Your account has been activated, so you can begin building applications!

To start creating applications with Google App Engine, simply follow this link (you may need to sign in with your xxxxxx@gmail.com Google Account):

http://appengine.google.com/

Thanks! The Google App Engine Team

そういえば、Google App Engine の申し込みしておいたんだった。 すっかり忘れていた。

今、忙しくて時間が取れないんだけど、 そんなことを言っていると結局手つかずになってしまいそうなので、何か作ってみるか。

Tags: Python | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-10 (土)

IE で SVG ファイルの直接表示を可能にする sie.php 0.1 を公開

Firefox などのブラウザでは、SVG ファイルをクリックすると画像として表示することができます。

一方、Internet Explorer でも、 SIE という JavaScript ライブラリを用いると、 HTML の文書中に SVG の画像を表示することができますが、 これを、SVG ファイルをクリックするだけで表示できるように、機能拡張してみました。

動作環境

処理の大半は JavaScript によって行われますが、 Web サーバ側で細工をするために、

  • Apache の mod_rewrite モジュール
  • PHP

が使える環境であることが必要です。

インストール

まず、SIE の公式ページ から、SIE のアーカイブをダウンロードして下さい。 展開すると sie021.js のようなファイルが入っていますが、最後の方に、

--- sie021.js	2008-04-30 23:00:18.000000000 +0900
+++ sie.js	2008-05-10 18:38:15.000000000 +0900
@@ -1568,4 +1568,5 @@
     if (xmlhttp) {
         xmlhttp.open("GET",url,true);
+        xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
         xmlhttp.onreadystatechange=function() {
         if (xmlhttp.readyState==4  &&  xmlhttp.status == 200) {

のような箇所があるので、このように1行追加し、sie.js という名前で保存して下さい。 (書き換えなくても動きますが、その場合は HTML 文書内での表示ができなくなります。)
SIE 0.22 以降では、sie.js にリネームするだけで良くなりました。

次に、 sie_php-0.1.zip をダウンロードして下さい。 展開すると、以下の2つのファイルが入っています。

  • .htaccess
  • sie.php

SVG ファイルと sie.js も含めて、全ファイルを同じディレクトリに置いてしまうのが簡単ですが、 別々のディレクトリに配置したい場合は次のようにして下さい。

  1. sie.php を、sie.js と同じディレクトリにコピー
  2. .htaccess を、SVG ファイルと同じディレクトリにコピー
  3. .htaccess 内の ./sie.php と書かれている箇所を、ディレクトリ構成に合わせて書き換える

SIE のスクリプトは sie.js という名前であることを想定していますが、 sie.min.js のような別のファイル名にしたい場合は、

define('SIE_JS', 'sie.js');

という定義が sie.php の先頭にあるので、この部分を書き換えて下さい。

使い方

HTML の文書内で、SVG ファイルへリンクを貼って下さい。 リンクをクリックすると、SVG の画像がブラウザ上に表示されます。

サンプル

sie.php を利用するように、サンプルページを手直ししました。 以前のサンプルページもしばらく残しておきます。

現状の問題点 (TODO)

今のところ、以下のような問題があります。

  • IE で SVG ファイルをダウンロードすると、加工された SVG ファイルになってしまう。
  • SVG ファイルを直接表示した後、HTML 文書中で同じ SVG ファイルを表示しようとすると、表示されない。
  • .svgz ファイルに未対応
  • SVG ファイルの大きさを、1000×1000 ピクセルに決めうちしている

1つ目の問題は、恐らくどうしようもないですが、 2つ目と3つ目のは、処理を手抜きしているのが原因なので、そのうち対応するつもりです。

ライセンス

MIT ライセンスにしておきます。 なにか問題があれば言って下さい。

このエントリの続き: 2008-05-16 (金)
Tags: SVG | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-13 (火)

Apache2 互換な ETag の計算方法

sie.php でキャッシュを制御するのに使いたいので、調べてみたところ、 2通りのサンプルコードが見つかった。

ということで、drry+@-> PHP で Apache 風 ETag の生成を次のように変えると Apache と全く同じ ETag を生成できる。

修正した ETag 生成コード

$etag    = sprintf( '"%x-%x-%x"', $stats['ino'], $stats['size'], $stats['mtime'] * 1000000 );

これからすると、Apache の内部では更新時刻をマイクロタイム単位で扱っているようだ。

Sample function that generates apache 2.2 ETag. Useful for scripts serving images or other cachable data.

$file="example.png";

// Inode
$ETag = dechex(fileinode($file));
// Size
$ETag.= "-".dechex(filesize($file));
// Modification time in useconds & (2^33-1)
$ETag.= "-".dechex(((filemtime($file).str_repeat("0",6)+0) & (8589934591)));

header("ETag: \"$ETag\"); 

念のため確認してみたが、確かにどちらのコードも Apache 2 と同じ ETag を出力する。 でも、前者の方がずっと分かりやすい。こちらのコードを使わせてもらおう。

Tags: PHP | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-14 (水)

CentOS 5 で IPv6 を本当に無効にする

CentOS 5 のインストール時に IPv6 を無効にするよう設定したはずなのに、 netstat や lsmod の結果を見ると無効になっていなかったので、どうすればいいのか調べてみた。

まとめると、

  • /etc/sysconfig/network に NETWORKING_IPV6=no の設定を追加
  • /etc/modprobe.conf に以下の設定を追加
alias ipv6 off
alias net-pf-10 off
  • /sbin/chkconfig ip6tables off を実行
  • マシンを再起動

これでようやく IPv6 を無効にすることができた。

なお CentOS Wiki のページはこういった有用な情報が満載なので、 Google で検索する前に、このページを調べる方が良かったかもしれない。 今度からそうしよう。

Tags: CentOS | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-16 (金)

IE で SVG ファイルの直接表示を可能にする sie.php 0.2 を公開

JavaScript ライブラリの SIE と組み合わせることで、 Internet Explorer で SVG ファイルを直接表示できるようになります。 前バージョン からの変更点は以下の通りです。

  • SVG ファイルの拡張子が大文字の場合に対応
  • ブラウザキャッシュを制御するコードを追加
  • 出力する HTML で <html> タグが抜けていたのを修正
  • sie.js を読み込むタイミングを変更

ダウンロードは以下のリンクからお願いします。

なお、sie.php を SIE のパッケージに同梱してもらうことにしましたので、 単独で配布するのはこれが最後になるかもしれません。 SIE のパッケージに含まれているのが最新版、ということになると思います。

このエントリの続き: 2008-07-13 (日)
Tags: SVG | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

Zend Framework 1.5.2 がリリース

Zend Framework の最新バージョンがリリースされた。 変更点については、以下のページを参照。

ざっと見た感じでは、Zend_Form と Zend_View 周りの修正が大半のようだが、 今、手が離せないので、バージョンアップ&動作確認の作業は明日以降に行うつもり。

ところで、

この辺の問題が迷走(まさに迷走)している感じなんだが、どうするつもりなんだろう?

Tags: Zend | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-17 (土)

XPS M1330 のリカバリ領域のバックアップ

ゴールデンウィークに注文したノートパソコンが届いた。 購入したのは Dell の XPS M1330

Media Direct などの余計な機能は要らないので、 Windows Vista と Ubuntu をクリーンインストールし直したいが、 その前にハードディスクの中にあるリカバリ領域などのバックアップを取っておくことにした。 以下、その作業記録を記しておく。

(ただしこの方法は、UNIX の dd コマンドについて知っている人向けで、あまり一般向けの方法ではないです。)


まず、Ubuntu 8.04 のCDを用意し、CDからブートする。

GParted コマンドでパーティション構成を調べる。

fdisk コマンドの結果も調べておく。

ubuntu@ubuntu:~$ sudo fdisk /dev/sda

このディスクのシリンダ数は 30401 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): p

Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
Disk identifier: 0x10000000

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1               1          10       80293+  de  Dell ユーティリティ
/dev/sda2              11        1316    10485760    7  HPFS/NTFS
/dev/sda3   *        1316       30075   231009276    7  HPFS/NTFS
/dev/sda4           30075       30402     2621440    f  W95 Ext'd (LBA)
/dev/sda5           30075       30402     2620416   dd  不明

コマンド (m でヘルプ): q

ubuntu@ubuntu:~$ 

外付けの USB ハードディスクを接続。 /media/disk というディレクトリにマウントされたので、 その下の tmp ディレクトリに移動する。

$ cd /media/disk/tmp

MBR をバックアップ。

$ sudo dd if=/dev/sda of=M1330_mbr.img bs=512 count=1

各パーティションを bzip で圧縮しながらバックアップ。

$ sudo dd if=/dev/sda1 | bzip2 --best > M1330_sda1.img.bz2
$ sudo dd if=/dev/sda2 | bzip2 --best > M1330_sda2.img.bz2
$ sudo dd if=/dev/sda5 | bzip2 --best > M1330_sda5.img.bz2

一応、その時のログ。

ubuntu@ubuntu:~$ cd /media/disk/tmp
ubuntu@ubuntu:/media/disk/tmp$ sudo dd if=/dev/sda1 of=M1330_mbr.img bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.344494 s, 1.5 kB/s
ubuntu@ubuntu:/media/disk/tmp$ sudo dd if=/dev/sda1 | bzip2 --best > M1330_sda1.img.bz2
160587+0 records in
160587+0 records out
82220544 bytes (82 MB) copied, 6.05429 s, 13.6 MB/s
ubuntu@ubuntu:/media/disk/tmp$ sudo dd if=/dev/sda2 | bzip2 --best > M1330_sda2.img.bz2
20971520+0 records in
20971520+0 records out
10737418240 bytes (11 GB) copied, 1794.36 s, 6.0 MB/s
ubuntu@ubuntu:/media/disk/tmp$ sudo dd if=/dev/sda5 | bzip2 --best > M1330_sda5.img.bz2
5240832+0 records in
5240832+0 records out
2683305984 bytes (2.7 GB) copied, 370.415 s, 7.2 MB/s
ubuntu@ubuntu:/media/disk/tmp$ ls -l
合計 4136480
-rwx------ 1 ubuntu root        512 2008-05-17 17:21 M1330_mbr.img
-rwx------ 1 ubuntu root    3109637 2008-05-17 17:23 M1330_sda1.img.bz2
-rwx------ 1 ubuntu root 3951927619 2008-05-17 17:54 M1330_sda2.img.bz2
-rwx------ 1 ubuntu root  280643839 2008-05-17 18:23 M1330_sda5.img.bz2
ubuntu@ubuntu:/media/disk/tmp$ 

あとはこれらのファイルを DVD に焼いて出来上がり。

Tags: M1330 | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink
本日のコメント(全6件) [コメントを書く]

Before...

# 真下 [はじめまして。DELLのXPSの到着待ちの物です。 私もリカバリ領域のバックアップを取りたくてこのHPにたどり着きま..]

# revulo [上の「〜の初期構成」という画像を見てみて下さい。 3は Vista がインストールされている領域なので、領域2を元通..]

# 真下 [早速のご回答ありがとうございます。 理解いたしました。 大昔にさわったLinuxを思い出してやってみます。 本日到着..]


2008-05-19 (月)

jQuery 1.2.4 がリリース

まだアナウンスがないですが、Google Code のページに 1.2.4 のファイルが置かれたようです。

変更点が分からないので、分かったらまた追記します。
(たしか dimensions プラグインを取り込んだはず)

(2008/05/20 追記)

まだ変更点が分からないので、修正箇所の一覧にリンクを貼っておきます。

このエントリの続き: 2008-05-21 (水)
Tags: jQuery | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

SIE 0.23 がリリース

SIE は Internet Explorer で SVG を表示可能にする JavaScript ライブラリです。 SIE 0.22 がリリースされた時に書き忘れていたので、 SIE 0.21 からの変更点を書いておきます。

  • 0.21 → 0.22
    • g要素内で、text要素以外のテキスト内容が表示されてしまうバグを修正
    • フォントの大きさの計算方法を、stroke-width属性と同じにした
    • 不要なminx、minyという変数を削除
    • 文字のデフォルトがIE(中サイズ)では12ptだったのを、12pxに統一(バグ#12471)
    • stroke-dasharray属性のバグを一部修正
    • Ajax部分において、X-Requested-Withヘッダを出力させた
  • 0.22 → 0.23
    • バグ#12386の一部修正。自サイト内のSVGファイルにジャンプするとき、SVGファイルを表示させるようにした。
    • sie.php0.2を同梱。それに伴って、toolディレクトリを新たに作成

なお、このバージョンから、拙作の sie.php が同梱されています。 このファイルを Web ページに設置すれば、その Web ページの SVG ファイルは、 プラグインをインストールしていない IE でも直接表示できるようになります。

このエントリの続き: 2008-05-30 (金)
Tags: SVG | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-21 (水)

jQuery 1.2.5 がリリース

先日 jQuery 1.2.4 がリリースされたばかりですが、 バージョンアップの理由がメーリングリストに書かれていました。

つまり、先日リリースされた jQuery 1.2.4 は、なぜか jQuery 1.2.4 Release Notes に載っている修正がされていなかったので、 現時点のものを改めて 1.2.5 としてリリースし直した、ということのようです。

Tags: jQuery | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-24 (土)

正規表現で split した場合の IE の挙動

JavaScript の split では引数に正規表現が使えることを知ったので、 以前書いた 空白やカンマで区切られたデータを配列に変換する 処理を、 次のように書き直してみました。

var F = datt.replace(/^\s+|\s+$/g, "").split(/[\s,]+/);

このように、前後の空白を trim した後、 空白文字 or カンマのかたまりを区切り文字にして split という、 非常にすっきりとしたコードにすることができます。

さて、ここからが本題ですが、 実は split の引数に正規表現を使うと、Internet Explorer は奇妙な動作をします。

試しに、次のようなコードを実行してみます。

var str  = "  a  ,  b, c ,d  e f,g ";
var str1 = str.split(/[\s,]/);
var str2 = str.replace(/^\s+|\s+$/g, "").split(/[\s,]+/);
alert(str1);
alert(str2);

IE 以外のブラウザでは、結果は以下のようになります。

,,a,,,,,b,,c,,d,,e,f,g,
a,b,c,d,e,f,g

ところが IE で実行すると、結果は次のようになります。

a,b,c,d,e,f,g
a,b,c,d,e,f,g

このように、正規表現での split は便利ですが、 ブラウザによって動作が違うことがあるので注意する必要があります。

ちなみにこの挙動を逆に利用すると、最初に書いたコードは、IE 限定で良ければ、

var F = datt.split(/[\s,]/);

だけで済ませる事が出来ます。 しかし、この動作はバグっぽいですし、IE8 では動作が変わったりするかもしれないので、 最初に書いたようなコードにしておくのが無難だと思います。

Tags: JavaScript | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

2008-05-30 (金)

Google AJAX Libraries API の上手な活用法

Google AJAX Libraries API というのが公開されていた。 一言で言うと、jQuery や Prototype などのファイルが Google のサーバに置かれて、 誰でも自由に利用できるようになったというもの。 現在のところ、以下の5種類の JavaScript ライブラリに対応している。

別に Google に頼らなくても、自分のサーバにファイルを置けば良いと思うかもしれないが、

  • Google の高速なネットワークを利用してライブラリを読み込める
  • Minify の処理や gzip 圧縮がされているので、転送量が少なくて済む
  • 最新版のファイルが楽に利用できる (ライブラリのバージョンを指定することもできる)

といったメリットがあるので、使わない手はない。

利用の仕方は2通りあって、 このように Google AJAX API Loader の google.load() を利用する方法が1つ。

<script src="http://www.google.com/jsapi"></script>
<script>
  google.load("jquery", "1.2.6");
</script>

それと google.load() を使わずに、

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

のように直接読み込む方法もある。

なお、この例では 1.2.6 というバージョンを指定しているが、 バージョン番号の一部だけ指定した場合には、 そのバージョンに該当する最新版という意味になるらしい。 つまり、

google.load("jquery", "1");
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

のようにすれば、(バージョン1系列の)最新のライブラリが読み込まれることになる。 こういう使い方をするのが、更新の手間も省けて一番楽なんじゃないだろうか。

それと、上記のライブラリの中には Yahoo! User Interface (YUI) Library が含まれていないが、

によると、YUI も同じように Yahoo! のサーバから読み込んで使えるらしい。 JavaScript だけでなく YUI Fonts CSS などの CSS も提供されているので、 こちらも選択肢に入れておくと良さそうだ。

このエントリの続き: 2008-09-08 (月)
Tags: JavaScript Google | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

SIE 0.24 がリリース

SIE の新パージョンが公開されました。 SIE は Internet Explorer で SVG を表示可能にする JavaScript ライブラリです。 前バージョン からの変更点は以下の通りです。

  • path要素の T,tコマンドを表示させるようにした(バグ#12548)
  • path要素の Q,qコマンドの表示の異常を修正(バグ#12579)
  • path要素の mコマンドに対応
  • リンク先の SVG画像を下に表示させた(バグ#12386)
  • 使われていない変数を削除するなどして、軽量化を図った

2次ベジェ曲線の表示がおかしかったのが修正されています。

このエントリの続き: 2008-06-10 (火)
Tags: SVG | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

追記