Archive for the ‘gsoc’ Category

GSoC 2009 at Gephi : Midterm Review

Vendredi, juillet 10th, 2009

Here is my mid-term review of my GSoC participation.

Current state of my work :

1/2 – Frontend : 80%

- The GUI view, model, theme, charting system (bar graph) and user interaction code (mouse moves and clicks) are ready for use. You can download the demonstration video, which use fake data (a table of 80000 random floats) here : timeline (with random data). (high-quality OGV video format can be read by VLC).

- Remaining work : all the “mouse over” layer, like highlight when the mouse is over one of the selection box sides (for better ergonomic), and also information about the data when the mouse is over a segment (see the corresponding value), and finally about the intervals (show begin and end dates). Also, adding the timeline play/stop button.

2/2 – Backend : 40%

- The backend code was started after the frontend, but advance much more quickly, since it doesn’t need the same “fine tuning” on pixel placement, colors and other ergonomical parameters than the user interface. Interfaces (API) are nearly finished, some test implementations too, but it needs some refactoring, and I have to implement the connection with the dynamic graph API (to control the time dimension of graphs inside Gephi), which should be soon released by Mathieu Bastian. Finally, the timeline player also need to be finished.

Commentary

- I followed the guidelines from the project leader (Mathieu Bastian) to split my project in various modules, like the other Gephi modules, while being allowed to freely implement the timeline internals.

- I’m very happy about the current architecture of the timeline. I fixed myself the following rules : use existing datastructures, rendering mecanisms inside Swing because they already implements a lot (eg. double buffering), avoid redundancy, and if possible.. no hacks!

- It is often cumbersome to tweak graphical components like the timeline, because it often works at the pixel level, and they cannot be edited graphically like one could do with Adobe Flash. User interaction code is boring to implement, because one has to add ugly value checking everywhere to prevent the user to crash the timeline by moving, clicking or creating impossible situations (like moving the selection box’s begin marker AFTER the end marker).

- But the current design do all that in an elegant way, I think :)

- The best example : I use standard JPanel, which have the interesting property of being directly used by Matisse, the netbeans gui editor. Thus, i can see my timeline 2D charts being updated in realtime while I resize them inside the editor! no more frustation and wait time (you know, when you build your project and see an ugly error like a JLabel cut in half because you misjudged the position in your algorithm ;) Here an example : http://files.getdropbox.com/u/122451/projects/gephi/screenshots/timeline.matisse.png

- There is some things that cannot be avoided (mostly for the “drawing part”, which need to be fast)

The Gephi community

This is a small but enthusiastic community, and I definitively feel like being part of it (send me a message at my new mail julian.bilcke@gephi.org, if you want ;). I’m happy to see that other students are also producing interesting results on their respective parts.

Gephi Summer of Code 2009

Vendredi, mai 15th, 2009

Today I’ll start a new category on my blog, dedicated to my participation to google summer of code.

During this period I will work on the Gephi open-source project (gsoc related page: gephi gsoc 2009)

Timeline 0.6

I worked yesterday on an old prototype code, which was due for Gephi beta 0.6 but could never be finalized, as it was somehow weak and prone to threading errors, and really experimental. There was conflicts between runnables from my code, and runnables from other parts of gephi, since I was new to the project, and didn’t new a lot about how was implemented the other components of Gephi.

I had to came back again on it in order to create a working version for the Gephi demonstration, which will done in a few days at ICWSM 2009 (San Jose, California) by Mathieu Bastian and Sébastien Heymann. I fixed a lot of bugs and removed obsolete code, but I will really have a lot of work for the new timeline engine planned for gephi 0.7.

Timeline 0.7

The new timeline engine, will be a progressive but complete rewrite of this old code base.

There will be change on all the aspects of the engine :

  • low-level datastructure access, will be done in collaboration with Mathieu Bastian
  • event system, will be rewritten to be more coherent with other events inside gephi
  • charting system, will be done using background sampling, to be efficient with large-scale datasets
  • detailed view chart, this sub-component will be added in a late part, as it need some design work (graphics and architecture).
  • image layers, this part will be rewritten and extended, to use a more efficient layer system