Looking up Ant tutorials, I came across this picture. O'Reilly, being famous for having animals in their books, decided to use a lizard instead of an ant for Ant. I guess it proves they pick animals at random and print the books.
Using Ant, I saw how easy it was to deploy development source code on different systems. Being a build system, Ant serves this purpose very well. Since Ant is separate from any IDE, it makes open source projects at lot less painful to work with since distribution is standardized and removes human error. It even verifies the build for you and it is a script you could switch out. Build systems like Ant will also fill in the holes for you by downloading missing libraries.
Most of the commands available to me were simple and easy to master. It's versatility knows no bounds, because it has a command to create zip files by itself. It is also possible to create a new directory with the zip command by itself, where other commands would give me if I tried the same. Ant also allows me to create my own commands which I can use to do specific actions on my build, such as creating a lighter version of my build. The dependencies are very convenient and is more open than extend in Java since it allows multiple targets.
Although, I find the interchanging between "name" and "dir" disorienting whenever I create a target or directory. Despite the fact that Eclipse claimed it has Ant supported, it seemed like it was never fully thought out. It took me a while to enable Ant formatting before I decided to restart Eclipse for it to recognize it as an Ant file.
Thursday, September 29, 2011
Tuesday, September 20, 2011
Robocode
Writing robocode was not as exciting as I had hoped it would be. Rather, I found that having a strong background in trigonometry would help immensely. At the very least, was pretty neat that I could design my own robot and have them fight each other.
For some of the uninitiated, robocode was a program originally created by IBM and was later dropped by them and became an open source project. Over the years it created a fan base that programmed robots and even held competitions for it.
I was not able to complete all the assignments which was to implement simple robot behaviors. They were named according to what their behavior was supposed to be. The only ones that still remained were boom02-04 and position05. Again it was my having a weak background in trigonometry that held me back. I spent many days on position04 alone refining the trigonometric calculation so it would give me the correct direction towards the center. Even then it still took detours despite that it was heading in the wrong direction. I felt I could use what I learned from position04 for position05. I was somewhat wrong as I had to account for my robot running into the wall. When I fixed that, I realized I should have gotten a clarification on whether it should be exactly in the corner or near there. At the moment, I have it ramming the wall and reversing to turn a few degrees just like Austin Powers. Boom02-04 all depended on each other and since I could not do boom02, I was not able to complete the rest. Even though there were less trigonometry, I still found it hard to tell my robot when to stop turning its gun.
I learned that robots were very obedient, if somewhat frustrating in that it was completely obedient. Everything about robocode had to be overly specific, with all contingencies covered. Without this exact specific behavioral programming, the robots tend to either die and mislead you or seem to have developed a mind of its own.
Having a set of code katas helped in refining the robot's behavior, but rather they helped in getting my feet wet. Generally, code katas are good practice. Knowing that I spent time practicing this kind of thing gives me confidence in myself, which is important when people start to ask questions. Unfortunately, even with this, I still do not have any ideas or plans on how to create a competitive robot yet. I am not a very creative person.
For some of the uninitiated, robocode was a program originally created by IBM and was later dropped by them and became an open source project. Over the years it created a fan base that programmed robots and even held competitions for it.
I was not able to complete all the assignments which was to implement simple robot behaviors. They were named according to what their behavior was supposed to be. The only ones that still remained were boom02-04 and position05. Again it was my having a weak background in trigonometry that held me back. I spent many days on position04 alone refining the trigonometric calculation so it would give me the correct direction towards the center. Even then it still took detours despite that it was heading in the wrong direction. I felt I could use what I learned from position04 for position05. I was somewhat wrong as I had to account for my robot running into the wall. When I fixed that, I realized I should have gotten a clarification on whether it should be exactly in the corner or near there. At the moment, I have it ramming the wall and reversing to turn a few degrees just like Austin Powers. Boom02-04 all depended on each other and since I could not do boom02, I was not able to complete the rest. Even though there were less trigonometry, I still found it hard to tell my robot when to stop turning its gun.
I learned that robots were very obedient, if somewhat frustrating in that it was completely obedient. Everything about robocode had to be overly specific, with all contingencies covered. Without this exact specific behavioral programming, the robots tend to either die and mislead you or seem to have developed a mind of its own.
Having a set of code katas helped in refining the robot's behavior, but rather they helped in getting my feet wet. Generally, code katas are good practice. Knowing that I spent time practicing this kind of thing gives me confidence in myself, which is important when people start to ask questions. Unfortunately, even with this, I still do not have any ideas or plans on how to create a competitive robot yet. I am not a very creative person.
Wednesday, August 31, 2011
FizzBuzz
Creating this program took me 5:36. I've noticed that I had a hard time imagining the output in my head. I spent too much time making sure my formatting and indents were correct. I actually finished writing the program at around 3:00, but it was wrong when I checked. Before I started writing again, I thought about how I should implement it by writing it on paper. It helps me to think. Before getting into the habit of stopping, I spent a lot of time thinking about how my method would work if I implemented it a certain way and not writing it down. I traced it in my head and I never got to do any actual coding or whenever I did, it was haphazardly.
Frankly, I have not learned anything new from this assignment or this class relating to software engineering. What I've learned so far is how to make myself look good instead of making good programs, which is pretty important, but it's not something that I believe I should spend class time on. Looking at the readings,specifically those related to fizzbuzz, I am lead to believe that being able to write a simple working program within a certain time limit gauges the quality of programmers. Doing this fizzbuzz exercise tells me that I am not cut out to be a software engineer how I am right now.
Sunday, August 28, 2011
GFP - Personal Finance Manager 0.8.1
The art of financial security is not taught to anyone while they are growing up. When they finally become independent, matters concerning their financial health are severely crippled by their lack of skill in managing their finances. There is an industry centered around this financial mismanagement that can be costly to the user. Fortunately, there are programs that can do the same work, but for free.
GFP is an open-source program written in Java with a GUI provided by Java's swing library. Since the program is using strictly it's own library and Java's, it is platform independent. The purpose of GFP is to provide help on managing finances to users with limited financial knowledge and ability. Using a limited number of input fields, much of the work is done by GFP in creating readable financial spreadsheets. Even though it was last modified in 2007, GFP still receives many hits and downloads.
GFP can be downloaded from: http://sourceforge.net/projects/gfd/
For a program to be classified as an open source software, the following prime directives must be fulfilled. More information on these prime directives can be found on this page.
Prime Directive 1: The system successfully accomplishes a useful task.
GFP successfully fulfills this prime directive.
GFP provides users an easy-to-use financial manager to manager their banks, assets, and credit cards. Included among these features are report and chart generation.
Prime Directive 2: An external user can successfully install and use the system.
GFP successfully fulfills this prime directive.
Download and installation was very simple for a non-developer. Starting up the program is also relatively simple, as the user is first prompted to input their country and language, then to select their account book. While it is not immediately obvious that the user should set up their account information first before they can start using GFP, data entry was very simple to input as all buttons are labeled or have descriptive icons. A step-by-step guide on how to use the features is located on the top bar labeled help.
Prime Directive 3: An external developer can successfully understand and enhance the system.
GFP does not fulfill this prime directive.
The source code for the latest release is provided here. There is lack of a readme file that details the contents. Documentation is not provided anywhere. The code is formatted correctly and have proper indentation. Looking at the source code itself, it is formatted properly and similar functions are in their own classes.. The source code is in Portuguese, which makes it harder for anyone who doesn't read the language to work on it.
GFP is an open-source program written in Java with a GUI provided by Java's swing library. Since the program is using strictly it's own library and Java's, it is platform independent. The purpose of GFP is to provide help on managing finances to users with limited financial knowledge and ability. Using a limited number of input fields, much of the work is done by GFP in creating readable financial spreadsheets. Even though it was last modified in 2007, GFP still receives many hits and downloads.
GFP can be downloaded from: http://sourceforge.net/projects/gfd/
![]() |
| Screenshot of GFP's GUI |
For a program to be classified as an open source software, the following prime directives must be fulfilled. More information on these prime directives can be found on this page.
Prime Directive 1: The system successfully accomplishes a useful task.
GFP successfully fulfills this prime directive.
GFP provides users an easy-to-use financial manager to manager their banks, assets, and credit cards. Included among these features are report and chart generation.
Prime Directive 2: An external user can successfully install and use the system.
GFP successfully fulfills this prime directive.
Download and installation was very simple for a non-developer. Starting up the program is also relatively simple, as the user is first prompted to input their country and language, then to select their account book. While it is not immediately obvious that the user should set up their account information first before they can start using GFP, data entry was very simple to input as all buttons are labeled or have descriptive icons. A step-by-step guide on how to use the features is located on the top bar labeled help.
Prime Directive 3: An external developer can successfully understand and enhance the system.
GFP does not fulfill this prime directive.
The source code for the latest release is provided here. There is lack of a readme file that details the contents. Documentation is not provided anywhere. The code is formatted correctly and have proper indentation. Looking at the source code itself, it is formatted properly and similar functions are in their own classes.. The source code is in Portuguese, which makes it harder for anyone who doesn't read the language to work on it.
Subscribe to:
Posts (Atom)

