August 31st, 2006

What I knew then. What I know now. What I will know soon

(Warning: This is liable to be a long and rambling post)

Since I'm not in the hacking mood, I thought I'd write a long entry about Labyrinth, its future and what's happening. The idea is to (ironically) help me get my head straight on some stuff.

First, some background. I've only ever used mind-maps on paper. Strangely, I've never used one on the computer. When I started writing Labyrinth (as there was none for GNOME), I made a conscious decision not to use any other mind-mapping tools until I got the basics in place. This way, I wouldn't be just creating a clone, I'd be building it the way I use it.

That's why some of the stuff may seem slightly odd. Obviously, not everyone uses them in the same way, but if I could get some basic stuff in, I could then work out how to adapt it to suite more people, hopefully keeping it friendly.

Having said that, I've now installed and tried kdissert, the KDE mind-mapping tool. There are some things in there that I like. There are some I don't:
Double clicking to create a node

This, I don't like. It seems undiscoverable. and strange

No default linking

Again, it feels kind-of weird. Maybe I'm just more used to Labyrinth-style

Linking using triangles

This, I like. It makes the relationship between nodes much clearer

Moving groups

Again, another cool feature that I can see a use for

There are various other bits in there that seem nice. There are also other things that (I feel) are missing.

Now, a random assortment of thoughts about future versions and stuff I'd like to see, and some of my musings on how they'd be achieved


There are two use styles here. First, you got the obvious "Add a png / jpg file as a thought". That's (relatively) easy to deal with. The second use is slightly more interesting. On occasion, I need to add a small graph or simple diagram to remind myself of something - a picture says 1000 words and all that. For this, firing up the gimp and drawing ~ 5 lines, saving it and loading it into Labyrinth seems like a heck of a lot of trouble.

Instead, I want to create a simple "drawing thought". This would be a small area which captures mouse strokes and redraws them in selected pen-style. Nothing major, just enough to draw really simple diagrams. Yes, drawing with a mouse is a pain, but it could be useful in the really really simple case.


I was thinking about this long before I tried kdissert. kdissert provides a treeview of nodes. This is useful for a number of reasons. Labyrinth provides a slightly different model for its thoughts (from what I can gather). In Labyrinth, all thoughts are treated as top-level (despite the presence of a "root" thought) and links are created between these. This provides a great advantage (for me at least): Each thought can have more than 1 parent. This, unfortunately, breaks the treeview though. How'd you display a thought with 2 parents? Do you put it as a child of each? I haven't managed to come up with a solution to this yet. I'll keep thinking about it thought.

Additional Wording

One thing that would be nice is to allow people to add extra wording into thoughts. Sometimes, you want to expand a thought, or it's related to an essay you wrote. In that case, the thought area really isn't enough to contain everything you want to say. Upon mulling this, I have come up with a possible route to investigate:
Add a small icon to each thought (a + sign). When this icon is clicked, a new "half-window" (like the old "sticky notes" windows from GNOME) is popped up at the cursor position. This would contain a text entry, with the current thought content in it (the title), and a text area. The text area can do all the cool markup etc. and the window can be resized as needed. When the window is open, the little '+' icon turns to a '-' and clicking it again closes the window, leaving the map as it was before, possibly with another icon on / near the thought showing it has hidden information.

This is still an idea. One potential problem would be if the map were exported / printed: How is the hidden information presented?

Random assortment of other things

So, that's the "big" things to think about for me. Other things are still needed though. A decent UI to go into Labyrinth would go a long way. As would a nice icon. And a redesign of the homepage is on my to-do list somewhere. There are loads of other things on my to-do list.

If you've made it this far, you're fairly dedicated (or insane ;) . Anyway, You may notice me being sporadically active and other times not so active. This is because I'm involved / maintain 3 packages: Labyrinth, Yelp and Spoon. I'll try and post semi-regular updates about what I'm working on and progress. Feel free to poke me if I'm inactive, or you want a pet feature added, or you want to help or anything like that. I'm normally responsive to emails. Well, some times ;)
  • Current Music
    Feeder - Seven Days In The Sun