All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]   ` <200810191602.m9JG2D84030719@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-22 14:49     ` Till Kamppeter
  2008-10-22 15:17       ` peter sikking
  0 siblings, 1 reply; 19+ messages in thread
From: Till Kamppeter @ 2008-10-22 14:49 UTC (permalink / raw)
  To: Peter Sikking
  Cc: Robert Krawitz, printing-architecture@lists.linux-foundation.org,
	gimp-print-devel

Robert Krawitz wrote:
>    Date: Sun, 19 Oct 2008 15:35:31 +0200
>    From: Till Kamppeter <till.kamppeter@gmail.com>
> 
>    Another point is completing the PPD extensions for the Common Printing 
>    Dialog. Most important point is tagging the options, so that they show 
>    up with the right tags being selected.
> 
>    See
> 
>    http://www.linuxfoundation.org/en/OpenPrinting/CommonPrintingDialog
>    http://www.linuxfoundation.org/en/OpenPrinting/PPDExtensions
> 
> I still don't much care for this limitation of 6 tags being available
> for the driver.  If nothing else, we could use some assistance in
> figuring out how to categorize all of the options.
> 
> In general, I'd really like to have a way to hide the advanced
> options.  I know full well that the vast majority of people have no
> interest in them, but that's not a reason to make them entirely
> unavailable to the people who do have reason to use them.
> Philosophically, I don't care for this dumbing down approach.  I know
> I'm not the only person out there who likes to have fine-grained
> controls available!
> 
> (I'd also like to have generalized piecewise or dense curves available
> in CUPS, but that's another matter.)

Perhaps we should find a solution together with Peter Sikking, designer 
of the Common Printing Dialog.

Peter, the Gutenprint driver has far too many option groups for the 
limited amount of tags in the Common Printing Dialog. What is your 
suggestion how to let the options of Gutenprint get presented in the 
Common Printing Dialog?

    Till


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
  2008-10-22 14:49     ` [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3 Till Kamppeter
@ 2008-10-22 15:17       ` peter sikking
       [not found]         ` <200810230019.m9N0JCIp018128@dsl092-065-009.bos1.dsl.speakeasy.net>
  0 siblings, 1 reply; 19+ messages in thread
From: peter sikking @ 2008-10-22 15:17 UTC (permalink / raw)
  To: Till Kamppeter
  Cc: Robert Krawitz, printing-architecture@lists.linux-foundation.org,
	gimp-print-devel

Till + Robert,

sorry to not get back to you sooner, it slipped under the holiday radar.

>>   Date: Sun, 19 Oct 2008 15:35:31 +0200
>>   From: Till Kamppeter <till.kamppeter@gmail.com>
>>   Another point is completing the PPD extensions for the Common  
>> Printing    Dialog. Most important point is tagging the options, so  
>> that they show    up with the right tags being selected.
>>   See
>>   http://www.linuxfoundation.org/en/OpenPrinting/CommonPrintingDialog
>>   http://www.linuxfoundation.org/en/OpenPrinting/PPDExtensions
>> I still don't much care for this limitation of 6 tags being available
>> for the driver.  If nothing else, we could use some assistance in
>> figuring out how to categorize all of the options.
>> In general, I'd really like to have a way to hide the advanced
>> options.  I know full well that the vast majority of people have no
>> interest in them, but that's not a reason to make them entirely
>> unavailable to the people who do have reason to use them.
>> Philosophically, I don't care for this dumbing down approach.  I know
>> I'm not the only person out there who likes to have fine-grained
>> controls available!
>> (I'd also like to have generalized piecewise or dense curves  
>> available
>> in CUPS, but that's another matter.)
>
> Perhaps we should find a solution together with Peter Sikking,  
> designer of the Common Printing Dialog.
>
> Peter, the Gutenprint driver has far too many option groups for the  
> limited amount of tags in the Common Printing Dialog. What is your  
> suggestion how to let the options of Gutenprint get presented in the  
> Common Printing Dialog?


well, first of all there are 11 tags available to the printer  
(==driver),
you can use these fully within the vision of gutenprint, which is
fine-grained control. do not confuse good UI design with complexity
reduction with dumbing down. it is about delivering value to the
target user group. when you know I am also the principal UI architect
of the renovation of GIMP, you can see I know a thing or two about
delivering power to pros.

second there are still principles of good interaction design,
like prioritising your parameters, seeing which are a specialisation
of another parameter. another good trick is when there are 3 boolean
options, and 6 combinations make sense, to represent them all as 6
choices for one parameter. when still in a pinch, super-duper
once-per-paper-ink-combination calibration type stuff can be
moved to a separate dialog, where there is space for advanced controls.
the dialog is then opened as an extension to the more basic parameters
in the dialog via a button.

I would still encourage you to treat the 11 tags not as tabs, but to  
dive
into the world of gutenprint and find out what aspects of printing
really interest your audience. and then assign the parameters you have  
to
one or more tags.

     --ps

         founder + principal interaction architect
             man + machine interface works

         http://mmiworks.net/blog : on interaction architecture




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] [Openicc] Looking ahead to 5.3
       [not found]   ` <200810210026.m9L0Qnd5008431@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-22 17:15     ` Hal V. Engel
  0 siblings, 0 replies; 19+ messages in thread
From: Hal V. Engel @ 2008-10-22 17:15 UTC (permalink / raw)
  To: gimp-print-devel, printing-architecture

On Monday 20 October 2008 17:26:49 Robert Krawitz wrote:
>    From: "Hal V. Engel" <hvengel@astound.net>
>    Date: Mon, 20 Oct 2008 14:03:25 -0700
>
>    On Monday 20 October 2008 09:37:40 Michael R Sweet wrote:
>    > If we
>    > also want to profile the individual color channels and modify the
>    > RGB-to-DeviceN and CMYK-to-DeviceN mappings, I recommend having a
>    > printer command (using the same interface we add for status
>    > monitoring and head alignment) that prints the linearization target(s)
>    > instead, with enough parameters to satisfy Robert. :)
>
>    This would be ideal but would require some work by the driver suppliers.
>
> Right -- and that's what we (Gutenprint) need requirements for.

I wish I had more expertise in this specific area so that I could provide 
those requirements at some level of detail.  I think for the most part that 
the GutenPrint Epson drivers are now well positioned for this but I don't know 
that for sure.  I know that Graeme Gill started working on a set of utilities 
to create linearization corrections but I think he got side tracked with other 
work.  Graeme at one time worked for a RIP vendor and he is the open source 
subject matter expert in this area. 

>
> Actually, for printing linearization targets you really don't want any
> of the fancy options.  The elaborate options are more for unmanaged
> environments or for people who have funky inks or papers.  You'd use
> Raw or Density color correction mode, either with CMYK or DeviceN
> input (which is also confusingly enough called Raw, but in a different
> context).
>
> We currently have a test pattern generator that can do a lot of this
> stuff, but it could also be done through the CUPS interface.
>
>    > I'd then also suggest that we add support for user profiles and/or
>    > drivers, such that a user could "install" XML files that would be
>    > "merged" with the standard/base files included with Gutenprint to
>    > determine which drivers, media types, ink sets, etc. are available.
>
>    Clearly something like this is needed both to support the
>    calibration and profiling process and to expose this in the UI and
>    to allow admins to control printer setup for users.
>
> We do have STP_DATA_PATH.  It won't really let you merge data in quite
> this way; you'd have to copy the file from the system path into the
> user path.  Then there's the matter of getting the PPD files in sync
> with this (you might add new media types to the customized data file),
> and getting an arbitrary file through CUPS somehow.
>
>    > All that would be necessary after that would be an application
>    > that prints the targets, measures then, generates the profiles,
>
>    We already have much of this for the ICC profile part but we
>    currently do not have anything for handing the
>    calibration/linearization part.
>
> This seems to be one of the sticky areas.

