Hi,
I find "Vacuum Defs" a bit misplaced in the File menu. Maybe it could be part of the Document Preferences dialog? That would also allow it to have a longer, more self-explanatory name.
Cheers, Colin
On Sun, 26 Sep 2004, Colin Marquardt wrote:
Date: Sun, 26 Sep 2004 16:50:01 +0200 From: Colin Marquardt <colin@...384...> To: inkscape-devel@lists.sourceforge.net Subject: [Inkscape-devel] "Vacuum Defs"
Hi,
I find "Vacuum Defs" a bit misplaced in the File menu. Maybe it could be part of the Document Preferences dialog? That would also allow it to have a longer, more self-explanatory name.
I did a review on the back of an envelope and I have been meaning to write up this and many other small problems.
Initially I thought Vacuum was a mispelling, I have only ever seen the word vacumn before, Vacuum seems to be an American word. It helps where possible to avoid words that are not the same in both American Common English, I've always been annoyed at Microsoft for inflicting "Favorites" on users when Bookmarks or Shortcuts were better terms that translated properly (and there are plenty of thinks that I have shortcuts for that I are useful but I dont necessarily and are certainly not my favourites).
What I dont understand is why this implementation detail is important enough to ever be shown to the users? Why should unused <defs> be kept lying around?
I would have thought that unused definitions or <defs> (and <patterns>) could periodically be cleaned up completely automatically. Flushing them at Save would seem like the safest time (but some other time might work just as well).
There is a strategy used when creating Flash programs of keeping a palette/library, a small collection of objects off to the side of the viewable page for users that want to have at least one instance of an object available in the full scope of document. Inkscape has a flexible and reliable Undo system so it seems unlikey that a users would accidentally and irreversibly remove <defs> they might actually have wanted.
If you are still unconvinced and for some reason plan to keep the option visible in the menus or as a preference somewhere I have some suggestions on a clearer simpler label that might be appropriate.
Sincerely
Alan Horkan
http://advogato.org/person/AlanHorkan/ Inkscape, Draw Freely http://inkscape.org Free SVG Clip Art http://OpenClipArt.org
Initially I thought Vacuum was a mispelling, I have only ever seen the word vacumn before, Vacuum seems to be an American word.
Wow. At first I didn't believe that but then I googled for it and found 13000 "vacumns" out there, against 8 million vacuums. So it seems like this is indeed a fairly common misspelling, though its origins are unclear. I highly doubt that this has anything to do with British/American difference. The correct Latin word is of course vacuum.
On Sun, 26 Sep 2004, bulia byak wrote:
Date: Sun, 26 Sep 2004 20:25:54 -0300 From: bulia byak <buliabyak@...400...> To: Alan Horkan <horkana@...44...> Cc: Inkscape is a vector graphics editor inkscape-devel@lists.sourceforge.net Subject: Re: [Inkscape-devel] "Vacuum Defs"
Initially I thought Vacuum was a mispelling, I have only ever seen the word vacumn before, Vacuum seems to be an American word.
Wow. At first I didn't believe that but then I googled for it and found 13000 "vacumns" out there, against 8 million vacuums. So it seems like this is indeed a fairly common misspelling, though its origins are unclear. I highly doubt that this has anything to do with British/American difference. The correct Latin word is of course vacuum.
I checked the Oxford English dictionary and Vacumn is not to be found (although I did find Vacuum and Vacuvm). I thought perhaps it was a scientific term but I can only guess it might be related to "vacumn cleaners", the home appliance which we more often refer to as "hoovers" anway (from the brand name). If anyone has any better ideas on the etymology of the word I would be interested to know. I guess now I finally have an exuces to write to the newspaper and ask their etymology expert (the Irish Times has a regular column 'the words we use' and given what the Irish have done to the English language there are always plenty of colloquialisms to write about).
I'm clearly very very badly wrong about the spelling but (to change the subject) more importantly "Clean up defs" or "Remove unused defs" would be clearer and even more importantly is this really necessary at all?
Sincerely
Alan Horkan
http://advogato.org/person/AlanHorkan/ Inkscape, Draw Freely http://inkscape.org Free SVG Clip Art http://OpenClipArt.org
PS I'm so wrong it is almost embarassing but (I save my embarassement for bigger mistakes and) I am surprised that it is not even considered a valid alternative spelling.
subject) more importantly "Clean up defs" or "Remove unused defs" would be clearer
Probably. This was the choice of the implementor (novalis); perhaps we need to discuss the naming with him.
and even more importantly is this really necessary at all?
Yes, it's up to the user whether to keep unused stuff (if he plans to use it later) or remove it (if he wants to optimize the file for size). It's a valid choice and we should provide a way to do it.
On Sun, 26 Sep 2004, bulia byak wrote:
Date: Sun, 26 Sep 2004 22:08:21 -0300 From: bulia byak <buliabyak@...400...> To: Alan Horkan <horkana@...44...> Cc: Inkscape is a vector graphics editor inkscape-devel@lists.sourceforge.net Subject: Re: [Inkscape-devel] "Vacuum Defs"
subject) more importantly "Clean up defs" or "Remove unused defs" would be clearer
Probably. This was the choice of the implementor (novalis); perhaps we need to discuss the naming with him.
and even more importantly is this really necessary at all?
Yes, it's up to the user whether to keep unused stuff (if he plans to use it later) or remove it (if he wants to optimize the file for size). It's a valid choice and we should provide a way to do it.
I do not think you get my point of view on this. I dont understand why the user would really want manualy have to make the decision about cleaning up unused <defs> and certainly not why they would want to do this often enough to want a menu item for it.
I think this exposing implementation details to the user and adding unnecessary complexity for a fairly obscure use case. If you want to reuse something in <defs> later on why wouldn't you leave it attached to something small and discreetly off page?
Inkscape itself should be automatically storing <defs> such as gradients and patterns for later reuse in all images not just the current document. It makes more sense to me to want to be able to tell Inkscape to add store <defs> rather than to leave them floating around in the document.
Why would they want to keep unused <defs> after saving? Why would the users nnot include a small shape offpage that uses the <defs> if they really wanted to keep it around? Wouldn't this be easier and more managable?
Even iff it is really necessary it only begins to make sense as a preference of the save/export.
Do you get what I mean? Am I making some sense yet?
Sincerely
Alan Horkan
http://advogato.org/person/AlanHorkan/ Inkscape, Draw Freely http://inkscape.org Free SVG Clip Art http://OpenClipArt.org
--- Alan Horkan <horkana@...44...> wrote:
On Sun, 26 Sep 2004, bulia byak wrote:
I do not think you get my point of view on this. I dont understand why the user would really want manualy have to make the decision about cleaning up unused <defs> and certainly not why they would want to do this often enough to want a menu item for it.
And I think your missing the point entirely.
I think this exposing implementation details to the user and adding unnecessary complexity for a fairly obscure use case.
nope, its empowering the user to easily clean their defs from their doc when they choose.
If you want to reuse something in <defs> later on why wouldn't you leave it attached to something small and discreetly off page?
But why should you? its in the defs, its none visible, If you dont tell inkscape to delete it, then you should be able to expect inkscape not to. What your suggesting is that a user should know that he should keep a swatch of a pattern or whatever using the def he created to stop the program automatically wiping away his hard work when he saves. The only way most users will learn that is from the bad experience of having something they wanted keeping deleted. Plus, keeping swatches off the page is a sloppy solution.
Inkscape itself should be automatically storing <defs> such as gradients and patterns for later reuse in all images not just the current document. It makes more sense to me to want to be able to tell Inkscape to add store <defs> rather than to leave them floating around in the document.
That maybe, but until then, I dont want to go round blindly deleting stuff, but i do want us to make it easy for people to clean up after themselves if they want to.
Why would they want to keep unused <defs> after saving?
To use them in future. if you didnt want to keep unused defs, why would you create swatches?
Why would the users not include a small shape offpage that uses the <defs> if they really wanted to keep it around? Wouldn't this be easier and more managable?
how is adding an unnecessary object to the doc easier than not doing anything? and what about when they load the svg in a 3rd party viewer that gets viewboxes wrong? plus if its in a swatch they cant automatically delete unused defs if they want to later, as its now used.
Even if it is really necessary it only begins to make sense as a preference of the save/export.
preference implies a choice about default mode of operation to me, this is a one off action you perform on the current file, hence it living in the file menu.
Do you get what I mean? Am I making some sense yet?
not really.
_______________________________ Do you Yahoo!? Declare Yourself - Register online to vote today! http://vote.yahoo.com
On Mon, 27 Sep 2004, John Cliff wrote:
Date: Mon, 27 Sep 2004 09:51:42 -0700 (PDT) From: John Cliff <simarilius@...36...> To: inkscape inkscape-devel@lists.sourceforge.net Subject: Re: [Inkscape-devel] "Vacuum Defs"
--- Alan Horkan <horkana@...44...> wrote:
On Sun, 26 Sep 2004, bulia byak wrote:
I do not think you get my point of view on this. I dont understand why the user would really want manualy have to make the decision about cleaning up unused <defs> and certainly not why they would want to do this often enough to want a menu item for it.
I think this exposing implementation details to the user and adding unnecessary complexity for a fairly obscure use case.
nope, its empowering the user to easily clean their defs from their doc when they choose.
If you want to reuse something in <defs> later on why wouldn't you leave it attached to something small and discreetly off page?
"the principle of least astonishment"
if a users deletes something it is not unreasonable to expect it to be gone. if you delete a recatangle with a gradient in it why would a normal users expect the gradient to still be contained in the current document? [1] have you seen anything like this (unused definitions left lying around) in another application, of any kind not just vector drawing applictions? (the closest thing i can think of is styles definitions in a word processing document but the differnce is that there is a clear interface to it that ordinary users can learn.)
in a standard filesystem you can setup aliases set up so that a file is not deleted while there is one or more references to it, the notion of keeping something around when there are no longer any references to it seems bizarre to me.
SVG files can have items that are "hidden" (i think it is a style property of groups, <g style="visibility:hidden">) and if users want to have items hanging around in the file but not shown then they should explicitly hide them.
perhaps this would make sense to me if the defs list was shown in a way that users could easily access and clearly shown to the user as the library/palette that conveyed that these were an abstract set of resuble symbols, gradients, and patterns, associated with this document. (editing the source xml is a great workaround to any problem including this one but not a user friendly solution and is only useful if you are already aware of the defs).
But why should you? its in the defs, its none visible, If you dont tell inkscape to delete it, then you should be able to expect inkscape not to. What your suggesting is that a user should know that he should keep
you and i both understand how the SVG file format works we both understand there is a <defs> block where things are stored and that can be used multiple times within a document.
normal users wont understand how the file format is implemented. unless there is some kind of interface is added to represent these scraps that are associated with a document it wont make sense to artist and ordinary users.
Do you get what I mean? Am I making some sense yet?
not really.
sorry I have been unable to explain this better, I hope I'm getting closer to being clearer. (i have had at least one response from some one who understands what I'm trying to say)
a swatch of a pattern or whatever using the def he created to stop the program automatically wiping away his hard work when he saves. The only way most users will learn that is from the bad experience of having something they wanted keeping deleted. Plus, keeping swatches off the page is a sloppy solution.
I think i can sort of see your point of view but just not within the current limitations of Inkscape. like i said there needs to be a clear representation for users where these <defs> actually are.
being able to manually add <defs> to be stored some where (some sort of palette/swatch would be necessary too but not very convenient.
[1] Inkscape should remember the gradients created but it would be great there was an option for inkscape to automatically collect gradients/patterns/etc from documents you have opened, similar to the way Mozilla can be set to automatically collect email address from messages you recieve (and respond to).
preference implies a choice about default mode of operation to me, this is a one off action you perform on the current file, hence it living in the file menu.
if Inkscape had a 'Format' menu, that would seem like a better place to put it. would it make more sense to have "Clean up defs" under 'Object' (objects are what defs apply to) rather than File?
Sincerely
Alan Horkan
http://advogato.org/person/AlanHorkan/ Inkscape, Draw Freely http://inkscape.org Free SVG Clip Art http://OpenClipArt.org
perhaps this would make sense to me if the defs list was shown in a way that users could easily access and clearly shown to the user as the library/palette that conveyed that these were an abstract set of resuble symbols, gradients, and patterns, associated with this document.
That's what we have. Open fill & stroke and you'll find the selectable lists of the document's gradients, markers, and patterns. (Two of the three even have previews in the lists.)
if Inkscape had a 'Format' menu, that would seem like a better place to put it. would it make more sense to have "Clean up defs" under 'Object' (objects are what defs apply to) rather than File?
No. "Object" is for per-object actions. "File" is for document-wide actions. Vacuuming defs is a document-wide action.
On Mi, 2004-09-29 at 01:52 +0100, Alan Horkan wrote:
"the principle of least astonishment"
if a users deletes something it is not unreasonable to expect it to be gone. if you delete a recatangle with a gradient in it why would a normal users expect the gradient to still be contained in the current document? [1]
exactly!
have you seen anything like this (unused definitions left lying around) in another application, of any kind not just vector drawing applictions? (the closest thing i can think of is styles definitions in a word processing document but the differnce is that there is a clear interface to it that ordinary users can learn.)
Yeah, but that are explicit definitions, not ones used gradients
SVG files can have items that are "hidden" (i think it is a style property of groups, <g style="visibility:hidden">) and if users want to have items hanging around in the file but not shown then they should explicitly hide them.
This makes me wonder... when I circle through my objects on the canvas with tabs, I notice that I have many black objects, that just aren't there. I can delete them, but once I save and reopen the document, they are back there... I think I should file a bug, but I don't think it's hidden objects, though.
perhaps this would make sense to me if the defs list was shown in a way that users could easily access and clearly shown to the user as the library/palette that conveyed that these were an abstract set of resuble symbols, gradients, and patterns, associated with this document. (editing the source xml is a great workaround to any problem including this one but not a user friendly solution and is only useful if you are already aware of the defs).
still not what you expect. Even though I don't like spacial Nautilus, in this case I think it's about what you expect in the real world to happen. The worst part is, that right now you can't differentiate between gradients to keep and gradients to through away. If you had to manually select the ones you want to keep, you expect the others to be thrown away. It's also a pitty that i can't have swatches for colors and strokes (but yes, we know that :)
But why should you? its in the defs, its none visible, If you dont tell inkscape to delete it, then you should be able to expect inkscape not to. What your suggesting is that a user should know that he should keep
you and i both understand how the SVG file format works we both understand there is a <defs> block where things are stored and that can be used multiple times within a document.
It's not about how SVG works. I know how it works, but I still expect fills and stroke to be bound to an object, unless I want them not to be. And even though they are not visible: they bloat the file and make the gradient list unusable.
normal users wont understand how the file format is implemented. unless there is some kind of interface is added to represent these scraps that are associated with a document it wont make sense to artist and ordinary users.
Do you get what I mean? Am I making some sense yet?
not really.
sorry I have been unable to explain this better, I hope I'm getting closer to being clearer. (i have had at least one response from some one who understands what I'm trying to say)
a swatch of a pattern or whatever using the def he created to stop the program automatically wiping away his hard work when he saves. The only way most users will learn that is from the bad experience of having something they wanted keeping deleted. Plus, keeping swatches off the page is a sloppy solution.
I think i can sort of see your point of view but just not within the current limitations of Inkscape. like i said there needs to be a clear representation for users where these <defs> actually are.
being able to manually add <defs> to be stored some where (some sort of palette/swatch would be necessary too but not very convenient.
[1] Inkscape should remember the gradients created but it would be great there was an option for inkscape to automatically collect gradients/patterns/etc from documents you have opened, similar to the way Mozilla can be set to automatically collect email address from messages you recieve (and respond to).
Inkscape should remember the gradients used and the gradients saved as swatches... not all the ones created. There should not be an "collect gradients from open documents" function but an "Import Gradients" (from documents or seperate swatch files or from gimp gradients) function for the swatches palette. Usually the user wants one specific gradient, color, or stroke style (further down the road we can also go for text styles) and not a whole bunch of them that he doesn't need, but confuses him in the gradient list (esp. as long as we have these meaningless names and no ui (xml editor is not ui) to change them).
preference implies a choice about default mode of operation to me, this is a one off action you perform on the current file, hence it living in the file menu.
if Inkscape had a 'Format' menu, that would seem like a better place to put it. would it make more sense to have "Clean up defs" under 'Object' (objects are what defs apply to) rather than File?
"Clean up defs" has to be a temporary solution! Let's not discuss on where to put it, it's not important, really.
Get my point? Essentially what I'm asking for is something like InDesign does, I think. Just a little better :)
Take care!
David
On Wed, 2004-09-29 at 05:26, David Christian Berg wrote:
On Mi, 2004-09-29 at 01:52 +0100, Alan Horkan wrote:
"the principle of least astonishment"
if a users deletes something it is not unreasonable to expect it to be gone. if you delete a recatangle with a gradient in it why would a normal users expect the gradient to still be contained in the current document? [1]
exactly!
have you seen anything like this (unused definitions left lying around) in another application, of any kind not just vector drawing applictions? (the closest thing i can think of is styles definitions in a word processing document but the differnce is that there is a clear interface to it that ordinary users can learn.)
Yeah, but that are explicit definitions, not ones used gradients
Gradients which are automatically created for various purposes are automatically cleaned up when they become no longer used. I implemented this for 0.39 (or was it 0.38?).
Manually-created gradients/etc, however, must be explicitly cleaned up when requested. Attempts at a more agressive automatic policy brought too many complaints from users who were negatively astonished.
This makes me wonder... when I circle through my objects on the canvas with tabs, I notice that I have many black objects, that just aren't there. I can delete them, but once I save and reopen the document, they are back there... I think I should file a bug, but I don't think it's hidden objects, though.
Could you post a sample SVG in which this behavior is displayed?
The worst part is, that right now you can't differentiate between gradients to keep and gradients to through away. If you had to manually select the ones you want to keep, you expect the others to be thrown away. It's also a pitty that i can't have swatches for colors and strokes (but yes, we know that :)
I think we will need to revisit orphan collection policy once we have swatches implemented; we may be able to do something that feels a little more natural.
It's not about how SVG works. I know how it works, but I still expect fills and stroke to be bound to an object, unless I want them not to be. And even though they are not visible: they bloat the file and make the gradient list unusable.
We had to strike a balance between keeping objects and removing them as soon as they became unused. The most agressive policies caused problems so now we have adopted a more conservative one
With the current UI (i.e. no swatches) the current policy seems to be the most aggressive one that doesn't surprise most users when it deletes things).
"Clean up defs" has to be a temporary solution! Let's not discuss on where to put it, it's not important, really.
Agreed, I think..
-mental
This makes me wonder... when I circle through my objects on the canvas with tabs, I notice that I have many black objects, that just aren't there. I can delete them, but once I save and reopen the document, they are back there... I think I should file a bug, but I don't think it's hidden objects, though.
Could you post a sample SVG in which this behavior is displayed?
I reviewed that already. 0.39 could select empty text objects from empty lines in the file as regular objects (with no bbox). This is fixed in CVS.
On Wed, 29 Sep 2004, MenTaLguY wrote:
I think we will need to revisit orphan collection policy once we have swatches implemented; we may be able to do something that feels a little more natural.
...
With the current UI (i.e. no swatches) the current policy seems to be the most aggressive one that doesn't surprise most users when it deletes things).
"Clean up defs" has to be a temporary solution! Let's not discuss on where to put it, it's not important, really.
so long as it is clear that this solution is not permanant, that is enough to keep me happy for now.
there are still more issues I didn't mention but I want to mention and this should be my last post on this thread for a while.
I changed the subject of the thread because I really think that something we could do now would be to change the label wording to something simpler like "Clean up defs" or "Remove Unused defs" and ideally we we will need a better term than an abbreviation like <defs> as it is an implementation detail we shouldn't be exposing to the users.
I forgot to mention how bizarre it is to have a menu item that to the casual user appears to do nothing, when working exactly as intended. Having a clear status bar message is a start but doesn't help the fact that if an ordinary user is wondering what "Vacuum defs" does and then tries it out they will be none the wiser to what has actually happened as there is no significant visual feeback.
Shouldn't this feature be a checkbox item? (or moved to preferences?) if you want to have unused defs automatically cleaned up would you really want to invoke it manually each time? (I know I wouldn't)
Sincerely
Alan Horkan
http://advogato.org/person/AlanHorkan/ Inkscape, Draw Freely http://inkscape.org Free SVG Clip Art http://OpenClipArt.org
On So, 2004-09-26 at 22:08 -0300, bulia byak wrote:
subject) more importantly "Clean up defs" or "Remove unused defs" would be clearer
Probably. This was the choice of the implementor (novalis); perhaps we need to discuss the naming with him.
and even more importantly is this really necessary at all?
Yes, it's up to the user whether to keep unused stuff (if he plans to use it later) or remove it (if he wants to optimize the file for size). It's a valid choice and we should provide a way to do it.
That's what we need a palette (swatches) for. If you want to keep it, just put it onto swatches... if you don't do so, it's removed, once no object uses it.
David
Alan Horkan <horkana@...44...> writes:
I'm clearly very very badly wrong about the spelling but (to change the subject) more importantly "Clean up defs" or "Remove unused defs" would be clearer and even more importantly is this really necessary at all?
FWIW, I translated it like this in my local version: Clean up "defs"
Cheers, Colin
participants (6)
-
Alan Horkan
-
bulia byak
-
Colin Marquardt
-
David Christian Berg
-
John Cliff
-
MenTaLguY