--On Tuesday, November 16, 2004 2:00 PM -0800 Anil Menon <[EMAIL PROTECTED]> wrote:
Hi,
I am a friend of Todd Olson; he told me enough about Hackystat to get me interested. My research interests lie in the areas of evolutionary computation and Bayesian methods. Todd suggested there might be a fit.
I had a couple of questions that I was going to post.
1. Did you guys ever consider using JAspects (from Xerox Parc) as part of your framework for collecting activity data? The neat thing about JAspects is that it enables the tracking of basic, *dynamic* events (memory allocations, method invocations, class inits, etc). Architecturally too, it would seem like a nice fit.
2. I installed Hackystat and the server side of things went very smoothly. But I'm having a hard time setting up a workspace root. I've got the ant sensors enabled for example, but I'm still not seeing any workspace root. Because the process is implicit, there is not much I can do other than to keep fiddling with parameters. Anyway, I'm sure I must be doing something weird. I'll try to figure it out.
Great system though. The telemetry idea is really neat.
--Anil
Hi Anil,
I've added you to hackystat-users-l, welcome.
<Question 1>
I think you mean "AspectJ", and yes, indeed, we have not only considered using it, we are actually using it this semester in a project to experiment with caching of telemetry charts. This initial usage has worked out extremely well. Cedric Zhang and Hongbing Kou have been doing this as part of a seminar I'm teaching this semester on Aspect Oriented Programming.
I agree with you that AspectJ is absolutely the right way to go for instrumenting the run-time behavior of a Java application without impacting on the existing code base. It does impact a bit on the development process--you have to use the ajc compiler rather than javac, and there may be compatibility issues between the various versions of Java, but all in all it seems the right hammer for this particular nail.
One thing I'm really excited about doing with AspectJ is implementing a sensor (and sensor data type) for collecting occurrences of run-time exceptions. This can be a pretty cool way to find out not only about "normal" kinds of bugs in the code, but also about usability issues--for example when a user invokes a command incorrectly in a server.
<Question 2>
Workspace Roots are notoriously difficult to get right the first time. Then they're obvious. :-)
I'm working at the moment on a rather extensive upgrade of our documentation, which will include an extended example of installing the Ant sensors and getting them working. A first draft of this is available as a lecture to my software engineering students this semester. You may want to take a look at it:
<http://csdl.ics.hawaii.edu/~johnson/413f04/11.sensors.pdf> <http://csdl.ics.hawaii.edu/~johnson/413f04/11.sensors.ppt>
The example system referenced in these notes is available at: <http://csdl.ics.hawaii.edu/~johnson/413f04/stack-3.3.1030.zip>
If you still can't get your stuff working, I would be happy to have a phone call with you and step you through some debugging.
Cheers, Philip