Agreed but there is lots of other work to be done to get the printing work 
flow to use ICC profiles.  Since this should be the highest priority CM 
related printing project I think that we should not be too concerned about 
calibration/linearization issues until that is in place.

>
>    > and
>    > installs them so they can be used by Gutenprint.  (Yes, I am aware
>    > that this is probably the most difficult part of the
>    > implementation...)
>
>    Yes It is probably the most involved part of this and I think it
>    will be some time before we can tackle the
>    calibration/linearization part of this.  I think the focus should
>    be on making the printing work flow and UI function correctly with
>    RGB and CMYK ICC profiles since we already have software to handle
>    the creation of these profiles and to implement
>    calibration/linearization and device-N support after basic ICC
>    profile support is in place.  I think it should be possible to have
>    this all working correctly with ICC profiles, at least with
>    development versions of the various software systems involved, with
>    in the next 6 to 12 months.
>
> That sounds like you're taking a longer-term view about Gutenprint and
> aren't looking for any short-term changes.  Is that correct?

From a color management perspective that is correct.  I think the current 
focus should be on getting the rest of the printing work flow so that it uses 
ICC profiles in the *toraster filters (at least with PDF input files).  This 
would make basic CM ubiquitous and driver independent.   That would still 
leave lots of related work for those that support the drivers.  For example, 
as ICC profile support was being added to the printing work flow printer 
vendors and driver authors would need to think about things like what default 
ICC profiles would ship with the drivers and issues related to this with PPD 
files, for example incorrect paths for cupsICCProfile settings, would need to 
be fixed.   

On the other hand there is no reason that work on instrument driven 
calibration/linearization couldn't be going on in parallel since these are not 
dependent on each other and in the end we do want both capabilities.  But I 
think this is a lower priority. 

Calibration/linearization would involve work at the driver/GutenPrint level 
but it sounds to me like the work that was done on the Epson drivers to make 
things data driven rather than hard coded has positioned those drivers to make 
that work possible although there may be more things that need to be done.  
It also sounds like this same work needs to be done with other GutenPrint 
drivers like the Canon driver.  Perhaps getting all of the drivers into the 
same state should be the current focus of GutenPrint with respect to color 
management.  

From my point of view I want to avoid trying to take steps that are so big 
that it causes significant resistance (IE. I don't want to overwhelm the teams 
working on the printing related stuff) and I would like to see this broken 
down into a series of smaller easier to accomplish steps that each build on 
the previous steps. 

Hal


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]         ` <200810230019.m9N0JCIp018128@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-24  8:52           ` peter sikking
  2008-10-24 10:08             ` Till Kamppeter
  2008-10-24 12:35             ` Alastair M. Robinson
  0 siblings, 2 replies; 19+ messages in thread
From: peter sikking @ 2008-10-24  8:52 UTC (permalink / raw)
  To: Robert Krawitz; +Cc: printing-architecture, gimp-print-devel, till.kamppeter

Robert,

>>> Peter, the Gutenprint driver has far too many option groups for the
>>> limited amount of tags in the Common Printing Dialog. What is your
>>> suggestion how to let the options of Gutenprint get presented in the
>>> Common Printing Dialog?
>
>>   when still in a pinch, super-duper
>>   once-per-paper-ink-combination calibration type stuff can be moved
>>   to a separate dialog, where there is space for advanced controls.
>>   the dialog is then opened as an extension to the more basic
>>   parameters in the dialog via a button.
>>
> There are a lot of low level ink controls that I would be happy to
> move elsewhere, but it's not clear to me where that "elsewhere" is
> provided.


like I said, separate dialog triggered from the print dialog.

>  In general, though, there aren't all that many boolean
> parameters, and those that we do have really are orthogonal (linear
> vs. S-curve contrast adjustment, borderless, and use of gloss enhancer
> have absolutely nothing to do with one another).

OK, it was worth a try.

>>   I would still encourage you to treat the 11 tags not as tabs, but
>>   to dive into the world of gutenprint and find out what aspects of
>>   printing really interest your audience. and then assign the
>>   parameters you have to one or more tags.
>
> This is an area we could use some assistance on.  I have no feel at
> all for UI design.  In general, the best way to utilize my skills in
> user interface design is to invert whatever I might happen to come up
> with.
>
> I really want Gutenprint to appeal to a very wide range of people,
> from the "I just want it to work" folks all the way to the hard core
> fine art (and other) professionals who want to be able to adjust
> everything for a non-standard ink set and oddball paper.

For anybody to be able to help you at all, you first need to
set a clear vision for what the purpose of gutenprint is in
the printing world of today. And "to appeal to a very wide
range of people" is not it. You will have to say good bye to
some old goals. The (linux) printing world has evolved.
Similar to how GIMP has moved on from 'the sole pixel program
on linux' to an expert tool that does not aim to please
casual users.

