2010年10月28日 AnyEvent::HandleがささったらAnyEvent::Impl::Perlを使う AE::Handle+EVでたまにささるという問題があります。 再現コードは以下の通り。 この問題はスクリプトの冒頭でuse AnyEvent::Impl::Perlとすることで回避できます。mlehmanには報告済み... 続きを読む
Perl Hackers Hub 第2回 AnyEventでイベント駆動プログラミング (2) 2010年8月3日 初出:WEB+DB PRESS Vol.56(2010年4月24日発売) 牧大輔 Perl, AnyEvent, イベント駆動プログラミング, ウォッチャーコンディション変数 イベント, ブロック, タイマー, コ... 続きを読む
Perl Hackers Hub 第2回 AnyEventでイベント駆動プログラミング (1) 2010年8月2日 初出:WEB+DB PRESS Vol.56(2010年4月24日発売) 牧大輔 Perl, AnyEvent, イベント駆動プログラミング イベント, プログラミング, プログラム, イベントループ, インストー... 続きを読む
AnyEvent::IRC をつかうと、Coro でつかいやすいかんじで IRC クライアントをかけるし、POE よりもインターフェースがつかいやすいです。 続きを読む
PerlAnyEvent と Coro を使って、WEB から非同期に並行ダウンロードするプログラムの習作を作ってみた。おさかなラボ - Coroでより賢い非同期クローラを作るをだいぶ参考にさせてもらっている。紹介されている非同期クローラはとてもいいのだが、自分がやろうと... 続きを読む
Perl で非同期なイベントベースアプリケーションの開発をしようとした場合、これまでは POE を使用するのが一般的でした。 しかし最近ではこの POE に代わり、AnyEvent というフレームワークの人気が急速に高まっています。 AnyEvent は POE と比べて綺麗にコー... 続きを読む
というわけで、俺の独断と偏見によるオススメモジュールのコーナーです。AnyEvent は poll/select/kqueue/epoll(4) などのイベントループを抽象化するライブラリです。似たような目的のものとして Danga::Socket, POE などがありますが、ライブラリ全体のインタ... 続きを読む
スクレイピング処理をしていると大量のリクエストを発行する事が多いので、サーバの応答待ち時間がもったいないと感じていたのですが、最近巷でよく目にするCoroというモジュールを調べてみた所、非同期処理が割と簡単に書けるという事で試してみました。 以下... 続きを読む
AnyEvent IRC bot: Morris http://github.com/lestrrat/Morris Moose + POEなIRCボット作ろうと前に思い立って、結構長いこと弊社内で使ってたんですが、このたびAnyEvent化して色々モダナイズしました。やっぱり非同期なhttp_getしてる部分とかは抜群に速いな... 続きを読む
Perl, Wassr諸事情により、AnyEvent::TwitterのWassrバージョンが欲しかったので、作ってみた。AnyEvent::Twitter - search.cpan.org基本的にはこのAnyEvent::Twitterのパクリ。じゃっかんインターフェースを自分好みに変更してたりもするけれど。ドキュメント... 続きを読む
天然パーマの Erogeek「ゆーすけべー / yusukebe」の日記です 最近は Perl の話題が多くなっています はぁはぁ 元ネタがmattnさんがsinatraで作ったものかつ、 さらにmiyagawaさんにコアな部分を教えてもらったということで、 お二人に敬意を示しつつ紹介。 Big... 続きを読む
PSGI/Plackにおいて、非同期にレスポンスが返せるstreamingという仕様/機能が追加されました。 PSGI/Plack streaming is now complete これを使うと、streamingをサポートしたサーバから非同期/nonblockingにhttpやGearmanを利用して外部へ問い合わせを行い、そ... 続きを読む
前回のエントリでは簡単なクローラの作り方を説明した。しかしこのクローラには欠点があり、取得したいURLが何千何万とある場合、一度にhttp_getが走ってしまい、リソースを使い切ったり同じサーバーへのアクセスを待つ間にタイムアウトしたりと都合が悪かった... 続きを読む
perlまたまた非同期ブームに乗ってお勉強継続中です。AnyEventとCoro::AnyEventの違いAnyEventとCoro::AnyEventでは、メインループを回すスレッドが違います。 use strict; use warnings; use AnyEvent; use Coro; # use Coro::AnyEvent; my $done = AE::cv; my... 続きを読む
perlCoro::AnyEventを使うと、継続渡しスタイルを使わずに非同期を書くことができます*1。ということで、試しにやってみました。最初にまとめAnyEventの層を作り、その上にCoroの層を重ねて、フロントエンドからはCoroの層だけ使うとわかりやすいアプリができる... 続きを読む
チョー訳その2です。今回はCondition Variablesとmain loop、それとTimer関連の説明部分を訳します。前回の区切りの場所がイマイチ悪かったんですが、今回のところまでで「Introduction to Event-Based Programming」のパートが終わります。なお部分的にかなり... 続きを読む
最近perl界隈で話題のAnyEventについて、今のうちに習得しておくとid:miyagawaみたいにクールになれて、もしかしてモテるのではないかと思い、よっしゃ、勉強してみるか、ということでドキュメント読み出したんですが、、えらいボリュームですね。心がポッキリ... 続きを読む
天然パーマの Erogeek「ゆーすけべー / yusukebe」の日記です 最近は Perl の話題が多くなっています はぁはぁ 以前からやってみたかったことを実験的に公開。 現在できていることは、 URLを含む全世界中の Twitter 発言を日本語で限定してリアルタイムにだらだ... 続きを読む
YAPC後の飲み会でtokuhiromが話してたんだけど DateTime->from_epoch(epoch => 1234567890); PerlのDateTimeのfrom_epochメソッドは引数がハッシュなのね。from_epochなんだからepoch渡すに決まってんだろ!!!!という。こういう感性って、当たり前と言えば当... 続きを読む
人前で喋るのは久しぶりで、調子に載って色々盛り込んでたらスライドが225ページとかになって40分で収まるのか不安でしたが、何とかなりました。 http://ma.la/files/yapcasia2009/ http://ma.la/files/yapcasia2009/main.txt 上下キーかj/kで移動、プレゼンツ... 続きを読む