Tuesday, October 13, 2009

A Gaggle of Google: Google Projects and Subversion

After all this time with our robocode robot, learning, creating, and refining, we have yet to find a way to get our project up and available for everyone, until now. The other day our ICS413 Software Engineering class was exposed to Google Projects, a Google hosting area that’s part of the Google code area of Google.com. With the inclusion of this and Google Groups as a means to discuss our project that brings our Google total up to 5: Google Mail, Blogger, Google sites, Google Projects, and Google Groups. With this gaggle of Google set up we dive into projects and a way of making group work smooth and consistent.

Google Projects keys in one major factor, the ability to download and upload files to a location through a system of organization that will let multiple people do work on a project at the same time. For the class we have been exposed to the organization system known as Subversion (also known as SVN), a system which keeps an up to date file in a central location and has the designers download and modify copies of the file and update them back to the central point. Prior to this the process of obtaining, modifying, and testing other people’s code was rather difficult, with preferences, necessary files, and directories for files getting thrown all over the place. With Subversion and Google Projects we can supply a version that works in an easy to find location and work on it from there and then update it easily.

The only necessary add on for our work (besides the other things we’ve used for robocode like ant, junit, etc.) is a Subversion client, or in my case TortoiseSVN, an integrated Subversion system for Windows (adding itself to the context menus directly). After a bit of issues obtaining the download from within the confines of class (imagine 1 wireless network connection split amongst 20 different people all trying to download the same file) and a faulty installation, I was able to successfully integrate SVN to my system to use for my own projects.

As a way to test out the ability to create a repository on Google Projects for our work we were asked to make our Robocode robot available there. A little trouble with Google logging me out of its site (that day Gmail and several of the Google website functions were having loading issues) but soon I had a project site set up (which can be found here) for GunAryos complete with access to its source code and a guide on how to download it for use or modification. The process itself wasn’t too difficult on its own, but the constant network troubles while on the University campus resulted in minor frustrations.

After the creation of the Project we were instructed to add a Google Group (which can be found here), a location where contributors could provide discussion for the project and where they could be updated about changes made by other people. Creating the group was simple, but getting the Google Group and the Project to send emails was a slight hassle, as confirming its functionality was met with time delays and setting issues. After setting the project site to send updates to the group mail, there were tense moments waiting for the group mail to post the news and for the group to distribute information, but other than the momentary wait it went off without a hitch.

Experimentation seems to be a key in our field of study. With this task there were many times when things just didn’t seem to work out how it was intended, whether it was our error or not. Install issues happen and when they do you just have to figure out what the problem is and work it out. Experimentation helps form the strong experience needed to work with the program when you need to know what to do. For TortoiseSVN, a simple install error can make functionality awful, and with Google, a bad traffic our can make a simple task take a long time. Working things out at a good pace is always important to getting what needs to be done, done correctly.

With the knowledge of project hosting now in our grasp, it’s another step taken to producing work at the level of professional (or at least a serious open source project). We now have a valuable tool towards group work which is sure to be a key element when we start working on group projects. After all, there is no big project that can be done with one person alone. Soon, and for the first time as a student, we might be able to see the kind of creative power is possible when people work together on a programming project.

Google Discussion Group for GunAryos Project : http://groups.google.com/group/robocode-kjd-gunaryos-discuss/
Google Project for GunAryos : http://code.google.com/p/robocode-kjd-gunaryos/

No comments:

Post a Comment