Monday, March 23, 2009

Devcathlon: User and Team Pages

The Devcathlon system was official turned over to the students in my software engineering class on Wednesday Match 18, 2009. The professor, P. Johnson, is still fully in charge of the system, but the coding and laying out the HTML’s are now in our hands. Hopefully we (students) get a lot of coding and layouts done before mid-May. Alright, here is my run-down of what I did before March 23, 2009 milestone.

We formed two teams to tackle some coding of the devcathlon system – Team User-Team and Team Matches-Scoreboard. I was on Team User-Team (A. Du, J. Ly, S. Sanchez, and me), this team does the coding and HTML layouts for user profile, user’s team profile, listing of teams in the system, listing of user’s teams, manage teams, invitations for joining a team.

So my job was to layout the User’s Teams and Teams in Devcathlon pages. Pages display teams, one is teams affiliate with the user, and the other is all teams in the system. So I created the layouts for both pages, what they should look like. The following images show the layout in the web browser.



I also added pagination to both pages, they are numbers of pages you can look at, a previous arrow to go back one page and a next arrow to go on. The pagination is a great idea if people want to go to Page #3 or Page #8 without looking at the pages in between. The pagination on the Team Browse Page is using the letters of the alphabet because that page display all teams in an A-Z manner.


I made around five to six to the main repository since March 18, 2009. I know it was not that much, I did not commit in the earlier part of the week because I was still implementing the wicket coding (http://wicket.apache.org/) for User’s Team and Team Browse Pages. The majority of my code were committed to two packages: the org.hackystat.ui.devcathlon.teams and org.hackystat.ui.devcathlon.teams.browse.


You can click on the following link to view issues/tasks that are assigned to me: http://code.google.com/p/hackystat-ui-devcathlon/issues/list?can=1&q=PhillipKHLau&colspec=ID+Type+Status+Component+Owner+Summary&x=owner&y=component&mode=grid&cells=tiles. Since March 18, 2009 to the date of this blog entry, I had for issues assigned to me. I complete two of the four issues; the other two issues were not required by this milestone.


My development time tracking sensor for Eclipse is not working properly, I did not notice until fellow team UT member, J. Ly, told me to check out my development time sensor because it is not displaying the amount of time I worked in Eclipse. After posting this blog, I will be reinstalling my Eclipse development time tracking sensor and test it to see if it is the case. I am pretty sure I put in a lot of hours for this week, especially over the weekend.

My team, Team UT, met on Wednesday (when we were in our newly formed groups) and on Friday, March 20, 2009. Those dates we did in-person meeting, met for one hour discussing about the layouts and API’s for getting user and team data. We did two online meeting on March 19 and March 22, 2009. The two online meeting was to for any questions and answers while we are working on our tasks. All the meetings were good because you get to know if everyone was on task and what not.

Wednesday, March 18, 2009

Wicket All Over Again

HAHAHA! I do not remember how to do Wicket (http://wicket.apache.org/) and Cascading Style Sheets (CSS) for html pages. This week for the software engineering class, we are refreshing our minds with an example on wicket, cascading style sheets, and HTML’s. The example is using a menu bar, submenus, and CSS to create an appropriate look. We took the code from a guy named Adam Kalsey (http://kalsey.com/2003/05/css_tabs_with_submenus/) and we have to modify his example to fit what we want.

My first task was to make a new menu (menu 3) in the menu bar that comes with three submenus. That was easy, just have to add some new codes to the BasePage.java and create new htmls for menu 3 and its submenus.


My second task was to make menu 3 to hold ten submenus tabs. So I went into the menu.css and added #menu #subnav 4 to #menu #subnav 10, so this will let the menu bar hold ten submenu tabs.


My third task is that when the header/title text on the page is change to different sizes, the submenus are not dynamically position; they are set to a constant number of pixels. If we change the text size from one to another, we also have to change the fixed position of the submenus. By doing that, we have to go into the menu.css and change this part of the code to the correct number of pixels.


I had trouble doing the final task for this example, is to make the submenu tabs highlight people are viewing that submenu. I did a little research using Google.com to search up any useful implementation of that kind. They had some, but did not work out in the menu bar. A little Java Scripting would be helpful in the future; if possible we can use it for the Devcathlon system.

Had this handy dandy book on the side:


Here are the files that I modify and used, the ten tabs can only be view on test-menu3.java (because that was the page that I modify and did not add to test-menu1.java and test-menu2.java): http://sites.google.com/site/phillipkhlau/files/wicket-example05-phillipkhlau-1.0.318.zip

Monday, March 9, 2009

Devcathlon: Regular Events

This week we are continuing our work on the Devcathlon system. This week, we are working on regular events(http://code.google.com/p/hackystat-ui-devcathlon/wiki/Events). We are also partner up with a fellow classmate to work on this week’s event.

I am partner up with fellow classmate, R. Raqueno. The event we are working on is ‘Keep The Repository Clean,’ there are two wakeup intervals to that event, the first one is waking up every 60 minutes to check if there are any failed builds during that 60 minutes range. The second one is waking up every 24 hours to check if there are any successfully builds during that 24 hours period.

So I am working on the first part of this two-part event. ‘Keep the Repository Clean Hourly,’ event where it will check the continuous integration service (Hudson) every 60 minutes intervals and see if there was any failed builds. If there is a failed build during that check, then it will deduct five points for that team. My part of the event was simply and easy to implement. I re-used my code from a previous event I did ‘Pass the Build,’ added couple of lines so it checks for continuous integration builds instead of regular builds. I also did some test cases to check if the code and scoring is working properly.

I did not run into problems when coding for this event. I did run into problems when I was running automated error detection tools (Emma, JUnit, FindBugs). I forgot what the error was, because it did not happen after a couple of tries. I do not think it is a heap overload error, because it was corrected by the professor, so I do not know what it was. I try to reproduce the error as I am writing this entry, but I am unsuccessful in producing the error again.