xircd yapcasia2008
TRANSCRIPT
XIRCD で加速する IRC ライフ
ふしはらかん ( 株式会社モバイルファクトリー )
自己紹介
● ふしはらかん(伏原幹)● 株式会社モバイルファクトリー所属● はてな ID: mikihoshi● http://d.hatena.ne.jp/mikihoshi/
自己紹介の続き
● id:precuredaisuki
あじぇんだ
● IRC 使ってますか● IRC を便利に使うアプリケーション● XIRCD について
IRC 使ってますか
● IRC の利点● IRC 上の開発コミュニティ
IRC の利点
● 歴史がある● 仕様が枯れてて安定してる● IRC を便利に使うためのツールが充実
IRC 上の開発コミュニティ
● irc.freenode.net● #plagger-ja(plagger), #subtech(?)● Project 単位やテーマ毎にチャンネルが● 気軽に参加するべき● ROM ってるより書き込もう
IRC を便利に使うためのツール
● LimeChat● tiarra● mobirc● etc ...
LimeChat
● Windows, Mac で使える IRC Client● 現在も継続的に開発が進んでいる
tiarra
● IRC Proxy● 複数の IRC Server に接続して、 1 つの IRC
Server で見られる● Tiarra に client が join していない間も接続
を維持してロギング等が可能● いくつもの Plugin がある
mobirc
● web IRC Client– 携帯電話からの閲覧に特化している
● Pluggable な構成● tiarra 等と組み合わせるとより便利に
IRC の可能性
● どこでも IRC を使っている– 自宅– 会社– 移動中 (mobirc)
● PUSH 型の情報の汎用 Client として使える
XIRCD について
● Perl で IRC Server を作る● MooseX::POE● XIRCD で何が出来るの?
Perl で IRC を実装する
● POE を使う● POE::Component::Server::IRC がある● POE の”お約束”に従う必要が● 毎回同じようなコードを書くことに● サーバーがいくつも立つ……
MooseX::POE
● Moose によって POE program の冗長な部分が上手く隠匿されているもの
● DSL 的にイベントハンドラを登録できる
XIRCD
● MooseX::POE ベース● IRC Server に必要な機能をあらかじめ用意● Component には最低限の記述を DSL 風に書
けば動作する● 各 Component は各チャンネルで動作するの
で、サーバは 1 つで済む
POE::Session->create( package_states => [ __PACKAGE__, [qw/_start ircd_daemon_public publish
_message/], ], heap => { ircd => $ircd, config => $config }, );
sub ircd_daemon_public { my ($kernel, $heap, $user, $channel, $text) = @_[KERNEL,
HEAP, ARG0, ARG1, ARG2]; my $encoding = $heap->{config}{client_encoding}; : :
event ircd_daemon_public => sub { my ($user, $channel, $text) = get_args; my $encoding = $self->client_encoding; :
package XIRCD::Component::Time;use MooseX::POE;use XIRCD::Component;
with qw(XIRCD::Role);
use DateTime;
event start => sub { my $date = DateTime->now(time_zone => 'Asia/Tokyo'); publish_message 'time' => $date->strftime("%Y/%m/%d %H:%M:%S"); delay 'start', 10;};
1;
XIRCD に今出来ること
● Twitter IRC Gateway● Wassr IRC Gateway
これから出来るようになること
● iCal を読み込んで指定日時に表示する● RSS Feed を読み込んで表示● TODO を登録・管理できるようにする● etc...
join coderepos
● http://codereos.org/share/● XIRCD も coderepos で開発しています● Component のコミット、本体のコミットも大歓迎
ご清聴ありがとうございました