IT

原因はpreg_matchか?

rNoteのPHP5対応。先日のトライでは、Google マップの航跡ログを含んでいるエントリの一部が失敗しているような傾向を感じたので、轍のスクリプト展開部分を調べてみる事にしよう。

と思ってたのだが、今日いろいろと手を変え品を変え試してみたところ、

function get_XMLTag($tag,&$str){
  if(**preg_match**("/<$tag.*?>[[:space:]]*(.*)[[:space:]]*<\/$tag>/s",$str,$buf)) {
        return $buf[1];
    }
    return '';
}

で、preg_matchに渡す$strのエントリが大きくなるとDateやTitle要素の切り出しに失敗している事が判明。

Google マップの航跡ログが入ると必然的にエントリ全体が大きくなる傾向はあるものの、航跡ログそのものや轍のスクリプトには関係無く、48KBあたりの大きさを境にうまくいかなくなる模様。

再び試行錯誤してみたところ、

function get_XMLTag($tag,&$str){
/*  if(preg_match("/<$tag.*?>**[[:space:]]*(.*)[[:space:]]***<\/$tag>/s",$str,$buf)) { */
    if(preg_match("/<$tag.*?>\s*(.*)\s*<\/$tag>/s",$str,$buf)) {
        return $buf[1];
    }
    return '';
}

と"[[:space:]]“を”\s"に置き換える事で回避できた。

…かと思ったのだが、結局は110KBあたりを越えるとやっぱりダメだった。まぁ、そんなに大きなログを持った記事は2エントリしか無いので個別にログを間引けば済むのだが、微妙に残念。

いずれにしろ、32bits環境のPHP4で問題無かった処理が64bits環境のPHP5でダメだというのは釈然としないこと甚だしい。nx9030ではソースからbuildしてた事もあって、バッファサイズなどの設定が微妙に違ってるのかなぁ…

【6/22追記】PCREの設定で全面解決。

参照

rNote http://rinn.e-site.jp/rnote/

PHP: Hypertext Preprocessor http://www.php.net/

WD15EADS低速病

最近Firefoxの反応が悪くなってきた。

WD15EADS

Western Digital WD15EADS

セーフモードでは改善される事からアドインを疑っていたのだが、アドインを全部無効にしても暫くすれば反応が悪くなる。反応が悪いと言っても、「重い」と言うより「フリーズ」してる感覚。数十秒待てば復活するのだが、エクスプローラーやタスクバーの反応も悪くなってきた事から、昨年11月に買ったWD15EADSに低速病の不安が湧いてきた。

いやちょっと待て、時期的にはPT2を買ってからのような気がしないでもないので、ノイズのせいかもしれないと思い、シールドタイプの3Gbps対応SATAケーブルに交換。スキャンディスクでエラーが無かったのはひと安心だが、使用中クラスタチェックにやたらと時間がかかった事から低速病の嫌疑が極めて濃厚になる結果に。

まずは、4月に買ったWD20EARSに移行するしかないか…と思ったものの、GPT(GUID Partition Table)ドライブであるWD20EARSはPartition Manager Pro 8.5で扱えなさそうな雰囲気だ。

結局のところ同シリーズのWD20EARSにも同じ低速病発症の不安が拭えないので、新しいHDDを調達した方が堅実かと思って調べてみたのだが、HGST HDS722020ALA330は7200rpmの速度と引換に熱と音が心配、SAMSUNG HD203WIの現行ロットはすぐスタンバイになるらしいし、Seagate Barracudaは去年アクセス不能になる大問題をやらかしとる、てな状況で2TBのHDDはいろいろと心配の種が尽きない。

というわけで新規調達は慎重に検討する事にして、まずはWD5000AAKSとミラーリングを組んでCG-HDC2EU3100に収まってたWD5000AACSを急遽現役復帰。システムドライブに登用する方向で準備。

まず試しに、WD15EADSで取ったシステムバックアップをWD5000AACSへ戻す移行方法にトライしたものの、ハードディスクが異なるという事で復旧不可。

続いて、新規でインストールした後にWindows 転送ツールで戻してみた。「アカウント情報」や「マイドキュメント」や「デスクトップ」や「アイコン」などそれなりには移行されるものの、同じWindows 7 Professional x64版にもかかわらずプログラムやライセンスは復旧されず残念な結果に。

結局、GPTドライブであるWD20EARSには使えなかったが一般的なWD5000AACSならば使えるはずと踏んで、Partition Manager Pro 8.5でWD15EADSからWD5000AACSへの移行を実行。低速病の影響を受けて随分と遅かった気がしないでもないものの、1時間ほどで終了。

LANDISK AV 続報

先日入手したLANDISK AV。

