Archive for April, 2005

The Law of Crappy Gadgets

If I rule so much, I should have a law or two named after me. You know, like Moore’s Law or Metcalfe’s Law. It’s only fitting. So here it is:

A gadget’s crappyness is proportional to the square of the number of functions it performs.

First, a gadget: any small electronic device that does something or various somethings. It probably must have at least one button, preferably some kind of display, and be small enough to fit in a pocket. Possibly it could be a little bigger, but we’re getting to appliance territory there, and WHOA there buddy! We’re talking about gadgets.

Next, crappyness: this is a simple concept. Pretty much every gadget has good points. However, it’s not the “goodness” that matters. It’s the crappyness (or absense of crappyness) of something that determines whether you will like it.

Finally, functions: functions are what some gadget can do. Some good examples of functions are: making phone calls, playing music, storing and organizing stuff, doing math, “doing” email, etc. The point is that a “function” is a pretty big, general thing.

Now, back to billo’s law. The basic idea is that as you add functions to a gadget it becomes crappier precipitously. A gadget with one function is going to have an inherent crappyness level of 1. If the gadget is created by talented designers and engineers, and they work really hard and know their craft, they have a good chance of making a nice gadget with very low crappyness. People will like it very much if they succeed.

Suppose we add a function to the gadget. Let’s say the gadget started off as a phone, and let’s say the creators did a great job, and it was a great phone with barely detectable crappyness. Some genius at the company decides that the phone should do something else: it should be a little PDA, and do calendar and contact management functions. “It will be so great!” says the genius (and by “genius,” I mean “idiot”). “People won’t have to carry a phone AND a PDA. And when they open the meeting even on the calendar, it will have the phone number of the conference call right in it, so they’ll be able to call in with one click!” Nice job genius. You just added a function, thus increasing the crappiness of the great phone by a factor of 4. You’re so fired.

There are two problems with cramming functions into gadgets. The first problem is the reduction of focus. Every software developer knows that when you try to make a product do more and different things, the time and attention given to doing fewer and similar things is diluted. People lose track of what’s really important because they are juggling more competing priorities. The second problem is that gadgets are (ideally) small. They have a number of things in precious quantities: power, physical dimension, buttons, screen pixels, connectors, memory. As one adds functions, they functions compete for these precious resources, stealing them from the original functions or driving up cost and size of the gadget. Usually both things happen: they other functions are all dilulted and starved, and the whole gadget is bulkier and uglier and costs more.

Up this point, I’ve been very vague and used theoretical examples. Let’s now look at real examples, and see if this holds water in the real world.

Nokia 8800 phone (circa 1999): you’ve probably seen this one. It was super small, with a shiny (but fake) chrome finish. Super small, it had long battery life, great reception. It was a great phone. It was, without question, the best wireless phone I ever had. It did one thing, make phone calls, and it was barely crappy at all. Good.

Original Blackberry (circa 1998): everybody has the big Blackberries now. We’ll get to those later. The original one was about 2x3x.75 inches. It had a little 8-line black and green LCD screen. It did almost nothing except send and receive email. Gosh, it was great at that. It had a tiny qwerty keyboard and a little thumbwheel. Good.

Palm Pilot (1995-present): the Palm Pilot is a general purpose gadget. But, in general, I would consider its primary function to be storing data and providing applications that allow mostly read-only access. It’s hard to do a lot of input with a Palm. It’s easy to run specialized program than manage lots of little records for reference: address book, calendar, and (my favorite) Robert Parker’s wine database are some good examples. The great things about the original Palm that carries through to today (mostly) are: instant on (no booting), synchronizing with a much more powerful data management system (your computer), and UI paradigms that nearly all applications follow rather well. Good.

Digital Cameras: pick any one. Some stink, some are fabulous. My favorite one that qualifies as a gadget is the Minolta Dimage. It is incredibly small, has very few buttons, takes excellent quality pictures and turns on and is ready in barely over 1 second.

Nokia 3650 camera phone: Now we get into it. You’ve seen this phone; it has a huge color screen, and all the buttons arranged in a circle. Trial dialing. It’s awful. Battery life: hah! And, a really bad, slow blurry camera. Oh, it’s also a crappy PDA too.


