Wednesday, February 25, 2009

On Your Mark

This week we began actually programming for the Devcathlon through Starter Events. The event that I worked on involved rewarding teams who build before they commit. They would be rewarded if they build locally before committing and penalized if they didn't. There are also bonus points that occur when a team is on a build-commit streak. More info on the events can be found here.

One of the problems I faced while programming was figuring out the scoring. Eventually I figured out that BaseScoreWeight was a multiplier for the score. But that lead to another problem with the scoring: deductions. Because of the use of the multiplier, point deductions was made much difficult. I would have gone into EventScore class and add the capability to hold deduction info. That way the points computation would be made much easier. Right now, probably the only way to get deductions to work correctly is convert them into fractional deductions, which is rather awkward. My event was later changed so that I wouldn't have to worry about deduction weight but I think this is still an issue that needs resolving.

Another problem that I had was making commit data for test cases. I made a makeCommitData method in DevcathlonTestHelper class to help me out.

Another challenge I faced was trying to figure out how the sensor data type worked. This page help me greatly but I'm still a little sketchy on some of it. Eventually I found that there were 2 different sensor data types, build and commit, that I had to make into separate indexes.

I had some difficulty with getting successful test cases. I found that it was mostly issues dealing with the timestamps of the build and commit data such as timestamps that were made that weren't in the time interval I was looking for or timestamps of builds that were after commits when they should be before.

The Devcathlon program can be found here.

Wednesday, February 18, 2009

Making Sense of Hackystat

Recently I started working with the Hackystat API. The goal was to learn how to retrieve sensor data from Hackystat and make use of that data. I spent some time watching a screencast for Hackystat which can be found here. One obstacle that I had was in figuring out how to retrieve data from a user. From watching the screencast I learned how to retrieve data from a specific project but not. By looking at the JavaDoc it didn't take me long to find the getSensorDataIndexLastMod method that fitted my need.

I also had to create another program to make use of sensor data by finding out the day of the month that had the most sensor data. To go through the days of the month at first I used a for loop but later I realized a while loop would be preferable because there were different number of days for each month.

I found the screencast to be very informative and helpful as I went along with my programming. I wouldn't mind having a mix of screencasting and supplemental notes.

The results of my work can be found here.

Monday, February 9, 2009

Devcathlon UI Recommendation

For my recommendation for the UI of Devcathlon I will use Mockup 5 as a base. If the Inbox is implemented I would add it to the home page. The Inbox will either be connected to an internal mail system or be linked to an offsite mail system.

For the My Profile I would use the layout of Mockup 4 but remove the sidebar with the Inbox and Actions. I would switch the My Teams table with the one in Mockup 5. I would also add the About Me box from Mockup 5. To be honest none of the leveling systems appeal to me. My idea for a leveling system is based on how much points a player earns through matches and events. I would like the rankings to be related to computer culture such as Hacker and Cyber Punk to match the theme of the Devcathlon. Information on how the system works can be found in the FAQ.

For the Achievement page I want to use the color scheme and layout from Mockup 6. I would prefer if the icons were bigger while the small version of those icons can be used on the gamer card.

For a details on a single match I want to use the page from Mockup 4 but I would add Recent Points and Recent Activities from Mockup 5 and 6.

Mockup 6 Review

Along with the other recent mockups, Mockup 6 doesn't change much from the design of Mockup 2. The registration page, password recovery page, and create team page should have been removed due to integration with Hackystat. Same goes with being able to change email and password.

The leveling system might be difficult for those with little knowledge of the military to understand. Also I seriously doubt it's possible to create 120 achievements that is needed to hit the highest levels. Like the other mockups, the information on how the leveling works should be found in the FAQ.

There should be a link to the Achievement page on the drop down menu. Some of the new achievements that they added are questionable. For example I don't think someone should be reward for being a slacker.

Like the other mockups, the team profile page still needs an example of what it will look like with more than 1 project.

The My Matches page allows some info at a glance on a match. Still the amount of information should be reduced assuming there will be a large number of matches. Also like the other mockups, there are 2 link to My Matches in the drop down menu.

One of their strong features is standardizing achievement icons and improving the color scheme for them. Having information at a glance for My Matches is useful but one has to be careful not to go overboard. Some weaker points include some questionable achievements. It will be difficult to figure out someone's level at a glance using their leveling system. Also the number of badges needed to level should definitely be brought down.

