Vincent Gable’s Blog

May 22, 2008

Design is Not Just Skin Deep

Filed under: Design,Quotes
― Vincent Gable on May 22, 2008

Most people make the mistake of thinking design is what it looks like. People think it’s this veneer — that the designers are handed this box and told, ‘Make it look good!’ That’s not what we think design is. It’s not just what it looks like and feels like. Design is how it works.

   –Steve Jobs, CEO, chairman and co-founder of Apple Inc. in a 2003 New York Times magazine interview.

May 21, 2008

Programming Language Popularity

Filed under: Programming,Research
― Vincent Gable on May 21, 2008

TIOBE Programming Community Index

The TIOBE Programming Community index gives an indication of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, and YouTube are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

If TIOBE is to be belived, then (as of May 2008), plain-jain C is the second-most popular language around, and Objective-C has an insignificant 0.083% share; less then Lisp, Haskell, and Smalltalk (the irony).

May 18, 2008

Unreasonable Men

Filed under: Quotes
― Vincent Gable on May 18, 2008

The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable.

–George Bernard Shaw

Intuitive Considered Harmful

Filed under: Accessibility,Design,Programming,Quotes,Research,Usability | ,
― Vincent Gable on May 18, 2008

intuition
noun
the ability to understand something immediately, without the need for conscious reasoning.

“Intuitive” sounds like a great property for an interface to have, but in The Humane Interface (pages 150-152), Jeff Raskin calls it a harmful distraction:

Many interface requirements specify that the resulting product be intuitive, or natural. However, there is no human faculty of intuition…When an expert uses what we commonly call his intuition to make a judgment … we find that he has based his judgment on his experience and knowledge. Often, experts have learned to use methods and techniques that non-experts do not know… Expertise, unlike intuition, is real.

When users say that in interface is intuitive, they mean that it operates just like some other software or method with which they are familiar.

Another word that I try to avoid in discussing interfaces is ‘natural’. Like ‘intuitive’, it is usually not defined. An interface feature is natural, in common parlance, if it operates in such a way that a human needs no instruction. This typically means that there is some common human activity that is similar to the way the feature works. However, it is difficult to pin down what is meant by ‘similar’. … the term ‘natural’ (can also equate) to ‘very easily learned’. Although it may be impossible to quantify naturalness, it is not to difficult to quantify learning time.

The belief that interfaces can be intuitive and natural is often detrimental to improved interface design. As a consultant, I am frequently asked to design a “better” interface to a product. Usually, an interface can be designed such that, in terms of learning time, eventual speed of operation (productivity), decreased error rates, and ease of implementation, it is superior to both the client’s existing products and competing products. Nonetheless, even when my proposals are seen as significant improvements, they are often rejected on the grounds that they are not intuitive. It is a classic Catch-22: The client wants something that is sigificantly superior to the competition. But if it is to be superior, it must be different. (Typically, the greater the improvement, the greater the difference.) Therefore, it cannot be intuitive, that is, familiar. What the client wants is an interface with at most marginal differences from current practice — which almost inevitably is Microsoft Windows — that, somehow, makes a major improvement.

There are situations where familiarity is the most important concern, but they are rare. One example is a kiosk at a tourist attraction. Millions of people will use it only once, and they must be able to use it as soon as they touch it (because they will walk away rather then spend their vacation reading a manual). And in such cases, mimicking the most promiscuously used interface you can find, warts and all, makes sense — if that means more people will already know how to use it.

Outside of rare exceptions, software that people use enough to justify buying is used repeatedly. The value of the product is what people make with it, not what they can do with it the moment they open the box. Designing for the illusion of “intuitiveness” is clearly the wrong choice when it harms the long-term usefulness of the product.

This is not an excuse for a crappy first-run experience! The first impression is still the most important impression. By definition, the less familiar something is, the more exceptional it is. And an exceptionally good first impression is what you are after — so unfamiliarity can work to your advantage here. It is more work to design an exceptional first-run experience, but good design is always more work.

This is not a rational for being different just to be different. It is a rational for being different, when different is measurably better. For something to be measurably better, it first needs to be measurable. That means using precise terms, like “familiar” instead of “intuitive”, and “quick to learn” not “natural”.

May 14, 2008

NSAlert + Sheets + Threads = Inexplicable Bugs

Filed under: Bug Bite,Cocoa,Interface Builder,MacOSX,Objective-C,Programming | , ,
― Vincent Gable on May 14, 2008

UPDATED 2008-12-26: in general, all AppKit code should be called on the main thread.

Problem:
When using an NSAlert to display a sheet in a multi-threaded application, unexpected badness can happen.

I was using
beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo:
To display an NSAlert as a sheet.

But when the sheet appeared, the window it was attached to disappeared and got into some weird broken state where it would appear iff the application was not frontmost.

Fortunately, I remembered having encountered weirdness with NSAlert sheets before. The symptoms were different (previously the alert didn’t have focus), but the same solution still worked.

Solution: make sure the message to display the sheet is sent by the main thread. To do this, put the call to beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo: inside another method, showMyAlert, then use performSelectorOnMainThread:withObject:waitUntilDone: to make sure showMyAlert is called on the main thread.

