• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,889
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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