In a previous post I demonstrated a fairly obscure timeline widget. The widget displays the commits that are created as a file is edited. Obviously the test dataset is pretty complex in comparison with what you’d normally see on a filesystem but it was a good test of the branch hugging I wrote for it… With this new video the timeline has been put into context, you can now see when things happened and how many things happened. This is of course key to having a usable user interface for interacting with changes over time, and a user interface which not only programmers are comfortable using, but everyone can feel at home with.
- Scales – The timeline now has a scale running behind the nodes so you can see when things happened, I’ll extend this to allow you to specify how you see the days/dates etc… but for now its pretty static. There’s also another scale which shows the density of commits that occur during the life of the file at a sensible level of granularity underneath the range selection, as well as showing the scale of the entire range with tick marks.
- Blobbing of commits – Didn’t really know what to call this, blobbing sounds about right… anyway, we accumulate commits which are close together into a larger node, small nodes are single commits, getting upto a size which is about as big as the height of the rows. So you can see relatively how often you were editing a certain branch, as you zoom in the nodes separate so you can see the individual changes.
- Pan to selection – As a commit is selected or the selection is set from the application, the graph will pan to put that commit in the centre of the widget.
- Pan to cursor position – Allows you to pull and push the timeline back and forth through time while the cursor is down over the graph.
- Kinetic scrolling – Flicking the timeline will cause it to scroll.
If you want to play around there’s a quick introduction over here, the timeline is merged in with the mainline now too and it’s just tests/test-widget to execute it.
Future plans WizbitWidgets
- The timeline will eventually be vertical or horizontal, and you’ll be able to have the controls on a different orientation to the graph.
- Branches will be coloured to allow visual separation of the branches.
- Considering named branches… This is still up for debate.
- Splitting out the base kinetic scrolling widget.
- Splitting out the timeline ontop of kinetic scrolling widget into a separate widget.
- Splitting out the range widget into a separate widget.
- Reading from git and bzr repositories perhaps… I think that would be a separate widget
Future plans Wizbit
In the past we’ve demonstrated how wizbit can work with applications, of course the reality is wizbit isn’t all that much. Wizbit is just a way to store data, has a database which indexes various things and provides a way of traversing the history of data stored within it. At its core wizbit is a loose object store with history, however we want to make it a little more special, we want to make it a hell of a lot more useful. We want wizbit to work with tracker and nepomuk and organise framework and for presentation, fuse – in order to provide a filesystem that does some really, really cool things. In the coming months we’re going to continue blogging about this, and spend some time solidifying our plans, and getting the code written that will make all of this happen.
We are hoping that wizbit will just work the way we want it to because at codethink we are particularly desperate for it to “Just WorkTM“. This software has been a feature of our dreams for some time, within the next year it will become a reality.
Note: I am running out of themes for 1980′s timetravel sci-fi if anyone has any suggestions please post them in the comments.