The dangerous appeal of the obvious

October 22, 2007

For reasons that do not fit into the margins of this entry, DWiki sometimes needs to get the current Unix load average. I developed DWiki on Linux, and getting the load average on Linux is really easy; you read a line from /proc/loadavg, split it into three floating point numbers, and you're done. So I wrote a get_load function that did that and forgot about the whole thing.

Then this server got changed from Linux to FreeBSD, and suddenly that code didn't work any more. (Because I had been paranoid, it didn't fail explosively; I had assumed that someday system problems might cause things to fail and coped with it.)

FreeBSD doesn't have a /proc/loadavg; instead it has a getloadavg(3) function in the C library. I gloomily contemplated how to make a C library call from Python, and on the off chance someone had already written an extension module to do it I did a Google search on [python getloadavg].

Which promptly turned up the general and supported Python function to do just this, os.getloadavg(). This not only solved my problem but would have saved me the effort of writing my get_load function in the first place, if only I had thought to look for it instead of leaping on the obvious way of getting the load average on Linux that I already knew about.

This is the dangerous appeal of the obvious: just because I know how to do something doesn't mean that I know the best way to do something. Maybe I should keep looking slightly harder, just to make sure.

(You could say my issue with rounding up was the same effect in action, although it was less obvious to me then.)


Comments on this page:

From 84.184.255.130 at 2007-10-23 05:55:47:

This is also known as Satisficing (http://en.wikipedia.org/wiki/Satisficing).

Basically, what it comes down to is that people routinely settle for the first thing that works, instead of the best thing.

It also explains why large parts of the Windows-using population don't know about alt-tab. :)

Written on 22 October 2007.
« Vim options it turns out I want
How we sized the overcommit ratio »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Mon Oct 22 21:42:03 2007
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.