SlideShare une entreprise Scribd logo
1  sur  236
Ruby
                        Fun, Productive and Open-Source


                                        Eleanor McHugh
                                          @feyeleanor


Ruby: Fun, Productive and Open-Source                    http://slides.games-with-brains.net/
I am a programmer



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
please don’t be scared!!!



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
on today’s menu:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one




Ruby: Fun, Productive and Open-Source         http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one

              sharing ideas with a computer




Ruby: Fun, Productive and Open-Source         http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one

              sharing ideas with a computer

              first steps with the Ruby language




Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one

              sharing ideas with a computer

              first steps with the Ruby language

              building confidence




Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one

              sharing ideas with a computer

              first steps with the Ruby language

              building confidence

              sharing your creations as open-source


Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
a word of caution:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding

              and I’m a hacker, not a teacher




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding

              and I’m a hacker, not a teacher

              in fact this is my first ever beginners’ session




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding

              and I’m a hacker, not a teacher

              in fact this is my first ever beginners’ session

              so if I’m not making sense please stop me




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding

              and I’m a hacker, not a teacher

              in fact this is my first ever beginners’ session

              so if I’m not making sense please stop me

              and don’t be afraid to ask questions


Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
spot the programmer



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious

              imaginative




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious

              imaginative

              playful




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious

              imaginative

              playful

              attentive




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious

              imaginative

              playful

              attentive

              persevering


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
they’re also human



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmer myths:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards

              or über-cool hackers




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards

              or über-cool hackers

              but mostly we’re maths-savvy writers




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards

              or über-cool hackers

              but mostly we’re maths-savvy writers

              we build models of an alternative reality




Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards

              or über-cool hackers

              but mostly we’re maths-savvy writers

              we build models of an alternative reality

              then find words to describe these consistently


Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
logic + language = code



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Elric sent his mind into twisting tunnels of logic, across
endless plains of ideas, through mountains of symbolism
  and endless universes of alternate truths; he sent his
mind out further and further and as it went he sent with
 it the words [...] words that few of his contemporaries
                                         would understand...


                  - Elric of Melniboné, Michael Moorcock



 Ruby: Fun, Productive and Open-Source                         http://slides.games-with-brains.net/
getting started



Ruby: Fun, Productive and Open-Source       http://slides.games-with-brains.net/
1984



Ruby: Fun, Productive and Open-Source          http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
2012



Ruby: Fun, Productive and Open-Source          http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
writer’s block



Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
`Don't stand there chattering to yourself like that,' Humpty Dumpty said, looking at
her for the first time,' but tell me your name and your business.'
`My name is Alice, but -- '
`It's a stupid name enough!' Humpty Dumpty interrupted impatiently. `What does it
mean?'
`must a name mean something?' Alice asked doubtfully.
`Of course it must,' Humpty Dumpty said with a sort laugh: `my name means the
shape I am -- and a good handsome shape it is, too. With a name like your, you might
be any shape, almost.'


                                   Through the Looking Glass, Lewis Carroll




  Ruby: Fun, Productive and Open-Source                                   http://slides.games-with-brains.net/
`I don't know what you mean by "glory,"' Alice said.
Humpty Dumpty smiled contemptuously. `Of course you don't -- till I tell you. I
meant "there's a nice knock-down argument for you!"'
`But "glory" doesn't mean "a nice knock-down argument,"' Alice objected.
`When I use a word,' Humpty Dumpty said in rather a scornful tone, `it means just
what I choose it to mean -- neither more nor less.'
`The question is,' said Alice, `whether you can make words mean so many different
things.'
`The question is,' said Humpty Dumpty, `which is to be master - - that's all.'


                                   Through the Looking Glass, Lewis Carroll




  Ruby: Fun, Productive and Open-Source                                   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
introducing ruby:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language

              it can be used interactively




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language

              it can be used interactively

              or programs can be loaded from plain text files




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language

              it can be used interactively

              or programs can be loaded from plain text files

              it deals with ‘objects’ and their interactions




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language

              it can be used interactively

              or programs can be loaded from plain text files

              it deals with ‘objects’ and their interactions

              and is designed to suit human sensibilities


Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
the ruby dialogues



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
commentary



Ruby: Fun, Productive and Open-Source            http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
classification



Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
messages



Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
references



