Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for...

145
Intro to Ruby and it’s community http://pinboard.in/u:wondible/t:ruby/t:intro Justin Love

Transcript of Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for...

Page 1: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Intro to Rubyand it’s community

http://pinboard.in/u:wondible/t:ruby/t:introJustin Love

Page 3: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Assistant Organizer

Page 4: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Ruby Education

Page 5: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Ruby Conferences

Page 6: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Outline

•Community

•Language

•Environment

Page 7: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Community

Page 8: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Community

•People

•Conferences

•Groups

Page 9: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

People

•Creative

•Fun-loving

•Passionate

Page 10: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

MatzYukihiro Matsumoto

Creator of Ruby

Page 11: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Japan

Page 12: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Optimized for

Programmer Happiness

Page 13: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

MINASWAN

Page 14: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Matz Is Nice And So We Are Nice

Page 15: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Creative

Page 16: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

_Why The Lucky Stiff

Identity Unknown

Page 17: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

@_why

when you don't create things, you become defined by your tastes rather than ability. your tastes only narrow & exclude people. so create.

Page 18: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Why’s {poignant} Guide

Page 19: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 20: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 21: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

PoofAugust 19, 2009, “Why Day”

Page 22: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Hackety Hack

Page 23: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Shoes

Page 24: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

TryRuby.org

Page 25: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Fun Loving

Page 26: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

@tenderloveAaron Patterson

Page 27: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Core Contributor

•Ruby

•Rails

Page 28: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Optimizing Rails

Page 29: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Healthy Hacker 5k

Page 30: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

@tenderloveAaron Patterson

Page 31: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Passionate

Page 32: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Giles Bowkett

Page 33: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

RubyFringe

Page 34: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

TestingAgile

Page 35: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Uncle Bob Martin

Page 36: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Cory Haines

Page 37: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

MINASWAN

Page 38: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Kids Track

Page 39: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

RailsBridge

Page 40: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

RubyNuby

Page 41: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Code Academy

Page 42: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Ruby Community

Page 43: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

22 Conferences

in Three months

Page 44: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

3 in one weekend

Page 45: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 46: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 47: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 48: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 49: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Downtown

Page 50: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Hack Night

Page 51: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Elmhurst

Page 52: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Language

•OOP

•Dynamic

•Cool Stuff

Page 53: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Perl

Page 54: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

(With Syntax)

Page 55: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Sigils

Page 56: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

$$global

Page 57: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

@@instance

Page 58: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

::symbol

Page 59: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

[:literal, ‘array’]

Page 60: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

{:literal => ‘hash’}

Page 61: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

/Regular Expressions/

Page 62: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

“string #{inlining}”

Page 63: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

<<HERE

docs

HERE

Page 64: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

unless true

stuff

end

Page 65: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

postfix if ruby?

play while hp > 0

Page 66: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

case language

when ‘ruby’; ‘rock’

when ‘C’; ‘SRSLY?’

when ‘COBOL’; ‘GET OUT’

else ‘huh?’

end

Page 67: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

for i in [1,2,3]

puts i

end

Page 68: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

[1,2,3].each {|i|

puts i

}

But you never use it

Page 69: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Exceptionsbegin

raise “hell”

rescue

...

end

Page 70: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

require ‘foo’

Page 71: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

[‘a’, ‘b’].each {|m|

require m

}

Page 72: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

%w{a b}.each {|m|

require m

}

Page 73: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

optional parentheses( )

Page 74: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

OOP

Page 75: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Perl, more OO then Python

Page 76: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

class Foo

...

end

Page 77: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

class Foo < Blarg

...

end

Page 78: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

module ChunkyBacon

end

class Foo

include ChunkyBacon

include Enumerable

end

Page 79: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

class Foo

def bleep

...

end

end

Page 80: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

x = Foo.new

Page 81: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

x.bleep ()

Page 82: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Smalltalk

Page 83: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Class.new

Page 84: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 85: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Dynamic

Page 86: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Duck Typing

Page 87: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

x.kind_of? Foo

Page 88: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

x.respond_to? :bleep

Page 89: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

method_missing

Page 90: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Monkey Patching

Page 91: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

class String

def to_ps

...

end

end

Page 92: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

2.days.from_now

Page 93: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

eval

Page 94: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Cool Stuff

Page 95: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Closure

lambda {|x| ... }

Page 96: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Continuation

callcc {|cont|

...

cont.call

}

Page 97: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Lisp

Page 98: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

use { blocks }

Page 99: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

other do

blocks

end

Page 100: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

[‘a’, ‘b’].each {|m|

require m

}

Page 101: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

DSLDomain Specific Language

Page 102: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Environment

•Learning

•Versions

•Tools

•Jobs

Page 103: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Learning

Page 104: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Ruby-Lang.org

Page 105: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Why’s {poignant} Guide

Page 106: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Ruby Koans[ ruby_koans ] $ ruby path_to_enlightenment.rb (in /Users/person/dev/ruby_koans) cd koans

Thinking AboutAsserts test_assert_truth has damaged your karma.

You have not yet reached enlightenment ... <false> is not true.

Please meditate on the following code: ./about_asserts.rb:10:in `test_assert_truth' path_to_enlightenment.rb:27

mountains are merely mountains

Page 107: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Ruby Warrior- turn 8 -

----

| |

| S|

|C@s>|

----

justin attacks forward and hits Sludge

Sludge takes 5 damage, 7 health power left

Sludge attacks left and hits justin

justin takes 3 damage, 11 health power left

Page 108: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

TryRuby.org

Page 109: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

ExplainRuby.net

Page 110: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Rubular.com

Page 111: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Confreaks.net

Page 112: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

getConfEd.com

Page 113: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Ruby Compendium

Page 114: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Ruby-Toolbox.com

Page 115: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Versions

Page 116: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

1.8

Page 117: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

1.9

Page 118: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

MRI

Matz’RubyInterpreter

Page 119: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 120: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Rubinius

Page 121: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 122: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 123: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 124: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 125: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Tools

Page 126: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 127: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

RubyIntallerRailsInstaller

pik

Page 128: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

RubyGems

Page 129: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Git

Page 130: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Testing

Page 131: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Travis

Page 132: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 133: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 134: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 135: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Jobs

Page 136: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Dave Hoover

Page 138: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

jobs.chicagoruby.org

Page 139: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”
Page 140: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Dave Hoover

Page 141: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Conclusion

Page 142: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Community

Page 143: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Language

Page 144: Intro to Ruby · •Passionate. Matz Yukihiro Matsumoto Creator of Ruby. Japan. Optimized for Programmer Happiness. MINASWAN. Matz Is Nice ... Poof August 19, 2009, “Why Day”

Environment