Notebook
April 26th, 2010
Categories: Interaction, Interface, iPad

I frequently remember documents by the people that have also touched them in some way.

Contact details and related files

Viewing contact details and related files

The files shown below the contact details are those sent to or received from, or authored by the contact. The contact details section increases in height to the point of only showing two rows of files if necessary.

Contacts list popover

Contacts list popover

The iPad guidelines say popovers cannot be styled so consider this aspirational.

Contacts sidebar and details split view (landscape)

Contacts list and details in landscape

Editing Contact Details

Editing contact details

The details card slides down out of the corners and expands.

Viewing Files

Document viewer

The Info button at top right displays a popover listing file metadata.

Icon Sources

Some from app-bits, some from glyphish. My thanks to both.

September 13th, 2009
Categories: Interaction

I get knife block slits mixed up sometimes. Function-related icons (mine are quite rough) by the slit and on the knife handle would probably eliminate such mixups.

Knife block with icons thumbnail

July 26th, 2009

I use the Password Assistant in Keychain Access (/Applications/Utilities) to generate passwords for new accounts. The Assistant is pretty handy, but currently not integrated with any browsers, meaning I have to open Keychain Access, create a new Password Item (File > New Password Item), then click on the key to open the Assistant. I might then have to bounce back and forth between my browser and Keychain Access to find a password that complies with the (frequently unexpressed) password rules of the site.

Password Assistant integrated in browser

The Assistant would only appear when two password input fields are detected. What to do when a site doesn’t require confirmation? Maybe check the Keychain for existing accounts at the domain and show the key icon only if none is found?

May 23rd, 2009

I finally redeemed two iTunes gift cards last night, finding the process generally straightforward. That said, many Macs now have iSight cameras built-in. As proven by Delicious Library, an iSight can also function as a barcode scanner, moving the bulk of the input burden from the user to the computer.

Scanning an iTunes gift card

A second barcode (which creates a bit of confusion) would not have to be added if the scratch-off alphanumeric code could be recognized as such using OCR. With foreknowledge of the typeface and the processing power of modern Macs, this seems technically feasible.

In case the camera is in use by another application, the Scan via iSight button is disabled and the application name is displayed.

Camera in use by another application

There would have to be some conditional rules to hide the mention of optical scanning and the attendant button on Macs without a compatible camera.

May 10th, 2009
Categories: Interaction, Interface

Being annoyed with having to constantly open and close Fireworks’ modal Numeric Transform dialog, I thought it would be particularly useful in design applications to scale and reposition objects based on relative calculations like “this box should be 25 percent taller”.

Assuming this had been implemented somehow, I found the current method available in Mac applications described by Dave Mark, who learned of it from Mike Ash. The process is as follows:

  1. Enter a formula in a text field such as 10/2.
  2. Select the formula.
  3. Press Shift-Command-8.

Easy enough, but totally invisible unless you know it’s there (not necessarily a bad thing) and yet another keyboard shortcut to remember. The fact that Script Editor pops open is also mildly surprising and irritating.

Proposed Improvements

Keeping the existing method (though not requiring Script Editor to perform the calculations) is fine for free-form text, but a design specific to number boxes would be very helpful in many applications. It reduces input repetition (a starting value is always available), application switching, and would be a great help to me as I have trouble doing math in my head. As Dan Saffer stated in his Designing Smart and Clever Applications presentation: “Do what humans have trouble doing but computers can do easily.”

  1. Giving focus to a number input field displays a calculator pop-out.

    Pop-out calculator
  2. As the user inputs a formula using the keyboard or pop-out, it is written into the field. This provides a hint to the user that they can type in formulas directly.

    Formula input by pop-out calculator
  3. The formula is executed when the user clicks the Equals button, presses the Equals or Return or Enter key, or moves focus away from the field. The pop-out calculator disappears whenever focus moves away from the field. In the image below, Enter was pressed, moving focus back to the object in the document window.

    Pop-out calculator formula executed
May 3rd, 2009

I find myself wasting a lot of time creating calendar events that share a lot of properties, but differ in time of occurrence and duration. Auto-complete still requires per-field interaction.

