SlideShare una empresa de Scribd logo
1 de 77
Descargar para leer sin conexión
How To Be Weird
The Idiomatic Ruby Ways
https://www.youtube.com/watch?v=5MgBikgcWnY
It takes 20 hours of deliberate practice to be reasonably good at something, anything.
The Algorithm of
Rapid Ruby Acquisition
1. Learn enough to self-correct
2. Practice at least 20 hours
Practice at least 20 hours
codeeval.com
The second step is easy. There are numerous online resources for you to practice. One example of them is codeeval.com
Learn enough to self-correct
listen to this talk
The first step, however, is easier. You only have to listen to this talk. 

That’s recursion right there
Learn enough to self-correct
• Assignment
• Naming
• Control Expressions
• Methods
Assignment
Weirdness #1
Parallel Assignment
a = 'foo'
b = 'bar'
c = 'baz'
d = 'foobar'
Instead of doing this:

You can do:
a, b, c, d = 'foo', 'bar', 'baz', 'foobar'
this:

but just because you can doesn’t mean you should: readability is bad
a = 'foo'
b = 'bar'
a, b = b, a
good 1: swap variable assignment
def multi_return
[1, 2]
end
a, b = multi_return
good 2: multiple return values from a method
Naming
Weirdness #2
Method names can end with ?s
they return a boolean
examples
• String#empty?
• String#include?
• String#start_with?
• String#end_with?
• Array#empty?
• Array#include?
• Range#include?
• Object#respond_to?
• Object#nil?
• Object#is_a?
Obejct#is_a? synonymous kind_of?/instance_of?
Control Expressions
Weirdness #3
everything has a Boolean value
Every expression in Ruby evaluates to an object, and every object has a Boolean value of either true or false? true and false are objects
if 0
puts “0 is true”
else
puts “0 is false”
end
what is the output?
Only two objects has a false
value, nil and false itself
Every expression in Ruby evaluates to an object, and every object has a Boolean value of either true or false? true and false are objects
Weirdness #4
if statements return a value
if(condition1) {
result = x;
} else if(condition2) {
result = y;
} else {
result = z;
}
In Java
if condition1:
result = x
elif condition2:
result = y
else:
result = z
In Python
In Ruby
if statements return a value
The evaluation of the last
executed statement.
result =
if condition1
x
elsif condition2
y
else:
z
end
In Ruby
Exercise
what is the value of result?
result =
if true
puts “hello”
“hello”
else
“world”
end
“hello”
what is the value of result?
result =
if false
“hello”
else
“world”
puts “world”
end
nil
The evaluation of the last
executed statement.
Weirdness #5
the unless keyword
if !condition
do_something
end
negative condition unless
unless condition
do_something
end
Observation:
Ruby cares about readability
so much so that
(Weirdness #6)
Ruby has modifier if/unless
so this is not good enough
if !condition
do_something
end
negative condition unless
unless condition
do_something
end
so this is not good enough
do_something if !condition
negative condition unless
do_something unless condition
this is

Question: which one is better? Choose unless over if with negative condition
Weirdness #7
iterators
iterators help you iterate
how to do an infinite loop?
iterators help you iterate
while(true) {
doSomething();
if(condition1) {
break;
}
if(condition2) {
continue;
}
}
In Java
while True:
do_something()
if condition1:
break
if condition2:
continue
In Python
loop do
do_something
break if condition1
next if condition2
end
In Ruby
loop is a method, not a keyword
loop do
do_something
break if condition1
next if condition2
end
Kernel#loop repeatedly executes the block.

We call this kind of ruby methods iterators. They take a block, and execute the block repeatedly.
how to do something a certain
number of times?
iterators help you iterate
for(int i = 0; i < 10; i++) {
doSomething();
}
In Java
for i in range(10):
do_something()
In Python
10.times do
something
end
In Ruby
10.times do |i|
puts i
end
5.upto(10) do |i|
puts i
end
10.downto(1) do |i|
puts i
end
Weirdness #8
iterators - Array and String
how to iterate an array?
iterators help you iterate
for(int i : a) {
doSomething(i);
}
In Java
for i in a:
do_something(i)
In Python
a.each do |i|
do_something(i)
end
In Ruby
demo

also demo each_with_index
how to iterate a String?
iterators help you iterate
In Java
String s = “hello";
for(int i = 0; i < s.length(); i++) {
System.out.println(s.charAt(i));
}
In Python
s = “hello"
for c in s:
print c
In Ruby
s = “hello"
s.each_char do |char|
puts char
end
demo

also demo: how to print index of each char
Methods
Weirdness #9
method calls
parenthesis are optional when
calling methods
puts “hello” puts(“hello”)
Omit parentheses when:

Omit parentheses around parameters for methods that are part of an internal DSL (e.g. Rake, Rails, RSpec), 

methods that have "keyword" status in Ruby (e.g. attr_reader, puts) and attribute access methods. Use parentheses around the arguments of all other method
invocations.
omit parentheses when:
• there are no arguments
• the method is part of internal DSL
• the method has “keyword status”
attr_reader, puts, print

Omit parentheses when:

Omit parentheses around parameters for methods that are part of an internal DSL (e.g. Rake, Rails, RSpec), 

methods that have "keyword" status in Ruby (e.g. attr_reader, puts) and attribute access methods. Use parentheses around the arguments of all other method
invocations.
Weirdness #10
methods can take blocks
a lot of ruby methods take blocks
add 1 to every element in an array
In Java
int[] a = {1, 2, 3};
for(int i = 0; i < a.length; i++) {
a[i]++;
}
In Python
a = [1, 2, 3]
for i in range(len(a)):
a[i] += 1
In Ruby
a = [1, 2, 3]
a = a.map { |i| i + 1 }
Demo

Array#collect = Array#map

Invokes the given block once for each element of self.

change every int to string
get the sum of all elements in an array
In Java
int[] a = {1, 2, 3};
int sum = 0;
for(int i = 0; i < a.length; i++) {
sum += a[i];
}
In Python
a = [1, 2, 3]
sum = sum(a)
In Ruby
a = [1, 2, 3]
sum = a.inject { |a, e| a + e }
Demo

Enumerable#reduce = Enumerable#inject

shortcut: inject(:+)
Rails flavoured Minitest cases
class SomeControllerTest < ActionController::TestCase
test “should do stuff” do
assert_equal 2, 1 + 1
end
def test_should_do_stuff
assert_equal 2, 1 + 1
end
end
Weirdness #11
implicit return in methods
a lot of ruby methods take blocks
the evaluated object of the last
executed expression in a method
is implicitly returned to the caller
Every expression in Ruby evaluates to an object,
def greet
puts “hello”
“hello”
end
what is returned?
def greet
“hello”
puts “hello”
end
def greet
return “hello”
puts “hello”
end
References:
The Well-Grounded Rubyist
by David A. Black
Ruby Style Guide
https://github.com/bbatsov/ruby-style-guide
Thanks
@ZhifuGe
codingdojo.io

Más contenido relacionado

La actualidad más candente

Ruby Basics
Ruby BasicsRuby Basics
Ruby BasicsSHC
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-people
 
Polymorphism in c++(ppt)
Polymorphism in c++(ppt)Polymorphism in c++(ppt)
Polymorphism in c++(ppt)Sanjit Shaw
 
Haskell retrospective
Haskell retrospectiveHaskell retrospective
Haskell retrospectivechenge2k
 
Ruby introduction part1
Ruby introduction part1Ruby introduction part1
Ruby introduction part1Brady Cheng
 
An Introduction to Groovy for Java Developers
An Introduction to Groovy for Java DevelopersAn Introduction to Groovy for Java Developers
An Introduction to Groovy for Java DevelopersKostas Saidis
 
The ruby programming language
The ruby programming languageThe ruby programming language
The ruby programming languagepraveen0202
 
Ruby — An introduction
Ruby — An introductionRuby — An introduction
Ruby — An introductionGonçalo Silva
 
From 0 to mine sweeper in pyside
From 0 to mine sweeper in pysideFrom 0 to mine sweeper in pyside
From 0 to mine sweeper in pysideDinesh Manajipet
 
Asakusa ruby
Asakusa rubyAsakusa ruby
Asakusa rubypragdave
 
Paulo Freire Pedagpogia 1
Paulo Freire Pedagpogia 1Paulo Freire Pedagpogia 1
Paulo Freire Pedagpogia 1Alejandra Perez
 
Washington Practitioners Significant Changes To Rpc 1.5
Washington Practitioners Significant Changes To Rpc 1.5Washington Practitioners Significant Changes To Rpc 1.5
Washington Practitioners Significant Changes To Rpc 1.5Oregon Law Practice Management
 
Majlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi Petang
Majlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi PetangMajlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi Petang
Majlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi PetangImsamad
 
Agapornis Mansos - www.criadourosudica.blogspot.com
Agapornis Mansos - www.criadourosudica.blogspot.comAgapornis Mansos - www.criadourosudica.blogspot.com
Agapornis Mansos - www.criadourosudica.blogspot.comAntonio Silva
 
Jerry Shea Resume And Addendum 5 2 09
Jerry  Shea Resume And Addendum 5 2 09Jerry  Shea Resume And Addendum 5 2 09
Jerry Shea Resume And Addendum 5 2 09gshea11
 

La actualidad más candente (20)

Ruby Basics
Ruby BasicsRuby Basics
Ruby Basics
 
Ruby.new @ VilniusRB
Ruby.new @ VilniusRBRuby.new @ VilniusRB
Ruby.new @ VilniusRB
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
 
Polymorphism in c++(ppt)
Polymorphism in c++(ppt)Polymorphism in c++(ppt)
Polymorphism in c++(ppt)
 
Guava et Lombok au Lyon JUG
Guava et Lombok au Lyon JUGGuava et Lombok au Lyon JUG
Guava et Lombok au Lyon JUG
 
Haskell retrospective
Haskell retrospectiveHaskell retrospective
Haskell retrospective
 
Ruby introduction part1
Ruby introduction part1Ruby introduction part1
Ruby introduction part1
 
An Introduction to Groovy for Java Developers
An Introduction to Groovy for Java DevelopersAn Introduction to Groovy for Java Developers
An Introduction to Groovy for Java Developers
 
The ruby programming language
The ruby programming languageThe ruby programming language
The ruby programming language
 
Ruby — An introduction
Ruby — An introductionRuby — An introduction
Ruby — An introduction
 
Ruby
RubyRuby
Ruby
 
From 0 to mine sweeper in pyside
From 0 to mine sweeper in pysideFrom 0 to mine sweeper in pyside
From 0 to mine sweeper in pyside
 
Asakusa ruby
Asakusa rubyAsakusa ruby
Asakusa ruby
 
Paulo Freire Pedagpogia 1
Paulo Freire Pedagpogia 1Paulo Freire Pedagpogia 1
Paulo Freire Pedagpogia 1
 
Washington Practitioners Significant Changes To Rpc 1.5
Washington Practitioners Significant Changes To Rpc 1.5Washington Practitioners Significant Changes To Rpc 1.5
Washington Practitioners Significant Changes To Rpc 1.5
 
Majlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi Petang
Majlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi PetangMajlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi Petang
Majlis Persaraan Pn.Hjh.Normah bersama guru-guru Sesi Petang
 
LoteríA Correcta
LoteríA CorrectaLoteríA Correcta
LoteríA Correcta
 
Agapornis Mansos - www.criadourosudica.blogspot.com
Agapornis Mansos - www.criadourosudica.blogspot.comAgapornis Mansos - www.criadourosudica.blogspot.com
Agapornis Mansos - www.criadourosudica.blogspot.com
 
MMBJ Shanzhai Culture
MMBJ Shanzhai CultureMMBJ Shanzhai Culture
MMBJ Shanzhai Culture
 
Jerry Shea Resume And Addendum 5 2 09
Jerry  Shea Resume And Addendum 5 2 09Jerry  Shea Resume And Addendum 5 2 09
Jerry Shea Resume And Addendum 5 2 09
 

Destacado

TDD for Coding Practices - by Zhifu Ge
TDD for Coding Practices - by Zhifu GeTDD for Coding Practices - by Zhifu Ge
TDD for Coding Practices - by Zhifu Geottawaruby
 
Ruby Under The Hood - By Craig Lehmann and Robert Young - Ottawa Ruby Novembe...
Ruby Under The Hood - By Craig Lehmann and Robert Young - Ottawa Ruby Novembe...Ruby Under The Hood - By Craig Lehmann and Robert Young - Ottawa Ruby Novembe...
Ruby Under The Hood - By Craig Lehmann and Robert Young - Ottawa Ruby Novembe...ottawaruby
 
Project Night Meta - Ruby Tuesday - Pitch
Project Night Meta - Ruby Tuesday - PitchProject Night Meta - Ruby Tuesday - Pitch
Project Night Meta - Ruby Tuesday - Pitchottawaruby
 
Hackfest mockups
Hackfest mockupsHackfest mockups
Hackfest mockupsottawaruby
 
Curso formación humana
Curso formación humanaCurso formación humana
Curso formación humanaJorge Alberto
 
Marissa Barnes Visual Communications Portfolio
Marissa Barnes Visual Communications PortfolioMarissa Barnes Visual Communications Portfolio
Marissa Barnes Visual Communications Portfoliobarne9
 
Sample traveler shut-off valve (sov travler)
Sample traveler  shut-off valve (sov travler)Sample traveler  shut-off valve (sov travler)
Sample traveler shut-off valve (sov travler)Tom Jacyszyn
 
Resume - Shaikh Rabbani_2016
Resume - Shaikh Rabbani_2016Resume - Shaikh Rabbani_2016
Resume - Shaikh Rabbani_2016shaikh Rabbani
 
Saas aroundio-iimb
Saas aroundio-iimbSaas aroundio-iimb
Saas aroundio-iimbKesava Reddy
 
السيرة الذاتية - لغة عربية
السيرة الذاتية - لغة عربيةالسيرة الذاتية - لغة عربية
السيرة الذاتية - لغة عربيةTarik Dandan
 
Flora y fauna de quintana roo
Flora y fauna de quintana rooFlora y fauna de quintana roo
Flora y fauna de quintana rooDafne Gomez
 
Customer acquisition for SaaS
Customer acquisition for SaaSCustomer acquisition for SaaS
Customer acquisition for SaaSAndrew Roberts
 
Virus informáticos y sus tipos paola negrete
Virus informáticos y sus tipos paola negreteVirus informáticos y sus tipos paola negrete
Virus informáticos y sus tipos paola negretepaola negrete
 
Brickwork Bonding (basics)
Brickwork Bonding (basics)Brickwork Bonding (basics)
Brickwork Bonding (basics)Steve Jarvis
 
Combined portfolio
Combined portfolioCombined portfolio
Combined portfolioMichael Judd
 
1997 Dodge Ram 1500 5.9L V8 Airflow Analysis
1997 Dodge Ram 1500 5.9L V8 Airflow Analysis1997 Dodge Ram 1500 5.9L V8 Airflow Analysis
1997 Dodge Ram 1500 5.9L V8 Airflow AnalysisZachary Davison
 
Presentación mariana colina
Presentación mariana colinaPresentación mariana colina
Presentación mariana colinaalbanyta
 

Destacado (20)

TDD for Coding Practices - by Zhifu Ge
TDD for Coding Practices - by Zhifu GeTDD for Coding Practices - by Zhifu Ge
TDD for Coding Practices - by Zhifu Ge
 
Ruby Under The Hood - By Craig Lehmann and Robert Young - Ottawa Ruby Novembe...
Ruby Under The Hood - By Craig Lehmann and Robert Young - Ottawa Ruby Novembe...Ruby Under The Hood - By Craig Lehmann and Robert Young - Ottawa Ruby Novembe...
Ruby Under The Hood - By Craig Lehmann and Robert Young - Ottawa Ruby Novembe...
 
Project Night Meta - Ruby Tuesday - Pitch
Project Night Meta - Ruby Tuesday - PitchProject Night Meta - Ruby Tuesday - Pitch
Project Night Meta - Ruby Tuesday - Pitch
 
Hackfest mockups
Hackfest mockupsHackfest mockups
Hackfest mockups
 
Curso formación humana
Curso formación humanaCurso formación humana
Curso formación humana
 
Marissa Barnes Visual Communications Portfolio
Marissa Barnes Visual Communications PortfolioMarissa Barnes Visual Communications Portfolio
Marissa Barnes Visual Communications Portfolio
 
Sample traveler shut-off valve (sov travler)
Sample traveler  shut-off valve (sov travler)Sample traveler  shut-off valve (sov travler)
Sample traveler shut-off valve (sov travler)
 
Resume - Shaikh Rabbani_2016
Resume - Shaikh Rabbani_2016Resume - Shaikh Rabbani_2016
Resume - Shaikh Rabbani_2016
 
Saas aroundio-iimb
Saas aroundio-iimbSaas aroundio-iimb
Saas aroundio-iimb
 
Art Evaluation
Art EvaluationArt Evaluation
Art Evaluation
 
السيرة الذاتية - لغة عربية
السيرة الذاتية - لغة عربيةالسيرة الذاتية - لغة عربية
السيرة الذاتية - لغة عربية
 
Melastomataceae
MelastomataceaeMelastomataceae
Melastomataceae
 
Flora y fauna de quintana roo
Flora y fauna de quintana rooFlora y fauna de quintana roo
Flora y fauna de quintana roo
 
7ps
7ps7ps
7ps
 
Customer acquisition for SaaS
Customer acquisition for SaaSCustomer acquisition for SaaS
Customer acquisition for SaaS
 
Virus informáticos y sus tipos paola negrete
Virus informáticos y sus tipos paola negreteVirus informáticos y sus tipos paola negrete
Virus informáticos y sus tipos paola negrete
 
Brickwork Bonding (basics)
Brickwork Bonding (basics)Brickwork Bonding (basics)
Brickwork Bonding (basics)
 
Combined portfolio
Combined portfolioCombined portfolio
Combined portfolio
 
1997 Dodge Ram 1500 5.9L V8 Airflow Analysis
1997 Dodge Ram 1500 5.9L V8 Airflow Analysis1997 Dodge Ram 1500 5.9L V8 Airflow Analysis
1997 Dodge Ram 1500 5.9L V8 Airflow Analysis
 
Presentación mariana colina
Presentación mariana colinaPresentación mariana colina
Presentación mariana colina
 

Similar a Learn Ruby in 20 Hours with Weird Idioms

Test First Teaching
Test First TeachingTest First Teaching
Test First TeachingSarah Allen
 
Let's Learn Ruby - Basic
Let's Learn Ruby - BasicLet's Learn Ruby - Basic
Let's Learn Ruby - BasicEddie Kao
 
Ruby for C# Developers
Ruby for C# DevelopersRuby for C# Developers
Ruby for C# DevelopersCory Foy
 
Reasons To Love Ruby
Reasons To Love RubyReasons To Love Ruby
Reasons To Love RubyBen Scheirman
 
Test First Teaching and the path to TDD
Test First Teaching and the path to TDDTest First Teaching and the path to TDD
Test First Teaching and the path to TDDSarah Allen
 
Ruby for .NET developers
Ruby for .NET developersRuby for .NET developers
Ruby for .NET developersMax Titov
 
Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)Benjamin Bock
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9sagaroceanic11
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9sagaroceanic11
 
