Clover, Lord of the Rings

The empty half-lot behind the Biogen building next door – which probably sits over a storage tank the contents of which I’d rather not think about – has at least four distinct kinds of clover and two different grasses. I think it’s quite pretty, but they’ll probably mow it into oblivion soon.

Cindy and I went to see Lord of the Rings: Fellowship of the Ring again yesterday, mostly because it was at the local cheap theater, but it doesn’t hurt that I got to see the Two Towers trailer as well. I did actually catch one new screwup: when Gandalf is facing the balrog on the bridge, he says “I am the wielder of the secret flame of Arnor”…ummm, no. The flame is from Anor; Arnor is something quite different.

I’m a bit disturbed by the fact that I didn’t recognize one of the people/scenes I saw in the trailer – a dark-haired woman lying dead/asleep in a boat or casket. I don’t think it was Arwen, and it better not be; they’ve messed with Arwen’s “historic” role enough already. In terms of story it might make sense if it were Eowyn, but neither the character nor the actress has dark enough hair. I fear that they’ve messed with the plot again.

None of this stopped me from downloading some LoTR-themed ring tones for my celphone, though.

Incubating Bad Eggs

One of the things that the net does for us is make it easier for us to find people with interests or beliefs similar to ours. That’s mostly a good thing. It’s good for Christians to find other Christians, migraine sufferers to find other migraine sufferers, ferret lovers to find other ferret lovers. Of course, white supremacists can find other white supremacists, and maybe that’s not such a good thing. What I’d like to talk about, though, is not how the net helps people meet others who will reinforce existing beliefs, but how it can affect the creation of new ideas – specifically technical ideas – as well.

The problem is that we’re all “miscalibrated” with regard to the significance of finding a few people who like our pet ideas. Let’s say, by way of example, that I think the programming world really needs a Forth-like language that has an anonymous P2P data store as a built-in type. Yuk. In the “old milieu”, if I presented an idea like that to 100 other programmers, at least 99 would tell me I’m off my rocker. Maybe I’d do it anyway, but I’d know that I was acting on an idiosyncratic belief. What happens now, though, is quite different. The net has made it possible for me to reach more people than ever before. It has also assisted me in a “sorting” process where the people whose interests and expertise (and prejudices and blind spots) are most similar to my own will be the people with whom I communicate most readily. When I go looking for feedback to my idea, no matter how crazy, I might find a dozen people who express some level of positive interest or encouragement.

What then happens is the key to the problem. I found these half-dozen people in the new milieu, but when I try to interpret that reaction as an indicator of the idea’s “viability” I do so using asumptions from the old milieu. A dozen positive responses out of 1000 programmers selected for similarity is pretty meaningless, but a half-dozen positive responses out of 100 selected practically at random could be considered significant. This apparent validation of the idea can have a serious effect on my reaction when I do enter a more diverse environment. I no longer feel compelled to present the idea as my own personal flight of fancy; now it’s an “accepted” idea within “the community”. If someone criticizes the idea, the critic might be considered to be the one who “doesn’t get it” or “needs a clue”. Sound familiar? It should, because there are some pretty vocal weirdos out there in the online technical community who seem much enamored of those exact phrases.

A thousand years ago, someone with eyesight as bad as mine would have been severely handicapped in their daily life; today, it’s hardly even an issue because of glasses and contact lenses. Ten years ago, really stupid technological ideas often starved to death quickly, but equally stupid ideas nowadays usually survive for a while in one “walled garden” or another before they find a quick and ignominious death in the real world. The herd is not being culled quickly enough. Some people would say I’ve just described the P2P phenomenon, or even the whole dot-com debacle, and they might be correct. The important thing is that the efficient “marketplace of ideas” that we’ve heard about is efficient in harmful ways as good ones. It’s more important than ever to expose ideas to the most hostile ones available early on, and not just the local mutual-admiration society (using the polite term for once), to see how they fare before wasting too much time on the duds.


As promised, here’s a picture (800×600, 139KB) of one of the ice formations from Sunday’s hike. Note the typically-sized oak leaf in the foreground to get an idea of the scale. The space behind the icicles is probably not large enough to fit a full-sized adult, but a smaller adult or pre-teen child would have fit. Grand Canyon it ain’t, but it’s still a neat kind of thing to see on a casual weekend walk.

Build One To Throw Away

David McCusker:

Building one to throw away is what happens during a learning process.
But it’s not what you do after you’ve learned enough quality lessons.

When have you learned enough quality lessons? When are you not in a learning process? I would say that the answer to both questions is a resounding never. Ever since Brooks first enunciated the principle, the reason you build one to throw away is that you’re going to end up throwing one away anyway. That being the case, you might as well try to maximize the learning:effort ratio for the first one. Be bold; try the daring design choice, not the conservative one that you would if you were committed to release the result. Travel light; deal with the core issues for your problem domain, but don’t get bogged down with peripheral stuff like pretty configuration or error logging code. Document what you’ve learned, but not evanescent implementation details. Prototype in a language suitable for prototyping, one that minimizes programmer time rather than run time by dealing with all of the range-checking memory-management etc. grunge for you. The idea here is that one lightweight prototype plus one “serious” version will take less time than one version that was supposed to be serious but really sucked, followed by another serious version that actually works right. Often, the prototype plus serious version will take less time than that first sucky version alone, because getting a tank out of a swamp can lose you a lot of time and is better avoided than remedied.

