Essays

Essays about Constructive Criticism

2 years ago

Tuesday, December 18, 2007

Dollar Signs, Dollar Signs, Dollar Signs!!!

We don’t think you should use dollar signs to indicate the price of an eating establishment. It’s too ambiguous and deliberatively uncommunicative to be very useful, and it needlessly conceals one of the most important factors in making a dining decision.

Want some reasons why we think so? Well, here you go:

  • There’s no consistency across the myriad websites that have decided to perpetrate this disaster of information design — what should be shorthand always needs to be supplemented with some sort of popup that explains the approximate value range that each group of dollar signs represents.
  • The strategy suffers even more when it is out of context. Google search results quite ingeniously display excerpts from each individual page, which are concordanced around your keywords. It is these snippets which guide your decision to click on a page or ignore it as irrelevant. Searching for “greek restaurant honolulu” returns results with useless strings of dollar signs littered everywhere; it’s just not helpful when you’re skimming results looking for grub. You want to know which pages feature Greek restaurants with meals that cost $8–12, not ones with meals that cost two dollar signs.A Google search results screenshot showing an ambiguous price marker amongst loads of other data.
  • The definitions of “cheap” and “expensive” are entirely subjective. A $30 dinner may seem completely reasonable to a working professional, but to a college student, for example, it’s a complete deal breaker. Prices differ significantly in different geographic areas, too.

We’ll pick on Yelp for our constructive criticism this time around, because they sprung to mind (and to the top of our search results page), and because they provide a perfect example.

Yelp as it is, with confusing iconography. Our suggested improvement: just say how much it is.

It’s okay to include a popup to explain how the price strata were established and assigned, but in this case it’s completely unnecessary to enforce that level of indirection — the ambiguous iconography should just be changed to what the symbols represent. (At least, though, Yelp explains what the dollar signs mean — neither Frommer’s nor New York Magazine give even a clue as to what a three–dollar-sign restaurant translates into in real dollars.)

But, this post isn’t really just about dollar signs in restaurant reviews. The general problem here is that the symbols serve very little purpose, except to cloak information and degrade communicative efficacy. The string ‘$30–$50′ takes up precious little more space than ‘$$$$’. Why would you not just include the information itself rather than a placeholder for it? On a map, for example, where information is correlated to coordinates with absolute spatial interpretations, it may very well be prudent to succinctly condense information with symbols. However, a table of results or a restaurant detail page are not maps or graphs — their design should be crafted to expose the information they need to communicate. In these cases we think you should consider very carefully the reasons for employing a scheme that requires further explanation. If you find your interface needs a legend embedded somewhere, that should set off warning bells. There’s usually always room to be clear.

1 Comment

2 years ago

Saturday, November 17, 2007

Hunt and Peck: An Investigation and Proposal for Better Custom Keyboard Shortcut Management in OS X

The short story: The interface and functionality of custom keyboard shortcuts in OS X is awkward and unreliable. There are two possible direct reasons for this — Apple’s development priorities and non-standard application resource organization — and any number of underlying causes. I propose a solution.

This is the very long story. I am primarily a Camino user, but like anyone developing for the Web on a Mac, I usually have Firefox and Safari open at the same time too. My keyboard shortcut habits were formed in Firefox, though, and it’s too late to switch from ⌘+K for the search box, and ⌘+⌥+← and ⌘+⌥+→ for tab navigation. Having acquired a new laptop recently, I was reminded just how awful the process for setting up custom keyboard shortcuts is in Mac OS X.

Of Mysteries and Ellipses

If you’ve set custom keyboard shortcuts before, this interface will look familiar. In fact, it remains unchanged since OS X 10.3.

The Mac OS X 10.5 ‘Keyboard & Mouse’ preference pane.

The problems here are manifold.

First, you have to find the exact name of the menu option you want to access. This requires switching back and forth between an open application and the Keyboard & Mouse preference pane, with nowhere but your mind (or a piece of paper, or a Sticky, but come on) to store the title of the menu command, which is itself potentially buried several levels below the top-level menu options.

Safari’s “Google Search” menu option.

This is further complicated by the fact that keyboard shortcuts don’t take effect until you’ve closed the very application you were getting the menu option from. (It doesn’t say that anywhere in the interface itself; you just have to come to that conclusion by trial and error or Help when it doesn’t work immediately.) Even if you remember whether, say, that app capitalizes “to” or “from,” there’s no way to assure you’re typing the right thing. The best example of this is the ellipses, used to denote a menu option that triggers further action in a dialog box.

