RailsConf Keynote: David Heinemeier Hansson

Download the Presentation

Before you listen, download the PDF. It’ll give you all the pointers and samplers spoken about in the presentation. Good stuff.

With the release of Rails 1.2 we take a look back at David Heinemeier Hansson’s RailsConf keynote from Chicago.

In it, he outlines a number of issues that the Rails team was looking at as they moved towards the current release, the importance of opinionated software and of course, how he “learned to stop worry and love the CRUD.”

Here, briefly, is an outline of the talk:

  1. Discovering Resources on Rails
  2. Problem with Crud?
  3. Get, Post and Clean URLs
  4. Accounts, Controllers and Crud
  5. CRUD is Not a Goal but and Inspiration
  6. Controllers, Design Patterns and MIME
  7. Doing By Hand Leads to Good Design
  8. Get, Find, Post Redux
  9. Q&A

Update: Before your start: Slides from this presentation can be downloaded from Rails site.

A bit about David, in his own words.

A product of Danish Design from the Winter of ‘79. Grew up, lived, and graduated in the city of Copenhagen, then moved to Chicago in November of 2005.

As a partner in 37signals, I helped transform the venerable design shop into a product company. Basecamp, Backpack, and Ta-da List are all applications launched since the shift came into effect in February 2004. I did the programming for all of them.

In July 2004, I released the framework Rails (also known as Ruby on Rails) from the work on these applications. I’ve been managing that as an open-source movement ever since. And lately, quite a few people has been taking notice. That means a bunch of speaking engagements including RubyConf, FISL, Reboot, OSCON, ETech, JAOO, and many others.

In August 2005, I won the Best Hacker of the Year award at OSCON from Google and O’Reilly:

In March 2006, I accepted the Jolt award of product excellence for Rails 1.0 and was featured in Wired magazine:
In addition to Rails, I’ve also created the most downloaded Ruby end-user application. It’s a small, light wiki called Instiki. I’m no longer actively developing on it, but still proud of how far I made it go. I even used it to write my final project towards my bachelor’s degree in Business Administration and Computer Science at the Copenhagen Business School.

This article was created by the editors and producers at ScribeMedia.Org.

Discussion

