SlideShare a Scribd company logo
What new in Rails5?
          Fernand Galiana




Saturday, March 2, 13
Who’s that fool
     yo?


             @kitesurfer
             fernand.galiana@gmail.com
             github/derailed




Saturday, March 2, 13
Rails5 features...




Saturday, March 2, 13
Ah ah...




Saturday, March 2, 13
Paradigm shifting...




Saturday, March 2, 13
Seven principles
                Data on the wire
                One language
                DB everywhere
                Latency compensation
                Full stack reactivity
                Embrace ecosystem
                Clean simple apis

Saturday, March 2, 13
Installation



                $ curl https://install.meteor.com | /bin/sh




Saturday, March 2, 13
Create an app



                meteor create myBitchinApp




Saturday, March 2, 13
Command line

                meteor [run] [-p] [--production] [--settings]
                meteor mongo
                meteor reset
                meteor update




Saturday, March 2, 13
Bundler?


                meteor list [--using]
                meteor add pkg
                meteor remove pkg




Saturday, March 2, 13
Deploying


                mrt deploy bitchindemo.metor.com
                mrt bundle bitchindemo.tgz




Saturday, March 2, 13
Infrastructure




Saturday, March 2, 13
Mongo loves...

                        Client             Client




                                  Server

                             Db

Saturday, March 2, 13
Collections

                Items = new Meteor.Collection( “fred” | ... )
                Items.insert { fred:”Blee” }
                Items.update {},{$set|$push|...}, [multi], [cb]
                Items.find {}, {}, {}
                Items.remove {}




Saturday, March 2, 13
Session (!session)


                Session.set( “fred”, “Blee” )
                Session.get( “fred” )
                Session.equals( “fred”, “Duh” )




