• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Rails3: Stepping off of the golden path
 

Rails3: Stepping off of the golden path

on

  • 16,425 views

video of the talk: http://railsconfcommunity.blip.tv/file/2134521/

video of the talk: http://railsconfcommunity.blip.tv/file/2134521/

Statistics

Views

Total Views
16,425
Views on SlideShare
14,164
Embed Views
2,261

Actions

Likes
20
Downloads
452
Comments
2

13 Embeds 2,261

http://merbist.com 1536
http://en.oreilly.com 565
http://www.slideshare.net 79
http://coderwall.com 41
http://www.rennesonrails.com 18
http://www.merboverheard.com 9
http://www.techgig.com 4
http://merboverheard.com 3
http://merboverheard.bradlyfeeley.com 2
http://wennydf.blogspot.com 1
http://planetaki.com 1
http://translate.googleusercontent.com 1
http://web.archive.org 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • @guest7136aac I was explaining that with the new potential of Rails3, we can hope for a new generation of desktop application. Imagine a native desktop application written in Ruby with Rails and something like CouchDB embedded. You could develop p2p applications communicating between each others and with a central server.

    Because Rails is now able to be bent in a lot of new interesting ways, we can easily imagine new ways of using this powerful and awesome framework. If you had on top of that the fact that new Ruby implementation seems to improve speed and memory consumption, I think we will discover lots of new interesting way to leverage the Rails power.
    Are you sure you want to
    Your message goes here
    Processing…
  • This is not the video of the talk, just the slides.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Rails3: Stepping off of the golden path Rails3: Stepping off of the golden path Presentation Transcript

    • Rails3 RailsConf2009 - matt aimonetti step off of the golden path Wednesday, May 6, 2009
    • WHO AM I? matt aimonetti Wednesday, May 6, 2009
    • “morally loose, cheese eating surrender monkey” WHO AM I? matt aimonetti Wednesday, May 6, 2009
    • “morally loose, cheese eating surrender monkey” Ted Han WHO AM I? matt aimonetti Wednesday, May 6, 2009
    • “morally loose, cheese eating surrender monkey” Ted Han Ruby Addict WHO AM I? matt aimonetti Wednesday, May 6, 2009
    • “morally loose, cheese eating surrender monkey” Ted Han Ruby Addict Merb WHO AM I? matt aimonetti Wednesday, May 6, 2009
    • “morally loose, cheese eating surrender monkey” Ted Han Ruby Addict Merb Rails WHO AM I? matt aimonetti Wednesday, May 6, 2009
    • “morally loose, cheese eating surrender monkey” Ted Han Ruby Addict Merb Rails MacRuby WHO AM I? matt aimonetti Wednesday, May 6, 2009
    • Rails3 RailsConf2009 - matt aimonetti step off of the golden path Wednesday, May 6, 2009
    • MERGE Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • RUBY oscon 2003 Wednesday, May 6, 2009
    • RUBY Wednesday, May 6, 2009
    • RUBY Wednesday, May 6, 2009
    • RUBY Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • RUBY ON RAILS Convention over Configuration Don't repeat yourself Wednesday, May 6, 2009
    • LARGE ADOPTION Wednesday, May 6, 2009
    • SCHISM Wednesday, May 6, 2009
    • Performance Agnosticism Wednesday, May 6, 2009
    • Adobe Wikimedia sproutcore/Apple AT&T/yellowpages.com powerset/microsoft ... Wednesday, May 6, 2009
    • SPLIT RUBY COMMUNITY ... Wednesday, May 6, 2009
    • DRAMA ... Wednesday, May 6, 2009
    • SAT DOWN & TALKED ... Wednesday, May 6, 2009
    • DIFFERENT PERSPECTIVES Wednesday, May 6, 2009
    • SAME GOAL Wednesday, May 6, 2009
    • MERGE Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • WHAT DO YOU GET? Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • vaporware Wednesday, May 6, 2009
    • WHAT ARE YOU GOING TO GET improved performance Wednesday, May 6, 2009
    • WHAT ARE YOU GOING TO GET increased modularity Wednesday, May 6, 2009
    • WHAT ARE YOU GOING TO GET agnosticism Wednesday, May 6, 2009
    • WHAT ARE YOU GOING TO GET public API Wednesday, May 6, 2009
    • WHAT ARE YOU GOING TO GET mountable apps Wednesday, May 6, 2009
    • WHAT DOES IT REALLY MEAN? Rails 2 Wednesday, May 6, 2009
    • WHAT DOES IT REALLY MEAN? Rails 3 Wednesday, May 6, 2009
    • CECI N’EST PAS LA RÉALITÉ html, xml, json, js assert_equal(true, AwesomeApp.success?) Rails 2 Wednesday, May 6, 2009
    • CECI N’EST PAS LA RÉALITÉ ERB html, xml, json, js assert_equal(true, AwesomeApp.success?) Rails 2 Wednesday, May 6, 2009
    • CECI N’EST PAS LA RÉALITÉ ERB html, xml, json, js assert_equal(true, AwesomeApp.success?) Rails 2 Wednesday, May 6, 2009
    • CECI N’EST PAS LA RÉALITÉ ERB ActiveRecord html, xml, json, js assert_equal(true, AwesomeApp.success?) Rails 2 Wednesday, May 6, 2009
    • CECI N’EST PAS LA RÉALITÉ ERB ActiveRecord html, xml, json, js Test::Unit assert_equal(true, AwesomeApp.success?) Rails 2 Wednesday, May 6, 2009
    • RAILS 3 DEFAULT STACK • ORM: ActiveRecord • JS: Prototype • Templating: ERB • Testing: Test::Unit Wednesday, May 6, 2009
    • RAILS 3 - DEFAULT STACK html, xml, json, js assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
    • RAILS 3 - DEFAULT STACK ERB html, xml, json, js assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
    • RAILS 3 - DEFAULT STACK ERB html, xml, json, js assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
    • RAILS 3 - DEFAULT STACK ERB ActiveRecord html, xml, json, js assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
    • RAILS 3 - DEFAULT STACK ERB ActiveRecord html, xml, json, js Test::Unit assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
    • WHAAAT? Wednesday, May 6, 2009
    • NO DRASTIC CHANGES FOR THE END USERS Wednesday, May 6, 2009
    • RAILS WAY Wednesday, May 6, 2009
    • RAILS WAYS Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • GAIN FLEXIBILTY Wednesday, May 6, 2009
    • LESS OPINIONATED Wednesday, May 6, 2009
    • WE ARE NOT ALL THE SAME Wednesday, May 6, 2009
    • Wednesday, May 6, 2009
    • ¿WHEN? Wednesday, May 6, 2009
    • Use default stack? is it a Is there a Use the default stack Y N Y question of reason not and stop overthinking taste? to use it? things N evaluate your requirements: templating, JS, ORM, Performance N is it worth it? Y is it worth it? Y Rails 3 custom stack N Rails 3 default stack Wednesday, May 6, 2009
    • OPTIONS Wednesday, May 6, 2009
    • JAVASCRIPT FRAMEWORKS Wednesday, May 6, 2009
    • TEMPLATING ENGINES Wednesday, May 6, 2009
    • OBJECT RELATION MAPPER Wednesday, May 6, 2009
    • ORM Databases scalar values da ta objects Object Oriented Languages Wednesday, May 6, 2009
    • RAW SQL SELECT * FROM Book WHERE price > 100.00 ORDER BY title; Wednesday, May 6, 2009
    • ACTIVERECORD Book.all :conditions => [quot;price > ?quot;, 100.00], :order => 'title' Wednesday, May 6, 2009
    • DATAMAPPER Book.all :price.gt => 100.00, :order => [:title.asc] Wednesday, May 6, 2009
    • SEQUEL Book.find{|b| b.price > 100.00}.order(:title) Wednesday, May 6, 2009
    • COUCHREST Book.by_price(:startkey => 100.01) Wednesday, May 6, 2009
    • MANY MORE ORMS/DSLS Wednesday, May 6, 2009
    • RUBY IS AWESOME Wednesday, May 6, 2009
    • DATAMAPPER Wednesday, May 6, 2009
    • DATAMAPPER @parent = Parent.find_by_name(quot;Mattquot;) @parent.children.each do |child| @parent.object_id.should == child.parent.object_id end Wednesday, May 6, 2009
    • DATAMAPPER @parent = Parent.find_by_name(quot;Mattquot;) @parent.children.each do |child| @parent.object_id.should == child.parent.object_id end Fails with ActiceRecord Wednesday, May 6, 2009
    • DATAMAPPER @parent = Parent.find_by_name(quot;Mattquot;) @parent.children.each do |child| @parent.object_id.should == child.parent.object_id end Fails with ActiceRecord Passes with DataMapper Wednesday, May 6, 2009
    • DATAMAPPER does what ActiveRecord does... but differently Wednesday, May 6, 2009
    • DATAMAPPER Copyright - Merb in Action - Manning db drivers using 1 unified interface Wednesday, May 6, 2009
    • DATAMAPPER • procrastination as a value • Lazy Loading • Strategic Eager Loader Wednesday, May 6, 2009
    • DATAMAPPER students = Student.all students.each do |student| student.books.map{|b| b.name} end Wednesday, May 6, 2009
    • ACTIVERECORD students = Student.all students.each do |student| student.books.map{|b| b.name} end SELECT * FROM quot;studentsquot; SELECT * FROM quot;booksquot; WHERE (quot;booksquot;.student_id = 1) SELECT * FROM quot;booksquot; WHERE (quot;booksquot;.student_id = 2) SELECT * FROM quot;booksquot; WHERE (quot;booksquot;.student_id = 3) SELECT * FROM quot;booksquot; WHERE (quot;booksquot;.student_id = X) Wednesday, May 6, 2009
    • DATAMAPPER students = Student.all students.each do |student| student.books.map{|b| b.name} end SELECT quot;idquot;, quot;namequot; FROM quot;studentsquot; ORDER BY quot;idquot; SELECT quot;idquot;, quot;namequot;, quot;student_idquot; FROM quot;booksquot; WHERE (quot;student_idquot; IN (1, 2, 3, X)) ORDER BY quot;idquot; Wednesday, May 6, 2009
    • MULTIPLE REPOS production: adapter: mysql encoding: utf8 database: production-app username: root password: top-s3ckrit host: localhost repositories: nightly_backup: adapter: sqlite3 database: shared/nightly.db weekly_backup: adapter: sqlite3 database: shared/weekly.db Wednesday, May 6, 2009
    • MULTIPLE REPOS Article.copy(:default, :nightly_backup, :created.gt => 1.day.ago ) Wednesday, May 6, 2009
    • MULTIPLE REPOS class Page include DataMapper::Resource property :id, Serial property :name, String repository(:legacy) do property :name, String, :field => quot;titlequot; end end Wednesday, May 6, 2009
    • QUERY::PATH Find all people with an address that has street in the street name Person.all(quot;addresses.street.likequot; => quot;%street%quot; ) SELECT quot;peoplequot;.quot;idquot;, quot;peoplequot;.quot;namequot; FROM quot;peoplequot; INNER JOIN quot;addressesquot; ON (quot;peoplequot;.quot;idquot; = quot;addressesquot;.quot;person_idquot;) WHERE (quot;addressesquot;.quot;streetquot; LIKE '%street%') ORDER BY quot;peoplequot;.quot;idquot; Wednesday, May 6, 2009
    • ADAPTERS RDBMS file system IMAP Sales Force YAML REST APIs custom APIs ... Wednesday, May 6, 2009
    • SEQUEL • Prepared Statements • Sharding • highly customizable SQL work • high performance Wednesday, May 6, 2009
    • HIBERNATE • ActionORM • JRuby Wednesday, May 6, 2009
    • NON RDBMS SYSTEMS • AppEngine::Datastore • CouchDB with CouchRest or other DSL • Redis, Tokyo Cabinet etc... Wednesday, May 6, 2009
    • RAILS EXTREME only for a few of you Wednesday, May 6, 2009
    • CUSTOMIZE RAILS TO THE EXTREME Wednesday, May 6, 2009
    • CREATE YOUR OWN RAILS • define your own file structure • define your own router DSL • define your own ways to deal with requests Wednesday, May 6, 2009
    • EXTEND ACTIONCONTROLER class Presentation < ActionController::Http def index self.response_body = quot;Rails3 + MacRubyquot; end end Presentation.action(:index).call Rack::MockRequest.env_for(quot;/railsconf10quot;) Wednesday, May 6, 2009
    • EXTEND ACTIONCONTROLER def action(&blk) Class.new(ActionController::Http) do include ActionController::Renderer define_method(:xtreme, &blk) end.action(:xtreme) end run action do render quot;some_templatequot; end Wednesday, May 6, 2009
    • ¿FUTURE? Wednesday, May 6, 2009
    • + + CouchDB Wednesday, May 6, 2009
    • credits: http://www.flickr.com/photos/dotdoubledot/ Katsushika Hokusai Delacroix Benetton http://www.rubyist.net/~matz/slides/oscon2003 Matt Groening http://www.flickr.com/photos/derricksphotos/ http://www.flickr.com/photos/bogdansuditu http://www.flickr.com/photos/77096872@N00/2547160291/ http://www.flickr.com/photos/edvvc/1972546648/ http://www.flickr.com/photos/amagill/34762677/ http://www.flickr.com/photos/celinesphotographer/360918623/ Wednesday, May 6, 2009
    • Thanks Heidi Vega Rails team Yehuda Katz Carl Lerche Laurent Sansonetti Rich Kilmer Ninh Hernandez Bui Hongli not-so-MacLovin’ Lai Dan Kubb Wednesday, May 6, 2009