xircd yapcasia2008

Post on 28-May-2015

2.944 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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 のコミット、本体のコミットも大歓迎

ご清聴ありがとうございました

top related