Presented by Kurt Pfeifle <k1pfeifle - at - gmx.net>
Atlanta Desktop Linux Printing Summit, Day One
At the end of a first long day of discussions and presentations two
sentences summarized what participants of the OSDL Linux Desktop Printing
Summit convening in Atlanta are aiming for: however, "it should just work"
and "it should be dead-easy to use" were too generic to be put down as a
list of tasks to be implemented. Therefor each participant was asked to
write down two items he or she considered most important to be tackled in
order to make Linux printing more easy to use than it is now. The
collected items were read out aloud and sticked to a wall. Waldo Bastian
(Intel). Till Kamppeter (Linuxprinting.org) and Cristian Tibirna
(KDEPrint) grouped the different proposals together into related groups.
Then everybody got 4 colored sticking points to glue to the topic groups.
Here are the three top results, together with a more verbose description:
* "Correct auto-discovery of printing devices and auto-installation of
the matching driver" (42 votes);
* "A common layout of print dialogs across all applications and desktop
environments, with same options at the same places." (40 votes), and
* "Meaningfull error reporting and feedback to the user, including full
backchannel support from the print device up to the user GUI." (16
votes).
The summit is hosted by Lanier at their Atlanta Education Center. About 40
participants from all over the world represent different groups who bring
their own interests to the table. They were brought together by a joint
initiative of OSDL (led by John Cherry) and Linuxprinting.org (Till
Kamppeter). In a common effort, they try to figure out a way to go
forward. The span of groups is rather big:
* printer hardware vendors (Lanier, Ricoh, Kyocera, HP, IBM, Xerox,
Lexmark, Epson)
* Linux distributions (Novell, Debian, Mandriva)
* other OS vendors (Apple, IBM, Sun)
* desktop environment projects (Gnome, KDE)
* printer driver development projects (Gutenprint, HPLIP, Ghostscript)
* Independent Software Vendors (Mozilla Corporation, Easy Software
Products, Scribus)
* Printing Consultants (Tykodi Consulting, Danka)
* standards defining organisations (Linux Standard Base, Printer Working
Group, Free Standards/Open Printing Group)
* usability professionals (Openusability.org, Relevantive AG)
* other organizations (OSDL DTL, Beijing Software Testing & QA Center)
The day started off with a series of slides presented by different groups
which outlined what efforts each one contributed to printing or what
issues they were having with it. Amongst them were Linuxprinting.org,
FSG/Open Printing, PWG, Apple, Debian, Mandriva, JobTicket API, the
Portland Project, OpenUsability.org, Scribus, Mozilla, Gnome and KDE.
Over the working lunch, a short live demo of KDEPrint's current
capabilities was presented to the group. KDEPrint is a nearly complete GUI
fronted to all the capabilities of the underlying CUPS printing system.
kprinter, the standard KDE print dialog which opens up after clicking the
printer icon in any KDE program can also be run as a standalone program.
It is able to switch on the fly the underlying printing system (nowadays
mostly CUPS) to a different one. Some participants were encountering KDE's
printing capabilities for the first time and were rather astonished to see
how feature rich its capabilities are, given that its code base is nearly
5 years old already. Its "scan for available network printers"-button
found about a dozen Ricoh or Lanier devices in the LAN within 20 seconds.
It picked up more CUPS printers on the fly as they were installed by other
participants into their notebooks -- it even provided all PPD/driver
options to the user without any need for local driver installations.
Since a Redhat representative was unable to attend, Larry Ewing from
Novell introduced the slides which outlined the recent additions of a
unified printing dialog to the Gtk library by Alex Larsson (a Redhat
employee). Once it will be used by all Gnome applications Gnome users for
the first time ever will be able to enjoy and exploit the complete set of
device capabilities which printers in their reach are providing. Larry was
able to also add a live demo of this new GUI, and one could see how it
also automatically displayed shared printers and their driver options
offered by a CUPS service running on the remote end. The dialog's layout
however looked completely different (not necessarily worse) from the
"traditional" and established KDE one.
In the many contributions, comments and private chats throughout the day,
3 central topics came up again and again:
* Setting up and using a printer still is way too difficult for most
users. Even power users often hit a wall of concrete as soon as their
distro does not provide "out of the box" support for their model.
* The many different print dialogs with their differing layouts on an
avarage "mixed" desktop with KDE or Gnome and Firefox, Acrobat Reader
and OpenOffice.org is causing serious usability problems for many
users.
* Once things do not work, feedback and error messages given to the user
are mostly not very helpful either.
The second day will see a series of presentations and discussions with
proposals how to fix the deficiencies. Mike Sweet from CUPS will demo some
of the cool new features implented in the upcoming 1.2 release. The
OpenUsability.org people will start to run their separate track where they
begin an iterative work process of "paper prototyping" a proposal how to
layout better user interfaces for all printing related tasks.
Hopefully, both KDE and Gnome will be able to accept and implement these
proposals for their own environments, and make them visually similar
enough so that users who have to work in changing environments will find
the same options at the same places in each environment.
Also, the Portland Project will hopefully be fed with a first proposal for
the design of "printing as a desktop service". This is intended to relieve
projects like Mozilla, OpenOffice.org or any third party ISV company from
the daunting task to implement and maintain their own fully fledged
printing dialogs. Instead they should be able to just rely on the native
print GUI of the environment they currently run in by just saying things
like: "Hey, Gnome (or KDE) -- I've got a file to print; please give me your
printing dialog and take over that job from me". The intention of Portland
is to considerably reduce the number of concerns and stumbling blocks any
ISV may have if he ponders to port his software to the Linux platform.
Atlanta Desktop Linux Printing Summit, Day Two
Second day at the Lanier Education Center in Atlanta. More than 30 people
from around the globe assemble again to plan future improvements for
Linux desktop printing.
John Oleinik outlines the HP efforts he is in charge of, being the head
of the HP Linux Printing and Imaging group of developers [1]. HP provides
a fully open sourced printer driver family [2] supporting more than 900
printers, including the complete set of currently sold models. Double
blind studies have shown that users don't see any significant difference
to printout quality created by the (closed source) Windows driver. The
group is currently finalizing their fax driver; once it is complete, the
entire scope of multifunctional devices will be supported: from printing
to scanning to faxing. John re-iterates what had been said before: the
lack of a consistent printing UI is one of the major challenges to
overcome for everybody.
Till Kamppeter gives an overview about the "current print driver
chaos" [3] as is reflected in the contents of the Linuxprinting.org
database [4]. He proposes to focus for all further development on
drivers that are fed by the CUPS raster format and by the vector driver
currently developed by a Japanese group [10].
Ralph Giles from Ghostscript confirms that the current Ghostscript
versions' fabric as are used by most Linux distributions are less
than optimal for maintenance and use [5]. He supports a modularization
of the current monolithic application into separate, loadable drivers,
filters and shared libraries.
Robert Krawitz (lead of the Gutenprint driver project [6], renamed from
the formerly Gimp-Print, und just about to release version 5.0) states
his mission: "We want to provide the best possible print quality
consistent with user needs on a wide range of devices." [7] But he
also amptly outlines limitations of the current PPD file format: it
does only support fixed sets of options, it prevents support of typed
in string values or of complex settings like transfer curves or arrays
of values. On the other hand, their static format with no possibility
for dynamic option display and no support for multiple languages, force
he project to generated approximately 50,000 different PPD files in
order to satisfy all current users: 700 printer models, in 17 languages,
Foomatic as well as native CUPS raster mode, simplified and full-featured
versions. He pleads for hardware vendors to lift just one tiny little
secret about each of their devices: "Tell us only how to put dots on
the page!" He continues: "We *don't* need any information about color
transforms, screening algorithms and similar 'IP' technologies. We have
developed our own! And we tend to think these are at least on par with
all proprietary algorithms."
Mike Sweet (principal CUPS [8] developer) certainly provides one of the
absolute highlights of the summit with his demonstration of current CUPS
features, as will be included in the upcoming 1.2 release [9]. CUPS has
gained improvements on many areas: it has implemented every major feature
request that was collected in its bug tracking system, but two (Kerberos
support and ICC profile handling will be added in 1.3); Unix domain
socket support for local printing improves speed and performance by
up to 10 times, especially for very large installations (he has customers
who run 10,000 queues on a single server); Auto-SSL supports http://
and https:// URLs on the same port (making it an effortless no-brainer
to setup secure encrypted data transfer with CUPS); LDAP support was
added; CUPS printer browsing was vastly improved by adding a printerlist
cache to the clients surviving reboots and by supporting a
"delete printer" broadcast announcement for servers; per-printer sharing
is now available, even through the web interface; IPP Notifications are
now supported that can trigger any action based on events happening on
the printing system; unique Job IDs are a welcome improvement to
multi-server installations; per-printer operation policies allow a
fine-grained control over individual aspects of the system; PPDs and
device backends added to the scheduler during runtime do not require
a restart any more in order to make cupsd recognize them; back-channel
data support opens the possibility to give better feedback to users
about events occuring in the print system; custom PPD options will
allow for addition of integers, reals, curves, strings, dimensions
and passwords and remove many of Robert Krawitz's aches; a new
internationalisation extension even allows for multi-language support
of clients via a single PPD file.
What strikes me most: the new CUPS web interface has a greatly improved
look and feel, is searchable and provides for separation of long lists
of jobs or printers into smaller chunks. It adds an easy to use way for
setting some common options to the cupsd.conf file: what could be easier
than to just click on options listed as "Share published printers
connected to this system" or "Allow remote administration" or
"Allow users to cancel any job (not just their own)"? It also provides
for an option to edit the full cupsd.conf file through a
browser-accessible web form.
It borders on magic to see how Mike just plugged in a USB printer and
the web interface popped up a message asking "I discovered a new printer,
model HP OfficeJet 12345. Would you like to install it now?" Confirming
this pops up the page with the best driver preselected, which only needs
one more confirmation and the device is up and running. While printing
is in progress, the web interface auto-refreshed its status messages
(a la "17% of job now completed") every 10 seconds, going back to a
static view after job completion.
[1] Printing Summit [PDF]
[2] HP Linux Imaging and Printing
[3] Current Driver Chaos and Organizing them on linuxprinting.org [PDF]
[4] LinuxPrinting.org
[5] GS modularization [PDF]
[6] Gimp-Print
[7] gutenprint [PDF]
[8] Common UNIX Printing System
[9] CUPS 1.2 overview [PDF]
[10] FSG Vector Driver [PDF]