27 comments for “RailsConf Keynote: David Heinemeier Hansson”

  1. nice talk. i wish they showed the slided he was refering to throughout these videos.

    Posted by doogie houzer | December 21, 2006, 7:44 pm
  2. well that was fantastic!

    I’ve never seen david on video.

    No blog post I’ve read has done his presentation justice. I sure am lucky to have seen it. So I’ll give a quick thanks to ScribeMedia and all the people who contributed to the content of this page: Awesome! Thanks a million guys!!!!

    Well, that did clear up so many things.

    This is really an exciting new avenue that we will all be going down in the next year. I didn’t really understand until seeing this that ActiveResource was built on top of the “strictly CRUD ” approach and not simply facilitating it. Ive been confused about ActiveResource for a while. It all sounds really great.

    And “strictly CRUD ” has already made my current project much better organized and easier to deal with simply due to the good people that have blogged about David’s talk. So thanks to you as well!

    I have to admit though that I am a little bothered by the ‘URL identifier always being a database primary key because it isn’t worth fixing’ part. Rails is FULL of things that go against this. The user interface starts with a URL and that seemed to be one of the fundamental assumptions of this talk. Ok, this may be something more fitting for a plugin. But still, I don’t like that it is brushed off as insignificant. THE URL IS THE INTERFACE . Everything else is really icing on the cake. I don’t think we should loose site of that. I posted a comment about that at the ‘has_many :through’ site ( great site and great guy BTW ), so maybe that’s why it caught my attention.

    All in all I just think it’s fantastic that the routing of requests is getting attention in rails. ActiveRecord is the powerhouse of rails. 1.2 was a huge update to AR. I am glad to see that things are being spiffed up in other parts now. It would have been boring if we had new crazy ways to model a schema. But this is hitting another nail. Great.

    Im really happy that I have dedicated so much time to rails. Im a better programmer for it. And who couldn’t make that statement besides the folks who never gave it a shot.

    Great video David and the producers. I loved it and I enjoy working with rails. And things like this video are a big confidence booster when there is too much paper on the desk!

    Thanks, john

    Posted by John | December 22, 2006, 8:26 am
  3. This was one of the most impressive talks I’ve seen in… well… forever. ;-) I love these new ideas and concepts, and furthermore I have a new specialized application in planning that I was already thinking about how to implement all these different views (for the same data) that now already exist in the framework! Fantastic!

    Posted by Stoffe | December 22, 2006, 8:28 am
  4. Interesting but useless without the slides!

    Posted by Sven.Space | January 19, 2007, 10:27 am
  5. Posted by Martin | January 19, 2007, 12:57 pm
  6. […]   Hay un vídeo de la presentación que hizo DHH en  2006 RailsConf. También se puden ver las transparencias que utilizó en la presentación. La fuente comenta que lo mejor es escuchar el vídeo y seguir las transparencias ya que nos se ve muy bien. […]

    Posted by Iniciándonos con REST en RAILS en Crónica de una vida | January 20, 2007, 4:45 pm
  7. Why use REST, CRUD (and avoid SOAP) ?…

    Ruby on Rails 1.2 has been released. In the announcement, David writes about the new features he announced at the RailsConf in July. Don’t miss the video of his talk (the slides are here).
    The main points of the talk:

    what is REST,
    how……

    Posted by Code & rando | January 21, 2007, 3:07 pm
  8. […] Peter: SÃ¥g till slut http://www.scribemedia.org/2006/07/09/dhh/ idag. Tankestimulerande. Har du sett? […]

    Posted by Exektuiv resumé: Ruby on Rails värld av resurser [Det handlar om fibrer, Fleecelabs] | January 22, 2007, 8:45 am
  9. Nested CRUD resources in Rails 1.2…

    The CRUD methodology in Rails 1.2 is a great way to simplify your application structure. One of the first things you will find yourself doing is nesting one resource inside another. This is just the RESTful way of working with has_many relationships. T…

    Posted by Web 2.0 Technologies | January 22, 2007, 11:13 pm
  10. […] keynote […]

    Posted by Balance On Rails : Nested CRUD resources em Rails 1.2 | January 23, 2007, 5:22 am
  11. […] As David says in his 2006 RubyConf keynote speech, saying “no” to some things means you soon learn to just accept them, and make progress. If I need to access some legacy stuff on a Windows machine or call some ancient mainframe routines, I do it with web services and with glee. Don’t expect ruby libraries to connect to every legacy technology out there to move it forward - use what you’ve already got and stick it behind a service! […]

    Posted by Why ride the rails? « Openly Simple | January 27, 2007, 6:57 pm
  12. The new site looks great!!

    Posted by Joseph | January 31, 2007, 2:38 am
  13. This presentation is great, but where can we find a copy of the slide?

    Posted by bbebop | February 1, 2007, 11:57 pm
  14. […] CRUD refers to the four basic actions that we apply to web data: Create, Read, Update and Delete. In his 2006 RailsConf keynote, David Heinemeier Hansson describes the benefits of viewing your models through the lens of CRUD, arguing that in many cases, operations beyond the basic four often just incur controller bloat. As an example, he ponders options for defining a relationship between Users and Groups. The traditional approach would be to implement the group join as UsersController#join_group or perhaps GroupsController#add_user. A third solution would be to create a new class, Memberships, that relates Users to Groups. This distills membership management to the CRUD functions - MembershipsController#create. While an extra model might seem to increase complexity rather than reduce it, consider the benefits of a consistent set of functions in every controller. Also recognize the ease with which we can extend Membership — Membership#joined_at, Membership#authorized_by, etc. […]

    Posted by Nathan’s Blog - Wired World Wonderings » REST Easy, Rails 1.2 is here | February 14, 2007, 12:06 am
  15. First Steps in Rails - Day 3…

    Finally I’m back at learning Rails. I got annoyed by always having to boot up my virtual Kubuntu machine so I decided to install Rails directly in Windows. In order not to harm my Apache environment in any way I’m running WEBrick - and it works perfe…

    Posted by onLINE | March 4, 2007, 9:36 am
  16. […] watching David’s keynote @ RailsConf 06 I decided to restart my forum and try the RESTful approach. This also gave my the possibility to […]

    Posted by onLINE » Blog Archive » First Steps in Rails - Day 3 | March 18, 2007, 12:42 am
  17. […] ScribeMedia » RailsConf Keynote: David Heinemeier Hansson - […]

    Posted by GeoLabs » Links for February 28th through March 17th | March 18, 2007, 8:27 am
  18. […] David Heinemeier Hansson RailsConf ‘06 Keynote — an influential presentation that helped kick start interest in RESTful Rails […]

    Posted by Zach Copley » Blog Archive » Notes from the March, 2007 East Bay Ruby Meetup | March 24, 2007, 12:50 am
  19. […] One last link - you’ve just got to watch the David Heinemeier Hansson screencast from RailsConf 2006 where he introduces REST support in Rails. Be sure to follow along with his slides while you watch […]

    Posted by sideline.ca » In Search of REST | April 4, 2007, 10:32 pm
  20. […] Web services help a company maintain data integrity, because all other functional areas of an organization and their applications use the services to access and manipulate data, rather than accessing the database itself. This gives one more layer of abstraction, and serves a similar purpose to stored procedures. It will be interesting to see if Ruby on Rails’ CRUD-style REST web service library called ActionResource takes off in other areas of web development. For more details on this see the slides(pdf) and video. […]

    Posted by Jimmy’z Blog » I forgot to take a final! | April 26, 2007, 12:11 am
  21. […] Temat jest rozwiniÄ™ty w prezentacji DHH na RailsConf 2006. […]

    Posted by Rails: 10 przykazań : Ruby on Rails | May 6, 2007, 12:14 pm
  22. The correct link for Davids slideshow is.

    http://media.rubyonrails.org/presentations/worldofresources.pdf

    Posted by David Mabelle | May 13, 2007, 8:42 pm
  23. Thanks David, you made my week.

    Posted by Justin Castillo | May 16, 2007, 2:36 pm
  24. Agile Web Development with Rails - Chapter 2…

    Agile Web Development with Rails - Chapter 2…

    Posted by joeyDotNet | September 15, 2007, 8:42 am
  25. I think it’s an interesting feature…It gives more people the chance to get views having more featured areas. Im in the US, but I found more interesting videos to me, were featured on the UK homepage so I did have it set to that for a few days, but then I changed it back. I can see more of the ‘language’ aspect of the country feature to be more use to people in the long run though vs. the location specific featured videos.

    Posted by DDT-WEBKINZ | October 23, 2007, 1:42 am
  26. Can anybody say Mediator? Look it up as a design pattern. This design patter is one of my favorite ones. In Database design this would be called 5th normal form. Nice thing that it can be done in Ruby in rails. Good work!

    Posted by Victor Palacios | April 16, 2008, 3:01 am
  27. […] no idea what I am on about, I highly recommend that you take a little time to watch and listen to DHH’s keynote presentation at last years […]

    Posted by Developing With Style » Archive » Whats new in Cake 1.2: Routing and Config | April 20, 2008, 9:56 am

Post a comment