タグ

POEに関するantipopのブックマーク (7)

  • POE の処理の流れを把握してみる - 理系学生日記

    メモ書き程度に。 準備 POE の多くのクラスは、POE::Kernel に対する mix-in となっています。つまり、POE::Kernel パッケージに属するメソッドなのに、Kernel.pm にないんだけど…!! ということがよく起こる。これをなんとかするために、とりあえず TAGS ファイルを作っておきます。 $ DIR=/opt/local/lib/perl5/site_perl/5.10.0/ $ etags $DIR/POE.pm `find $DIR/POE -type f` mix-in なので、基的にはメソッドの多くが POE::Kernel に属しますが、ここでは便宜上、POE/hoge.pm に書かれているメソッドは POE::hoge::method と記述します。 主な流れ POE の主な処理は、POE::Kernel::run の呼び出しから始まります。P

    POE の処理の流れを把握してみる - 理系学生日記
    antipop
    antipop 2009/05/23
  • I, newbie » POEによるevent-drivenなPerlプログラミング その1

    POEはevent-drivenなmultitasking frameworkです。最近では名前こそ知られてきたものの、(上級者を除くと)広く使われてはいません(ただし歴史は長いし、採用事例もたくさんあります)。なぜかというと、かなーり奥が深くて、ドキュメントが膨大で、しかもソースコードの上から順に実行される一般的なPerlプログラムと大きく異なるイベント駆動なフレームワークだからでしょう。自分も、「なんかPOEってすごいらしいよ」と耳にしてから少しずつ勉強していたんですが、どーも理解が進まなくて苦労しました。そんな最初のハードルを低くするような文書が欲しかったので、書いてみることにします。 POEは、event-drivenなプログラムに最適です。event-drivenなプログラムとは、何らかのイベントが起きたらなんらかの処理をする、そういうプログラムです。例えば、GUIアプリケーショ

  • YappoLogs: twitter2ircd.pl - POEで書いたperlのTwitter IRC Gateway

    twitter2ircd.pl - POEで書いたperlTwitter IRC Gateway Twitterは、どことなくチャット的な利用もされていてiChat使っていたのですが,WindowsTwitter IRC GatewayがあってIRCでやるのが楽しそうだったので、Macで動くようにPerlIRC Gateway書きました。 miyagawaさんにPoCo::Server::IRCのサンプルコードとしてLingrのIRC Gatewayを教えてもらったので、参考にしてPOE::Component::Client::Twitterを作ってCPANにうpしました。 パッケージ中にはtwitter2ircd.plというTwitterIRC Gatewayとなるサンプルコードを同梱しています。 コードの下にサンプルの設定ファイルがあるので参考にして下さい。 こんな感じで 普通

  • Hackathon #1 - 彼の岸

    最近「最近twitter中毒なんだよねー」というとモテると噂のtwitterを、非モテの皆さんが慣れ親しんだIRCにnoticeしてくれるスクリプトを書きました。 ほとんど Google Talk を流れるデータを見る - file-glob こと k.daibaの日記 と Plaggerのircbot と http://svn.unknownplace.org/public/scratch/yapc_irc2lingr/irc2lingr.pl をコピペしてよくわかんなくなったのを、氷魚さんに直してもらってできたのでコードはほとんど書いてない気も。 こういう感じでお友達がなにやってるかがわかったりするよ…! ソースはid:kdaibaさんのソースのライセンスを聞いてから! あとは、発言とかで自分のステータスとかを変更できるようにするとよい。

  • 仙石浩明の日記: Perl の非同期I/Oモジュール POE を使って VPN-Warp relayagent を書いてみました

    多数の TCP/IP セッションを同時に維持する必要性などから、 非同期I/O が最近流行りのようです。 何をいまさら、という気もするのですが、 いわゆる「最新技術」の多くが 30年前の技術の焼き直しに過ぎない今日このごろなので、 非同期I/O 技術が「再発見」されるのも、 「歴史は繰り返す」の一環なのでしょう。 スレッドが当たり前の時代になってからコンピュータ技術を学んだ人にとっては、 (古めかしい) 非同期I/O が新鮮に映るのかも知れず、 なんだか「ファッションのリバイバル」に似ていますね。 Perl で非同期I/O 処理を手軽に行なうための枠組みとして、 POE: Perl Object Environment というものが あるようです。 POE を使うと、 あたかもスレッドを使っているような手軽さでプログラミングできます。 試しに VPN-Warp の relayagent を

  • POE おぼえがき - daily dayflower

    TIMTOWTDI なことがいっぱいで POE のことがよくわからなかったのですが,Cookbook とリファレンスを読んでなんとなくわかってきました。 POE::Kernel が POE システムのコアで唯一神 POE::Kernel->run()*1 を実行するとイベントループが回り出す イベントループでやることがなくなると POE::Kernel->run() から戻る(戻ることを期待してはいけない) POE::Session が POE システムにおける,タスク/ステートマシン/プロセス/スレッド的なものの単位 複数生成してよい セッションの最初に _start イベントが発生する セッションの最後に _end イベントが発生する イベントハンドラとして,サブルーチンリファレンス(inline_states),パッケージ関数(package_states),オブジェクトメソッド(o

    POE おぼえがき - daily dayflower
  • PoCo::HTTP で Comet チャットサーバを作る - daily dayflower

    せっかくのイベントドリブンフレームワークな POE ですから Comet でチャットをやってみようかと。ありきたりですが。 POE::Component::* でウェブサーバを立ち上げられるのは現在のところ, POE::Component::Server::HTTPServer POE::Component::Server::SimpleHTTP POE::Component::Server::HTTP の3つがあります。1番目は最近 inactive なのでパス。2番目は「イベントフレームワーク」への馴染みはいいんですが「Simple」じゃなくなってます。3番目はコールバック関数を登録するというお気楽スタイルなんですがちょっと雑な感じ。 今回は楽をするために3番目の PoCo::HTTP を使ってみたいと思います。id:naoya 氏も最近紹介してましたし。 URI の設計指針は, チャ

    PoCo::HTTP で Comet チャットサーバを作る - daily dayflower
  • 1