Acknowledgments

No book is created without the help of many people. I owe a great debt of gratitude to the many who helped create this work. Without their help and support, these ideas would still be rattling around in my head.

Mike Loukides, my editor at O'Reilly, was instrumental in creating the idea for this book. He helped me understand the type of book I really wanted to write, and provided the encouragement needed to turn sketches of ideas into prose. Mike's extensive knowledge of the industry, the authorship process, and computer science in general were invaluable.

I had an amazing team of technical reviewers, who caught many of my errors in the manuscripts. Thanks are due to James Edward Gray II, Michael Koziarski, Leonard Richardson, and Zed Shaw for their revisions. Any remaining errors were originated and perpetuated on my own. (Should you find one of these errors, we'd love to hear about it at http://www.oreilly.com/catalog/9780596510329/errata/).

The production department at O'Reilly was very professional and accommodating of my odd schedule; Keith Fahlgren, Rachel Monaghan, Rob Romano, Andrew Savikas, Marlowe Shaeffer, and Adam Witwer all helped make this book usable and attractive.

I have many friends and colleagues who offered advice, support, criticism, and review. Thanks to Erik Berry, Gregory Brown, Pat Eyler, James Edward Gray II, Damon Hill, Jim Kane, John Lein, Tim Morgan, Keith Nazworth, Rob Norwood, Brian Sage, Jeremy Weathers, and Craig Wilson for your input. Thanks also to Gary and Jean Atkins, who, although they know nothing about Rails or software development, never failed to ask me about my book's progress and offer encouragement.

Others provided inspiration through their books and writings online, as well as discussions on mailing lists: François Beausoleil, David Black, Avi Bryant, Jamis Buck, Ryan Davis, Mauricio Fernández, Eric Hodel, S. Robert James, Jeremy Kemper, Rick Olson, Dave Thomas, and why the lucky stiff.

None of this would have been possible without Ruby or Rails. Thanks to Yukihiro Matsumoto (Matz) for creating such a beautiful language, to David Heinemeier Hansson for creating such a fun framework, and to the Ruby and Rails committers and communities for maintaining them.

Thanks to my parents for their continual support.

Finally, thanks to my wonderful wife, Kristen, who put up with a year-long writing process. She encouraged me to write a book when I thought it impossible, and supported me every step of the way.