Friday, December 18, 2009

Ecologineers 2.1

Over the past few weeks since version 1.0 of my groups' project, there were many new additions and modifications to the program. Instead of one page that just does the chart, we have added a homepage which describes the entire project, and as stoplight page that gets the current carbon output. There is also a menu bar that allows the user easy navigation throughout the website. We have also upgraded the grid info to implement a chart. The chart now allows for users to look at data over multiple days because there is now a start dates and an end date that users enter. The users now have a choice of what source they want to choose from to view.

There is a new stoplight that tells the user the current state of the system. The stoplight shows green, red, or yellow which indicates if there is currently high, medium, or low carbon intensity. Low is green, medium intensity is yellow, and high intensity is red. The colors mean the same thing on the gridinfo page. The gridinfo page contains a chart with 3 input fields. A start date, end date, and source. To make the program user friendly, we have set the program up so that the same start and end date is one day. Ex. 10/01/2009 to 10/01/2009 will get the chart to print out the 24 hours worth of information.

Some other additions that we have made to the program was implementing ajaxpagerefresh for the stoplight page that will refresh the page every minute without the user having to manually refresh the page. We also added nice URLs, which made the URLs easier to read.

Wednesday, December 16, 2009

Final 413 Blog

This will be my last blogpost for my 413 software engineering blog. But fear not all you people out there, I will be back blogging about new experiences in my 414 class next semester! My first software engineering experience has been a good one. This experience has reinforced my belief that I chose the correct field and enjoy working with software and coding.

The most important thing that I have learned this semester is to always plan out the entire project before even starting on it. Every project that was assigned this semester was very interesting and fun to work on, but I had the problem of always flying by the seat of my pants while working on them. Instead of planning out and really thinking about how I wanted to implement the assignment, I would just start coding and get small parts done without looking at the bigger picture. This caused many problems later in the project since it took a lot of work to put everything together. The best example is the first wattdepot CLI assignment. My group had a poor implementation idea where we didn't take into account what we were trying to implement. We just finished all the methods and threw all these methods into one file. We didn't think about how hard the code was to read and expand on. We later had to refactor all of our code, we also made the code more readable and easy to expand upon by adding a command map that would handle all the user inputs.

I also learned about different quality assurance tools such as checkstyle, pmd, and findbugs. These tools were a burden at many times during the class since they would nit-pick at such small things, like a missing space after a comment, which would cause our build to fail. Although they would annoy me, I have learned a lot using these tools, since they made me a better programmer. They made me realize that some of my code could be optimized and to make sure that I always comment. This was also the first semester that I needed to use JUnit. Making test cases were very useful since it allowed me to make tests for small parts of a program. The JUnit tests saved time testing the program since I would not have to run the entire program to test a small change. I could just test the small change using JUnit.

Another important thing that I have learned in this class was working in groups. This class gave me my first experience working in groups and the various programs that helped with the group projects such as Git or subversion. We used subversion in class and I have seen how it has helped with the process of finishing an assignment.

Overall, I have enjoyed my 413 class very much. I have never worked so hard in a class before. This class was very intense and I have felt like everything that I have worked on in this class is very useful and relevant to real world experience.