Saturday, August 3, 2013

My Current Diagramming Workflow

In the past, I've ranted a bit about the current state of diagramming tools in general. The majority of my comments there still stand - all of those issues are still as pertinent as ever, particularly
  1) Connectors and snapping points being finicky + tricky to control
  2) Bounded canvas sizes - the need to set this explicitly at the start of creating a diagram, even if you just want to worry about figuring out the content first and only THEN bounding/fitting these until they're at a decent scale
  3) Default item sizing often being off-the-charts - the chief culprits are usually things like arrowheads being too large and fat, line widths defaulting to being too thin at 1px, shapes having internal "padding" which forces text to wrap + collide with the borders in unsightly ways (with no easy way of clearing this for all new objects), and text being too large/small by default, yet always overflowing the containers exactly when you don't want them to
  4) Overly optimistic context switching - not everyone agrees with me on this one, but it's just plain annoying that you sometimes have to click things multiple times to get the intended handles (or rather get out of "internal content editing" sub-modes that you accidentally entered while trying instead to grab the whole object or one of its handles)

However, as seen from some of my recent posts, I have in recent months found that LibreOffice's Draw seems to at least be a bit more palatable than many of the other alternatives out there for many of these issues, despite still suffering from all these issues mentioned above (plus a few additional limitations, which I'll get to in a moment).

LibreOffice Draw - The Good Bits
Firstly, what is there to like about working with this tool over alternatives like slogging it out in Word/Powerpoint, Inkscape, LucidCharts, Dia, etc.?
  • Basic shape types are easy to access and activate - Rect, Rounded-Rect, Circle/Oval, Line, Line-With-Arrow, Connector-With-Boxy-Kinks are all separate types which can be easily activated
  • Border-less textboxes can be created easily using Text tool, with the whole blocks able to be moved around and resized in a predictable manner
  • "A6 Landscape" is the Optimal "Page Size" Setting for Web/Blogpost/Standard-Document diagrams (aka what I need from my diagramming tool). This setting creates a canvas that is just the right size to fit in most of these standard output formats, and also ensures that the default sizing stuff "Does the right thing (TM)". While it's a pity that I need to set these bounds in the first place, and that I can't seem to set this as *the* sole default setting it gives me on startup yet, at least setting this on new files isn't too tricky (see:  Format -> Page -> Paper Format)
  • Line weights can be quickly adjusted via top toolbar - one click on the spinbutton.up usually sets them to "0.10 cm" which does the trick for "big" items; halving this to 0.05cm or thereabouts gets the linewidths right for finer/smaller items
  • Setting text inside shapes if the labels are small and the shapes big works quite well. (See notes later...)
  • Ability to export to PNG's and PDF's.  Of the two, PDF exporting is simple and painless (just the Export PDF button on the toolbar will do), but Exporting PNG's is a little trickier - see below.
  • Grid snapping doesn't appear to be enabled by default (or at least is not as strictly restrictive+annoying as in Word/Powerpoint), so most of the time, moving items doesn't become an exercise in frustration as the object will flit around everywhere surrounding the point you want to place it apart from that very spot.
  • Showing alignment guides is good, and works somewhat well (especially the ones for lining up items on same y-row as each other). However, it'd be even better if it also showed centerlines (for lining up midpoints) too, as having the edge guides only is often tricky for determining if things are really centered correctly yet. Also, when dealing with lines that have some thickness, despite the guides being shown, it is tricky to tell if we're really in line with those or not
