Monday Mar 01, 2010

Radio Propagation Simulator on the NetBeans Platform

RaPSor is a simulator of radio propagation channels, based on more than 10 years of research. It is used both in research and for educational purpose at the University of Poitiers in France. Go to the RaPSor site on SourceForge and you will learn that one of RaPSor's main advantages is "its extensibility, allowing anyone to add new geometric primitives, new simulation algorithms, new usage of simulation results, or new kinds of antennas".

Here are some screenshots I took after installing this cool application and opening one of the "scene" files (an XML format) included in the download:

With the mouse, I was able to move around the scene, which is available in 2D, as well as 3D format:

And why was the NetBeans Platform chosen as the starting point of this application? The PDF available on the SourceForge site is quite explicit:

"RaPSor ought to be an extensible, modular, and open-source tool. For portability, we chose the Java programing language, leading to an application running on many architectures and systems, like Unix, Linux, Windows or MacOs. In order to concentrate developers efforts on the business work, we first chose a Rich Client Platform (a.k.a. RCP). Due to the educational aspects of this project, we chose to work with NetBeans RCP, since our students have some courses with it.

Such a platform provides all the redundant programming tools and methods that any developer should write in their application, such as the file and window management, connecting actions to menu items, toolbars... NetBeans RCP comes with many functionalities and provides a reliable and flexible application architecture. Its modularity allows to select the functionalities a developer wants to keep and allows even the users to add or remove new or unnecessary tools. Moreover, users can write new tools, or plugins, using either the NetBeans IDE or another IDE, adding the new tools later into RaPSor."

The NetBeans Lookup API, which enables modules to be decoupled from each other, is also referred to repeatedly in the document. You can read the whole PDF by clicking here (or, if the PDF moves sometime in the future, just go to the RaPSor site on SourceForge).

Plasmid Microarray Designer on the NetBeans Platform

PLASMID is a tool for designing plasmid microarrays by using existing mixed microarray data or using virtual microarray data. PLASMID combines clustering methods, probe ranking methods, and stepwise discriminant analysis to aid in the design of optimized, mixed-plasmid microarrays. These microarrays can be used subsequently for classification and comparative genetics of plasmids.

The above information I copied from the page where you can freely download PLASMID, which is a Swing application based on the NetBeans Platform. The page claims that the application currently supports Windows only, but it seems to work fine on Ubuntu too, based on these screenshots I took after downloading the application and following the startup scenario:

First, open the sample dataset file:

Then, process the file via a wizard in the application:

Finally, view (and save) the result:

More about the application can be read in "A Java-based tool for the design of classification microarrays". Why was the NetBeans Platform used as the basis of this application, according to this document? Well, here you go:

"The NetBeans platform was chosen for development because addition of new functions is easily implemented. Also, many of the tasks common to desktop applications are provided by NetBeans. These include user interface management (e.g., menus and toolbars), user settings management, storage management (saving and loading any kind of data), window management, and wizard framework (supporting step-by-step dialogs). Each function is implemented as a NetBeans module and can be installed or removed easily without affecting existing functions. Java is a platform-independent programming language, so although PLASMID has been developed using the Windows operating system, it will be relatively easy to adapt it to other operating systems. We intend to extend PLASMID to both the Linux and Mac OS X operating systems. In addition to Java, PLASMID uses code written using the C++ programming language. C++ is needed for computationally intensive tasks that require greater speed and efficiency. The use of two different programming languages is transparent to the user."

Hurray, yet another NetBeans Platform application!


Geertjan Wielenga (@geertjanw) is a Principal Product Manager in the Oracle Developer Tools group living & working in Amsterdam. He is a Java technology enthusiast, evangelist, trainer, speaker, and writer. He blogs here daily.

The focus of this blog is mostly on NetBeans (a development tool primarily for Java programmers), with an occasional reference to NetBeans, and sometimes diverging to topics relating to NetBeans. And then there are days when NetBeans is mentioned, just for a change.


« March 2010 »