DSAS開発者の部屋に絶望した

フィードが前文配信じゃなくなってるYO!

ラボ系ブログ(といっていいのか)では多分一番熱心に購読しているのでよけい絶望した。

by typester / at 2007-09-11T18:05:00 / life / Comment

HTML::TreeBuilder::XPath + WWW::Mechanize なスクリプトを永続化させようとしてはまった

WWW::Mechanize でコンテンツとってきて TreeBuilder::XPath で解析するようなのを今まで単機能スクリプトなどでは便利に使っていたのだけど、それを永続的なプロセスで使おうとしたらメモリ使いまくってとんでもないことになったという話。

まずどんどんメモリが増えていくのでタイミングよく読んでいたjrockwayの記事などを参考に、

perl -MDevel::Leak::Object=GLOBAL_bless

付きでスクリプトを実行してみる。

少しソースをいじってまずはループを一回で止めるようにしたときの出力

Tracked objects by class:
Config                                   1
DBI                                      1
DBI::var                                 5
DBIx::Class::ResultSource::Table         1
DateTime::Duration                       2
DateTime::Format::Builder::Parser        3
DateTime::Format::Builder::Parser::Regex 10
DateTime::Infinite::Future               1
DateTime::Infinite::Past                 1
DateTime::Locale::en                     1
DateTime::TimeZone::Asia::Tokyo          1
DateTime::TimeZone::Floating             2
Encode::Internal                         1
Encode::utf8                             2
Errno                                    1
FileHandle                               3
HTML::Element                            1799
HTML::Element::_travsignal               5
HTML::TreeBuilder::XPath                 1
XML::XPathEngine                         1
XML::XPathEngine::Expr                   19
XML::XPathEngine::Function               6
XML::XPathEngine::Literal                9
XML::XPathEngine::LocationPath           4
XML::XPathEngine::Root                   1
XML::XPathEngine::Step                   9
utf8                                     2

つぎ、少しループしてから止めたときの出力

Tracked objects by class:
Config                                   1
DBI                                      1
DBI::var                                 5
DBIx::Class::ResultSource::Table         1
DateTime::Duration                       2
DateTime::Format::Builder::Parser        3
DateTime::Format::Builder::Parser::Regex 10
DateTime::Infinite::Future               1
DateTime::Infinite::Past                 1
DateTime::Locale::en                     1
DateTime::TimeZone::Asia::Tokyo          1
DateTime::TimeZone::Floating             2
Encode::Internal                         1
Encode::utf8                             2
Errno                                    1
FileHandle                               3
HTML::Element                            7378
HTML::Element::_travsignal               5
HTML::TreeBuilder::XPath                 4
XML::XPathEngine                         1
XML::XPathEngine::Expr                   19
XML::XPathEngine::Function               6
XML::XPathEngine::Literal                9
XML::XPathEngine::LocationPath           4
XML::XPathEngine::Root                   1
XML::XPathEngine::Step                   9
utf8                                     2

となって、TreeBuilderがなんかやばいことになってるくさい。

で、マニュアル読んでたら $tree->delete やれよ!って書いてあった。

TreeBuilderは明示的にdeleteメソッド呼ばないと綺麗になくならないらしい。たぶん常識なのだが、いままでやってなかったわぁ。。

これやったらずいぶんメモリ増えなくなった、でもまだなんか少しずつ増える。でも、Devel::Leak::Objectの出力は処理数あげてもかわらない。

あとはmechがあやしいなぁとおもって毎回newするようにしたらメモリ増えなくなったのであれれとおもってマニュアル見たら、デフォルトではヒストリを無限に記録していくらしい。

なので

WWW::Mechanize->new( stack_depth => 1 )

とかしたら大丈夫になった。これでとりあえず大丈夫かな。

まぁ結論としては、マニュアル読めということです。あと Devel::Leak::Object は簡単で便利。

by typester / at 2007-09-10T18:51:00 / perl / Comment

サーバーシグネチャ

昨日発見したんだけど http://www.torrentz.com/

Server: apache ;)

とかなってる。こういうの好き。

実際はlighttpdだと思う。

by typester / at 2007-09-05T12:16:00 / life / Comment

携帯にSMSで

こんなのがとどいた

Subject: 株)ORSからのお知らせ

(株)オンラインサービス担当 仲田と申します。 この度、現在お客様ご使用中の携帯端末より、 認可ネットワーク認証事業者センターを介入し、発信者端末電子名義認証し、以前ご登録いただいた、「総合情報サイト」から、無料期間中に退会処理がされてない為 に、登録料金が発生し、現状未払いとなった状態のまま長期放置が続いておりますが、本通達より 再度これ以上放置が続きますと、利用規約に伴い、住民票取得、お客様の身辺調査了承後後日 回収機関により、調査費 回収費用含め、ご自宅、お勤め先、第三者への満額請求と代わります。