None of this means that you should go around rewriting stuff willy-nilly, or always make a “buy vs. build” decision in favor of the latter (even – or perhaps especially – if “buy” means to use an existing free program). If you refer back to the beginning of this article, you’ll see that we’re already talking about building, which means those decisions have already been made. This is about how to build new software, not whether to build it.

Funny Haiku

This haiku no verb.
Why? Just for the halibut.
Not too difficult.

Bogus Job Posting

I don’t know where this came from. If you know, please tell me. In any case, I thought it was pretty funny.

Amalgamated Consolidated Megawizards, Inc, LLC, AG
Jr. Web Development

We’re looking for a world class yes-man or yes-woman to complement our team! Come work with us in our charming warehouse in Hoboken!

What you have:

  • Master’s or greater degree in Physics, AstroAnthropology, Comparative Lit, or Molecular Biology
  • A Grace Hopper award from the ACM, a MacArthur Foundation fellowship, or something else that we can photcopy and add to our website to make us look smart.
  • Must know C, C++, LOGO, Pascal, VB, Perl, Python, Java, SQL, COBOL, ForTran, XML, HTML, DHTML, XHTML, 6502 assembler, CSS, and a bunch of other stuff that will help us keep our resume count down to under 1000
  • You can set up every type of machine known to man. You will have daily sysadmin duties in the follwing environments: Linux, Minix, Apple, Schmapple, PC, Fece, HP, SGI, DEC, Duck, Duck, Goose, Mac, and TI pocket calculators (scientific, financial, and 4-function). You will carry a pager 24×7, a cell phone, a U.S. Army Mobile Field Command Communications Unit, and a wireless Palm Pilot running X11, so that you can remotely fix anything, anywhere. We expect you to answer by the second ring. There is no time off. We own you.
  • Experience with Routers, NAS, SAS, Gas, and taking out the trash. Coffee making expertise is a plus.
  • You have excellent communication skills, a wry sense of humor, and are very handy with shoe polish when our sales team is getting ready for an important meeting.
  • You cannot have a family, a girlfriend, a boyfriend, a kitty kat, or take time to wink at the pretty barrista at Starbucks. We run a hard-charging environment here, and we don’t want our employees getting distracted.

Starting pay is $19,000/yr! Our scientific research, conducted n over 20 provinces of China, Bangladesh, and in a wild cafe in Reykjavik, Iceland, shows this to be quite competitive.

Sound good? Well let’s get started! How to submit your resume:

  • Pigeon (Columba livia, submissions from African or European pigeons will summarily be set alight at our Friday Beer Bash, yes, including the pigeon.. you gotta problem with that?)
  • MS WORD (Word ’97 edition only), sent in triplicate, on 5.25 floppy disks
  • Typewritten, on nice cotton paper that doesn’t feel scratchy
  • Sanskrit Engravings, or Egyptian Hieroglyphics, are preferred. If you can get ahold of the Rosetta Stone (for use as the company doorstop), we guarantee to give you a space in the company parking lot (not that you are going to be going home, because, remember, we own you).
  • Do not send email, smoke signals, drum patterns, SOS light displays, call us, holler our name, or knock on our mother’s door. No Moaners, Boners, Whiners, Miners, Loggers, or Stinky Fishermen, please.

We are an equal opportunity employer. We support all faiths, creeds, denominations, desires, fantasies, and forms of artistic expression. Just do it on your own time.

House of Lists

OK, I found a site full of fun lists while looking for erotic film-title ideas. Don’t ask. No, just don’t. Anyway, there’s a lot of good stuff there; so far my favorite is this list of random facts.

Not Even Paper Tigers

There are just way too many cheaters and all-around jerks on the Internet Chess Club. It’s particularly bad among the guests. It’s sad that so many people all over the net choose to act in ways that in real life would surely result in their face being used to mop a dirty bathroom floor. I’d like to think that more people behave reasonably in real life because it’s the right thing to do, not for fear of such violent repercussions if they don’t, but almost two decades of experience in the electronic world seem to indicate that such a belief is naive at best.

Fun Things Seen While Hiking

On Sunday, Cindy and I did a short hike on Mt. Wachusett, which is about an hour west of Boston. It’s a small mountain, not much of a challenge, but it’s a nice way to warm up for the real hiking season. Among the things we saw:

  • Several turkey vultures early on, circling lazily.
  • Another kind of hawk at the top – not a red-tail, but other than that no idea – diving for some kind of prey in the bushes.
  • Many places where the ice had pushed up through the ground, creating little clusters of needle-thin columns as much as three inches long (I’d love to find out more about how that works).
  • Some very impressive icicles (pictures soon).
  • A large ice-covered rock, with large separate drops/blobs of water visibly flowing underneath.

I know, none of those things are amazingly exciting. Hiking is definitely a “had to be there” kind of thing.

More Fuel for the Firewire/USB Fire

I found two direct comparisons of Firewire/1394 vs. USB 2.0 today. Both compare speed using each interface to the same device that supports both. The first shows a slight advantage for 1394; in the second, 1394 absolutely stomps USB 2.0 by 15-30x. This supports my often stated belief that USB 2.0′s nominal bit-rate advantage (480Mbps vs. 400Mbps) is meaningless in real life.