I can tell you that when the GIMP team would not have defined
that vision, and tried to be the tool for "a very wide range
of people", I would not have got involved.

     --ps

         founder + principal interaction architect
             man + machine interface works

         http://mmiworks.net/blog : on interaction architecture




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
  2008-10-24  8:52           ` peter sikking
@ 2008-10-24 10:08             ` Till Kamppeter
  2008-10-24 12:35             ` Alastair M. Robinson
  1 sibling, 0 replies; 19+ messages in thread
From: Till Kamppeter @ 2008-10-24 10:08 UTC (permalink / raw)
  To: peter sikking; +Cc: Robert Krawitz, printing-architecture, gimp-print-devel

peter sikking wrote:
> like I said, separate dialog triggered from the print dialog.
>

And how should this dialog look like? Someone has to implement it. The 
printer driver runs on the CUPS server and it cannot send executable 
programs to the clients.

Do we have to consider the design project of the Common Printing Dialog 
as incomplete or even failed then?

Do we have to start a design for a "Common Secondary Printing Dialog" 
before we can implement the Common Printing Dialog?

    Till


>>  In general, though, there aren't all that many boolean
>> parameters, and those that we do have really are orthogonal (linear
>> vs. S-curve contrast adjustment, borderless, and use of gloss enhancer
>> have absolutely nothing to do with one another).
> 
> OK, it was worth a try.
> 
>>>   I would still encourage you to treat the 11 tags not as tabs, but
>>>   to dive into the world of gutenprint and find out what aspects of
>>>   printing really interest your audience. and then assign the
>>>   parameters you have to one or more tags.
>>
>> This is an area we could use some assistance on.  I have no feel at
>> all for UI design.  In general, the best way to utilize my skills in
>> user interface design is to invert whatever I might happen to come up
>> with.
>>
>> I really want Gutenprint to appeal to a very wide range of people,
>> from the "I just want it to work" folks all the way to the hard core
>> fine art (and other) professionals who want to be able to adjust
>> everything for a non-standard ink set and oddball paper.
> 
> For anybody to be able to help you at all, you first need to
> set a clear vision for what the purpose of gutenprint is in
> the printing world of today. And "to appeal to a very wide
> range of people" is not it. You will have to say good bye to
> some old goals. The (linux) printing world has evolved.
> Similar to how GIMP has moved on from 'the sole pixel program
> on linux' to an expert tool that does not aim to please
> casual users.
> 
> I can tell you that when the GIMP team would not have defined
> that vision, and tried to be the tool for "a very wide range
> of people", I would not have got involved.
> 
>     --ps
> 
>         founder + principal interaction architect
>             man + machine interface works
> 
>         http://mmiworks.net/blog : on interaction architecture
> 
> 
> 
> 


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
  2008-10-24  8:52           ` peter sikking
  2008-10-24 10:08             ` Till Kamppeter
@ 2008-10-24 12:35             ` Alastair M. Robinson
  2008-10-24 18:34               ` Hal V. Engel
  1 sibling, 1 reply; 19+ messages in thread
From: Alastair M. Robinson @ 2008-10-24 12:35 UTC (permalink / raw)
  To: peter sikking
  Cc: Robert Krawitz, printing-architecture, gimp-print-devel,
	till.kamppeter

Hi,

peter sikking wrote:

> For anybody to be able to help you at all, you first need to
> set a clear vision for what the purpose of gutenprint is in
> the printing world of today.

Part of what makes this difficult is that gutenprint is at the same time 
behind-the-scenes infrastructure, and also user-facing, since the 
structure of its options system is exposed indirectly through the PPDs.

 > You will have to say good bye to
> some old goals.

I think one thing we may have to revisit will be the assumption that 
gutenprint's options are mapped directly to options in the printing 
dialog.  The introduction of simplified PPDs was a step in this 
direction, but the difficulty we've had in figuring out how to handle 
calibration curves and so on makes me think it may be time to go further.

With the recent push to make the Epson driver more data-driven, and 
pulling previously hard-coded data into XML files, I wonder whether we 
need to consider having an administration tool, completely separate from 
the PPD-based print chain, which can be used by administrators and 
"Domain Experts" (people who know how to handle colour-management and 
calibration, but don't care about code) to fine tune things like the 
low-level ink controls, and calibration curves, which are so hard to fit 
into a user-facing print dialog.

Gutenprint's "Quality" and "Media Type" options between them set a large 
number of options to hard-coded defaults - I envisage this hypothetical 
administration tool being used to *change* these defaults, and save them 
  (along with calibration curves, and ideally ICC profiles too) as files 
which could then be shared with other users.  This would solve another 
difficulty that was brought up when we first started discussing 
calibration and linearization - being able to *distribute* and share 
settings.

None of this detracts from the continued ability of software which uses 
Gutenprint directly, like the advanced print plugin, or PhotoPrint, from 
continuing to offer full control, but it could potentially make life 
much more pleasant for "one-click-print" users.

All the best,
--
Alastair M. Robinson

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
  2008-10-24 12:35             ` Alastair M. Robinson
