Sunday, December 7, 2008

The Final Hurrah, but I won't stop

It took me awhile to think of a title, but this will do after my brain just got fried. This is the final hurrah for the semester, but this does not mean that I am at the end of my journey. Before I talk about my journey, I want to go over my final project.
As a team of four, our project goal was to implement our DueDates 2.0 with Wicket to create a web application for library books. Given two weeks to complete the project, we decided to spend the first few days getting acquainted with Ronn's DueDates 2.0 code and also assigning issues so that we all know what our focus is. Our project started to get rolling once we started meeting up and coding. We made great progress and we expected our project to be done by Friday, but a small road block became the Great Wall of China for us. Everything in the back end of the project seems to be complete, but connecting that with wicket was painful. Ronn was the one who tried to tackle this issue, but it was out fault for not being able to back him up when he needed us.

I think failing this project was the best thing for me. If this project had run smoothly, I would have not learned so much from my team and from myself. Coming into this project, I knew that I was the weakest link (Goodbye). Learning from my previous group (Violet), I built upon my mistakes and tried my best. As a group, we met almost everyday at Sinclair Library to program with each other for a few hours. This really helped us in keeping each other up to date and to resolve and issues quickly. During this project, I went to Ronn a lot because I saw him as the strongest one in the group. I learned a great deal with Ronn's help and I'm truly grateful for his patience. From the group, I was blessed with their great code. I've seen coding tricks that I have never seen before and styles that are more clean and friendly to future hackers on our project.

Over all, we worked well as a group. We all worked our fair share and what was asked of us. There are small issues with merge conflicts, but we resolve it quickly since we programmed together majority of the time. This was due to our willingness to meet with each other everyday for a few hours. The only problem we had was the wicket and how we assigned issues. By dividing the program, we lose sight of the big picture sometimes.

This is the end of our project and a small part of me feels sad that I won't be able to program with Ronn, Creighton, and John. I enjoyed hacking away with these guys even though the project was painful. I am graduating this winter and I am so lucky to learn so much from this group. I'm slowly hacking away at my "program" and I feel that I just knocked down a huge issue.

Monday, November 24, 2008

I'm going in to Relapse

Overview:
Given Philip Johnson's Stack project, I am given the task to set up a html page using Wicket. This page should implement the Stack by displaying a text field and three buttons. The three buttons are Push, Pop, and Clear. The page should also have personal session so that others can not interfere with each other's stack. More information on Wicket can be found at:
here

Process:
This is an individual project, but lucky the examples I received was very helpful. Using the examples, I was able to set up the basic Stack function. Unfortunately I was unable to finish the Session part of the project.

Reaction:
I greatly underestimated the project. At first I thought that I can finish it easily with the example and the book. I fell a little relapse in terms of how I felt before programming and my over confidence. As I started programming, all the little things started to wear me down. Things like setting up the classpath to correcting the Index Out of Bound Errors when trying to display an empty array in the first instance. I need to wake up from all this and rediscover the fire in me to succeed.


My Project:
here

Friday, November 21, 2008

Local Tech Companies

Yesterday, I attended UH's annual ICS Industry Day event. This event provides ICS students the opportunity to meet with local tech companies and to see what they are looking for in graduates. As a soon to be graduate, I was fortunate to hear presentations from Oceanit, Alion, Referentia, and DataHouse.
My first impression of tech companies was that of a very structured and programming intensive environment. All I can imagine was cubicals with people glued to monitors. Another impression I had was high expectations and zero failure. Lucky for me, I gained a better outlook after attending the event and listening to the speakers.
The first thing I notices was how friendly and passionate these people were. They seemed very down to earth and willing to train and promote growth and creativity. The next thing I notices was how important Johnson's class is to me. Everything I learned in Johnson's class can be used in these companies. From things like quality programming to subversion, I understood what these companies were looking for instead of worrying about being lost.
This has been a great experience for because I gained a better understanding of what Hawaii can offer. I always believed that mainland was the only option for me after I graduate, but these companies showed me that there are great opportunities right here.

Monday, November 17, 2008

What, my timers up?