Blackberry Nextel. This takes the blackberry email device, adds a phone to it, and also adds the Nextel walkie-talkie service. OK, the email capabilities are still great, which is something. But it’s a horrible phone: hard to hear, and hard to dial on the tiny number keys on the left 1/3 of the keyboard. The killer is that the walkie-talkie stuff makes the battery go from full to zero in about 48 hours of idle time. Bad.

iPod. OK, the iPod is great. It’s totally focused on one thing: playing music. Sure, it has the odd little extras like a read-only list of your address book, or the “breakout” game. But those are not serious attempts to replace other devices. I think it’s telling that Apple did not try to cram a camera onto the iPod Photo. I just hope they don’t try to cram a phone in there.

How AOL Can Win

People in the press and software industy often talk about how AOL is struggling to find new ways of making money, as their dial-up subscriber base steadily defects to broadband. I think I’ve figured out one way they can, and it has little to do with addressing the current target customer base of AOL.

The primary AOL customer is the non-computer-savvy average human. This is the largest percentage of the population, and if you are going to target a subset as your main market, that’s a good segment to go after: the biggest one. So AOL is doing clever things like including free anti-virus software and offering system management tools. Great. But $25 per month is a lot to pay for that kind of stuff when you could buy it a la carte for much less.

What if AOL had something already in their bag of tricks that every internet user in the world needs? Something that everybody, whether they use Windows, Macs, Linux, or anything really needs. Something that they would pay money for, they need it so badly.

Guess what? They do.

Let’s talk about spam. Everybody knows about spam. There’s a growing industry of software and services to block spam without blocking good mail. Some solutions work quite well. Most are pretty idiotic. They all are a band-aid on the fundamental design of SMTP, which is the protocol that is used for Internet email.

The great thing, and the horrible thing, about SMTP is that it allows for free-flowing communication between computers. I can send and email to you, and it will get delivered to you, pretty much guaranteed. I can send the email from just about any computer in the world, any time I want, and it will get to your ISP or your company, and your ISP’s computer will see it and say, “Oh this is for Jane. I know Jane, thank you very much, strange computer I have never seen before. You say this email is from billo? Great. I’m sure Jane will love to hear from him.” This is a great way of doing things, especially in the earlier days of the Internet, when 99.9% of email was legitimately from one human to another human about something both of those humans cared about. Messages got through. People connected.

However, with the evil spammers out there, this open trusting attitude is trouble. Not only can I not figure out where a message is really from (without detective work that is beyond most people), I can not really tell if a message is from ebay, my bank, microsoft or some evil spammer or criminal just using their name.

So we build anti-spam software, and try to infer, via various trickery and forensics, that a message is legimate or junk. It’s a hard problem, because the spammers learn to defeat the obvious flags. There’s lots of good literature about this, and if you are interested, I recommend starting with Paul Graham’s essays:

paulgraham.com

But we were talking about AOL.

I hinted that the big problem with the way email (SMTP) works is that there is weak authentication. That means that your company/ISP mail server can’t really tell if a message came from your bank or some hacker pretending to be your bank. Perhaps more importantly, it’s really hard to distinguish the hundreds of spam message you get in a day from the 10 or so that come from people you really want to talk to: your business colleagues that are outside your company, your family, your friends. (I assume that if you work at a company, at least the mail from within your company is generally separated and identifiable.)

What we need today, in this world of spam, is an alternate email system. One that anybody can join, but is authenticated. So you know when the mail “from” address says “coolguy@something,” you are 99.9% certain it is from your brother-in-law, and it will be given a free pass by your anti-spam software. There are a number of ways of creating such a system. Most of them are way too hard for normal humans to understand. At least one of them as proven to be quite popular and easy, and, guess what? AOL has one.

It’s called a buddy system. AOL Instant Messenger is the biggest buddy system in the world. Supposedly there are over 100 million AIM users out there. That’s a lot. If you are reading this, chances are you have one, or, if you don’t, you have a yahoo account or an MSN account.

In my next essay I will describe how AOL can take the existing AIM system and turn it into the application that takes the bite out of spam, and makes a lot of money at the same time.

See Part 2 of this essay

Apple OS X86

Every now and then, in a conversation about operating systems, somebody brings up the idea of Apple releasing Mac OS X for Intel processors. I don’t think it will happen, not soon anyway. And gosh do I hope I am really, really wrong.

