<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6616190461606852457</id><updated>2011-07-08T08:40:03.385-07:00</updated><title type='text'>Online Engineering Log</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-4736824986661889221</id><published>2010-05-04T07:12:00.000-07:00</published><updated>2010-05-04T07:22:16.152-07:00</updated><title type='text'>Solar Energy Video Part 2</title><content type='html'>This week we were unable to get any interviews with the deans from both Saunders Hall as well as Sakamaki Hall.  Instead this week we decided to begin to create the video from the interviews that we had obtained in the previous week. &lt;br /&gt;&lt;br /&gt;Our time limit for the presentation tomorrow is 5-7 minutes however we went over that time limit as we found that there was no way to cram all of the information that we had received into that short of a time limit.  In the end our video was about 9:55 with only 3 people being interviewed and all of the irrelevant sections cut out.&lt;br /&gt;&lt;br /&gt;In light of the amount of time these interviews took we decided that if we were to cover the PACE Bill or other such topics related to solar energy, then we would need to create a 2nd video to provide the information.  Also if we manage to get interviews with the deans of Saunders Hall and Sakamaki Hall, then its most likely that we will have to go back and re-edit the current video and cut out some of the footage in the video and replace it with the footage from the Saunders and Sakamaki Hall interviews. &lt;br /&gt;&lt;br /&gt;Lastly we realize that our target goal is to be at most a little over 7 min just like our energy pong video.  We believe that excessively long videos (especially those with almost exclusively interview footage) can actually do more harm than good as the user is more prone to loosing focus or interest as time progresses within the video.  With that in mind, this week if we are unable to get interviews then we will comb over the current video again and try to cut out about 2:30 from the film to bring it down to around 7 minutes.  Also we plan to film a short introduction in the beginning of the video explaining the purpose and perhaps a brief explanation about solar power.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-4736824986661889221?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/4736824986661889221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/05/solar-energy-video-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4736824986661889221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4736824986661889221'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/05/solar-energy-video-part-2.html' title='Solar Energy Video Part 2'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-7511597829941251858</id><published>2010-04-27T05:17:00.001-07:00</published><updated>2010-04-27T05:24:36.219-07:00</updated><title type='text'>Solar Energy Video</title><content type='html'>This week we began to do interviews with various people in order to gain an incite to some of the reasons behind why people decided to install solar panels on their homes or even around the UH campus.  Our first visit was with the dean of the Shidler Business College who was nice enough to not only give us an interview but took us up to a place where we could see the solar panels that were installed on a roof of one of the class rooms.&lt;br /&gt;&lt;br /&gt;A few days later on Saturday we went up to a solar open house that was being hosted bu Sunetric.  This company provides the installation of solar panels as well as a energy plan to go along with them.  Luckily for us, the owner of the home was also in so we were able to interview both the home owner (gained lots of good incite about home solar installation) as well as the representative from Sunetric who told us more of the statistical side of the story.&lt;br /&gt;&lt;br /&gt;As a next step we are waiting to hear back from the dean in Saunders Hall as well as the dean in Sakamaki Hall.  Hopefully we will be able to get an interview with both people and hopefully be able to gain more incite as to why college campuses are installing this panels.  Also this week we will most likely begin research on the PACE bill which I believe supports the use of solar panels on homes in return for government incentives.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-7511597829941251858?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/7511597829941251858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/04/solar-energy-video.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7511597829941251858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7511597829941251858'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/04/solar-energy-video.html' title='Solar Energy Video'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-231095842692707336</id><published>2010-04-20T00:00:00.000-07:00</published><updated>2010-04-20T00:24:54.947-07:00</updated><title type='text'>Final Energy Pong Video</title><content type='html'>This past week I went back and reedited the energy pong ver. 2.0 video to incorporate the following changes:&lt;br /&gt;&lt;br /&gt;1. The volume of the transition music needed to be toned down&lt;br /&gt;2. Add subtitles when the rules and objectives are being described&lt;br /&gt;3. Add a link to an external site where the rules can be viewed&lt;br /&gt;4. Added a summary section to the end of the movie&lt;br /&gt;5. Fixed various misinformation in some of the rules&lt;br /&gt;&lt;br /&gt;Because we are out of time for this project, version 3 is the final version and can be found &lt;a href="http://www.youtube.com/watch?v=zQWm70TjC8c"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;Next Project&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The next project that the content design group will undertake is the making of a video promoting solar energy.  We will explore current solar projects in Hawaii such as the solar open houses and we will also explore how the University of Hawaii has begun to implement solar energy. &lt;br /&gt;&lt;br /&gt;As a first step this weekend our group will visit one of the solar open houses and hopefully get a few interview with some people there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-231095842692707336?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/231095842692707336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/04/final-energy-pong-video.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/231095842692707336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/231095842692707336'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/04/final-energy-pong-video.html' title='Final Energy Pong Video'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-6229250422814417377</id><published>2010-04-13T09:58:00.000-07:00</published><updated>2010-04-13T10:07:40.731-07:00</updated><title type='text'>Energy Pong, 2nd Filming</title><content type='html'>This week in our weekly meeting we presented our first version of the energy pong video to our professor.  After viewing the video we were told that we needed to fix the following problems:&lt;br /&gt;&lt;br /&gt;1.  The objective section of the video was incorrect and the narration needed to be revised&lt;br /&gt;2.  The bracket section of our video had too many floors&lt;br /&gt;3.  Some of the footage mentioned in the script wasn't in the video (forgot to narrate them)&lt;br /&gt;4.  The video needed to have team members from both genders&lt;br /&gt;&lt;br /&gt;In order to fix these problems we decided that it was best to reuse as much footage from the first filming as possible and then to refilm the rest of the footage on Wed. and Thurs. so that we could send out the movie to be reviewed by the rest of the class. &lt;br /&gt;&lt;br /&gt;After sending it out to the class we received a good amount of feedback and from that feedback we decided which changes could be incorporated and which couldn't.  For the next version of the video we have decided to change the following:&lt;br /&gt;&lt;br /&gt;1.  Show pictures of the items needed to play energy pong&lt;br /&gt;2.  Tone down the volume of the transition music&lt;br /&gt;3.  Display a link to a wiki with the rules of the game for those who forget a rule(s) and don't want to watch the video again&lt;br /&gt;4.  Possibly add text to the video when a rule is described&lt;br /&gt;5.  Redo the narration for what happens when 2 balls land in the same cup (current narration is missing some critical details)&lt;br /&gt;6.  Add a summary section to the end of the movie&lt;br /&gt;&lt;br /&gt;Lastly the current version of our video can be found &lt;a href="http://www.youtube.com/watch?v=BdscglJAiJQ"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-6229250422814417377?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/6229250422814417377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/04/energy-pong-2nd-filming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/6229250422814417377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/6229250422814417377'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/04/energy-pong-2nd-filming.html' title='Energy Pong, 2nd Filming'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-8577349349634642529</id><published>2010-04-05T21:26:00.000-07:00</published><updated>2010-04-05T21:55:16.539-07:00</updated><title type='text'>First Shoot</title><content type='html'>This weekend our group began the filming of our video documentary for our "energy pong" game documentation.  For those who don't know what energy pong is, its a variation of the drinking game beer pong.  If you don't know what that is, please check this link out on &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/wiki/EnergyPong"&gt;how to play&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The shooting of the movie took place in the dorm Noelani I tower.  Originally we were going to shoot in one of the freshmen towers, but I was told by a friend that we were unable to bring anything beer pong related into the dorm as it is a dry dorm.  So with that in mind we were forced to change our shooting location.&lt;br /&gt;&lt;br /&gt;The shooting itself took a little bit of time as we had to constantly retry shots when one of the actors missed sinking a ball in a cup or just the usual forgetting of lines.  However in the end we managed to get all the shots that we needed with the exception of the shot that involved a female (by that time all the girls were gone). &lt;br /&gt;&lt;br /&gt;Tonight we will get together as a group, review the footage, see if we are missing any footage and then begin the editing process (adding title and credits, transitions, ect).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-8577349349634642529?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/8577349349634642529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/04/first-shoot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/8577349349634642529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/8577349349634642529'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/04/first-shoot.html' title='First Shoot'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-2742070451221364072</id><published>2010-03-30T01:48:00.000-07:00</published><updated>2010-03-30T01:54:25.291-07:00</updated><title type='text'>Energy Pong Part 2</title><content type='html'>During the course of this week our group sent out our script and ideas to the rest of the class for review so that we might find ways to add things to the video to make it better or what to remove or change things in order to make a better video.&lt;br /&gt;&lt;br /&gt;After getting some reviews we started to make changes to the script and we will start to assign roles to various people soon.  The one problem is finding people who want to be in this movie, currently I have been talking with some of my freshmen friends to see if  they would be willing to play small roles in the movie as well as giving us access to their dorm so we could shoot the movie in the setting where it will take place.&lt;br /&gt;&lt;br /&gt;During the course of this coming week we will be working on finalizing the script (we just sent out another script for review) and the roles and if we can we will most likely begin shooting towards the end of the week or on the weekend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-2742070451221364072?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/2742070451221364072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/03/energy-pong-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/2742070451221364072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/2742070451221364072'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/03/energy-pong-part-2.html' title='Energy Pong Part 2'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-1717449587072214916</id><published>2010-03-15T13:52:00.000-07:00</published><updated>2010-03-15T19:00:14.042-07:00</updated><title type='text'>Group Reassignment</title><content type='html'>This week marked the final milestone for the development group, as we have produced all of the mockups needed for now.  Now I am part of the content development team, where we create videos for use during the competition.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Ideas:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For the first milestone we have decided to do a few videos.  The first being a movie on beer pong.  As Prof. Johnson stated, the future of documentation is through video, so we have decided to create a video to go along with our energy pong game, for those who don't know how to play.&lt;br /&gt;&lt;br /&gt;Secondly we have decided to visit the man who currently lives off of the energy grid.  We think that by interviewing him we can give students better incite as to how to better conserve energy as well as raising their energy literacy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Wiki:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Over this past week I created a Wiki for the energy pong game.  We realized that not everyone knows how to play beer pong so therefore not everyone would know how to play energy pong.  With that in mind we were asked to create a wiki to go along with our video documentation.  My wiki for energy pong can be found &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/wiki/EnergyPong"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-1717449587072214916?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/1717449587072214916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/03/group-reassignment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/1717449587072214916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/1717449587072214916'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/03/group-reassignment.html' title='Group Reassignment'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-576226372010429692</id><published>2010-03-09T02:09:00.000-08:00</published><updated>2010-03-09T02:28:40.706-08:00</updated><title type='text'>Milestone 2</title><content type='html'>This is the 8th week that we have been working on the design of the dorm competition site.  This means that the 2nd milestone is coming up and we must show what we have done over the last 8 weeks.  In preparation of this presentation I have done a few things:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Edits:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First of all I decided that the layout of all the pages should stay the same as they presented the user with an easy and uncluttered environment in which to view or administrate in.  Also I changed some of the top links so that they actually linked to other pages (some of the links were lost when names were changed). &lt;br /&gt;&lt;br /&gt;Secondly to better represent the current time period of the competition I went back and changed the content on the home page and the events. This will show those looking at the mockups that content will change (probably weekly) on some of the pages.&lt;br /&gt;&lt;br /&gt;Lastly I continued to think of way to improve the way the billboard displayed content. I noticed that the other mockups only had tips and no actual competition data.  So I wanted to keep my layout the way it was as it provides users with data as well as tips.  This way users don't have to have access to a computer to be able to view the essential competition data (kukui nut leaders, what floor is winning, current power consumption).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-576226372010429692?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/576226372010429692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/03/milestone-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/576226372010429692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/576226372010429692'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/03/milestone-2.html' title='Milestone 2'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-1916606597123145431</id><published>2010-03-02T00:21:00.000-08:00</published><updated>2010-03-02T04:45:36.120-08:00</updated><title type='text'>2nd Week of Competition</title><content type='html'>During this week we moved onto the next phase of design which is the 2nd week of competition.  The design of the site stays almost the same as the first week with a few minor changes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Home Page:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The page layout stays the same, however the content changes.  Each week the video on the page changes as well as the photoslide show.  Below is my mock up of the home page (click on the image to enlarge it):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/home.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 693px; height: 389px;" src="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/home.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Admin Pages:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The admin pages for the second week stay the same as the first week however if old goals or events are still unapproved then they will carry over into the next week for approval or disapproval.  However the the layout and availability of the pages stays the same of the first week.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Billbaord:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This week I also worked on the billboard page.  My design is currently one of two designs that are being proposed.  My billboard proposal consists of 6 slides.&lt;br /&gt;&lt;br /&gt;The first slide shows users the next upcoming event as well as the current floor standings:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 693px; height: 389px;" src="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard1.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The 2nd slide shows the weekly as well as the overall kukui nut leaders.  Hopefully this will encourage user to actively engage in activities to gain more kukui nuts:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard2.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 693px; height: 389px;" src="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard2.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The 3rd screen shows the recent commitments that other users have submitted.  Hopefully this will encourage other people to also commit to similar actions or events:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 693px; height: 389px;" src="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard3.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The 4th screen shows the recent goals that floors have set for themselves.  The goal of this page is to motivate floors to keep up with the other floors by submitting their own goals:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 693px; height: 389px;" src="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard4.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The 5th screen shows a tip of the day, so that users don't even have to visit the website to receive tips on how to curb energy consumption:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 693px; height: 389px;" src="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard5.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The last screen shows a graph of the current energy consumption of that day.  I think this will give students a good idea of when or when not to use certain appliances (assuming they apply their energy literacy knowledge):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 693px; height: 389px;" src="http://uh-dorm-energy-competition.googlecode.com/svn/mockups/Milestone2/2010-10-11/ilima_billboard6.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;The idea behind my design was to give students as much information as possible without them having to do anything at all.  This way the student can come in and see all of the essential competition data without having to go to the website or logging into their account.  Hopefully in this manner students will be more encouraged to compete and also gain energy literacy without doing a thing.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;&lt;br /&gt;&lt;br /&gt;Prizes:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This week we also worked on designing prizes for the competition.  The prizes range from a pizza party to an ipod depending on the category that was won.  Our budget was $2000 and we were able to stay a little under that goal. However I am unable to post up a list of the prizes as they are on someone else computer and not in the repository.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-1916606597123145431?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/1916606597123145431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/03/2nd-week-of-competition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/1916606597123145431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/1916606597123145431'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/03/2nd-week-of-competition.html' title='2nd Week of Competition'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-4094329318229892385</id><published>2010-02-23T02:30:00.000-08:00</published><updated>2010-02-23T02:48:23.269-08:00</updated><title type='text'>During Competition Design</title><content type='html'>This week I our group continued to work on mockups.  However we have moved to the next stage of the competition and we began to design mockups that were meant to be displayed while the dorm competition is going on.  Additionally I went back and completed edits to the pre-competition wiki as well as the repository, as I had made pages available that weren't appropriate for the pre-competition page.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Admin Editing: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;During this week I continued to design pages for the admin.  The major design modifications this week included the way the admin was able to edit the other pages as well as the addition of a goals approval page.&lt;br /&gt;&lt;br /&gt;Last week I proposed that the admin would edit the HTML of the page itself in order to edit such things as links, videos as well as text content.  However this proved to be an inefficient design that not only required the admin to have an advanced knowledge of HTML but also as Prof. Johnson pointed out, this design was error prone as one wrong change to the HTML could destroy the entire page.  Also there was no way to revert back to an older state in case of an error.  To fix this flaw I followed the design of how CMS' allow users to edit their pages.  Now all the admin has to do is click on a header that they want to edit, then a pop up box will appear and prompt the user to enter a new link if they are editing a video, edit text if they are editing a text area, add or delete events if they are editing events on the home page, change links to various slideshows, change the file from which the tips displayed in the ticker tape are drawn from or lastly change the link to the current dorm standings graph.  This design stays true for all pages that the admin has the option to edit.&lt;br /&gt;&lt;br /&gt;During these revisions it was brought up that the admin doesn't have to approve kukui nuts for commitments since they would be worth a marginal amount.  Because of this there was no need for a kukui nut approval page so that was deleted and instead a page for approving goals was added.  Previous we deemed that goals were too close to commitments so we decided to do without them.  However this week Prof. Johnson redefined what goals and commitments were which then required me to design a page to accommodate these changes.  The layout of the page is the same as any of the other approval pages.  Inside a box the admin can see the tower and the floor which submitted the goal, the goal itself and lastly a approve and reject check box.  At the bottom there is an approve and reject all button which should save the admin time if there are lots of goals that all have been deemed legitimate.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Next Up:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I believe in this upcoming week I will have to work to refine the goal approval page as well as refining the way that admins are able to edit pages, specifically the resources page as it has many editable regions as well as a few sub-pages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-4094329318229892385?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/4094329318229892385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/02/during-competition-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4094329318229892385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4094329318229892385'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/02/during-competition-design.html' title='During Competition Design'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-5725449352322040749</id><published>2010-02-16T03:19:00.000-08:00</published><updated>2010-02-16T03:42:05.024-08:00</updated><title type='text'>Pre-Competition Design</title><content type='html'>This week we received feedback regarding our design from milestone one.  Because of some confusion we were given a one site layout and this week we began to fill in these blank lay out pages.  The presentation tomorrow will contain a rough version of the site with the modifications from the first milestone incorporated.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Pre-Competition:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This week I was responsible for creating the pre-competition kukui nut page.  This page was to contain basic information.  So I decided to have a top box that spanned the page and contained a description of the competition.  Underneath that I decided to have 3 sections, one section devoted to describing the prizes that could be won from this competition, a picture of the dorms where the competition would be held and lastly a description of the scoring system of the competition.  Hopefully this page will give people a feel of what the competition is all about and how to compete.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Admin 1.0:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The modifications to our milestone 1 site included a requirement for an admin page.  The requirements for this page was that the admin should be able to edit any of the other pages as well as approve kukui nuts, commitments, events as well as user submitted tips.  In order to do this efficiently I created a home admin page with all the editable options (all pages, kukui nuts, tips ect..)  having its own link. &lt;br /&gt;&lt;br /&gt;When the admin wants to edit a page, then he selects the page and the HTML code will pop up in a box where the admin can make changes to a page.  I designed it this way since the admin most likely won't make structural changes to a site, but more likely weekly updates as well as additional links to movies or external sites.&lt;br /&gt;&lt;br /&gt;When the admin clicks on the approve kukui nuts link he is taken to a page that contains a list of users and the actions and commitments they have completed.  The admin then has the option to approve or reject the actions or commitments.  If the action or commitment is approved then the action or commitment will show up in the users profile as well as the addition of kukui nuts to their current total.  If the action or commitment is rejected then nothing will be displayed in the users profile and they will receive a notice of disapproval.&lt;br /&gt;&lt;br /&gt;When the admin clicks on the approve commitments or approve user tips then they will be sent to a page that is similar to the approve kukui nuts page.  Here the admin will have a listing of the user as well as the commitment or tip that they submitted.  Again the admin has the choice to approve or reject these commitments or tips.  If the commitments are approved then they will be displayed in the users profile.  If the tip is approved then it will be added to the list that contains the weekly tips.  Also kukui nuts may be awarded to the user.  If the commitment is rejected then the user will receive a notification.&lt;br /&gt;&lt;br /&gt;The admin also has the option to add or delete users from the competition.  This is setup just in case if a user transfers from a competition dorm to a non-competition dorm or if a user moves in from a non-competition dorm to a competition dorm.&lt;br /&gt;&lt;br /&gt;Lastly there is a page where the admin can edit those who will receive kukui nuts for attending certain events.  On this page there is a header which describes the event, then underneath that the users will be displayed.  The users displayed are then compared to a list of users that attended the event and the admin then approves or rejects users according to their attendance.  On this page all of the past events that still have users waiting for approval will be displayed.  Once an event has all of the users verified or rejected, then the header for that event will disappear.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-5725449352322040749?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/5725449352322040749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/02/pre-competition-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/5725449352322040749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/5725449352322040749'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/02/pre-competition-design.html' title='Pre-Competition Design'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-7643679670798604365</id><published>2010-02-08T23:32:00.000-08:00</published><updated>2010-02-09T00:10:09.407-08:00</updated><title type='text'>Milestone 1</title><content type='html'>This week we decided on layout for our webpage as well as a basic layout for it.  After debating between using 1 website or 2 websites we decided that it would be the most effective solution to use one webpage but slim down the content and make it more simple and intuitive to use.  In order to complete the desired layout by the milestone we decided that it would be most efficient for the website to be divided among all group members then joined together on the Monday before the milestone.  For this portion I was in charge of designing the home page as well as the home page that is displayed once a user has logged in.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Home Spec.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We decided that the home page needed the following on it:&lt;br /&gt;- An app that rotates various pictures from the competition&lt;br /&gt;- A graph of the current dorm standings&lt;br /&gt;- A video box for providing a video introduction to the competition&lt;br /&gt;- A box that contained writings about the competition&lt;br /&gt;- A ticker tape that displayed various energy consumption tips&lt;br /&gt;- A box that listed out the upcoming events for the competition&lt;br /&gt;&lt;br /&gt;At first it was hard to fit all of the data into the website, but after lots of rearranging I manged to fit all of the information onto the page while making it as simple and user friendly as possible.  A image of the layout can be found &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/source/browse/mockups/MileStone1/Single_Home.png"&gt;here&lt;/a&gt;.  Like my previous layouts, this one displays (and contains a link to) how much UH has saved for the competition to date.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Competition Spec.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We decided that the competition page needed to have the following requirements:&lt;br /&gt;- A profile picture&lt;br /&gt;- Current amount of kukui nuts that the user has as well as the amount that the kukui nut leader has&lt;br /&gt;- A box that contains tabs for events and commitments&lt;br /&gt;- A box that contains tabs for updates, current commitments as well as a graph&lt;br /&gt;&lt;br /&gt;I found the idea of a profile picture a nice feature as it made the site more like a social networking site.  At first I suggested that we used tabs to separate the data within a box, however I realized that having tabs within tabs from our main page layout just looked bad, so I moved all the of the boxes that were to be tabbed into one box with buttons to switch between each of the options.  Also I included the current goals list at the bottom of the page instead of in the above box with the rest of the data.  My original lay outs can be found here: &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/source/browse/mockups/MileStone1/Kukui_During_Events.png"&gt;Home&lt;/a&gt;, &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/source/browse/mockups/MileStone1/Kukui_During_Commitments.png"&gt;commitments&lt;/a&gt; and &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/source/browse/mockups/MileStone1/Kukui_During_Goals.png"&gt;goals&lt;/a&gt;.  The update button would display a selections of graphs through ajax and I was unsure on how to display that so there is no layout for that page.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Revisions:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After today's team meeting we decided that the home page, pre-competition page, post-competition page, resources and contact pages should stay the same.  However the during-competition page needed to be changed.  During today's meeting we decided to keep my general layout, however we combined elements from Anthony's layouts which provided some nice features to our site.  We also decided that commitments and goals were too similar, so we eliminated the goals from our project.  The final product can be found here: &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/source/browse/mockups/MileStone1/Final/Final_Kukui_Updates.png"&gt;Updates&lt;/a&gt;, &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/source/browse/mockups/MileStone1/Final/Final_Kukui_Activities.png"&gt;Activities&lt;/a&gt;, &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/source/browse/mockups/MileStone1/Final/Final_Kukui_Commitments.png"&gt;Commitments&lt;/a&gt; and &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/source/browse/mockups/MileStone1/Final/Final_Kukui_Stats.png"&gt;Stats&lt;/a&gt;.  The stats page might be a little confusing so I will explain it.  When the user clicks on this button a pop up will appear with a near real time graph (10 sec delay)of the current power usage.  This will allow students to see the impacts of their actions almost instantaneously.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Wiki:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The wiki for our layout for milestone 1 can be found &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/wiki/mockupMilestone1"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-7643679670798604365?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/7643679670798604365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/02/milestone-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7643679670798604365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7643679670798604365'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/02/milestone-1.html' title='Milestone 1'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-4556925873347434649</id><published>2010-02-02T02:42:00.000-08:00</published><updated>2010-02-02T02:55:16.510-08:00</updated><title type='text'>Split Decisions</title><content type='html'>This week in our group meeting we decided that we should have the following included in a possible interface that would be set up in the lobby of the dorms:&lt;br /&gt;&lt;br /&gt;1. Showing weekly results for each tower (includes floor leaders, energy consumption).&lt;br /&gt;2. Show the energy consumption in relational terms, such as money.&lt;br /&gt;&lt;br /&gt;By displaying this data we hope that we can encourage a spirit of competition within the towers as well as giving the students a tangible way to learn about energy consumption.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Site Battle:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We also continued to design the user interface.  However we are in the process of either using one website to hold all of the data or using two sites to display the data (one site of the competition and the other for education).  Currently I am in charge of developing the two site approach.  I currently have a rough layout of the sites which can be found &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/source/browse/#svn/mockups/TeamGreenSmart"&gt;here&lt;/a&gt;.  My sites are distinguished from the others with the heading of Resources_*, or by author (smichaelwong).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Additional Goals:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Also this week we decided that there would be 4 additional groups.  Anthony is in charge of creating the mockups for the one website approach, Kelli is in charge of forming focus groups and assessing the RA's reaction to the competition proposals, John is in charge of gathering energy consumption and energy saving resources which will be used to educate people and lastly Wing is in charge of putting together Google charts and visualizations which aid in presenting the energy consumption data to the students.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;At the Milestone:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At the milestone we will have the following completed:&lt;br /&gt;&lt;br /&gt;1. Either the one site approach or the two site approach will be decided on as the final interface.&lt;br /&gt;2. The resources will be completely gathered and will be ready to be processed.&lt;br /&gt;3. The charts will be finalized  (what data will be displayed and how).&lt;br /&gt;4. The questions for the RA's will be designed and implemented after the milestone when the interface is decided on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-4556925873347434649?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/4556925873347434649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/02/split-decisions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4556925873347434649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4556925873347434649'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/02/split-decisions.html' title='Split Decisions'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-7786941410418453673</id><published>2010-01-25T23:01:00.000-08:00</published><updated>2010-01-25T23:47:25.373-08:00</updated><title type='text'>Design Phase II</title><content type='html'>During this week's meeting our group established some more guidelines for our design project as well as various other details of the overall Dorm Energy Competition.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Choosing a Dorm:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;During this week's meeting we established that the competition would most likely take place between two dorms instead of by floor.  We also decided that the freshman towers provided the best competition grounds for a few reasons:&lt;br /&gt;&lt;br /&gt;1.  All the floors are even.  One of the main reasons Frear was abandoned as a competition dorm was the fact that the floors are uneven.  By this I mean that some floors have a laundry room, some floors have a study lounge each of which consumes various amounts of energy and gives floors unfair advantages over other floors.&lt;br /&gt;&lt;br /&gt;2.  Fulfills one of the goals for the competition.  One of the goals is to raise awareness about energy conservation as early as possible.  By using the freshman dorms as a competition we are able to reach students at the earliest possible stage and hopefully raise awareness that will stick with them throughout their academic careers and beyond.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Other Guidelines:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We also determined that we should have weekly floor leaders in order to promote healthy competition among the students on the floor.  Ideally we would like to have lcd screen in the dorm lobby displaying such stats as the current dorm energy usage, the past week floor leader as well as various other data about the floors and their energy consumption.  Additionally we reviewed the 3 main goals (which can be found &lt;a href="http://code.google.com/p/uh-dorm-energy-competition/wiki/Requirements#4.0_Goals"&gt;here&lt;/a&gt;) of the competition and adjusted our guidelines as well as the way we educate the students in order to meet the 3 goals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-7786941410418453673?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/7786941410418453673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/01/design-phase-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7786941410418453673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7786941410418453673'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/01/design-phase-ii.html' title='Design Phase II'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-4885314008474224267</id><published>2010-01-18T22:02:00.000-08:00</published><updated>2010-01-18T22:26:36.459-08:00</updated><title type='text'>Kukui Design</title><content type='html'>For the first quarter of software engineering II I have been assigned to the Kukui design team.  We are in charge of providing the interface for the user to be able to view specified energy related data and adjust their consumption accordingly.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;Ideas:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As stated in class there should be some sort of chart (I think that a bar graph would do the job well) that displays the real time energy data with a 10 second delay.  Also at this stage it might be impossible for us to measure personal consumption so maybe a more realistic goal might be to have a chart that displays the user's room energy consumption.  Additionally I think that all of the data for all the dorms should be displayed on the login page.  This would allow users to see how their dorms stand in comparison to the other dorms in the competition.  Lastly I think that there should be some widget type box that displays the daily/monthly values (such as the cost of the energy consumption thus far, the amount CO2 that was emitted and what percentage of the dorm's total energy usage and CO2 emissions that the user has contributed).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-4885314008474224267?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/4885314008474224267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2010/01/kukui-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4885314008474224267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4885314008474224267'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2010/01/kukui-design.html' title='Kukui Design'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-6517397459041946423</id><published>2009-12-17T17:12:00.000-08:00</published><updated>2009-12-17T17:32:57.209-08:00</updated><title type='text'>Final Thoughts</title><content type='html'>ICS 413 has been a very eye opening experience for me.  I was able to apply what I learned before from previous Java classes which I enjoyed since I don't like to learn things and not get to see some practical application for it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Valuable Experiences:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found that most of the class provided very valuable information and incite to the world of software development.  I think that the group experience was the best part as we were able to share knowledge and see different views on how to solve a problem.  SVN in particular was an interesting experience since we were able to work on the project even if we weren't together, plus the ability to revert to a previous version was a nice feature for the projects.   Also the Ant tools added an interesting aspect to the development process as it allowed for testing and the catching of errors that we otherwise might have missed when just looking over or simply just running the code and assuming there are no errors.  Lastly I thought that Wicket gave some interesting experience as well as an introduction to web frameworks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;More Experience:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The only thing I felt needed improvement in the class was  the coverage of Wicket.  I found that Wicket was a particularly difficult language to get a hold of and I thought that the book did a fairly poor job of explaining how Wicket works, plus having it available to only 4 people at a time was a major inconvenience.  With that said I think that more time should be spent on Wicket in order for students to full grasp and get the hang of using the language.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;More Learning:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After taking this class, I have come to realize that I do not want to become a software developer.  While I did enjoy working in groups, I found that software development is extremely time consuming  and has the potential to be extremely frustrating.  So really I have no interesting in continuing my learning in this area.  However if I had to choose an area, I would like to learn more about web frameworks (maybe not Wicket) and how they integrate with Java, HTML and various other languages.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;Overall:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found this class to be extremely helpful in that it gives a great overview of the process and the tools of software development.  I enjoyed the experiences from this class, not only for the basic knowledge of software development and the great experience of working in groups but also the fact that this course has helped me decide what I would like to do with my ICS degree when I graduate (most likely networking and IT work).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-6517397459041946423?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/6517397459041946423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/12/final-thoughts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/6517397459041946423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/6517397459041946423'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/12/final-thoughts.html' title='Final Thoughts'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-4067462770553536218</id><published>2009-12-17T16:30:00.000-08:00</published><updated>2009-12-17T23:12:37.123-08:00</updated><title type='text'>Greensmart Ver. 2.0</title><content type='html'>Greensmart Ver. 2.0 saw some major changes as well as some minor changes from the 1.0 version.  We fixed the bugs found in version 1.0 and improved the overall look and feel of the website.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;What does this do?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This project has two options.  You can view the stoplight page or view the chart page.  Should the user go to the stoplight page then they will find that there is a stoplight there that displays the current level of carbon intensity with a specific message to the color.  If the user chooses to go to the chart page then they can select a date or a range of dates and the data will be displayed in chart form.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Changes:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Originally we only had one page which took a date and then printed the resulting carbon intensity, carbon intensity level and the hour in a long chart that didn't fit on a screen.  However in version 2.0 we changed that.  Now there is a home page where you can choose to go to either the chart page (which displays carbon intensity data) or the stop light page which takes the current computer time and calculates the carbon level then displays the results on a stop light with a corresponding message depending on the color of the level.  On the chart page we now use Google Charts to graph the carbon intensity and the hour and use background colors to show the level of the intensity instead of printing everything out in a table.  Also the user is now able to choose to graph either the carbon intensity or the energy for a given time period.&lt;br /&gt;&lt;br /&gt;We also changed the look of the page by changing the background color to the color white and also added "web 2.0" buttons and a new logo that we designed ourselves.  Also we created a contacts page and now all of the pages have links to all of the other pages of our project which makes navigation around the site a breeze.  To further improve the look of the page we incorporated the date picker to the chart page so now the user has the option to visually pick out which date or which date ranges of data they wish to view.&lt;br /&gt;&lt;br /&gt;In addition to the date picker the other extra credit option that we choose to implement was the nice urls.  This eliminates the strange wicket generated urls and replaces them with text which gives the project a more professional look to it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Lessons Learned:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Through this project I was able to gain basic knowledge of Wicket and how it interacts with both Java and HTML.  Another thing that I learned was while the project might meet the specifications (like our ver. 1.0), the user interfaces must be easy and friendly to use without too much clutter and a lot of intuitiveness for ease of use for any user no matter how computer literate they are.  Lastly I realize that had the option been available it would have been better for us to specialize in certain areas of the project.  For example one person does the HTML work, one person does the Wicket and one one person works on the Google charts, ect.  Specialization would have allowed for less errors as well as a faster production time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-4067462770553536218?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/4067462770553536218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/12/greensmart-ver-20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4067462770553536218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4067462770553536218'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/12/greensmart-ver-20.html' title='Greensmart Ver. 2.0'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-9138715204900468940</id><published>2009-11-24T01:29:00.000-08:00</published><updated>2009-11-24T04:13:16.795-08:00</updated><title type='text'>Wicket Peer Review</title><content type='html'>For the Wicket review I tested out the Greendepot system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;A. Review the System&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was able to download and build the system without any errors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;B. Review system usage&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When I ran tests on the system I noticed that I was able to input a date and have the application recognize the date, however no data would be printed out.  Also while testing false values (entering strings or invalid dates) I noticed that all of them resulting in crashing the program. However the interface is simple and self explanatory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;C. Review the JavaDocs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All of the package, class and method summaries provide high-level descriptions with a self contained first sentence.  Also the relationships between packages, classes and methods is well described.  However the description of the system summary could be better than "a greendepot client".  Also all of the JavaDocs conform to the standards put forth in chapter 4.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;D. Review the names&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the GreenDepot.java there is a variable called "x".  This variable should be renamed into something with meaning. Other than that all of the names in the JavaDocs as well as the actual code conform to the standards set in chapter 3 of Elements of Java Style.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;E. Review the testing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There were no tests included with this system besides the HelloWorld test from the example system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;F. Review the package design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The design of the package is good and reflects a logical structure for the system. I found it interesting that the .wicket was left out of the package and instead just went to edu.hawaii.greendepot. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;G. Review the class design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Each class is well organized and accomplishes one well defined task.  However I think that some of the accessor methods could be set to private as they aren't called on outside of the class that they are contained in.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;H. Review the method design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The methods are all short and easy to understand.  However in the getCarbonList method of the CarbonCalculator.java I think that the code that creates a timestamp should be in its own method. That way it can be called by other classes and allows for the method to accomplish only one task instead of 2. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;I. Check for common look and feel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The look and the feel of the code is consistent.  However to improve the coding I would add more comments as there are very few now which causes the code to be a little harder to understand.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;J. Review the documentation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The project home pages does a good job of providing the goals for the project as well as what the system accomplishes. However there is no screen dump of the system available. &lt;br /&gt;The UserGuide provides a great step by step method to download and run the system. Just as a small note, I would bold the section titles just so it is easier to find and it doesn't look like one big paragraph.&lt;br /&gt;The DevelopersGuide does a great job of explaining the system and how to extended, but it does not include instructions to build the file, but those can be found in the UserGuide pages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;K. Review the Software ICU data&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The ICU seems to be gathering data consistently and reliably.  Currently the overall health of the project is good with the only negative aspect being the churn rate. The from the data we can see that the majority of the work took place recently due to the spike in the DevTime and Build fields at the end.  Also with the exception of the huge spike in the churn rate we can see that the source code is constantly at a medium to high quality rate.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;L. Review the issue management &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The issues page was never used during the development of this system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;M. Review continuous integration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are no long gaps in between commits and with the exception of the first bad build all failed builds are fixed extremely quickly. Also there is a continuous integration job that executes on commit and executes all of the appropriate Ant tasks. Lastly there is a daily build job that executes once a day and executes all of the correct Ant tasks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Summary&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I think that the greendepot system is an ok system.  The coding is sound except I think that it could use more comments. Also the lack of outputs, error handling and testing is also a down side to this system.  However the based on the ICU and the continuous integration the group seems to be working well and producing good quality code and I think that the next version of this system has the potential to be a well functioning web application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-9138715204900468940?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/9138715204900468940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/wicket-peer-review.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/9138715204900468940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/9138715204900468940'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/wicket-peer-review.html' title='Wicket Peer Review'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-1976713485504416375</id><published>2009-11-23T10:01:00.000-08:00</published><updated>2009-11-23T10:24:10.720-08:00</updated><title type='text'>Wicket Web Development</title><content type='html'>I found that Wicket was hard to learn and that it is actually quiet complicated.  However the teamwork helped me to get a better grasp on the Wicket framework and how it relates to the Java coding.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;The good:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I thought that at first the basic Wicket syntax such as the HTML tagging and the basic set up of the corresponding Wicket tags in the Java code was really easy to setup and were clearly defined.  Also the WattDeopt commands to get the data were easy to figure out since we had previous experience writing code to get WattDepot data.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;The bad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Other than the basic set up of the tags and basic objects I found that Wicket was very hard to use.  Throughout the project I found myself constantly thinking that JavaScript could do the same function, in less code and in an easier way to understand (or at least thats what I think).  However in the end we were able to reason the framework out and complete the system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;System design:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I think that our system is very solid.  We have all of the requirements fulfilled but we would have liked to put pictures that correspond to the carbon intensity level instead of merely listing the level.  Also I believe that the system can be upgraded easily.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Teamwork:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I thought that our team worked very well in that we divided the tasks up and everyone did their part.  Also if one of us got stuck we could ask the other members for help and get a greater incite to what we might have been doing wrong.  Also often times if someone got stuck, the other members would stop and help look at the code and figure out a solution.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;ICU:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://i874.photobucket.com/albums/ab310/dasush1m0nstr/ICU.jpg"&gt;Here&lt;/a&gt; is a link to the ICU for the past 7 days.  The coverage is about average but the complexity and the coupling are good.  However the churn rate is really bad which means that we were constantly changing our source code and adding or deleting lines.  the rest of the fields remain average.  So over all the development for this project was good, however it seems that we tended to refactor our code very often.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-1976713485504416375?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/1976713485504416375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/wicket-web-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/1976713485504416375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/1976713485504416375'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/wicket-web-development.html' title='Wicket Web Development'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-5118582161414143797</id><published>2009-11-16T02:52:00.000-08:00</published><updated>2009-11-16T07:16:38.258-08:00</updated><title type='text'>CLI Ver. 2.0</title><content type='html'>This assignment allowed us to take a look back at our version 1.0 code and take into account the reviews that were given by our classmates.  From there we were able to implement the appropriate changes as well as use a revised library.  Along with this revised library came 3 additional methods that were implemented to the end of our code.  The newest distribution of the Eono system can be found &lt;a href="http://wattdepot-cli.googlecode.com/files/wattdepot-cli-eono-2.0.1116.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Version 2.0:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In this version we extended our code to meet the requirements in a better way.  The first step was we implemented a different interface.  Originally the interface had many method signatures, but in this design we made only one method signature (doCommand) available.  Also we took the individual commands and made them into their own class.  Lastly we implemented extensive testing as opposed to our last build where we only used the tests supplied in the example system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Group meetings:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We would meet as often as we felt necessary which would be a couple times a week.  In addition we would work individually and collaborate over instant messenger.  Also we divided the work equally and I believe that the both of us each carried our own weight.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Software ICU:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The software ICU statistics suggest that our project is not healthy but at the same time not sick.  We seem to be in between the two leaning more towards the healthy side.&lt;br /&gt;&lt;a href="http://i874.photobucket.com/albums/ab310/dasush1m0nstr/EonoICU.jpg"&gt;&lt;br /&gt;Here are the statistics for Eono&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;According to the screen cast our coverage as well as the churn rate were unhealthy, but our complexity, coupling, DevTime, commit and build were all healthy.  Also we since we created our test cases last, our test column value is unhealthy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Questions:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All questions were answered by adding and additional test class and then changing the test class to meet the requirements of the questions.  The test class will not be added to the final distribution of the system.&lt;br /&gt;&lt;br /&gt;1.  2009-11-02T19:00:00.000-10:00 : 9.835E8&lt;br /&gt;2.  2009-11-02T04:00:00.000-10:00 : 4.97E8&lt;br /&gt;&lt;br /&gt;The above answers were found by starting a date at 2009-11-01T00:00:000-10:00 and ending at the end of the day.  The time would be incremented by 1 hr in a loop and the largest or smallest value would be held in a counter and returned at the end.&lt;br /&gt;&lt;br /&gt;3.  highest: 2009-11-02 (monday) : 14764.0 MWh&lt;br /&gt;4. lowest: 2009-11-07 (saturday) : 14089.0 MWh&lt;br /&gt;&lt;br /&gt;The above was found by calculating the energyGenerate by the grid each day and the lowest/highest levels were kept and returned at the end.&lt;br /&gt;&lt;br /&gt;5. highest: 2009-11-04 (wednesday) : 2.9959472E7 lbs&lt;br /&gt;6. lowest: 2009-11-07 (saturday) : 2.2908808E7 lbs&lt;br /&gt;&lt;br /&gt;The above was found by calculating the carbonGenerated by the grid each day and the lowest and highest values were kept and returned at the end.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-5118582161414143797?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/5118582161414143797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/cli-ver-20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/5118582161414143797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/5118582161414143797'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/cli-ver-20.html' title='CLI Ver. 2.0'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-8671064542751287848</id><published>2009-11-10T17:42:00.000-08:00</published><updated>2009-11-10T17:55:04.736-08:00</updated><title type='text'>Review of reviewing</title><content type='html'>After reviewing the Umi and Umikumakahi systems I realized a couple of things.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;The Good:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reviewing other people's code can give great incite to your own current project.  I know that my group had problems implementing the interface in the correct manner, however I got some ideas on how to better design my system with the interface after looking at others code.  Also the responses from the reviewers of my system gave me more incite on how to better improve my system. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;The Bad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reviewing these systems thoroughly was very time consuming.  This can be attributed to the great depth of detail that the reviews cover.  Everything from the initial package to the system structure is carefully analyzed which allows for very helpful feed back on all aspects of the system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Lessons Learned:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After reviewing the Umikumakahi system I realized the importance of comments in the code.  In this system there are no comments in the code making it near impossible to understand in a decent amount of time.  Occasionally the thought of "if I don't comment here, it won't make a big deal since this is a minor line of code" crosses my head.  But after reviewing this system and seeing how impossible it is to understand, I have told myself to comment at all possible locations that might be hard for an outside reviewer to understand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-8671064542751287848?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/8671064542751287848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/review-of-reviewing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/8671064542751287848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/8671064542751287848'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/review-of-reviewing.html' title='Review of reviewing'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-5628298458124890444</id><published>2009-11-08T22:58:00.000-08:00</published><updated>2009-11-08T23:01:00.843-08:00</updated><title type='text'>Systems Review</title><content type='html'>Over this past weekend I reviewed the Umi and the Umikumakahi systems. Both of the systems gave me a better incite on how to better implement my system. The first system I reviewed was Umi. Overall the system was very solid and I liked the way the implementation was set up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;A. Review the build&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was able to build the system using ant -f verify.build.xml without any problems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;B. Review the system usage:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was able to execute all of the commands with the exception of the 2.8 command which I called with:&lt;br /&gt;&lt;br /&gt;list power generated SIM_WAIAU_8 day 2009-11-15 sampling-interval 30 statistic average&lt;br /&gt;&lt;br /&gt;which yielded a command invalid error.  But along the lines of invalid commands, I found that the system had very good error handling and that I was unable to crash the system. However one of the downsides was that I was able to execute invalid input on commands that took no arguments. For example I inputted the command: list sources SIM_KAHE_1 which yielded the same results as the command: list command. The same is true for quit (ex. quit test) and the help command.&lt;br /&gt;&lt;br /&gt;Also I found that the execution of a false source on the list power generated command caused the system to freeze up and I had to force quit the application. An example of this is:&lt;br /&gt;&lt;br /&gt;list power generated SIM_OAHU_GRID_1 timestamp 2009-11-15T12:13:00.000-10:00&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;C. Review the JavaDocs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Upon reviewing the JavaDocs I found that the system was well documented. All of the class, method and package descriptions were well defined in 1 sentence. Also the effects of the methods were also documented (such as the throwing of errors). However I found that there was no sample code examples and that there was no use of HTML tags in the comment code in the source code.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;D. Review the names&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After looking at the JavaDocs and the source code itself I found that the system implemented good, logical names for their variables, classes, methods and package names.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;E. Review the testing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There was no additional testing besides the tests that were already given with the example system.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;F. Review the package design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found that the name and design of the package of this system made perfect sense.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;G. Review the class design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;While reviewing the source code I found that the methods accomplished a single well defined task and that the instance variables for the methods as well as the classes and instance variables were all appropriately named. Also the methods were made private as often as possible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;H. Review the method design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found that the methods of this system were well designed with the exception of the listPowerSample method which was quiet long. Also for this method I found that a block of code stores items in an ArrayList, but this block can be separated from this method and made into its own separate method which would return and ArrayList. Lastly I found that the methods had very low number of side effects as the variables used were usually instantiated in the method itself.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;I. Check for common look and feel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found that the code seem very uniform with no major differences between authors.&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;This next review is for Umikumakahi. I found that their system had good structure, but other than that it caused me lots of problems, especially since there were no comments in the code besides the JavaDoc comments.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;A. Review the build&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was able to build the system with ant -f verify.build.xml without any problems.&lt;br /&gt;&lt;br /&gt;B. Review the system usage&lt;br /&gt;&lt;br /&gt;I was unable to run the system on my computer. I tired to use Eclipse but the error "Some projects cannot be imported because they already exist in the workspace" occurred which prevented me from importing the project even after I deleted my project from the workspace. In an attempt to test it with another IDE I downloaded and imported the system into NetBeans IDE. However once imported NetBeans reported that the system had 100 errors and these errors prevented me from testing the system. Screen shots of my NetBeans can be found here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://i874.photobucket.com/albums/ab310/dasush1m0nstr/NetBeansIDE.jpg"&gt;NetBeans IDE&lt;/a&gt;&lt;br /&gt;&lt;a href="http://i874.photobucket.com/albums/ab310/dasush1m0nstr/Errors.jpg"&gt;100 Errors&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;C. Review the JavaDocs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The methods, classes and packagese all have high level descriptions and were all summed up well in one sentence. Also the relationship between classes and packages were well noted. However like the umi system there is no examples of code and the use of HTML tags inside the source codes's JavaDocs comment was not found.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;D. Review the names&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The names of the classes, packages and methods were well chosen and conform to the standards defined in Java Style chapter 3. However some of the instances of class were misnamed as they were the same as the instance of the object they were instantiating. For example the instance for the Console object was called console.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;E. Review the testing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After running ant -f emma.build.xml I found that nearly all the code was accessed with the exception of the WattDepotChartCommand and the CommandLineInterface classes. Also the tests were well thought out and the test results were set to match those sent out by email.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;F. Review the package design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This system implemented 2 packages and I found that the packages were logically broken down and that they do a good job separating the commands and the interface itself.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;G. Review the class design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Each of the methods in this system do one "well" defined task. I say "well" since each command has its own method so it is easy to tell what method you are looking at, however since there is no comments in the code, I found that often times the method was hard to follow easily. Also there were no private methods used in this system. However the instance variables were all named and used correctly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;H. Review the method design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The method design is good in that it implements only one task. However without any comments in the code I'm not sure if some of the longer methods could be cut down by making a method that could be shared between classes. However the methods have no side effects on the variables since each command has its own class which means the variables are independent of each other.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;I. Check for common look and feel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found that the coding in this system was uniform and there were no discrepancies in the format of coding used between authors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-5628298458124890444?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/5628298458124890444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/sys-rev.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/5628298458124890444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/5628298458124890444'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/sys-rev.html' title='Systems Review'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-7794538975136953941</id><published>2009-11-04T05:05:00.000-08:00</published><updated>2009-11-04T05:16:51.972-08:00</updated><title type='text'>Energetic data</title><content type='html'>&lt;span style="color: rgb(51, 204, 0);"&gt;Two is better than one:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In this assignment we worked in pairs on a command line interface that would retrieve specified data from a server and then print out the results.  I thought that working in pairs was a good experience as we were each able to offer each other different perspectives when it came to solving an error or figuring out the best way to implement code.  The tasks were initially divided in half with my partner taking the odds and myself taking the evens.  However towards the end (methods 9 and 10) my partner worked on ten while I worked on the interface.  So in the end I thought that the distribution of tasks was quite even.  Through this even distribution we were able to finish all of the given tasks and set up an interface for our classes.  Like I said before I liked working in pairs and I thought that it was a great learning experience.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;Problems:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As with all programming there is bound to be problems and probably lots of them at that.  In our case we ran into problems where our project in eclipse wasn't the project in the SVN folder, so we found ourselves constantly copying over code and files to keep SVN up to date.  The other problems that we ran into were a variety of pmd and findbug errors which were easily resolved after the problem was identified.  But probably our biggest hurdle was that after attempting to build an interface, my partners SVN stopped working.  This was a major set back as now I was the only one who was able to commit the changes, so towards the end all of her code was emailed to me, then put into the appropriate file and finally committed.  Lastly a problem that seemed to bug us a lot was how to implement a certain method.  However after discussing it would would find an agreeable way to create a method and one of us would put the ideal into code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-7794538975136953941?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/7794538975136953941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/energetic-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7794538975136953941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7794538975136953941'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/11/energetic-data.html' title='Energetic data'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-6185420268548826860</id><published>2009-10-30T18:30:00.000-07:00</published><updated>2009-10-30T18:39:44.663-07:00</updated><title type='text'>Continuous Integration</title><content type='html'>Continuous integration is an interesting tool that can be very helpful while developing software.  Continuous integration allows for your team to upload the latest versions of the code to a repository (in my case GoogleCode) and then have Hudson automatically build the system for you and notify you when the build is complete and if it failed or completed successfully. &lt;br /&gt;&lt;br /&gt;My initial impression of Hudson was that it was a nice way to automatically test your system.  I found that the interface was well set up and easy to use and that if continuously gave detailed information about who was currently building, what the queue to build was and information about failed and completed builds.  The only downside is that if the build failed there is no information on what caused the build to fail.  However, the build shouldn't fail as it is the user's responsibility to run such tests as ant -f verify.build.xml to ensure a passing build before committing the changes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-6185420268548826860?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/6185420268548826860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/10/continuous-integration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/6185420268548826860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/6185420268548826860'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/10/continuous-integration.html' title='Continuous Integration'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-8865675574282570854</id><published>2009-10-18T21:34:00.000-07:00</published><updated>2009-10-21T00:20:43.234-07:00</updated><title type='text'>Midterm Review Questions</title><content type='html'>Here are some questions I thought would be helpful in reviewing for the midterm:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;1.  What is the difference between "white box" and "black box" testing?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Black Box: Design a set of test cases to see if inputs match the desired outputs.  Can also catch errors of omission. No access to source code required.&lt;br /&gt;White Box: Use of coverage tools (CheckStyle, ect) to find bugs.  Can catch code that has been writen.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;2.  Why is Subversion so helpful to software development?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Allows for multiple versions to be stored in a database.&lt;br /&gt;Supports optimistic locking and all files are available for check out so that multiple users can edit the same file at one time.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;3.  What is the purpose of Ant?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ant provides cross platform coverage tools that execute specific xml targets which performs a  white box testing of the specified code.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;4.  What does the task "ant -f verify.build.xml" do?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This command runs all available tools (CheckStyle, FindBugs, JUnit, ect) as well as the build.xml target and fails the build if one of the tools fails.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;5.  What is emma and what is its output?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Emma outputs statistics about which lines of code were executed and which ones were skipped.  Breaks down the statistics by package and source files.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;6.  What are the 3 prime directives?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1.  The system accomplishes a useful task.&lt;br /&gt;2.  An external user can successfully install and use the system.&lt;br /&gt;3.  An external developer can successfully understand and enhance the system.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;7.  What is the GNU project?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is a Linux based open source operating system which strives to function with open and non open source software.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;8.  What are the difference in implementation of automated and manual quality assurance?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Manual:  Actual writing of tests cases with JUnit, manually reviewing source code.&lt;br /&gt;Automated:  Uses coverage tools (CheckStyle, PMD, ect) to run tests on code.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;9.  How do you download someone else's code from Google Hosting?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Under the "Source" tab on Google Hosting you have two options:&lt;br /&gt;1.  You are part of the project so you checkout the https:// link to be able to work on and update the code.&lt;br /&gt;2.  You are not part of the project so you download the http:// link in order to view and modify the code but not be able to update the actual hosted code.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;10.  Write the FizzBuzz program.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="snipplr_embed_19045" class="snipplr_embed"&gt;&lt;a href="http://snipplr.com/view/19045/fizzbuzz/"&gt;Code snippet - FizzBuzz&lt;/a&gt; on Snipplr&lt;/div&gt;&lt;script type="text/javascript" src="http://snipplr.com/js/embed.js"&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://snipplr.com/json/19045"&gt;&lt;/script&gt;&lt;br /&gt;&lt;span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-8865675574282570854?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/8865675574282570854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/10/midterm-review-questions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/8865675574282570854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/8865675574282570854'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/10/midterm-review-questions.html' title='Midterm Review Questions'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-2700377068347018595</id><published>2009-10-10T20:47:00.000-07:00</published><updated>2009-10-10T21:09:51.224-07:00</updated><title type='text'>Hosting and Subversion</title><content type='html'>I found that Google makes hosting open source projects extremely easy.  The hardest part of this assignment was actually learning how to get TortoiseSVN to upload my files to Google hosting.  However after that it was all downhill and fairly simple.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;Overall Results:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was able to complete this assignment with out omitting any steps.  I found that Google's user interface was very straight forth and easy to navigate and execute desired operations.  Also I liked how Google Code Hosting has all the project information on one webpage ranging from the Wiki pages to the code for the robot.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Difficulties:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found that it was hard to use TortoiseSVN to do the initial upload of files to Google Code Hosting.  After watching the screencast for the week I thought that TortoiseSVN would have a similar interface for uploading as SmartSVN.  However I found that there was so such interface and I had to fool around a little with TortoiseSVN until I finally figured out how to upload the files.  In order to upload in TortoiseSVN you follow the same basic steps as SmartSVN in that you create a new folder and copy and paste the files you want into it.  Then in TortoiseSVN you have to select the files and folders you want to upload (or the root directory would work too I think), right click and select the TortoiseSVN option.  Then you have to click "add" and select the files you would like to add to the project.  After that you can right click the root directory of the project and select the "SVN Commit..." button which will then proceed to as you to log in and then will upload all of your files to Google Code Hosting.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;BlackMagic Code Site:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The BlackMagic site can be found &lt;a href="http://code.google.com/p/robocode-smw-blackmagic/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-2700377068347018595?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/2700377068347018595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/10/hosting-and-subversion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/2700377068347018595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/2700377068347018595'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/10/hosting-and-subversion.html' title='Hosting and Subversion'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-3359092180105323718</id><published>2009-10-07T03:18:00.000-07:00</published><updated>2009-10-07T03:42:21.499-07:00</updated><title type='text'>Robotesting</title><content type='html'>Creating tests for my robot was actually quite a difficult process.  I ran into various problems which all revolved around me placing the test files in the wrong directory.  These were easily solved by placing the files in the correctly location.&lt;br /&gt;&lt;br /&gt;I created 2 acceptance tests, 1 behavioral test as well as 1 unit test.  For my acceptance tests I pit BlackMagic against SittingDuck and Crazy respectively.  For the behavioral test I made sure that my robot's first few moves are to the middle of the battlefield.  Lastly for my unit test I made sure that the targeting method for BlackMagic was correct.&lt;br /&gt;&lt;br /&gt;At first I found the tests hard to create as I have never done Junit testing before.  However as I created more tests I became more comfortable with it.  Unfortunately I was not able to reach the specified 6 tests due to the design BlackMagic.  Because BlackMagic moves in a random fashion it is nearly impossible to test it's movements.  Also the targeting is set to fire ahead of the enemy so it is hard to confirm that my bullets will hit every time.  Lastly BlackMagic is very simple and uses very few lines of code which made unit testing even harder.&lt;br /&gt;&lt;br /&gt;Considering that BlackMagic is such a random robot I believe that my tests were adequate enough to ensure the quality of my robot as I think that my tests covered almost all the possible inputs for my unit test and I ran multiple tests to confirm that my acceptance tests passed consistently (0% failure). &lt;br /&gt;&lt;br /&gt;As far as emma goes in my BlackMagic file I used 100% of the methods and classes, however I only used 94% of the blocks and 93% of the lines.  This was due to the fact that the lines specifying what to do if a enemy got too close were never executed.  As for the test files, all of them were at 100% for all categories.&lt;br /&gt;&lt;br /&gt;If I were to redesign BlackMagic to make it easier to test, I would change its movement from random to a pattern form and also I would add in a more extensive response for when an enemy hits BlackMagic.  This would allow for more methods to unit test as well as a more rounded robot.&lt;br /&gt;&lt;br /&gt;The current distribution for BlackMagic can be found &lt;a href="http://www2.hawaii.edu/%7Escottmw/robocode-smw-BlackMagic-1.1.1007.zip"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-3359092180105323718?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/3359092180105323718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/10/robotesting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/3359092180105323718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/3359092180105323718'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/10/robotesting.html' title='Robotesting'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-5682538096058450557</id><published>2009-09-28T01:24:00.000-07:00</published><updated>2009-09-30T16:51:05.043-07:00</updated><title type='text'>BlackMagic Ver. 1.1.930</title><content type='html'>The first step that I did to create Ver. 1.1 of the BlackMagic robot was to use a build system (Ant) to run tests and error check it.  I used the following commands to ensure my code was up to date and error free:&lt;br /&gt;&lt;br /&gt;ant -f checkstyle.build.xml&lt;br /&gt;ant -f pmd.build.xml&lt;br /&gt;ant -f findbugs.build.xml&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;CheckStyle:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;During my first run of CheckStyle I ran into the following errors:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Got an exception - java.lang.IllegalArgumentException: the name [date] is not a valid Javadoc tag name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Missing package-info.java file.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The 2nd error was easily fixed by copying and modifying the package.html into /src/smw from the DaCruzer package.&lt;br /&gt;&lt;br /&gt;After fixing that error I ran CheckStyle again and encountered the following errors on multiple occasions:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'{' is not preceded with whitespace.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Missing a Javadoc comment.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'while' is not followed by whitespace.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;First sentence should end with a period.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Unused @param tag for 'a'.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Expected @param tag for 'e'.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The spacing error and the Javadoc comment errors were easily taken care of.  The @param errors were taken care of by adding in the input variable name to the @param comment.  For example a method takes (onHitWall e) so the comment is too look like this @param e .... but my comments were formatted in the following way @param .... with out the variable name.&lt;br /&gt;&lt;br /&gt;After fixing these errors I ran CheckStyle again and had the following error remaining:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Missing package-info.java file.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This was easily fixed by adding in the overview.html file to /src.&lt;br /&gt;&lt;br /&gt;Upon running CheckStyle again I encountered no errors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;PMD:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Luckily PDM built with no errors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;FindBugs:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Just like PMD this target built with no errors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Improved Performance:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After loosing in the 2nd round of the Robocode tournament to a walls based robot and seeing how many robots were based on the walls model, I realized that I needed to integrate an anti-walls section to my robot.  However this was extremely hard to implement given BlackMagic's current movement scheme, so instead I added a method which increased my victory percentage against walls, but I was still unable to consistently beat walls.  My hope is that BlackMagic Ver. 1.1 will be able to beat other non-wall based robots more effectively.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Distribution:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;The latest version of BlackMagic can be found&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt; &lt;a href="http://www2.hawaii.edu/%7Escottmw/robocode-smw-BlackMagic-1.1.930.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-5682538096058450557?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/5682538096058450557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/blackmagic-ver-11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/5682538096058450557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/5682538096058450557'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/blackmagic-ver-11.html' title='BlackMagic Ver. 1.1.930'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-8781101711707453421</id><published>2009-09-21T01:50:00.000-07:00</published><updated>2009-09-21T02:26:06.780-07:00</updated><title type='text'>Competition Robot</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Design:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The design for this robot's movement is stemmed from a math error that I made while attempting another design.  At first I hoped the have the robot move to the top middle, then move down in a 45 degrees, turn around go back up and then go down the other side at a 45 degree angle, repeating this movement pattern until the end of the match.  However due to a math error, I found that I could make the robot's movement erratic, so I decided to keep this design.  The downside is that the robot will sometimes follow it's previous path, thus making it susceptible to being hit from shots that were fired behind it.&lt;br /&gt;&lt;br /&gt;The shooting design of this robot is meant to hit moving targets.  It seems that this robot is most accurate while making turns, however it does have an ability to hit targets on the run due to a change in turret's position.  When up close with the enemy, this robot will fire, move back, turn and fire again then continue moving around the battlefield.&lt;br /&gt;&lt;br /&gt;My robot named BlackMagic can be found &lt;a href="http://www2.hawaii.edu/%7Escottmw/smw.BlackMagic_1.0.jar"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Victory:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This robot can effectively beat the following sample robots: Corners, Fire, SittingDuck, Crazy, SpinBot and Tracker.  This is due to the fact that many of these are stationary, or the fact that the movement pattern of my robot is able to evade most of the shots fired and it was able to return fire with a high rate of success.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Defeat:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My robot is unable to reliably beat the following robots: Walls and RamFire.  It seems that walls moves too fast for my distance shots to be effective and also the when my robot repeats it's movements it literally runs into bullets fired by walls.  As for RamFire, my robot does not have an effective way to get out of being cornered by RamFire.  If the battle is kept in the middle of the field my robot usually can win.  However when the battle moves to the sides it usually gets trapped and RamFire is able to take advantage of that and finish off my robot.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;Lessons Learned:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After analyzing the battles, I realized that I need a more effective strategy to deal with robots that corner or force my robot to the edges, where they can do huge amounts of damage. Also I learned that an inconsistent movement really works in evading fire from the enemy, however retracing the route that the robot just executed could have disastrous results as it may run into bullets that were previously fired by an enemy robot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-8781101711707453421?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/8781101711707453421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/competition-robot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/8781101711707453421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/8781101711707453421'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/competition-robot.html' title='Competition Robot'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-4701537430768444773</id><published>2009-09-16T01:07:00.000-07:00</published><updated>2009-09-16T02:22:42.319-07:00</updated><title type='text'>Sample Code Analysis</title><content type='html'>To better understand the samples provided with the Robocode package, I will be analyzing 8 sample robots in the areas of movement, tracking and firing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Walls:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Movement:&lt;/span&gt;  Regardless of starting position this robot will always face the the nearest wall with the least angle movement to face the wall.  The robot will then head to that wall and move to the closest corner.  From there the robot will move clockwise around the walls of the arena.  If this robot hits another it will reverse, do a left turn then head to the nearest wall, move to the corner and continue moving along the walls.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Targeting:&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt; &lt;/span&gt; There is no targeting algorithm for this robot.  Simply if a robot is scanned this robot will open fire on it.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Firing:&lt;/span&gt;  The only criteria for firing is when a robot is scanned.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RamFire:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Movement:&lt;/span&gt;  Movement is determined by the enemy robot's position.  Once an enemy is scanned the RamFire will then move up to it and ram into it.  In the case that the robot has moved, RamFire will follow it.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Targeting:&lt;/span&gt;  The tank moves until it scans a robot then the gun is pointed at the enemy.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Firing:&lt;/span&gt;  Firing is initiated once the RamFire has rammed into the robot it is targeting.  Firing continues until the enemy moves.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SpinBot:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Movement:&lt;/span&gt;  SpinBot moves in circles continuously in one spot.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Targeting:&lt;/span&gt;  There is no targeting algorithm besides scanning.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Firing:&lt;/span&gt;  SpinBot fires when a enemy robot is scanned.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Crazy:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Movement:&lt;/span&gt;  This robot will move forward and turn right, but keep moving while making the right turn, then it will turn 180 degrees to the left while still moving, after that the robot makes a 180 degree right turn while moving.  This process is repeated forever.  When it hits a wall the direction is reversed.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Targeting:&lt;/span&gt;  There is no targeting algorithm besides scanning.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Firing:&lt;/span&gt;  Crazy fires when an enemy robot is scanned.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fire:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Movement:&lt;/span&gt;  This robot only moves when it is hit in which case it makes a right turn and moves 50 pixels the first time.  With each hit the amount moved decreases by 1 pixel.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Targeting:&lt;/span&gt;  There is no targeting algorithm besides scanning.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Firing:&lt;/span&gt;  If Fire has more than 50 energy and the enemy is less than 50 pixels away, the robot will fire at power 3, else it only fires at power 1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sitting Duck:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Movement:&lt;/span&gt;  This robot doesn't move.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Targeting:&lt;/span&gt;  This robot doesn't target other robots.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Firing:&lt;/span&gt;  This robot doesn't fire on enemy robots.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Corners:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Movement:&lt;/span&gt;  Regardless of the robots position, it will turn to face the north wall, go to the wall and make a left turn and move all the way to the top left corner.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Targeting:&lt;/span&gt;  There is no targeting algorithm besides scanning.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Firing:&lt;/span&gt;  Corners fires proportional to the distance of the enemy or current energy level.  In the first case if the enemy's distance is less than 200 or the energy level is greater than 15, the robot will fire at power one.  If the enemy robot's distance is less than 50 Corners will fire at power 2.  Otherwise the robot will fire at power 3.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tracker:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Movement:&lt;/span&gt;  Tracker's movement rate is determined by the enemy that it is tracking.  Once Tracker finds an enemy, it will move to 140 pixels of its position and either wait or fire on the enemy robot.  Also if the enemy is too close (within 100 pixels) Tracker will move back in the enemy has a position of less than -90 degrees and equal or less than 90 degrees.  Else it moves ahead 40 pixels.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Targeting:&lt;/span&gt;  Once the enemy is scanned the gun will move to face the enemy.  It will re-rotate every time Tracker is tracking an enemy.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Firing:&lt;/span&gt;  The gun will always fire at the power of 3.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I think that a lot of basic structures for movement and tracking can be learned from these sample robots.  I know while designing my robots I would often look to these sample robots to gain inspiration or to review and adapt algorithms that were used.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-4701537430768444773?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/4701537430768444773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/sample-code-analysis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4701537430768444773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4701537430768444773'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/sample-code-analysis.html' title='Sample Code Analysis'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-7907039202967359351</id><published>2009-09-12T18:31:00.001-07:00</published><updated>2009-09-13T21:44:38.766-07:00</updated><title type='text'>Robo Revisions</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Revisions:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reviewing other student's code allowed me to adapt more effective solutions to my robots especially the robot that needed to move to the center.  Now instead of going to the corner and then half way down the height and moving half way across the width, I now have a solution to move to the middle from any point.  As I suspected the Pythagorean Theory was the key, however I was unable to implement it correctly in my first try.  My modified robots jar file can be downloaded &lt;a href="http://www2.hawaii.edu/%7Escottmw/robocode-smichaelwong.jar"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Coding Standards:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Until now I only thought of coding standards as ways for me to better organize my own code for my own reference.  However now that we are reviewing other students code I realized that coding standards play a key role.  Without these standards understanding others code could have the potential to be a daunting task.  Also coding standards requires comments which further allows others to understand your methods and the coding in the main method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-7907039202967359351?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/7907039202967359351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/robo-revisions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7907039202967359351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/7907039202967359351'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/robo-revisions.html' title='Robo Revisions'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-1620672846906484594</id><published>2009-09-09T00:45:00.000-07:00</published><updated>2009-09-09T01:28:06.324-07:00</updated><title type='text'>Robowars!</title><content type='html'>In preparation for an all out robowar I have successfully created a series of 13 basic robots that outlined basic functions a serious robot should have such as tracking enemies, firing on enemies as well as basic movement behavior.  The coding for my robots can be found &lt;a href="http://www2.hawaii.edu/%7Escottmw/Robocode%5BSMW%5D.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The requirements for designing sample robots is as follows:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Movement01: The minimal robot.  Does absolutely nothing at all.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Movement02: Move forward a total of 50 pixels per turn.  If you hit a wall, reverse direction.&lt;/li&gt;&lt;li&gt;Movement03: Each turn, move forward a total of N pixels per turn, then  turn left.  N is initialized to 10, and increases by 10 per turn.&lt;/li&gt;&lt;li&gt;Movement04: Move to the center of the playing field and stop.&lt;/li&gt;&lt;li&gt;Movement05: Move to the upper left corner.  Then move to the lower right corner.  Then move to the upper right corner. Then move to the lower left corner.&lt;/li&gt;&lt;li&gt;Movement06: Move to the center, then move in a circle, ending up where you started.&lt;/li&gt;&lt;li&gt;Tracking01: Pick one enemy and follow them.&lt;/li&gt;&lt;li&gt;Tracking02: Pick one enemy and follow them, but stop if your robot gets within 20 pixels of them.&lt;/li&gt;&lt;li&gt;Tracking03: Each turn, Find the closest enemy, and move in the opposite direction by 100 pixels, then stop.&lt;/li&gt;&lt;li&gt;Firing01: Sit still.  Rotate gun.  When it is pointing at an enemy, fire.&lt;/li&gt;&lt;li&gt;Firing02: Sit still.  Pick one enemy.  Only fire your gun when it is pointing at the chosen enemy.&lt;/li&gt;&lt;li&gt;Firing03:  Sit still. Rotate gun.  When it is pointing at an enemy, use bullet power proportional to the distance of the enemy from you. The farther away the enemy, the less power your bullet should use (since far targets increase the odds that the bullet will miss). &lt;/li&gt;&lt;li&gt;Firing04: Sit still.  Pick one enemy and attempt to track it with your gun. In other words, try to have your gun always pointing at that enemy.  Don't fire (you don't want to kill it). &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Movement:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had no problems coding the first 3 movement robots and the onHitWall even made it really easy to program the second robot.  However the trouble came when I had to have the robot move to the center of the field (the 4th movement).  Immediately I suspected that some sort of triangulation via the Pythagorean Theorem however after numerous tries I was unable to figure out how to consistently triangulate the center so instead I had the robot move to the left top corner, move half way down the move half way in.  The next problem was with the 6th movement.  Using the previously mentioned I was able to get the robot to the center, however I had problems moving in a circle without using the AdvancedRobot methods, so instead I used a for loop and created a slow moving circle.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tracking:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was kind of lost when it came to the tracking methods, so I borrowed and modified code from the tracking.java sample robot from the Robocode files.  After reviewing and analyzing the code in order to understand it, tracking became easier to understand and it was easier to modify the code that I had borrowed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Firing:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Again like the tracking methods I was unsure of how to use the firing methods so I borrowed some code from the fire.java sample robot to get me started.  Just like the tracking robot I analyzed the code to understand it, then began to modify the coding appropriately.  The hardest part about the firing section robots was the Firing03 robot which required fire power proportional to the distance of the enemy.  The further away the less power was to be used.  In order to do this I took the max fire power for the robot (which happens to be 3) and then took 3% of the distance to the enemy and subtracted it from three thus creating the desired fire rates.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It took a while for me to understand the coding for tracking however once I got the hang of it things were a lot easier to code.  At first I thought there was a tracking method call, but I realized that robots automatically scan and that in order to track I needed to use the onScannedRobot method call.  Also I realized that geometry will play a huge part in creating a successful robot as geometry influences movement, firing and even tracking an enemy robot.  With that said I think its time for me to hit the books to review my geometry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-1620672846906484594?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/1620672846906484594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/robowars.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/1620672846906484594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/1620672846906484594'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/09/robowars.html' title='Robowars!'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-6230889059797644327</id><published>2009-08-30T22:19:00.000-07:00</published><updated>2009-10-21T00:18:19.371-07:00</updated><title type='text'>How to get a programming job</title><content type='html'>&lt;span style="font-family:arial;"&gt;The FizzBuzz program is used by some employers to test the programming abilities of the workers that they are attempting to hire.  FizzBuzz is a simple program that loops through numbers 1-100 and prints out "Fizz" if the number is a multiple of 3, "Buzz" if the number is a multiple of 5 and "FizzBuzz" if the number is a multiple of both 3 and 5.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ready, set, go!&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;The FizzBuzz program took me a total of 5 minutes to complete including the time it took to write comments.  Below is the code that I implemented:&lt;br /&gt;&lt;div id="snipplr_embed_19045" class="snipplr_embed"&gt;&lt;pre class="java java" style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;*FizzBuzz Program&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;*@author   Scott Wong&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;*@date     8/30/3009&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;*@bugs     none&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="kw1"&gt;public&lt;/span&gt; &lt;span class="kw1"&gt;class&lt;/span&gt; FizzBuzz&lt;span class="br0"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt; &lt;span class="kw1"&gt;public&lt;/span&gt; &lt;span class="kw1"&gt;static&lt;/span&gt; &lt;span class="kw4"&gt;void&lt;/span&gt; main&lt;span class="br0"&gt;(&lt;/span&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3Astring+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span class="kw3"&gt;String&lt;/span&gt;&lt;/a&gt; args&lt;span class="br0"&gt;[&lt;/span&gt;&lt;span class="br0"&gt;]&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;  &lt;span class="kw1"&gt;for&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span class="kw4"&gt;int&lt;/span&gt; i &lt;span class="sy0"&gt;=&lt;/span&gt; &lt;span class="nu0"&gt;1&lt;/span&gt;; i &lt;span class="sy0"&gt;&lt;=&lt;/span&gt; &lt;span class="nu0"&gt;100&lt;/span&gt;; i &lt;span class="sy0"&gt;++&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;   &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3Asystem+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span class="kw3"&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span class="me1"&gt;out&lt;/span&gt;.&lt;span class="me1"&gt;println&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt;check&lt;span class="br0"&gt;(&lt;/span&gt;i&lt;span class="br0"&gt;)&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;  &lt;span class="br0"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt; &lt;span class="br0"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt; &lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt; &lt;span class="co3"&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;  * Determines if the number is a "Fizz", "Buzz", "FizzBuzz" or just a number&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;  * @param the number to check&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;  * @return what the number is&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="co3"&gt;  */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt; &lt;span class="kw1"&gt;public&lt;/span&gt; &lt;span class="kw1"&gt;static&lt;/span&gt; string check&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span class="kw4"&gt;int&lt;/span&gt; x&lt;span class="br0"&gt;)&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;  &lt;span class="kw1"&gt;if&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt;i &lt;span class="sy0"&gt;%&lt;/span&gt; &lt;span class="nu0"&gt;15&lt;/span&gt; &lt;span class="sy0"&gt;==&lt;/span&gt; 0&lt;span class="br0"&gt;)&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;  &lt;span class="co1"&gt;//if the number is a multiple of both 5 and 3  &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;   &lt;span class="kw1"&gt;return&lt;/span&gt; &lt;span class="st0"&gt;"FizzBuzz"&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;  &lt;span class="br0"&gt;}&lt;/span&gt;&lt;span class="kw1"&gt;else&lt;/span&gt; &lt;span class="kw1"&gt;if&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt;i &lt;span class="sy0"&gt;%&lt;/span&gt; &lt;span class="nu0"&gt;3&lt;/span&gt; &lt;span class="sy0"&gt;==&lt;/span&gt; 0&lt;span class="br0"&gt;)&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;  &lt;span class="co1"&gt;//if the number is a multiple of 3&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;   &lt;span class="kw1"&gt;return&lt;/span&gt; &lt;span class="st0"&gt;"Fizz"&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;  &lt;span class="br0"&gt;}&lt;/span&gt;&lt;span class="kw1"&gt;else&lt;/span&gt; &lt;span class="kw1"&gt;if&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt;i &lt;span class="sy0"&gt;%&lt;/span&gt; &lt;span class="nu0"&gt;5&lt;/span&gt; &lt;span class="sy0"&gt;==&lt;/span&gt; 0&lt;span class="br0"&gt;)&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;  &lt;span class="co1"&gt;//if the number is a multiple of 5&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;   &lt;span class="kw1"&gt;return&lt;/span&gt; &lt;span class="st0"&gt;"Buzz"&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;  &lt;span class="br0"&gt;}&lt;/span&gt;&lt;span class="kw1"&gt;else&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;  &lt;span class="co1"&gt;//else print out the current number&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;   &lt;span class="kw1"&gt;return&lt;/span&gt; &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=allinurl%3Ainteger+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky"&gt;&lt;span class="kw3"&gt;Integer&lt;/span&gt;&lt;/a&gt;.&lt;span class="me1"&gt;toString&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt;i&lt;span class="br0"&gt;)&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;  &lt;span class="br0"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt; &lt;span class="br0"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="br0"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;script type="text/javascript" src="http://snipplr.com/js/embed.js"&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://snipplr.com/json/19045"&gt;&lt;/script&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Errors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Unfortunately I ran into errors with Eclipse during this project.  It started with Eclipse taking close to 2 minutes to open and eventually to its current state where it will not even boot up.  Because I had no time to spare while doing this project I hastily tried uninstalling and reinstalling Eclipse with no change in its behavior so I turned to the next best thing and used a program called Notepad ++ to code my FizzBuzz.  While this is a lot harder than using a compiler as it does not correct your coding should there be an error, it is manageable with such a small program as this one.  I will continue to work on solving this problem and hopefully will have Eclipse up and running again by the end of tonight. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;Lessons learned&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Through this experience I have learned that there is no substitute for a good compiler as it makes coding and testing a java file easier since the compiler will tell you when you have an error in your code and you can also test the file in the compiler instead of using the command line. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-6230889059797644327?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/6230889059797644327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/08/how-to-get-programming-job.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/6230889059797644327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/6230889059797644327'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/08/how-to-get-programming-job.html' title='How to get a programming job'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6616190461606852457.post-4047672132821644408</id><published>2009-08-30T21:30:00.000-07:00</published><updated>2009-08-30T22:18:12.291-07:00</updated><title type='text'>Surfing with Dooble</title><content type='html'>&lt;span style="font-family:arial;"&gt;Dooble is an open source web browser available through sourceforge.net (&lt;a href="http://sourceforge.net/projects/dooble/"&gt;http://sourceforge.net/projects/dooble/&lt;/a&gt;) or at Dooble's website (&lt;a href="http://dooble.sourceforge.net/"&gt;http://dooble.sourceforge.net/&lt;/a&gt;).  According to the description of the program Dooble focuses on user privacy and security and comes with a instant messaging program as well as an email program.  However with this strong focus on security, is this web browser still able to meet the 3 prime directives?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System Functionality?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first directive asks if the program was about to accomplish a useful task.  After testing Dooble on a variety of websites containing different I am somewhat disappointed with its performance.  Dooble has no problem surfing regular websites such as google or gamespot, however the problems start when Dooble attempts to navigate to secured sites.  As an example I attempted to connect to paypal's web site, but Dooble will not display the page stating it has run into a network error.  I then tried to connect to my bank's website but got the same error.  So it seems that Dooble is unable to connect to sites that have security certificates, which I find ironic since this browser stresses security.  I also ran into problems while attempting to play flash files.  It seems that Dooble does not support Adobe Flash which means that watching online content such as TV episodes is not possible with this browser.  Overall I enjoyed this browser while just surfing, but when it comes down to it, I would not be able to use this browser as it does not support secured websites as well as Adobe's Flash Player.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ease of setup?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The second directive asks if a user can successfully install and use the system.  Dooble successfully meets this directive from download to the actual running of the browser.  Downloading from sourceforge was easy, the installation was simple and only asked where to install the program and the running of the program was simple, fast and easy.  The only issue I would have with the installation is that the default installation location is not defaulted like most programs to C:\Program Files but instead is defaulted to the user's account, so in my case C:\Users\Scott Wong.  This is a minor inconvenience if I wanted to access or edit the files as I am used to looking in C:\Program Files for the installed files.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Want to help develop Dooble?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The third directive asks if an external developer can successfully understand and enhance the system.  This area is unfortunately another area in which Dooble runs into problems.  While looking through the Dooble source code I noted two things.  First of all the coding format itself is very neat and organized with appropriate indenting and spacing which made the code easy to read and follow.  However the second thing I noticed was that the source code had almost no comments in most source code files or had sporadic commenting in other source code files.  This is disappointing since my ICS teachers have always stressed the use of comments to allow others to understand my code.  This also made the code hard to follow as I was unsure of what most of the code was trying to accomplish.  Perhaps someone with a history of software development would be able to understand the code without comments, but seeing as I lack that experience I feel that this system does not meet the third directive.&lt;br /&gt;&lt;br /&gt;To sum things up Dooble is a great way to surf the web if you have no intention of accessing secured sites or watching flash web content.  The ease of downloading, installing and running Dooble enhances the experience and is a definite plus.  However I believe that it will be a long and hard process if you intend to edit the source code as the lack of comments might leave you wondering what function you are really editing.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6616190461606852457-4047672132821644408?l=smichaelwong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://smichaelwong.blogspot.com/feeds/4047672132821644408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://smichaelwong.blogspot.com/2009/08/surfing-with-dooble.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4047672132821644408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6616190461606852457/posts/default/4047672132821644408'/><link rel='alternate' type='text/html' href='http://smichaelwong.blogspot.com/2009/08/surfing-with-dooble.html' title='Surfing with Dooble'/><author><name>Scott Wong</name><uri>http://www.blogger.com/profile/08576356799919846636</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