Overview:
Console, email, and timer. These are the new functions we need to add to our project. Sounds hard, but its actually not that bad. The console and email are the two functions to control how the output are given to the user. The timer sets the program on a repeat depending on the time period the user gives.

Process:
As a group, I was in charge of the email and documentation and Anthony focused on the timer and parser. As I started work on JavaMail, I realized that it was harder for me to set it up then for me to use it. The documentation and example made it easy for me to start sending out spam to myself. With the class created, I started working on the documentations and guide.
AS we reached the home stretch, I looked into tasktimer to help get a simple sample into our code. The only thing left is to add to the parsing and to call or use the code I made.

Reaction:
In the end, it seems like we ran out of time. We still did not learn our lesson and it has finally caught up to us. We will continue to work on the project till the last minute, but the mood seems dire.

Thursday, November 6, 2008

Send me to the ICU

Overview:
Santa came early and gave me new toys again. This time I got JavaNCSS, DependencyFinder, SCLC, and Hackystat. These new toys help monitor my project's health by connecting sensors to all the vital parts and giving me a daily report. In order to play with these toys, I had to configure my computer and Hudson to call on the sensors.

Results:
It took me awhile, but I finally got everything set up. The results from the sensors showed that me and Anthony's project is healthy. The only yellow we have is under coverage, but it is going to be green because we added more coverage testing. Hudson in the beginning had us listed as Thunderstorm because I had some issue with the build. In the end I went through everything to find that I simply forgot to see one configuration in Hudson. Once that was fixed, my mood followed our project's weather. These little hiccups are good in helping me build my confidence in solving any problem I see. At times, I really wanted to go to ICU because the problems can come from anything. Since everything was new, I ended up redoing everything to find the problem.

Monday, November 3, 2008

Rush to the Finish

Overview:
Another week and another rush to finish. Who would have thought little features like sort and within would be so much problem. Along with adding those two new features, we had to add the Hawaii State Library System as another library we can access. Lucky a time extension was given to let us sleep a extra night.

Process:
Communication was good in the beginning. We met up at Hamilton Library for a few hours and we got a lot of work done, but things turned fuzzy after that. Because of our busy schedules, we were limited to only Instant Messaging and Aim. We tried to schedule another meeting, but things came up so we had to cancel it. For me, it was hard for me to program since I did not know how the design was going to be. For example, I would be sitting in front of the computer reading Anthony's message and designing how the Library file will parse the sort and within parameters and then I see that Anthony created a robust parsing file. I end up retracing the program and frustrated that I was unable to help.

Results:
We completed the project with all the requirements needed. Our project automatically sorts the results by Library and the user can sort the books by due date. Both library systems are working and the within feature works fine. Continuous Integration is a very fun tool. It's like another person watching our submits and waiting to give us a red mark when we forget to verify.

Reflection:
I think the one thing that can improve my effectiveness would be to find more time to meet up face to face to program. Aim and email does not seem to work to well with me and I was able to see a major difference between me working alone and me working with my partner side by side. That is the optimal view, but I also need to improve my communication skills over the internet so that I can be more productive when I'm at home.

Saturday, November 1, 2008

Self Reflection on Review

Overview:
As a team, me and Anthony are given the task to review another team's code. We need to help them test if we are able to download their code and configure our system to be able to start developing. Because we are developing an open source application, it is very important for our code to be robust and easy to set up for future development by other programmers.

Review:
It has always been hard for me to give a review because I would have to criticize their code and point out their flaws in design. I also run into uncertainty because I am reviewing code that are in the middle of development. Since I am not in their group, I would not no their goals and I would be wrong with my review. When I was reviewing purple's code, I felt really back because I was unable to get the code working. In my mind, I believe that it should be working and the fault was with me. I ended up not being able to run their code in Eclipse, so I just traced the code to help review other parts of the code.
After doing the review, I talked to Anthony and I was surprised that we both gave the same review. I guess because we worked together on our code, their design thoughts were the same. It was also nice to know that I was not the only one having problems getting their code to work. Looking at Purple's code also gave us ideas on how to solve our problems.