Slide 1

Slide 1 text

RubyϓϩάϥϚͷͨΊͷ Perl΢ΣϒΞϓϦέʔγϣϯ ։ൃೖ໳ 2011/10/14 YAPC::Asia Tokyo 2011 12೥5݄24೔໦༵೔

Slide 2

Slide 2 text

$ whoami • ௕Ӭ ݈հ • ࢗ਎ˑϒʔϝϥϯ • @kyanny 12೥5݄24೔໦༵೔

Slide 3

Slide 3 text

12೥5݄24೔໦༵೔

Slide 4

Slide 4 text

12೥5݄24೔໦༵೔

Slide 5

Slide 5 text

Perl => Ruby 12೥5݄24೔໦༵೔

Slide 6

Slide 6 text

Θ͔Βͳ͔ͬͨ͜ͱ • Ͳͷ Ruby Λબ΂͹͍͍ͷʁ • Rails Ҏ֎ͷબ୒ࢶ͸ʁ • ͭͬͨ͘ΞϓϦΛͲ͜Ͱެ։͢Δͷʁ 12೥5݄24೔໦༵೔

Slide 7

Slide 7 text

12೥5݄24೔໦༵೔

Slide 8

Slide 8 text

RubyϓϩάϥϚͷͨΊͷ Perl΢ΣϒΞϓϦέʔγϣϯ ։ൃೖ໳ 12೥5݄24೔໦༵೔

Slide 9

Slide 9 text

RubyʹΑΔ΢Σϒ։ൃ • Environment • Web Application Framework • Platform 12೥5݄24೔໦༵೔

Slide 10

Slide 10 text

Environment 12೥5݄24೔໦༵೔

Slide 11

Slide 11 text

Environment • Ͳͷ Ruby Λબ΂͹͍͍ͷʁ • ࠷৽൛͕ύοέʔδ؅ཧγεςϜͰΠϯε τʔϧͰ͖ͳ͍...ʁ 12೥5݄24೔໦༵೔

Slide 12

Slide 12 text

12೥5݄24೔໦༵೔

Slide 13

Slide 13 text

RVM • Ruby Version Manager • ෳ਺ͷ Ruby Λ੾Γସ͑ͯ࢖͑Δ • γεςϜͷ Ruby ͱ؀ڥΛ੾Γ཭͢ 12೥5݄24೔໦༵೔

Slide 14

Slide 14 text

RVM • ύοέʔδ؅ཧγεςϜʹґଘ͠ͳ͍ • ࠞͥΔͳةݥʂΛߟ͑ͣʹࡁΉ • શ෦ফͯ͠Ϧηοτ΋ָͪΜ 12೥5݄24೔໦༵೔

Slide 15

Slide 15 text

$ rvm install 1.9.2 $ rvm use 1.9.2 $ rvm use system 12೥5݄24೔໦༵೔

Slide 16

Slide 16 text

Web Application Framework 12೥5݄24೔໦༵೔

Slide 17

Slide 17 text

Web Application Framework • Rails ͸ॏྔڃ • Rails Ҏ֎ͷબ୒ࢶ͸ʁ • Sinatra, Padrino, Ramaze, etc. 12೥5݄24೔໦༵೔

Slide 18

Slide 18 text

12೥5݄24೔໦༵೔

Slide 19

Slide 19 text

Sinatra • ΢ΣϒΞϓϦέʔγϣϯͷͨΊͷ DSL • ύοͱݟͰͳΜͱͳ͘Θ͔Δ (get ͱ͔) 12೥5݄24೔໦༵೔

Slide 20

Slide 20 text

require 'sinatra' get '/hi' do "Hello World!" end 12೥5݄24೔໦༵೔

Slide 21

Slide 21 text

Platform 12೥5݄24೔໦༵೔

Slide 22

Slide 22 text

Platform • Ϩϯλϧαʔόͩͱॏ͗͢Δ • ࣗ୐αʔόͱ͔ VPS ͱ͔໘౗͍͘͞ • Google AppEngine ͬΆ͍ͷͳ͍ʁ 12೥5݄24೔໦༵೔

Slide 23

Slide 23 text

12೥5݄24೔໦༵೔

Slide 24

Slide 24 text

Heroku • Rack ΞϓϦέʔγϣϯରԠͷ PaaS • CLI + Git 12೥5݄24೔໦༵೔

Slide 25

Slide 25 text

$ gem install heroku $ heroku create $ git push heroku master 12೥5݄24೔໦༵೔

Slide 26

Slide 26 text

s/Ruby/Perl/ 12೥5݄24೔໦༵೔

Slide 27

Slide 27 text

RubyϓϩάϥϚͷͨΊͷ Perl΢ΣϒΞϓϦέʔγϣϯ ։ൃೖ໳ 12೥5݄24೔໦༵೔

Slide 28

Slide 28 text

PerlʹΑΔ΢Σϒ։ൃ • Environment • Framework • Platform 12೥5݄24೔໦༵೔

Slide 29

Slide 29 text

Environment 12೥5݄24೔໦༵೔

Slide 30

Slide 30 text

Environment • 5.8.x ʹґଘͯ͠Δύοέʔδ͕ଟ͗͢ ͯΞοϓσʔτͰ͖ͳ͍Μ͚ͩͲ... • ඪ४ϞδϡʔϧΛ CPAN Πϯετʔϧ ͨ͠Β΁ΜʹͳΓ·ͨ͠ʼʻ 12೥5݄24೔໦༵೔

