Skip to main content

YANPA (Yet Another NetBeans Platform Application)

Posted by editor on September 29, 2009 at 5:33 AM PDT

In my tenure as java.net editor, I've come to realize that NetBeans is much more than simply an IDE. Geertjan Wielenga has undertaken a research project to discover interesting applications that have been developed using the NetBeans platform. He's finding so many that he's invented the acronym YANPA (Yet Another NetBeans Platform Application). In today's Java Today I'm featuring the latest three YANPA apps Geertjan has discovered.

I have spent between 2/3 and 3/4 of my time as a professional developer in the scientific realm, as opposed to the business realm. It's interesting to me that so many scientific oriented research projects seem to find NetBeans the ideal platform on which to develop their applications. Geertjan's latest three YANPA projects involve:

OK, so maybe that last one isn't pure science, but it's certainly software engineering at a highly significant level.

It all reminds me of Adam Bien's recommendation Why Oracle should continue to push NetBeans. In that post, Adam says:

Oracle pushes JDeveloper and Sun NetBeans. Because Oracle is about to buy Sun, only one of the IDEs will be officially supported in long term. From strategic point of view, NetBeans would be the better choice ...

And Adam goes on to list eight rather convincing arguments to support his viewpoint.

I'd suggest that Geertjan's YANPA research provides another reason for Oracle to "push NetBeans." NetBeans isn't just a project, it's not just an IDE. It's not even "just" a community. It's a platform that has engendered some incredible apps! That doesn't happen in the absence of significant underlying capabilities, and the stability and reliability that makes development teams trust the platform.

Take a look at what Geertjan is discovering (there's more than just what I'm featuring today) to see what I mean.


In Java Today, I'm featuring Geetjan Wielenga's recent investigation into applications that have been developed using the NetBeans Platform. Geertjan's latest discovery is Spectroscopy Analysis on the NetBeans Platform :

Spectroscopy comprises any measurement of a quantity as a function of either wavelength or frequency. It is often used in physical and analytical chemistry for the identification of substances through the spectrum emitted from or absorbed by them. How do I know all this? Well, to be honest, Wikipedia. SpectraSuite from Ocean Optics is, yes, an advanced modular spectroscopy application created with the NetBeans Platform as its starting point...

Geertjan is trying to find a new, very interesting application built on the NetBeans platform every day, lately. The day before (Sunday), he discovered Quantitative Biology Modeling on the NetBeans Platform :

Quantitative Biology Tool is a SBML-compliant application on the NetBeans Platform. It supports both qualitative and quantitative modeling of biological systems. It is designed to support "the iterative nature of the scientific method, which alternates between experimentation and model refinement. Researchers may utilize either hypothesis-driven or data-driven approaches with QBT." QBT is developed by SemanticBits in collaboration with the National Heart, Lung, and Blood Institute (NHLBI) and is being adopted there...

On Saturday, Geertjan told us about Security Information and Events Management on the NetBeans Platform:

YANPA (Yet Another NetBeans Platform Application) is... NG-Screener, by NetGuardians in Switzerland. (Switzerland sure has a lot of stuff happening around the NetBeans Platform.) NG-Screener is a Security Information and Events Management (SIEM) appliance that enables medium-sized organizations to harness their log data resources. Really cool screenshots ...


In today's Weblogs, John Ferguson Smart is Testing Exceptions in JUnit 4.7:

JUnit 4.7 introduced a few features that make it a little easier to work with exceptions. JUnit 4 introduced the expected parameter, which makes a test succeed if and only if a certain exception is thrown. For example, in the following code sample, we are testing a UserManager class. When the login() function is called, it should throw an UnknownUserException when no user is found. Our UserDao class will return null in this case, so we mock out the UserDao class (using Mockito here), and use the expected parameter to ensure that the exception is thrown ...

Jim Driscoll provides instruction on Ajax tag events and listeners:

