タグ

AnyEventに関するtakeshiyakoのブックマーク (34)

  • AnyEvent::AIOをとりあえず試す - D-6 [相変わらず根無し]

    AnyEvent::AIOをとりあえず試す まだこう、細かいpros/consがわからないのでなんとも言えないんだけど、とりあえずaio_open/aio_writeと普通のopen/print/closeで同じ事した場合とでベンチマークとか取ってみた。これでいいのかなー 環境はMac OS X 10.5.8, 2.4 GHz Intel Core 2 Duo, 4GM RAM. Comparing with buffer size 10... Rate normal aio normal 80.0/s -- -19% aio 99.0/s 24% -- Comparing with buffer size 100... Rate normal aio normal 80.0/s -- -18% aio 97.1/s 21% -- Comparing with buffer size 1

  • 備忘録:AnyEventとData::MessagePack - D-6 [相変わらず根無し]

    備忘録:AnyEventとData::MessagePack 2011年3月 8日 18:38 D | ブログ記事のURL | コメント(0) | トラックバック(0) ちょっとだけ躓いたりしたので、備忘録のため。AnyEventでData::MessagePackを受け取るサーバー use strict; use AnyEvent; use AnyEvent::Socket; use Data::MessagePack; use Data::Dumper; main(); sub main { my $host = undef; my $port = 8888; my $guard = tcp_server $host, $port, sub { my ($fh) = @_; handle($fh); }; my $cv = AE::cv; my $w; $w = AE::signal

  • livedoor Techブログ : IRC がゆく

    開発部 _ です。 みなさんは IRC を使っていますか? もしくは使ったことがありますか? ネット上の個人コミュニケーション手段が msn・Yahoo!・Skype などのメッセンジャーが一般的になって久しい昨今、IRC は一部のマニアが使うニッチで古臭い手段という見方も多いようです。 そんな中 livedoor では、日々の運用作業に始まり、開発中のコンテンツ進捗、技術的な意見交換、バグ報告、ランチどこいく?、麻雀やりますよ、今夜のおかずに到るまで日常的に活用されています。 IRC で使われているツールに IRC bot(IRCボット:以下 ボット)と呼ばれる小さなプログラムがあります。 ユーザーの発言に反応したり、定期的に何かを発信したり、嫌なアイツにナニしてくれたり、と作り手の発想次第でいろいろな処理をさせることが出来ます。 時に悪用(ボットネットなど)されるなどネガティヴな印象を

  • Perl 非同期プログラミング

    1. 非同期プログラミング with Perl 2010/08/07 Japan Perl Association 代表理事 株式会社ライブドア 牧 大 輔 (@lestrrat) 3. 普通の書き方 use strict; use LWP::UserAgent; my @urls = qw( http://www.livedoor.com/ http://www.dena.jp/ http://mixi.jp/ http://www.gaiax.co.jp/ ); my $ua = LWP::UserAgent->new(); foreach my $url (@urls) { my $res = $ua->get( $url ); ... }

    Perl 非同期プログラミング
  • 第2回 AnyEventでイベント駆動プログラミング (2) | gihyo.jp

    ウォッチャー AnyEventでプログラムを作成する場合「ウォッチャー」を作成、管理することが基的な作業となります。ウォッチャーとはI/Oやタイマーなどの何かしらのイベントが発生したことを通知してもらうためのオブジェクトです(図2のコールバックの指定および実行の部分を担当します⁠)⁠。 現在から5秒後にコールバック関数を呼び出してもらうにはリスト1のようなコードを書きます。 リスト1 ウォッチャー use strict; use AnyEvent; my $cv = AnyEvent->condvar; ……(1) # タイマーウォッチャーを作成 my $w; $w = AnyEvent->timer( after => 5, # 今から5秒経ったらイベント発生 cb => sub { # イベント発生時にこの関数が呼ばれる warn "5秒経ちました!"; undef $w; ……(2

    第2回 AnyEventでイベント駆動プログラミング (2) | gihyo.jp
  • Cache-Memcached-AnyEvent-0.00023

  • webアプリからircbotに話しかける方法 - Hatena::Diary::Neko::kak 500 Internal Server Error

    今作ってる簡易TODO管理の仕組みでtaskが登録されたらircに通知されるようにしたかったので サックリつくってみた。 仕組みとしてはircボットとして常駐しながら、json-rpcなserverもうごいているので、 json-rpcで発言したい内容をpostするだけです。 irchttpd.plを常駐させておいて、 Webアプリ側でpost.plでやってることをやらせるだけ。 1チャンネルしか対応してないけど十分なり。

    webアプリからircbotに話しかける方法 - Hatena::Diary::Neko::kak 500 Internal Server Error
  • livedoor Techブログ : Arduinoで事業部長を監視しCiao!

    こんにちは、最近はモバイル向け新規サービスの開発を担当している栗原です。 今回のTechブログではMAKE系の話をご紹介したいと思います。 フィジカルコンピューティングとは 皆さんは『フィジカルコンピューティング』という言葉を御存知でしょうか。フィジカルコンピューティングとは、既存のパーソナル・コンピュータのグラフィカル・ユーザー・インターフェイス(ウインドウ,マウス,アイコンなど)を超えて、私たちの生活環境によりそった身体的なコンピュータのあり方を模索する研究の動向のことを言い(出典:はてなキーワード)、最近ではそれらの研究や実験を簡単に実現するための便利なハードウェアがいくつも存在します。 代表的なハードウェアとしては、ArduinoやGainerやFunnelなどがあります。これらは単純な入出力を供えた拡張可能な基板となっており、適当な電子部品をつなげることにより様々なことを実現でき

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • AnyEvent で $poe_kernel->alias_set 的なことをする方法 - unknownplace.org

    最近 AnyEvent にはまっています。おもしろい! AnyEvent と同じ非同期プログラミングフレームワークであるところの POE では $kernel->alias_set('hoge'); などとしておくと $kernel->post( hoge => 'state' ); みたいな感じでどこからでもそのコンポーネントを呼び出すことができました。 しかし AnyEvent ではそう言った機能がないため以下のように Object::Container を使って解決することにしました。 呼び出される側: use AnyEvent; use Object::Container 'event'; my $cv = AnyEvent->condvar; $cv->cb(sub { my (@args) = $cv->recv; # ここになんか処理 }); event->register(

  • 外為レートをTatsumakiで流してみた|perl|@OMAKASE

    ニコ生コメントに続き性懲りもなく新しいネタを考えました。 外国為替の通貨(ドル円など)を非同期に表示させてみます。 一般的にFX取引会社のHPではFlashやらJavaを使って通貨データをリアルタイムに表示していてそれ以外の方法(Ajax等)を使ってる所はほとんど見かけない。 実際問題Flashとかで表示させたほうがブラウザの依存もなく簡単だから?まぁ当然ですが・・・・ 前回のニコ生アプリで Tatsumaki の素晴らしさを体感してしまった "Tatsumaki厨" な私ですが別に後悔はしていません>< Tatsumaki のような非同期アクセスに対応したWAFがあるから作ってみたくなっただけ(山登りと同じ)なんだってばよ! Tatsumaki の良い所は MessageQueue にデータを入れれば後はWAFがよきに計らってくれる所にあります。 どのクライアントのセッションなのかとか余

  • Plack::Server::AnyEvent::Prefork - blog.nomadscafe.jp

    Preforkした上でAnyEventのloopを動かすPlack::Server::AnyEvent::Preforkを、先週のPlack Hackathonの時間で形にしてgithubにpushしました。 はなぼくろ師との共作です。 目的は、AnyEventでもマルチコアを使いたいよねという理由ですが、それほど一般的な利用はないと思います。plackupの方でprefork処理を行うとかいう話もあったりなかったりなので、しばらくCPANにはアップロード予定ありません。不足している部分もありますので、fork & patchウェルカムです Hello Worldだけのテストで生AnyEventとの比較 ベンチマークをしたサーバはVMware ESXi上の仮想マシン。一応CPU 2つ割当てある 起動はこんな感じ plackup -a hello.psgi --server AnyEvent

  • AnyEvent-MPRPC-0.20

    The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

    AnyEvent-MPRPC-0.20
  • AnyEvent-JSONRPC-Lite-0.15

    The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

    AnyEvent-JSONRPC-Lite-0.15
  • 自分専用TwitterのWeb UI 「Hamaki」 - D-6 [相変わらず根無し]

    自分専用TwitterのWeb UI 「Hamaki」 ミニブログサービスで先行するTwitterと差別化を図った上で新たなサービスを出すのは面倒くさいので、id:miyagawa氏のコードを丸々パクった上でTwitter支援ツール、Hamakiを機能の夜からちょこちょこと開発しました(当はTwitter以上に色々できるんですが、そのあたりはまださわってない) もう自分がやりたい事はだいたいできるようになったのでとりあえず公開です。 まず前提としてTwitterを使ってていくつか不満な点があったわけです: Twitterで特定のアプリの発言がちょっぴり気になるので自分のTLに表示したくないかといって上記アプリの発言している人たちの他の発言は読みたいので、それらの人をremoveするのもしたくない。あと、全般的にtwitterをリロードするような事をしていると非常に効率が悪いかといって、今

  • GitHub - miyagawa/Tatsumaki: Plack-based nonblocking Web framework for IO-bound delayed response, server push (streaming) and long-poll comet

    NAME Tatsumaki - Non-blocking web framework based on Plack and AnyEvent SYNOPSIS ### app.psgi use Tatsumaki::Error; use Tatsumaki::Application; use Tatsumaki::HTTPClient; use Tatsumaki::Server; package MainHandler; use parent qw(Tatsumaki::Handler); sub get { my $self = shift; $self->write("Hello World"); } package FeedHandler; use parent qw(Tatsumaki::Handler); __PACKAGE__->asynchronous(1); use J

    GitHub - miyagawa/Tatsumaki: Plack-based nonblocking Web framework for IO-bound delayed response, server push (streaming) and long-poll comet
  • PSGI/Plackで非同期 Web Server - blog.nomadscafe.jp

    PSGI/Plackにおいて、非同期にレスポンスが返せるstreamingという仕様/機能が追加されました。 PSGI/Plack streaming is now complete これを使うと、streamingをサポートしたサーバから非同期/nonblockingにhttpやGearmanを利用して外部へ問い合わせを行い、その結果をレスポンスしたりできます。 また、これがPlackで既に実装済みなので、非常に短いコードでサーバの実装ができちゃいます。 すばらしいですね。 すでにmiyagawaさんが、この機能を利用した非同期Web Framework「Tatsumaki」を書かれています。 イベントを扱う部分が隠蔽されているので、これを使うとさらに簡単に実装できます。 すばらしすぐる。 ここでは、簡単に外部へAnyEvent::HTTPを用いて、HTTPリクエストを行うサンプルを書い

  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • Coroを使って、コールバック形式を普通の形式に書き換えてみた - Pixel Pedals of Tomakomai

    非同期ブーム第二段です。 書き換え方 func_by_cb( $cb, @params ) みたいな形式があった時に、Coroのrouse_cbを使うと、通常の関数呼び出しの形式で呼び出せる関数に変換ができます。こんな感じで。 sub func_by_coro { func_by_cb( Coro::rouse_cb, @_ ); return Coro::rouse_wait; } 変換前の関数(func_by_cb)は、以下のように使います。 func_by_cb( sub { print @_, "\n"; }, 1, 2, 3); 対して、変換後の関数(func_by_coro)では、この処理を以下のように書けます。 print func_by_coro(1,2,3), "\n"; 使い勝手は一目瞭然ですね! コールバックがAnyEventで実現されている場合 コールバックがAny

    Coroを使って、コールバック形式を普通の形式に書き換えてみた - Pixel Pedals of Tomakomai
  • AnyEventでtail -f - Kentaro Kuribayashi's blog

    AnyEventの練習をしてみようってんで、とりあえずtail -fぽいのを書いてみる。こんなんでいいんだろうか……。よくわからない。 #!/usr/bin/env perl use strict; use warnings; use AnyEvent; use AnyEvent::Handle; $| = 1; my $file = shift or die qq{usage: $0 filename}; open my $fh, '<', $file or die qq{can't open file: $file}; my $cv = AE::cv; my $handle = create_handle(); sub create_handle { new AnyEvent::Handle fh => $fh, on_error => sub { my ($handle, $fata

    AnyEventでtail -f - Kentaro Kuribayashi's blog