Wednesday, August 31, 2011

An Analysis of the FizzBuzz Implementation

FizzBuzz should be a pretty simple implementation for computer science graduates right? A program that outputs number 1 thorugh 100, printing only "Fizz" when the number is multiple of 3, "Buzz" when it is multiple of 5, and "FizzBuzz" when the number is multiple of 15. Simple enough, but I was told by a professor during a class that most employee when they are recruiting, they ask the applicants to implement the FizzBuzz program. Should not be that hard right? Surprinsingly, my professor furiously told us that most of the applicant failed to implement the program. I was surprised. Then he assigned us to write the program.

Below here is the FizzBuzz program I wrote in Java.


I time myself and it took me around 8 minutes to write it. I was being a newbie, because I tried to put the for loop inside the method which will might not return any value if all of the statements were false. That was my mistake and it took me a couple of minutes to figure it out. Other than that, I am pretty much comfortable with eclipse cause I have used it since my very first Java programming class
I guess if a programmer knows how to program, but have not touch or used a program for a long time, then he/she might run into some problems as me when coding again. Learning new languages program takes time and some motivation. Also, it requires for the programmer to be able to keep up with program as new updates and features are developed so fast that it is easy to fall behind.

Monday, August 29, 2011

Open Source Software and the Three Prime Directives

Software: Sweet Home 3D


Overview.
Sweet Home 3D is a java simulation for interior design of houses in which the user can place furniture in a 2D plan with a 3D preview. Intended for new users that wants to learn more about interior design or for architects who wants to model "simulated" houses.
The software is written in Java with a Java Swing interface. Developed by Emmanuel Pyubaret in 2006, it has since then became a widely popular-free open source software that has been updated very often (Latest version 3.3 - July 26, 2011).

Prime Directive # 1: The system successfully accomplishes a useful task.
Users can find as many as other interior design software, paid or free. However, Sweet Home 3D can accomplishes the tasks that a newbie user wants. Having a 2D plan on the top right, a 3D preview plan on the bottom right, and a catalog of furniture on the top left side, makes the use of the software pain-free (but I would say not that very straightforward) for the users. Users can create walls, rooms, take a picture or make video of the 3D preview plan, etc.
Sweet Home 3D does not have the luxuries of tasks that other paid 3D interior design software have, but it is worth a try.


Prime Directive # 2: An external user can successfully install and use the system.
Easy to download, and comes with an .exe file which is pretty straightforward to install the software. Developed for Windows, OS X and Linux;  therefore pretty much any user can run it. Users also can look up for the User's guide online in which detailed instructions for the installation and the use of the software are provided. 
The use of the software can take some time for new users to be comfortable with it. After that, users will just leave it to their imagination to create new simulated houses. 


Prime Directive # 3: An external developer can successfully understand and enhance the system.
Looking the Developer's guide and the documentation of the software, it is extremely organized and kind of easy to read. It has a nicely drawn picture of the UML model which describes all the 20 classes used to create the Sweet Home 3D software.
Developers can create plug-ins using the packages available which allows them to use any of the Home Sweet 3D features without modifying the source files of the most current version. A developer who is comfortable using Java, reading and going through the documentation should not be hard, but eventually will consume a lot of time.  
The documentation of Home Sweet 3D can be found here: http://www.sweethome3d.com/javadoc/index.html.



Links: