Tuesday, August 30, 2011

FizzBuzz Experience

            Before I took ICS 211 I initially used Textpad to implement Java codes, but everything changed when I attended ICS 211. On the first day of class my professor introduced Eclipse to the whole class, which I had doubts about being easier than Textpad. Initially, it took me a while to get used to such a new environment to implement code. Fortunately, with the help of the tutorials and Internet I got used to using Eclipse to implement my Java codes.

            For this particular assignment the time to implement the code didn't take much time. The implementation only took me about 2 minutes. The most time I took was thinking up meaningful variable/method names. My intention was to give the variables/methods a name that is short and unique (non-repetitive names). The time it took me to implement the whole FizzBuzz code was about 5 minutes 20 seconds.
           
After I have implemented the code I wanted to try something new to test out my code. Usually I would execute the code and review the output to check if it matches the requirements. For this particular code I tried out the feature called JUnit to perform testing on whether the code contains any errors. Initially, the hard part about JUnit was figuring out how to get the code to run. Therefore, I referred to the Help Contents and searched online for examples on how to execute a code with JUnit.

Overall, this assignment gave me the experience of using an alternative method to test my program than using the traditional method (e.g. console output). For example, this time I used JUnit to perform couple test cases to ensure the program prints what I would expect based on the requirements. I also learned that implementing a code is not all about being fast, most important thing is making sure everything (e.g. syntax) is implemented correctly.







Friday, August 26, 2011

Sweet Home 3D: a free interior design software


             As hardware improves, software also improves to meet the standards of what the general public wants. This is why developers have developed many software suitable for both professional (e.g. fashion designers), and general public users. Open source projects have also contributed to producing software for both types of users to use either at home or at work. This software called Sweet Home 3D is an example of an open source project that both types of users can use.

            Sweet Home 3D is an interior design software, written in Java, that allows one to create a plan for a potential dream interior design of one’s home or work office. In this software a user can draw out a plan or scan in a blue-print and then perform all of the necessary modifications the plan needs. All it requires is the person’s imagination to create a beautiful, glamorous-looking design that may one day come to fruition.

            The software looks simple base on the interface, but is it successful? In a human computer interaction perspective, the software is successful if the design must meet the requirements of the usability goals. The goals include effectiveness, efficiency, safety, utility, learnability, and memorability. In software developer’s perspective, a software is successful if it meets The Three Prime Directives. The directives applies not only to published software, it also applies to open source software found on sites such as sourceforge.

Prime Directive 1:
            Sweet Home 3D allow users to perform the basic task of drawing out spaces for rooms, add boundaries (e.g. walls or dimensions of the land), add background, modify wall colors, object textures and sizes, and many other tasks. One useful feature of this software is the viewing option. Users can select between an aerial view and a virtual view. In aerial view, users views the design from a top view and are able move the plan around with the cursor. Virtual view allows users to view design just as they are touring a site. Difference between the two views can be seen as being transported from one dimension to another.

Prime Directive 2:
            After the software is downloaded it only takes less than a couple minutes to installed the software. If the user wants to consult for specifications, they can log on to http://sourceforge.net/projects/sweethome3d/ or http://www.sweethome3d.com/index.jsp (software’s parent website). The software’s parent website contains a link to a users’ guide allowing first time users to get a clue of how to use the software’s features. If the user unfortunately runs into a problem during installation or usage of the program they can report it under the support section on the parent website.

Prime Directive 3:
            I was able to locate the documentation specifying which Java structure were used to create the software and its plug-ins. Unfortunately I wasn’t able to locate the original code of the software. The structure of this software is based on using Java Applet and Java Swing. The documentation can be found at this website http://sourceforge.net/projects/sweethome3d/files/SweetHome3D-source/SweetHome3D-3.3-src/SweetHome3D-3.3-javadoc.zip/download?_test=crossmerch



NOTE: The software can be downloaded at either of the following websites. http://sourceforge.net/projects/sweethome3d/  or http://www.sweethome3d.com/index.jsp