タグ

ブックマーク / kaede.to/~canada (4)

  • おさかなラボ - Coroでより賢い非同期クローラを作る

    前回のエントリでは簡単なクローラの作り方を説明した。しかしこのクローラには欠点があり、取得したいURLが何千何万とある場合、一度にhttp_getが走ってしまい、リソースを使い切ったり同じサーバーへのアクセスを待つ間にタイムアウトしたりと都合が悪かった。そこで今回はAnyEventに加えCoroを使うことにより、並列を使ってリソースへの同時アクセス制限を行うクローラの書き方を解説する。 これは前回のエントリの改良版になるので、初めてこれを読む方は当該エントリを先に読んで頂きたい。 まず、前回はAnyEventを使い、condvarとsend-recvを使ってイベントの監視をしていたが、Coroと同時に使う場合これでは都合が悪い。イベントループを回す場合、一般的にAnyEventはrecvを、Coroはjoinを使うが、これらはどちらもイベントループが終わるまでブロックするのでどちらかし

    cubick
    cubick 2010/01/23
  • おさかなラボ - 非同期の簡単なクローラの作り方

    そろそろ(いまさら)Coro+AnyEventでもやってやるか!と思って簡単な並列クローラを作ることにしたのだが、ググって出てくるサンプルを見てもいまひとつうまく動いてくれない。 で、そういえばYAPC::Asia 2009でmala.さんがAnyEvent::HTTPを使うとこんなに簡単にできるよ!と言っていたので、スライドの通りにやってみた。 use AnyEvent::HTTP; sub done { print @_; } http_get ("http://www.example.com/“, \&done); # 1 http_get (”http://www.example.com/“, \&done); # 2 http_get (”http://www.example.com/“, \&done); # 3 –mala氏 main.txtから引用。 こ

    cubick
    cubick 2010/01/23
  • おさかなラボ - 禁断の快楽・変態キーバインドのお誘い

    増井俊之氏がセミコロンにエンターをバインドしているという話が頭から離れなかった。もういっそのこと彼以上の変態キーバインドにしてしまおう。コンセプトはホームポジションから一切手を離さずに日常の動作を行うこと。使用ソフトはVista以外のWindows用窓使いの憂(以下mayu)だ(Windows Server 2003 Resource Kit Toolsこのようなソフトウェアもあるらしい。thanks>infohack氏)。 まず感想。いざ慣れると、いかにいままで遠いキーに振り回されていたかが痛感できた。ホームポジション近辺だけで文章やコードが打てるのがこんなに快適だとは正直思わなかった。真似したい人は少ないかも知れないが、大げさではなく、当に流れるように文章やコードが打てる。 エンター まず、増井俊之氏の言うとおり思い切ってセミコロンキーをエンターにしてみた。するとこれが想像

    cubick
    cubick 2007/07/08
    Caps LockをEnterにしてるお
  • おさかなラボ - vimにPerlとPHPの辞書を登録するぞ

    vimはCtrl+pで直近の単語を補完してくれるが、関数なんかも補完してくれると便利だ。しかしなんかしらんけど辞書は自分で用意しなきゃならんらしい。そのノウハウを公開する。なおvim7持ってる人はomni completeというもっと便利な機能があるらしい(ただしPerlは未対応か。詳細は末尾に記載)。 下準備 ~/.vim/以下にdictを掘っておく。~/.vim/dict/でいい。ほんとはどこでもいいんだけど分かりやすいからそこにしちゃおうよ。 PHPの場合 まずphpの辞書を作ってみよう。phpは全関数を出力する機能があるらしいのでそれを使う。この方法、ネタ元があったのだが分からなくなった。ごめん。 まず辞書ファイルを作る。場所はどうでもいいんだが、~/.vim/dictに辞書ファイルを集めることにしてしまおう。 php -r '$f=get_defined_functi

  • 1