@ 2008-10-24 18:34               ` Hal V. Engel
       [not found]                 ` <49021D0B.4040708@apple.com>
       [not found]                 ` <200810251458.m9PEwS6D029068@dsl092-065-009.bos1.dsl.speakeasy.net>
  0 siblings, 2 replies; 19+ messages in thread
From: Hal V. Engel @ 2008-10-24 18:34 UTC (permalink / raw)
  To: gimp-print-devel; +Cc: printing-architecture

On Friday 24 October 2008 05:35:57 Alastair M. Robinson wrote:
> Hi,
>
> peter sikking wrote:
> > For anybody to be able to help you at all, you first need to
> > set a clear vision for what the purpose of gutenprint is in
> > the printing world of today.
>
> Part of what makes this difficult is that gutenprint is at the same time
> behind-the-scenes infrastructure, and also user-facing, since the
> structure of its options system is exposed indirectly through the PPDs.
>
>  > You will have to say good bye to
> >
> > some old goals.
>
> I think one thing we may have to revisit will be the assumption that
> gutenprint's options are mapped directly to options in the printing
> dialog.  The introduction of simplified PPDs was a step in this
> direction, but the difficulty we've had in figuring out how to handle
> calibration curves and so on makes me think it may be time to go further.
>
> With the recent push to make the Epson driver more data-driven, and
> pulling previously hard-coded data into XML files, I wonder whether we
> need to consider having an administration tool, completely separate from
> the PPD-based print chain, which can be used by administrators and
> "Domain Experts" (people who know how to handle colour-management and
> calibration, but don't care about code) to fine tune things like the
> low-level ink controls, and calibration curves, which are so hard to fit
> into a user-facing print dialog.
>
> Gutenprint's "Quality" and "Media Type" options between them set a large
> number of options to hard-coded defaults - I envisage this hypothetical
> administration tool being used to *change* these defaults, and save them
>   (along with calibration curves, and ideally ICC profiles too) as files
> which could then be shared with other users.  This would solve another
> difficulty that was brought up when we first started discussing
> calibration and linearization - being able to *distribute* and share
> settings.
>
> None of this detracts from the continued ability of software which uses
> Gutenprint directly, like the advanced print plugin, or PhotoPrint, from
> continuing to offer full control, but it could potentially make life
> much more pleasant for "one-click-print" users.
>
> All the best,
> --
> Alastair M. Robinson
 
In many respects I agree with Alastair.  GutenPrint really does need a 
separate administrative interface for these more advanced functions and this 
also needs to be tied to the basic end user UI so that admins can set things 
up so that these are presented to users in an easy to understand way.   I also 
believe that the same thing is true, perhaps to a lessor extent, for all 
printer drivers.  At this point I think the only drivers that have the 
potential to provide user control over calibration curves is GutenPrint but at 
some point in the not too distant future we will have printing work flows that 
implement ICC profiles that could/should be used by all drivers not just those 
from GutenPrint and current UI and admin interfaces do not provide any support 
for this.  OK someone is likely to point out the cupsICCProfile settings that 
are now available in the PPD files.  But these are NOT suitable for local use 
for a number of reasons.

The basic issue that is causing so much difficultly is the static supplied by 
the driver vendor nature of the PPD files vs. the local nature of ICC profiles 
and custom printer calibration.   PPD files were not designed for local 
customization but some way of creating local persistent customization is 
exactly what needs to happen to accommodate things like color management that 
are local in nature and that need to be customized for each installation.   

As an example it is desirable to have groups of settings that are associated 
with particular ICC profiles that are some how presented to users as a 
"preset" that can be selected in the end user UI.  PhotoPrint does this 
although I think the UI for this in PhotoPrint could be improved.  This is 
something that can not be done as part of the default PPD based configuration 
since much of this is installation specific and needs to be configured by the 
local admin or an advanced user to meet local requirements.  After all only 
the local admin/users know what papers are going to be used and what settings 
were used to create the profiles for those papers and so on.  With GutenPrint 
at some point this would also include things like custom linearization data.   
These presets should be presented to users in a way that makes it easy for 
them to understand what the preset means (IE. what specific printer this is 
for, what paper to load into the printer and what profile to use for 
proofing...).  I do not think this belongs in the PPD structure although it 
might be possible to use the PPD file to divide these driver features into 
those that are intended for end users and those that are supported in the 
administrative interface.  The thing to consider is that ICC profile support 
is implemented in the *toraster CUPS filters and it is not a feature of the 
print driver.

I also agree with Peter to some extent although I don't think supporting both 
advanced and basic end users is contradictory it is just more difficult.  The 
UI needs to be easy for less advanced end users and presenting too much 
complexity in the end user UI is contrary to this goal.  At the same time I 
think that with a correctly designed administrative interface it should be 
possible for local admins and/or advanced users to configure local settings 
that hide this complexity from less advanced users who don't need or want to 
understand the underlying complexity.  In other words this has the possibility 
to make things even simpler for end users if the local admin has the where 
with all to set things up correctly.   I would go so far as to say that it 
should be possible for the local admin to hide UI settings and features that 
would normally be exposed to users by default so that there was total control 
over what was presented to local users.   The problem is that we are trying to 
do everything in one UI when in reality we have what is end user functionality 
and administrative/advanced functionality and these need to some how be 
separated but still interrelated (IE. administrative changes can/should affect 
what is seen in the end user UI).   

Hal 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]                 ` <49021D0B.4040708@apple.com>
@ 2008-10-25  0:46                   ` Alastair M. Robinson
  0 siblings, 0 replies; 19+ messages in thread
From: Alastair M. Robinson @ 2008-10-25  0:46 UTC (permalink / raw)
  To: Michael R Sweet; +Cc: printing-architecture, gimp-print-devel

Hi :)

Michael R Sweet wrote:

> Moreover, a fully data-driven
> Gutenprint has the built-in capability to regenerate a PPD with the
> current data,

Does that include PPDs already assigned to an existing queue? (i.e. 
those in /etc/cups/ppd/)

> The APPrinterPreset PPD keyword can already be used for this and has
> been adopted by OpenPrinting...

So assuming the answer to my previous question is "yes", our 
hypothetical admin tool could be used not only to tune or linearize 
existing Quick Presets from the Common Printing Dialog, but to directly 
create new ones.  That is very cool.

Is the value of APPrinterPreset available to the driver, BTW, or is it 
merely something that is used to set other variables automatically?  If 
we're hoping to fetch tunings or linearization curves based on the 
preset, we would of course need to know which preset was selected!

All the best,
--
Alastair M. Robinson


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]                 ` <200810251458.m9PEwS6D029068@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-25 17:43                   ` Alastair M. Robinson
       [not found]                     ` <200810251857.m9PIvIdi030089@dsl092-065-009.bos1.dsl.speakeasy.net>
  2008-10-25 22:38                     ` Till Kamppeter
  0 siblings, 2 replies; 19+ messages in thread
From: Alastair M. Robinson @ 2008-10-25 17:43 UTC (permalink / raw)
  To: Robert Krawitz; +Cc: printing-architecture, gimp-print-devel

Hi :)

Robert Krawitz wrote:

> When you get right down to it, Gutenprint at its core really is a
> hardware driver (or a package of hardware drivers).  It's not an
> application the way GIMP is -- it's a piece of infrastructure.

True - however it doesn't have the luxury enjoyed by other pieces of 
infrastructure of being isolated from end-users.  If I go to 
localhost:631, click on my printer and hit Set Printer Options, I see a 
user-interface.  CUPS *presents* this user-interface, but which controls 
I see and how they're grouped is determined by Gutenprint.  It may not 
be an application, but there are user-facing aspects.

Incidentally, Peter, if an option exists in the PPD but isn't tagged, 
what happens?  Will it appear in the Common Printing Dialog?
And what happens if an APPrinterPreset specifies a value for an untagged 
option?  Will it still be set?

I'm just wondering whether we can tag options which "fit" with the 
Common Printing Dialog, and leave the others in the PPD but untagged?

> I don't mind if there are multiple applications or dialogs using
> Gutenprint.  However, I *do* mind if pressure for "one size fits all"
> results in advanced users not having controls they need.  At the same
> time, it is essential to me that users with basic needs have a simple
> print path.

I can't argue with any of that.

> One issue I do have is with the idea that modifying curves or presets
> should be thought of as an administrative role. Certainly it's
> something administrators might well do, to achieve common printing
> results across a user base, but ordinary users may also need to
> do things like this.

Well, my original phrase was "Administrators and domain experts", so 
yes, I agree that admin rights shouldn't be a neccessity for accessing 
these facilities - though it should probably be a requirement for 
actually applying changes which impact all users.  So ideally we need 
some way to store and transmit these settings on a per-user basis.


Also note that as far as I know all the software which allows 
finest-grained control of Gutenprint's options currently uses Gutenprint 
directly, and thus RIPs the page client-side. (As would our hypothetical 
calibration / linearization / tuning tool).

Robert, would the following state of affairs be acceptable in your view:

* Software which prints via the Common Printing Dialog has user-access 
to a limited subset of options, much as PPD-based software does now if 
the Simplified PPDs are used.  Additionally, if new presets, or 
modifications to existing presets (i.e. the PrintQuality / Media Type 
options) have been installed systemwide, they become available from the CPD.

* Presets can be adjusted/created and tested (via client-side ripping) 
by a regular user, but admin rights would be needed to install the 
modified data systemwide, before the updated preset would be usable from 
the CPD.

* Software which does client-side ripping (i.e. the Gutenprint GIMP 
plugin, PhotoPrint, etc.) continues to have access to the full raft of 
controls available to regular users.  Additionally, local presets 
created in the tuning tool can be used, without them having to be 
installed systemwide.

That much I think could be achieved relatively easily.  Somewhat harder 
would be making modified presets available for use within the CPD 
without needing admin rights to install them.  That, I think, would 
require a way of sending side-band information to CUPS/Gutenprint and 
having some way of storing it on the server on a per-user basis.  This 
is something that might be desirable anyway, mind you; the current 
situation with default printer settings in CUPS (a choice between 
needing root access to set them, or allowing users to change the 
defaults systemwide) isn't ideal.

All the best,
--
Alastair M. Robinson

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]                     ` <200810251857.m9PIvIdi030089@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-25 19:35                       ` Alastair M. Robinson
       [not found]                         ` <200810251950.m9PJoeFa030284@dsl092-065-009.bos1.dsl.speakeasy.net>
  0 siblings, 1 reply; 19+ messages in thread
From: Alastair M. Robinson @ 2008-10-25 19:35 UTC (permalink / raw)
  To: Robert Krawitz; +Cc: printing-architecture, gimp-print-devel

Hi :)

Robert Krawitz wrote:

> Right, but that's not efficient for printing large documents at high
> resolution over a network.

Agreed.

> I don't think that that's quite good enough.  I'm OK with having the
> CPD itself provide only a limited set of options, as long as it's
> possible for both users and administrators to create preset bundles
> that may reference options not provided in the PPD file.  Requiring
> use of a client side RIP in order to use custom linearization curves
> isn't acceptable to me.

