Vincent Gable’s Blog

February 11, 2009

Asking Nicely Works

Filed under: Design,Programming,Quotes | ,
― Vincent Gable on February 11, 2009

Panic did some experimentation … a little over a year ago, when they released Candy Bar 3.1 They have a phone-home system for serial numbers — not for any sort of Adobe- or Microsoft-style “activation” scheme, but simply to check whether a serial number is valid or known to be circulating on bootleg message boards and forums. They experimented with different dialog boxes that appeared when a user entered a known-to-be-pirated serial number. One message was staid and serious (“Microsoft-style”, in Cabel Sasser’s words), along the lines of “It appears someone gave you an invalid serial number…”; the other two messages were more personal, along the lines of “Please don’t pirate Candy Bar. We’re a small company making software for you, and software sales are what keep our company going.

They got better results with the more personal messages — about 10 percent of would-be-bootleggers presented with those dialogs clicked the button and immediately bought a legitimate license for the app. But even the staid, impersonal message had a 5 percent sell-through rate — far higher than Panic expected.

John Gruber

February 10, 2009

Good engineering is necessary, but good design has a more direct impact on helping people do amazing things with computers

Filed under: Design,Programming,Quotes,Usability | , ,
― Vincent Gable on February 10, 2009

…the thinking that ultimately sunk Douglas Engelbart’s visionary but incredibly complicated OLS (online system): Engelbart didn’t consider it all that necessary to develop an easy-to-use interface because, he felt, people invested years in learning human languages, so why not invest 6 months in learning his system’s powerful, language-size command structure? It’s an interesting argument when you think about it that way, but it ultimately doomed his design to obscurity, while his proteges who left for Xerox PARC and designed a system people could learn to use in a hour went on to change the world. Frictionless user experience is paramount, engineering concerns are secondary.

Buzz Andersen, summarizing John Markoff’s What the Dormouse Said, a history of the early personal computer industry

The title this post is something I’ve been saying as part of my personal statement on hirevincent.com for years.

February 9, 2009

Resolution Independent Screenshots

Filed under: Announcement,MacOSX,Programming | , , , ,
― Vincent Gable on February 9, 2009

Leopard includes technology that generates (mostly) resolution independent screenshots. That means when you enlarge the pictures, they won’t get pixelated, and more importantly, they will stay sharp when printed.

I don’t know if you’ve ever seen a printout of text mixed with a screenshot of text, but it looks like ass. That’s because even a very cheap printer is much higher resolution then your screen. It prints text very sharply. But when it prints the screen shot, it reproduces the low resolution display in high-fedelity — which actually makes it look worse. Plus, computers use tricks (eg sub pixel antialiasing) to make text look sharper on LCD screens — but those tricks can backfire on other media. A screenshot grabs exactly the pixels shown on the screen. And those pixels are optimized to be shown on a screen, not paper.

Example

Here’s an example screenshot (PDF). It looks like this:
Preview.png

If you open it, and zoom in, you will see that the text stays sharp, while some (but not all) of the interface gets pixelated.

PreviewBlownUp.png

How it Was Made

When Automator.app (click to open) saves a workflow, it puts a (mostly) resolution-independent screenshot of the workflow’s UI inside it. The screenshot is at SomeWorkflow.workflow/Contents/QuickLook/Preview.pdf. (In Finder, right-click a .workflow file, and choose “Show Package Contents” to look inside it).

If you print a workflow to a PDF file, it has the same limited resolution-independence. So I suspect Automator.app generates this PDF in much the same way files are printed. I have not investigated why the gray border is vectorized as well as the text. If anyone has an insight there, I’d love to hear it.

In the future, I expect text, and most UI elements, to be represented as vectors at every level of the OS. Screenshots will capture those vector-elements, as as they capture pixel-elements (pixels) today.

Color Blindness

Filed under: Accessibility,Design,MacOSX,Programming,Usability | , , , ,
― Vincent Gable on February 9, 2009

Roughly 10% of men are color blind to some degree. You need to be sure your interfaces are accessible to them. (Unless you are designing exclusively for women I suppose, since women are about 20x less likely to be color blind.)

Sim Daltonism is the best way to test an interface on Mac OS X I’ve seen.

Here is a web-based colorblindness simulator. Here is another. Personally I prefer a native program though. It’s faster and more versatile.

If you are curious, you can test yourself for colorblindness. I have no idea how accurate that test is, but since different displays and operating systems usually show colors differently I’d be a little skeptical.

ADDITION 2009-10-11: WeAreColorBlind.com is a website dedicated to design patterns for the colorblind.

Now Recognizing President Barrack Abeam

Filed under: Design,Programming,Usability | , , , , , ,
― Vincent Gable on February 9, 2009

President “Barack Obama” is not recognized by my Mac’s spellchecker. Firefox, Microsoft Word1, Mac OS X — each of them has a built in spellchecker, and none of them know how to say our president’s name. Spell checker dictionaries need to be updated more frequently — to keep up with the emails we write.

Things have improved since 1995, but there’s still a long way to go.

There’s more to say about how to fix things, but someone has already said it. The future looks bright,

(Microsoft) now scans through trillions of words, including anonymized text from Hotmail messages, in the hunt for dictionary candidates. On top of this, they monitor words that people manually instruct Word to recognize. “It’s becoming rarer and rarer that anything that comes to us ad hoc isn’t already on our list” from Hotmail or user data, Calcagno says. According to a July 14, 2006, bug report, for example, the Natural Language Group harvested the following words that had appeared more than 10 times in Hotmail user dictionaries: Netflix, Radiohead, Lipitor, glucosamine, waitressing, taekwondo, and all-nighter.

I think the next step in spellchecking is to follow Mac OS X’s lead, and adopt a system-wide spellchecker. When there’s only one instance of a spellchecker running (not a separate one for every program that might work with text) we can make it much smarter, without requiring a supercomputer.


1


Microsoft added Barack and Obama to Office’s dictionary back in April 2007, but unfortunately, that change hasn’t yet made it to the Mac Ghetto, ahem, “Mac BU”. Or at least I haven’t seen it in Word yet.

More Terms = More Specific (Assume AND, not OR)

Filed under: Design,Programming,Quotes,Usability | , ,
― Vincent Gable on February 9, 2009

Assumed-And is the way Google does it, with the more search terms added, the narrower the results. The other way around can be argued in the abstract, but your customers are not living in the abstract. The world has voted, and Assumed-And is the way it is. Having additional terms widen, rather than narrow, the scope confuses people in the extreme. They will leave you and find a site with a search function that “works.” This blunder alone could put a company out of business.

Bruce Tognazzini

February 5, 2009

I Solemnly Swear to Make Mistakes

Filed under: Accessibility,Design,Programming,Usability | ,
― Vincent Gable on February 5, 2009

President Barack Obama, and two other presidents, have retaken their oaths of office, because of some mistake with their inauguration. That means a little over one in fifteen presidential oaths were botched. If that sounds high, it is. But only because people make mistakes.

That’s why, we must make our software so that people can recover after making a mistake.

February 1, 2009

“I Deployed More Scheme Runtimes Than Anybody Else on the Planet”

Filed under: Programming,Quotes | , , ,
― Vincent Gable on February 1, 2009

From an Interview with an Adware Author,

Sherri Davidoff
You wrote adware. You bastard.

Matt Knox: [sheepishly] Yes, I did. I got to write half of it in Scheme, which probably means that I deployed more Scheme runtimes than anybody else on the planet.

So are most scheme programs in the wild used for evil? That’s a depressing thought.

January 23, 2009

Never Submit

Filed under: Bug Bite,Design,Programming,Usability | , ,
― Vincent Gable on January 23, 2009

Submit is always the wrong title for a button. Yet it’s still commonly used, even by people who should know better. I had “Submit Comment” buttons on my blog when I first published this.

Buttons should say what happens when they are pushed, in the vocabulary of the person pressing them. Technically a button might submit a form to a server, but what matters is the consequence of submitting the form.

For example,

Picture 27.png

this button should be called “Search” or “Find” or “See Matches” — something that describes what happens when it is pressed, or what the operator will see after pressing it.

That’s a Bad Word

“Submit” has negative connotations, and should be avoided. The first three example usages (in Mac OS X’s Dictionary.app) are all negative,

submit

verb
1 [ intrans. ] accept or yield to a superior force or to the authority or will of another person : the original settlers were forced to submit to Bulgarian rule.

• ( submit oneself) consent to undergo a certain treatment : he submitted himself to a body search.

• [ trans. ] subject to a particular process, treatment, or condition : samples submitted to low pressure.

Say an apartment takes applications on their website. It would be pedantically correct to say “Submit Application”. But it is more respectful to say “Send Application”, or “Apply”. Pressing a “Submit” button implicitly says “I submit”. And that’s the wrong relationship for a user to have to an interface.

Blame The Programmers (Not Really)

One reason so many buttons are labeled “Submit” is that the HTML code for making a button has the word “submit” in it. The code for is <input type="submit" value="This Button">.

If the keyword send was used to build buttons, I would argue that the web would be a slightly less intimidating place today. A button that demands you “send” something is better then a button that forces you to “submit”.

Choose Your Words Carefully…

So perhaps, when choosing programming terms, we should pick the ones with the fewest negative connotations, since inevitably some of those words will bleed over into user-land. Even if programmer words stay in programmer-land, word-choice influences the way we think about things. Best not to encourage berating your users and customers.

Of course, you shouldn’t go overboard avoiding “ungood” words! There is no question that the most clear term should be used (even if it’s offensive). A better programming-vocabulary means better, less buggy, programs. And that’s better for users (no matter what they are called behind their back). But if possible, avoid disparaging words.

And never submit to the temptation of calling a button “Submit”. There’s always a more accurate, respectful name.

January 18, 2009

iChat AppleScript / Apple Event Gotcha With “set status”

Filed under: Bug Bite,MacOSX,Programming | , ,
― Vincent Gable on January 18, 2009

If you run the AppleScript:


tell application "iChat"
   set status message to "testing"
   set status to away
end tell

You might expect to have the away message “testing”. But what you get is an empty away message. That’s because set status destroys your status message. It behaves as if you had selected “Away”, “Available”, etc. as your status from iChat’s status menu.

If you want to set a custom away message, call set status first, so it won’t over-write your message.


tell application "iChat"
   set status to away
   set status message to "testing"
end tell

Filled as radar://6505882, but Apple considers it expected behavior.

« Newer PostsOlder Posts »

Powered by WordPress