2006/05/31 (水)
■ [Plagger] Parallel download with LWP::Parallel
![はてなブックマーク - [Plagger] Parallel download with LWP::Parallel - Bulknews::Subtech はてなブックマーク - [Plagger] Parallel download with LWP::Parallel - Bulknews::Subtech](http://b.hatena.ne.jp/entry/image/http://subtech.g.hatena.ne.jp/miyagawa/20060531/1149081847)
LWP::Parallel 版もつくってみた。LWP::Parallel::UserAgent のインタフェースが一番 FetchEnclosure の望んでいたものに近いので助かる。
http://plagger.org/trac/changeset/875
こちらの場合、concurrency (同時ダウンロード数), max_requests_per_host (同一ホストごとのリクエスト数) を LWP::Parallel でめんどうみてくれるのでより行儀がいい。ただエラーチェックはかなり適当なのと、レジュームには非対応。
■ [Plagger] Parallel downloading with Wget
![はてなブックマーク - [Plagger] Parallel downloading with Wget - Bulknews::Subtech はてなブックマーク - [Plagger] Parallel downloading with Wget - Bulknews::Subtech](http://b.hatena.ne.jp/entry/image/http://subtech.g.hatena.ne.jp/miyagawa/20060531/1149080673)
FetchEnclosure の Xango 対応を daisuke 氏と IM で。どうも PoCoClHTTP はレスポンスデータをオンメモリに詰め込んでしまうらしく、ビデオキャストのDLなんかには具合が悪い。
シンプルにwgetを使ってみてはどうだろうということで、FetchEnclosure::Wget をつくってみた。
http://plagger.org/trac/changeset/874
POE::Wheel::Run で fork して wait というシンプルなバージョンだけど、レジュームとかにも対応している(はず)。
本来やるべき concurrencyのチェックとかは(まだ)してない。ので、たくさんPodcastに subscribe してるとwget spawnしまくりでマシンが過負荷になるかもしれないのでご注意を。
この要領でcURLだとか、他のダウンロードツールに渡すサブクラスをつくっていくのはアリだな。(Firefox のダウンロードマネージャは外からURL渡せる?)
application/x-torrent なら Torrentと連携とかも面白い。
■ Trac SPAM

sqlite> delete from ticket_change where author = "kkkkoaaa"; sqlite> update ticket set version = '', milestone = '' where version = 'HEAD' and milestone = 'Release 0.5';