|
GuidedTour
A brief introduction of AmbientHackystat.
1.0 What is AmbientHackystat?The AmbientHackystat project is a offshoot of the Hackystat project. Where the Hackystat project aims to gather information from developers through sensors installed on the developer's computer and tries to make sense of that data, the AmbientHackystat project takes that same data, which we call "Triggers," and links them to "Actions" that are carried out by a Ambient Device such as the Ambient Orb or the Nabaztag Bunny. This "TriggerActionPairs" is the core of the AmbientHackystat project. <TriggerActionPair id="testing5">
<Interval>3600</Interval>
<Triggers>
<Trigger id="trigger5">
<Type>Coverage</Type>
<Property>Compare</Property>
<MinValue>0.75</MinValue>
</Trigger>
</Triggers>
<PositiveActions>
<Action id="action5">
<DeviceName>Orb</DeviceName>
<ActionType>ChangeAnimation</ActionType>
<Value>FAST</Value>
</Action>
</PositiveActions>
<NegativeActions>
<Action id="action6">
<DeviceName>Orb</DeviceName>
<ActionType>ChangeAnimation</ActionType>
<Value>NONE</Value>
</Action>
</NegativeActions>
</TriggerActionPair>Now lets take a look at how this works on a developer's computer. Developers with Hackystat installed on their system constantly send information to the Hackystat server about the current state of their project, for examples, passing a build, failing a build, coverage dropping, and even development events, such as the addition of new files. These are all the things we consider to be "Triggers." <Triggers>
<Trigger id="trigger5">
<Type>Coverage</Type>
<Property>Compare</Property>
<MinValue>0.75</MinValue>
</Trigger>
</Triggers>We have our own "Ambient Server" that polls the Hackystat server at set intervals to get this information and to check for any changes. This server is the main base of operations for the AmbientHackystat. The "Ambient Server" keeps track of all "TriggerActionPairs", gets that data that is used for the "Triggers" and respectively send the "Actions" to the appropriate ambient device. <PositiveActions>
<Action id="action5">
<DeviceName>Orb</DeviceName>
<ActionType>ChangeAnimation</ActionType>
<Value>FAST</Value>
</Action>
</PositiveActions>
<NegativeActions>
<Action id="action6">
<DeviceName>Orb</DeviceName>
<ActionType>ChangeAnimation</ActionType>
<Value>NONE</Value>
</Action>
</NegativeActions>And with that, we see that as a development team works on a project, data is unobtrusively sent out as "Triggers" that can be interpreted by the "Ambient Server" which then sends out the respective "Actions" to the Ambient device. With this automated means of conveying project status, a development team will be in tune with the current status of the project. This helps to catch problem early in the development process where the cost of fixing this problem is low rather than waiting till right before the deadline where a small bug could cost a total restructuring of the project. 2.0 Current Developers of the AmbientHackystat systemPersonal information on current developers can be found in the AboutUs wiki page. Shaoxuan spearheaded the controller for the Ambient orb. He has also designed the XML Schema and the Trigger Action Pairs. Sonny has developed the Nabaztag controller and has co-written majority of the documentation. Ed is currently working with the User Interface and has co-written the documentation. Each member has dedicated at least 150 hours of work into this project thus far, either through actual coding, research, or documentation of the project. 3.0 What has been built so farCurrently, both Ambient Orb and Nabaztag bunny are functioning with the Ambient Server. There are four triggers that can be used with the ambient devices. As for actions, we can make the Nabaaztag move its ears and utilize the text to speech capabilities of the Bunny. The Ambient Orb can change its color and we can also change the animation of the orb. This basically means we can change whether it pulses a color, stay on one color, or slowly fades in and out of a color. The only drawback is that the animation will only work for one color. There is a basic user interface that we do not plan to use anymore. We believe that the interface, well, basically sucks and we need to develop a new interface that is more user friendly and intuitive. But for now, if you want to download a user interface the basic one can be found at http://code.google.com/p/ambienthackystat-ui-wicket 3.0.1 Running the programRunning the program assumes that you have set up the devices found in the InstallationGuide. To run the Ambient Server, the user can download the jar file. Alternatively, the user can create the jar file from source code by invoking ant -f jar.build.xml After the jar file is created, the user must invoke the jar file with the location of the configuration.XML file as the command line argument The User must enter a valid Configuration XML. The user may also add -verbose or -debug as the last parameter to activate verbose and debug modes. Without either parameters, barely any text will be displayed on the console. To invoke the jar file, run the following command: java -jar MyFile.jar -verbose /path/to/configuration.xml This what the command line should look like:
Due to the nature of the Ambient Orb's wireless network (operating on a paging network), there is at least a 15 minute latency with the orb. Fortunately, the Nabaztag bunny allows for a much quicker turn around. 4.0 Future PlansTo learn more about the future plans of the AmbientHackystat project, visit our RoadMap wiki page. 5.0 Known IssuesTo learn more about the known Issues of the AmbientHackystat project, visit our KnownIssues wiki page. 6.0 Why continue funding us?Keeping track of build status subconsciously allows development team to be more aware of what is in focus. Additionally, it allows a developmental environment to be more fun and interactive with the use of creative and innovative ways to communicate with your team. |