LWN.net Logo

The Grumpy Editor's diagram editor followup

Last week's review of several diagram editors attempted to be comprehensive, but, inevitably, a few were missed. Here, your editor will attempt to do penance by looking at a few tools which were passed over last time. [Kivio]

Kivio had actually been considered for the previous article. Your editor, however, had seen a tool which, apparently, could only draw lines and text. Thinking that kivio must be a little too young for a real review, your editor set it aside and moved on. Kivio users will understand the problem at this point: your editor missed the little icon [Kivio icon] (shown at left) in the toolbar which loads stencils into the system. Kivio, the main purpose of which is the creation of flowcharts, is all about stencils. A large set of stencils is provided with the program; they include the full library of shapes from Dia, national flags, a map of Belgium, UML symbols, and "people shapes" including a woman in a bikini. Working with kivio is really a matter of finding the stencils you like, dragging them onto the screen, and drawing lines between them.

Strangely, there seems to be no mechanism built into kivio for the creation and editing of stencils; they all would appear to come from the outside. Nothing in the menus or online documentation says anything about how to get stencils into the system. Unless, of course, you want to buy the proprietary stencil builder or get some stencils on a per-seat license from theKompany.com.

Kivio has a number of the features your editor was looking for, including layers, attachment points, etc. But the simple fact is that kivio is an awkward and difficult tool to work with. Attributes (colors, line widths, arrowheads, etc.) must be set individually for every object; there appears to be no way to get kivio to apply user-specified attributes to new objects. There is no way to adjust the dimensions of arrowheads (and, interestingly, the "start arrowhead" appears at the second point of the connector). Connectors can only be straight lines. Alignment operations are done via a separate, popup dialog. The "docker" feature, which puts tools like the layer manager on the edge of the diagram, looks cute, but the tools are forever popping in and out when the diagram is being edited. Kivio cannot export to an image file; it is limited to KOffice format or (via the print operation) PostScript or PDF.

Kivio is a reasonable tool for some simple tasks now, and may well develop into a capable, general-purpose diagram editor eventually. But it is not up to your editor's needs at this time.

[Skencil] Skencil (formerly "sketch") was highly recommended by some LWN commenters. Skencil, in its stable version, is a Tk-based vector drawing package. This tool is currently being reworked to use GTK instead, but that version is not yet ready for release. Skencil has many of the typical drawing functions, and it supports layers. It does not support attachment points, and it cannot export to image formats.

Once again, your editor found this tool to be awkward and frustrating to work with. The interface is highly modal and confusing at times. Changing the default attributes of objects is hard. The arc-drawing tool is very confusing to use at the outset (though, once you get the hang of it, it turns out to be a powerful tool). The alignment operations require dealing with a separate dialog.

On the other hand, skencil has some slick features, such as the ability to draw text along an arbitrary path. There is a plugin mechanism allowing the addition of new features programmed in Python. Skencil also can import images in a number of formats. It may well be a useful tool for those engaged in more artistic pursuits; it is not, however, the best diagramming tool out there.

[Inkscape] Finally, your editor took a look at inkscape. As a drawing tool, inkscape has a nice feature set; it has a reasonable set of drawing options, a full set of path operations, etc. Perhaps the biggest omission is the lack of support for layers. For the creation of diagrams, however, inkscape is not the right tool. There are no attachment points, no arrowheads, and no image export. Inkscape's priorities are simply elsewhere.

Worth a quick mention: if your main interest is the creation of UML diagrams, Umbrello may be worth checking out. It is, however, very much a special-purpose tool, with UML assumptions wired deeply into it; as such, it's not suitable for more general purpose diagramming.

To conclude: your editor will stick with dia for now for his cheesy diagram creation needs. Of all the tools reviewed, dia stands out for its focus on this particular task, the quality of its output, and its ease of use. There is a lot of development happening in this area, however; the situation could well be different next year.


(Log in to post comments)

The Grumpy Editor's diagram editor followup