PCから「contents」フォルダにファイルをコピーする事で、自動的にメディアをDLNAサーバが認識して公開されるという事だったが、結局ts形式のファイルは認識されない事が判明。wmvやmp4形式のファイルを放り込んだところあっさりWindows Media Playerで再生できたよ。

JPEG画像も、MP3音楽も特にフォルダを分けるでもなく「contents」フォルダに放り込むだけで何の苦労もなく再生できたので、変にts形式に固執してたばかりにえらく時間を無駄にした。ちなみに**「設定ガイド&困ったときには」**によると対応動画フォーマットは

3gp,avi,divx,mp4,m4v,mov,mpg,m2p,mpe,mpeg,vob,tts,asf,dvr-ms,wmv,mts,m2ts

との事だ。

USB接続の外付けデバイスはFAT32,NTFSのハードディスクのみという事だが、8GBのUSBメモリ(FAT32)は使えた。が、コンテンツがDLNAサーバに認識されるのに結構な時間がかかった印象。

外付HDDBOXは1.8インチを内蔵するイッコイチBOX方は認識したものの、2.5インチの外付HDDBOXはいつまで経ってもSTATUSランプが点滅のままで認識しなかった。**「必ずお読み下さい」をよく読むと、「※バスパワーモードのUSBハードディスクは接続できません」**と書いてあったので、USB2ポート分の電力供給を受ける事で使えるようになった。どうやらUSBの電力供給が充分でない模様。

あと、外付HDDはDLNAサーバ経由でコンテンツは公開できるものの、PCからのアクセスは出来ない仕様らしい。つまり、NAS的拡張デバイスとしてはNGという事だ。うーん、これは期待してた機能だけにかなり残念だねぇ。

ユーザーインタフェースもチープでSTATUSの1つしかない。POWERとACCESSくらい分けて欲しいのだけど、STATUSランプが点滅の状態だと強制終了させるのもハラハラドキドキ。いちいち難儀ですなぁ。

参照

INTERNET Watch http://internet.watch.impress.co.jp/

amazon.co.jp http://www.amazon.co.jp/

アイ・オー・データ機器 http://www.iodata.jp/

イーモバ通信制限強化

イー・モバイルが帯域制限を30倍近く強化、通信速度を即日規制へという記事に驚いた。

夕方の混雑中

渡辺通4丁目交差点にて

どうやら、イー・モバイルは昨年から300GB/月以上のユーザーに対し翌々月の通信速度を制限していたが、8月24日からは24時間で300万パケット(約366MB)を超えたユーザーに対し当日夜間の通信速度を制限する事になるそうだ。

24時間で366MBというのは30日換算でも11GB足らずに過ぎない事から帯域制限を30倍近く強化というショッキングな記事になっているわけだが、現行制限は丸々1ヶ月間ずっと適用される事に対して新しい制限は夜間帯のみになるわけ。

つまり基本的に日中の使用には影響が無くなるわけだし、規制のON/OFFも24時間単位でタイムリーに行われる事から、個人的には逆に緩む方向に進んでいる気がする。

なおケータイ Watchの記事によると、

NTTドコモでは直近の3日間で300万パケットを超え、通信状況が混雑していると、通信速度制御の対象となる。

そうだし、

KDDIでは、前々月のパケット通信量が300万パケットを超えたユーザーについて、21時~翌1時の間、「EZweb」の通信速度が制御される。

そうなので、どこもまだ試行錯誤と言ったところですかね。

参照

GIGAZINE http://gigazine.net/

ケータイ Watch http://k-tai.impress.co.jp/

LZHに花束を

MS-DOSの時代、高い圧縮率を武器に国内はもとより国際的にも高い評価を得ていた圧縮形式LZH。

注意喚起

お知らせより

そのWindows版エンジンであるUnlha32.dllの作者であるMicco氏から、開発停止の告知と共にLZH形式の利用を控えるように呼びかけが行われている。

理由は、LZH書庫のヘッダー処理における脆弱性で、アンチウィルスソフトの検疫をすり抜ける細工を施した書庫を作成する事が可能であるという事情があるのだそうだ。

もちろん、基本的にはこの脆弱性について何らかの改修が施されるべきではあるが、LZH形式の圧縮ソフトなんてたくさん世に存在するので改修するとすればアンチウィルスソフトの方となる。ところが、報告して3年以上経過してもアンチウィルスソフトベンダーはおろか、JVNすらこの件で積極的な対応をする気配がないという事だ。

当時は有料のシェアウェアだったZIP形式を取り扱うソフトが無料になり、またWindowsやMac OSにまで標準で圧縮機能が実装されるようになった今、言われてみれば自分でもここ何年もLZH形式の書庫を新規に作成してないかもしれない現状を考えると、「LZH形式なんて聞いた事無い」という人も多いのかもしれないな。