Ruby: Fun, Productive and Open-Source                http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
dependencies



Ruby: Fun, Productive and Open-Source      http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
collections



Ruby: Fun, Productive and Open-Source                 http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
files



Ruby: Fun, Productive and Open-Source          http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download()
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download()
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download()
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
page = WikiPage.new("ada", "lovelace")
   page.display
   page.save




Ruby: Fun, Productive and Open-Source       http://slides.games-with-brains.net/
page = WikiPage.new("ada", "lovelace")
   page.display
   page.save




Ruby: Fun, Productive and Open-Source       http://slides.games-with-brains.net/
page = WikiPage.new("ada", "lovelace")
   page.display
   page.save




Ruby: Fun, Productive and Open-Source       http://slides.games-with-brains.net/
properties



Ruby: Fun, Productive and Open-Source                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements # elements should be an Array e.g: ["Ada", "Lovelace"]
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
reuse



Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
hackety hack:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor




Ruby: Fun, Productive and Open-Source          http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor

              his name was _why? the lucky stiff




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor

              his name was _why? the lucky stiff

              and he only taught by fated appointment




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor

              his name was _why? the lucky stiff

              and he only taught by fated appointment

              he wrote hackety hack for little coders




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor

              his name was _why? the lucky stiff

              and he only taught by fated appointment

              he wrote hackety hack for little coders

              and created shoes along the way


Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
shoes:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby

              which works on mac, linux and windows




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby

              which works on mac, linux and windows

              designed for simple desktop applications




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby

              which works on mac, linux and windows

              designed for simple desktop applications

              not a web app so no html, css or javascript




Ruby: Fun, Productive and Open-Source            http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby

              which works on mac, linux and windows

              designed for simple desktop applications

              not a web app so no html, css or javascript

              but uses similar elements and concepts


Ruby: Fun, Productive and Open-Source            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
a shoes app



Ruby: Fun, Productive and Open-Source                 http://slides.games-with-brains.net/
Shoes.app do
   	    para "Hello, World!"
   end




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app do
   	    para "Hello, World!"
   end




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
        button "Download", :width => 120 do
        end
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
        button "Download", :width => 120 do
        end
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
       @wiki = WikiPage.new "http://en.wikipedia.org/wiki"
       background maroon
       para "Scrape Mediawiki", :align => "center", :size => "xx-large"
       stack do
        flow :margin => 10 do
         caption "Subject:"
         @article = edit_line :width => -200
         button "Download", :width => 120 do
   	     	    @wiki.save
         end
        end
       end
   end




Ruby: Fun, Productive and Open-Source                               http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
       @wiki = WikiPage.new "http://en.wikipedia.org/wiki"
       background maroon
       para "Scrape Mediawiki", :align => "center", :size => "xx-large"
       stack do
        flow :margin => 10 do
         caption "Subject:"
         @article = edit_line :width => -200
         button "Download", :width => 120 do
   	     	    @wiki.save
         end
        end
       end
   end




Ruby: Fun, Productive and Open-Source                               http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Covers Ruby 1.9.1




                                                                                                         David A. Black




                                                                                                           MANNING




                                          Practical
                                          Ruby Projects
                                          Ideas for the Eclectic Programmer

                                                        Learn advanced programming techniques and
                                                        explore Ruby’s full potential through a varied
                                                        series of exciting projects




                                          Topher Cyll




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/

Contenu connexe

En vedette

SmartDriver
SmartDriver SmartDriver
SmartDriver leolei520
 
Konsten att arbeta med inbound marketing
Konsten att arbeta med inbound marketingKonsten att arbeta med inbound marketing
Konsten att arbeta med inbound marketingMarketinghouse
 
Ataa citywire april 2010
Ataa citywire april 2010Ataa citywire april 2010
Ataa citywire april 2010guest0d4183
 
система виховної роботи
система виховної роботисистема виховної роботи
система виховної роботиalena72
 
Al Fazl International 9th September 2016 - Weekly
Al Fazl International 9th September 2016 - WeeklyAl Fazl International 9th September 2016 - Weekly
Al Fazl International 9th September 2016 - Weeklymuzaffertahir9
 
Be happy! Счастье - это просто выбор.
Be happy! Счастье - это просто выбор.Be happy! Счастье - это просто выбор.
Be happy! Счастье - это просто выбор.Alena Simonova
 
