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 単位やテーマ毎にチャンネルが
●   気軽に参加するべき
●   RO...
IRC を便利に使うためのツール

●   LimeChat
●   tiarra
●   mobirc
●   etc ...
LimeChat

●   Windows, Mac で使える IRC Client
●   現在も継続的に開発が進んでいる
tiarra

●   IRC Proxy
●   複数の IRC Server に接続して、 1 つの IRC
    Server で見られる
●   Tiarra に client が join していない間も接続
    を維持してロギ...
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 は各チャンネ...
POE::Session->create(
     package_states => [
        __PACKAGE__, [qw/_start ircd_daemon_public publish
  _message/],
  ...
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 ...
XIRCD に今出来ること

●   Twitter IRC Gateway
●   Wassr IRC Gateway
これから出来るようになること

●   iCal を読み込んで指定日時に表示する
●   RSS Feed を読み込んで表示
●   TODO を登録・管理できるようにする
●   etc...
join coderepos

●   http://codereos.org/share/
●   XIRCD も coderepos で開発しています
●   Component のコミット、本体のコミットも
    大歓迎
ご清聴ありがとうございました
Upcoming SlideShare
Loading in...5
×

Xircd Yapcasia2008

2,985

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,985
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Xircd Yapcasia2008"

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

    Clipping is a handy way to collect important slides you want to go back to later.

×