intro to ruby · •passionate. matz yukihiro matsumoto creator of ruby. japan. optimized for...
TRANSCRIPT
Intro to Rubyand it’s community
http://pinboard.in/u:wondible/t:ruby/t:introJustin Love
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