Las hamacas encantadas
Las hamacas encantadasLas hamacas encantadas
Las hamacas encantadaslupistrupiso
 

En vedette (11)

Рій "ЗАХИСНИКИ", ЗОШ №20
Рій "ЗАХИСНИКИ", ЗОШ №20Рій "ЗАХИСНИКИ", ЗОШ №20
Рій "ЗАХИСНИКИ", ЗОШ №20
 
SmartDriver
SmartDriver SmartDriver
SmartDriver
 
Konsten att arbeta med inbound marketing
Konsten att arbeta med inbound marketingKonsten att arbeta med inbound marketing
Konsten att arbeta med inbound marketing
 
Ataa citywire april 2010
Ataa citywire april 2010Ataa citywire april 2010
Ataa citywire april 2010
 
Mision
MisionMision
Mision
 
система виховної роботи
система виховної роботисистема виховної роботи
система виховної роботи
 
Al Fazl International 9th September 2016 - Weekly
Al Fazl International 9th September 2016 - WeeklyAl Fazl International 9th September 2016 - Weekly
Al Fazl International 9th September 2016 - Weekly
 
Be happy! Счастье - это просто выбор.
Be happy! Счастье - это просто выбор.Be happy! Счастье - это просто выбор.
Be happy! Счастье - это просто выбор.
 
フィリピン・バギオ(Baguio) 入門書 by バギオ英語学校協会 BESA
フィリピン・バギオ(Baguio) 入門書 by バギオ英語学校協会 BESAフィリピン・バギオ(Baguio) 入門書 by バギオ英語学校協会 BESA
フィリピン・バギオ(Baguio) 入門書 by バギオ英語学校協会 BESA
 
Las hamacas encantadas
Las hamacas encantadasLas hamacas encantadas
Las hamacas encantadas
 
ayman2
ayman2ayman2
ayman2
 

Similaire à Ruby: Fun, Productive and Open Source

The Art and Science of Computer Conversation: Talkabot 2016
The Art and Science of Computer Conversation: Talkabot 2016The Art and Science of Computer Conversation: Talkabot 2016
The Art and Science of Computer Conversation: Talkabot 2016PullString
 
The Art and Science of Computer Conversation: Talkabot 2016
The Art and Science of Computer Conversation: Talkabot 2016The Art and Science of Computer Conversation: Talkabot 2016
The Art and Science of Computer Conversation: Talkabot 2016Scott Raynor
 
July SF Ruby Meetup at SlideShare!
July SF Ruby Meetup at SlideShare!July SF Ruby Meetup at SlideShare!
July SF Ruby Meetup at SlideShare!marissa louie
 
Coffee House Creative
Coffee House CreativeCoffee House Creative
Coffee House CreativeMatt Baker
 
Gamify your classroom!
Gamify your classroom!Gamify your classroom!
Gamify your classroom!Graham Stanley
 
Ruby for Beginner
Ruby for BeginnerRuby for Beginner
Ruby for BeginnerMi Ji Kim
 

Similaire à Ruby: Fun, Productive and Open Source (6)

The Art and Science of Computer Conversation: Talkabot 2016
The Art and Science of Computer Conversation: Talkabot 2016The Art and Science of Computer Conversation: Talkabot 2016
The Art and Science of Computer Conversation: Talkabot 2016
 
The Art and Science of Computer Conversation: Talkabot 2016
The Art and Science of Computer Conversation: Talkabot 2016The Art and Science of Computer Conversation: Talkabot 2016
The Art and Science of Computer Conversation: Talkabot 2016
 
July SF Ruby Meetup at SlideShare!
July SF Ruby Meetup at SlideShare!July SF Ruby Meetup at SlideShare!
July SF Ruby Meetup at SlideShare!
 
Coffee House Creative
Coffee House CreativeCoffee House Creative
Coffee House Creative
 
Gamify your classroom!
Gamify your classroom!Gamify your classroom!
Gamify your classroom!
 
Ruby for Beginner
Ruby for BeginnerRuby for Beginner
Ruby for Beginner
 

Plus de Eleanor McHugh

