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:
- Discovering Resources on Rails
- Problem with Crud?
- Get, Post and Clean URLs
- Accounts, Controllers and Crud
- CRUD is Not a Goal but and Inspiration
- Controllers, Design Patterns and MIME
- Doing By Hand Leads to Good Design
- Get, Find, Post Redux
- 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.



nice talk. i wish they showed the slided he was refering to throughout these videos.
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
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!
Interesting but useless without the slides!
I found the slides at http://www.loudthinking.com/lt-files/worldofresources.pdf
[…] 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. […]
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……
[…] Peter: SÃ¥g till slut http://www.scribemedia.org/2006/07/09/dhh/ idag. Tankestimulerande. Har du sett? […]
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…
[…] keynote […]
[…] 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! […]
The new site looks great!!
This presentation is great, but where can we find a copy of the slide?
[…] 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. […]
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…
[…] watching David’s keynote @ RailsConf 06 I decided to restart my forum and try the RESTful approach. This also gave my the possibility to […]
[…] ScribeMedia » RailsConf Keynote: David Heinemeier Hansson - […]
[…] David Heinemeier Hansson RailsConf ‘06 Keynote — an influential presentation that helped kick start interest in RESTful Rails […]
[…] 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 […]
[…] 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. […]
[…] Temat jest rozwiniÄ™ty w prezentacji DHH na RailsConf 2006. […]
The correct link for Davids slideshow is.
http://media.rubyonrails.org/presentations/worldofresources.pdf
Thanks David, you made my week.
Agile Web Development with Rails - Chapter 2…
Agile Web Development with Rails - Chapter 2…
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.
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!
[…] 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 […]