Thursday, September 30, 2004

lab 8 - treemap


lab 8 - small update to treemap.


Tmap is a small util that takes the output of du and presents a treemap using algorithms from UMD HCILab tmap

To make it a bit more useful I want to zoom into the treemap and zoom out again. Button one selects a rectangle highlights it and it's path and presents information about the path and file sizes. Button two zooms one level into the selected area, where the mouse clicked. Button three zooms out one level.

This was easy to add using Tk. I bind a command to the mouse events and send a message down a channel. On receiving the message I change the root of the tree, regenerate the layout and redraw the rectangles.


I find this a useful tool to find patterns in disk usage, such as large or duplicate files. Often the file hierachies are very deep, and so drilling down interactively is great.

I should re-implement this by drawing directly on an image instead of using Tk. I seem to be running out of memory using Tk because I am not keeping track of the Tk tags when creating new rectangles, and I'm creating so many of them. It may also be faster, but I don't know.

There is a bug in the squarified view where the directory is rendered as if it is a file, using the totalsize of all sub elements. I haven't found what causes this. The other views seem okay.

I think the treemap is a beautiful view of the filesystem. I'd like to put it to more use.

In a collaborative environment the treemap of a filesystem is a shared map of the system. The rectangles, which represent files, are color coded for the users who have them open. This could fit in as an engine to spree, or collab. We'd need to monitor all styx messages, similar to Styxmon.

The prog device shows all files open and process activity. Processes might also be presented as a treemap.

The treemap could then be made more interactive. Files are plumbed, to open and edit them. The files are annotated and new annotations are seen by all users of the treemap.

This looks like a good excuse to play with spree. I'm thinking along the lines of VisitorVille and Plan9's faces.


tmap.b treemap.b treemap.m



No comments: