Red Squirrel Reflections
Dave Hoover explores the psychology of software development
Sun, 25 Jun 2006
Well, my talk is over and whoa, am I sleep-deprived! Why do I procrastinate like that? Well, mostly because I hate public speaking and I nearly always find ways of putting off preparing for stuff that I hate to do. The upside of my procrastination was that I had the flexibility to incorporate last-minute stuff into my talk. Which meant I got to demonstrate FireWatir on the Mac, along with plain old Watir on Windows via Parallels, and most importantly, Alex Chaffee was able to give a 15 minute experience report on his company's use of Selenium RC on Rails, which in a lot of ways stole the show. The audience I spoke to was very responsive and clearly wants to see progress in the acceptance testing space. I believe that with the rise of Ajax, browser-based-testing is an area that is ripe for a lot of movement in the next few years.
It was an awesome, humbling experience to be a part of the stellar community of people that RailsConf drew together. Before I left early to get to my daughter's softball game, I got to hang with Obie and Aslak a bit, and listen to Gareth and Martin make some of the strangest sounds I've ever heard as they watched their football team beat Ecuador.RailsConf keynotes were in the evening, which meant I missed most of them due to obligations on the homefront. It hurt to not be able to listen to Paul Graham, someone who continualy inspires me with his work. Thankfully, I did get to listen to Nathaniel Talbott talk about Homesteading, an excellent metaphor for the entrepreneurial programmer (which at this conference is a bit redundant). And I loved Nathaniel's use of scripture to supplement his talk.
Fri, 23 Jun 2006Mike's Captistrano talk and here's the table behind me (one of these kids is doing his own thing).
I spent the day in Rails Nirvana ... which strangely enough is right near O'Hare ... and has really bad wireless access. But nonetheless, it was awesome. The Guidebook was just what I needed. The begining was ultra-basic Ruby ... but since Obtiva will soon be offering Rails on TDD training and coaching, it was an excellent opportunity to watch the leading Rails instructors in action to see how they introduced people to Ruby (so I could learn how to teach these ideas). And then it got good ... metaprogramming. I had poked around a bit in the guts of ActiveRecord and played with some DSLs, but it wasn't until I listened to Dave's walkthrough of metaprogramming that I could say I really grok'd the stuff. And wow, I'm a different programmer tonight than I was this morning.
The afternoon was spent on Rails. Lots of review, but again, I was looking at it from a trainer's perspective, stealing ideas from Mike and Dave. And I also picked up some new stuff that I hadn't looked into yet: I especially liked Named Routes because they are a more elegant solution than they way I had solved link_to duplication with helpers.
My talk will be on Sunday morning, hopefully a few people will be awake enough to stop by to get a few tips on acceptance testing Rails+Ajax apps.
Thu, 15 Jun 2006here and here) have been translated into Russian: the Supertrain article and the Interactive Canvas on IE article. Although they probably don't have permission from O'Reilly to reprint them, it's an exciting moment to realize someone else has taken the time to make my work available to a new population.
Sun, 11 Jun 2006Tim Kuntz is one of my teammates at my current client. He also just started as the first Ruby guide for About.com. (Coincidentally, About.com was my first venture into technology: I was the Teen Advice guide in 1999. I'm using the term "technology" loosely. I learned HTML, which for a child and family therapist feels like putting a man on the moon.) Anyway, Tim is focusing on helping Ruby newbies get up to speed, so if you're interested in Ruby but haven't taken the plunge yet, have a look at Tim's articles (rss).
Thu, 01 Jun 2006Dan shared an important experience from Expo-C in which he debated Haskell creator Erik Meijer on the XP philosophy of Doing the Simplest Thing That Could Possibly Work. To me, the best part about Dan's story is the realization that our experiences as programmers (and as humans) so powerfully shape the way we approach our work. This explains why a language designer and a custom software consulant would have conflicting software design approaches, and yet both are "correct" in a specific context. We must be attentive our context, particularly when we change working environments. The programmer who thoughtlessly applies a single approach in every context is headed for trouble. Thoughtful programmers consider variables such as the Change Event Horizon when applying the rules they have developed previously:
"So now we had a working definition of 'too simple'. It can be defined as any decision that doesn't consider the scale of the change event horizon. As an agile developer, one of my objectives is to create as small a change event horizon as I can, through the medium of continuous integration, automated testing and regular user feedback."