Ruby 程式語言綜覽簡介
Ruby 程式語言綜覽簡介Ruby 程式語言綜覽簡介
Ruby 程式語言綜覽簡介Wen-Tien Chang
 
The things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and AkkaThe things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and AkkaKonrad Malawski
 
Ruby on rails presentation
Ruby on rails presentationRuby on rails presentation
Ruby on rails presentationSynbioz
 
Intro To Ror
Intro To RorIntro To Ror
Intro To Rormyuser
 
Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)bryanbibat
 

Similar a Learn Ruby in 20 Hours with Weird Idioms (20)

Test First Teaching
Test First TeachingTest First Teaching
Test First Teaching
 
Let's Learn Ruby - Basic
Let's Learn Ruby - BasicLet's Learn Ruby - Basic
Let's Learn Ruby - Basic
 
Ruby Gotchas
Ruby GotchasRuby Gotchas
Ruby Gotchas
 
The Joy Of Ruby
The Joy Of RubyThe Joy Of Ruby
The Joy Of Ruby
 
Ruby for C# Developers
Ruby for C# DevelopersRuby for C# Developers
Ruby for C# Developers
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
 
Reasons To Love Ruby
Reasons To Love RubyReasons To Love Ruby
Reasons To Love Ruby
 
Ruby Gotchas
Ruby GotchasRuby Gotchas
Ruby Gotchas
 