現在調査保留中の額面にて、処理をご希望であれば、早期に精算 退会処理データ抹消手続きをお願いします。 早急に、 03-3526-3618 担当 仲田迄 受付時間 平日 09:00〜18:00迄

尚 ご連絡なき場合 手続き開始ご了承とさせて頂きます。

総合情報サイトて...w ちゃんとサービス名書かなきゃ釣れようがないきがするけど。

これが架空請求ってやつか。はじめてきたなぁ。

てか、株)オンラインサービスでORSって。。。

差し出し人電話番号は 08030849942

by typester / at 2007-09-04T13:43:00 / life / Comment

ブラウザサイズ

この間までsubtechグループのトップにistブログパーツがはられてて、みんながうぜぇメニュー押せねぇ!とかゆってたのを聞いて「ハァ?ドンだけブラウザサイズ小さいんだよ」とか思ったりしてた。

とか思ってたたりしたんだけれども、みんなはもしかして画面サイズが大きくなっても今までどおりのブラウザサイズをつかっているんだろうか。僕はディスプレイが大きくなれば大きくなっただけブラウザサイズを広げてしまってるなぁ。

by typester / at 2007-09-02T12:55:00 / life / Comment

共有repos!

昨日の件ですが、yappoさんが作ってくれました。

http://coderepos.org/share

最高!最高すぎます。

by typester / at 2007-08-30T23:32:00 / life / Comment

個人レポジトリを共有しよう!

昨日twitterでつぶやいていたのだけど、

みんながそれぞれ作って公開してる公開レポジトリを一緒くたにしちゃいたい。参加してる全員がどのファイルもみたり変更したりできるような。

パッチ送られてくる代わりに「後で見とくからコミットしといて」とかいえたりとか、つくりかけで放置したもので他の人が興味もったら続き作ってもらうとか、メンテするのめんどくなったのだれかにやってもらうとか、突発的に誰かと一緒にプロジェクト始めたりとか、できる!

で、それやりたくてとりあえずgoogle codeにレポジトリ作ろうとしたんだけど、あそこはなんかレポジトリ全体でライセンスをひとつ決めないといけないようなのでだめだ。

誰か信用できる人ホスティングしてくれないかなー。shibuya.plの人とか、yappoさんとか。

by typester / at 2007-08-29T11:37:00 / life · programming / Comment

htpasswdだけインストールしたい!

と思ったのだけど、htpasswdとかはapache2-utilsってパッケージにわけられていてそれだけ別にインストールできるようで、一瞬で解決。

$ sudo dpkg -L apache2-utils
/.
/usr
/usr/bin
/usr/bin/dbmmanage
/usr/bin/htdbm
/usr/bin/htdigest
/usr/bin/htpasswd
/usr/sbin
/usr/sbin/ab
/usr/sbin/checkgid
/usr/sbin/logresolve
/usr/sbin/rotatelogs
/usr/sbin/htcacheclean
/usr/sbin/check_forensic
/usr/sbin/split-logfile
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/htdbm.1.gz
/usr/share/man/man1/htpasswd.1.gz
/usr/share/man/man1/dbmmanage.1.gz
/usr/share/man/man1/htdigest.1.gz
/usr/share/man/man8
/usr/share/man/man8/rotatelogs.8.gz
/usr/share/man/man8/htcacheclean.8.gz
/usr/share/man/man8/checkgid.8.gz
/usr/share/man/man8/ab.8.gz
/usr/share/man/man8/logresolve.8.gz
/usr/share/man/man8/check_forensic.8.gz
/usr/share/doc
/usr/share/doc/apache2-utils
/usr/share/doc/apache2-utils/copyright
/usr/share/doc/apache2-utils/NEWS.Debian.gz
/usr/share/doc/apache2-utils/changelog.gz
/usr/share/doc/apache2-utils/changelog.Debian.gz
by typester / at 2007-08-23T16:52:00 / debian / Comment

Class::Component

subtech - sexさんのブログ - Class::Component::Plugin の init()

こういうのは経験的にweakenったほうがいい希ガス。なんともいえませんが。

by typester / at 2007-08-22T17:55:00 / perl / Comment

OIOI!

hide-k.net#blog: 鎌倉散歩録

カヤックをスルーするとは!

鎌倉へお越しの際はぜひぜひカヤックにも遊びにいらしてください。

by typester / at 2007-08-20T08:21:00 / life / Comment

28 29 30 31 32 33 34 35 36 37

(Page 32 of 203)