I’m Back

Well, I’m back. All in all, it was an excellent trip. The weather was perfect the whole time, the folks at the UCB retreat were even more exciting than usual to be around, and the outdoorsy stuff was amazing. I’ll be posting lots more later, but for now here’s a short list:

  • Technical high point: actually seeing OceanStore run
  • Technical low point: nagging concerns that the OceanStore implementation (Java, not fully multi-threaded, local-NFS-server interface) would still require lots of work to be made real-world-usable
  • Non-technical high point: summit of Mt. Tallac
  • Non-technical low point: losing “Little P” (a small stuffed platypus who had accompanied us on trips all over the world)

I’m Here, You’re Not, Nyah Nyah

Sorry for the lack of updates, folks. I’m at the UCB Oceanstore/ROC retreat at Lake Tahoe right now, and will be staying in the area through this coming Sunday. Stories, pictures, links, etc. when I get back.

People Have Names, Scum Doesn’t

It looks like “web of trust” ideas are gaining currency in online gaming. I don’t play these sorts of immersive multiplayer games myself, but I see plenty of cheating on ICC so I know there’s a lot of scum out there. Online gaming provides a striking illustration of how anonymity – contrary to proponents’ grandiose claims – is most often used in purely negative and destructive ways.

Virus Warning

If you happen to have both me and dwarburton1@ameritech.net in your address book, you might have the Klez virus/worm, which sends mail to one person in your address book masquerading as another. Same goes for atkdeep@hotmail.com. If either of these addresses look familiar, please check your system. In fact, it seems likely that these both came from the same person, since both contained as payload a JPEG from Skipjack Financial Services.

Think It, Don’t Say It

Yes, this quote is taken out of context. The person who said it is manifestly not a bad person, and is quite brilliant besides, but should probably consider how it sounds to others. Unfortunately, the attitude expressed here is held all too sincerely by all too many people on the net.

they don’t listen when I have things to say. Other, healthier organizations and people don’t seem to have this problem.

Always remember that you can be wrong sometimes too. When people don’t listen to your (generic “you”) ideas, or don’t respond, it might actually be for reasons other than their own blindness or foolishness. Factors or events of which you are totally unaware might have more effect on eventual outcomes than the matter on which you sought to advise. It’s even possible that taking your advice would have led to an even worse outcome. Trying to imply that someone is “unhealthy” merely because they failed to acknowledge your brilliance is…well, it’s just obnoxious.

Backyard Wildlife

The weekend did, indeed, turn out much better than it started. It was mostly a very mellow time, which is good after the intensity of the previous weekend and of the conference plus vacation next week. One highlight was the discovery of a family of common grackles living somewhere in the neighborhood and spending significant time in our very own back yard. While the grackle is not a terribly uncommon bird, it’s a very elegant-looking one and uncommon enough in our environs to seem noteworthy. Watching dad feed junior, while mom swooped overhead periodically, was a special treat. Maybe I’ll grab the camera and snap a picture if I see them this week, but I don’t think I have enough of a zoom lens to really do them justice; in particular, the iridescence of their plumage seems only rarely captured even by the best wildlife photographers.

Succinctness Considered Harmful

Sorry, Joey. I just couldn’t help myself.

In his latest bout of LISP self-congratulation, Paul Graham poses a challenge obviously intended to favor the horse he’s betting on:

The problem: Write a function foo that takes a number n and returns a function that takes a number i, and returns n incremented by i.

The problem with this particular challenge is that it demonstrates the tendency for many programmers to view the world through the lens of their favored programming language or style. LISP programmers like Paul rightly resent it when the computing majority states every problem in C++ or Java terms, but that only makes it less excusable that he’s doing exactly the same in reverse. Generating functions on the fly is just not all that useful in real life. There are almost always perfectly acceptable alternatives, most of which would probably seem more intuitive to future code maintainers. Some would quite reasonably argue that the way Python forces you to do it with object is The Right Way, and the way Paul would prefer to do it with reference parameters is totally The Wrong Way (especially since reference parameters and side effects are anathema to functional programming). The function-generation approach might seem more intuitive to someone steeped in a particular paradigm and linguistic idiom but that’s basically circular reasoning. Should people learn LISP just so they’ll be more comfortable with LISP-specific idioms and programming styles? If so, why doesn’t the same logic apply to LISP programmers learning Java?

The only possible reason to learn a new language is because it’s easier to express solutions to problems of interest in that language. Automatic garbage collection, dictionaries or hash tables, exceptions – these are all features that clearly make programmers’ lives easier, and might justify a switch. Yes, LISP has had these features forever, but they’re separable from LISP. That other languages have become more “LISP-like” by adding these features does not justify the adoption of other completely independent LISP (mis)features.

Lastly, we come to the Succinctness is Power fallacy. Paul never presents it quite this succinctly, but here’s the implicitly proposed syllogism:

	P1: Languages M and N are more succint than languages Y and Z

	P2: People are more productive in M and N than in Y and Z

	A: More succinctness will always yield more productivity

Can you spot the fallacy? Here’s a hint. Perl is pretty succinct. So is Forth, and APL more so than either. Why, then, does Paul not consider these to be ideal languages? One of the best things about Python is its readability, even to non-Python programmers (for most everday kinds of code), and that’s almost antithetical to succinctness. Here’s the statement I would make, instead of Paul’s:

Good languages tend to be succinct, but that is a side effect rather than a cause of their goodness.

The most important thing is that common and obvious operations should be expressible in brief and obvious ways. It’s OK if more exotic constructs are more difficult to create or understand. This, I feel, is where LISP fails, because it tends to make just about everything almost equally obtuse. You can’t just learn LISP a little bit at a time like you can with many other languages. People who are learning LISP often complain about how alien it seemed until that moment when they just “got it”. Even LISP advocates often allude to this mystical moment as though it were a positive thing, as though it it were some kind of enlightenment conferring special status on those who achieve it. Maybe that’s where their huge egos come from. The problem is that the “got it” moment can represent acceptance of confinement instead of freedom. Think of how you have to push to get your foot into a tight ski/snowboard boot, and the relief when it finally slides in, to see what I mean. (Those who don’t ski or snowboard can doubtless think of other, often more colorful, analogies.) The feeling of relief comes from having passed through a confined space, but not necessarily into one larger than the one you left.

I really hope Paul enjoys life inside the boot, because he seems too old and tired and inflexible to squeeze through that opening again. I also hope he’ll accept some day that the rest of us have no desire to join him. We’re doing just fine out here, thanks, and all those big heads in such a small space make it seem a mite crowded in there.

The Big Lie

In today’s Boston Globe Magazine, Scot Lehigh addresses the issue of technology contributing to an increase in rudeness. In particular, he talks about how to handle email flames:

When a particularly vile note lands in my in-box, I reply to it this way: “I received your interesting and intelligent note. It certainly speaks well of you.”

Great idea, right? How could I have a problem with that? Well, if Scot had said “you should” instead of “I do” I wouldn’t have a problem with it. As it turns out, though, I’ve had some interactions with Scot that lead me to believe that his claim to respond in such a way is a big fat lie. On January 2 this year, I wrote While Globe Editors Slept in response to one of Scot’s columns. I then sent him email notifying him of the article’s existence, and got back the following reply the next day:

Yes, Jeff, but it is completely nonresponsive to argumentation and thus

just silly. If there were any real or thoughtful points or if it was done

in the spirit of a real exchange, I would respond, but it’s just a

muddle-headed rant, really

Note that every part of this is crafted to offend, and none to respond to the questions I posed. He refers to my article as “just silly” and a “muddle-headed rant” lacking “real or thoughtful points”. Read it yourself to see if you agree; it’s not exactly Pulitzer quality, but it’s certainly better than his characterization of it. Best of all, even as he himself evades any discussion of the actual issues, Scot calls me non-responsive and accuses me of not acting “in the spirit of a real exchange”. Too rich.

Now, why should we believe that someone who responds in such an obnoxious and hypocritical way to my moderately-toned article actually makes a habit of responding to “vile notes” as Scot claims in today’s article? Simply put: we shouldn’t. It’s an absurd stretch. The only context in which I could possibly imagine him responding so politely would be if his boss – who had been notified of Scot’s previous lapses in professionalism – had ordered him to restrain himself. In that case, he hardly deserves credit for the idea.

The real lesson Scot teaches us is not how to handle email flames, but that the vaunted professional standards which supposedly set “real” journalists apart from the weblog rabble don’t really mean squat. I read a hundred articles on the web almost every day, written by pure amateurs, that are better researched, better written, and more insightful than what passes for op-ed in the Globe nowadays. When the Globe’s own “professional” columnists crib 90% of their material from other sources (as Scot did from the NY Times and Post), with the only original content being pure lies, and better content is available for free or nearly so from “amateurs”, maybe it’s time to for editors and publishers to reconsider how money is being spent on content.

Adventures in Home Ownership

A few months ago, there was a squirrel in our basement. I generally like squirrels…outside. Inside, not so much. My preference for dealing with our little unwelcome guest would have been to find and seal up the hole where he’d come in – while he was outside, of course – but that effort failed. With some regret, I resorted to poison to deal with the intruder. Next day, it was obvious that someone had chowed down on the poison, and there was no more scratching in the walls. There was no dead squirrel anywhere I looked, either, but the poison in question is designed so that the victim will head out to seek water, so I didn’t worry about it too much.

Recently we’ve been noticing an unusual number of flies about the house, especially downstairs. Being the geniuses that we both are, it only took us a couple of weeks to start wondering whether the flies and the missing squirrel corpse might be related in some way. Accordingly, this morning I climbed into our crawlspace to have a look around. Sure enough, in the least accessible corner of the crawlspace, I found it. Well, sort of. What I found was a pile of brown goo with some squirrel hair on it, along with the anticipated contingent of flies and their lovely children. Forward-thinking guy that I am, I happened to have not one but two plastic grocery bags with me, plus a can of bug spray. One bag was used as a glove, to shovel the mess into the other, and the can was used to ensure that even unseen carrion-seekers would not survive their visit to the area. I even had time to marvel at the seeming lack of anything resembling bones in the squishy mess I was dealing with. Odd.

I’m sure my readers are wondering, at this point, how I kept from hurling during this rather malodorous process. I’m afraid I don’t have an answer for that. However, I’m proud to report that I didn’t, and pleased at the thought that the weekend is highly unlikely to get any worse than how it began.