Test First Teaching and the path to TDD
Test First Teaching and the path to TDDTest First Teaching and the path to TDD
Test First Teaching and the path to TDD
 
Ruby for .NET developers
Ruby for .NET developersRuby for .NET developers
Ruby for .NET developers
 
Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)Ruby Topic Maps Tutorial (2007-10-10)
Ruby Topic Maps Tutorial (2007-10-10)
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
 
Ruby 程式語言綜覽簡介
Ruby 程式語言綜覽簡介Ruby 程式語言綜覽簡介
Ruby 程式語言綜覽簡介
 
An introduction to Ruby
An introduction to RubyAn introduction to Ruby
An introduction to Ruby
 
The things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and AkkaThe things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and Akka
 
Ruby on rails presentation
Ruby on rails presentationRuby on rails presentation
Ruby on rails presentation
 
Intro To Ror
Intro To RorIntro To Ror
Intro To Ror
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
 
Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)Ruby and Rails by Example (GeekCamp edition)
Ruby and Rails by Example (GeekCamp edition)
 

Más de ottawaruby

Working With Legacy Rails Apps - Ahmed Omran
Working With Legacy Rails Apps - Ahmed OmranWorking With Legacy Rails Apps - Ahmed Omran
Working With Legacy Rails Apps - Ahmed Omranottawaruby
 
