As You Were

Devin Coughlin's blog.
Styles: Serious Spare

July 24, 2007

What to make of Gruber?

As a long-time Daring Fireball reader and t-shirt–wearer (the discontinued white ringer is my favorite), I've often wondered what, exactly, to make of pundit/aesthete John Gruber.

His longer articles are often extremely insightful; there have been so many times I've said "My God, I never thought about it that way" when reading him. He keeps his finger on the pulse of the Mac world and his sources seem to be very good, which is very refreshing. And even though his "Jackass of the Week" posts are getting annoying, someone has to do it.

But every now and then he writes something that makes me question whether he has any idea of what he's talking about.

Today, talking about the annoying iPhone camera capture button, he writes:

It’s highly counterintuitive because while software buttons almost always work like this (activating on release), camera shutters always activate on press.

Oy. No. I don't think that word means what you think it means. If something is counterintuitive, it means that it can't be learned without observation or reasoned experimentation, not that is violates user expectations based on how similar devices work. This is such such a rookie, first day of HCI 101 kind of mistake that I wonder how Gruber got his reputation as a UI guru in the first place. It's like saying Dvorak keyboards are counterintuitive because most keyboards are Qwerty or that joysticks are counterintuitive for steering because we're used to huge-ass steering wheels designed in a time before power hydraulics and fly-by-wire made torque on the steering column unnecessary.

The interfaces exposed by camera shutter buttons, keyboards, and steering wheels are artifacts of prior design constraints. They are the way they are not because they're necessarily intuitive but because they were the best we could do a hundred years ago.

So Gruber obviously doesn't know what he's talking about when it comes to HCI.

But here's the thing: his design sense is so keen that it doesn't matter. Like Steve Jobs, he has that certain je ne sais quoi which means he can ignorant of the theory and yet still be an exceptional designer.

This makes people like me, who are aware of the theory and yet still crappy designers, very, very jealous.

Posted by coughlin at 3:24 PM

July 23, 2007

PSA: Use -y with embedded frameworks and command-line zip

In an effort to inject some metrics into the ongoing .dmg vs. .zip wars, Peter Hosey recently put up a comparison of different compression options for application deployment on MacOS X. The most interesting thing he noticed was just how poorly command-line zip does compared to the Finder's "Make archive of" zip.

The solution, as pointed out by Fritz Anderson on darwin-dev, is to make sure to pass the -y option to zip. By default, zip will follow symbolic links and include their content in the zip file. Since frameworks in MacOS X contain symbolic links to internal structures to help with versioning (i.e. Headers -> Versions/Current/Headers) you'll end up up with three copies of everything in zipped framework created with 'zip -r9'. The -y flag tells zip to preserve symbolic links, which can significantly reduce file size if you use embedded frameworks in your app. This won't work on non-UNIX systems, but for Mac application deployment this is not a problem. (There's also a correctness issue here — some day the system might rely on Headers being a symbolic link.)

zip is still has the worst compression of the options available, but at least now it is in the same ballpark.

Paul Kim pointed out on #macsb that Finder uses ditto to make its archives. The correct incantation appears to be ditto -kc --keepParent source destination This will create a zip and it handles resource forks for you.

Posted by coughlin at 1:09 PM

July 20, 2007

The Dream Dreams the Dreamer

During my nap this afternoon (one of the blessings/curses of being an indie developer is the afternoon nap) I dreamt I was protesting in front of the Treasury Department:


And also my cat and dog were there.


Posted by coughlin at 8:40 PM

July 5, 2007

On the difference between "car bombs" and car bombs

If the US media were interested in informing the public, rather than in scaring the shit out of them so they don't change the channel, every report about the UK "car bomb" plot would discuss the difference between real car bombs and the crude cars on fire we saw in in those attacks, as well as investigate how easy it would or wouldn't be for terrorists to construct car bombs that aren't so pathetic.

Before we can make decisions about security tradeoffs (e.g, banning cars would stop most car bombs) we need to understand the risks involved. This is pretty hard when the 4th branch has a vested interest in throwing sand in your face.

Check out this post on the exploding car bomb mythology. Make sure you watch the two videos.

Posted by coughlin at 9:34 AM

July 4, 2007

I am an emotional cripple

But you already new that.

I thought I saw Thomas Wanebo today. I did not go up to say hi.

In related news, I celebrated Independence Day by seeing three, count 'em, three movies: Transformers (better than expected, although I could have done without the ewok-like rat-robot), Ratatouille (excellent, I think, although I had to pee during the whole thing, which kind of ruined the experience), and Live Free or Die Hard (good enough, although I really don't get the whole Bruce Willis sexy old man thing).

I got home just in time to rescue my dog from the thunder and fireworks. She can't even crawl under anything because the vet's got her in an E-collar.

Posted by coughlin at 10:17 PM