Archive for November, 2008

Next time you see a really nice image on the Web, make it your desktop image!

Right-click on the image in Safari.

Choose Use Image as Desktop Picture.

Safari copies the image to /Users/YourUserName/Library/Safari/Safari Desktop Picture.jpg and only maintains one image at a time. And be sure that the dimensions of the picture match your computer monitor to prevent awkward resizing.

Several readers have mentioned that updating multiple apps on the iPhone is tedious because updating the first app you’re taken to the Home page where you can see the app downloading, after which you have to return to Updates, tap the next app, tap Update again, and so on.

That does sound tedious.

Fortunately there’s a better way to update all apps at once, though it is surprisingly easy to miss:

In a post yesterday 37 Signals reported another instance of J and K being adopted for navigating through a list. Hmm. Great functionality, but J and K are unfortunate choices for navigation shortcuts.

Keyboard shortcuts are great if you can remember them, which you can do best when they fit a model of some kind.

One useful model is abbreviation, where the key you press matches the first letter of the word describing the action you’re performing. Pressing n and p to navigate a list is easier to remember once you appreciate that they represent next and previous.

Another model is position. Using the arrow keys to navigate is easy to remember because the key you press causes the selection onscreen to move in the corresponding direction. Using the ASDW keys to navigate is a common substitute for keyboards lacking arrow keys and is almost as easy to remember once you associate ASDW by physical position with left-down-right-up. (Forget abbreviation here: D does not mean down, nor Wwest. Just remember their positions, and think of them like arrow keys.)

Safari uses [ and ] to move back and forward through your browsing history. This works reasonably well because the two keys form a matched set, and because you press the left key to move back and the right key to move forward.

If you’re wondering how left and right mean back and forward, consider a book: if you’re halfway through a book, the pages on the left which you’ve already read represent your reading past, while the pages on the right which you’ve yet to read represent your reading future.

Hardest of all to remember is convention, which means no model at all. People have always done it that way, and so will you. Conventions are often practical and exist because a choice had to be made, like whether cars drive on the left side of the road or the right. Arbitrary, but useful.

Now, back to those J and K keys. They’re not abbreviations and they’re not positionally descriptive, so they must be conventions—and they are, apparently originating from Emacs, a 30-year-old text editor. The J key has long had a little bump on it to aid touch-typists, which might have had something to do with it, but the more important point is that many people have adopted the convention, and so the convention persists.

But the unsuitability of J and K for navigation shortcuts isn’t that they’re conventional, though that’s hardly a strength. Rather, it’s that they’re used for navigation but confound attempts to model that navigation positionally. Pressing J for forward and K for back confuse precisely because they flout a longer-standing tradition. J lies to the left of K on the keyboard, and centuries spent reading books have established that left means back and right forward. Therefore, when two adjacent keys are used to move back and forward, the key on the left should be used for back.

J should mean back and K should mean forward, but they mean the opposite of that. 30 years of convention doesn’t make that any easier to remember. Your only option is to burn those two keys into muscle memory so you don’t have to remember.

Create with Context’s recent slideshow “How people really use the iPhone” reveals among other things how difficult it can be to intuit actions with confidence by icon alone. The slideshow notes that test subjects using Mobile Safari for the first time made some reasonable but wrong guesses about what several of the icons meant:

They thought the magnifying glass to the left of the Address Bar meant “zoom this page”.

They thought the Plus icon at the bottom of the Mobile Safari screen meant “increase the font size”.

They thought the Book icon meant “read this page”.

These are perfectly reasonable interpretations of those icons. There are examples in Mac OS X as well. For instance, in Safari it’s not immediately clear that the icon means “reload the current page”. You learn that this is so, but users might also initially believe it means “rotate the window to the right” or “rewind/go back”.

Fortunately, icons with multiple possible interpretations usually make more sense one way than another, and so long as the associated action is not destructive, there’s little harm done if the user is initially surprised. Safari’s icon seems unlikely to mean “rotate the window to the right”, so it probably means “reload the page” and possibly means “rewind/go back”. But even when an icon might not represent an action as clearly as you think it does, once you click the icon the relationship between icon and action usually becomes clear.

If I had a candidate icon for a frequently-used action but that icon might be misinterpreted by first-time users, I’d use it anyway if 1) it fit the action well, 2) the other possible interpretations were reasonably unlikely, and 3) the action wasn’t destructive.

We posted recently about Preview’s support for animated gifs, but a recent tip on Smoking Apples points out that Preview also supports icon suites, also known as Finder icons.

Before you can get it into Preview, you have to copy the icon suite onto your clipboard from the Finder:

1. Select the file in the Finder and choose Get Info from the File menu.

2. Click on the icon in the upper-left corner (see picture) of the Get Info window.

3. Choose Copy from the Edit menu.

The icon suite is now on your clipboard. (They’re called icon suites, by the way, because multiple copies of the icon are packaged into a suite to allow the icon to be drawn in a range of sizes from very small [16x16] to very large [512x512] without needing to be stretched or squished unattractively.)

Now launch Preview and choose New From Clipboard from the File menu. You’ll see a new window appear containing the icon suite with several versions of the icon at various sizes:

Preview’s support for icon suites, while appreciated, needs considerable refinement and actually appears to be built on its already rough-edged support for animated gifs: the icons within the suite are named as though frames in a series, they’re shown with the Aperture-style numbered stack icon, and they default when saved to a file type of GIF. Saving the file then reopening it in Preview doesn’t look very nice.

Nice to know, though. Who knew Preview was hiding so much functionality?

Apple has received another patent relating to waking sleeping devices on a network, this time for waking devices on a remote LAN:

In a sleep state, a system can typically receive packets of lower-layer protocols, such as Ethernet, but cannot respond to ARP (Address Resolution Protocol) requests. Unfortunately, being able to respond to ARP packets is often necessary for receiving packets of upper-layer protocols, such as IP (Internet Protocol). Hence, the wake-up packet is generally sent using a lower-layer protocol, such as Ethernet, instead of using an upper-layer protocol, such as IP. Unfortunately, such lower-layer protocols can only be used for sending packets within a LAN.

Apple’s solution cleverly exploits the existing DHCP protocol to allow it to work on existing devices, much like Bonjour cleverly exploits DNS:

Specifically, one embodiment of the present invention exploits the following properties of DHCP: (a) most routers in a network are DHCP relay agents, (b) DHCP packets can carry a user-defined payload, and (c) DHCP allows a remote system to specify a hardware address which the relay agent uses to send a DHCP packet to the target system.