Mockup 5 Review

Mockup 5 doesn't change much from Mockup 2. The only real difference is some slight changes in layout and addition of pages. Also pages were removed due to the expected tight integration with Hackystat.

The My Profile needs to be better laid out. The tables are arranged awkwardly. There are tables that are misaligned and there is empty white space on the page where the tables could fill up. Information on the leveling system should be in the FAQ. It's slightly difficult to figure out that Level and Rank link to that information.

On the Achievement page the icons need to standardized. Right now they are different sizes and shapes making them difficult to use them for the gamer card. There also needs to be better achievement point distributions. Not all the achievements should have the same amount of points. The color scheme for achieved and unattained should probably use some work.

The team profile needs to show an example with more than 1 project. It's also a little awkward for the match details to be in both the team profile page and the match page. The details should probably be dropped from the team profile page leaving only a link to a match details page.

At the end of the My Matches page there is the text (see entire match list). That will probably be used to show/hide additional matches. Maybe if there are too much matches to be displayed a page system could be implemented that allows a user to browse through pages of matches. This can also be applied to other areas of the site that has too much info being listed. There are 2 redundant links to My Matches in the drop down menu.

One of the stronger feature of this build is the inclusion of personal info in the profile page. The My Matches page is nicely set up but there might be issues further down the road. The leveling system is easy to understand although there appears to be an number error between senior and graduate. One of the weaker parts of this mockup is the layout in the profile page. The location of match details need to be resolved. Also there needs to be more info for matches such as in mymatches3.html.

Mockup 4 Review

Like the other mockups in this review roundup, Mockup 4 doesn't stray too far from the design of Mockup 2. Due to the assumed tight integration with Hackystat, the registration page and password recovery page should have probably been removed. The same goes for the create team page since team data can be pulled from Hackystat. Being able to change email and password in the Edit My Profile page should be removed for the same reason.

On the My Profile page in the gamer card Chimp should have been the rank and the level should have been a number. There also needs to be more information on how the leveling works and a link to that information should be in the FAQ. In my opinion the only time that a Show/Hide scheme should be used is when data is cluttering up the page. For example rather than using Show/Hide for My Teams on the My Profile page it should have instead been used for My Comments. If a sidebar for Inbox and Action is used, it calls into question what will be on the Home Page since both of them share much of the same function. It probably should be either one or the other and not both. The My Teams table shows only 1 project even though a team can easily have more than 1.

A link to the Achievements page should be in the dropdown menu. I disagree with their approach of having uncompleted achievements be hidden. It would either drive a player insane trying to figure out how to complete them or diminish the role of achievements to such an extent that players will barely know they exist.

On the Team profile page I want to see how it would look if a team was working on more than 1 project. In such a situation a show/hide for the project description or a link to another page with the project description would be a good idea. There should be a link from a team member's name to his profile. They could also add some sort of banner to the team page.

On the My Matches page a link to the corresponding team page should be in there. The capability to show/hide the number of points each member earned for each event is a good idea. It prevents the stats from cluttering the page. There are 2 links to My Matches in the drop down menu. One of them should be removed.

The Gallery page is another place where either show/hide or a link to another page describing the match should be implemented. In the Hall of Fame a link should be made to the corresponding profile pages.

The strongest feature of this mockup is the implementation of show/hide. The Inbox is a interesting feature and the messages could be located on site or point to another location. The sidebar for it along with Actions might be useful. The weakest part of this mockup is redundant links. Another weakness are links that should exist but don't. Their achievement implementation also has issues.

Wednesday, February 4, 2009

Mockup: Take 2

In the second round of creating mockups we were tasked with expanding on ideas inspired from the previous mockup.

I added some additions to achievements such as comparisons, added some flavor text to the profile. In a way I think we would have done something differently if we started from scratch. Much of our work was based on the previous mockup.

In my opinion it's easier to make up an achievement than it is to make up an event. With events one has to consider how that event will help the development of the software. With achievements it's a bit more fun thinking up of interesting accomplishments that a person might want to achieve. This is probably a good reason why a player's level should be based on only one of these attributes and not both.

Here is a link to my group's mockup.