Canarie and dair in 10 minutes sept 2014 f
Canarie and dair in 10 minutes sept 2014 fCanarie and dair in 10 minutes sept 2014 f
Canarie and dair in 10 minutes sept 2014 fottawaruby
 
Ruby Tuesday - October 23rd, 2012
Ruby Tuesday - October 23rd, 2012Ruby Tuesday - October 23rd, 2012
Ruby Tuesday - October 23rd, 2012ottawaruby
 
Ruby Tuesday - November 27th, 2012
Ruby Tuesday - November 27th, 2012Ruby Tuesday - November 27th, 2012
Ruby Tuesday - November 27th, 2012ottawaruby
 
Ruby Tuesday - September 25th, 2012
Ruby Tuesday - September 25th, 2012Ruby Tuesday - September 25th, 2012
Ruby Tuesday - September 25th, 2012ottawaruby
 
Ottawa Ruby - Ruby Tuesday Meetup - August 28, 2012
Ottawa Ruby - Ruby Tuesday Meetup - August 28, 2012Ottawa Ruby - Ruby Tuesday Meetup - August 28, 2012
Ottawa Ruby - Ruby Tuesday Meetup - August 28, 2012ottawaruby
 
July 2012 Ruby Tuesday - Lana Lodge - Refactoring Lighting Talk
July 2012 Ruby Tuesday - Lana Lodge - Refactoring Lighting TalkJuly 2012 Ruby Tuesday - Lana Lodge - Refactoring Lighting Talk
July 2012 Ruby Tuesday - Lana Lodge - Refactoring Lighting Talkottawaruby
 