Posted May 10, 2004 22:50 UTC (Mon) by iabervon (subscriber, #722) [Link]

You should try exporting your xfig diagrams to eps, opening them with gv, taking a screenshot with the GIMP, and saving that as a PNG. While xfig's rasterization is terrible (so the fonts and lines come out ugly), you can use a better rasterizer. It's much more UNIXy to chain together 3 tools than to hope a single tool will do good things all the way through (although one could wish that these tools were more amenable to automation...).

The Grumpy Editor's diagram editor followup

Posted May 10, 2004 23:21 UTC (Mon) by ballombe (subscriber, #9523) [Link]

The gimp support eps format and is scriptable, so you don't need to use GV and take
a screenshot, and you can automat the task with the perl binding, e.g.

The Grumpy Editor's diagram editor followup

Posted May 11, 2004 1:23 UTC (Tue) by jamesh (subscriber, #1159) [Link]

Why not just run Ghostscript directly with one of the png output devices? This will allow you to produce 24-bit PNGs even if you run your X server in 16-bit mode (which your screenshot method won't). You can also do PNGs with an alpha channel using the pngalpha device.

The Grumpy Editor's diagram editor followup

Posted May 11, 2004 2:18 UTC (Tue) by iabervon (subscriber, #722) [Link]

I was being conservative and only mentioning steps that I'd done
previously. Certainly other methods should work at least as well. In any
case, fig2dev is not a good way of generating good raster images, which
seems to be the Grumpy Editor's main complaint with xfig.

The Grumpy Editor's diagram editor followup

Posted May 10, 2004 22:52 UTC (Mon) by alspnost (subscriber, #2763) [Link]

Thanks Jon - once again, LWN proves its worth beyond any doubt. Not only are the articles useful in themselves, but it's really nice for the readers to request a feature and to watch it just happen. It's a small thing, but if only all organisations listened to their "customers" like that ;-)

Keep up the excellent work, though you seem to require little encouragement!

The Grumpy Editor's diagram editor followup

Posted May 11, 2004 1:24 UTC (Tue) by miallen (guest, #10195) [Link]

I agree with alspnost. I think the Grumpy Editor is on to something interesting. It's virtually unheard of to get an objective review of anything in the tech world.

Here's an idea; devise a list of office related software tasks and use that as a sort of benchmark. There should be 5 or 10 tasks like:

user B receives email form user A with specs for wheel
create diagram of wheel including text from body of email
create table in spreadsheet of wheel test results
insert diagram into document
insert table into document
email document to user C
user C formats and prints document

It makes me nervous to hear the Linux crowd talk about how great the Linux desktop is. The Linux desktop is good for simple things but there are serious holes.

Linux hard to use?

Posted May 11, 2004 3:33 UTC (Tue) by hathawsh (subscriber, #11289) [Link]

This is drifting offtopic, but after battling Windows XP for a week, I'm now surprised when people say Linux is hard to use. I spent days trying to figure out how to do the following on a new Thinkpad:

- Configure wireless networking. It simply refused to work.

- Disable all listening ports (to avoid viruses)

- Resize partitions

- Map the function keys to virtual desktops

I could buy extra software to do these things, but that means Windows is incomplete. With Linux, these core tasks are only keystrokes away once you have some guidance or experience, and there's so much guidance out there on the net. Once I finally gave up on Windows, I returned to the friendly world of Linux. Nearly all of the drivers for the hardware come with the distribution (including Intel Gigabit, an Atheros wireless card, USB device drivers, etc), along with simple tools to manage everything (iwconfig, netstat, ntfs/reiserfsprogs, KDE, and so on.)

Unlike five years ago when I did a similar comparison, I found Linux significantly more usable than Windows. I think Linux is now ahead of Windows in ease of use, and that adoption is held up only by momentum. Linux has problems too, but I'm convinced that time spent learning how to solve a Linux problem is quicker and more fruitful than time spent learning proprietary solutions.

Linux hard to use?

Posted May 11, 2004 14:17 UTC (Tue) by rjamestaylor (guest, #339) [Link]

Solution: use Linux (etc) for networking and Internetworking. Use Windows, unplugged when possible, physically firewalled when not, to do other things.

Continue this task separation until
(1) Linux (etc) has features matching Windows or
(2) Windows gets a screen.

Linux hard to use?

Posted May 11, 2004 23:32 UTC (Tue) by miallen (guest, #10195) [Link]

Map the function keys to virtual desktops

Wow! I thought I invented that. I use F3 to go "left" and F5 to go "right".

But it could still be better

Posted May 11, 2004 23:31 UTC (Tue) by bryn (guest, #1482) [Link]

I am wary of getting critical of LWN, since the crew do such a good job and I wouldn't want them to stop. However, I still think there is some room for improvement. In this case I would be very pleased to see that the Editor has communicated with the developers of a package to make sure he has the full story. One of the great things about Free Software is that developers are quite easy to contact, so undocumented/hidden/upcoming features could also be reported on with a little extra checking.

I dunno Jon, maybe you already do this, but given some of the feedback I see here there still seems to be scope for something more.

not really

Posted May 13, 2004 2:41 UTC (Thu) by vblum (subscriber, #1151) [Link]

Actually, it is highly instructive to hear how a tool will work _before_ you actually know all
the workarounds because you spoke to the High Master of Said Tool Himself. There are a
million workarounds in the world, but the key to a usable program is to get a specific job
done within reasonable amounts of time.

For instance, one of the previous posters' comments on screenshots to convert images -
that will work once, but if I had to do that every single time that I convert an image, I would
go nuts. Fortunately, there is convert out there, and the relevant information is actually
accessible in the man page, hear hear.

Not that _that_ was so easy to find out, though - from display's menus alone, I had no idea
how quick the access to standard features was in convert, and spent a lot of fruitless time
trying to wrestle gs ...

LWN Modality

Posted May 13, 2004 17:32 UTC (Thu) by JLCdjinn (subscriber, #1905) [Link]

Yeah, we definitely get different kinds of news from LWN, and these different types serve different and (in my estimation) still valuable purposes. On one hand we have "The Grumpy Editor" series, which does try to do an on-the-surface evaluation of many tools in parallel. This is very useful for users of a given feature set who want an initial impression of the various tools in the field.

On the other hand we have "Jon Corbet, Investigative Reporter", particularly with respect to the Kernel section. I think LWN does an excellent job of balancing its energies into news of interest to its readers. It would be a great deal of work to do an in-depth evaluation of these tools. A user-focused overview is news; an in-depth tool feature discussion is a HOWTO or other tool documentation, unless it concerns something new or of particular critical interest to the community.

But it could still be better

Posted May 15, 2004 16:41 UTC (Sat) by bronson (subscriber, #4806) [Link]

I totally disagree. For desktop-oriented software like this, reasonably experienced users should be able to immediately use a program to do basic tasks. If they have to resort to reading the manual or asking the mailing list to get even simple tasks done, the program has failed.

There are always exceptions, but drawing programs are not one of them. :)

The Grumpy Editor's diagram editor followup

Posted May 12, 2004 2:34 UTC (Wed) by njhurst (guest, #6022) [Link]

Inkscape has markers (arrowheads etc) in CVS now. I'm not sure what is meant by no image export - in every version since early sodipodi days there has been an export bitmap option in the file menu.

Layers and connector points are being talked about.

Skencil

Posted May 13, 2004 8:26 UTC (Thu) by ber (subscriber, #2142) [Link]

Using Skencil for a lot of diagram work I can say it works nicely once you learn some ropes.

Image export
Use the Script -> Export Raster from the menu. For low resolution image you might want to use gimp for postprocessing.
Connection points
Using a grid helps a bit here.. Note that you can put any object in the grid layer and Skencil will snap to it.
Latest stable version of Skencil is 0.6.16. Your screenshot hint about that you did not use the latest stable version.

Skencil

Posted May 13, 2004 16:00 UTC (Thu) by mmarsh (subscriber, #17029) [Link]

Grid alignment and connection points really just aren't the same. Like TGE, I often want connectors to follow the objects they're connecting as the objects move around. I'm actually even pickier: I'd like connectors that adjust their connection points based on relative orientation. If you have a lot of objects and aren't sure at first how you're going to arrange them, this is _essential_.

Inkscape

Posted Aug 7, 2004 2:43 UTC (Sat) by karora (subscriber, #17553) [Link]

I've been using Inkscape a lot recently, with my 6 year-old driving me to create diagrams / drawings according to his instructions, and it's interesting and very usable.

In the course of my travels I found the Inkscape road map, which makes very interesting reading. Take a look:
http://inkscape.sourceforge.net/cgi-bin/wiki.pl?Roadmap

The current version supports primitive layering, through the ability to edit inside a group of objects. In some ways I find this _more_ useful than layers, but in a version or two there should also be a full-blown layers dialog to support layering in the way people expect. Arrowheads are supported in the current version.

With full layering, the only things really missing as a diagramming tool are connection points. These are listed in the roadmap for about six milestones out, suggesting that they won't happen for around 9-12 months.

So from what I see now it appears that Inkscape will become a very good tool on a relatively short timescale. In the meantime, when I need things to tie together in that way I use OpenOffice.org Draw, or Dia (depending on whether pre-existing shape libraries will help my task).

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds