Hi,
I've been working through the extensions in updating my book and have the following comments:
1. The release notes uses "Extensions" while the menu label in the GUI is "Effects".
2. Extract one image:
Dialog is confusing. It asks for "Path to save image". I initially though that it would get the file name out of the SVG file (maybe from the id name). The dialog would be more clear if it said "Filename (with path) to save image". (Aaron points out that it would be even better if it used a file chooser dialog.)
3. Envelope:
Generates warnings of the type: "Format autodetect failed. The file is being opened as SVG." Otherwise the effect works.
4. Flatten Bezier:
"Flatten Path" is the name used in the release notes.
5. Radius Randomize:
Minor quibble: The "normal distribution" generated isn't really a normal distribution (as you would find in the error of measuring the position of a point). The x and y coordinates should be uncorrelated and thus one should write:
x += abs(random.normalvariate(0.0,0.5*r) y += abs(random.normalvariate(0.0,0.5*r)
6. Latex Formula:
pstoedit must be installed with the SVG plug-in. The plug-in is shareware and only available for Windows and Suse Linux 9.3 using g++ 3.4.5. (See: http://www.pstoedit.net/pstoedit.)
7. Fretboard Designer:
These effects should really be grouped in a submenu under Render.
8. Effects menus:
The new organization of the Effects in submenus is great improvement! I think I would have approached the problem of implementation differently. Rather than embed menu structure inside the effects, it might of been more interesting to extract the menu structure from a directory structure, obtaining the names of the menus and of the effects from the names of the directories and the inx files respectively. For example, the Fretboard effects would be place in a directory named Fretboard_Designer inside a directory named Render. The first Fretboard effect would have an inx file with the name: Single_Length_Equal_Temperament. If would then be easy for a user to add their own effects or to move them around. Of course, one would still have to come up with a method to handle translations. The code could be reused to organize the Templates menu.
Tav
On Thu, 4 May 2006, Tavmjong Bah wrote:
- The release notes uses "Extensions" while the menu label in the GUI
is "Effects".
Extensions are a superset of Effects. Extensions are anything that extends Inkscape. So, input and output extensions are used to handle different file formats. Effect extensions are used to modify a document and they are (most of them) placed in the "Effects" menu for use by the user.
The new organization of the Effects in submenus is great improvement! I think I would have approached the problem of implementation differently. Rather than embed menu structure inside the effects, it might of been more interesting to extract the menu structure from a directory structure, obtaining the names of the menus and of the effects from the names of the directories and the inx files respectively. For example, the Fretboard effects would be place in a directory named Fretboard_Designer inside a directory named Render. The first Fretboard effect would have an inx file with the name: Single_Length_Equal_Temperament. If would then be easy for a user to add their own effects or to move them around. Of course, one would still have to come up with a method to handle translations. The code could be reused to organize the Templates menu.
While interesting, this wouldn't work for a couple of reasons. Not all effects are necissarily put into the effects menu, and not all effects are created from INX files in the file system. Effects can be created that aren't in the effects menu, and the reason for this would be so that the effects interface could be used to build functionality that might be more correctly placed in the "File" menu, or replace currently available functionality. Some effects are created using interally defined INX files, the most noteable of these are "Blur Edge" and "Grid".
--Ted
On 5/4/06, Tavmjong Bah <tavmjong@...8...> wrote:
- The release notes uses "Extensions" while the menu label in the GUI
is "Effects".
I'm still unsure of the right term. Please whoever cares about this, fix it!
Extract one image:
Dialog is confusing. It asks for "Path to save image". I initially
though that it would get the file name out of the SVG file (maybe from the id name). The dialog would be more clear if it said "Filename (with path) to save image". (Aaron points out that it would be even better if it used a file chooser dialog.)
Agreed
Flatten Bezier:
"Flatten Path" is the name used in the release notes.
Since it works on the entire path, I think the latter is more correct.
Radius Randomize:
Minor quibble: The "normal distribution" generated isn't really a
normal distribution (as you would find in the error of measuring the position of a point). The x and y coordinates should be uncorrelated and thus one should write:
x += abs(random.normalvariate(0.0,0.5*r) y += abs(random.normalvariate(0.0,0.5*r)
Looks like you're right, I'll fix it
Latex Formula:
pstoedit must be installed with the SVG plug-in. The plug-in is
shareware and only available for Windows and Suse Linux 9.3 using g++ 3.4.5. (See: http://www.pstoedit.net/pstoedit.)
It works with the "unregistered" version of it too, I tested it. So far I think we have nothing better to use instead.
Fretboard Designer:
These effects should really be grouped in a submenu under Render.
Yes.
Effects menus:
The new organization of the Effects in submenus is great improvement!
I think I would have approached the problem of implementation differently. Rather than embed menu structure inside the effects, it might of been more interesting to extract the menu structure from a directory structure, obtaining the names of the menus and of the effects from the names of the directories and the inx files respectively.
Agreed, it would be much better this way.
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
Le Thu, 04 May 2006 13:44:38 -0400, bulia byak a écrit :
Latex Formula:
pstoedit must be installed with the SVG plug-in. The plug-in is
shareware and only available for Windows and Suse Linux 9.3 using g++ 3.4.5. (See: http://www.pstoedit.net/pstoedit.)
It works with the "unregistered" version of it too, I tested it. So far I think we have nothing better to use instead.
If you're looking for free software, the bundle poppler + cairo may help you. Here's the result of a pdf to svg conversion, done with the tiny pdf2svg tool included in current cairo head (well, master, cairo uses git):
http://emmanuel.pacaud.free.fr/files/cairo/pdf_to_svg.svg
from this original pdf file:
http://emmanuel.pacaud.free.fr/files/cairo/pdf_to_svg.pdf
(Page full of text are pretty huge, since they are currently renderer as path, without optimisation).
Using rsvg-convert from librsvg + cairo, you can also do the other way:
http://emmanuel.pacaud.free.fr/files/cairo/svg_to_pdf.pdf
from this original svg file:
http://emmanuel.pacaud.free.fr/files/cairo/svg_to_pdf.svg
Emmanuel.
On 5/4/06, emmanuel <emmanuel.pacaud@...8...> wrote:
If you're looking for free software, the bundle poppler + cairo may help you. Here's the result of a pdf to svg conversion, done with the tiny pdf2svg tool included in current cairo head (well, master, cairo uses git):
http://emmanuel.pacaud.free.fr/files/cairo/pdf_to_svg.svg
from this original pdf file:
Cool, thanks for the pointer. Is it available in any released cairo version? Does it work on Windows or OSX?
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org
Le jeudi 04 mai 2006 à 21:29 -0400, bulia byak a écrit :
On 5/4/06, emmanuel <emmanuel.pacaud@...8...> wrote:
If you're looking for free software, the bundle poppler + cairo may help you. Here's the result of a pdf to svg conversion, done with the tiny pdf2svg tool included in current cairo head (well, master, cairo uses git):
http://emmanuel.pacaud.free.fr/files/cairo/pdf_to_svg.svg
from this original pdf file:
Cool, thanks for the pointer. Is it available in any released cairo version?
Yes, in the last cairo development snapshot:
http://cairographics.org/snapshots/cairo-1.1.6.tar.gz
Does it work on Windows or OSX?
Oops. I allways forgot inkscape is also a win32 application. The anwser is no :(, at least not yet. There's some hope, since poppler is a fork of xpdf, and win32 and OSX ports of xpdf exist.
http://www.foolabs.com/xpdf/download.html
Emmanuel.
On Thu, 2006-05-04 at 13:44 -0400, bulia byak wrote:
Latex Formula:
pstoedit must be installed with the SVG plug-in. The plug-in is
shareware and only available for Windows and Suse Linux 9.3 using g++ 3.4.5. (See: http://www.pstoedit.net/pstoedit.)
It works with the "unregistered" version of it too, I tested it. So far I think we have nothing better to use instead.
I can't test it (at least not easily) since I normally use Inkscape with Fedora but according to the pstoedit website:
"Unless you get a key, these drivers will slightly distort the generated output. Colors will be changed and the letter e will be replaced by $."
I guess the effect gets around this problem by converting the text to paths and by patching the color (there is a cryptic line in the py file that says "# ouvrir le svg et remplacer #7F7F7F par #000000"). Windows users have the option of paying the shareware fee but it still leaves non-Windows users out of luck.
pstoedit will produce sk files which can be imported into Inkscape (if Skencil is installed). I don't know if the effect can be adapted to use this path.
Tav
On 5/4/06, bulia byak wrote:
On 5/4/06, Tavmjong Bah <tavmjong@...8...> wrote:
- The release notes uses "Extensions" while the menu label in the GUI
is "Effects".
I'm still unsure of the right term. Please whoever cares about this, fix it!
And please make this menu accessible from keyboard. There is a bug report on it hanging for more than half a year now: http://sourceforge.net/tracker/?func=detail&aid=1313582&group_id=934...
Alexandre
On 5/10/06, Alexandre Prokoudine wrote:
On 5/4/06, bulia byak wrote:
On 5/4/06, Tavmjong Bah <tavmjong@...8...> wrote:
- The release notes uses "Extensions" while the menu label in the GUI
is "Effects".
I'm still unsure of the right term. Please whoever cares about this, fix it!
And please make this menu accessible from keyboard. There is a bug report on it hanging for more than half a year now: http://sourceforge.net/tracker/?func=detail&aid=1313582&group_id=934...
Heh, recompiled current SVN and it's fixed now. Please close the bug report.
Alexandre
On 5/11/06, Alexandre Prokoudine wrote:
And please make this menu accessible from keyboard. There is a bug report on it hanging for more than half a year now: http://sourceforge.net/tracker/?func=detail&aid=1313582&group_id=934...
Heh, recompiled current SVN and it's fixed now. Please close the bug report.
I _really_ should be more attentive. It's not fixed. I looked in the wrong place of ru.po
Alexandre
On Thu, 2006-05-04 at 13:44 -0400, bulia byak wrote:
On 5/4/06, Tavmjong Bah <tavmjong@...8...> wrote:
- The release notes uses "Extensions" while the menu label in the GUI
is "Effects".
I'm still unsure of the right term. Please whoever cares about this, fix it!
I care greatly that you don't know the right term, let me work on fixing it :)
The Extension system is a way to add functionality to Inkscape. The design of the extension system follows the bridge design pattern, breaking apart the functionality that is being provided, and the implementation of that functionality. The term extension is used to describe all of this, the functionality and the implementation. Attached is a matrix of the functionality and implementations and how they align. The dots in the cells of the matrix represent the maturity of the relationship.
There are several types of functionality provided by the extensions system today, and more are slated for the future. -- Input. Input extensions take data from a file and bring it into Inkscape. Even reading SVG files (Inkscape's native format) is implemented as an internal extension. Input extensions can be chained so that extensions can be created that don't make it all the way to SVG directly. -- Output. Output extensions take the data from Inkscape and turn it into a file. SVG Output is an internal extension. Output extensions can also be chained. -- Effects. Effects are extension that take a document, and possibly a selection, and change it in some way. This could be anything from changing colors to generating fractals. These are similar to Filters in The GIMP. -- Path Effects. Path effects provide a way to change a path. They allow a user to edit a path using the standard Inkscape path editing tools, but then have it look differently than just a line. This could include everything from adding hash marks to making the line look like it's on fire. -- Tools. Tools are the ways that you draw in Inkscape. Rectangle tool, circle tool, star tool... the goal is to eventually have the ability to add tools as extensions.
While the functionality that the extension provides is described above, how that gets done is a different story. The Inkscape extensions system allows for programmers to implement their extension in a variety of ways, trying to match their particular skillset. -- Internal. Any extension type can be implement in C or C++ and directly linked into the Inkscape codebase. While in general the goal is to move as much out of the main Inkscape binary, this makes sense for many extensions including things like SVG input/output. -- Scripts. Scripts are where Inkscape uses standard in and standard out on an external executable to implement the functionality. This allow Inkscape to reuse a variety of utilities that already do format conversion or implement cool things in SVG. Typically the scripts that are effects use a SVG DOM library in their programming language of choice. -- XSLT. This implementation is done in the XSLT language, and uses libxml's XSLT parser that is already linked with Inkscape. -- DOM Scripts. As Inkscape finishes its DOM implementation the goal will be to provide this directly to scripts. This will allow for faster execution, but also other access to Inkscape's internals and algorithms.
Hope that helps!
--Ted
On 5/21/06, Ted Gould <ted@...11...> wrote:
Hope that helps!
Indeed it does! Effects being a subset of extensions was the critical missing piece in my worldview :) I will try to remember that now.
On Sun, May 21, 2006 at 02:50:20PM -0400, MenTaLguY wrote:
On Sat, 2006-05-20 at 22:28 -0700, Ted Gould wrote:
There are several types of functionality provided by the extensions system today, and more are slated for the future.
Is this in the wiki somewhere, by the way? It should be if it isn't already.
There is a doc in inkscape/docs/extension_system.txt that covers this, although it was written fairly early on in the design so may be a bit dated. I bet ted could bring it up to date pretty quickly, and it would make a good overview of the extension architecture for folks.
Bryce
On Sat, May 20, 2006 at 10:28:44PM -0700, Ted Gould wrote:
On Thu, 2006-05-04 at 13:44 -0400, bulia byak wrote:
On 5/4/06, Tavmjong Bah <tavmjong@...8...> wrote:
- The release notes uses "Extensions" while the menu label in the GUI
is "Effects".
I'm still unsure of the right term. Please whoever cares about this, fix it!
I care greatly that you don't know the right term, let me work on fixing it :)
This is great info, Ted. I notice we also have an extensions document in inkscape/doc - would you mind taking a peek at that and making sure it jives with truth? I did a quick glance through and it appears to match up with this email.
Bryce
The Extension system is a way to add functionality to Inkscape. The design of the extension system follows the bridge design pattern, breaking apart the functionality that is being provided, and the implementation of that functionality. The term extension is used to describe all of this, the functionality and the implementation. Attached is a matrix of the functionality and implementations and how they align. The dots in the cells of the matrix represent the maturity of the relationship.
There are several types of functionality provided by the extensions system today, and more are slated for the future. -- Input. Input extensions take data from a file and bring it into Inkscape. Even reading SVG files (Inkscape's native format) is implemented as an internal extension. Input extensions can be chained so that extensions can be created that don't make it all the way to SVG directly. -- Output. Output extensions take the data from Inkscape and turn it into a file. SVG Output is an internal extension. Output extensions can also be chained. -- Effects. Effects are extension that take a document, and possibly a selection, and change it in some way. This could be anything from changing colors to generating fractals. These are similar to Filters in The GIMP. -- Path Effects. Path effects provide a way to change a path. They allow a user to edit a path using the standard Inkscape path editing tools, but then have it look differently than just a line. This could include everything from adding hash marks to making the line look like it's on fire. -- Tools. Tools are the ways that you draw in Inkscape. Rectangle tool, circle tool, star tool... the goal is to eventually have the ability to add tools as extensions.
While the functionality that the extension provides is described above, how that gets done is a different story. The Inkscape extensions system allows for programmers to implement their extension in a variety of ways, trying to match their particular skillset. -- Internal. Any extension type can be implement in C or C++ and directly linked into the Inkscape codebase. While in general the goal is to move as much out of the main Inkscape binary, this makes sense for many extensions including things like SVG input/output. -- Scripts. Scripts are where Inkscape uses standard in and standard out on an external executable to implement the functionality. This allow Inkscape to reuse a variety of utilities that already do format conversion or implement cool things in SVG. Typically the scripts that are effects use a SVG DOM library in their programming language of choice. -- XSLT. This implementation is done in the XSLT language, and uses libxml's XSLT parser that is already linked with Inkscape. -- DOM Scripts. As Inkscape finishes its DOM implementation the goal will be to provide this directly to scripts. This will allow for faster execution, but also other access to Inkscape's internals and algorithms.
Hope that helps!
--Ted
On Thu, 4 May 2006, Tavmjong Bah wrote:
Date: Thu, 04 May 2006 19:17:51 +0200 From: Tavmjong Bah <tavmjong@...8...> To: Inkscape Devel List Inkscape-devel@lists.sourceforge.net Subject: [Inkscape-devel] Effects (aka extensions)
Hi,
I've been working through the extensions in updating my book and have the following comments:
- The release notes uses "Extensions" while the menu label in the GUI
is "Effects".
We probably need a quick style guide on how to use the terminology in a consistent way which isn't too confusing if the terminology is not already explained in the Wiki or Help documentation. To add to your troubles there is an outstanding request to change the menu lable to Effect (make it a look like a verb in the vocative(?) form) but I've not provided a patch for that yet.
Extract one image:
Dialog is confusing. It asks for "Path to save image". I initially
Path is a technical term and given how Inkscape uses the term Path for other purposes it would be less confusing to use the term Location or Address. (I think the Gnome Guidelines recommed the term Location, if i recall correctly.)
Sincerely
Alan Horkan
Inkscape http://inkscape.org Abiword http://www.abisource.com Open Clip Art http://OpenClipArt.org
Alan's Diary http://advogato.org/person/AlanHorkan/
participants (10)
-
unknown@example.com
-
Alan Horkan
-
Alexandre Prokoudine
-
Bryce Harrington
-
bulia byak
-
emmanuel
-
Emmanuel Pacaud
-
MenTaLguY
-
Tavmjong Bah
-
Ted Gould