Ottawa Ruby - Ruby Tuesday Meetup - July 24, 2012
Ottawa Ruby - Ruby Tuesday Meetup - July 24, 2012Ottawa Ruby - Ruby Tuesday Meetup - July 24, 2012
Ottawa Ruby - Ruby Tuesday Meetup - July 24, 2012ottawaruby
 
Ottawa Ruby - Ruby Tuesday - June 26, 2012
Ottawa Ruby - Ruby Tuesday - June 26, 2012Ottawa Ruby - Ruby Tuesday - June 26, 2012
Ottawa Ruby - Ruby Tuesday - June 26, 2012ottawaruby
 

Más de ottawaruby (9)

Working With Legacy Rails Apps - Ahmed Omran
Working With Legacy Rails Apps - Ahmed OmranWorking With Legacy Rails Apps - Ahmed Omran
Working With Legacy Rails Apps - Ahmed Omran
 
Canarie and dair in 10 minutes sept 2014 f
Canarie and dair in 10 minutes sept 2014 fCanarie and dair in 10 minutes sept 2014 f
Canarie and dair in 10 minutes sept 2014 f
 
Ruby Tuesday - October 23rd, 2012
Ruby Tuesday - October 23rd, 2012Ruby Tuesday - October 23rd, 2012
Ruby Tuesday - October 23rd, 2012
 
