Saturday, August 29, 2009

The Three Prime Directives for Open Source Software Engineering

In today's post, I will talk about my experience using a Java application that I found on SourceForge. Open-source software developers use SourceForge to host their applications, and this website hosts many different varieties of software (e.g., games, file management utilities, and even screen savers).

I took a look at a file management application called Data Crow, which was written by Robert Jan van der Waals, a Dutchman.

Data Crow
Installing this program was easy; in Mac OS X, I just downloaded the zip file, double-clicked it, and then double-clicked the jar file that was extracted, and then the installer was executed. After following the steps for installing Data Crow, I was presented with the pop-up window in Figure 1 when I opened it.

Figure 1. Selecting an experience level (beginner or expert)

I like how applications have two types of modes, particularly beginner and expert modes. This kind of design gives users like me, who never used file management programs before to organize media like photographs and music, a chance to play around with the program. Fortunately, the interface is very intuitive, as one can see in Figure 2.

Figure 2. The user interface

I used the Item Wizard to guide me through the process of adding an audio CD that I wished I owned to Data Crow. In Figure 3, I typed the name "SNSD" (which is a Korean pop girl band) and clicked on Find to look up information about them on Amazon's website (e.g., the year that this group's most recent CD was released). The results of that search are also listed in that figure.

Figure 3. Finding information about SNSD on Amazon using the Item Wizard

In Figure 4, one can see that the information found from the search for SNSD are inserted into the appropriate text boxes in Step 2 of the Item Wizard.

Figure 4. The Title, Artists, and Description text boxes are automatically filled out using the Item Wizard

Finally, after finishing the Item Wizard for SNSD, I performed another search, this time for Tim McGraw (I am also a country music fan). After adding information about him and his CD (Southern Voice) to Data Crow, I clicked on Audio CDs in the Modules area on the left-hand side of the program and was presented with a neat hierarchical structure, which is shown in Figure 5 to the right of the Modules area. I clicked on Country in that structure, and the picture that is used on the cover of CD cases along with information about that particular album were displayed; see Figure 5.

Figure 5. Information about Tim McGraw's album is shown

Prime Directive #1
This prime directive states that "the system successfully accomplishes a useful task." Data Crow certainly does. If I were to organize the millions of audio CDs that I own (yeah, right), this program would suffice: my CD collection would be arranged such that I can click on a genre and then scroll down to view each artist's album that fits into that genre. Data such as title, description, year, rating, and website from which Data Crow used to gather the information along with the cover art are definitely important things to include when organizing a collection, and this program certainly did what it was designed to do by providing them to the user in a readable, organized fashion.

Prime Directive #2
The second prime directive for open-source software engineering mentions that "an external user can successfully install and use the system." I mentioned earlier that installing Data Crow was extremely easy to do; it was all a matter of unzipping and unpacking files, and running the installer. As far as user documentation is concerned, the help file can be found within the program itself. The topics are arranged in a hierarchical structure similar to the way genres were displayed in Figure 5. Included with each topic are subtopics, summaries, screen shots, and step-by-step instructions on how to do things, like how to create a new item. In Figure 6, for instance, the grouping pane is described, a brief summary is given, and a screen shot is provided that helps explain its purpose in this application.

Figure 6. Information about the grouping pane is described in the help file

Prime Directive #3
Finally, the last prime directive states: "an external developer can successfully understand and enhance the system." Van der Waals wrote that Data Crow is free software; he invited people to redistribute/modify the code in his program and mentioned that he included the GNU Public License with it. (Actually, I did not see it in the main or readme directories for the program, but he did link to the one on the Free Software Foundation's website just in case.) In the readme directory, he included a text file called tasklist that lists the features that he implemented and also the ones that he would like to add later in the future. By looking at this file, an external developer could generate some ideas of his or her own as to what he or she wants to do with Data Crow, or he or she could simply implement those features for van der Waals and save him the trouble of creating them himself.

Before I forget, I want to mention that I just found out that although I initially used Data Crow in Mac OS X to import SNSD's and Tim McGraw's albums, when I opened that same program in Windows Vista, I can still see my audio CD collection. (To run Data Crow in the latter operating system, double-click on the exe file; in Mac OS X, double-click on the jar file. At first, I thought that the separate files were separate instances or versions of the program.) It is definitely a good idea to code an application in a cross-platform programming language like Java because I could take this program with me on my USB thumb drive wherever I go, plug it into any computer that has version 5.0 or higher of Java installed, and still see and work on my data.

Maybe I should organize my CD collection after all; I cannot remember the name of this one album by George Strait that I have...

--BJ Peter DeLaCruz


Post a Comment