2010-01-01から1ヶ月間の記事一覧
記号っぽいものを特定して置換しなければならない。おそらく、Perl で定義されているユニコードプロパティとは一致しない。そこで独自にプロパティを作ってみることにした。ついでに、ヒアドキュメントを見やすく、かつコメントもつけられるように試みた。ユ…
WEB から取ってきた文字列を標準化するコードを書いている。前回エントリを書いたところ、コメントで Regexp::Assemble (R::A) を教えてもらった。R::A オブジェクトに複数の正規表現を入れておいて、文字列をマッチさせ、どれがマッチしたか、を知ることが…
文字列 456 にマッチする正規表現のうち、Regexp::Assemble を使ってどれがいちばん早くマッチするか。 use strict; use warnings; use Regexp::Assemble; my $ra = Regexp::Assemble->new->track; #$ra->debug(0xf); $ra->add(map {"($_)"} qw{456 \d{3} .*…
HTML::TreeBuilder で解析したとき、ネストが 4 桁になるような HTML がある。実際に HTML としてネストが深いか、というと、そうである場合とそうでない場合がある。実際にネストが深い場合というのは、本当に center タグが延々と掘られていたり、font タ…
ヒトはおかしな肉食動物 生き物としての人類を考える (講談社+α文庫):100% ヒトはおかしな肉食動物 生き物としての人類を考える (講談社+α文庫)作者: 高橋迪雄出版社/メーカー: 講談社発売日: 2007/12/21メディア: 文庫 クリック: 1回この商品を含むブログ…
1/16 に発注した AC アダプタがまだ届かない。どうしてくれよう。
Regexp::Assembleのバグ? - Humanity によると、 ということで正規表現リテラル(?)じゃなく文字列で渡せばうまくいきました。 ということだったけれど、いろいろやってみたらそういうわけでもなさそう、つまり、文字列を渡しても落ちるときは落ちるみたい、…
yum search lha すると xarchiver なるものが返ってくる。なんで X 関係あるのかなー、ただのフロントエンドってことなのかなー、と思って yum install xarchiver してみた。 ら、やっぱり lzh は対応してないよ、って怒られた。Windows なマシンで展開する…
if, elsif, elsif, ... なコードをどう書き直せばわかりやすいか悩んでいたら、トラックバック & コメントで Regexp::Assemble を教えてもらって、サンプルコードまで教えてもらった。 Regexp::Assembleのバグ? - Humanity で、話は Regexp::Assemble の ad…
WEB から持ってきた文字列を標準化するコードを書いている。いろいろなスタイルで書かれた文字列を「使えるかたち」に揃えるコード、とも言える。きれいに書くのが難しい。ある正規表現にマッチするかどうか調べ、マッチしたらそこから情報を切り出し、マッ…
金時豆を 2 cup、煮る。最近、うまくいっていない気がするな。そこそこの仕上りではあるんだが。うお、ちと目を離した隙に焦げた。うーむ。
あきらめたから、生きられた―太平洋37日間漂流船長はなぜ生還できたのか (BE‐PAL Books):100% あきらめたから、生きられた―太平洋37日間漂流船長はなぜ生還できたのか (BE‐PAL Books)作者: 武智三繁,石川拓治出版社/メーカー: 小学館発売日: 2001/12メディア…
借りてるレンタルサーバに一時接続できなくなっていた。どうやらサーバに障害が発生した模様。http://support.fsv.jp/rf/tech/sy20100124_01.html サーバ再起動で必要なサービス上がるようにしてたかなあ。いろいろ確認しないと。
$ echo -n e9ab99 | xxd -p -r | iconv -f utf-8 -t shift-jis | od -tx1 -An iconv: 位置 0 で不正な入力シーケンスがありました $ echo -n e9ab99 | xxd -p -r | iconv -f utf-8 -t ms932 | od -tx1 -An fb fc
簡体字やハングルにマッチしない正規表現ってどう書くんだろう。 $ echo -n e38392 e69db1 e4b89c 0a | xxd -p -r | perl -MEncode -pe '$_=decode_utf8($_);s/(\p{Han})/<$1>/g;$_=encode_utf8($_)' ヒ<東><东> 簡体字も Han script に含まれるよなあ…
あきらめたから、生きられた―太平洋37日間漂流船長はなぜ生還できたのか (BE‐PAL Books):70% あきらめたから、生きられた―太平洋37日間漂流船長はなぜ生還できたのか (BE‐PAL Books)作者: 武智三繁,石川拓治出版社/メーカー: 小学館発売日: 2001/12メディア:…
今までずっと od しか使っていなかったけれど、hexdump や xxd なんていうダンプコマンドがあることを知った。xxd は逆変換もできるらしいので、UTF-8 の冗長な表現を作ってみることにした。原理は知っていたけれど、実際にやってみたことがなかったから。「…
昨日、ある coro A の on_destroy コールバックを実行する coro B が、A がみずから終了した場合 (B は coro manager) と外から cancel した場合 (B はメイン coro) で違うことを発見した。外から cancel した場合は、メイン coro から cancel したから B が…
昨日 coro manager を捕まえることに成功した。ので、これを cancel してみるとどうなるかやってみた。 use strict; use warnings; use Coro; sub ps { use Coro::Debug; Coro::Debug::command 'ps'; } sub get_mgr { my $mgr; async{ print "-pass-\n" }->o…
以前、HTML から span like なインライン要素タグを正規表現を使って除去するスクリプトを書いた。 HTML から span like なインライン要素タグを正規表現を使って除く修行、その2 - 昨日知ったこと HTML から span like なインライン要素タグを正規表現を使…
ps したときに列挙される coro の中にある [coro manager] coro を捕まえた。main スレッドで作った coro の on_destroy コールバックで。 [takeyuki@sunya ~]$ perl -MCoro -e 'async{}->on_destroy(sub {print $Coro::current->desc."\n"});cede;' [coro m…
青えんどうを煮た。下茹で 60 分、砂糖を入れて 30 分。まずまずのでき。
AnyEvent::timer の callback coro AnyEvent::timer のコールバックが実行されるのはイベントループだからメイン coro なんだろうと思っていた。が、次のプログラムを走らせてみて、そうではないことを知った。 use strict; use warnings; use Coro; use Any…
coro プールを使った場合、coro は async_pool ブロックを抜けても terminate はしない。すると、join もできないことになる。 $ perl -MCoro -e '(async{})->join' $ perl -MCoro -e '(async_pool{})->join' FATAL: deadlock detected. 明示的に coro の中…
InsideHTTP Fiddler のアルファ版のテスターを募集しているみたい。我こそはと思う方はやってみるといいかと。
Coroでスレッドプールを使う - 北海道苫小牧市出身の初老PGが書くブログで Coro でスレッドプールを使う際の注意点が、様々なベンチマークと共に示されている。まとめとして 「async_poolを使う時には、同時にたくさんのスレッドを利用し過ぎないように気を…
use strict; use warnings; use Coro; for my $i (0..4) { print $i .q{,}. async_pool { print "$i-1\n"; cede; print "$i-2\n"; cede; print "$i-3\n"; }, "\n"; print "main\n"; cede; } [takeyuki@sunya ~]$ perl a.pl 0,Coro=HASH(0x94f4398) main 0-1 …
[takeyuki@sunya pbird]$ echo $LANG ja_JP.UTF-8 [takeyuki@sunya ~]$ echo "()" | perl -pe 'tr{()}{()}' ())()) なんだこれは。全角「(」が半角「()」に変換されたように見える。 [takeyuki@sunya ~]$ echo "()" | perl -Mutf8 -pe 'tr{()}{()}'…
head や tail に 0 行出力するように指定できる。 $ echo -e "a\nb\n\c" | head -0 | tail -0 使いどころは。 $ find ほにゃらら | xargs perl -pe と find に複雑な条件を書いて perl の処理に渡そうとして、ふと、走らせる予定の perl のワンライナーを別…
AnyEvent + Coro での並行ダウンローダの習作 - 昨日知ったことの続き。前回のスクリプトでは、処理が進むにつれセマフォの数が増えていってしまうことが問題だった。セマフォのカウンタが元に戻ったら、そのセマフォを delete できれば一定数以上セマフォが…