SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
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 のコミット、本体のコミットも
    大歓迎
ご清聴ありがとうございました

Más contenido relacionado

La actualidad más candente

スケールするiPhone/Smart Phoneビジネス
スケールするiPhone/Smart PhoneビジネススケールするiPhone/Smart Phoneビジネス
スケールするiPhone/Smart PhoneビジネスShinichi Takamiya
 
مقدمة عن أندرويد
مقدمة عن أندرويدمقدمة عن أندرويد
مقدمة عن أندرويدahmed_hassan
 
Ubuntu Firefox オススメ・アドオン
Ubuntu Firefox オススメ・アドオンUbuntu Firefox オススメ・アドオン
Ubuntu Firefox オススメ・アドオンubon
 
Catalogue eng
Catalogue engCatalogue eng
Catalogue engchebdveri
 
網路、設計、使用者經驗
網路、設計、使用者經驗網路、設計、使用者經驗
網路、設計、使用者經驗Charles (XXC) Chen
 
Silent Running Side E Appendix
Silent Running Side E AppendixSilent Running Side E Appendix
Silent Running Side E AppendixShunsaku Kudo
 

La actualidad más candente (8)

スケールするiPhone/Smart Phoneビジネス
スケールするiPhone/Smart PhoneビジネススケールするiPhone/Smart Phoneビジネス
スケールするiPhone/Smart Phoneビジネス
 
مقدمة عن أندرويد
مقدمة عن أندرويدمقدمة عن أندرويد
مقدمة عن أندرويد
 
Ubuntu Firefox オススメ・アドオン
Ubuntu Firefox オススメ・アドオンUbuntu Firefox オススメ・アドオン
Ubuntu Firefox オススメ・アドオン
 
Catalogue eng
Catalogue engCatalogue eng
Catalogue eng
 
網路、設計、使用者經驗
網路、設計、使用者經驗網路、設計、使用者經驗
網路、設計、使用者經驗
 
Silent Running Side E Appendix
Silent Running Side E AppendixSilent Running Side E Appendix
Silent Running Side E Appendix
 
Gpl 과 Ccl
Gpl 과  CclGpl 과  Ccl
Gpl 과 Ccl
 
Ar10 pa-004
Ar10 pa-004Ar10 pa-004
Ar10 pa-004
 

Similar a Xircd Yapcasia2008

P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SDJesse Vincent
 
Peeling The Onion For Ipdc Forum09 Mix Ver1
Peeling The Onion For Ipdc Forum09 Mix Ver1Peeling The Onion For Ipdc Forum09 Mix Ver1
Peeling The Onion For Ipdc Forum09 Mix Ver1hutuworm
 
Open Source Type Pad Mobile
Open Source Type Pad MobileOpen Source Type Pad Mobile
Open Source Type Pad MobileHiroshi Sakai
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705Azerbaijan Laws
 
Webken 03: Project Design for Optimaizing User Experience
Webken 03: Project Design for Optimaizing User ExperienceWebken 03: Project Design for Optimaizing User Experience
Webken 03: Project Design for Optimaizing User ExperienceNobuya Sato
 
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...devsumi2009
 
20090323 Phpstudy
20090323 Phpstudy20090323 Phpstudy
20090323 PhpstudyYusuke Ando
 
20090313 Cakephpstudy
20090313 Cakephpstudy20090313 Cakephpstudy
20090313 CakephpstudyYusuke Ando
 
20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)Hideki Yamane
 
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Yusuke Kawasaki
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来Hiromasa Oka
 
Linux Commands
Linux CommandsLinux Commands
Linux Commandsiwata
 
тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009Liudmila Li
 

Similar a Xircd Yapcasia2008 (20)

P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SD
 
Peeling The Onion For Ipdc Forum09 Mix Ver1
Peeling The Onion For Ipdc Forum09 Mix Ver1Peeling The Onion For Ipdc Forum09 Mix Ver1
Peeling The Onion For Ipdc Forum09 Mix Ver1
 
What Can Compilers Do for Us?
What Can Compilers Do for Us?What Can Compilers Do for Us?
What Can Compilers Do for Us?
 
Open Source Type Pad Mobile
Open Source Type Pad MobileOpen Source Type Pad Mobile
Open Source Type Pad Mobile
 
May POE
May POEMay POE
May POE
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
 
Webken 03: Project Design for Optimaizing User Experience
Webken 03: Project Design for Optimaizing User ExperienceWebken 03: Project Design for Optimaizing User Experience
Webken 03: Project Design for Optimaizing User Experience
 
20081123-web2.0class
20081123-web2.0class20081123-web2.0class
20081123-web2.0class
 
Implementing SSH in Java
Implementing SSH in JavaImplementing SSH in Java
Implementing SSH in Java
 
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
 
20090323 Phpstudy
20090323 Phpstudy20090323 Phpstudy
20090323 Phpstudy
 
20090313 Cakephpstudy
20090313 Cakephpstudy20090313 Cakephpstudy
20090313 Cakephpstudy
 
20210119 OCIJP#14 オラクル大橋資料
20210119 OCIJP#14 オラクル大橋資料20210119 OCIJP#14 オラクル大橋資料
20210119 OCIJP#14 オラクル大橋資料
 
20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)20090410 Gree Opentech Presentation (opening)
20090410 Gree Opentech Presentation (opening)
 
Why CouchDB
Why CouchDBWhy CouchDB
Why CouchDB
 
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
 
Ribbit
RibbitRibbit
Ribbit
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
 
тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009
 

Más de kan

自己紹介
自己紹介自己紹介
自己紹介kan
 
目指せ、テストカバレッジ100%
目指せ、テストカバレッジ100%目指せ、テストカバレッジ100%
目指せ、テストカバレッジ100%kan
 
Perlで「変なもの」を作ってみた
Perlで「変なもの」を作ってみたPerlで「変なもの」を作ってみた
Perlで「変なもの」を作ってみたkan
 
炊込みご飯の話
炊込みご飯の話炊込みご飯の話
炊込みご飯の話kan
 
Prettyfs
PrettyfsPrettyfs
Prettyfskan
 
イントラの中のWiki
イントラの中のWikiイントラの中のWiki
イントラの中のWikikan
 
MogileFSの利用と高速化
MogileFSの利用と高速化MogileFSの利用と高速化
MogileFSの利用と高速化kan
 

Más de kan (7)

自己紹介
自己紹介自己紹介
自己紹介
 
目指せ、テストカバレッジ100%
目指せ、テストカバレッジ100%目指せ、テストカバレッジ100%
目指せ、テストカバレッジ100%
 
Perlで「変なもの」を作ってみた
Perlで「変なもの」を作ってみたPerlで「変なもの」を作ってみた
Perlで「変なもの」を作ってみた
 
炊込みご飯の話
炊込みご飯の話炊込みご飯の話
炊込みご飯の話
 
Prettyfs
PrettyfsPrettyfs
Prettyfs
 
イントラの中のWiki
イントラの中のWikiイントラの中のWiki
イントラの中のWiki
 
MogileFSの利用と高速化
MogileFSの利用と高速化MogileFSの利用と高速化
MogileFSの利用と高速化
 

Último

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Último (20)

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Xircd Yapcasia2008

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