• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Xircd Yapcasia2008
 

Xircd Yapcasia2008

on

  • 4,107 views

 

Statistics

Views

Total Views
4,107
Views on SlideShare
4,106
Embed Views
1

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Xircd Yapcasia2008 Xircd Yapcasia2008 Presentation 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(quot;%Y/%m/%d %H:%M:%Squot;); 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 のコミット、本体のコミットも 大歓迎
    • ご清聴ありがとうございました