LHAと言えば、奥村晴彦氏のアルゴリズムを改良し吉崎栄泰氏がMS-DOSのプログラムとして実装したもの。

古き良き90年代の1ページを飾った日本発の代表的なソフトウェアとして、いつまでも記憶に残しておきたい。

参照

スラッシュドット・ジャパン http://slashdot.jp/

GIGAZINE http://gigazine.net/

INTERNET Watch http://internet.watch.impress.co.jp/

Japan Vulnerability Notes http://jvn.jp/

Micco’s Page http://www2.nsknet.or.jp/~micco/micindex.html

Wikipedia http://ja.wikipedia.org/wiki/

奥村晴彦 | Haruhiko Okumura http://oku.edu.mie-u.ac.jp/~okumura/

HVL1-G1.5T

GLAN TANKも320GB増量から3年が過ぎ、そろそろ悲鳴を上げはじめてもおかしくない時期。

LAN DISK AV

HVL1-Gシリーズ

66MB/sの高速転送を謳うバッファロー LS-XHLシリーズの値が下がるのを今か今かと待っていたのだが、そんな折、先週出たアイ・オー、最大2TBのデジタル放送録画HDD「RECBOX」のアナウンスが気になった。

正確に言うと、CPUを従来比で約2倍に高速化したというRECBOX HVL-AVシリーズにも魅かれたが、DTCP-IPサービス対応に加えて、eSATA×1、USB×2と拡張インタフェースが充実したLANDISK AV HVL1-Gシリーズの魅力に気が付いたわけ。

何と言っても、eSATAやUSBで外付HDDを増設できるというのはLS-XHLシリーズでも無理な相談で、GLANTANK引退後のCG-HDC2EU3100の受け皿の1つとして貴重な選択肢となる。

そんなLANDISK AV HVL1-Gシリーズが、ニューフェースのあおりを受けて消えようとしている事にもモノの哀れを感じ、amazonで慌ててポチッとな。

早速、ネットワークに接続してWindowsからファイルコピーの転送速度を測ってみたところ、JumboFrameを有効にしたGLANTANKの10MB/s程度より速いとは言え、15MB/s程度で頭打ち。

66MB/sの高速転送を謳うLS-XHLシリーズのようにはいかないまでも、少なくとも30MB/sくらいの速度は出るだろうと期待していたのだが、GbE対応と言えどもJumboFrameにも対応してないような気がするな~。

そうは言っても、1.5TBのDTCP-IP対応NASがこのお値段となれば、多少遅くても目をつぶってやるかなぁ。

参考まで、ワットチェッカーによる実測消費電力は空転・コピー中を問わず12~13Wで安定。

参照

AV Watch http://av.watch.impress.co.jp/

ITmedia +D LifeStyle http://plusd.itmedia.co.jp/lifestyle/

amazon.co.jp http://www.amazon.co.jp/

アイ・オー・データ機器 http://www.iodata.jp/

バッファロー http://buffalo.jp/

NV-U35

今年3月より発売開始となったソニーのカーナビ “nav-u”「ナブ・ユー」、NV-U35。

NV-U35

NV-U35

320×240ピクセルの3.5インチLCDを装備して、最長約6時間(案内/操作時のみ画面ONのスタミナモード)というバッテリー持続時間はなかなか。それで3万円ちょっとという価格はかなり魅力的だ。

防水保護5等級をクリアした防滴性能も見逃せない。勿論、5級では「生活防水」よりワンランク上でしかなく、雨中の高速走行にも充分耐えられる程の信頼性があるとは思えないが、小雨や降り始めの時に慌てなくて済むのはありがたい。ヤフオクに出品されているNV-U35専用の防滴仕様バイク用ステーでハンドルに設置するのがスマートだが、F800STの場合は添付品の「ピタッと吸盤」でダミータンクに設置するのも悪くなさそう。

というわけで、5月14日に送料込30,500円のプライスを掲げていた【楽天市場】家電オンラインでポチッとな、したわけだが、予想以上に好調な売れ行きから全国的に品薄になっており、6月1日になってようやく手元に届いた。

早速、久山町までのドライブで試してみたところ、ルート案内の精度については車載型のStradaにも負けてなかったよ。メモリースティック PRO Duoを入れておく事で航跡ログ採取ができるのも◎。特にGoogle Earth用のkml形式でも直接保存できるのは抜かりないなぁと思う。

現在/平均/最高の速度のほか、移動距離や積算距離、経過時間、さらに消費カロリーも表示できる自転車モードや徒歩モードも面白そうなので、あちこち連れて行ってみたい。

参照

Car Watch http://car.watch.impress.co.jp/

ITmedia +D LifeStyle http://plusd.itmedia.co.jp/lifestyle/