Ruby Tuesday - November 27th, 2012
Ruby Tuesday - November 27th, 2012Ruby Tuesday - November 27th, 2012
Ruby Tuesday - November 27th, 2012
 
Ruby Tuesday - September 25th, 2012
Ruby Tuesday - September 25th, 2012Ruby Tuesday - September 25th, 2012
Ruby Tuesday - September 25th, 2012
 
Ottawa Ruby - Ruby Tuesday Meetup - August 28, 2012
Ottawa Ruby - Ruby Tuesday Meetup - August 28, 2012Ottawa Ruby - Ruby Tuesday Meetup - August 28, 2012
Ottawa Ruby - Ruby Tuesday Meetup - August 28, 2012
 
July 2012 Ruby Tuesday - Lana Lodge - Refactoring Lighting Talk
July 2012 Ruby Tuesday - Lana Lodge - Refactoring Lighting TalkJuly 2012 Ruby Tuesday - Lana Lodge - Refactoring Lighting Talk
July 2012 Ruby Tuesday - Lana Lodge - Refactoring Lighting Talk
 
Ottawa Ruby - Ruby Tuesday Meetup - July 24, 2012
Ottawa Ruby - Ruby Tuesday Meetup - July 24, 2012Ottawa Ruby - Ruby Tuesday Meetup - July 24, 2012
Ottawa Ruby - Ruby Tuesday Meetup - July 24, 2012
 
Ottawa Ruby - Ruby Tuesday - June 26, 2012
Ottawa Ruby - Ruby Tuesday - June 26, 2012Ottawa Ruby - Ruby Tuesday - June 26, 2012
Ottawa Ruby - Ruby Tuesday - June 26, 2012
 

Último

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Último (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Learn Ruby in 20 Hours with Weird Idioms