Can you spot the difference?

Two text boxes, one displaying three periods and one displaying an ellipsis.

Here you go:

Two text boxes, the left labeled and displaying three periods, the right labeled and displaying an ellipsis.

Apple specifies in the HIG section on Style that menu options requiring further input or confirmation should feature genuine ellipses:

Important: Be sure to create the ellipsis character using the key combination Option-; (Option-semicolon). This ensures that an assistive application can provide the correct interpretation of the character to a disabled user. If you use 3 period characters to simulate an ellipsis, many assistive applications will be unable to make sense of them. Also, 3 period characters and an ellipsis do not look the same because the periods are spaced differently than the points of an ellipsis.

But just because something’s in the HIG doesn’t mean developers will abide. Firefox is a great example. A sample custom shortcut:

Setting a keyboard shortcut for Firefox using three periods.

And sure enough, it matches up:

Proof that Firefox uses periods instead of ellipses.

This is problematic.

Of course, it’s known that third parties aren’t the only ones who don’t adhere to the HIG. The “Search Google…” menu option in Safari, pictured above, raises a few tangential questions: Does it even deserve an ellipsis? It just quietly puts focus on the Google search bar, which I didn’t notice until I’d tried selecting it a few times. The neglected HIG doesn’t account for menu items that do things like that. Hidden as it is, this menu option in Safari almost seems to exist for the sake of being custom-shortcut’d.

Assuming you do get the menu command title right, there’s no guarantee that setting the custom shortcut function is actually going to work. I spent twenty minutes trying to set keyboard shortcuts in Safari and wondering why they would show up sometimes but not others. In the end I had too many screenshots to deal with. I think this one, taken after I attempted to create a shortcut for “Private Browsing,” will suffice:

Double menu option bug in Safari. After creating a shortcut for “Private Browsing,” a duplicate menu option for it is created.

Some sort of type-ahead mechanism that would fetch the right menu command for you would solve this problem, but that brings us to why this functionality isn’t already built-in.

Not a Key Feature

Obviously, making the custom keyboard shortcuts interface eminently usable is not a priority for Apple. For the most part, only a minority of users actually know and use keyboard shortcuts. Of those I bet a significant number desire at least some level of customization, but at the end of the day, it’s not a feature that moves units. It’s understandable, then, that it hasn’t been prioritized.

I initially suspected another reason: that improving the process would actually be quite difficult. Here’s why.

While it’s possible to get a complete list of the menu options of any running application with Applescript, it would be best if the preference pane didn’t need to run the application just to get the menus. So instead, providing a searchable list of default menu options for an application (dynamic things like the bookmarks and history in a web browser should be ignored) would require a registered list thereof for every available application. But do these even exist? If so, where?

Turns out they do. But “where” is exactly the problem.

The MainMenu NIB file.In many applications (both Apple’s and those by third parties), the default menus are found in the MainMenu.nib interface file of an application. See for yourself: ‘Show Package Contents’ on the Safari application, navigate down through ContentsResourcesEnglish.lprojMainMenu.nib. If you’ve got Developer Tools installed, you should be able to open that file. You’ll see in the MainMenu.nib window something called “MainMenu,” an object of the NSMenu class, which manages an application’s menus.

MainMenu NIB opened in Interface Builder.

Theoretically, a list of menu options should be obtainable from this .nib file. Unfortunately, it’s not always in the same place. For Calculator, it’s in Calculator.nib instead of MainMenu.nib. With DVD Player, it’s in MenuBar.nib. For Mail, I couldn’t even find it. So the preference pane wouldn’t know where to look without loading the application to tell it. Right?

Wrong! The location of the MainMenu-containing interface file is specified in the NSMainNibFile property of a given application, listed in the Info.plist directly inside the Contents folder of every application. Knowing this, it’s easy, for instance, to find the appropriate .nib for Mail, MailViewer:

The property list for Mail.app displays the location of its MainMenu-containing NIB.

Peachy Key’n

I’ve leave the implementation for another day, but all of the pieces are already there. The Keyboard & Mouse preference pane can already tell when an application disallows keyboard shortcuts:

An error explaining that custom keyboard shortcuts may not be added for Adobe Photoshop.