マイコミジャーナル http://journal.mycom.co.jp/

ケータイ Watch http://k-tai.impress.co.jp/

うろぐ http://www.ulog.biz/

ソニー http://www.sony.jp/

PHP5 再び

昨日のHardy再インストールに続いて、昨年失敗したPHP5に再チャレンジ。

まずは、以下のようなエラーハンドラ関数を実装してエラーが発生してないかどうか確認。

// エラーハンドラ関数
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    switch ($errno) {
    case E_USER_ERROR:
        echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
        echo "  Fatal error on line $errline in file $errfile";
        echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        echo "Aborting...<br />\n";
        exit(1);
        break;
    case E_USER_WARNING:
        echo "$errfile($errline): <b>My WARNING</b> [$errno] $errstr<br />\n";
        break;
    case E_USER_NOTICE:
        echo "$errfile($errline): <b>My NOTICE</b> [$errno] $errstr<br />\n";
        break;
    case E_WARNING:
        echo "$errfile($errline): <b>WARNING</b> [$errno] $errstr<br />\n";
        break;
    case E_NOTICE:
        echo "$errfile($errline): <b>NOTICE</b> [$errno] $errstr<br />\n";
        break;
    default:
        echo "$errfile($errline): Unknown error type: [$errno] $errstr<br />\n";
        break;
    }
    // PHP の内部エラーハンドラを実行しません
    return true;
}
// 定義したエラーハンドラを設定する
$old_error_handler = set_error_handler("myErrorHandler");

したところ、

Hardy 再び

Ubuntu 8.04 LTS (HardyHeron) Server editionをうっかり9.04 (JauntyJackalope)に上げてしまいMTOS乗換に息詰まったpavilion。

最新のUbuntu 10.04(Lucid Lynx) LTSがリリースされているが、仕事で9.10 (KarmicKoala)の曲者っぷりに難儀したので、取り敢えずもう一度8.04 LTS (HardyHeron)をクリーンインストールし直す事に。

当時のCDを引っ張り出してCD起動すればあとは慎重にパーティションを選択するだけであっさり終了。

コンソールを高解像度かしようとしたところで難航。fbconとvesafbを有効にすればよいという記事が見付かったが、更に追跡するとサスペンドなどの動作時にうまく動作しないからと言うことでレガシー扱いということで7.10 (Gutsy Gibbon)でフレームバッファーモジュールがごっそり排除されたらしく、今は/etc/modprobe.d/blacklist-framebufferにごっそり列挙されている有様だ。

vesafbに代わってuvesafbがあるという事なので、LinuxHardwareInfoNvidia5200に従ってゴニョゴニョしていったものの、結局起動時の

uvesafb: failed to execute /sbin/v86d
uvesafb: make sure that the v86d helper is installed and executable
uvesafb: Getting VBE info block failed (eax=0x4f00, err=-2)
uvesafb: vbe_init() failed with -22
uvesafb: probe of uvesafb.0 failed with error -22

というエラーが解決できず、断念。

結局、サスペンドを使用しないのならばvesafbを使用しても大丈夫だろうという判断から、/etc/modprobe.d/blacklist-framebufferからvesafbを

# blacklist vesafb

てな感じでコメントアウト。/etc/modulesにvesafbとfbconを追加し、

$ sudo update-initramfs -u -k all

でinitramfsをアップデート。 /boot/grub/menu.lstで

## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash **vga=0x31a**

vgaオプションに1280x1024x16のビデオモード番号0x31aを追記した後、

姫野ベンチ

自宅サーバをnx9030からpavilionへの移行を検討し続けてはや2年。MTOS乗換に息詰まってもう1年になるが、改めてnx9030との性能差を確認するため、各マシンで姫野ベンチマークをかけてみる事に。

まずはCeleron M 1.3Gを搭載する現行サーバのnx9030。

model name      : Intel(R) Celeron(R) M processor         1300MHz
cpu MHz         : 1296.862
cache size      : 512 KB
bogomips        : 2594.84
yano@nx9030:~$ ~/himeno_bench/bmt
mimax = 129 mjmax = 129 mkmax = 257
imax = 128 jmax = 128 kmax =256
 Start rehearsal measurement process.
 Measure the performance in 3 times.
 MFLOPS: 329.508630 time(s): 1.248269 1.693779e-03
 Now, start the actual measurement process.
 The loop will be excuted in 144 times
 This will take about one minute.
 Wait for a while
 Loop executed for 144 times
 Gosa : 1.312382e-03
 MFLOPS measured : **208.136962**   cpu : 94.856480
 Score based on Pentium III 600MHz : **2.538256**

そして、Athlon 64 X2 5000+搭載のpavilionが