Now, Mac OS X86 is a beautiful dream for OS X fans like me, and the nightmare of those with a Macintosh hardware fetish. Here’s why: the only reason Apple is selling so many of their pretty but expensive and slow computers is OS X. I own four of them myself. I would maybe have bought one because it was pretty; I bought 4 because it’s the only hardware platform for OS X. My belief is that Apple will never release OS X86 until their PC business is clearly dead-diddly-ead. If they did release it, sales of G4/G5 macs would vaporize. Why the heck would I spend $4000 on a 2GHz G5 when I could build a sweet 3.6Ghz P4 in a custom chassis for $1500? I wouldn’t, most other people wouldn’t either. Bye-bye Macintosh hardware sales.

Apple has carved a niche for themselves at

I am not a Mac nut.

Lately I keep hearing myself say to people, “Get a mac.” I’m the big computer nerd in my family, so people always ask me for help with technical problems. Usually I tell them how to solve their problem, which often is kind of complex, and I’m pretty sure they won’t be able to do it right without hand-holding. Then I say, “You know, if you had a Mac you wouldn’t have problems like that.”

I think most people think I’m joking. Others take a step back like I’m some kind of religious nut. “Oh, you’re one of those Mac nuts.”

No, I’m not. I never much cared for the Macintosh operating system in its first nine incarnations. That’s right. Nine. Until OS X came out, I found MacOS cute but laughably primitive. The folks at Apple railed that Windows was cheap theft of their ideas. But guess what, by the time Windows NT was out, Windows was way more advanced than MacOS. Meanwhile, the real, solid, reliable, good operating systems, the descendants of Unix, were slipping into obscurity. Only geeks (like me) cared about them. In the mid-90′s (while MacOS was wallowing in 1970′s operating system technology) Linux started to become popular. That is, if, by “popular,” you mean that 0.02% of the population were technically capable enough to find, install and make it usable enough to do weird things like write computer programs.

I fell in love with Linux the first time I used it. (And, of course, by “used” I mean spent two weeks getting a custom kernel built and working to the point that I could run emacs.) It was just like having my only little unix workstation, on cheap, widely available Intel hardware. Here was an OS that I knew would never go away: the structure and paradigms it was built on had been around for over 25 years. It had staying power.

The problem was, it was hard to get software for it that interoperated with other people’s stuff. Somebody would give you a word document and you wouldn’t be able to use it. Things have changed a lot since then, Linux is a lot easier to install, and there is a lot more software out there. However, it still feels like you are using a patchwork. Different applications that had different ancestry (Gnome, or KDE or whatever) wouldn’t print or drag-and-drop the way you’d expect. There must be something about the nature of Open Source that makes very good and strong infrastructure, but terrible finished UI.

Anyway, when I heard the tenth iteration of MacOS was going to be based on a very strong Unix technology (BSD/Mach) that Apple had acquired when they bought NeXT, I was totally, and I mean TOTALLY stoked. It seemed too good to be true: a “mainstream” OS with a pretty, well-integrated UI built on a solid infrastructure.

I bought a Mac a few weeks later; Mac OS X wasn’t even out. I had to wait months to use the beta version. Meanwhile, I suffered through using MacOS 9. Ugh. There was nothing magically intuitive or better about MacOS 9 vs. Windows, at least nothing that I could see. See? I am not a Mac nut!

Finally the OS X beta came out, and it was fantastic. It *is* fantastic: applications are installed by copying files; no registry; users have home directories; applications don’t pollute the system files with overrides and customizations; NFS shareds can be mounted; apache, emacs, vi, are all INCLUDED in the distribution; all the shells are there, bash, csh; perl is included. You can even buy real Microsoft Office, so you can exchange documents with your poor pals that still use Windows.

People make a big deal about the general lack of viruses, worms and spyware on OS X. It’s mostly accurate, but it’s not so much that Mac OS X is a whole lot more secure. It is somewhat more secure, but the biggest factor is that it is less than 5% of the market, so it’s not a big target. Whatever the case, with Mac OS X, if you are not careless, you will be fine; with Windows, if you are careful, you will be fine.

I use computers a lot. All the time. I estimate I save 2-3 hours a week not doing system administration that I would do on Windows. I spend more time getting stuff done and less caring for the operating system.

So, get a Mac, you’ll be happier.

For more non-zealot Mac zealotry check out kernelthread.com.