More infovis
Again, all my programming effort has been spent on the visualization prototype for my university course. On the positive side, I have lots of ideas on how to go on when I have time to continue my hobby projects. Working on the prototype has been a bit of a pain, as programming user interfaces and visualizations is all about the details, and there are loads of details in every graphical application. We're quite tight on the schedule too, but thankfully the prototype doesn't have to be fully functioning, it just has to demonstrate the idea.
I have mixed feelings about working with C#. On the other hand, the GUI facilities of .Net are the best I've ever worked with, but on the other hand, I'm often missing Python when it would make a solution much more straightforward than C#. And why the heck does the size of container have to be either Count or Length, depending on the container? I know, I know, choosing IronPython could potentially combine the benefits of both, but I don't really have time to find out if that's the case.
Anyway, here's a picture of the prototype, now showing article topics. They're generated from article keywords by a simple and crappy clustering algorithm because I didn't have time to implement a better one, and laid out crudely, but that's a start. The square icons are articles, and their colors match topic colors. Additionally, article icons should appear inside topic areas, but they don't yet. I really hope I have the time to improve topic display by the end of the project.
Information visualization
First, an update on the last post: I sent mail to the developer of generateDS, and he has located the problem and is looking into it. That was quick, nice.
As for parsing C, I took a look at a couple of tools, including GCC-XML, but I couldn't find anything I could readily use. So I'm still counting on Pyparsing or PLY to do the job. I realized Pyglet is using PLY, maybe I'll look into that for insight.
The last few days I've been spending my programming effort on a university project. I'm on a course called "Information visualization project work", where we're supposed to design and implement a prototype of an information visualization (infovis) application. I already took the infovis introduction course and the topic seems quite interesting, especially since it's related to user interfaces which I'm very interested in. Infovis is visualization of abstract data, as opposed to scientific visualization, which is about visualizing concrete data such as air flow over a wing, or the structural integrity of a bridge. Common applications include maps (although the underlying map might visualize concrete landscape, it's almost always overlaid with abstract data such as routes) stock rates and weather charts.
We had three topics to choose from, and our group chose visualization of research article citations. Since there don't seem to be any suitable visualization libraries for Python, and I don't really like the GUI libraries for Python either, and I hate Java, and I don't know Flash, we chose to do the prototype in C#. It's much nicer to work with than Java, and I'm at least somewhat familiar with both the language and the .NET API. Granted, I could have tried to use IronPython, but I have no experience at all in it, so I decided not to take the risk of trying to learn it for this short project. We're using a visualization library called Piccolo, which at least initially seems quite nice. It's almost trivial to set up too, though the API and especially documentation is a bit confusing. Unfortunately the free version isn't really maintained or updated anymore. It would be nice if someone did something similar for Python... or maybe a library like that exists, but I just couldn't find one.