And it knows that because — and here’s the kicker — it checks the Info.plist file! Check it out:

Photoshop’s Property List file has a property that disallows customized keyboard shortcuts.

If a property exists to disallow keyboard shortcut customization, we can only assume that the list of available applications listed in the Keyboard & Mouse prefence pane is drawn from a cached list of applications whose menu commands can be edited. It wouldn’t be too far a stretch to get Keyboard & Mouse to then cache a list of the available commands from the MainMenu object in the appropriate .nib for each safe application.

The interface for finding the right menu command should work just like the new Help menu in Leopard. The screen would dim and a facsimile of the selected application’s default menus would appear. Start typing a command, and the close matches would be pointed out visually with the bobber. Once you’d selected a command (by searching or by manually navigating through the menus with the mouse), the command would fly from the menubar into the preference pane, where you could set a keyboard shortcut for it which would then be checked against existing shortcuts.

A proposed interface for choosing keyboard shortcuts.

Click for a larger view.

A warning dialog indicating that changes to existing keyboard shortcuts wouldn’t take place until the application was restarted would then appear, offering, like Software Update, to quit said application immediately or postpone quitting.

It can be done. It should be done. The ball’s in your court, Apple.

See Also

John Gruber’s article Losers, Weepers speaks to the problems of the OS X custom keyboard shortcut feature, and was written way back in 2003 when the feature first appeared. (There are a lot of similarities there, but it’s worse that the problems haven’t been addressed in four years than me not remembering John’s original post.) He mentions a key problems not mentioned or addressed here but just as vital — the lack of conflict management.

2 Comments

2 years ago

Sunday, October 28, 2007

Making netatalk Work on Debian with Leopard

If you’ve recently upgraded to Leopard, you might have started running into problems accessing AFP shares on Debian if you’re using netatalk with the cleartext UAM (uams_clrtxt.so).

Trying to connect to the shares results in the error

There was an error connecting to the server. Check the server name or IP address and try again.

It’s not a very helpful error, but if you do some digging, you’ll find out it’s Finder error code 5002, ‘afpBadUAM.’

