SlideShare a Scribd company logo
1 of 37
TracketyTrack Screenshot




           We know that we can use
           Ruby for Web
           Applications...


                  
Console Screen shot




          Or Console Applications...




                 
What about GUI?



                What about GUI
                Applications?




             
Shoes
    Past, present, future and introduction

              Tobias Pfeiffer
                @PragTob
          pragtob.wordpress.com

                       
No!



    Isn't shoes dead?




                   
What is shoes?
    GUI DSL/toolkit for Ruby
    Inspired by the web
    All ruby all the time
    Cross-platform and packaging
    Simple
    Feels like Ruby
    Many different implementations

                             
I ♥ Shoes

         
Applications




           
Quick History Walkthrough




                 
Who knows who this guy
             is?




 
             why the lucky stiff
                       

       https://en.wikipedia.org/wiki/File:Whytheluckystiff.jpg
New maintainer




 
                        Steve Klabnik
                                
    http://25.media.tumblr.com/tumblr_lxlhv9OUO01qmjkado1_500.jpg
Many different colors of
             shoes




                 
Shoes problems
    Many different implementations, but none
     fully working...
    “official” red shoes
      rather a C-project and a ruby interpreter of its
        own
      Packaging and installer of red shoes (partially)
        broken
      unstableness
      It isn't a gem
    There is no official “Shoes spec”
                            
Shoes 4
    Concentrate efforts on one implementation
    Make the gui backend pluggable
    TDD implementation
    Based on brown shoes
    JRuby and SWT as a start (Qt?)




                          
The pluggable backend



               The Shoes
                  DSL
            The GUI backend


      SWT     Qt   GTK     ...


                     
The Shoes DSL
    (with huge thanks to Nobody Knows Shoes)




                          
Para


Shoes.app do
  para "This is a simple paragraph"
end




                               
Flow




      
Flow


Shoes.app do
  flow do
    para "This flows nicely..."
    para "until we hit the border..."
    para "we continue to flow!"
  end
end




                               
Stack




       
Stack


Shoes.app do
  stack do
    para "We all"
    para "stack pretty well"
    para "don't we?"
  end
end




                                
More complex layouts




               
More complex layouts
Shoes.app do
  flow do title "A nice title" end
  flow do
    stack width: 150 do
      para "This could be"
      para "Your menu"
    end
    stack width: -150 do
      para "This could be your
          main content!"
      para "With many items."
      para "It goes on and on..."
    end
  end
  flow do inscription "a footer" end
end


                              
Button


Shoes.app do
  button "Click me!" do
    alert "Good job!"
  end
end




                              
Image


Shoes.app width: 270, height: 610 do
  image "http://www.rug-b.de/Images/
         Rug-b-ruby-user-groupberlin.jpg",
         click: "http://www.rug-b.de/"
end




                                
Editline & Slots
Shoes.app do
  para "Your text:"
  @edit = edit_line
  button "Ok" do
    text = @edit.text
    @slot.append do
      para "You entered:#{text}"
    end
    @edit.text = ""
  end
  @slot = stack do ; end
end




                               
Keypresses


Shoes.app do
  para "Press a button!"
  @slot = stack do ; end

  keypress do |key|
    @slot.clear do para key end
  end
end




                               
Background & gradient


Shoes.app do
  background gradient("#0F0", "#00F")
end




                               
Animate


Shoes.app do
  fill goldenrod
  stroke tomato
  strokewidth 6
  @oval = oval 0, 0, 50
  animate 24 do |frame|
    @oval.move frame, frame
  end
end




                               
Using gems with red shoes

    Shoes.setup do
     gem 'twitter'
     gem 'oauth'
     gem 'launchy'
    end

    require 'launchy'
    (...)

    Shoes.app do
      (...)
    end



                         
Now you know Shoes!
              
Wrap-up




        
Wrap-up
    Shoes is a nice Ruby GUI-toolkit
    There are many colors of Shoes
    Super cool for small applications
    Pro-Tip: Open the red shoes console with
      Alt + /




                          
Wait a
      second!
    How do I test
     my Shoes
       apps?
          Only test your
               models
         until we've got a
               Shoes
        mocking backend!

         
