[Desktop_printing] Usability: Printing roles, tasks and environments

Michael Sweet mike at easysw.com
Tue Mar 7 07:18:12 PST 2006

Ellen Reitmayr wrote:
> ...
> 1. Installing
> ...
> 2. Configuring
> ...
> 3. Printing
> ...
> 4. Printer Feedback
> ...
> Questions that popped up so far:
> - - What tasks do we want to address in the meeting? Is installation an
> issue, or will that further on be handled by the distributions?

We definitely want to talk about this, because right now printer
installation and administration is a mess; from a posting I made
in December of 2005:

     On Red Hat ES4, I can choose System Settings->Printing (starts
     printconf-gui), Control Center and then click on Hardware and
     Printers (starts KDE Printing Manager).

     On SuSE 9.2, I can use System->Yast2 then click on Hardware and
     then Printer, or Utilities->Printing->Printing Manager.

     On Ubuntu, I can choose System->Administration->Printers (GNOME
     printing manager).

     All of those programs provide different functionality and have
     completely different UIs, and there is no indication as to which
     method is preferred or appropriate.  Only Yast2 shows any knowledge
     of the firewall settings and how they would interact with browsing
     (though it still doesn't pop up a prompt for the user to correct
     the situation, and presumably the firewall tool should also know
     about CUPS...)

     In the realm of usability, consistency is paramount.  My semi-
     ambitious wish list:

     1. Provide a single program in a common place. The user
        shouldn't have to think (too much) when looking for the
        printer configuration tool.  Red Hat's "System Settings"
        sub-menu is probably the most obvious; remember that
        Microsoft has long used "Control Panels->Printers", and
        people "switching" from Windows will be looking for
        something simple.

     2. Use the supplied APIs to get the available drivers and
        devices.  Right now each distro seems to be maintaining
        their own (insert your buzzword) database of printer
        drivers rather than asking CUPS for a list of printer
        drivers it knows about.  The result is that each GUI
        provides a different list of drivers/devices than the
        other or the CUPS web interface, which is confusing.
        Why do we want to confuse the user?!?

     3. Manage distribution-specific details (i.e. Firewall
        and other security features) for the user.  Right now
        only SuSE seems to have any checks in place for iptables
        and SELinux will only increase the chances that certain
        printing-related features don't work as expected.  ALL
        security features need to be easy to use and not get in
        the way of users, otherwise they will just turn them
        completely off or choose another platform/distro.

CUPS 1.2's web interface is, IMHO, a step in the right direction
(but hey, I'm biased ;) in that administration and printer
installation/configuration happen in one place for the user.

> - - What is the scope of configuration options? Could you provide examples
> of the configuration options for a very basic printer, two or three
> intermediate ones, and one or two high-end machines?

All printers have some common configuration information:

     Name (queue name, sometimes human-readable, e.g. "LJ4000")
     Description (human-readable text, e.g. "HP LaserJet 4000")
     Location (human-readable text, e.g. "Building 4 Room 301")
     Device URI (geek-readable, e.g. "ipp://")
     Printer Driver (PPD filename, e.g. "hp4000_6.ppd")
     Page Size (e.g. "Letter", "A4", etc.)

Most of this can be auto-assigned via device discovery, and this is
how CUPS 1.2 does things...

Many printers provide optional accessors such as auto-duplexers
and extra paper trays.  These show up as "installable options"
in the PPD file and must (currently) be manually selected by the
user when they setup the queue:

     Auto Duplexer: Installed/Not-Installed
     Large Capacity Tray: Installed/Not-Installed

Most printers offer additional device output/quality options:

     Media Type (plain, glossy, matte, etc.)
     Media source (auto, tray 1, upper, lower, etc.)
     Duplexing (1-sided, 2-sided long edge, 2-sided short edge)
     Color Mode (grayscale, color, photo, etc.)
     Resolution (600dpi, 2880x1440dpi, etc.)
     Output Tray (top, side)

High-end printers (basically copiers with built-in computers)
typically offer finishing options:

     Staple (top-left, side, saddle)
     Fold (booklet, Z-fold for brochures, etc.)
     2/3 Hole Punch (top, bottom, left, right sides)
     Mailbox (next available, specific slot, etc.)

> - - Is there more information of possible alerts and event notifications?

The IPP notifications spec, along with the CUPS IPP implementation
guide, provides the supported alerts/events that can be monitored.

Basically everything you mentioned, but with more state/context
information so that users/apps can determine whether the event
is worth responding to.

> - - Are alert codes standardised between manufacturers so the equal error
> messages can be provided, or are there differences?

There is a fair amount of standardization, but some devices have
special hardware/conditions with non-standard messages.  CUPS 1.2
includes support for vendor printer-state-reasons to allow vendors
to add custom stuff and have UI's display something reasonable.

> - - Are there more roles that need to be considered? For example, is
> Raymond's Aunt Tillie a combination of some of the existing roles
> (having less knowledge, though), or are there roles that haven't been
> considered so far?

Raymond's "Aunt Tillie" example is, um, somewhat overstated.  His
Aunt Tillie is a pretty advanced home user, what with the home
network and multiple computers.

It might be more productive to focus more on classes of users that
perform all of the classic printing roles, for example:

     1. The One Computer User - S/he has one computer and one
        printer.  If s/he uses any networking, it is to do email
        and surf the web.

     2. The Home Network User - S/he has two or more computers
        and one or more printers on a (wireless) network.  S/he
        manages one of the computers as a server for the rest,
        sharing printers, etc. as needed.

Conceptually, the One Computer User is the easiest to support and
requires the least amount of software to do it, but right now we
do a really bad job of supporting them.  If the various printing
and Linux forums are any indication, printer configuration is too
hard for them and the bundled drivers do not work.

The Home Network User isn't all that much more difficult - we just
need to make it easy to share the printers from one of the computers.
Again, the *configuration* side of the equation is the major stumbling

CUPS 1.2 should make life easier for these (and larger) users, but
we need to make sure that the Linux distros integrate it properly...

Did I say it was important that we talk about the installation issue?

Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Document Software          http://www.easysw.com

More information about the Printing-summit mailing list