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

Post on 19-May-2020

8 views 0 download

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

Intro to Rubyand it’s community

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

Justin Loveslides@wondible.com

http://wondible.com

@wondible

Assistant Organizer

Ruby Education

Ruby Conferences

Outline

•Community

•Language

•Environment

Community

Community

•People

•Conferences

•Groups

People

•Creative

•Fun-loving

•Passionate

MatzYukihiro Matsumoto

Creator of Ruby

Japan

Optimized for

Programmer Happiness

MINASWAN

Matz Is Nice And So We Are Nice

Creative

_Why The Lucky Stiff

Identity Unknown

@_why

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

Why’s {poignant} Guide

PoofAugust 19, 2009, “Why Day”

Hackety Hack

Shoes

TryRuby.org

Fun Loving

@tenderloveAaron Patterson

Core Contributor

•Ruby

•Rails

Optimizing Rails

Healthy Hacker 5k

@tenderloveAaron Patterson

Passionate

Giles Bowkett

RubyFringe

TestingAgile

Uncle Bob Martin

Cory Haines

MINASWAN

Kids Track

RailsBridge

RubyNuby

Code Academy

Ruby Community

22 Conferences

in Three months

3 in one weekend

Downtown

Hack Night

Elmhurst

Language

•OOP

•Dynamic

•Cool Stuff

Perl

(With Syntax)

Sigils

$$global

@@instance

::symbol

[:literal, ‘array’]

{:literal => ‘hash’}

/Regular Expressions/

“string #{inlining}”

<<HERE

docs

HERE

unless true

stuff

end

postfix if ruby?

play while hp > 0

case language

when ‘ruby’; ‘rock’

when ‘C’; ‘SRSLY?’

when ‘COBOL’; ‘GET OUT’

else ‘huh?’

end

for i in [1,2,3]

puts i

end

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

puts i

}

But you never use it

Exceptionsbegin

raise “hell”

rescue

...

end

require ‘foo’

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

require m

}

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

require m

}

optional parentheses( )

OOP

Perl, more OO then Python

class Foo

...

end

class Foo < Blarg

...

end

module ChunkyBacon

end

class Foo

include ChunkyBacon

include Enumerable

end

class Foo

def bleep

...

end

end

x = Foo.new

x.bleep ()

Smalltalk

Class.new

Dynamic

Duck Typing

x.kind_of? Foo

x.respond_to? :bleep

method_missing

Monkey Patching

class String

def to_ps

...

end

end

2.days.from_now

eval

Cool Stuff

Closure

lambda {|x| ... }

Continuation

callcc {|cont|

...

cont.call

}

Lisp

use { blocks }

other do

blocks

end

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

require m

}

DSLDomain Specific Language

Environment

•Learning

•Versions

•Tools

•Jobs

Learning

Ruby-Lang.org

Why’s {poignant} Guide

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

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

TryRuby.org

ExplainRuby.net

Rubular.com

Confreaks.net

getConfEd.com

Ruby Compendium

Ruby-Toolbox.com

Versions

1.8

1.9

MRI

Matz’RubyInterpreter

Rubinius

Tools

RubyIntallerRailsInstaller

pik

RubyGems

Git

Testing

Travis

Jobs

Dave Hoover

jobs.chicagoruby.org

Dave Hoover

Conclusion

Community

Language

Environment