Work around use runModal to display the alert as a modal dialog instead of a sheet. runModal Does not appear to have any problems when called from other threads.

Just like last time:

The whole incident feels funny to me. I suspect there may be some deeper issue at work that I am not aware of. When I have time to investigate further I shall update this post. Unfortunately I don’t have time to look into ‘solved’ bugs today.

UPDATED 2008-12-26: in general, all AppKit code should be called on the main thread.

May 13, 2008

Fixing Blurry Images

Filed under: Bug Bite,MacOSX,Programming
― Vincent Gable on May 13, 2008

I had an issue today where an image (A .png at 72 DPI with transparency, inside an NSImageView — if that makes any difference) in a window was blurry. The image was perfectly sharp in Interface Builder’s library panel, but when I placed it in a window, it turned blurry. Maddening!

A (mysterious) workaround: put the image where you want it. Then move it, then hit undo. When it snaps back to where you want it, it should be sharp.

I have absolutely no idea why this worked, or why the images were blurred by Interface Builder/XCode in the first place. (And yes, the images were blurry when the application was built and run. It wasn’t just a display bug in Interface Builder). It was purely coincidence that I stumbled across this “solution”.

May 12, 2008

Trademarking Shape

Filed under: Design,Quotes
― Vincent Gable on May 12, 2008

The Wall Street Journal on Apple trademarking the shape of the iPod (emphasis mine):

These nontraditional marks are difficult to obtain. But unlike more commonly used utility and design patents, which exist to cover functions and the ornamental look and feel of products and expire after a set number of years, trademarks can remain in force potentially forever.

…While competitors may eventually appropriate the iPod’s inner workings, as utility patents expire, they will risk litigation if their products come too close to the trademarked shape of the iPod, including its popular circular-touchpad interface.

Moreover, trademark law allows the holder to sue not only manufacturers but also distributors of competing products whose attributes so resemble those of the protected mark that they create the likelihood of confusion in the marketplace.

…The key to obtaining nontraditional trademarks is to convince an examiner in the U.S. Patent and Trademark Office that the average consumer associates the design attribute in question exclusively with the company seeking the trademark; in Apple’s case, this meant proving that the average shopper for a media player identifies the shape of an iPod with Apple.

That sounds like a pretty big sue-stick.

Intellectual-property laws haven’t interested me much. Partly because the zelots and freetards are such a turn off. But mostly because it turns out that patent law hasn’t actually been a barrier to me writing code (*gasp*). I just don’t see evidence that what we have today is an irredeemably broken system (although there are compelling historical anecdotes worth reading that says differently). Maybe that’s just my ignorance talking, but at least it’s been bliss so far.

It’s a little sad to read that the “design” in “design patents” apparently means “the ornamental look and feel of products” to most business folks.

Most people make the mistake of thinking design is what it looks like. People think it’s this veneer — that the designers are handed this box and told, ‘Make it look good!’ That’s not what we think design is. It’s not just what it looks like and feels like. Design is how it works.

–Steve Jobs, CEO, chairman and co-founder of Apple Inc. in a 2003 New York Times magazine interview.

Early Cybernetics in Baseball

Filed under: Quotes | , , , ,
― Vincent Gable on May 12, 2008

Much of Improvement in Baseball Is Attributed to Evolution and Steady Progress of Mechanics and Invention

WHEN Babe Ruth hits three home runs in one game or the home team cracks out a barrage of base hits to score seven or eight times in one inning, it does not necessarily mean that long-distance hitting in modern baseball comes from superiority of today’s players over those of years past. The truth is that much of the improvement in the game itself and in the proficiency of its players has come from evolution and progress in science and invention.

Popular Mechanics, May, 1924

May 10, 2008

Richard Stallman Does Bizarre Things

Filed under: Design,Quotes,Usability
― Vincent Gable on May 10, 2008

For personal reasons, I do not browse the web from my computer. (I also have not[sic] net connection much of the time.) To look at page[sic] I send mail to a demon which runs wget and mails the page back to me. It is very efficient use of my time[sic], but it is slow in real time.

Richard Stallman, 15 Dec 2007

How in touch with regular people do you think that guy is? How well do you think a system he designed would server their needs? How well do you think it would serve your needs? (I mean I think it’s pretty fair to say you use the internet a bit more … shall we say … functionally.)

Apparently GNU/Linux can’t even meet a hardcore nerd’s needs.

May 9, 2008

The Back Button is Now #3

Filed under: Accessibility,Design,Quotes,Research,Usability
― Vincent Gable on May 9, 2008

Among other things, (this study) found that the Back button is now only the 3rd most-used feature on the Web. Clicking hypertext links remains the most-used feature, but clicking buttons (on the page) has now overtaken Back to become the second-most used feature. The reason for this change is the increased prevalence of applications and feature-rich Web pages that require users to click page buttons to access their functionality.

Jakob Nielsen’s Alertbox, May 6, 2008:

« Newer PostsOlder Posts »

Powered by WordPress