2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $...

58
!"#$% '%()*) !"#$ &'(') *'+,*-./0,10.2 1 Sunday, August 28, 2011

Transcript of 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $...

Page 1: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

!"#$%&'%()*)!"#$%&'(')*'+,*-./0,10.2

1Sunday, August 28, 2011

Page 2: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

2Sunday, August 28, 2011

Page 3: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

3Sunday, August 28, 2011

Page 4: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

34/.).5)0,6%7,/8#98:..;

4Sunday, August 28, 2011

Page 5: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

37,/8#98:..;<

3はー・おぅ・くー;<

4Sunday, August 28, 2011

Page 6: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

37,/8#98:..;%@*%>2,/@0')%*?B+,1

3h!r-ó"-ku:;=)%=4>%-./2'?$%@?%@*A

5Sunday, August 28, 2011

Page 7: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

7??(ACC,)1D@:@(,6@'1./ECD@:@CF@+,A=4>GH.D,+G07'/?GIJJK1()E

h!r-ó"-ku?

6Sunday, August 28, 2011

Page 8: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

&'('),*,%0')L?%(/.).5)0,%@?%(/.(,/+B1%%"7,%),'/,*?%*.5)6%2'B%M,A

“はろぅく”7Sunday, August 28, 2011

Page 9: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

N.$%@?%*?@++%*.5)6*%-5))B%-./%&'('),*,1%O7'?%'M.5?%/,'6@)E%+@:,%37,/;%P%3.:5;<%

“はーおく”

8Sunday, August 28, 2011

Page 10: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

O,++$%M,??,/$%2'BM,1%%Q5?%@?L*%-'/%-/.2%?7,%./@E@)'+%*.5)61%R.%B.5%:).D%@?%0.2,*%-/.2%39,/.;%P%39'@:5;<%

“ひーろーく”

9Sunday, August 28, 2011

Page 11: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

N.$%=?%*.5)6*%*?5(@61%%O7B%6.)L?%D,%S5*?%/,'6%'*%@?%@*$%@)%T.2')@U,6%&'('),*,%D'B<

10Sunday, August 28, 2011

Page 12: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

11Sunday, August 28, 2011

Page 13: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

+,,#

12Sunday, August 28, 2011

Page 14: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

13Sunday, August 28, 2011

Page 15: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

14Sunday, August 28, 2011

Page 16: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

+,,#

15Sunday, August 28, 2011

Page 17: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

16Sunday, August 28, 2011

Page 18: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

17Sunday, August 28, 2011

Page 19: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

18Sunday, August 28, 2011

Page 20: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

-.)/0&+0",1%"/

19Sunday, August 28, 2011

Page 21: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

V(6'?,*4'E,/

R,(+.B

W.)@?./

W'@)?'@)

20Sunday, August 28, 2011

Page 22: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

20Sunday, August 28, 2011

Page 23: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

$ heroku create$ git push heroku master

21Sunday, August 28, 2011

Page 24: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

!"#$%#"&'!#(&)"*+')"*'*(,-.'./,#"$+/0&'(0.'",/*(&-"0'")'1/2'(,,3

22Sunday, August 28, 2011

Page 25: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

J

KJJJJ

XJJJJJ

XKJJJJ

R,(+.B,6%>((*

23Sunday, August 28, 2011

Page 26: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

2$3&4"5675"1&45)18".9

24Sunday, August 28, 2011

Page 27: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

4/.E/'22@)E%Y')E5'E,*

COBOL PL/I

Fortran

Eiffel

Java

Lisp

Prolog

Pascal

Ada LogoC C++

C#Lua

Erlang

PythonPHP Smalltalk

Objective-C

Ruby

JavaScript

Clojure

Node.js

Perl

GoScala

Basic

ALGOL

Haskell

1993

1970

1954

1959 1958

1958

1964

1964

1968

1970

1971

1971

1983

1983

1979

1987

19861987

1991

1995

1995

1995

2000

2007

1993

2007

2003

2009

1986

25Sunday, August 28, 2011

Page 28: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

:31&;1).130&*%1$&)&<)/7=)73

4/.E/'22,/*A

!""Y')E5'E,%*B)?'Z%')6%+@M/'/@,*

