タグ

ブックマーク / sun-basix.hatenadiary.org (4)

  • AnyEventで指定したパス以下の変化を検知する - taiyoh独言

    指定したパス以下の変更を検知するのってどうすればいいかな、ということにちょっと興味が湧いたので、調べてみました。 ここでは、Windowsが手元にないのでパスするとして、LinuxMacOSX(BSD)について触れようと思います。 そもそもOSの検知システムは何があって、Perlからは何でアクセスできるか 以下に対応表を作成しましたので、参照ください。 OS 検知システム Perl binding Linux inotify Linux::Inotify2 BSD系 kqueue IO::KQueue Mac OS X kqueue IO::KQueue Mac OS X FSEvents Mac::FSEvents OSXはBSDベースのUNIX系OSのため、自前のFSEventsだけでなく、KQueueも使用できます。 実装に際しての戦略(生存。。。じゃないよ) おおよそ、以下の2点

    AnyEventで指定したパス以下の変化を検知する - taiyoh独言
    otsune
    otsune 2011/11/23
  • AnyEvent::IMAPListen - taiyoh独言

    というモジュールをつくりました。 http://github.com/taiyoh/AnyEvent--IMAPListen ハイフンが2つになってしまったのはミス>< iPhoneで一番困るのは、メールの通知が(mobile.meを使っていない限り)プッシュ通知ができないということだと思います。 今までは、gmailの転送設定でi.softbank.jp宛に送って凌いでいたのですが、 そうなると2つのアカウントの未読管理をする必要がでてくる。 いい加減そんなローテクなことをしてるのはエンジニアの端くれとしてまずいなと思い、 Perlでなんとかできないか調べることに。 で、gmailで対応してそうなプッシュ通知の方法を色々調べるうちに、どうもIMAPを監視するのがよさそうだと。 IMAPには「IDLE」というコマンドがあって、これをサーバに投げつけておくと、 解除しない限りどんなコマンド送

    AnyEvent::IMAPListen - taiyoh独言
    otsune
    otsune 2010/02/20
    Biff?
  • [perl]Algorithm::Bayonなぞ作ってみた - taiyoh独言

    お久しぶりです。色んなものを作りかけたまま放置してしまってすいません>< ぼちぼち収拾していきますので。 そう言いつつ、またなんか作ってしまったのですが。 不肖私、mixiの方が作った"bayon"というクラスタリングツールを今更になって触ってみたところ、あまりの速さに感動してしまったので、弊社某サービスで使っているAlgorithm::Clusterからのスイッチを狙っています。 とはいえ、bayonの入出力の形式はtsv(しかも出力は標準出力)なので、Perlから直で扱うにはちと不便。なので、コマンドラインのラッパーとIOまわりをある程度抽象化してまとめたツールをこしらえました。それが表題のAlgorithm::Bayonです。 →http://github.com/taiyoh/algorithm-bayon-perl/tree/master 例によって俺クオリティの影響でドキュメン

    [perl]Algorithm::Bayonなぞ作ってみた - taiyoh独言
    otsune
    otsune 2009/08/06
  • 非同期IOを実現するIO::Lambda - taiyoh独言

    先日、CPAN Recent Changesをみていたら、IO::Lambdaなるモジュールを発見。ジャケ買い感覚でヲチしつつ、年始はこれを覚えてみようと思ったので、その記録。 とりあえず、やっとこさechoサーバとして動くようになった。 #!/usr/bin/env perl use strict; use warnings; use IO::Socket; use IO::Lambda qw/:all/; use IO::Lambda::Socket qw/:all/; my $server = IO::Socket::INET->new( Listen => 5, LocalPort => 10000, Blocking => 0, ReuseAddr => 1, ); die $! unless $server; my $serv = lambda { context $serve

    非同期IOを実現するIO::Lambda - taiyoh独言
    otsune
    otsune 2009/01/06
  • 1