Your SlideShare is downloading. ×
0
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Rails3: Stepping off of the golden path

10,760

Published on

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

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

Published in: Technology
2 Comments
20 Likes
Statistics
Notes
  • @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.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • This is not the video of the talk, just the slides.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
10,760
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
452
Comments
2
Likes
20
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. Rails3 RailsConf2009 - matt aimonetti step off of the golden path Wednesday, May 6, 2009
  2. WHO AM I? matt aimonetti Wednesday, May 6, 2009
  3. “morally loose, cheese eating surrender monkey” WHO AM I? matt aimonetti Wednesday, May 6, 2009
  4. “morally loose, cheese eating surrender monkey” Ted Han WHO AM I? matt aimonetti Wednesday, May 6, 2009
  5. “morally loose, cheese eating surrender monkey” Ted Han Ruby Addict WHO AM I? matt aimonetti Wednesday, May 6, 2009
  6. “morally loose, cheese eating surrender monkey” Ted Han Ruby Addict Merb WHO AM I? matt aimonetti Wednesday, May 6, 2009
  7. “morally loose, cheese eating surrender monkey” Ted Han Ruby Addict Merb Rails WHO AM I? matt aimonetti Wednesday, May 6, 2009
  8. “morally loose, cheese eating surrender monkey” Ted Han Ruby Addict Merb Rails MacRuby WHO AM I? matt aimonetti Wednesday, May 6, 2009
  9. Rails3 RailsConf2009 - matt aimonetti step off of the golden path Wednesday, May 6, 2009
  10. MERGE Wednesday, May 6, 2009
  11. Wednesday, May 6, 2009
  12. Wednesday, May 6, 2009
  13. Wednesday, May 6, 2009
  14. RUBY oscon 2003 Wednesday, May 6, 2009
  15. RUBY Wednesday, May 6, 2009
  16. RUBY Wednesday, May 6, 2009
  17. RUBY Wednesday, May 6, 2009
  18. Wednesday, May 6, 2009
  19. Wednesday, May 6, 2009
  20. RUBY ON RAILS Convention over Configuration Don't repeat yourself Wednesday, May 6, 2009
  21. LARGE ADOPTION Wednesday, May 6, 2009
  22. SCHISM Wednesday, May 6, 2009
  23. Performance Agnosticism Wednesday, May 6, 2009
  24. Adobe Wikimedia sproutcore/Apple AT&T/yellowpages.com powerset/microsoft ... Wednesday, May 6, 2009
  25. SPLIT RUBY COMMUNITY ... Wednesday, May 6, 2009
  26. DRAMA ... Wednesday, May 6, 2009
  27. SAT DOWN & TALKED ... Wednesday, May 6, 2009
  28. DIFFERENT PERSPECTIVES Wednesday, May 6, 2009
  29. SAME GOAL Wednesday, May 6, 2009
  30. MERGE Wednesday, May 6, 2009
  31. Wednesday, May 6, 2009
  32. Wednesday, May 6, 2009
  33. WHAT DO YOU GET? Wednesday, May 6, 2009
  34. Wednesday, May 6, 2009
  35. vaporware Wednesday, May 6, 2009
  36. WHAT ARE YOU GOING TO GET improved performance Wednesday, May 6, 2009
  37. WHAT ARE YOU GOING TO GET increased modularity Wednesday, May 6, 2009
  38. WHAT ARE YOU GOING TO GET agnosticism Wednesday, May 6, 2009
  39. WHAT ARE YOU GOING TO GET public API Wednesday, May 6, 2009
  40. WHAT ARE YOU GOING TO GET mountable apps Wednesday, May 6, 2009
  41. WHAT DOES IT REALLY MEAN? Rails 2 Wednesday, May 6, 2009
  42. WHAT DOES IT REALLY MEAN? Rails 3 Wednesday, May 6, 2009
  43. CECI N’EST PAS LA RÉALITÉ html, xml, json, js assert_equal(true, AwesomeApp.success?) Rails 2 Wednesday, May 6, 2009
  44. CECI N’EST PAS LA RÉALITÉ ERB html, xml, json, js assert_equal(true, AwesomeApp.success?) Rails 2 Wednesday, May 6, 2009
  45. CECI N’EST PAS LA RÉALITÉ ERB html, xml, json, js assert_equal(true, AwesomeApp.success?) Rails 2 Wednesday, May 6, 2009
  46. CECI N’EST PAS LA RÉALITÉ ERB ActiveRecord html, xml, json, js assert_equal(true, AwesomeApp.success?) Rails 2 Wednesday, May 6, 2009
  47. 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
  48. RAILS 3 DEFAULT STACK • ORM: ActiveRecord • JS: Prototype • Templating: ERB • Testing: Test::Unit Wednesday, May 6, 2009
  49. RAILS 3 - DEFAULT STACK html, xml, json, js assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
  50. RAILS 3 - DEFAULT STACK ERB html, xml, json, js assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
  51. RAILS 3 - DEFAULT STACK ERB html, xml, json, js assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
  52. RAILS 3 - DEFAULT STACK ERB ActiveRecord html, xml, json, js assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
  53. RAILS 3 - DEFAULT STACK ERB ActiveRecord html, xml, json, js Test::Unit assert_equal(true, AwesomeApp.success?) Wednesday, May 6, 2009
  54. WHAAAT? Wednesday, May 6, 2009
  55. NO DRASTIC CHANGES FOR THE END USERS Wednesday, May 6, 2009
  56. RAILS WAY Wednesday, May 6, 2009
  57. RAILS WAYS Wednesday, May 6, 2009
  58. Wednesday, May 6, 2009
  59. Wednesday, May 6, 2009
  60. Wednesday, May 6, 2009
  61. GAIN FLEXIBILTY Wednesday, May 6, 2009
  62. LESS OPINIONATED Wednesday, May 6, 2009
  63. WE ARE NOT ALL THE SAME Wednesday, May 6, 2009
  64. Wednesday, May 6, 2009
  65. ¿WHEN? Wednesday, May 6, 2009
  66. 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
  67. OPTIONS Wednesday, May 6, 2009
  68. JAVASCRIPT FRAMEWORKS Wednesday, May 6, 2009
  69. TEMPLATING ENGINES Wednesday, May 6, 2009
  70. OBJECT RELATION MAPPER Wednesday, May 6, 2009
  71. ORM Databases scalar values da ta objects Object Oriented Languages Wednesday, May 6, 2009
  72. RAW SQL SELECT * FROM Book WHERE price > 100.00 ORDER BY title; Wednesday, May 6, 2009
  73. ACTIVERECORD Book.all :conditions => [quot;price > ?quot;, 100.00], :order => 'title' Wednesday, May 6, 2009
  74. DATAMAPPER Book.all :price.gt => 100.00, :order => [:title.asc] Wednesday, May 6, 2009
  75. SEQUEL Book.find{|b| b.price > 100.00}.order(:title) Wednesday, May 6, 2009
  76. COUCHREST Book.by_price(:startkey => 100.01) Wednesday, May 6, 2009
  77. MANY MORE ORMS/DSLS Wednesday, May 6, 2009
  78. RUBY IS AWESOME Wednesday, May 6, 2009
  79. DATAMAPPER Wednesday, May 6, 2009
  80. 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
  81. 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
  82. 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
  83. DATAMAPPER does what ActiveRecord does... but differently Wednesday, May 6, 2009
  84. DATAMAPPER Copyright - Merb in Action - Manning db drivers using 1 unified interface Wednesday, May 6, 2009
  85. DATAMAPPER • procrastination as a value • Lazy Loading • Strategic Eager Loader Wednesday, May 6, 2009
  86. DATAMAPPER students = Student.all students.each do |student| student.books.map{|b| b.name} end Wednesday, May 6, 2009
  87. 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
  88. 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
  89. 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
  90. MULTIPLE REPOS Article.copy(:default, :nightly_backup, :created.gt => 1.day.ago ) Wednesday, May 6, 2009
  91. 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
  92. 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
  93. ADAPTERS RDBMS file system IMAP Sales Force YAML REST APIs custom APIs ... Wednesday, May 6, 2009
  94. SEQUEL • Prepared Statements • Sharding • highly customizable SQL work • high performance Wednesday, May 6, 2009
  95. HIBERNATE • ActionORM • JRuby Wednesday, May 6, 2009
  96. NON RDBMS SYSTEMS • AppEngine::Datastore • CouchDB with CouchRest or other DSL • Redis, Tokyo Cabinet etc... Wednesday, May 6, 2009
  97. RAILS EXTREME only for a few of you Wednesday, May 6, 2009
  98. CUSTOMIZE RAILS TO THE EXTREME Wednesday, May 6, 2009
  99. 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
  100. 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
  101. 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
  102. ¿FUTURE? Wednesday, May 6, 2009
  103. + + CouchDB Wednesday, May 6, 2009
  104. 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
  105. 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

×