Hatena::Groupasakura

浅倉卓司@blog風味? このページをアンテナに追加 RSSフィード

Error : RSSが取得できませんでした。

2006-11-27(Mon)

PlaggerとWindows PowerShellは似ている

| 19:33 |  PlaggerとWindows PowerShellは似ている - 浅倉卓司@blog風味? を含むブックマーク  PlaggerとWindows PowerShellは似ている - 浅倉卓司@blog風味? のブックマークコメント

――という記事を誰かが書いていそうな気がするので、見かけたら教えてくれると嬉しいです。


 自分でそれについて書けるほどどちらも詳しくないのだけれど、たぶん方向性は同じというか似てるんじゃないかなぁ、とかなんとなく思ったので。

 というか、WPSのパイプってオブジェクトをどうやって渡してるんだろ。ActivePerlでやりとりができると、WPSとPlaggerを組み合わせて遊べるんじゃね?

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20061127

2006-11-24(Fri)

あれ、sortプラグマのことが書かれてない。

| 17:37 |  あれ、sortプラグマのことが書かれてない。 - 浅倉卓司@blog風味? を含むブックマーク  あれ、sortプラグマのことが書かれてない。 - 浅倉卓司@blog風味? のブックマークコメント

 「いい機会なのでPerl 5.8のsortプラグマを紹介。」とあるのに、中身は違う話になってる……。うちだけ?


 ちなみにsortプラグマの話は2chでsortのパフォーマンスが話題になってた時にも出てきてて、「use sort '_qsort';とかすれば速くなるんじゃね?」的な話がされてました*1

 mergesortになったのはv5.8かららしいですが、変更された理由も解説していただけると嬉しいです>弾さん

*1:結局関係なかったけど。FirefoxのJavaScriptの実装がperlを参考にしてるんなら、遅い原因は同じかもねぇ。

dankogaidankogai2006/11/24 18:31元記事を別記事で上書きしちゃってました。面目ない。書き直しておきましたので再度ご覧あれ。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20061124

2006-11-21(Tue)

「電波の城」でバーコードリーダーネタがあった。

| 13:49 |  「電波の城」でバーコードリーダーネタがあった。 - 浅倉卓司@blog風味? を含むブックマーク  「電波の城」でバーコードリーダーネタがあった。 - 浅倉卓司@blog風味? のブックマークコメント

 最近ずっとバーコードリーダー(のカタログ、パンフレット)を探しているんですよ*1。で、入手したら手元の本の山のISBNを片っ端から取り込むシステムを作ろうと思っていたのです。


 そしたらちょうど今週の「電波の城」(細野不二彦ビックコミックスピリッツ)でネタにしてるじゃないですか。実はそのへんに転がってるんでしょーか>ISBN取り込んで書籍管理

 あるんなら自分で作る必要がないので、配布してる場所があるなら知りたいです。


数値をsortする時のパフォーマンスがv5.8.8で良くなっているそうな。

| 23:19 |  数値をsortする時のパフォーマンスがv5.8.8で良くなっているそうな。 - 浅倉卓司@blog風味? を含むブックマーク  数値をsortする時のパフォーマンスがv5.8.8で良くなっているそうな。 - 浅倉卓司@blog風味? のブックマークコメント

 2chで「PerlのsortはRubyのsortより遅くね?」という流れでこんな話が。

 地道に改良されてるのね*2

http://pc8.2ch.net/test/read.cgi/tech/1162273941/510

あー説明不足だった、申し訳ない。

>>490は(>>469氏が使っている)v5.8.3での話。

(v5.8.7までは同じ)

ソースを比較しながら読んでみたけど、

perl588delta.pod にある

> provided improvements to reduce the memory usage of C<sort>

> and to speed up some cases.

の中身が「数値比較が指定された時に文字列値を作るのを止めた」のと

「全要素が整数ならば、自動的に整数比較を用いる」でした。

5.8.8以降で {0; $a <=> $b} を指定すると、「複雑な比較式用の呼び出し」を

使うオーバーヘッド分が遅くなるだけです。

5.8.7までなら同時に全要素の文字列化が行われなくなるので、早くなる分と

遅くなる分を加えて、今回の例では早くなったと。

*1:ちなみに、先週末に秋葉原で探したんですが、ヨドバシとかラオックスとかでも扱ってないのね。

*2:v5.8.4で @array = sort @array が最適化されてたりもするらしい。