Fair enough - and I tend to agree - I'm just trying to figure out what 
we can do within the bounds of the current infrastructure, and whether, 
or to what extent, we need new facilities!

> So someone might want to create a preset bundle that includes
> linearization curves and other settings for a particular paper type,
> resolution, and ink set (e. g. photo or matte inks).  I think a user
> should be able to do that just as well as an administrator.

In the scenario I outlined, a user is able to do that.  The sticking 
point is that actually *installing* it, so that the changes can be used 
via the CPD, would require admin rights.

> Note that the preset bundle may actually be a large amount of data.

Yes indeed.

All the best,
--
Alastair M. Robinson


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
  2008-10-25 17:43                   ` Alastair M. Robinson
       [not found]                     ` <200810251857.m9PIvIdi030089@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-25 22:38                     ` Till Kamppeter
       [not found]                       ` <200810252249.m9PMnrSo030956@dsl092-065-009.bos1.dsl.speakeasy.net>
  1 sibling, 1 reply; 19+ messages in thread
From: Till Kamppeter @ 2008-10-25 22:38 UTC (permalink / raw)
  To: Alastair M. Robinson
  Cc: Robert Krawitz, printing-architecture, gimp-print-devel

Alastair M. Robinson wrote:
> Hi :)
> 
> Robert Krawitz wrote:
> 
>> When you get right down to it, Gutenprint at its core really is a
>> hardware driver (or a package of hardware drivers).  It's not an
>> application the way GIMP is -- it's a piece of infrastructure.
> 
> True - however it doesn't have the luxury enjoyed by other pieces of 
> infrastructure of being isolated from end-users.  If I go to 
> localhost:631, click on my printer and hit Set Printer Options, I see a 
> user-interface.  CUPS *presents* this user-interface, but which controls 
> I see and how they're grouped is determined by Gutenprint.  It may not 
> be an application, but there are user-facing aspects.
> 
> Incidentally, Peter, if an option exists in the PPD but isn't tagged, 
> what happens?  Will it appear in the Common Printing Dialog?
> And what happens if an APPrinterPreset specifies a value for an untagged 
> option?  Will it still be set?
>

See my specs of the PPD extensions for the Common Printing Dialog:

http://www.linuxfoundation.org/en/OpenPrinting/PPDExtensions

Untagged PPDs will use the PPD groups as tags as a fallback. So options 
will be shown in a reasonable order, But the advantage of one option 
baing able to have more than one tag is not made use of with this fallback.

Each APPrinterPreset will create a quick preset button in the left 
column of the dialog. And the button will always set all options which 
it is supposed to set, independent of tags and groups.

> I'm just wondering whether we can tag options which "fit" with the 
> Common Printing Dialog, and leave the others in the PPD but untagged?
> 

If we leave options untagged or if we have too many tags, all these 
options will fall under the last tag. So if we have many of them, the 
last tag will get very crowded. This is more intended as a legacy 
fallback, for example for manufacturer-supplied PPDs.

    Till

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]                         ` <200810251950.m9PJoeFa030284@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-26  0:41                           ` Alastair M. Robinson
       [not found]                             ` <200810260049.m9Q0nTIw032617@dsl092-065-009.bos1.dsl.speakeasy.net>
  0 siblings, 1 reply; 19+ messages in thread
From: Alastair M. Robinson @ 2008-10-26  0:41 UTC (permalink / raw)
  To: Robert Krawitz; +Cc: printing-architecture, gimp-print-devel

Hi :)

Robert Krawitz wrote:

> Right, but if the infrastructure's missing something, we need to know
> what it is and if necessary how to work around it.

What's missing, I think, is any way of storing persistent data 
server-side on a per-user basis.  The cups filters have access to the 
name of a job's "owner", yes?  So as far as I can see, fetching a user's 
overrides (for those parameters which are out-of-band as far as the 
Common Printing Dialog is concerned) would be easy enough if there were 
anywhere suitable to store them.

> And that's a very big problem -- the whole point of creating presets
> like this is to use them.

Yup, absolutely.

All the best,
--
Alastair M. Robinson


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]                             ` <200810260049.m9Q0nTIw032617@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-26  1:18                               ` Alastair M. Robinson
       [not found]                               ` <49049DC3.8000405@apple.com>
  1 sibling, 0 replies; 19+ messages in thread
From: Alastair M. Robinson @ 2008-10-26  1:18 UTC (permalink / raw)
  To: Robert Krawitz; +Cc: printing-architecture, gimp-print-devel

Hi :)

Robert Krawitz wrote:

> Why does it have to be server-side?  The print dialog could implement
> it.

Well, this whole discussion started with the question of how gutenprint 
will work with the Common Printing Dialog.

You said: "There are a lot of low level ink controls that I would be 
happy to move elsewhere, but it's not clear to me where that "elsewhere" 
is provided."

I'm brainstorming here - simply exploring the idea that it may fall to 
Gutenprint to create that "elsewhere" for itself, out-of-band as far as 
the main printing dialog goes.  Making out-of-band data available to the 
print filters without requiring admin permissions is not an easy problem 
to solve, but it's one that we need to solve at some point anyway, I 
think, in order to support the easy creation and sharing of 
linearization curves.

All the best,
--
Alastair M. Robinson

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]                       ` <200810252249.m9PMnrSo030956@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-26  9:59                         ` Till Kamppeter
  0 siblings, 0 replies; 19+ messages in thread
From: Till Kamppeter @ 2008-10-26  9:59 UTC (permalink / raw)
  To: Robert Krawitz; +Cc: printing-architecture, gimp-print-devel

Robert Krawitz wrote:
>    Date: Sun, 26 Oct 2008 00:38:58 +0200
>    From: Till Kamppeter <till.kamppeter@gmail.com>
>    MIME-Version: 1.0
>    CC: Robert Krawitz <rlk@alum.mit.edu>,
> 	   printing-architecture@lists.linux-foundation.org,
> 	   gimp-print-devel@lists.sourceforge.net, peter@mmiworks.net
>    Content-Type: text/plain; charset=UTF-8; format=flowed
> 
>    Alastair M. Robinson wrote:
>    > Hi :)
>    > 
>    > Robert Krawitz wrote:
>    > 
>    >> When you get right down to it, Gutenprint at its core really is a
>    >> hardware driver (or a package of hardware drivers).  It's not an
>    >> application the way GIMP is -- it's a piece of infrastructure.
>    > 
>    > True - however it doesn't have the luxury enjoyed by other pieces of 
>    > infrastructure of being isolated from end-users.  If I go to 
>    > localhost:631, click on my printer and hit Set Printer Options, I see a 
>    > user-interface.  CUPS *presents* this user-interface, but which controls 
>    > I see and how they're grouped is determined by Gutenprint.  It may not 
>    > be an application, but there are user-facing aspects.
>    > 
>    > Incidentally, Peter, if an option exists in the PPD but isn't tagged, 
>    > what happens?  Will it appear in the Common Printing Dialog?
>    > And what happens if an APPrinterPreset specifies a value for an untagged 
>    > option?  Will it still be set?
> 
>    See my specs of the PPD extensions for the Common Printing Dialog:
> 
>    http://www.linuxfoundation.org/en/OpenPrinting/PPDExtensions
> 
>    Untagged PPDs will use the PPD groups as tags as a fallback. So options 
>    will be shown in a reasonable order, But the advantage of one option 
>    baing able to have more than one tag is not made use of with this fallback.
> 
> What happens if there are more than 11 or what have you PPD groups?
> Same as what you describe below?
> 

