Slide 1

Slide 1 text

2012/09/28 YAPC ASIA TOKYO גࣜձࣾ͸ͯͳ େ੢߁༟JEPOJTIJ 3FENJOF$IBOͰ *3$͔ΒϓϩδΣΫτ؅ཧ

Slide 2

Slide 2 text

ɹJEPOJTIJେ੢߁༟ ɹ0/*4)* ɹ!ZBTVIJSP@POJTIJ ɹגࣜձࣾ͸ͯͳ ɹ͸ͯͳϒϩά

Slide 3

Slide 3 text

%FWFM,5:1SPG 5FYU)BUFOB 8FC&NCFE

Slide 4

Slide 4 text

͸ͯͳϒϩά

Slide 5

Slide 5 text

ϒϩάͷΞΠίϯΛઃఆͰ͖ΔΑ͏ʹ͠·ͨ͠ಡΜͩϒϩάͷʮl͜͜z͕͍͍ͳʯ Λॻ͖खʹ఻͑Α͏ʂɹҾ༻ελʔΛ͚ͭ΍͘͢͠·ͨ͠εϚʔτϑΥϯ༻ͷϒϩάฤूը໘Ͱࣸਅ Λ౤ߘͰ͖ΔΑ͏ʹ͠·ͨ͠.BSLEPXOه๏ʹରԠ͠·ͨ͠τοϓϖʔδ΍ ʮ஫໨ͷΤϯτϦʔʯͳͲΛϦχϡʔΞϧ͠·ͨ͠͸ͯͳελʔΛ͚ͭ΍͘͢ɺݟ΍͘͢ͳΔΑ͏ʹ มߋ͠·ͨ͠ฤूαΠυόʔʹʮ͏͝ϝϞషΓ෇͚ػೳʯΛ௥Ճ͠·ͨ͠αΠυ όʔʹʮ࠷ۙͷίϝϯτʯϞδϡʔϧΛ௥Ճ͠·ͨ͠ωοτͷ࿩୊͔ΒϒϩάΛॻ͍ͯΈ·ͤΜ͔ʁ ฤूαΠυόʔʹʮ͸ͯͳϒοΫϚʔΫషΓ෇͚ػೳʯΛ௥·ͨ͠എܠը૾ͷ܁Γฦ͠ͷઃఆͳ ͲɺσβΠϯɾΧελϚΠζػೳΛڧԽ͠·ͨ͠ϒϩάͷഎܠը૾ΛΞοϓϩʔυͰ͖ΔΑ͏ʹ͠· ͨ͠ϒϩάʹԿΛॻ͔͘ɺࣗ෼ͷπΠʔτ͔Β୳ͯ͠Έ·ͤΜ͔ʁฤूαΠυόʔʹ5XJUUFSషΓ ෇͚ػೳΛ௥Ճ͠·ͨ͠هࣄԼ෦෼ΛΧελϚΠζͰ͖ΔΑ͏ʹ͠·ͨ͠ػೳม ߋΞΫηεղੳػೳΛڧԽ͠·ͨ͠ϒϩάͷλΠτϧ෦෼ʹը૾ΛઃఆͰ͖ΔΑ͏ʹ͠·ͨ͠ "NB[PO঎඼঺հػೳΛ௥Ճ͠·ͨ͠ϒϩάͷϔομͱϑολΛΧελϚΠζͰ͖ ΔΑ͏ʹ͠·ͨ͠ػೳมߋ͸ͯͳϒϩά1SPͰಠࣗυϝΠϯΛઃఆͨ͠ࡍʹɺ͸ͯͳϒοΫϚʔΫ ͱ͸ͯͳελʔ΋Ҡߦ͢ΔͳͲͷػೳΛ௥Ճ͠·ͨ͠ػೳมߋαΠυόʔʮϓϩϑΟʔϧʯϞδϡ ʔϧʹࣗ༝هड़ཝΛઃ͚ΔͳͲػೳΛ௥Ճ͠·ͨ͠͸ͯͳμΠΞϦʔ͔Β͸ͯͳϒϩά΁ͷΠϯϙʔ τػೳΛ௥Ճ͠·ͨ͠هࣄ63-ΛΑΓॊೈʹઃఆͰ͖ΔػೳͳͲΛ௥Ճ͠·ͨ͠ ػೳมߋαΠυόʔͷʮϓϩϑΟʔϧʯϞδϡʔϧʹɺ֤छιʔγϟϧϝσΟΞͷϑΥϩʔϘλϯදࣔػೳΛ௥Ճ͠· ͨ͠ػೳมߋεϚʔτϑΥϯ౤ߘɾฤूػೳΛ௥Ճ͠ɺ؅ཧը໘ΛϦχϡʔΞϧ͠·ͨ͠ ίϝϯτঝೝػೳͳͲɺίϝϯτػೳΛڧԽ͠·ͨ͠ͱ΋ͩͪݶఆͳͲɺϒϩάͷ ެ։ൣғΛઃఆͰ͖ΔΑ͏ʹ͠·ͨ͠(PPHMF"OBMZUJDTରԠͳͲɺαΠτ؅ཧػೳΛ௥Ճ͠·͠ ͨϝʔϧͰهࣄ͕౤ߘͰ͖ΔػೳΛ௥Ճ͠·ͨ͠αΠυόʔϞδϡʔϧʮϦϯ Ϋʯʮ࠷৽هࣄʯͷػೳΛڧԽ͠·ͨ͠৽͍͠αΠυόʔϞδϡʔϧΛ௥Ճ͠ɺαΠυόʔฤूػೳ ΛڧԽ͠·ͨ͠֎෦αΠτຒΊࠐΈػೳΛڧԽ͠ɺ5XJUUFSͷπΠʔτͳͲΛ؆୯ʹషΕΔΑ͏ʹ͠ ·ͨ͠(PPHMF֤αʔϏεͷࣸਅ΍ಈըͳͲ͕؆୯ʹ঺հͰ͖ΔػೳΛ௥Ճ͠·ͨ͠ هࣄͷ౤ߘ೔࣌ΛมߋͰ͖ΔΑ͏ʹ͠·ͨ͠Ωϟϯϖʔϯ͸ͯͳϒϩάͷ༗ྉϓϥ ϯʮ͸ͯͳϒϩά1SPʯΛϦϦʔεɺ௕କ5γϟπͷϓϨθϯτΩϟϯϖʔϯΛ։࠵ʮهࣄΧςΰϦ ि࿈ଓ ৽ػೳ ϦϦʔε

Slide 6

Slide 6 text

3FENJOF wϓϩδΣΫτ؅ཧιϑτ΢ΣΞ w3VCZPO3BJMT wػೳ͕๛෋ wૢ࡞͕൥ࡶʢݸਓͷݟղͰ͢ʣ

Slide 7

Slide 7 text

3FENJOF8FC

Slide 8

Slide 8 text

wࠓ୭͕ԿΛ΍͍ͬͯΔ͔ՄࢹԽ w࿙ΕΛͳ͘͢ w؅ཧ͕໘౗ͰݏʹͳΒͳ͍ 1SPKFDU.BOBHFNFOU

Slide 9

Slide 9 text

wͱʹ͔͘؆୯ʹJTTVFొ࿥ w೔ৗ࢖͍ͬͯΔπʔϧ͔Β wϒϥ΢βͰ3FENJOF։͔ͳ͍ wଉΛ͢ΔΑ͏ʹJTTVFొ࿥ 1SPKFDU.BOBHFNFOU

Slide 10

Slide 10 text

*3$ w*OUFSOFU3FMBZ$IBU wTJODF 3'$ wރΕٕͨज़Ͱࣾ಺͕५͏ wࣾ಺*3$͸ΤϯδχΞͷ೔ৗ

Slide 11

Slide 11 text

hitode909: ϒϩάͰmarkdown࢖͍͍ͨ onishi: ࢖͍͍ͨʂRedmineʹొ࿥͠·͢ʂ onishi: Redmineʹొ࿥͠ͱ͍ͨΑʂ hitode909: ΍Γ·͢ɹ hitode909: ΍Γ·ͨ͠ɻϨϏϡʔ͓ئ͍͠·͢ onishi: ͸΍ʂϨϏϡʔ͠·ͨ͠ɻ໰୊ͳ͍Α hitode909: ͋Γ͕ͱ͏͍͟͝·͢ɻϦϦʔε͠·ͨ͠ UBMLPO*3$

Slide 12

Slide 12 text

3FDJQF w*3$αʔόʔ w3FENJOFαʔόʔ wઐ༻3FENJOFϢʔβʔ ؅ཧݖݶ w3&45"1*Λ༗ޮʹ͢Δ ؅ཧઃఆೝূ

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

3FENJOF$IBO use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host', irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook;

Slide 15

Slide 15 text

*3$$POpH use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host', irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook;

Slide 16

Slide 16 text

3FMBUJPOTIJQ use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host', irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook;

Slide 17

Slide 17 text

3FENJOF$POpH use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host', irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook;

Slide 18

Slide 18 text

3VO use Redmine::Chan; my $minechan = Redmine::Chan->new( irc_server => 'your.irc.host', irc_port => 6667, irc_password => 'your_irc_password', irc_channels => { '#channel' => { project_id => 1 }, }, redmine_url => 'http://your.redmine.host/', redmine_api_key => 'redmine_api_key', ); $minechan->cook; # run Ͱ΋Մ

Slide 19

Slide 19 text

.PEVMFT "OZ&WFOU*3$$MJFOU 8FC4FSWJDF4JNQMF

Slide 20

Slide 20 text

஫ҙ͜ͷޙɺ 1FSMͷίʔυ͸ ग़ͯདྷ·ͤΜ )08 50 64&

Slide 21

Slide 21 text

$SFBUF*TTVF onishi: minechan: YAPCࢿྉ࡞Δ minechan: https://your.redmine .host/issues/123 :[YAPCࢿྉ࡞Δ] [৽ن]

Slide 22

Slide 22 text

4IPX*TTVF onishi: #123 minechan: https://your.redmine .host/issues/123 :[YAPCࢿྉ࡞Δ] [৽ن]

Slide 23

Slide 23 text

"TTJHO onishi: #123 > motemen minechan: https://your.redmine .host/issues/123 :[YAPCࢿྉ࡞Δ] [motemen] [৽ن]

Slide 24

Slide 24 text

/PUF onishi: IE6͸ޙͰ֬ೝ͢Δ > #123 minechan: https://your.redmine .host/issues/123 :[YAPCࢿྉ࡞Δ] [motemen] [৽ن]

Slide 25

Slide 25 text

*TTVF$POEJUJPO "TTJHO MPHJOOBNF 4UBUVT TUBUVTOBNF 5SBDLFS USBDLFSOBNF %VF%BUF aE\^<>aE\ ^<>aE\ ^

Slide 26

Slide 26 text

$IBOHFBUPODF onishi: #1 όά ਐߦத 2012/9/28 minechan: https://your.redmine .host/issues/1 : [όά] [onishi] [ਐߦத] [2012-09-28]

Slide 27

Slide 27 text

$IBOHFBUPODF onishi: #1 όά ਐߦத 2012/9/28 minechan: https://your.redmine .host/issues/1 : [όά] [onishi] [ਐߦத] [2012-09-28] 5SBDLFS

Slide 28

Slide 28 text

$IBOHFBUPODF onishi: #1 όά ਐߦத 2012/9/28 minechan: https://your.redmine .host/issues/1 : [όά] [onishi] [ਐߦத] [2012-09-28] 4UBUVT

Slide 29

Slide 29 text

$IBOHFBUPODF onishi: #1 όά ਐߦத 2012/9/28 minechan: https://your.redmine .host/issues/1 : [όά] [onishi] [ਐߦத] [2012-09-28] %VF%BUF

Slide 30

Slide 30 text

"VUP$POpH wVTFSTKTPO wJTTVF@TUBUVTFTKTPO wUSBDLFSTKTPO

Slide 31

Slide 31 text

3FMPBE$POpH onishi: reload minechan: reloaded.

Slide 32

Slide 32 text

೔ৗͷϓϩδΣΫτ؅ཧ

Slide 33

Slide 33 text

 ৽ن  ਐߦத  ϨϏϡʔґཔ  ϨϏϡʔத  ϦϦʔε଴ͪ  ऴྃ ϨϏϡΞʔ ୲౰ऀ

Slide 34

Slide 34 text

3FENJOF$IBO ."/*"$4

Slide 35

Slide 35 text

HJUEJGGNBTUFSCSBODI $VTUPN'JFMET

Slide 36

Slide 36 text

$VTUPN'JFMET onishi: #123 origin/mybranch minechan: https://your.redmine .host/issues/123 : [mybranch] custom_field_prefix => { 2 => [qw(origin/)], # branch },

Slide 37

Slide 37 text

4.& hitode909: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ onishi: ͦΕΊͬͪΌ͑͑΍Μ onishi: minechan: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ minechan: https://redmine/issues/123 : [ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏]

Slide 38

Slide 38 text

4.& hitode909: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ onishi: ͦΕΊͬͪΌ͑͑΍Μ onishi: minechan: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ minechan: https://redmine/issues/123 : [ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏] ίϐϖ

Slide 39

Slide 39 text

 hitode909: ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏ onishi: ..ɹ minechan: https://redmine/issues/123 : [ण͕࢘ճΔΑ͏ʹ͠·͠ΐ͏]

Slide 40

Slide 40 text

.:"1*,&: onishi: aaa minechan: set key onishi : aaa QSJWNTHUPNJOFDIBO

Slide 41

Slide 41 text

$VTUPNJ[F status_commands => { 1 => [‘΍Ί·͢’], 2 => [‘΍Γ·͢’], 3 => [‘ϨϏϡʔ͓Ͷ͕͍͠·͢’], 4 => [‘ϨϏϡʔ͠·͢’], 5 => [‘ϨϏϡʔ͠·ͨ͠’], 6 => [‘ϦϦʔε͠·ͨ͠’], },  ৽ن  ਐߦத  ϨϏϡʔґཔ  ϨϏϡʔத  ϦϦʔε଴ͪ  ऴྃ

Slide 42

Slide 42 text

hitode909: ϒϩάͰmarkdown࢖͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 ΍Γ·͢ɹ hitode909: #123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ .BOBHFMJLFUBMLJOH

Slide 43

Slide 43 text

hitode909: ϒϩάͰmarkdown࢖͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 ΍Γ·͢ɹ hitode909: #123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲ*TTVFొ࿥ʳ .BOBHFMJLFUBMLJOH

Slide 44

Slide 44 text

hitode909: ϒϩάͰmarkdown࢖͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 ΍Γ·͢ɹ hitode909: #123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲਐߦதʳ .BOBHFMJLFUBMLJOH

Slide 45

Slide 45 text

hitode909: ϒϩάͰmarkdown࢖͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 ΍Γ·͢ɹ hitode909: #123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲϨϏϡʔ଴ͪʳ .BOBHFMJLFUBMLJOH

Slide 46

Slide 46 text

hitode909: ϒϩάͰmarkdown࢖͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 ΍Γ·͢ɹ hitode909: #123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲϦϦʔε଴ͪʳ .BOBHFMJLFUBMLJOH

Slide 47

Slide 47 text

hitode909: ϒϩάͰmarkdown࢖͍͍ͨ onishi: ..ɹ minechan: http://redmine/issues/123ɹ hitode909: #123 ΍Γ·͢ɹ hitode909: #123 ϨϏϡʔ͓ئ͍͠·͢ onishi: #123 ϨϏϡʔ͠·ͨ͠ hitode909: #123 ͋Γ͕ͱ͏͍͟͝·͢ ϦϦʔε͠·ͨ͠ ʲऴྃʳ .BOBHFMJLFUBMLJOH

Slide 48

Slide 48 text

·ͱΊ

Slide 49

Slide 49 text

OJDL*446& $SFBUF JE 4IPX JEBTTJOUSBDLFSTUBUVT EBUF 6QEBUF OPUFJE /PUF SFMPBE 3FMPBE  4.&

Slide 50

Slide 50 text

3FENJOF$IBOͰ w*TTVFʹؔ͢Δجຊૢ࡞Λ*3$্Ͱ w೔ৗͷϓϩδΣΫτ؅ཧΛ؆୯ʹ w؅ཧʹ൥Θ͞Εͣɺຊ࣭తͳ࢓ࣄΛ HJUIVCDPNPOJTIJ3FENJOF$IBO

Slide 51

Slide 51 text

ؓ࿩ ࠷ۙͷ͸ͯͳ

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

()&$IBO ͝ظ଴Լ͍͞

Slide 54

Slide 54 text

ਓࡐืू w͸ͯͳͰ͸શ৬छΛืू͍ͯ͠·͢ʂ w౦ژΦϑΟεͰ΋ΤϯδχΞ࠾༻ʂ wҰॹʹϒϩάΛ࡞Γ·͠ΐ͏ʂ www.hatena.ne.jp/company/staff

Slide 55

Slide 55 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