LibreOffice Draw - The Bad Bits
However, as with all current tools which can potentially be used for diagramming, there are downsides that may either be a deal-breaker, or constant annoyance...
  • Arrowhead sizes are out of whack. Frequently, the arrowhead is massive compared to the overall length of the line, but especially compared to the line thickness (line thickness by default is 1px, while the arrowhead is like a 1cm monster). 
  • Changing arrowhead sizes is a PITA. Unfortunately, changing this requires going into the "Arrow Head" dialog (officially, "Line" dialog - i.e. the yellow pen-tip icon, second from left on "edit" toolbar), and then bumping down the "Width" parameter under Arrow Head to 0.1cm (from defaults of 0.4 or 0.2).
  • Limited palette of colours. The set of colours available for use is quite limited. This may even be good in some situations (i.e. helps make it easy to choose nice colour schemes that look nice), but in this case, the problem is that all the colour choices available generally look like crap (NOTE: the colours I've used in the diagrams I've made have thus tended to be the best I could find within that set already :/). All I as here is to be able to use the "Tango Icons" set from Inkscape, which has served me quite well (and looks really awesome in practice IMO).
  • When exporting images, it defaults to "EMF" format. I've never heard of this, but quite frankly, it's useless to me. Would be nice to able to set this to default to PNG or SVG - both of which are things I'm much more likely to need to use when exporting!
  • When exporting as PNG, after choosing the filename, there's an annoying 1-1.5 second delay after the file browse dialog disappears before it shows a secondary dialog for configuring export settings. When exporting a lot, this thing not only gets on your nerves (
    ARGH! Why must I set these settings again" or "ARGH! WTF? Oh that's right, there's *this* dialog before it will actually export"), but also gets in the way far more than necessary
  • Setting transparancy is cumbersome - You have to go through the "Transparancy Tab" in the "Area" dialog (if you can find it). Much better would be to have a setting for this directly beside the colour picker.
  • Colour picker showing just a flat/single-column list of items is a pain. So much scrolling, with such a narrow window into the set of colours, with a somewhat random ordering.
  • Shadows look like crap. They're still the crappy gray-offsetted-silhouette variety. Come on! It's 2013 already. Get your arses in gear and implement proper soft-shadows using gradients or something.
  • There's no "glossy shading" option. I'm specifically talking about the sort that allows a subtle gradient across the shape to make it look less "flat". (And yes, I can't say I'm exactly a fan of the whole "Flat UI" fad at the moment; IMO it looks really cheap, tacky, and often quite blinding when displayed on most displays out there)
  • Connectors can do weird loopidy-loops to hell and back if you make the distance too short
  • Editing context conflicts cause need for multiple clicks to clarify intention of your click - For example, with text inside an object, you need to often do a bit of a clickery dance until you grab the right context (i.e. when you want the object, you get the text edit; but when you want the text edit, you only get the object).
  • No way of locking selections to make it easier to just tweak small items overlaid over larger containers. Currently, the large object sometimes ends up always catching focus instead, making incremental position tweaks difficult if not impossible.
  • No shortcut to group objects.  (When investigating this post, I actually found that Ctrl-Shift-G actually does this. Strange that this didn't seem to show up when I tried hunting it down earlier, as it would've saved me quite some time, as I instinctively reach for Ctrl-G instead, and repeatedly found that that wouldn't work so had to manually click everytime to fix up the mistake...)
  • Use of canvas sizes other than A6 Landscape result in none of the default sizes working sanely at all. In particular, sizes are ALL WRONG if using A4 landscape default - whether these be fonts, line widths, or other layout issues
  • Textboxes have margins which are too big by default. 0.25cm margins are far too much, especially when you start using round stuff that is smaller than a certain size.
  • Styles List -  Learning to use styles when working with a word processor (something I only really learned to appreciate after seriously learning Latex) was quite transformative in terms of freeing me from the burden of constantly tweaking formatting settings (to avoid draconian defaults that just didn't work that great). However, here they seem to be quite confusing, and it isn't really obvious at first that although some of the styles listed are specifically for text formatting, others are actually for shape/line formatting! Making this clearer could help make it more obvious that we can in fact almost create a bunch of preset formatting styles for the common cases we use in our diagrams. After all, we talk about creating a "consistent visual language" for communicating information in infographics, so it makes sense that we can define the specific set of atoms/styles we use within a project for achieving this purpose!
Still, despite all this, LibreOffice Draw is still miles better than Inkscape (argh! it's absolutely terrible for diagramming - too low-level and finicky - but really shins only for icon drawing), and somewhat better than some of the alternatives (minus a bit of visual polish for the results it can render).
General Solutions to the Sizing Issues
I've been thinking about this for a while, but IMO what we need to solve the default size issues in general are:
1)  Arrowheads as proportion of line length + thickness.
2)  Textbox margins as percentage of overall shape size.
3)  Line thickness as proportion of size, or at very least, offer us a few line presets: "Thick (Long) Line", "Medium Weight Line", "Thin Line", and allow reuse for borders


  1. You probably get to hear this a lot, but have you tried YEd? I don't have experience in diagramming whether it will satisfy all your needs, but at the least it has unlimited canvas(styling is a little difficult though)

  2. Actually I have.

    On the whole, it's one of the nicer ones out there (woo! auto-layout tools), though IIRC there are a few things workflow-wise which didn't feel quite right, at least last time I tried it.

    EDIT: Booting it up to check, I remember what those were.
    1) Having to drag shapes out from the palette to create new nodes is a bit annoying. I wonder if there's a shortcut for just adding certain node types where the mouse is...
    2) Node colours seem to default to a certain yellow colour (though fortunately not an obnoxious shade), though there doesn't seem to be any mass mechanism to change this.

    But thanks for the tip :) I kindof forgot I had that one installed!

  3. have you tried creately ? its an online diagramming and collaboration software.