My Past Life

It’s somewhat amusing that my career at a previous company (or a close analogue) made The Daily WTF: A Case of the MUMPS. (The comments are also interesting.)

For four and a half years I programmed in MUMPS and in Visual Basic. It was an odd combination. It paid well, though. The work was actually fairly interesting, but a lot of that was because I was both aggressive about being one of the guys to use new technologies when the opportunity presented itself, and because the industry the company served was itself interesting to learn about. (Of course, one might call that a backhanded compliment: at Apple there’s so much to learn and new things to try that if I were aggressively picking up everything that came down the pipe, I’d never have time to do any real work.)

But MUMPS also feels a lot like a shell scripting language: Objects are created on the fly, creating anonymous data structures (arrays of dictionaries and so forth) is so easy that it’s commonly done, the syntax is quirky but not so bad once you figure out a paradigm you’re comfortable with, etc. Perl, Python, and even Ruby (my favorite of the three) all have touches of these characteristics to some degree. (I’m not a big fan of Python, and when I first read about it, its line-indenting restrictions reminded me a lot of MUMPS’ peculiar code-block notation.)

Reading the WTF article, I do have to wonder whether I view those days through rose-colored glasses. If I were to go back to programming in MUMPS (or M as it’s often called these days), would I be able to put up with the low-tech editor, the limited file sizes, the syntactic restrictions, the lack of any object-oriented programming at all?

Well, probably not. Especially since I’ve drunk the Objective-C kool-aid.

(Sent to me by Mark.)

Amazon Christmas “Fun”

I’ve been using Amazon.com for a long long time. My oldest orders on record there are from 1998, but I’m sure I was ordering from them before that. I’ve always been very impressed with their business: Availability of items, fringe benefits like the Associates program and the free super saver shipping option, and their customer service, which has always been very helpful when I’ve had to contact them, which fortunately hasn’t been very often.

This Christmas season has eroded my faith in Amazon somewhat. Now, I’ll say up front that things turned out well overall, but my Christmas experience with Amazon resulted in more glitches in one month than I think I’ve seen since I started using them.

Here’s a rundown of what happened:

  1. I received a box from them which I opened and noticed that the gift cards were from “Mom” but to “Rachel”. The box was indeed addressed to me, so I opened the itinery to see that someone else’s order had been placed in a box addressed to me. I contacted my family, and the UPS tracking number was one my Dad had received. He contacted Amazon by phone and was told I would have to send the items back and would received a gift certificate for the value of the items Dad ordered. Dad’s comment: “That’s not very much like Christmas.”

    Well, instead I contacted Amazon customer service through e-mail, and after I provided them all the information they needed, they instead packed up a new box with the items Dad ordered and sent it to me. So all turned out well, and I didn’t need to send anything back. (Ironically, my aversion to calling people on the phone worked in our favor here.)

  2. I received another box with a wrapped item from my Mom, and another wrapped item addressed to someone else. Apparently someone else’s order got placed in the same box by mistake. Since there was no indication the first time around that they’d fix the other person’s problem unless that other person contacted them, I didn’t contact Amazon about this. (The item in question was a CD which actually looks kind of interesting.)
  3. My Dad received some items I ordered for him, and they were wrapped, but had no gift cards. The order didn’t show any gift note when I reviewed it, so in all fairness I might have screwed this up myself rather than Amazon losing my note. On the other hand, Dad says he received some gifts from someone else which were not wrapped but should have been.
  4. Finally, I received one CD from my Dad which should have been wrapped but was not. That’s not the fun part though: When I unwrapped presents from Dad, one of them was another copy of the same CD. However, if this was part of the order they had to re-ship, this might have just been a little fallout from the first problem. (Anyone want a copy of Shadow Gallery‘s Tyranny?)

None of this is likely to make me stop using Amazon in the future (fat chance!), but it is an unfortunate set of events. The moral of the story is: Take a look at what you received, even if it’s wrapped, to make sure it looks like it’s correct, because the sooner you notice any problems the sooner you can work with Amazon to get them fixed.

And Amazon’s customer service still rocks, for getting things fixed in time.

Library Thing

Library Thing is a Web site where you can catalog your library. You can enter up to 200 books for free. Or you can buy a membership for $10/year or $25 for your lifetime. (The latter is obviously a great value in the long run.)

I’ve started entering my library, starting with the hardcovers and trade paperbacks (otherwise known in my household as “the small bookcases”). You can view my library if you’d like, although it will take a while before I get it fleshed out. (Don’t expect me to get to the humor or non-fiction for a while.)

The site has its pros and cons, although its pros far outweigh its cons.

Pros:

  • You can search by author, title, ISBN, and other aspects to enter a book into your library.
  • Searches can be made against several sites (such as Amazon), which often come with default information and cover art.
  • The editing page is very easy to use, if you want to tweak an entry in your library.
  • You can link to reviews you’ve written in your journal so others can access them from Library Thing, or write a review directly on the site.

Cons:

  • The database doesn’t have separate fields for copyright date (i.e., when the book was first published) and publication date (i.e., the date this edition was published). Both are interesting to track.
  • The database doesn’t have a way to list individual stories in a collection, or (of more interest) individual books in an omnibus.
  • The Suggestions page doesn’t have a way to ask that it permanently exclude a volume from its recommendations (although “omit authors already in your catalog” gets close).

One thing that’s been interesting as I enter books is that I’ve found a few books I own which I could not easily locate via the search mechanism. For instance, I own first edition hardcovers of Vernor Vinge’s novels The Peace War and Marooned in Realtime, and I couldn’t find the latter, so I entered it manually. That means I’ll probably also scan its cover to add to my library.

All of this is probably not the best way to spend my time. 🙂 As Cliff said when I told him about it, I’d probably do better spending my holiday vacation writing my own fiction.

Map of the Internet

Here’s a very cool “map” of the IP address space circa 2006 in the web comic xkcd.

What surprises me about the map is how much unused space there is. Had you asked me before I saw this map, I would have said I thought the IP address space was nearly filled up.

Here’s why:

IP addresses are 32 bits long, which means there are about 4 billion possible IP addresses. That works out to less than 1 address per living human. Okay, so not everyone is going to have a computer on the Internet – certainly most people in third world countries won’t – but that still works out to about 13 computers per US citizen. Certainly every US citizen isn’t going to have 13 computers, but many people will have 2 – or more – 1 at home and 1 at work. And companies have lots of computers acting as servers, and universities have lots of computers sitting in labs for general use. And on top of that, I knew that top-level slices – 1/256th of the IP space (each with about 15 million addresses) – had been allocated to companies, such as Apple, and therefore that a large slice of the space had been allocated but was probably not being used (if you think Apple has 15 million computers in use on its campus, you’ve got another think coming). Among all of this, I would have guessed that we’d use up the IP address space sometime in the next 10 years.

Instead, about 1/4 of the top-level subnets are not allocated at all.

I think I basically grossly overestimated how many computers there are: Probably there’s less than 1 computer in the US per citizen (there were about 190 million in early 2005), and less than that across the rest of the world. And fewer top-level slices had been allocated to companies than I’d thought, so there’s less potentially-allocated-but-unused space. Plus, the use of NAT on local networks means multiple computers can share a single IP address, which I think is a common setup for home networks where all the machines are clients (rather than servers). This is how my home network is set up, for instance.

I still wonder if we’ll run out of IP addresses in my lifetime, though. Especially if we have some sort of nanotech breakthrough where we have large numbers of very small computers which all need their own unique network identifiers. “I’m sorry, the singularity had to be delayed because we ran out of IP addresses.”

Analysis of Poor UI Design

Joel Spolsky analyzes the “Off” button and menu in Windows Vista. He claims that the UI is cumbersome (and I agree with him), and considers how it could have been better designed.

Using Spolsky’s article as a springboard, former Microsoft developer Moishe Lettvin provides insight into how Microsoft’s departmental organization contributes to this sort of poor design.

Spolsky briefly follows up.

All of this via Ceej.

Daylight Savings Time Without A Saving Throw

The official Dreamhost blog notes that computers will need to change their algorithms for handling Daylight Savings Time starting in 2007.

No, really.

I had heard about this change, but hadn’t considered the implications to the computer industry. Not to mention everyone who’s used to their VCRs and PDAs and other electronic gizmos adjusting their clocks for DST automatically, and whose software is unlikely to ever be revved. (Cell phones are less problematic since they seem to already get the local time via a server uplink.)

Next up: Congress passes law instituting a return to the Julian Calendar.

(In case my entry title baffles you, here’s the entry for saving throw.)