tomisimatomisima2006/11/23 12:27初めてコメントさせていただきます。
バーコードリーダでISBN取り込んで書籍管理するソフトですが、以下のようなものがあるみたいです。(この他にもあるかもしれませんが)
Windows - 私本管理(http://homepage1.nifty.com/EKAKIN/shihonp.htm)
Mac - Books(http://books.aetherial.net/wordpress/)
参考になればと思います。

asakura-tasakura-t2006/11/24 08:33どうもありがとうございます。あとで試してみます。

otsuneotsune2006/12/01 19:59Delicious Library http://www.delicious-monster.com/
MacのiSightカメラでISBNバーコードをかざすと読み取って記録してくれる蔵書管理ツールです。

asakura-tasakura-t2006/12/01 23:52ううむ、Macは持ってないから試せない……。
認識精度と使い勝手はどうなんでしょうね。レジみたいにかざすだけで読み取れるんならいいんだけど、キーを叩いてショットするんだとちょっと面倒かも。

otsuneotsune2006/12/02 04:11(私は特に愛用している訳ではないので、使用者のレビューによると)赤いガイド線に平行になるようにISBNバーコードをかざせば、自動的に認識して登録処理してくれるそうです。その辺りは専用ツールだけに使い勝手は考えられているようです。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20061121

2006-11-10(Fri)

Jcode::CP932 0.06 (with patched Jcode.pm)

| 16:55 |  Jcode::CP932 0.06 (with patched Jcode.pm) - 浅倉卓司@blog風味? を含むブックマーク  Jcode::CP932 0.06 (with patched Jcode.pm) - 浅倉卓司@blog風味? のブックマークコメント

 いちおう弾さんにpatchを送ったのだけど、どうやらいろいろ忙しそうなのでpatched Jcode.pmをの同梱版したJcode::CP932-0.06を公開します。

ダウンロードppm版


 基本的には現状で問題ないはずですが、あとでeval qq{tr///}してるとこの修正とか、全角半角変換の修正とかする予定。

 んで、Jcode.pmのバージョンをあげてもらえたら1.00としてCPANにアップするつもりです。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20061110

2006-11-03(Fri)

Encode::JP::Z2Hってeucで処理してたのね。

| 22:54 |  Encode::JP::Z2Hってeucで処理してたのね。 - 浅倉卓司@blog風味? を含むブックマーク  Encode::JP::Z2Hってeucで処理してたのね。 - 浅倉卓司@blog風味? のブックマークコメント

 何故なんでしょ。

 というわけで、Jcode::CP932用にUTF-8な変換テーブルを作った。Encodeのほうも差し替えて欲しいけど、依存してるモジュールの都合で難しいんだろうなぁ。。

 ちなみに

          "\x{ff9c}\x{ff9e}" => "\x{30f7}",	#ワ゛
          "\x{ff66}\x{ff9e}" => "\x{30fa}",	#ヲ゛

という文字もあったので、追加しようかと考えたんだけど、当然のように文字化けするんだよね……。ううむ。

 いちおう追加しておいて、normalize処理で分解するような処理を追加しとくべきか?


 ついでに、Jcode::CP932ではhira2kata/kata2hiraと、ascii_z2h/ascii_h2zも追加。こんなの:

sub hira2kata {
    my $str_ref = $_[0]->{r_str};
    $$str_ref =~ tr [\x{3041}-\x{3096}]
                    [\x{30a1}-\x{30f6}] ;
    $_[0];
}
sub kata2hira {
    my $str_ref = $_[0]->{r_str};
    $$str_ref =~ tr [\x{30a1}-\x{30f6}]
                    [\x{3041}-\x{3096}] ;
    $_[0];
}

sub ascii_h2z {
    my $str_ref = $_[0]->{r_str};
    $$str_ref =~ tr [\x{0021}-\x{007e}]
                    [\x{ff01}-\x{ff5e}] ;
    $_[0];
}
sub ascii_z2h {
    my $str_ref = $_[0]->{r_str};
    $$str_ref =~ tr [\x{ff01}-\x{ff5e}]
                    [\x{0021}-\x{007e}] ;
    $_[0];
}

 ひらがなカタカナ変換はJcodeでもそのまま動くけど、asciiの全角半角変換はそのままだと文字化けするんだよね……。


 追記

 これらはJcode::CP932-0.06で実装してます。

 カタカナの全角半角変換はJcode::CP932::H2Zとかにあるのでどーぞ。ちなみにパフォーマンスについては半角→全角についてはEUCのほうが1.5倍くらい速いですが、全角→半角についてはUTF8のままのほうが10倍くらい速いです*1



eval qq{tr///}はやっぱり滅茶苦茶重かった。

| 00:39 |  eval qq{tr///}はやっぱり滅茶苦茶重かった。 - 浅倉卓司@blog風味? を含むブックマーク  eval qq{tr///}はやっぱり滅茶苦茶重かった。 - 浅倉卓司@blog風味? のブックマークコメント

 パフォーマンスが気になったのでベンチマークをとったら、通常のtr///に比べて20倍以上遅かった。

 s///xmsgoeとかしたほうが10倍くらい速かったので、eval qq{tr///}するくらいならハッシュに変換テーブルを作ってs///xmsgoeを使ったほうがいいかも。

*1UTF-8だと全角<->半角変換がほぼ同じ速さなので、UTF-8で統一するほうが好み。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20061103

2006-11-02(Thu)

JISとCP932のUNICODEマッピングの違いの一覧表ってどこかになかったっけ?

| 13:36 |  JISとCP932のUNICODEマッピングの違いの一覧表ってどこかになかったっけ? - 浅倉卓司@blog風味? を含むブックマーク  JISとCP932のUNICODEマッピングの違いの一覧表ってどこかになかったっけ? - 浅倉卓司@blog風味? のブックマークコメント

 どこかで見た気がするんだけど忘れてしまった。

 とりあえず、Lingua::JA::Mailで使っていたものと、市岡さんの書かれたものを参考にしてみた。

                                # JIS => CP932 
$pkg->set_jis_cp932(
    #"\x{FF3C}" => "\x{005C}",   # FULLWIDTH REVERSE SOLIDUS => REVERSE SOLIDUS
    #"\x{FFE5}" => "\x{00A5}",   # FULLWIDTH YEN SIGN => YEN SIGN
    #"\x{2014}" => "\x{2015}",   # EM DASH => HORIZONTAL BAR
    #"\x{FFE3}" => "\x{203E}",   # FULLWIDTH MACRON => OVERLINE
    "\x{2016}" => "\x{2225}",   # DOBULE VERTICAL LINE => PARALLEL TO
    "\x{2212}" => "\x{FF0D}",   # MINUS SIGN => FULLWIDTH HYPHEN-MINUS
    "\x{301C}" => "\x{FF5E}",   # WAVE DASH  => FULLWIDTH TILDE
    "\x{00A2}" => "\x{FFE0}",   # CENT SIGN  => FULLWIDTH CENT SIGN
    "\x{00A3}" => "\x{FFE1}",   # POUND SIGN => FULLWIDTH POUND SIGN
    "\x{00AC}" => "\x{FFE2}",   # NOT SIGN   => FULLWIDTH NOT SIGN
);

 ……これで合ってるのかな。

 間違いや過不足がありましたら、ご指摘お願いします*1


追記

 貞廣さんが作られているSJIS関連のモジュールを使えそうな気もするけど、ちょっと違う気もする。ううむ。


Encode-EUCJPMS-0.07.zip

| 16:10 |  Encode-EUCJPMS-0.07.zip - 浅倉卓司@blog風味? を含むブックマーク  Encode-EUCJPMS-0.07.zip - 浅倉卓司@blog風味? のブックマークコメント

 そういえばppmファイルを作っておいたんだった。→ダウンロード

 http://ppm.tcool.org あたりでちゃんとしたものを公開してくれると嬉しいなぁ、とか言ってみる。


tr///で変数展開するにはevalする必要があるわけですが、

| 17:23 |  tr///で変数展開するにはevalする必要があるわけですが、 - 浅倉卓司@blog風味? を含むブックマーク  tr///で変数展開するにはevalする必要があるわけですが、 - 浅倉卓司@blog風味? のブックマークコメント

 とりあえず

  eval "\$\$str_ref =~ tr/$src/$dest/";
  die $@ if $@;

――とかやってるのですが、呼び出すたびにevalするのは無駄な気がする。

 $srcと$destをセットした時にコンパイルして保存しておく方法ってないのかな。それとも上記でもパフォーマンスは落ちない?


Jcode.pmのencoding変換メソッドのテーブルをクラスごとに分離できればいいのに。

| 19:46 |  Jcode.pmのencoding変換メソッドのテーブルをクラスごとに分離できればいいのに。 - 浅倉卓司@blog風味? を含むブックマーク  Jcode.pmのencoding変換メソッドのテーブルをクラスごとに分離できればいいのに。 - 浅倉卓司@blog風味? のブックマークコメント

 現在の実装だとappend,convert,setがmy変数に依存してるからクラスごとに分離できないんだよね。

 最初はそれでもいいかと思ったんだけど、やっぱり微妙な気がする。


 appendとsetについてはjname2eをメソッド呼び出しにすれば問題ない気がする。

 convertはJcode::convert()として使うからなぁ。Jcode->_convertを呼び出すようにしちゃえば解決するんだけど。ダメかな?

*1:上の4つは変換するとまずそうなので修正。ひょっとして、\x{00A5}は\x{005C}に変換すべき?

2006-11-01(Wed)

PHPで普通にコードを書いていてBus errorとか起こされると自分のコードよりPHPのバグを疑ってしまう。

| 18:27 |  PHPで普通にコードを書いていてBus errorとか起こされると自分のコードよりPHPのバグを疑ってしまう。 - 浅倉卓司@blog風味? を含むブックマーク  PHPで普通にコードを書いていてBus errorとか起こされると自分のコードよりPHPのバグを疑ってしまう。 - 浅倉卓司@blog風味? のブックマークコメント

 他の言語ではそんなことないけど、PHPでBus errorとか起こされると自分のコードのバグじゃなくてPHPのバグを疑ってしまう今日この頃。普通にスクリプト書いてるだけなんだからBus errorとかSegmentation faultとか起こすなよ。

 っていうかマジで分からん。


追記

 メソッド呼び出しだと駄目で、全く同じコードを展開して書けば動くって何事よ?

 やっぱPHPのバグくさい。


追記2

 たぶんオブジェクトまわりのバグ。

 メソッドの引数を参照渡しにしたら動くようになった。


 思いっ切り時間を無駄にした。だからPHPは使いたくないんだよ……。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20061101
2004 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 07 | 10 | 11 | 12 |
2008 | 02 | 03 | 04 | 06 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 02 | 03 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2013 | 01 | 05 | 07 |
2014 | 01 | 02 |
2016 | 01 |
2017 | 01 | 05 |