Before investing the time and energy to become a Hackystat developer, it is of course important to assess whether or not Hackystat is in fact the right kind of tool for your particular research or development task.
A good way to begin this assessment is to write up a brief description of the kind of task you want to accomplish, and send it off to the hackystat-dev-l mailing list with a request for comments on the suitability of Hackystat for this kind of task.
Through our experience with prior requests of this type, we can say that the following kinds of tasks tend to be poorly suited to a Hackystat-based solution.
Some developers express an interest in only the client-side of Hackystat. They like the idea of our sensors, but want to do things like "intercept" the data and process it on the client-side.
Unfortunately, a client-server architecture, where data collection is client-side and data analysis is server-side, is a fundamental architectural principle of Hackystat. Developers wishing to do all of their analyses on the client-side should probably roll their own solution.
Other developers contact us with the desire to implement a system in which users will get virtually immediate feedback on their development activities. For example, they might want to pop up a warning window when the developer performs an error-prone activity, such as cutting and pasting code from one file to another.
Once again, this kind of application with "hard real time" constraints violates a fundamental architectural assumption of Hackystat, which is that data may not be available for analysis for minutes, hours, or even days after the occurrence of the event associated with the data.
As a simple example, all of the client-side sensors in Hackystat are designed to cache the data they collect when the server cannot be contacted. For example, a user working on a laptop may not be connected to the net while on an airplane. In this case, Hackystat sensors will simply cache the data on the client side until the user reconnects to the network. At that point, the cached data will be sent to the server and stored with timestamps associated with the time when the data was actually collected, not when the data happened to actually make it to the server.