Further information
    http://shoesrb.com
    http://shoesrb.com/manual/Hello.html
    shoes@librelist.com
    #shoes on freenode
    @shoooesrb
    http://github.com/shoes/shoes4 ← We could
     use some help!
    The Return of Shoes by Steve Klabnik
                           
Thank you Team shoes!



steveklabnik      ashbb         wasnotrice   pjfitzgibbons   jrgifford




    mpapis        davorb        ccoupe            lljk         _why




 
               And all the ones I forgot...
                               
               (All pictures and names taken from github)
Shoes on!
    Tobias Pfeiffer
      @PragTob




               

More Related Content

Viewers also liked

Commercial Interior Design2
Commercial Interior Design2Commercial Interior Design2
Commercial Interior Design2Mario Hajiloizis
 
Informe de Gestión 2015 Departamento Informática Municipalidad de Puente Alto
Informe de Gestión 2015 Departamento Informática Municipalidad de Puente AltoInforme de Gestión 2015 Departamento Informática Municipalidad de Puente Alto
Informe de Gestión 2015 Departamento Informática Municipalidad de Puente AltoInformatica Puente Alto
 
HIRMER Männerschlussverkauf
HIRMER MännerschlussverkaufHIRMER Männerschlussverkauf
HIRMER MännerschlussverkaufHirmer
 
Magnetom flash 51_scmr_issue_final-00308068
Magnetom flash 51_scmr_issue_final-00308068Magnetom flash 51_scmr_issue_final-00308068
Magnetom flash 51_scmr_issue_final-00308068Jhon Arriaga Cordova
 
Buenas prácticas de redes sociales en hostelería. Facebook
Buenas prácticas de redes sociales en hostelería. FacebookBuenas prácticas de redes sociales en hostelería. Facebook
Buenas prácticas de redes sociales en hostelería. FacebookDaniel Valles Turmo
 
Griegos y Persas - 1 Bach Erminia
Griegos y Persas - 1 Bach ErminiaGriegos y Persas - 1 Bach Erminia
Griegos y Persas - 1 Bach ErminiaKerberos del Hades
 
Reglament oficial del Kin Ball
Reglament oficial del Kin BallReglament oficial del Kin Ball
Reglament oficial del Kin BallC
 
Asesoría en Gestión Empresarial
Asesoría en Gestión EmpresarialAsesoría en Gestión Empresarial
Asesoría en Gestión EmpresarialAndre Marques Valio
 
DC Shoes - Brand Mgmt Research Paper
DC Shoes - Brand Mgmt Research Paper DC Shoes - Brand Mgmt Research Paper
DC Shoes - Brand Mgmt Research Paper House Party, Inc.
 
Presentacion repsol
Presentacion repsolPresentacion repsol
Presentacion repsolbeita93
 
What did AlphaGo do to beat the strongest human Go player?
What did AlphaGo do to beat the strongest human Go player?What did AlphaGo do to beat the strongest human Go player?
What did AlphaGo do to beat the strongest human Go player?Tobias Pfeiffer
 
Análisis de explosivos mediante electroforesis capilar definitivo gonzalo gar...
Análisis de explosivos mediante electroforesis capilar definitivo gonzalo gar...Análisis de explosivos mediante electroforesis capilar definitivo gonzalo gar...
Análisis de explosivos mediante electroforesis capilar definitivo gonzalo gar...jesusanzano
 
Introducing Elixir the easy way
Introducing Elixir the easy wayIntroducing Elixir the easy way
Introducing Elixir the easy wayTobias Pfeiffer
 
Elixir & Phoenix – fast, concurrent and explicit
Elixir & Phoenix – fast, concurrent and explicitElixir & Phoenix – fast, concurrent and explicit
Elixir & Phoenix – fast, concurrent and explicitTobias Pfeiffer
 
GIS based sewer maintenance using MapWindow Open Source GIS
GIS based sewer maintenance using MapWindow Open Source GISGIS based sewer maintenance using MapWindow Open Source GIS
GIS based sewer maintenance using MapWindow Open Source GISMapWindow GIS
 

Viewers also liked (17)