Yes.

>    Each APPrinterPreset will create a quick preset button in the left
>    column of the dialog. And the button will always set all options
>    which it is supposed to set, independent of tags and groups.
> 
> What's the upper limit on the number of presets?
> 

There is no upper limit defined. Peter, what should happen if there are 
too many quick preset buttons to fit into the area on the left?

    Till

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]   ` <4904A0EA.4030508@apple.com>
@ 2008-10-26 18:40     ` Hal V. Engel
       [not found]       ` <200810261904.m9QJ423w015373@dsl092-065-009.bos1.dsl.speakeasy.net>
  0 siblings, 1 reply; 19+ messages in thread
From: Hal V. Engel @ 2008-10-26 18:40 UTC (permalink / raw)
  To: gimp-print-devel; +Cc: printing-architecture

On Sunday 26 October 2008 09:55:06 Michael R Sweet wrote:
> Robert Krawitz wrote:
> >    Date: Sun, 26 Oct 2008 01:18:30 +0000
> >    From: "Alastair M. Robinson" <blackfive@fakenhamweb.co.uk>
> >
> >    Robert Krawitz wrote:
> >    > Why does it have to be server-side?  The print dialog could
> >    > implement it.
> >
> >    Well, this whole discussion started with the question of how
> >    gutenprint will work with the Common Printing Dialog.
> >
> > Yeah, well, I'm not assuming that the implementation (at least) of the
> > CPD can't be changed.  Nor am I assuming that CUPS can't be changed
> > (which it would need to be anyway, in order to handle curves).  This
>
> Um, CUPS doesn't have to be changed to support curves aka LUTs - the
> existing 1setOf functionality handles arbitrarily long arrays of data.
>
> Whether it makes sense to pass all that data as part of the job is
> another matter - I personally don't believe it does since it is
> highly driver-specific and something the user is likely to generate
> once and reference multiple times.

I agree with this.

>
> IOW, I don't see a user (or program) doing this:
>
>      lp -o gutenprint-cyan-curve=0,0.01,0.012,...,1.0 filename
>
> Instead, I would expect them to use:
>
>      lp -o stpUserProfile=AcmeLustreGray filename
>
> where "AcmeLustreGray" is a profile that the user created using a
> Gutenprint-specific profiling/admin application.  This profile would
> be "installed" on the system that is actually doing the printing.
> This would not necessarily require root privileges to do as user-
> specific profile directories are easy to do and CUPS does not require
> root access to update a printer as long as the distro/OS puts users in
> the system group (lpadmin or sys depending on the system).

I am a little confused (sorry).  I can't find any documentation on 
stpUserProfile anywhere.   Could you provide an explanation?

Hal
 

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]       ` <200810261904.m9QJ423w015373@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-26 21:23         ` Hal V. Engel
  0 siblings, 0 replies; 19+ messages in thread
From: Hal V. Engel @ 2008-10-26 21:23 UTC (permalink / raw)
  To: Robert Krawitz; +Cc: printing-architecture, gimp-print-devel

On Sunday 26 October 2008 12:04:02 Robert Krawitz wrote:
>    From: "Hal V. Engel" <hvengel@astound.net>
>    Date: Sun, 26 Oct 2008 11:40:26 -0700
>
>    On Sunday 26 October 2008 09:55:06 Michael R Sweet wrote:
>    > Robert Krawitz wrote:
>    > >    Date: Sun, 26 Oct 2008 01:18:30 +0000
>    > >    From: "Alastair M. Robinson" <blackfive@fakenhamweb.co.uk>
>    > >
>    > >    Robert Krawitz wrote:
>    > >    > Why does it have to be server-side?  The print dialog could
>    > >    > implement it.
>    > >
>    > >    Well, this whole discussion started with the question of how
>    > >    gutenprint will work with the Common Printing Dialog.
>    > >
>    > > Yeah, well, I'm not assuming that the implementation (at least) of
>    > > the CPD can't be changed.  Nor am I assuming that CUPS can't be
>    > > changed (which it would need to be anyway, in order to handle
>    > > curves).  This
>    >
>    > Um, CUPS doesn't have to be changed to support curves aka LUTs - the
>    > existing 1setOf functionality handles arbitrarily long arrays of data.
>    >
>    > Whether it makes sense to pass all that data as part of the job is
>    > another matter - I personally don't believe it does since it is
>    > highly driver-specific and something the user is likely to generate
>    > once and reference multiple times.
>
>    I agree with this.
>
> I don't disagree.  I just don't think that the fact that something's
> not likely to be done all that often is a good reason to consider it
> an "administrative" task that requires administrator privilege.

I didn't read Michael's statement as saying that this would always require 
administrative privilege.  What I was agreeing with was that this was a create 
once (or at least only once in a while) and use often type of thing.  Because 
of that I think that it makes sense to avoid transmitting this data to the 
print server for every job if possible.  But I also agree with you that it 
should be possible for ordinarily users to create calibration data sets and 
use them without the need for administrative rights.  If that use case means 
that the calibration data needs to be passed to the back end with each job 
then that must be allowed but that also implies that there is a way to pass a 
file and other than the actual document to be printed I don't think this is 
allowed for files that are not installed in the /usr/cups/... directories.
  
>
>    > IOW, I don't see a user (or program) doing this:
>    >
>    >      lp -o gutenprint-cyan-curve=0,0.01,0.012,...,1.0 filename
>    >
>    > Instead, I would expect them to use:
>    >
>    >      lp -o stpUserProfile=AcmeLustreGray filename
>    >
>    > where "AcmeLustreGray" is a profile that the user created using a
>    > Gutenprint-specific profiling/admin application.  This profile would
>    > be "installed" on the system that is actually doing the printing.
>    > This would not necessarily require root privileges to do as user-
>    > specific profile directories are easy to do and CUPS does not require
>    > root access to update a printer as long as the distro/OS puts users in
>    > the system group (lpadmin or sys depending on the system).
>
>    I am a little confused (sorry).  I can't find any documentation on
>    stpUserProfile anywhere.   Could you provide an explanation?
>
> It doesn't exist, at least right now -- Mike was just using this as an
> example.

So something like this would be a new driver option that would be added to the 
GutenPrint driver that could be set to point to a calibration file that would 
be used by the driver?  Of course this implies that users can somehow setup a 
"AcmeLustreGray" calibration data set so that a driver like GutenPrint could 
use it.  Another source of confusion for me is that I though that the 
/usr/share/cups/profiles directory was for ICC profiles but I guess that could 
also contain calibration data sets.  

The other issue is how would this work in the general case?  I could see this 
being OK, but perhaps not ideal,  when the print server is located on the same 
machine as the users.  But what happens if the print server is located on the 
network or what if the printer is shared (which is the same as being on the 
network)?  How would users "install" their own ICC Profiles and calibration 
data sets?  In addition for network printers with administratively installed 
ICC profiles and calibration data sets how can these be discovered by 
ordinarily users so that these can be used?  For calibration data this is a 
smaller issue since users do not need to have direct access to the calibration 
data since these could be encapsulated and hidden in presets that were created 
by the administrator that would show up in the CPD.  But users do need to be 
able to discover and get copies of ICC profiles to be able to do soft proofing 
and this would not be possible on a networked printer at least not without 
some new features in the print system.   

For the new PDF printing work flow the ICC Profile issues could become moot if 
things are properly designed.  The PDF format allows for there to be an 
embedded output profile as well as profiles for individual objects in the 
document and the PDF specification calls for PDF rasterization software to use 
that output profile if it finds one in the file.  In other words the PDF 
document file could be used to transmit the output profile information to the 
print server and then the requirement that output profiles be located in a 
certain location goes away.  Of course this functionality would have to be 
implemented in the CPD and the rest of the printing work flow since it is 
currently unsupported.  

Hal

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]                                       ` <alpine.LNX.1.10.0810281134060.17582@nelson.suse.de>
@ 2008-10-28 12:59                                         ` Till Kamppeter
  2008-10-28 15:19                                           ` Till Kamppeter
  0 siblings, 1 reply; 19+ messages in thread
From: Till Kamppeter @ 2008-10-28 12:59 UTC (permalink / raw)
  To: Johannes Meixner; +Cc: printing-architecture, gimp-print-devel

Johannes Meixner wrote:
> Hello,
> 
> On Oct 27 06:54 Robert Krawitz wrote (shortened):
>>   Date: Sun, 26 Oct 2008 20:08:44 -0700
>>   From: Michael R Sweet <msweet@apple.com>
>>
>>   Robert Krawitz wrote:
>>   >    Date: Sun, 26 Oct 2008 09:41:39 -0700
>>   >    From: Michael R Sweet <msweet@apple.com>
>>   >
>>   >    Unless we want the print dialog to pass the XML data needed by the
>>   >    driver (not a good idea IMHO), that data will need to be on the
>>   >    "server" (I use quotes because most of the printing done to
>>   >    consumer/ prosumer inkjets is done from a single system) and then
>>   >    referenced by the print dialog, probably via an option choice
>>   >    and/or preset that is passed instead.
>>   >
>>   > Why would it be a bad idea to pass it in from the client?
>>
>>   Oh, I don't know, maybe just that passing a shitload of real numbers
>>   with every print job is incredibly inefficient and totally non-user-
>>   friendly?
>>
>>   For example, you'd be looking at 1MB of data for 16-bit LUTs for an 8
>>   color printer.  I hope you've been working on your typing!
>>
>> That's why I think the dialog should be able to grab per-user presets
>> out of a client-side .cups_presets or whatever file.
> 
> The latter would introduce another new kind of file type
> (beside ~/cups/.lpoptions).
> 
> 
> What about having the possibility sending print job options
> which are actually bigger pieces of whatever data
> as print job files and have well known predefined MIME rules
> on the server so that only on the server there is the special
> knowledge that whatever special data type as print job file
> is actually a job option?
> 
> E.g. something like
> 
> lp -d queue-name file.optiondata file.postscript
> 
> I think a problem is how to avoid that file.optiondata
> is actually printed on an older CUPS version server.
> 
> Perhaps it could work to have its MIME type so that
> on an older version server it is recognized as
> application/octet-stream
> so that such data is not printed by default?
> 
> 
> Perhaps it would be better (i.e. cause less conflicts)
> when a normal user could upload a print job options file
> to the server e.g. via
> 
> lp -d queue-name -o job-options-upload file.optiondata
> 
> and use it later as often as he likes via
> 
> lp -d queue-name -o job-options-file=file.optiondata file.postscript
> 
> The server would store the uploaded job options files
> separated for each user name.
> 
> The server should have appropriate "MaxJobOptionsFiles" and
> "MaxJobOptionsFilesPerUser" settings with reasonable defaults
> in its cupsd.conf file.

CUPS has a concept for that and Gutenprint already supports it for head 
cleaning. The command file "printing" concept. You send a file with 
special commands and the mime.types system of CUPS recognizes it as 
command file, directing it into a "commandto..." filter supplied by the 
Gutenprint package. This "commandto..." filter could also save advanced 
options per-user and Gutenprint's "rastertogutenprint" filter could read 
them according to the user name of the sending user. A certain command 
in a command file could also send back the current configuration, so 
that the user can see his settings.

As CUPS filters are all run by the "lp" user, all settings are stored in 
a file (system) with read/write access by "lp".

The command files do not need to be hand-written, they can be created by 
the advanced settings GUI of Gutenprint and/or by the GIMP plug-in. They 
can also be of arbitrary length, for example with an embedded ICC profile.

Disadvantage of the concept is that users cannot configure while the 
printer is printing (if one does not create an extra queue only for 
configuring, but this would look ugly in the printing dialogs of 
applications).

    Till

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
  2008-10-28 12:59                                         ` Till Kamppeter
@ 2008-10-28 15:19                                           ` Till Kamppeter
       [not found]                                             ` <49074E92.5020809@apple.com>
  0 siblings, 1 reply; 19+ messages in thread
From: Till Kamppeter @ 2008-10-28 15:19 UTC (permalink / raw)
  To: Johannes Meixner; +Cc: printing-architecture, Michael Sweet, gimp-print-devel

Till Kamppeter wrote:
> 
> CUPS has a concept for that and Gutenprint already supports it for head 
> cleaning. The command file "printing" concept. You send a file with 
> special commands and the mime.types system of CUPS recognizes it as 
> command file, directing it into a "commandto..." filter supplied by the 
> Gutenprint package. This "commandto..." filter could also save advanced 
> options per-user and Gutenprint's "rastertogutenprint" filter could read 
> them according to the user name of the sending user. A certain command 
> in a command file could also send back the current configuration, so 
> that the user can see his settings.
> 
> As CUPS filters are all run by the "lp" user, all settings are stored in 
> a file (system) with read/write access by "lp".
> 
> The command files do not need to be hand-written, they can be created by 
> the advanced settings GUI of Gutenprint and/or by the GIMP plug-in. They 
> can also be of arbitrary length, for example with an embedded ICC profile.
> 
> Disadvantage of the concept is that users cannot configure while the 
> printer is printing (if one does not create an extra queue only for 
> configuring, but this would look ugly in the printing dialogs of 
> applications).
> 
>    Till
> 

This approach would be a concept where user settings are saved on the 
print server, So one user (identified by his user name) can use the 
settings from several clients.

The options and quick preset buttons in the Common Printing Dialog 
cannot be influenced by the user's settings, They depend solely on the 
PPD file and each print queue has only one PPD which does not change 
depending on the requesting user.

To let one and the same user save several settings, he would need to 
have a fixed amount of "slots" on the server and the PPD should contain 
an options to select one of the "slots". There can be special quick 
preset buttons for that or it can simply be an option which appears 
somewhere in the dialog.


Another concept would be the following:

Let us assume that CUPS can take options with arbitrary string length 
(Mike, is this correct?). Then we could send an arbitrary file containg, 
option settings, ICC profiles, job ticket, ... as argument of an option. 
Only condition is that the expression is ASCII without spaces, but we 
can UU-encode binary files.

The Gutenprint driver (rastertogutenprint) could accept a string option 
named "FineTuning" which takes the configuration file which the user's 
fine adjustment GUI for Gutenprint generates as one long string. 
rastertogutenprint reads the option from the fifth command line argument.

So the user sets a lot of fine adjustments, and also selects an ICC 
profile with Gutenprint's advanced settings GUI. The GUI puts the 
settings into an ASCII representation and saves this representation in 
~/.cups/lpoptions as a huge line like:

Dest epson FineTuning=blablabla...

Then CUPS sends this string with every job to the server and 
rastertogutenprint parses these settings and uses them.

The FineTuning option will not be mentioned in the PPD files, so that it 
does not appear in the printing dialogs.

With this approach there does not need to be saved any user data on the 
server, the user can tune and save settings whenever he wants, also 
while the printer printer is printing. The user can also save any number 
of settings using CUPS' concept of printer instances.

Disadvantage is that all configuration info is in the user's home 
directory on the client. If he accesses with several clients, the 
clients do not provide necessarily the same settings. Also the length of 
the string which can be passed with one option can be limited, but here 
pne could perhaps let rastertogutenprint accept more than one "hidden" 
option.

WDYT? Which of the two approaches should we use? The server-centralized 
way controlled by the user's client GUI "printing" command files or the 
client-based solution where the GUI saves the options as personal 
settings and they get submitted with every print job?

    Till

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
       [not found]                                                 ` <200810310048.m9V0mDYI005128@dsl092-065-009.bos1.dsl.speakeasy.net>
