Latest articles

Steve Jobs Was Not a Good Designer

This recent D newsgroup post really resonated with me:

I find the new Win7 to be much too clever. For example, if you move a window up against the top edge of the screen, it switches to full screen. Aggh. I know why that was done, but it's just tailfins and taillights in the shape of jet engines. I prefer utilitarian interfaces.

I tend to get pushback about this, but that's exactly how I feel about Apple UIs - OSX, iOS and even the pre-Touch iPods: They're not utilitarian. They're just, "tailfins and taillights in the shape of jet engines".

And no, a multi-touch UI on a portable is not inherently utilitarian, because it (realistically) requires both hands to operate. I frequently used my PalmOS devices one-handed (No "one-handed-computing" jokes, please). That's a pretty damn convenient trick to have on...gee...a portable handheld. But try doing that with a multi-touch app on the iTurd. Multi-touch isn't inherently bad, of course, but what is usually bad is using multi-touch to replace single-touch rather than supplement it.

The touchscreen being capacitive gets in the way here, too. Forget all that techno-fapping from the gadget-geeks about capacitive technically being more accurate than resistive: It's fucking irrelevant because fingernails and non-capacitive styli are far more accurate than fingertips. Speaking of, here's a riddle: How many technophiles does it take to realize that women use tablets and smartphones, and...gasp!...many women have long nails? Now an exercise: Grow, or glue on, long nails and see how utilitarian Job's iPhonedItAllIn really is.

UPDATE (2012-05-25): Yes, there is such a thing as resistive multi-touch. Note that link is from over three years ago already.

And swipe? Fuck me, how the hell is swipe not more effort than "tap" or "button press"? Browse through 100 pictures on iPad's photo viewer, then try to tell me swipe is utilitarian. Horseshit. Unless it's restricted to normal "drag" operations, it's a gimmick.

Another example:

For years, my portable music player has been a Toshiba Gigabeat F (with RockBox firmware). For those who don't know, this device is a *cough* old-fashioned style that's navigated using these (tactile!![1]) buttons: Up/Down/Left/Right/Select. You know, like your DVD player. Like your Grandma's fucking DVD player. Anyway, back before the iPod Touch, when my brother was on his Apple kick[2], he had an iPod. The old kind, with that idiotic touch-dial. (Actually this was his second - the first one died horribly within one day. "Just works" my ass.) He walked in one day and saw me with my weird non-Apple music player, was intrigued, and gave it a try. Within seconds of scrolling effortlessly through giant lists, he exclaimed "Wow! That's so much easier!" All thanks to the glamorous high-tech inventions of "auto-repeat" and "basic fucking directions like up and down".

Why that moron Steve Jobs felt it necessary to poorly reinvent an interface that already worked fine is beyond me. And why a "designer" like that gets revered as some sort of design god is a testament to the danger of groupthink.

[1] "Tactile": Ie, "I can use the fucking thing without staring at it."

[2] I don't blame him. Believe it or not, I went through an Apple phase, too. Twice, in fact: First for the Apple II (A damn fantastic line of machines. The Woz has my eternal respect.) And again when OSX was the hot new thing and I spent a year or so using it as my primary system. That OSX phase marked my transformation from ambivalence towards Apple, to reignited passion (lasted about two or three months), and ultimately (after many more months of self-delusion), my charming and characteristic (not to mention charismatic, if I do say so myself[3]) bitter-seething-hatred towards Macs, Jobs and "New Apple".

[3] No, I don't actually say so myself.

Read more


Stupid Coder Tricks: Debugging Exception Handlers

This is my favorite utility when monkeying around with (ie, testing) generic exception-handling code:

class Poop : Exception { this() { // It's a bird! It's a plane! No, it's... super("POOP!"); } } @property auto POOP() { return new Poop(); }

As if you haven't already figured out this utility's obvious benefit:

throw POOP;

Of course, if you're using a language that allows any old type of crap to be thrown (which I don't ordinarily prefer), it's even easier:

// Cut the crap and just throw it! throw "POOP!";

Read more


Simple Reason I'll Never Upgrade to Vista/Win7

It's occurred to me the explanation of Why I refuse to upgrade to Win7 is overly detailed. So here's the simple version:

If I wanted my computer to look and act like a Mac, I'd have gotten a goddamn Mac.

Read more


"Not-A-Blog"? WTF?

Why do I insist on not calling this a blog? Call me out of date, but when I think "blog" I think "LiveJournal".

(Feeling deja vu?)

Read more


New Pages: Classics and Links

As you can see in the upper menu bar, I've added a couple new pages: Classics and Links.

Read more


If your menu requires its own loading screen...

...then your menu is too complex.

Use fewer/simpler assets. You don't need that much...stuff. Your perfect visual/auditory design is not special enough to be in the player's way of getting in and out of the game.

Read more