It was at this point that I remembered that Debian’s netatalk doesn’t include any SSL-related authentication modules because of a licensing incompatibility (see Debian bug #191790). At the time, I wasn’t in the mood to dig into building the package manually, so I used the cleartext UAM — we’re on a secured closed network, and, though Tiger warns about sending a cleartext password every time you connected to a share, it’s more than happy to let you do so. There’s even an option to turn the warnings off.

This behavior has apparently been changed in Leopard — it appears to outrightly refuse to send cleartext passwords. This is probably a good idea, but it means you now have to build netatalk to include the DHX UAM that it doesn’t include by default.

I found two posts by Damon Timm and Durk Hellinga that describe the general process. However, as my comment on Durk’s blog says, I had some problems with circular dependencies. When you try to build the package with dpkg-buildpackage, it complains

% DEB_BUILD_OPTIONS=ssl dpkg-buildpackage
dpkg-checkbuilddeps: Unmet build dependencies: cdbs (>= 0.4.6) debhelper (>= 4.1.46) dh-buildinfo d-shlibs (>> 0.19) libdb4.2-dev libwrap0-dev libpam0g-dev libslp-dev libcupsys2-dev heimdal-dev (>= 0.7.1-3)
debuild: fatal error at line 993:
You do not appear to have all build dependencies properly met, aborting.
(Use -d flag to override.)
If you have the pbuilder package installed you can run
/usr/lib/pbuilder/pbuilder-satisfydepends as root to install the
required packages, or you can do it manually using dpkg or apt using
the error messages just above this message.

Unfortunately, libcupsys2-dev and libkrb5-dev seem to be mutually incompatible with heimdal-dev — aptitude won’t install both at the same time. I tried installing each by themselves and forcing dpkg-buildpackage to build with the -d switch, but /usr/lib/netatalk/uams_dhx.so still wouldn’t show up.

As it turns out, I wasn’t looking at the build output carefully enough. This post mentions to look for the line ‘Configure summary’, and for me it didn’t list the DHX UAM as being built. Looking at the output from the configure script, I realized I didn’t have libssl-dev installed. After installing that, everything went smoothly.

Update: A comment on Stefan Lange-Hegermann’s post describes how to re-enable cleartext passwords in Leopard.

Relatedly, Yvo van Doorn describes how to get your Linux-based AFP server to show up correctly in Leopard’s new Finder. Was Glück! I knew there had to be a Zeroconf daemon for Debian, but I had no idea what it was called, or how to make it work if I did. However, I think the XML configuration for Avahi that Yvo has in his post is suffering from some formatting problems. Here’s my version:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" standalone=‘no’?><!–*-nxml-*–>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>
  <name>%u</name>
  <service>
    <type>_afpovertcp._tcp</type>
    <port>548</port>
  </service>
</service-group>

Documentation for Avahi’s service configuration files

Usability Improvements to Interaction with Network Shares in Leopard

The frustrating and limiting way in which Finder forced you to access network shares in Tiger has long been a sore point with me. First you had to trawl through Network and its mess of ugly workgroup folders and iconless symlinks. Then you had to click ‘Connect’, wait for the authentication dialog to come up, enter the same authentication information every time, and then click ‘Connect’ again. Then you had to select a single share, and repeat the entire process if you wanted to work with multiple ones. And then, heaven help you if one of the connected shares subsequently becomes unavailable. If I was on my MacBook Pro, accessing a share on my Powermac or file server, and then left the house with the MBP, the entire operating system would be brought to a halt for minutes when the MBP was woken up, while Finder spins looking for the lost share. From a usability standpoint, it was completely awful.

The Finder in Leopard has completely solved all those problems. When shares become unavailable, the system doesn’t beachball — Finder just quietly and patiently keeps looking for the share while everything else remains responsive. Tiger left me wishing for an analog to Windows’ ability for network drives to reconnect at login. But the way Leopard has been redesigned to just reconnect to network shares automatically on demand (using the last username you used) beats mapped network drives hands down. It pleases me that Apple completely rethought the problem and introduced a far better solution.

These things all couple to allow me to work with network shares completely transparently, the way I want to. I can drag locations in network shares into the sidebar, and clicking them automatically connects to the share if unconnected. If the share is unavailable, the system doesn’t freeze looking for it. And it’s so great to be able to have our file server show up in Finder’s sidebar now! No more wading to find shares you don’t access regularly — they are instantly accessible. Bravo!

3 Comments

2 years ago

Tuesday, October 2, 2007

Constructive Criticism: OS X Firmware Update Notifier

If you have a MacBook Pro, you may recently have been asked to update your firmware. Firmware is the embedded software in your hardware. (A PC’s BIOS is a well known example. See Firmware on Wikipedia.) This is the dialog box, which serves as both a notification and warning window, that’s supposed to guide you through the process:

There are a few things wrong here, and they all have to do with the fact that, for beginner users, this is a potentially confusing process already.

First of all, what is firmware? And do I have an Intel processor? It doesn’t seem like a lot of thought or time was put into designing this dialog box.

Unlike software updates, which can occur in the background and at most require a few “OK” clicks, this firmware update presents a challenge: it requires the user to perform a special action on their physical computer, one for which the instructions can’t be displayed on the screen while it’s happening. So it makes sense for Apple to recommend printing out the instructions or, for those without a printer, writing them down. But how do I print these instructions? I think a button would help:

Apple does provide more information about these updates. Links to the support document for EFI Firmware Update 1.4 or the more general overview of firmware updates for Intel-based Macs would be helpful, but they’re strangely absent.

In the interest of eminently usable software, I present a redesigned alternative:

As always, we welcome and appreciate your comments.

Comments

2 years ago

Friday, September 28, 2007

Constructive Criticism: The Library Postcard

Okay, so maybe I was nitpicking when it came to the postcard, but I stand behind my critique! “It could be better,” I said, and I meant it. We’re as much about construction as we are about criticism here at Sakuzaku, so I’d like to present a hypothetical redesign to the Hawaii State Public Library System book request notification postcard. Click the image below for a closer look.

Hawaii Library Notification Card: After

To Consider

  • Braille would be a nice addition and would make the card much more accessible.
  • The backside of the card currently lists the phone numbers for every library on the islands. It would be nice to have the website URL listed there as well.
  • I tried to avoid any solid blocks of color or images in the interest of saving ink.

I still think the postcard itself is obsolete, and I should have been able to receive an email notification. For those without email, though, this should suffice.

What do you think? Leave your thoughts in the comments here or on the photo page.

Comments

Previous Page