Slide 31

Slide 31 text

12೥5݄24೔໦༵೔

Slide 32

Slide 32 text

Perlbrew • RVM ͱಉ͡ • ෳ਺ͷ Perl Λ੾Γସ͑ͯ࢖͑Δ • γεςϜͷ Perl ͱ؀ڥΛ੾Γ཭͢ 12೥5݄24೔໦༵೔

Slide 33

Slide 33 text

Perlbrew • ύοέʔδ؅ཧγεςϜʹґଘ͠ͳ͍ • ࠞͥΔͳةݥʂΛߟ͑ͣʹࡁΉ • શ෦ফͯ͠Ϧηοτ΋ָͪΜ 12೥5݄24೔໦༵೔

Slide 34

Slide 34 text

$ perlbrew install perl-5.14.1 $ perlbrew switch perl-5.14.1 $ perlbrew switch /usr/bin/perl 12೥5݄24೔໦༵೔

Slide 35

Slide 35 text

Web Application Framework 12೥5݄24೔໦༵೔

Slide 36

Slide 36 text

Web Application Framework • Catalyst ͸௒ॏྔڃ • Catalyst Ҏ֎ͷબ୒ࢶ͸ʁ • Dancer, Mojolicious::Lite, Amon2::Lite, etc. 12೥5݄24೔໦༵೔

Slide 37

Slide 37 text

12೥5݄24೔໦༵೔

Slide 38

Slide 38 text

Mojolicious::Lite • Mojolicious ͷҰػೳ • ΢ΣϒΞϓϦέʔγϣϯͷͨΊͷ DSL • Sinatra ͱ (͍͍ͩͨ) ͦͬ͘Γ 12೥5݄24೔໦༵೔

Slide 39

Slide 39 text

use Mojolicious::Lite; get '/hi' => { text => 'Hello World!' }; app->start; 12೥5݄24೔໦༵೔

Slide 40

Slide 40 text

Platform 12೥5݄24೔໦༵೔

Slide 41

Slide 41 text

Platform • CGI ͳΒϨϯλϧαʔόͰ΋ಈ͕͘... • ੲ͸ mod_perl, FastCGI ͕ఆ൪ͩͬͨ • PSGI ʹରԠͨ͠ Heroku ͸ͳ͍ͷʁ 12೥5݄24೔໦༵೔

Slide 42

Slide 42 text

12೥5݄24೔໦༵೔

Slide 43

Slide 43 text

DotCloud • PSGI ΞϓϦέʔγϣϯରԠͷ PaaS • CLI + Git, Mercurial • YAPC::Asia Tokyo 2011 Sponsor :) 12೥5݄24೔໦༵೔

Slide 44

Slide 44 text

$ sudo easy_install pip && sudo pip install dotcloud $ dotcloud create myapp $ dotcloud push myapp 12೥5݄24೔໦༵೔

Slide 45

Slide 45 text

·ͱΊ 12೥5݄24೔໦༵೔

Slide 46

Slide 46 text

Environment • RVM • Perlbrew • ؀ڥΛ੾Γ཭͢ʂ 12೥5݄24೔໦༵೔

Slide 47

Slide 47 text

$ rvm install 1.9.2 $ rvm use 1.9.2 $ rvm use system 12೥5݄24೔໦༵೔

Slide 48

Slide 48 text

$ perlbrew install perl-5.14.1 $ perlbrew switch perl-5.14.1 $ perlbrew switch /usr/bin/perl 12೥5݄24೔໦༵೔

Slide 49

Slide 49 text

Web Application Framework • Sinatra • Mojolicious::Lite • ΢ΣϒΞϓϦέʔγϣϯͷͨΊͷ DSL 12೥5݄24೔໦༵೔

Slide 50

Slide 50 text

require 'sinatra' get '/hi' do "Hello World!" end 12೥5݄24೔໦༵೔

Slide 51

Slide 51 text

use Mojolicious::Lite; get '/hi' => { text => 'Hello World!' }; app->start; 12೥5݄24೔໦༵೔

Slide 52

Slide 52 text

Platform • Heroku • DotCloud • ந৅ԽϨΠϠʹରԠͨ͠ PaaS 12೥5݄24೔໦༵೔

Slide 53

Slide 53 text

$ gem install heroku $ heroku create $ git push heroku master 12೥5݄24೔໦༵೔

Slide 54

Slide 54 text

$ sudo easy_install pip && sudo pip install dotcloud $ dotcloud create myapp $ dotcloud push myapp 12೥5݄24೔໦༵೔

Slide 55

Slide 55 text

• ಉ͡Α͏ͳ໰୊ʹ͸ • ಉ͡Α͏ͳղ͕͋Δ • (Ruby|Perl) ΋ѱ͘ͳ͍Αʂ Ruby — Perl 12೥5݄24೔໦༵೔

Slide 56

Slide 56 text

CM 12೥5݄24೔໦༵೔

Slide 57

Slide 57 text

We’re Hiring! 12೥5݄24೔໦༵೔

Slide 58

Slide 58 text

12೥5݄24೔໦༵೔

Slide 59

Slide 59 text

12೥5݄24೔໦༵೔

Slide 60

Slide 60 text

Thank you! 12೥5݄24೔໦༵೔