Today we're going to talk about two features of JSF 2.0's f:ajax tag: the event attribute and the listener attribute. The use of both of these is really, really simple - so I'll just briefly cover the basics, and then launch directly into the sample code. The "event" attribute of the ajax tag indicates which event to use to trigger the ajax request. There are any number of possible events allowed: You can use the standard browser DOM events (like click, change, keyup, etc. You can also use two special event values - action and valueChange. These two special values correspond to the same events that happen on the server side in JSF. On the client side, action is typically mapped to click, while valueChange is mapped to change or click, depending on the component...

And Ahmed Hashim found something interesting in Google Chrome: Reopen closed tabs, a cool feature:

I found a cool feature in Google Chrome browser and would like to thank who did it and share it with you :-) It is "Reopen Closes Tabs" it is available in FireFox using the same short cut but founding it in the right click menu is much easier and visiable to the user.


In the Forums, averyanov wants to know How can I lock panel without repaint all component: "Hello! If I use the standart glasspane than Swing will repaint entire frame. Is it possible to lock frame with transparent panel but without invoke repaint all component. I tried // the component to be..."

abailey has a problem with asadmin: --user and --passwordfile not working: "Hello. I'm writing an init.d script for my ubuntu server to run on boot that will start my glassfish domain, and I am trying to nail down the exact command to use. First, I have a password file (/home/alpha/glassfishv2/toilet/password.txt) ..."

And wetravel is trying to perform an lcdui to lwuit conversion: "I'm porting parts of my existing J2ME application to lwuit and ran into some problems: 1. I can't find a good way to switch back from lwuit forms to native lcdui canvas. Setting the canvas with setcurrent seems to work when there are no menu's on..."


Our current Spotlight is this week's Economist magazine feature on "The power of mobile money": "mobile phones have evolved in a few short years to become tools of economic empowerment for the world’s poorest people. These phones compensate for inadequate infrastructure, such as bad roads and slow postal services, allowing information to move more freely, making markets more efficient and unleashing entrepreneurship ... With such phones now so commonplace, a new opportunity beckons: mobile money, which allows cash to travel as quickly as a text message..."


The current java.net Poll asks "What do you think about the accelerating emergence of new languages for the JVM?" The poll will run through next Thursday.


Our Feature Articles include Jeff Lowery's A Finite State Machine Supporting Concurrent States, which demonstrates how Java enums and EnumSets can be used as a basis to define and validate application states and state transitions. We're also featuring Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2.


The latest Java Mobility Podcast is Java Mobile Podcast 87: Tranqueira project used LWUIT: "Eloi Junior from Brazil has just opened the Tranqueira project and shares his experience in using LWUIT."


Current and upcoming Java Events:

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.

-- Kevin Farnham

O'Reilly Media

Related Topics >>

Comments

NetBeans Platform is Fantastic

I worked mainly on Web applications from 1995 through 2003 and I witnessed the evolution from static pages to CGI scripts, then servlets and finally to structured frameworks that were capable of dealing with the needs of complex applications. In 2004 I started a new job which was largely dealt with creating desktop applications in Swing. I was very surprised to learn that application frameworks, while ubiquitous for Web apps, were seldom used on the desktop. Instead, the status quo was to start by write everything from scratch each time, or perhaps just as bad, to copy and paste code from some previous project you'd worked on. Creating new frames, developing an application launcher, writing build scripts and other mundane tasks didn't interest me -- I wanted to focus on the business logic. I also wanted something that was modular and let me improve the application over time instead of getting less maintainable. I looked around and found the NetBeans Platform. This was at a time when 4.0 was new and there was little current documentation on how to use it. It was hard to use because there was no tools support -- not even in the NetBeans IDE. But even at this point, it was clear that the benefits far outweighed the drawbacks. NetBeans 5.0 finally added support for developing platform applications, along with a fantastic GUI builder. And somewhere along there, Geertjan started blogging and helped open the world of NetBeans Platform development for thousands of people. The NetBeans Platform is a great foundation for developing Swing apps. Now there's a much bigger community, along with books, blogs, training and consultants that can help you use it effectively. And I guess it all shows because I've been developing platform applications and have been active in the community for years and I'm still surprised to see Geertjan write about all the companies that are using the platform now.