For example, a band may rehearse regularly, but not on a fixed, repeating schedule that can be cleanly accommodated by a calendaring app’s recurring event interface. You want to be able to easily create an event involving the same people (your bandmates), usually at the same place (your rehearsal studio), with a varying date and duration.

Templates to the rescue.

Event Templates Pane

Event templates sorted by use

  • Once dropped to the calendar area, the template title text is given keyboard input focus to allow renaming from the default.
  • A Custom sorting option allowing the user to arrange the templates however they like might be useful. The set of templates you use may change over time as you work on different projects.
  • Double-clicking a template opens the editor.
  • Modifications to events created from templates do not propagate back to the template.
  • Deleting a template has no effect on events created from the template.
  • A menu command allows a stand-alone event to be used as the basis for a new template.

Event Template Editor

Event template editor

  • Modifications to templates do not propagate to events created from them.
  • As they exist outside of specific dates, only a default duration is set on a template.
  • All other properties can be set as with normal events.

Problems

Templates would not work cleanly in Contactizer‘s All events list view. What happens when you drop a template event to the list? A title field and date/time picker could appear at the drop point. It’s still likely to be less input than creating the event from scratch.

April 2nd, 2009
Categories: GNOME, Interaction, Interface

Evolution is generally a good app, so the e-mail account configuration assistant sticks out. Unfortunately, it is the first thing users encounter after first launching Evolution.

    1. First, a pointless welcome message that refers to the Assistant by a name different from the window title.
    2. It appears that prime marks rather than quotation marks enclose “Forward”. This typographical mistake appears throughout the Assistant.



    Welcome

  1. Poorly wrapped instructional text.

    Identity
  2. “None” is not a sensible default for an incoming server type.

    Receiving default: None
  3. The server portion of the e-mail address the user input in the Identity step should be placed in the Server field.

    Receive via IMAP
    1. An automatic periodic check of 10 or 15 minutes would be a sensible default.
    2. Junk filtering on incoming messages would be a sensible default.
    3. Hiding the custom command and folder namespace settings in a progressive disclosure would cut down on the clutter.



    Receiving options

    1. More poorly wrapped instructional text.
    2. The Assistant should take a stab at the outgoing server address based on the incoming server address.
    3. Use the incoming server username as the outgoing by default (I typed mine in).



    Outgoing server

    1. If an account name is already taken (thereby disabling the Forward button), tell me.
    2. Poorly wrapped instructional text.



    Account management

  4. Lastly, a pointless pat on the head.

    Final Assistant step
January 19th, 2009

Rescheduling an event to another day using the mobile Calendar app on the iPhone requires at least six taps across four screens. The method depicted below reduces the minimum taps to two with the number of screens depending on how many days the event is moved.

  1. In Day view, tap and hold the event.

    Event pressed in Day view
  2. With your other hand, tap the forward (or back) triangle button in the date bar.

    Tap forward button while holding event
  3. Alternatively, while still holding the event, swipe from right to left to go to the next day (or vice versa for the previous).

    Swipe while holding to move forward or backward
  4. The event is moved to the next (or previous) day at the same time. The event box would always remain beneath the tapped spot, nudging overlapping event boxes aside if necessary.

    Event displayed on new date

Problems with the Method

  1. Not easily discoverable
  2. Requires two hands or Evgeny Kissin-level finger dexterity
  3. Only works cleanly in Day view, though variations for List and Month could work

Indra Raj on MySpace

November 20th, 2008

In the Now Playing table view, I’d like the total length of the album displayed in a hidden row that only appears when scrolling beyond the track rows:

Now Playing table displaying total album time in hidden row

After releasing the screen, the total row is hidden again.

November 9th, 2008

Unlike addresses displayed in contacts’ details, locations added to calendar events cannot be tapped to display a map of the location.

The current event details screen:

Actual iPhone/iPod touch calendar event details screen

Slightly tweaked to indicate the location is actionable:

  1. Event details mockup with separate location row
  2. Event location on map

Location field input is not structured, so Calendar would simply pass whatever text it contains to Maps as the search string. Some heuristics around the text would be nice; if I typed “Joe’s house” in the Location field and one of the attendees is a contact named Joe Smith, the input string could be replaced by Joe’s home address.