Saturday, March 2, 13
Handlebars?

      {{#each posts}}
        {{#if duh}}
          <td>{{>post_duh}}</td>
        {{/else}}
          <td>{{>post}}</td>
        {{/if}}
      {{/each}}




Saturday, March 2, 13
Helpers

         Template.fred.bitchin_css ->
           if Session.equals( 'blee', 'duh' )
             'yo-bitchin'
           else
             'yo-lame'

         <template name='fred'>
           <p class='{{bitchin_css}}'>
             really!
           </p>
         </template>


Saturday, March 2, 13
Events

       Template.item.events =
         'click #fred': ->
           Session.set( 'fred', true )




Saturday, March 2, 13
PubSub




Saturday, March 2, 13
Bundles
        accounts
        angular | backbone | jquery
        bootstrap
        d3
        underscore | handlebar | coffee
        less | sass | stylus
        mailer
        atmosphere.meteor.com
Saturday, March 2, 13
Client + Server = 1


                Meteor.is_client
                Meteor.is_server




Saturday, March 2, 13
Tag merges

         <body>
           {{> hello}}
         </body>

         <template name='hello'>
           <h1>Hello World!!!!</h1>
         </template>

         <body>
           <p class=''{{bitchin_css}}'>Is it bitch'in yet, yo?</p>
         </body>




Saturday, March 2, 13
Reactivity! Stand by....




Saturday, March 2, 13
Reactivity...


       Method.autorun ->
         Meteor.subscribe( 'messages', Session.get( 'fred' ) )


       Meteor.publish('message', (search)->
         Messages.find( {search_term: search} )




Saturday, March 2, 13
Reactive context

                 Template
                 Meteor.render
                 Meteor.renderList
                 Meteor.autorun
                 Custom




Saturday, March 2, 13
Reactive datasources
                Session
                Collection
                Meteor.status
                ready
                Meteor.user | userId | loggingIn
                Cust Meteor.deps



Saturday, March 2, 13
Reactivity...


           fragment = Meteor.render ->
             name = Session.get("name") || "Batman!"
             "<div>Hello, I am #{name}</div>"
             $( 'body' ).append fragment




Saturday, March 2, 13
So what?
                Perf
                Security
                Single page apps
                Loose context
                Testing
                Server side reuse



Saturday, March 2, 13
Competition


                Mojito
                Derby




Saturday, March 2, 13
Future looks so bright



                POC != POS




Saturday, March 2, 13
Resources
         meteor.com
         atmosphere.meteor.com
         @meteorjs
         #meteor
         github.com/meteor/meteor
         meteor-talk.googlegroups
         blackandwtf.tumblr.com


Saturday, March 2, 13
Questions, impressions?




Saturday, March 2, 13

More Related Content

Viewers also liked (6)

PDF
In The Land Of Graphs...
Fernand Galiana
 
PPS
Advanced Topics Snippets Lib Meter Zbw Hh Workshop
LibMeter
 
PPT
Ingenious
guest9c6b4d
 
PDF
Bucket List Item #1246
Fernand Galiana
 
PDF
Engines
Fernand Galiana
 
PDF
Docker Container Orchestration
Fernand Galiana
 
In The Land Of Graphs...
Fernand Galiana
 
Advanced Topics Snippets Lib Meter Zbw Hh Workshop
LibMeter
 
Ingenious
guest9c6b4d
 
Bucket List Item #1246
Fernand Galiana
 
Docker Container Orchestration
Fernand Galiana
 

Similar to What's new in Rails5? (20)

PDF
David Glasser in Chicago - Meteor: Past, Present, & Future
yaliceme
 
PDF
The Meteor Framework
Damien Magoni
 
PDF
Node.js and Ruby
Michael Bleigh
 
PDF
Having Fun Building Web Applications (Day 2 slides)
Clarence Ngoh
 
PDF
Understanding meteor
M A Hossain Tonu
 
PDF
A New Baseline for Front-End Devs
Rebecca Murphey
 
PDF
Node and SocketIO
Kentucky JavaScript Users Group
 
PDF
Nick Sieger-Exploring Rails 3 Through Choices
ThoughtWorks
 
PDF
Angular meteor presentation
Jean Marcel Belmont
 
PDF
Angular.js - JS Camp UKraine 2013
Max Klymyshyn
 
PDF
How we're building Wercker
Micha Hernandez van Leuffen
 
PDF
Introduction to Meteor - Worldwide Meteor Day
M A Hossain Tonu
 
PDF
From 'Meteor' to 'Maker'
Nitya Narasimhan
 
PDF
20150511 Meteor Angular
Rick Wehrle
 
PPTX
Meteor meetup
David Brear
 
PDF
Introduction to Meteor at ChaDev Lunch
Andrew McPherson
 
PDF
Meteor presentation
scandiweb
 
PDF
DevNexus 2013 - Introduction to WebSockets
Gunnar Hillert
 
PPTX
Meteor node upnorth-bobdavies
Mark Skeet
 
PDF
Intro to meteor @py gotham Aug 15-16 2015
christieewen
 
David Glasser in Chicago - Meteor: Past, Present, & Future
yaliceme
 
The Meteor Framework
Damien Magoni
 
Node.js and Ruby
Michael Bleigh
 
Having Fun Building Web Applications (Day 2 slides)
Clarence Ngoh
 
Understanding meteor
M A Hossain Tonu
 
A New Baseline for Front-End Devs
Rebecca Murphey
 
Nick Sieger-Exploring Rails 3 Through Choices
ThoughtWorks
 
Angular meteor presentation
Jean Marcel Belmont
 
Angular.js - JS Camp UKraine 2013
Max Klymyshyn
 
How we're building Wercker
Micha Hernandez van Leuffen
 
Introduction to Meteor - Worldwide Meteor Day
M A Hossain Tonu
 
From 'Meteor' to 'Maker'
Nitya Narasimhan
 
20150511 Meteor Angular
Rick Wehrle
 
Meteor meetup
David Brear
 
Introduction to Meteor at ChaDev Lunch
Andrew McPherson
 
Meteor presentation
scandiweb
 
DevNexus 2013 - Introduction to WebSockets
Gunnar Hillert
 
Meteor node upnorth-bobdavies
Mark Skeet
 
Intro to meteor @py gotham Aug 15-16 2015
christieewen
 
Ad

More from Fernand Galiana (7)

PDF
GraphQLUs For The RestOfUs!
Fernand Galiana
 
PDF
Sailing into 2018 with Kubernetes and Istio
Fernand Galiana
 
PDF
GraphQL, The New Black?
Fernand Galiana
 
PDF
You, Mix and Kubee
Fernand Galiana
 
PDF
I motion
Fernand Galiana
 
PDF
R-House (LSRC)
Fernand Galiana
 
PDF
Rhouse - Home automation is ruby ?
Fernand Galiana
 
GraphQLUs For The RestOfUs!
Fernand Galiana
 
Sailing into 2018 with Kubernetes and Istio
Fernand Galiana
 
GraphQL, The New Black?
Fernand Galiana
 
You, Mix and Kubee
Fernand Galiana
 
I motion
Fernand Galiana
 
R-House (LSRC)
Fernand Galiana
 
Rhouse - Home automation is ruby ?
Fernand Galiana
 
Ad

Recently uploaded (20)

PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 

What's new in Rails5?

  • 1. What new in Rails5? Fernand Galiana Saturday, March 2, 13
  • 2. Who’s that fool yo? @kitesurfer [email protected] github/derailed Saturday, March 2, 13
  • 6. Seven principles Data on the wire One language DB everywhere Latency compensation Full stack reactivity Embrace ecosystem Clean simple apis Saturday, March 2, 13
  • 7. Installation $ curl https://install.meteor.com | /bin/sh Saturday, March 2, 13
  • 8. Create an app meteor create myBitchinApp Saturday, March 2, 13
  • 9. Command line meteor [run] [-p] [--production] [--settings] meteor mongo meteor reset meteor update Saturday, March 2, 13
  • 10. Bundler? meteor list [--using] meteor add pkg meteor remove pkg Saturday, March 2, 13
  • 11. Deploying mrt deploy bitchindemo.metor.com mrt bundle bitchindemo.tgz Saturday, March 2, 13
  • 13. Mongo loves... Client Client Server Db Saturday, March 2, 13
  • 14. Collections Items = new Meteor.Collection( “fred” | ... ) Items.insert { fred:”Blee” } Items.update {},{$set|$push|...}, [multi], [cb] Items.find {}, {}, {} Items.remove {} Saturday, March 2, 13
  • 15. Session (!session) Session.set( “fred”, “Blee” ) Session.get( “fred” ) Session.equals( “fred”, “Duh” ) Saturday, March 2, 13
  • 16. Handlebars? {{#each posts}} {{#if duh}} <td>{{>post_duh}}</td> {{/else}} <td>{{>post}}</td> {{/if}} {{/each}} Saturday, March 2, 13
  • 17. Helpers Template.fred.bitchin_css -> if Session.equals( 'blee', 'duh' ) 'yo-bitchin' else 'yo-lame' <template name='fred'> <p class='{{bitchin_css}}'> really! </p> </template> Saturday, March 2, 13
  • 18. Events Template.item.events = 'click #fred': -> Session.set( 'fred', true ) Saturday, March 2, 13
  • 20. Bundles accounts angular | backbone | jquery bootstrap d3 underscore | handlebar | coffee less | sass | stylus mailer atmosphere.meteor.com Saturday, March 2, 13
  • 21. Client + Server = 1 Meteor.is_client Meteor.is_server Saturday, March 2, 13
  • 22. Tag merges <body> {{> hello}} </body> <template name='hello'> <h1>Hello World!!!!</h1> </template> <body> <p class=''{{bitchin_css}}'>Is it bitch'in yet, yo?</p> </body> Saturday, March 2, 13
  • 24. Reactivity... Method.autorun -> Meteor.subscribe( 'messages', Session.get( 'fred' ) ) Meteor.publish('message', (search)-> Messages.find( {search_term: search} ) Saturday, March 2, 13
  • 25. Reactive context Template Meteor.render Meteor.renderList Meteor.autorun Custom Saturday, March 2, 13
  • 26. Reactive datasources Session Collection Meteor.status ready Meteor.user | userId | loggingIn Cust Meteor.deps Saturday, March 2, 13
  • 27. Reactivity... fragment = Meteor.render -> name = Session.get("name") || "Batman!" "<div>Hello, I am #{name}</div>" $( 'body' ).append fragment Saturday, March 2, 13
  • 28. So what? Perf Security Single page apps Loose context Testing Server side reuse Saturday, March 2, 13
  • 29. Competition Mojito Derby Saturday, March 2, 13
  • 30. Future looks so bright POC != POS Saturday, March 2, 13
  • 31. Resources meteor.com atmosphere.meteor.com @meteorjs #meteor github.com/meteor/meteor meteor-talk.googlegroups blackandwtf.tumblr.com Saturday, March 2, 13