Commercial Interior Design2
Commercial Interior Design2Commercial Interior Design2
Commercial Interior Design2
 
Informe de Gestión 2015 Departamento Informática Municipalidad de Puente Alto
Informe de Gestión 2015 Departamento Informática Municipalidad de Puente AltoInforme de Gestión 2015 Departamento Informática Municipalidad de Puente Alto
Informe de Gestión 2015 Departamento Informática Municipalidad de Puente Alto
 
HIRMER Männerschlussverkauf
HIRMER MännerschlussverkaufHIRMER Männerschlussverkauf
HIRMER Männerschlussverkauf
 
Magnetom flash 51_scmr_issue_final-00308068
Magnetom flash 51_scmr_issue_final-00308068Magnetom flash 51_scmr_issue_final-00308068
Magnetom flash 51_scmr_issue_final-00308068
 
Presupuestoclienteresumen
PresupuestoclienteresumenPresupuestoclienteresumen
Presupuestoclienteresumen
 
Buenas prácticas de redes sociales en hostelería. Facebook
Buenas prácticas de redes sociales en hostelería. FacebookBuenas prácticas de redes sociales en hostelería. Facebook
Buenas prácticas de redes sociales en hostelería. Facebook
 
Griegos y Persas - 1 Bach Erminia
Griegos y Persas - 1 Bach ErminiaGriegos y Persas - 1 Bach Erminia
Griegos y Persas - 1 Bach Erminia
 
Reglament oficial del Kin Ball
Reglament oficial del Kin BallReglament oficial del Kin Ball
Reglament oficial del Kin Ball
 
Asesoría en Gestión Empresarial
Asesoría en Gestión EmpresarialAsesoría en Gestión Empresarial
Asesoría en Gestión Empresarial
 
DC Shoes - Brand Mgmt Research Paper
DC Shoes - Brand Mgmt Research Paper DC Shoes - Brand Mgmt Research Paper
DC Shoes - Brand Mgmt Research Paper
 
Presentacion repsol
Presentacion repsolPresentacion repsol
Presentacion repsol
 
What did AlphaGo do to beat the strongest human Go player?
What did AlphaGo do to beat the strongest human Go player?What did AlphaGo do to beat the strongest human Go player?
What did AlphaGo do to beat the strongest human Go player?
 
Análisis de explosivos mediante electroforesis capilar definitivo gonzalo gar...
Análisis de explosivos mediante electroforesis capilar definitivo gonzalo gar...Análisis de explosivos mediante electroforesis capilar definitivo gonzalo gar...
Análisis de explosivos mediante electroforesis capilar definitivo gonzalo gar...
 
Introducing Elixir the easy way
Introducing Elixir the easy wayIntroducing Elixir the easy way
Introducing Elixir the easy way
 
E finance
E  financeE  finance
E finance
 
Elixir & Phoenix – fast, concurrent and explicit
Elixir & Phoenix – fast, concurrent and explicitElixir & Phoenix – fast, concurrent and explicit
Elixir & Phoenix – fast, concurrent and explicit
 
GIS based sewer maintenance using MapWindow Open Source GIS
GIS based sewer maintenance using MapWindow Open Source GISGIS based sewer maintenance using MapWindow Open Source GIS
GIS based sewer maintenance using MapWindow Open Source GIS
 

Similar to An Introduction To Shoes

Mistakes I Made Building Netflix for the iPhone
Mistakes I Made Building Netflix for the iPhoneMistakes I Made Building Netflix for the iPhone
Mistakes I Made Building Netflix for the iPhonekentbrew
 
Developing OpenResty Framework
Developing OpenResty FrameworkDeveloping OpenResty Framework
Developing OpenResty FrameworkOpenRestyCon
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make itJonathan Snook
 
Make GUI Apps with Shoes
Make GUI Apps with ShoesMake GUI Apps with Shoes
Make GUI Apps with ShoesBrian Hogan
 
Building for Accessibility
Building for AccessibilityBuilding for Accessibility
Building for AccessibilityNathan Hammond
 