@ 2008-10-31  1:53                                                   ` Alastair M. Robinson
  0 siblings, 0 replies; 19+ messages in thread
From: Alastair M. Robinson @ 2008-10-31  1:53 UTC (permalink / raw)
  To: Robert Krawitz
  Cc: printing-architecture, Johannes Meixner, mike, gimp-print-devel

Hi :)

Robert Krawitz wrote:

> I've been reading all this, but not responding; partly I've been busy
> and partly I'm curious what other folks think.

Ditto - I've been following the posts but not taking part for the last 
few days, though I have fleshed out the Wiki a little since my last mail 
on the subject.

> I'm still not a fan of requiring administrative privileges to use
> particular driver options of this kind that don't affect persistent
> state within the printer (and hence might have security implications).

Security implications are something I've been thinking about, actually. 
  In theory, it's possible for a printer to be damaged by feeding it 
pathological input.  Colour laser printers respond badly, I believe, to 
being asked to print a solid page of 100% C+M+Y+K.  Malicious 
linearization curves could potentially result in flooding an inkjet, 
too, I'd imagine.

> If something doesn't affect the system configuration or integrity it
> shouldn't require administrative privilege.

Agreed.  Our difficulty is allowing users to set these options in a way 
that makes them accessible to the driver running on the server but 
doesn't affect other users' jobs.

(Note that the current CUPS configuration as shipped by Ubuntu - at 
least in 8.04 - fails on this point.  Any user with lp privileges can 
set printer options which affect all other users.)

Oh, one other thing I've been wondering - are there currently, or are 
there likely to be in future, any printer models which support 
head-alignment, but don't have built-in persistent storage for that 
alignment?

> But I suppose I'm on the
> extreme end of maximum configurability and exposing (appropriately --
> which I might define differently from others) every possible option to
> the user, even if it allows someone to do absolutely absurd things.

"UNIX was not designed to stop its users from doing stupid things, as 
that would also stop them from doing clever things."  --  Doug Gwyn

> But there is a free RIP around Gutenprint (PhotoPrint) that could be
> extended to allow people to do this,

True - when I eventually get round to supporting curves!

> So the question is, how do we move along to that point?

Earlier today I began "thinking aloud" on that subject on the Wiki, and 
took the first steps to adding "DeviceN" support to PhotoPrint's imaging 
stack, in preparation for printing out raw per-channel linearization 
targets.

Could you outline roughly how you currently go about tuning a new, 
unknown printer, step-by-step?  Understanding the steps and the order in 
which they occur may be helpful in figuring out where the colour 
instrument can help with the process, and how best to go about making 
the results shareable.

All the best,
--
Alastair M. Robinson

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2008-10-31  1:53 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <200810132357.m9DNvMRf015955@dsl092-065-009.bos1.dsl.speakeasy.net>
     [not found] ` <48FB37A3.8090007@gmail.com>
     [not found]   ` <200810191602.m9JG2D84030719@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-22 14:49     ` [Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3 Till Kamppeter
2008-10-22 15:17       ` peter sikking
     [not found]         ` <200810230019.m9N0JCIp018128@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-24  8:52           ` peter sikking
2008-10-24 10:08             ` Till Kamppeter
2008-10-24 12:35             ` Alastair M. Robinson
2008-10-24 18:34               ` Hal V. Engel
     [not found]                 ` <49021D0B.4040708@apple.com>
2008-10-25  0:46                   ` Alastair M. Robinson
     [not found]                 ` <200810251458.m9PEwS6D029068@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-25 17:43                   ` Alastair M. Robinson
     [not found]                     ` <200810251857.m9PIvIdi030089@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-25 19:35                       ` Alastair M. Robinson
     [not found]                         ` <200810251950.m9PJoeFa030284@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-26  0:41                           ` Alastair M. Robinson
     [not found]                             ` <200810260049.m9Q0nTIw032617@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-26  1:18                               ` Alastair M. Robinson
     [not found]                               ` <49049DC3.8000405@apple.com>
     [not found]                                 ` <200810261653.m9QGrk2l014877@dsl092-065-009.bos1.dsl.speakeasy.net>
     [not found]                                   ` <490530BC.9090803@apple.com>
     [not found]                                     ` <200810271054.m9RAsDLs001975@dsl092-065-009.bos1.dsl.speakeasy.net>
     [not found]                                       ` <alpine.LNX.1.10.0810281134060.17582@nelson.suse.de>
2008-10-28 12:59                                         ` Till Kamppeter
2008-10-28 15:19                                           ` Till Kamppeter
     [not found]                                             ` <49074E92.5020809@apple.com>
     [not found]                                               ` <alpine.LNX.1.10.0810290940570.3548@nelson.suse.de>
     [not found]                                                 ` <200810310048.m9V0mDYI005128@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-31  1:53                                                   ` Alastair M. Robinson
2008-10-25 22:38                     ` Till Kamppeter
     [not found]                       ` <200810252249.m9PMnrSo030956@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-26  9:59                         ` Till Kamppeter
     [not found] ` <200810201403.26403.hvengel@astound.net>
     [not found]   ` <200810210026.m9L0Qnd5008431@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-22 17:15     ` [Printing-architecture] [Gimp-print-devel] [Openicc] " Hal V. Engel
     [not found] ` <200810260141.m9Q1fdci000540@dsl092-065-009.bos1.dsl.speakeasy.net>
     [not found]   ` <4904A0EA.4030508@apple.com>
2008-10-26 18:40     ` [Printing-architecture] [Gimp-print-devel] " Hal V. Engel
     [not found]       ` <200810261904.m9QJ423w015373@dsl092-065-009.bos1.dsl.speakeasy.net>
2008-10-26 21:23         ` Hal V. Engel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.