Monday, December 12, 2011

Going to be King After the Back Row Life

     Building off of the previous review comes an extension to the project our group inspected. Our team members of the group BackR took over the project hale-aloha-cli-bking, developed by group Bking, to add in some new enhancements and features.
     The hale-aloha-cli projects in summary are the same program developed by different groups of developers. This program is basically a command line interface program that gathers energy data from the Hale Aloha Towers Dormitories at the University of Hawaii at Manoa using WattDepot.  With this energy data, the program utilizes it and manipulates it to provide a formatted output for the user to see and analyze.
     Using the previous base project of the hale-aloha-cli-bking as the foundation, our group implemented the following new commands to the project and bump it up to version 2.0:

  • (1)  set-baseline [tower | lounge] [date]
     This command defines [date] as the "baseline" day for [tower | lounge].  [date] is an optional argument in YYYY-MM-DD format and defaults to yesterday.  When this command is executed, the system should obtain and save the amount of energy used during each of the 24 hours of that day for the given tower or lounge.  These 24 values define the baseline power for that tower or lounge for that one hour time interval.  For example, if lounge Ilima-A used 100 kWh of energy during the hour 6am-7am, then the baseline power during the interval 6am - 7am for Ilima-A is 100 kW.

  • (2) monitor-power [tower | lounge] [interval]
     This command prints out a timestamp and the current power for [tower | lounge] every [interval] seconds.  [interval] is an optional integer greater than 0 and defaults to 10 seconds. Entering any character (such as a carriage return) stops this monitoring process and returns the user to the command loop.

  • (3) monitor-goal [tower | lounge] goal interval
     This command prints out a timestamp, the current power being consumed by the [tower | lounge], and whether or not the lounge is meeting its power conservation goal.   [goal] is an integer between 1 and 99.  It defines the percentage reduction from the baseline for this [tower | lounge] at this point in time.  [interval] is an integer greater than 0.
     For example, assume the user has previously defined the baseline power for  Ilima-A as 100 kW for the time interval between 6am and 7am, and the current time is 6:30am.   If the goal is set as 5, then Ilima-A's current power must be 5% less than its baseline in order to make the goal.  At the current time, that means that Ilima-A should be using less than 95 kW of power in order to make its goal.
     It is an error if the monitor-goal command is invoked without a prior set-baseline command for that [tower | lounge].
     Entering any character (such as a carriage return) stops this monitoring process and returns the user to the command loop.

     As a group, we continued the Issue Driven Project Management and applied it to this project as well. With practice from our first project, it wasn't difficult to adapt it to the new project. The only thing we needed to adapt to is the code since none of us wrote it. Besides adapting to new code, we also needed to understand it which was fairly easy from the get go.
     Our group implemented all of the three commands listed above with minor modifications to overall base code. For example, the original program hard codes its commands in a processor class, so we copied the design and extended it, rather than replacing it. Developers like myself will probably not like code that is not theirs, but that's a pat of life. People will not appreciate everything, so you need to adjust and live with it sometimes. With code, you get to see how others write to solve a problem that you would do differently and that's how we can learn and discover new things.
     With the new system, it still applies to all three Prime Directives. The project still accomplishes a task as the 1st Prime directive describes. Our group updated the home page of this project to reflect these changes as well. With the 2nd Prime Directive, an external user will be able to still successfully install and use the system with the help of the previous groups user guide. In addition to this, we also modified to add in more descriptions for the user to read upon. In Prime Directive 3, developers will also be able to understand and enhance the system just like our group did for this project. We entered a project that set up the baseline for any future project enhancements.
     Overall, this project improved from the first version with the addition of the new commands. I would say our group did an excellent job providing great quality work.

Links:
Project Home: http://code.google.com/p/hale-aloha-cli-bking/
Download: http://code.google.com/p/hale-aloha-cli-bking/downloads/detail?name=hale-aloha-cli-bking-2.0.2011.12.13.11.06.zip&can=2&q=
WattDepot Home Page: http://code.google.com/p/wattdepot/
Three Prime Directives (Blog Entry) : http://elmarcarillo.blogspot.com/2011/08/three-important-pixels.html