Next Generation Apps with Google Chrome-By Dhruv Gohil
Next Generation Apps with Google Chrome-By Dhruv GohilNext Generation Apps with Google Chrome-By Dhruv Gohil
Next Generation Apps with Google Chrome-By Dhruv GohilHardik Upadhyay
 
Accelerated Native Mobile Development with the Ti gem
Accelerated Native Mobile Development with the Ti gemAccelerated Native Mobile Development with the Ti gem
Accelerated Native Mobile Development with the Ti gemWynn Netherland
 
Finding Frank - Spotify API.pdf
Finding Frank - Spotify API.pdfFinding Frank - Spotify API.pdf
Finding Frank - Spotify API.pdfaspleenic
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsNathan Smith
 
"Managing API Complexity". Matthew Flaming, Temboo
"Managing API Complexity". Matthew Flaming, Temboo"Managing API Complexity". Matthew Flaming, Temboo
"Managing API Complexity". Matthew Flaming, TembooYandex
 
Introducing Swift to the Touchwonders Team
Introducing Swift to the Touchwonders TeamIntroducing Swift to the Touchwonders Team
Introducing Swift to the Touchwonders TeamTouchwonders
 
CoffeeScript: A beginner's presentation for beginners copy
CoffeeScript: A beginner's presentation for beginners copyCoffeeScript: A beginner's presentation for beginners copy
CoffeeScript: A beginner's presentation for beginners copyPatrick Devins
 
Building Droids with JavaScript
Building Droids with JavaScriptBuilding Droids with JavaScript
Building Droids with JavaScriptAndrew Fisher
 
Boxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About ItBoxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About ItPuppet
 

Similar to An Introduction To Shoes (20)

Shoes lightning
Shoes lightningShoes lightning
Shoes lightning
 
Mistakes I Made Building Netflix for the iPhone
Mistakes I Made Building Netflix for the iPhoneMistakes I Made Building Netflix for the iPhone
Mistakes I Made Building Netflix for the iPhone
 
Intro to Rails
Intro to RailsIntro to Rails
Intro to Rails
 
More Shoes
More ShoesMore Shoes
More Shoes
 
Developing OpenResty Framework
Developing OpenResty FrameworkDeveloping OpenResty Framework
Developing OpenResty Framework
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 
Make GUI Apps with Shoes
Make GUI Apps with ShoesMake GUI Apps with Shoes
Make GUI Apps with Shoes
 
Building for Accessibility
Building for AccessibilityBuilding for Accessibility
Building for Accessibility
 
Next Generation Apps with Google Chrome-By Dhruv Gohil
Next Generation Apps with Google Chrome-By Dhruv GohilNext Generation Apps with Google Chrome-By Dhruv Gohil
Next Generation Apps with Google Chrome-By Dhruv Gohil
 
Accelerated Native Mobile Development with the Ti gem
Accelerated Native Mobile Development with the Ti gemAccelerated Native Mobile Development with the Ti gem
Accelerated Native Mobile Development with the Ti gem
 
Finding Frank - Spotify API.pdf
Finding Frank - Spotify API.pdfFinding Frank - Spotify API.pdf
Finding Frank - Spotify API.pdf
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile Apps
 
Working With Canvas
Working With CanvasWorking With Canvas
Working With Canvas
 
Sprockets
SprocketsSprockets
Sprockets
 
"Managing API Complexity". Matthew Flaming, Temboo
"Managing API Complexity". Matthew Flaming, Temboo"Managing API Complexity". Matthew Flaming, Temboo
"Managing API Complexity". Matthew Flaming, Temboo
 
Introducing Swift to the Touchwonders Team
Introducing Swift to the Touchwonders TeamIntroducing Swift to the Touchwonders Team
Introducing Swift to the Touchwonders Team
 
CoffeeScript: A beginner's presentation for beginners copy
CoffeeScript: A beginner's presentation for beginners copyCoffeeScript: A beginner's presentation for beginners copy
CoffeeScript: A beginner's presentation for beginners copy
 
Automate Yo' Self
Automate Yo' SelfAutomate Yo' Self
Automate Yo' Self
 
Building Droids with JavaScript
Building Droids with JavaScriptBuilding Droids with JavaScript
Building Droids with JavaScript
 
Boxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About ItBoxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About It
 

More from Tobias Pfeiffer

Metaphors are everywhere: Ideas to Improve Software Development
 Metaphors are everywhere: Ideas to Improve Software Development  Metaphors are everywhere: Ideas to Improve Software Development
Metaphors are everywhere: Ideas to Improve Software Development Tobias Pfeiffer
 
Elixir & Phoenix – Fast, Concurrent and Explicit
Elixir & Phoenix – Fast, Concurrent and ExplicitElixir & Phoenix – Fast, Concurrent and Explicit
Elixir & Phoenix – Fast, Concurrent and ExplicitTobias Pfeiffer
 
Functioning Among Humans
Functioning Among HumansFunctioning Among Humans
Functioning Among HumansTobias Pfeiffer
 
Functioning Among Humans
Functioning Among HumansFunctioning Among Humans
Functioning Among HumansTobias Pfeiffer
 
Do You Need That Validation? Let Me Call You Back About It
Do You Need That Validation? Let Me Call You Back About ItDo You Need That Validation? Let Me Call You Back About It
Do You Need That Validation? Let Me Call You Back About ItTobias Pfeiffer
 
Elixir, your Monolith and You
Elixir, your Monolith and YouElixir, your Monolith and You
Elixir, your Monolith and YouTobias Pfeiffer
 
Stop Guessing and Start Measuring - Benchmarking in Practice (Lambdadays)
Stop Guessing and Start Measuring - Benchmarking in Practice (Lambdadays)Stop Guessing and Start Measuring - Benchmarking in Practice (Lambdadays)
Stop Guessing and Start Measuring - Benchmarking in Practice (Lambdadays)Tobias Pfeiffer
 
It's About the Humans, Stupid (Lightning)
It's About the Humans, Stupid (Lightning)It's About the Humans, Stupid (Lightning)
It's About the Humans, Stupid (Lightning)Tobias Pfeiffer
 
Stop Guessing and Start Measuring - Benchmarking Practice (Poly Version)
 Stop Guessing and Start Measuring - Benchmarking Practice (Poly Version) Stop Guessing and Start Measuring - Benchmarking Practice (Poly Version)
Stop Guessing and Start Measuring - Benchmarking Practice (Poly Version)Tobias Pfeiffer
 
Code, Comments, Concepts, Comprehension – Conclusion?
Code, Comments, Concepts, Comprehension – Conclusion?Code, Comments, Concepts, Comprehension – Conclusion?
Code, Comments, Concepts, Comprehension – Conclusion?Tobias Pfeiffer
 
How fast is it really? Benchmarking in Practice (Ruby Version)
How fast is it really? Benchmarking in Practice (Ruby Version)How fast is it really? Benchmarking in Practice (Ruby Version)
How fast is it really? Benchmarking in Practice (Ruby Version)Tobias Pfeiffer
 
How fast ist it really? Benchmarking in practice
How fast ist it really? Benchmarking in practiceHow fast ist it really? Benchmarking in practice
How fast ist it really? Benchmarking in practiceTobias Pfeiffer
 
What did AlphaGo do to beat the strongest human Go player?
What did AlphaGo do to beat the strongest human Go player?What did AlphaGo do to beat the strongest human Go player?
What did AlphaGo do to beat the strongest human Go player?Tobias Pfeiffer
 