[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdfEleanor McHugh
 
Generics, Reflection, and Efficient Collections
Generics, Reflection, and Efficient CollectionsGenerics, Reflection, and Efficient Collections
Generics, Reflection, and Efficient CollectionsEleanor McHugh
 
The Relevance of Liveness - Biometrics and Data Integrity
The Relevance of Liveness - Biometrics and Data IntegrityThe Relevance of Liveness - Biometrics and Data Integrity
The Relevance of Liveness - Biometrics and Data IntegrityEleanor McHugh
 
The Browser Environment - A Systems Programmer's Perspective [sinatra edition]
The Browser Environment - A Systems Programmer's Perspective [sinatra edition]The Browser Environment - A Systems Programmer's Perspective [sinatra edition]
The Browser Environment - A Systems Programmer's Perspective [sinatra edition]Eleanor McHugh
 
The Browser Environment - A Systems Programmer's Perspective
The Browser Environment - A Systems Programmer's PerspectiveThe Browser Environment - A Systems Programmer's Perspective
The Browser Environment - A Systems Programmer's PerspectiveEleanor McHugh
 
Go for the paranoid network programmer, 3rd edition
Go for the paranoid network programmer, 3rd editionGo for the paranoid network programmer, 3rd edition
Go for the paranoid network programmer, 3rd editionEleanor McHugh
 
An introduction to functional programming with Go [redux]
An introduction to functional programming with Go [redux]An introduction to functional programming with Go [redux]
An introduction to functional programming with Go [redux]Eleanor McHugh
 
An introduction to functional programming with go
An introduction to functional programming with goAn introduction to functional programming with go
An introduction to functional programming with goEleanor McHugh
 
Implementing virtual machines in go & c 2018 redux
Implementing virtual machines in go & c 2018 reduxImplementing virtual machines in go & c 2018 redux
Implementing virtual machines in go & c 2018 reduxEleanor McHugh
 
Identity & trust in Monitored Spaces
Identity & trust in Monitored SpacesIdentity & trust in Monitored Spaces
Identity & trust in Monitored SpacesEleanor McHugh
 
Don't Ask, Don't Tell - The Virtues of Privacy By Design
Don't Ask, Don't Tell - The Virtues of Privacy By DesignDon't Ask, Don't Tell - The Virtues of Privacy By Design
Don't Ask, Don't Tell - The Virtues of Privacy By DesignEleanor McHugh
 
Don't ask, don't tell the virtues of privacy by design
Don't ask, don't tell   the virtues of privacy by designDon't ask, don't tell   the virtues of privacy by design
Don't ask, don't tell the virtues of privacy by designEleanor McHugh
 
Anonymity, identity, trust
Anonymity, identity, trustAnonymity, identity, trust
Anonymity, identity, trustEleanor McHugh
 
Going Loopy - Adventures in Iteration with Google Go
Going Loopy - Adventures in Iteration with Google GoGoing Loopy - Adventures in Iteration with Google Go
Going Loopy - Adventures in Iteration with Google GoEleanor McHugh
 
Distributed Ledgers: Anonymity & Immutability at Scale
Distributed Ledgers: Anonymity & Immutability at ScaleDistributed Ledgers: Anonymity & Immutability at Scale
Distributed Ledgers: Anonymity & Immutability at ScaleEleanor McHugh
 
Go for the paranoid network programmer, 2nd edition
Go for the paranoid network programmer, 2nd editionGo for the paranoid network programmer, 2nd edition
Go for the paranoid network programmer, 2nd editionEleanor McHugh
 
Going Loopy: Adventures in Iteration with Go
Going Loopy: Adventures in Iteration with GoGoing Loopy: Adventures in Iteration with Go
Going Loopy: Adventures in Iteration with GoEleanor McHugh
 
Finding a useful outlet for my many Adventures in go
Finding a useful outlet for my many Adventures in goFinding a useful outlet for my many Adventures in go
Finding a useful outlet for my many Adventures in goEleanor McHugh
 
Anonymity, trust, accountability
Anonymity, trust, accountabilityAnonymity, trust, accountability
Anonymity, trust, accountabilityEleanor McHugh
 

Plus de Eleanor McHugh (20)

[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
 
Generics, Reflection, and Efficient Collections
Generics, Reflection, and Efficient CollectionsGenerics, Reflection, and Efficient Collections
Generics, Reflection, and Efficient Collections
 
The Relevance of Liveness - Biometrics and Data Integrity
The Relevance of Liveness - Biometrics and Data IntegrityThe Relevance of Liveness - Biometrics and Data Integrity
The Relevance of Liveness - Biometrics and Data Integrity
 
The Browser Environment - A Systems Programmer's Perspective [sinatra edition]
The Browser Environment - A Systems Programmer's Perspective [sinatra edition]The Browser Environment - A Systems Programmer's Perspective [sinatra edition]
The Browser Environment - A Systems Programmer's Perspective [sinatra edition]
 
The Browser Environment - A Systems Programmer's Perspective
The Browser Environment - A Systems Programmer's PerspectiveThe Browser Environment - A Systems Programmer's Perspective
The Browser Environment - A Systems Programmer's Perspective
 
Go for the paranoid network programmer, 3rd edition
Go for the paranoid network programmer, 3rd editionGo for the paranoid network programmer, 3rd edition
Go for the paranoid network programmer, 3rd edition
 
An introduction to functional programming with Go [redux]
An introduction to functional programming with Go [redux]An introduction to functional programming with Go [redux]
An introduction to functional programming with Go [redux]
 
An introduction to functional programming with go
An introduction to functional programming with goAn introduction to functional programming with go
An introduction to functional programming with go
 
Implementing virtual machines in go & c 2018 redux
Implementing virtual machines in go & c 2018 reduxImplementing virtual machines in go & c 2018 redux
Implementing virtual machines in go & c 2018 redux
 
Identity & trust in Monitored Spaces
Identity & trust in Monitored SpacesIdentity & trust in Monitored Spaces
Identity & trust in Monitored Spaces
 
Don't Ask, Don't Tell - The Virtues of Privacy By Design
Don't Ask, Don't Tell - The Virtues of Privacy By DesignDon't Ask, Don't Tell - The Virtues of Privacy By Design
Don't Ask, Don't Tell - The Virtues of Privacy By Design
 
Don't ask, don't tell the virtues of privacy by design
Don't ask, don't tell   the virtues of privacy by designDon't ask, don't tell   the virtues of privacy by design
Don't ask, don't tell the virtues of privacy by design
 
Anonymity, identity, trust
Anonymity, identity, trustAnonymity, identity, trust
Anonymity, identity, trust
 
Going Loopy - Adventures in Iteration with Google Go
Going Loopy - Adventures in Iteration with Google GoGoing Loopy - Adventures in Iteration with Google Go
Going Loopy - Adventures in Iteration with Google Go
 
Distributed Ledgers: Anonymity & Immutability at Scale
Distributed Ledgers: Anonymity & Immutability at ScaleDistributed Ledgers: Anonymity & Immutability at Scale
Distributed Ledgers: Anonymity & Immutability at Scale
 
Hello Go
Hello GoHello Go
Hello Go
 
Go for the paranoid network programmer, 2nd edition
Go for the paranoid network programmer, 2nd editionGo for the paranoid network programmer, 2nd edition
Go for the paranoid network programmer, 2nd edition
 
Going Loopy: Adventures in Iteration with Go
Going Loopy: Adventures in Iteration with GoGoing Loopy: Adventures in Iteration with Go
Going Loopy: Adventures in Iteration with Go
 
Finding a useful outlet for my many Adventures in go
Finding a useful outlet for my many Adventures in goFinding a useful outlet for my many Adventures in go
Finding a useful outlet for my many Adventures in go
 
Anonymity, trust, accountability
Anonymity, trust, accountabilityAnonymity, trust, accountability
Anonymity, trust, accountability
 

Dernier

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Dernier (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

Ruby: Fun, Productive and Open Source

  • 1. Ruby Fun, Productive and Open-Source Eleanor McHugh @feyeleanor Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 2. I am a programmer Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 3. please don’t be scared!!! Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 4. on today’s menu: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 5. on today’s menu: what is a programmer and how to become one Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 6. on today’s menu: what is a programmer and how to become one sharing ideas with a computer Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 7. on today’s menu: what is a programmer and how to become one sharing ideas with a computer first steps with the Ruby language Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 8. on today’s menu: what is a programmer and how to become one sharing ideas with a computer first steps with the Ruby language building confidence Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 9. on today’s menu: what is a programmer and how to become one sharing ideas with a computer first steps with the Ruby language building confidence sharing your creations as open-source Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 10. a word of caution: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 11. a word of caution: it’s 30+ years since I first started coding Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 12. a word of caution: it’s 30+ years since I first started coding and I’m a hacker, not a teacher Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 13. a word of caution: it’s 30+ years since I first started coding and I’m a hacker, not a teacher in fact this is my first ever beginners’ session Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 14. a word of caution: it’s 30+ years since I first started coding and I’m a hacker, not a teacher in fact this is my first ever beginners’ session so if I’m not making sense please stop me Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 15. a word of caution: it’s 30+ years since I first started coding and I’m a hacker, not a teacher in fact this is my first ever beginners’ session so if I’m not making sense please stop me and don’t be afraid to ask questions Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 16. spot the programmer Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 17. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 18. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 19. programmers are: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 20. programmers are: curious Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 21. programmers are: curious imaginative Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 22. programmers are: curious imaginative playful Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 23. programmers are: curious imaginative playful attentive Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 24. programmers are: curious imaginative playful attentive persevering Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 25. they’re also human Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 26. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 27. programmer myths: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 28. programmer myths: sometimes we really are wizards Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 29. programmer myths: sometimes we really are wizards or über-cool hackers Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 30. programmer myths: sometimes we really are wizards or über-cool hackers but mostly we’re maths-savvy writers Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 31. programmer myths: sometimes we really are wizards or über-cool hackers but mostly we’re maths-savvy writers we build models of an alternative reality Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 32. programmer myths: sometimes we really are wizards or über-cool hackers but mostly we’re maths-savvy writers we build models of an alternative reality then find words to describe these consistently Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 33. logic + language = code Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 34. Elric sent his mind into twisting tunnels of logic, across endless plains of ideas, through mountains of symbolism and endless universes of alternate truths; he sent his mind out further and further and as it went he sent with it the words [...] words that few of his contemporaries would understand... - Elric of Melniboné, Michael Moorcock Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 35. getting started Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 36. 1984 Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 37. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 38. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 39. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 40. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 41. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 42. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 43. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 44. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 45. 2012 Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 46. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 47. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 48. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 49. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 50. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 51. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 52. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 53. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 54. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 55. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 56. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 57. writer’s block Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 58. `Don't stand there chattering to yourself like that,' Humpty Dumpty said, looking at her for the first time,' but tell me your name and your business.' `My name is Alice, but -- ' `It's a stupid name enough!' Humpty Dumpty interrupted impatiently. `What does it mean?' `must a name mean something?' Alice asked doubtfully. `Of course it must,' Humpty Dumpty said with a sort laugh: `my name means the shape I am -- and a good handsome shape it is, too. With a name like your, you might be any shape, almost.' Through the Looking Glass, Lewis Carroll Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 59. `I don't know what you mean by "glory,"' Alice said. Humpty Dumpty smiled contemptuously. `Of course you don't -- till I tell you. I meant "there's a nice knock-down argument for you!"' `But "glory" doesn't mean "a nice knock-down argument,"' Alice objected. `When I use a word,' Humpty Dumpty said in rather a scornful tone, `it means just what I choose it to mean -- neither more nor less.' `The question is,' said Alice, `whether you can make words mean so many different things.' `The question is,' said Humpty Dumpty, `which is to be master - - that's all.' Through the Looking Glass, Lewis Carroll Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 60. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 61. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 62. introducing ruby: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 63. introducing ruby: ruby is an interpreted language Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 64. introducing ruby: ruby is an interpreted language it can be used interactively Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 65. introducing ruby: ruby is an interpreted language it can be used interactively or programs can be loaded from plain text files Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 66. introducing ruby: ruby is an interpreted language it can be used interactively or programs can be loaded from plain text files it deals with ‘objects’ and their interactions Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 67. introducing ruby: ruby is an interpreted language it can be used interactively or programs can be loaded from plain text files it deals with ‘objects’ and their interactions and is designed to suit human sensibilities Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 68. the ruby dialogues Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 69. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 70. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 71. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 72. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 73. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 74. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 75. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 76. commentary Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 77. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 78. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 79. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 80. classification Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 81. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 82. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 83. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 84. messages Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 85. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 86. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 87. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 88. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 89. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 90. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 91. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 92. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 93. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 94. references Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 95. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 96. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 97. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 98. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 99. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 100. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 101. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 102. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 103. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 104. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 105. dependencies Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 106. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 107. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 108. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 109. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 110. collections Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 111. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 112. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 113. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 114. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 115. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 116. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 117. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 118. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 119. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 120. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 121. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 122. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 123. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 124. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 125. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 126. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 127. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 128. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 129. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 130. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 131. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 132. files Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 133. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download() end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 134. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download() end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 135. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download() end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 136. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 137. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 138. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 139. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 140. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 141. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 142. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 143. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 144. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 145. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 146. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 147. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 148. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 149. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 150. page = WikiPage.new("ada", "lovelace") page.display page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 151. page = WikiPage.new("ada", "lovelace") page.display page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 152. page = WikiPage.new("ada", "lovelace") page.display page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 153. properties Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 154. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 155. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 156. class WikiPage def initialize(*elements) self.name = *elements end def name= elements # elements should be an Array e.g: ["Ada", "Lovelace"] @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 157. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 158. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 159. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 160. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 161. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 162. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 163. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 164. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 165. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 166. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 167. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 168. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 169. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 170. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 171. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 172. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 173. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 174. reuse Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 175. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 176. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 177. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 178. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 179. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 180. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 181. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 182. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 183. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 184. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 185. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 186. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 187. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 188. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 189. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 190. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 191. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 192. hackety hack: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 193. hackety hack: once there was a freelance professor Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 194. hackety hack: once there was a freelance professor his name was _why? the lucky stiff Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 195. hackety hack: once there was a freelance professor his name was _why? the lucky stiff and he only taught by fated appointment Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 196. hackety hack: once there was a freelance professor his name was _why? the lucky stiff and he only taught by fated appointment he wrote hackety hack for little coders Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 197. hackety hack: once there was a freelance professor his name was _why? the lucky stiff and he only taught by fated appointment he wrote hackety hack for little coders and created shoes along the way Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 198. shoes: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 199. shoes: a self-contained GUI toolkit for Ruby Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 200. shoes: a self-contained GUI toolkit for Ruby which works on mac, linux and windows Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 201. shoes: a self-contained GUI toolkit for Ruby which works on mac, linux and windows designed for simple desktop applications Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 202. shoes: a self-contained GUI toolkit for Ruby which works on mac, linux and windows designed for simple desktop applications not a web app so no html, css or javascript Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 203. shoes: a self-contained GUI toolkit for Ruby which works on mac, linux and windows designed for simple desktop applications not a web app so no html, css or javascript but uses similar elements and concepts Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 204. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 205. a shoes app Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 206. Shoes.app do para "Hello, World!" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 207. Shoes.app do para "Hello, World!" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 208. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 209. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 210. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 211. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 212. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 213. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 214. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 215. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 216. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 217. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 218. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 219. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 220. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 221. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 222. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 223. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 224. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 225. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 226. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 227. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 button "Download", :width => 120 do end end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 228. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 button "Download", :width => 120 do end end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 229. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 230. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 231. Shoes.app :title => "Mediawiki Article Scraper" do @wiki = WikiPage.new "http://en.wikipedia.org/wiki" background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 button "Download", :width => 120 do @wiki.save end end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 232. Shoes.app :title => "Mediawiki Article Scraper" do @wiki = WikiPage.new "http://en.wikipedia.org/wiki" background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 button "Download", :width => 120 do @wiki.save end end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 233. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 234. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 235. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 236. Covers Ruby 1.9.1 David A. Black MANNING Practical Ruby Projects Ideas for the Eclectic Programmer Learn advanced programming techniques and explore Ruby’s full potential through a varied series of exciting projects Topher Cyll Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. \n
  161. \n
  162. \n
  163. \n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. \n
  177. \n
  178. \n
  179. \n
  180. \n
  181. \n
  182. \n
  183. \n
  184. \n
  185. \n
  186. \n
  187. \n
  188. \n
  189. \n
  190. \n
  191. \n
  192. \n
  193. \n
  194. \n
  195. \n
  196. \n
  197. \n
  198. \n
  199. \n
  200. \n
  201. \n
  202. \n
  203. \n
  204. \n
  205. \n
  206. \n
  207. \n
  208. \n
  209. \n
  210. \n
  211. \n
  212. \n
  213. \n
  214. \n
  215. \n
  216. \n
  217. \n
  218. \n
  219. \n
  220. \n
  221. \n
  222. \n
  223. \n
  224. \n
  225. \n
  226. \n
  227. \n
  228. \n
  229. \n