The pursuit of perfection

May 23rd, 2006 | 4 comments

The law of diminishing returns: more and more gets you less and less. It’s familiar in many domains: economics, martial arts training, propulsion. Rush Limbaugh would probably agree it even applies to drug use. It certainly applies to developing software. There’s only a certain value derived from polishing a chunk of code. So, while I’ll reserve opinion about whether this is a ‘law’ of nature, it’s definitely something we observe in many contexts.

It’s interesting to me to note where the law of diminishing returns appears to break down.

I have always been intrigued by one of the ad lines used by Lexus: the relentless pursuit of perfection. For me, perfection is spelled Porsche, but I like that Lexus boldly puts perfection as the aim. The idea of pursuing perfection seems to be thumbing one’s nose at the ol’ law of diminishing returns.

While we’re not all engrossed in engineering the ultimate automobile, I think human artistic endeavor in general doesn’t pay much heed to the law of dimishing returns. I imagine an artist relies more on a sense of holistic completeness when deciding to stop working on a piece. Education is another area. Imagine telling your boss, “Er, I think learning more about this is just pushing the law of diminishing returns.”

In the end, it may be that the law of dimishing returns governs all our activities, but intriguing to me is how our perception influences our efforts. In the pursuit of perfection, I think we perceive each additional effort as adding value. We don’t see that value dimishing or we would likely give up. So, despite the ‘law’ of diminishing returns, it may be our perception that makes the difference between accomplishing something mediocre and something great.

Where for art thou lighttpd

May 23rd, 2006 | 2 comments

For the second time in a few days, lighttpd went awol on me. All that shows in the logs is ‘graceful shutdown started’, then ‘server stopped’. The VDS is fine and dandy, showing up-time of 26+ days. And the rails fcgi processes are all fine as well.

Perhaps this is a good time to give Mongrel a whirl. There’s been interest expressed around the office, especially after Redhanded’s quote from the interview with Zed Shaw about Mongrel using a parser based on a real grammar and parser generator, Ragel.

Alas, this bit of sysadmin has eaten the few minutes for my intended post, so I’ll leave you with just the teaser of a title for the next post…

PLANET ARGON is my Google

May 2nd, 2006 | 0 comments

Late breaking news (I really need to speak to my publishing staff about getting these out on time): Monday, May 1st was my first day as part of the great team at PLANET ARGON. Everyone extended themselves to get me up to speed on the working of the company. And, in truly classy fashion, the company treated us to a team welcome lunch on my behalf.

I am delighted and honored to be working with these dedicated, enthusiastic, highly skilled and intelligent folks. Innovation in web applications in general and Rails in particular is occuring at such a rapid pace and PLANET ARGON is committed to being in the thick of it. On the day I started, if you pulled up google search, typed ‘ruby rails development hosting’, and hit I’m Feeling Lucky, it would send you straight to the PLANET ARGON website. I’m here to contribute all my expertise to these endeavors, and I expect to learn a tremendous amount along the way.

So, it may seem odd to compare a small company in Portland, OR to that giant of search engines, etc. but here’s the connection: People I know who aspire to work at Google do so because of the company’s perceived technological innovation and excellence. And that’s the connection for me. The PLANET ARGON team is pursuing innovation and excellence in application design, development processes, project management, training and more. I was certain I wanted to be a part of the action.

Now boarding for PLANET ARGON. Stay tuned and I’ll fill you in on the adventures.

The lure of the black diamond

May 1st, 2006 | 2 comments

One great thing about Portland is the (usually) great snow less than 1.5 hours away. We have season passes this year for SkiBowl and the snow there has been great. But we had free passes for Mt Hood Meadows so we decided to go there this weekend. Turns out April 30th was a free ski and board day at all area ski resorts, so our tickets will be good for another day till the end of the season. Anyway, it was beautiful, sunny weather and a lot of fun.

Now, this is really my first season snowboarding (I went once last season) and I’ve never skied before. In other words, a rank beginner. But in this one season, I’ve gone from often sliding down on my backside, to mastering the falling leaf and stopping on my edge rather than my butt, and finally linking turns. I’ve also drastically reduced the frequency of sudden, bone-jarring endo’s resulting from catching an edge in the wrong direction. Along with the increasing skill, I’ve ventured into more difficult terrain. First the green circles, then the blue squares, and finally a couple black diamonds (but no double-black yet).

There’s a big difference between a green run and a black one. It takes a lot more effort; there’s a much greater chance of wiping out; it’s definitely intimidating to stare down that near vertical (it seems) face at the black run ahead. So, what’s the lure of the black diamond? If we consider some conventional wisdom about users of software, we may recall ideas like “users are lazy”, or “people take the path of least resistence”, or “someone will do the minimum to get by”, or “people are just pleasure seekers”. How does that add up? The path of least resistance is definitely not down the black diamond run.

It seems to me those ideas need refinement. I firmly believe that people are not lazy. Rather, living organisms are experts at balancing costs versus benefits, an expertise refined over hundreds of millions of years of evolution. I think people do what is most rewarding with the least cost. There is a premium on energy, so an organism must conserve it. That doesn’t mean always using the least possible, but rather using the least necessary to accomplish a goal. The difference is significant.

If we conceive of people as being lazy, we’re likely to design software that supports or encourages laziness. On the other hand, if we realize people are quite willing to expend the energy to tackle a black diamond run when the payoff in the thrill of the experience is great enough, we may wonder how we can design and construct software that brings out the best in people as they tackle challenges in their work. We may wonder how we can provoke people to be the best they can be. Does that sound too idealistic, too unrealistic? Or are we just too embedded in these silly over-simplifications that people are just lazy?

Xen and the art of noise (management)

April 30th, 2006 | 2 comments

While I definitely appreciate the folks at Textdrive for being early, and continuing, supporters of Rails, I recently decided to switch to a VDS for essentially the same reasons as Octopod. Actually, I have him to thank for that little extra nudge provided by his blog entry. I hadn’t given the idea much thought until then because it seemed like overkill for hosting a couple personal sites. Silly me.

After quite a bit of research, I decided to go with Quantact as well. And thanks to Ezra’s great tutorial, I’m up and enjoying myself a lot. Well, mostly. I decided to use Debian 3.1, which I’ve never used before. However, since I’ve been using Ubuntu for the past several months (which was a pretty big switch after RH and Fedora for years), the process was mostly painless. The one area I’m not real comfortable with is the firewall. I’m using Bastille, but I haven’t closed the book on that yet. Actually, the idea that’s pinging around in my head is: I wonder how it would work to use Rake to write the rules for iptables. Has anyone tried something like this? I’ll let you know what I discover.

Okay, you might be wondering how the title fits in here. If you’ve checked out Quantact, you may have noticed they are using Xen for the VDS. Impressive technology. The rest? Well, when evaluating what I was finding most unsatisfactory about shared hosting, I realized it was the “noise”. All these processes, all these directories, all this stuff going on that had nothing to do with me. I was spending a lot of time in that noise, especially that webmin interface when I just wanted to type a few lines and be done. Now ps aux fills less than one screen of my xterm. I don’t think about special cases or file tickets for a port. Mind you, I’m not saying Textdrive has it all wrong. I’m just saying, my Xen VDS is nice and quiet.