What did AlphaGo do to beat the strongest human Go player? (Strange Group Ver...
What did AlphaGo do to beat the strongest human Go player? (Strange Group Ver...What did AlphaGo do to beat the strongest human Go player? (Strange Group Ver...
What did AlphaGo do to beat the strongest human Go player? (Strange Group Ver...Tobias Pfeiffer
 
Ruby to Elixir - what's great and what you might miss
Ruby to Elixir - what's great and what you might missRuby to Elixir - what's great and what you might miss
Ruby to Elixir - what's great and what you might missTobias Pfeiffer
 
Elixir & Phoenix - fast, concurrent and explicit
Elixir & Phoenix - fast, concurrent and explicitElixir & Phoenix - fast, concurrent and explicit
Elixir & Phoenix - fast, concurrent and explicitTobias Pfeiffer
 

More from Tobias Pfeiffer (20)

Going Staff
Going StaffGoing Staff
Going Staff
 
Stories in Open SOurce
Stories in Open SOurceStories in Open SOurce
Stories in Open SOurce
 
Metaphors are everywhere: Ideas to Improve Software Development
 Metaphors are everywhere: Ideas to Improve Software Development  Metaphors are everywhere: Ideas to Improve Software Development
Metaphors are everywhere: Ideas to Improve Software Development
 
Stories in Open Source
Stories in Open SourceStories in Open Source
Stories in Open Source
 
Elixir & Phoenix – Fast, Concurrent and Explicit
Elixir & Phoenix – Fast, Concurrent and ExplicitElixir & Phoenix – Fast, Concurrent and Explicit
Elixir & Phoenix – Fast, Concurrent and Explicit
 
Functioning Among Humans
Functioning Among HumansFunctioning Among Humans
Functioning Among Humans
 
Functioning Among Humans
Functioning Among HumansFunctioning Among Humans
Functioning Among Humans
 
Do You Need That Validation? Let Me Call You Back About It
Do You Need That Validation? Let Me Call You Back About ItDo You Need That Validation? Let Me Call You Back About It
Do You Need That Validation? Let Me Call You Back About It
 
Elixir, your Monolith and You
Elixir, your Monolith and YouElixir, your Monolith and You
Elixir, your Monolith and You
 
Stop Guessing and Start Measuring - Benchmarking in Practice (Lambdadays)
Stop Guessing and Start Measuring - Benchmarking in Practice (Lambdadays)Stop Guessing and Start Measuring - Benchmarking in Practice (Lambdadays)
Stop Guessing and Start Measuring - Benchmarking in Practice (Lambdadays)
 
Where do Rubyists go?
 Where do Rubyists go?  Where do Rubyists go?
Where do Rubyists go?
 
It's About the Humans, Stupid (Lightning)
It's About the Humans, Stupid (Lightning)It's About the Humans, Stupid (Lightning)
It's About the Humans, Stupid (Lightning)
 
Stop Guessing and Start Measuring - Benchmarking Practice (Poly Version)
 Stop Guessing and Start Measuring - Benchmarking Practice (Poly Version) Stop Guessing and Start Measuring - Benchmarking Practice (Poly Version)
Stop Guessing and Start Measuring - Benchmarking Practice (Poly Version)
 
Code, Comments, Concepts, Comprehension – Conclusion?
Code, Comments, Concepts, Comprehension – Conclusion?Code, Comments, Concepts, Comprehension – Conclusion?
Code, Comments, Concepts, Comprehension – Conclusion?
 
How fast is it really? Benchmarking in Practice (Ruby Version)
How fast is it really? Benchmarking in Practice (Ruby Version)How fast is it really? Benchmarking in Practice (Ruby Version)
How fast is it really? Benchmarking in Practice (Ruby Version)
 
How fast ist it really? Benchmarking in practice
How fast ist it really? Benchmarking in practiceHow fast ist it really? Benchmarking in practice
How fast ist it really? Benchmarking in practice
 
What did AlphaGo do to beat the strongest human Go player?
What did AlphaGo do to beat the strongest human Go player?What did AlphaGo do to beat the strongest human Go player?
What did AlphaGo do to beat the strongest human Go player?
 
What did AlphaGo do to beat the strongest human Go player? (Strange Group Ver...
What did AlphaGo do to beat the strongest human Go player? (Strange Group Ver...What did AlphaGo do to beat the strongest human Go player? (Strange Group Ver...
What did AlphaGo do to beat the strongest human Go player? (Strange Group Ver...
 
Ruby to Elixir - what's great and what you might miss
Ruby to Elixir - what's great and what you might missRuby to Elixir - what's great and what you might miss
Ruby to Elixir - what's great and what you might miss
 
Elixir & Phoenix - fast, concurrent and explicit
Elixir & Phoenix - fast, concurrent and explicitElixir & Phoenix - fast, concurrent and explicit
Elixir & Phoenix - fast, concurrent and explicit
 

Recently uploaded

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

An Introduction To Shoes

  • 1. TracketyTrack Screenshot We know that we can use Ruby for Web Applications...    
  • 2. Console Screen shot Or Console Applications...    
  • 3. What about GUI? What about GUI Applications?    
  • 4. Shoes Past, present, future and introduction Tobias Pfeiffer @PragTob pragtob.wordpress.com    
  • 5. No! Isn't shoes dead?    
  • 6. What is shoes? GUI DSL/toolkit for Ruby Inspired by the web All ruby all the time Cross-platform and packaging Simple Feels like Ruby Many different implementations    
  • 10. Who knows who this guy is?   why the lucky stiff   https://en.wikipedia.org/wiki/File:Whytheluckystiff.jpg
  • 11. New maintainer   Steve Klabnik   http://25.media.tumblr.com/tumblr_lxlhv9OUO01qmjkado1_500.jpg
  • 12. Many different colors of shoes    
  • 13. Shoes problems Many different implementations, but none fully working... “official” red shoes rather a C-project and a ruby interpreter of its own Packaging and installer of red shoes (partially) broken unstableness It isn't a gem   There is no official “Shoes spec”  
  • 14. Shoes 4 Concentrate efforts on one implementation Make the gui backend pluggable TDD implementation Based on brown shoes JRuby and SWT as a start (Qt?)    
  • 15. The pluggable backend The Shoes DSL The GUI backend SWT Qt GTK ...    
  • 16. The Shoes DSL (with huge thanks to Nobody Knows Shoes)    
  • 17. Para Shoes.app do para "This is a simple paragraph" end    
  • 18. Flow    
  • 19. Flow Shoes.app do flow do para "This flows nicely..." para "until we hit the border..." para "we continue to flow!" end end    
  • 20. Stack    
  • 21. Stack Shoes.app do stack do para "We all" para "stack pretty well" para "don't we?" end end    
  • 23. More complex layouts Shoes.app do flow do title "A nice title" end flow do stack width: 150 do para "This could be" para "Your menu" end stack width: -150 do para "This could be your main content!" para "With many items." para "It goes on and on..." end end flow do inscription "a footer" end end    
  • 24. Button Shoes.app do button "Click me!" do alert "Good job!" end end    
  • 25. Image Shoes.app width: 270, height: 610 do image "http://www.rug-b.de/Images/ Rug-b-ruby-user-groupberlin.jpg", click: "http://www.rug-b.de/" end    
  • 26. Editline & Slots Shoes.app do para "Your text:" @edit = edit_line button "Ok" do text = @edit.text @slot.append do para "You entered:#{text}" end @edit.text = "" end @slot = stack do ; end end    
  • 27. Keypresses Shoes.app do para "Press a button!" @slot = stack do ; end keypress do |key| @slot.clear do para key end end end    
  • 28. Background & gradient Shoes.app do background gradient("#0F0", "#00F") end    
  • 29. Animate Shoes.app do fill goldenrod stroke tomato strokewidth 6 @oval = oval 0, 0, 50 animate 24 do |frame| @oval.move frame, frame end end    
  • 30. Using gems with red shoes Shoes.setup do gem 'twitter' gem 'oauth' gem 'launchy' end require 'launchy' (...) Shoes.app do (...) end    
  • 31. Now you know Shoes!    
  • 33. Wrap-up Shoes is a nice Ruby GUI-toolkit There are many colors of Shoes Super cool for small applications Pro-Tip: Open the red shoes console with Alt + /    
  • 34. Wait a second! How do I test my Shoes apps? Only test your models until we've got a Shoes mocking backend!    
  • 35. Further information http://shoesrb.com http://shoesrb.com/manual/Hello.html shoes@librelist.com #shoes on freenode @shoooesrb http://github.com/shoes/shoes4 ← We could use some help! The Return of Shoes by Steve Klabnik    
  • 36. Thank you Team shoes! steveklabnik ashbb wasnotrice pjfitzgibbons jrgifford mpapis davorb ccoupe lljk _why   And all the ones I forgot...   (All pictures and names taken from github)
  • 37. Shoes on! Tobias Pfeiffer @PragTob