Since this site has proven itself to be too much of a hassle to update (mainly cuz I'm not really that good at building web sites), I've decided to migrate most of the project-related stuff to the FAPESP incubator (a kind of brazilian SourceForge). This way people won't see this site and think the project is stagnant, because it's not. :-)

I'm also building a plone-based content portal which should replace this site until the end of october.

Once again, it's been a while since my last post - I had to drop my activities to a near-zero for the past few months - I've handed my last assignment by January 4th (can you believe that??). Well, now it's back to the debugger.

The thread-tracking mechanism has improved a lot since november. Actually, you can now get a working version at the download section (release 0.1 whathever-comes-before-alpha). It comes bundled with an Eclipse project file so that you can open it up in Eclipse and see the mess for yourself. :-)
You'll probably need some help to get started (or maybe not), so drop me a line, please, at giuliano "AT" and I'll be really glad to help you out.

It's still brutally buggy and has some known issues, which I intend to discuss (and address) next, but much of the design has already stabilized, which is a good thing. The discussion about current issues can be found in this status report [PDF].


  • Come up with a solution to the known issues with the tracker.
  • Clean some stuff up.
  • Get the Eclipse integration crawling.
  • Take a look a the ASM project (
  • Replace my configurator module with HiveMind
  • Maybe migrate the SSH infrastructure to a Java SSH API (though my current approach seems more flexible).

Been a while since the last update. I've been working around the clock to get the distributed thread tracker working without crashing all the time, but the technical difficulties seem to never end. The most common tests are almost working properly now though - can't say the same about the Eclipse integration part.

I've presented my article at the OOPSLA Eclipse Technology eXchange workshop last week - a very nice experience. You can check out my presentation slides in the download section or by clicking the link. Project activity will probably drop down a bit in the next few months because I've got to devote some time to college matters (something I haven't been doing much lately).

I sort of gave up (for now) on the idea of maintaining a sliding window over the consistent cut lattice induced by vector clock timestamps. My initial idea consisted in providing a kind of best effort approximation of the distributed system's execution state, using an idea pretty much like the one described in [1]. Couldn't ellaborate much on the subject though, mainly due to lack of time - there are currently lots of more urgent matters in the pipeline.

The system has grown quite large (it's over 9000 lines of code long) and I still haven't got the Eclipse integration part working. Meanwhile, I'm documenting a few key points in the system, especially those I'm extending right now. I've made a few UML diagrams:

1 - Configurator View - Shows a generic design for configuring hierarchies of objects that fully decouples the configuration parser from the objects themselves and allows lazy initialization of nodes in the object tree.

2 - Distributed Tracker View - Shows a slice of the architecture of the server-side distributed thread tracker, as well as a few more stuff such as the remote event handling mechanism and the JDI event handling mechanism.

3 - Communication View - Shows a very small part of the event dispatching mechanism present at the local agents.

I'll update the download page in the next few days.

Bytecode instrumentation process is now more mature and more reliable, thanks to bcel. Live visualization of distributed threads and lattices shall be the topic for next week.

Page is finally on-line. This section shall serve as a kind of a weblog for my activities. The current state-of-the-art implementation is available at the download section. It's a bit useless without proper documentation though. If you want to use it anyway, drop me a line (see the contact section). For an introductory text on what this plugin is for see the Project section and my article.

home | other projects in progress