ハングアップの日々

2007年 7月分

2007/07/31

Perl 5.9.5

 Perl 5.9.5 では、先日書いた名前参照の入れ子が実際に使えるそうだ。しかし、何か実用的な使い道はあるのだろうか。

2007/07/21

買い物

 本を2冊購入。

 明るい LED 懐中電灯(?)が欲しいと思い、適当に1個購入。UltraFire WF-602A1 \2,500。単3を1本使用するタイプ。型番でググってみても情報がほとんど出てこない。帰ってから、この前買った M-6000H で明るさを測ってみた。センサーから 50cm の距離で、1000〜2500lx 程度(使用する電池によって違いあり)。ちなみに今まで持っていた単4を1本使うライト(型番失念)は、70lx 程度。

 他にもおもしろい本はないかと徘徊してみた。

 坂本弁護士一家を死に追いやり、石原都知事の発言を 180度逆の意味に捏造し、今年に入ってからは、不二家の件などで捏造報道を行っているろくでなし放送局の TBS はさっさとつぶさねばなるまい。中でも最悪なのは、報道番組の皮をかぶった洗脳番組 NEWS23 だろう。NEWS23 の内容を信じている人がいるとすればオウム信者と同類である。

2007/07/20

URL memo

2007/07/18

URL memo

2007/07/15

URL memo

2007/07/14

bregonig.dll

 bregonig.dll を Perl 5.10 の $+{name}, $-{name}[n] 表記に対応させるために改造。\L, \U, \l, \u にも対応させたいが面倒で進んでいない。

 対応作業中に思ったのだが、もしかして Perl だと、$+{$+{name}} のように、入れ子も使えるのだろうか。

s/^(?<select>[ab]),(?<a>.*?),(?<b>.*?)$/$+{$+{select}}/mg

上の正規表現に、

a,1234,abcd
b,5678,efgh

というデータを食わすと

1234
efgh

になったりするのだろうか? 仮に Perl でできたとしても、bregonig.dll では対応する気はないのだが。
 Perl 5.8 で確かめてみたところ、${$1} のように、数字による参照を入れ子にすることは可能だった。

2007/07/12

URL memo

Perl 5.9.5

 Perl 5.9.5 は 5.10.0 の前の最後の開発版のリリースという扱いらしい。これ以降大きな仕様変更はしないらしいので、あの微妙に分かりにくい正規表現もそのまま変更なしということか。

 昨日は %- の使い方がよく分からなかったが、上記サイトにはがあった。

/(?<letter>.)(?<letter>.)(?<letter>.)/

という正規表現があったとき、最初の (?<letter>.) にマッチした値は $+{letter} または $-{letter}[0] で取り出せるようだ。$-{letter}[-1] ならば、最後の (?<letter>.) にマッチした値が取り出せるはず。
 bregonig.dll では、onig_name_to_backref_number() を使っているところを、onig_name_to_group_numbers() を使うように書き換えれば、実装可能か。

2007/07/11

Perl 5.9.5

 Perl 5.9.5 では、正規表現が大幅に強化されたようだ。「perldoc きまぐれ訳」に情報がある。

 Oniguruma の正規表現 と比較してみた。(perl595_onig.txt 参照)

bregonig.dll

 Perl5 互換と称している bregonig.dll でも、これらの拡張にどう対応するか検討が必要だ。とりあえず bregonig.dll 側の問題は次の4つ。

  1. まず \v がかち合ってしまったのは問題である。\v を垂直タブ (0x0C) として扱う機能は削除するかな? \v を垂直スペース類として扱うには Oniguruma 側の対応が必要。
  2. pattern2 では名前指定後方参照として $+{name} 形式を使えるようにするつもりである。ただ、Perl 5.9.5 と Oniguruma では同じ名前で多重定義されたときの挙動が違うという問題がある。(今までの \k<name> 形式はそのまま残しておいても良いだろうか。それとも削除すべきだろうか。)
  3. 強欲な量指定子は、bregonig.dll 側でオプションを指定するだけで簡単に対応可能なので、対応する予定である。
  4. Perl 5.9.5 では、名前付き捕獲式集合と無名捕獲式集合は同時使用可能なようだ。ONIG_OPTION_CAPTURE_GROUP を有効にする必要がある。

 \R, \g{n} 辺りは、bregonig.dll でも使いたいが、Oniguruma の対応が必要なので、どうなるか分からない。\g{n} は、番号指定後方参照の直後に数字を続けて書きたい場合に便利だが、Oniguruma の \g<n>, \g'n' と紛らわしい。代わりに \k<n>, \k'n' が使えるようになればいいかも。
 Perl 5.9.5 の後方参照と部分式呼び出しが、Oniguruma との互換性が低いのが悩ましい。Oniguruma の方は、\k は後方参照、\g は部分式呼び出しときれいに分かれていて非常に分かりやすいのだが、Perl 5.9.5 では \k と \g を両方とも後方参照に使っており、部分式呼出しは (?n) あるいは (?&name) というのは複雑な上に統一感が取れていなくてどうも美しくない。(もっとも、\〜 は文字(列)や文字種を表すのに使い、(?〜) はパターンに使うという点では一応統一されているのかもしれないが。) Perl 5.10 の仕様はこれで確定なのだろうか?

2007/07/10

URL memo

2007/07/08

URL memo

M-6000H

 パソコンに接続が可能なデジタルマルチメーター M-6000H を \8,700 にて購入。
 まずは、応答速度をチェック。電池の電圧を測るのに掛かる時間を調べたが、あまり反応は早くないようだ。TKPH6A よりもさらに遅いかもしれない。むしろ、今まで使っていた P-10 の応答速度が例外的に速いと考えたほうがいいのだろうか?
 騒音計、照度計、温度計の動作も簡単に確認した。室内の騒音は 50dB 以上。やはりパソコンがうるさいのだろう。
 パソコンとの接続も確認した。M-6000H は USB 接続ではあるが、実際は USB-Serial 変換チップを内蔵しているだけである。変換チップは CP2101 を使用しているようだ。WinXP では、Windows Update 経由でドライバをインストールできた。Ts Digital Multi Meter Viewer もとりあえず問題なく動いているようだ。

2007/07/07

データーロガー

 電圧・電流などの情報をパソコンで記録・グラフ化できればいいなと思い、少し調査してみた。パソコンとの通信機能がある低価格のデジタルマルチメーターを調べてみたところ、MAS-344, M-6000M, M-6000H などが見つかった。通信機能があっても、パソコン側のソフトが使いづらいと駄目なので、ソフトの使い勝手も調べてみようと思ったが、あまり情報が出てこない。代わりに、Ts Digital Multi Meter Viewer というソフトを発見。説明を読んだ感じではなかなか良さそうなソフトである。M-6000H でも買って、このソフトを使うかな。この前買った TKPH6A みたいに反応が遅くなければいいのだが。

2007/07/05

URL memo

Bregexp.dll のバグ その2

 Bregexp.dll には、以前列挙したバグに加えてもう1件バグがあったのを忘れていた。

  1. 文字クラスで日本語を使うとマッチしない場合がある。例: m/[あいう][あいう]い/
  2. BSubst() で未定義の \number を使うと落ちる。例: s/(A)|([^A])/\1/
  3. BSubst() で末尾の $ が \ になってしまう。例: s/(.)/$1$/
  4. BTrans() で \nnn が正しく動作しない。例: tr/\060-\071/x/
  5. \xHH 形式で数字の代わりに x を書くと 0 として解釈される。例: \xxx = \x00, \x3x = \x30
     ベースとなった Perl のソースにも存在する問題。

修正パッチも更新しておいた。

VxEditor

 VxEditor 0.5.1 が公開されていた。同梱の bregonig.dll は、最新の Ver.1.31 になっていた。0.5.1 では、レジストリを使わないようになったのが大きな変更点のようだ。ちょっと試しに使ってみるかな。
 自分の名前だけ敬称がないのは相変わらず。

2007/07/03

VxEditor

 VxEditor が2年ぶりに更新され、0.5.0 になっていた。bregonig.dll が同梱されていた。bregonig.dll 正式対応一番乗りはサクラエディタになるだろうと思っていたが、意外な伏兵が登場。同梱されているバージョンが Ver.1.00 と少々古いのが気になるところ。
 謝辞に自分の名前が載っているが、何で自分だけ敬称がないのかな〜?

URL memo

2007/07/02

URL memo

2007/07/01

spam

 先月の spam メールの集計結果。着信拒否にならなかった spam が少なくとも 2212通。そのうち、@nifty の迷惑メールフォルダーでも Spam Mail Killer でも spam として認識できなかったものは 0通。

メール受信状況 2007/06


Copyright (C) 2007 K.Takata