!"""..+*

!""F/'2,D./:*

!""R,(+.B2,)?%2,?7.6*

!""!.225)@?@,*

26Sunday, August 28, 2011

Page 29: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

:31&;1).130&*%1$&)&<)/7=)73

!.2(')@,*%M5@+6%5(A%

!""!.6,%M'*@*

!""=)-/'*?/50?5/,

!""R,H,+.(2,)?C#(,/'?@.)%4.+@0@,*

!""[).D+,6E,*

27Sunday, August 28, 2011

Page 30: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

4/.E/'2@)E%Y')E5'E,*%'/,%\@+.*

28Sunday, August 28, 2011

Page 31: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

2$3&<)*&"8&1$3&D/#1.=93/1

:%>3&)&#9)55&?"6&)&$)993.@&)/0&$3&*%55&A/0&1$)1&3>3.61$%/7&$3&3/B"=/13.#&/330#&,"=/0%/7C

— Abraham Kaplan, “The Conduct of Inquiry”, 1964

D8&)55&6"=&$)>3&%#&)&$)993.@&3>3.61$%/7&5""(#&5%(3&)&/)%5— Abraham Maslow, “The Psychology of Science”, 1966

!“

!“

29Sunday, August 28, 2011

Page 32: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

2$3&E"03./&+73F&4"5675"1

V?@+@U,%2')B%+')E5'E,*%,],0?@H,+B

V*,%?7,%T@E7?%"..+%-./%?7,%&.M

30Sunday, August 28, 2011

Page 33: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

2$3&E"03./&+73F&4"5675"1

W.6,/)%4/.E/'2@)E%Y')E5'E,*%'/,A

!%^'*B%?.%F@)6C[).D%

!%^'*?B%?.%>00,**%

!%^'*B%?.%=)*?'++

31Sunday, August 28, 2011

Page 34: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

"7,%W@**@)E%4@,0,A%=)-/'*?/50?5/,

R@H,/*,%@)-/'*?/50?5/,%@)%4.+BE+.?%,)H@/.)2,)?

!%R,(+.B2,)?

!%\0'+@)E

!%W.)@?./@)E

!%W')'E,2,)?

32Sunday, August 28, 2011

Page 35: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

$ mkdir hello$ cd hello$ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb$ echo -e “source :rubyforge\\ngem ‘sinatra’, ‘1.1.0’\\ngem ’thin’, ‘1.2.7’” > Gemfile

$ echo -e “web: bundle exec ruby hello.rb -p \$PORT” > Procfile

$ git init$ git add .$ git commit -m ‘simple hello’

$ heroku create --stack cedar$ git push heroku master$ heroku open

G.3)13&;%/)1.)&+,,

33Sunday, August 28, 2011

Page 36: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

G.3)13&;%/)1.)&+,,

34Sunday, August 28, 2011

Page 37: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

$ mkdir hello$ cd hello$ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb$ echo -e “source :rubyforge\\ngem ‘sinatra’, ‘1.1.0’\\ngem ’thin’, ‘1.2.7’” > Gemfile

$ echo -e “web: bundle exec ruby hello.rb -p \$PORT” > Procfile

$ git init$ git add .$ git commit -m ‘simple hello’

$ heroku create --stack cedar$ git push heroku master$ heroku open

G.3)13&;%/)1.)&+,,Write your code

35Sunday, August 28, 2011

Page 38: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

$ mkdir hello$ cd hello$ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb$ echo -e “source :rubyforge\\ngem ‘sinatra’, ‘1.1.0’\\ngem ’thin’, ‘1.2.7’” > Gemfile

$ echo -e “web: bundle exec ruby hello.rb -p \$PORT” > Procfile

$ git init$ git add .$ git commit -m ‘simple hello’

$ heroku create --stack cedar$ git push heroku master$ heroku open

G.3)13&;%/)1.)&+,,

Declare process type

36Sunday, August 28, 2011

Page 39: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

$ mkdir hello$ cd hello$ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb$ echo -e “source :rubyforge\\ngem ‘sinatra’, ‘1.1.0’\\ngem ’thin’, ‘1.2.7’” > Gemfile

$ echo -e “web: bundle exec ruby hello.rb -p \$PORT” > Procfile

$ git init$ git add .$ git commit -m ‘simple hello’

$ heroku create --stack cedar$ git push heroku master$ heroku open

G.3)13&;%/)1.)&+,,

Store your app in Git

37Sunday, August 28, 2011

Page 40: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

$ mkdir hello$ cd hello$ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb$ echo -e “source :rubyforge\\ngem ‘sinatra’, ‘1.1.0’\\ngem ’thin’, ‘1.2.7’” > Gemfile

$ echo -e “web: bundle exec ruby hello.rb -p \$PORT” > Procfile

$ git init$ git add .$ git commit -m ‘simple hello’

$ heroku create --stack cedar$ git push heroku master$ heroku open

G.3)13&;%/)1.)&+,,

Deploy to Heroku

38Sunday, August 28, 2011

Page 41: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

$ mkdir hello$ cd hello$ vi hello.java$ vi pom.xml$ echo -e target > .gitignore

$ echo -e “web: sh target/bin/webapp” > Procfile

$ git init$ git add .$ git commit -m ‘simple hello’

$ heroku create --stack cedar$ git push heroku master$ heroku open

G.3)13&H)>)&+,,

39Sunday, August 28, 2011

Page 42: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

$ mkdir hello$ cd hello$ vi hello.java$ vi pom.xml$ echo -e target > .gitignore

$ echo -e “web: sh target/bin/webapp” > Procfile

$ git init$ git add .$ git commit -m ‘simple hello’

$ heroku create --stack cedar$ git push heroku master$ heroku open

G.3)13&H)>)&+,,

40Sunday, August 28, 2011

Page 43: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

$ mkdir hello$ cd hello$ vi hello.js$ vi package.json$ echo -e node_modules > .gitignore

$ echo -e “web: node hello.js” > Procfile

$ git init$ git add .$ git commit -m ‘simple hello’

$ heroku create --stack cedar$ git push heroku master$ heroku open

G.3)13&I"03CJ#&+,,

41Sunday, August 28, 2011

Page 44: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

K33,&K%>3

42Sunday, August 28, 2011

Page 45: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

L".731&;3.>3.#

M=/&+/61$%/7

;33&N>3.61$%/7

2.=#1&O&E)/)73

43Sunday, August 28, 2011

Page 46: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

L".731&;3.>3.#

F.05*%XJJ_%.)%0.6,F5++B%2')'E,6%(+'?-./2

\@)E+,%E@?%(5*7%6,(+.B*%'((*

44Sunday, August 28, 2011

Page 47: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

L".731&;3.>3.#

$ heroku createCreated sushi.herokuapp.com | [email protected]:sushi.git

$ git push heroku master-----> Heroku receiving push-----> Rails app detected-----> Compiled slug size is 8.0MB-----> Launching... done, v1http://sushi.herokuapp.com deployed to Heroku

45Sunday, August 28, 2011

Page 48: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

M=/&+/61$%/7

T5MB$%N.6,1S*$%!+.S5/,$%&'H'>)B%?B(,%.-%D,M%6B).

>)B%?B(,%.-%M'0:E/.5)6%6B).\0'+,%6B).*%,'*@+B

46Sunday, August 28, 2011

Page 49: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

M=/&+/61$%/7

$ cat Procfileweb:! bundle exec rails server -p $PORTworker:! bundle exec rake resque:work QUEUE=*urgentworker:! bundle exec rake resque:work QUEUE=urgentclock:! bundle exec clockwork clock.rb

$ heroku scale web=4 worker=2 urgentworker=1 clock=1Scaling processess... done

47Sunday, August 28, 2011

Page 50: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

V)@`,6%+.EE@)Ea%>((%.(,/'?@.)*

a%>62@)@*?/'?@H,%0.22')6*a%>++%@)-/'*?/50?5/,

T,'+%?@2,%RB).%@)-./2'?@.)

;33&N>3.61$%/7

48Sunday, August 28, 2011

Page 51: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

;33&N>3.61$%/7

$ heroku psProcess State Command----------- ----------- -----------------------------web.1 up for 6s bundle exec rails serverworker.1 up for 5s bundle exec rake resque:work

$ heroku logs --tail2011-05-31 04:04:48 heroku[router] GET / dyno=web.12011-05-31 04:04:48 app[web.1] 66.75.123.123 - -

49Sunday, August 28, 2011

Page 52: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

2.=#1&O&E)/)73

^/.*@.)8T,*@*?')0,!.)?/.+%\5/-'0,%>4=*

IbZc%(+'?-./2%2.)@?./@)E

50Sunday, August 28, 2011

Page 53: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

+00P"/#

51Sunday, August 28, 2011

Page 54: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

Dyno Manifold

Logplex

Control Surface APIs

Routing

Dynos Process Types

52Sunday, August 28, 2011

Page 55: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

+

53Sunday, August 28, 2011

Page 56: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

54Sunday, August 28, 2011

Page 57: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

Q3."(=&R&;LKG

"'*?,*%E/,'?%C%Y,**%`++@)E

!.)*52,%?7,%T@07%F./0,%>4=

R,H,+.(,/%T5MB%\R[%-./%@[email protected]'?@0%'00,**

W')B%'((+@0'?@.)*%'+/,'6B%M5@+?%?.6'B

55Sunday, August 28, 2011

Page 58: 2011.rubyworld-conf.org2011.rubyworld-conf.org/files/slides/Key-3.pdf · $ mkdir hello $ cd hello $ echo -e “require ‘sinatra’\\nget ‘/’ do \“Hello\” end” > hello.rb

56Sunday, August 28, 2011