Skip navigation

We've just published a new article by Jeff Friesen, Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds. In this article, Jeff introduces the JavaFX 1.2 RSS and Atom APIs, covering their common foundation and each API's key classes. The article then explores the FeedTask class's newsfeed-polling implementation.

Jeff begins the discussion of the RSS and Atom APIs by noting that:

The RSS and Atom APIs are offshoots of a common foundation that's rooted in the abstractjavafx.async.Task class. This class makes it possible to start, stop, and track an activity (task) that runs on a background thread.

After listing the common functions and variables shared by the APIs, Jeff points us to the javafx.data.fee.Baseclass:

The common foundation is also rooted in the abstractjavafx.data.feed.Base class, which is the base class for RSS and Atom classes that describe various newsfeed elements. RSS's RSS and Atom's Feed top-level element classes are examples of Base subclasses.

The article then covers the RSS API, detailing the primary classes and variables, and concluding with an example program, a NetBeans RSSDemo project that demonstrates theRssTask class in terms of its interval,location, onStart,onChannel, onItem,onException, onForeignEvent, andonDone variables.

The JavaFX 1.2 Atom API is presented in similar manner and detail, ending with an equivalent application that demonstrates theAtomTask class.

In the section Behind the Scenes with FeedTask, Jeff pulls back the hood on the FeedTask class and some related classes, to show us what's going on in the lower level processing when the RSS and Atom APIs are engaged:

The important task of polling an RSS or Atom newsfeed occurs inFeedTask and a related class. I recently decompiled these classes to explore how newsfeeds are polled, and share my findings in this section to deepen your understanding ofRssTask and AtomTask.

FeedTask creates an instance of thejava.util.Timer class in its static initializer. This instance starts a background thread and works with an instance ofFeedTask's nested SubscriptionTask class (a java.util.TimerTask subclass) to support newsfeed-polling.

Learn about JavaFX's APIs for Reading RSS and Atom Newsfeedsprovides a quite comprehensive introduction to the RSS and Atom APIs that are available in JavaFZ 1.2. But, Jeff isn't done yet. A companion article that puts all this theory to practical use is coming soon:

Enough theory! Now that you've gained knowledge of JavaFX's RSS and Atom APIs, you might want to create your own newsfeed reader. To help you with this task, I present a practical example that handles RSS and Atom newsfeeds in my forthcoming companion to this article.

In Java Today, the NetBeans team announces NetBeans 6.8 Release Candidate 1 Available for Download:

The NetBeans Team is pleased to announce that the first release candidate build of NetBeans IDE 6.8 is now available for download.

Toni Epple talks about JUGS & NetBeans Platform:

Last Thursday Geertjan and I visited the JUG Switzerland in Z

The surprise announcement at Devoxx that closures will be included in Java 7 has dominated most discussion related to the conference. However, in My Devoxx Discoveries of the Year, Sebastien Arbogast focuses on some of the other interesting happenings at this year's conference. So, I've made his post this week's java.net Spotlight feature.

Sebastien is a long-time Devoxx attendee, and he states why going to conferences like Devoxx is always high on his list of objectives:

Every year, the main reason why I go to Devoxx is to discover new stuff. For me it's all about technology watch. The internet and RSS feeds are my main tech watch instrument but there is one thing that is harder to get through RSS: feelings. Conferences like Devoxx are a unique opportunity, not only to see what's happening but also to sense how the community is feeling about it, which is at least as important to anticipate on what's going to be important.

After stating why Java EE 6 and closures in Java 7 did not grab much of his attention at the conference, Sebastien delves into "the things I do care about. My discoveries." Sebastien details four important discoveries he made at this year's Devoxx:

  1. Kanban- a model for lean software development
  2. Spring-Actionscript - a toolbox for Spring/Flex projects
  3. JSR-308 and its pluggable type checkers and Project Lombok - technologies that detect and prevent coding errors before they happen
  4. Pomodoro technique - a time management methodology

http://java.dzone.com/sites/all/files/kanban.png

One similarity between all of these is that, if applied correctly, they will save time and increase your productivity as a software engineer. You can read the full details on why these discoveries really attracted Sebastien's attention in his post. His conclusion regarding this year's Devoxx:

Overall, this edition of Devoxx was great! The first 2 days, I was somewhat afraid that it would be disappointing, because you could feel that everything was "cheaper", that there were less sponsors, less schwag, less tempting hostesses. But then the most important part was preserved: amazing independent content and a great community spirit. Finally there was an interesting special guest this year: Twitter. Twitter was everywhere. People were tweeting live from the sessions, there was a projection board with all devoxx-related tweets in the hallway. I and a bunch of my colleagues were even using twitter to cover Devoxx live for our fellow Axenian java developers on our intranet. Twitter was really everywhere this year.

And, Sebastien notes that "All the talks will be available in the weeks to com on Parleys.com. So stay tuned.


In Java Today, Java Champion Bruce Hopkins says Let

Slightly more than half of respondants to last week's java.net poll believe that closures will improve Java. A total of 365 votes were cast. The exact poll question and results were:

What do you think about closures in JDK 7?

  • 51% (185 votes) - Closures will improve Java
  • 12% (44 votes) - I was/am opposed to closures in Java
  • 14% (50 votes) - Where was the community process in this decision?
  • 9% (32 votes) - I don't know
  • 13% (46 votes) - What's a closure?
  • 2% (8 votes) - Other

While this is not a scientific poll, the results clearly show that, among those who chose to vote, closures in Java are viewed positively by a majority of developers who understand what closures are.

Unsurprisingly (to me), a significant number of people chose to register complaint on how the decision to include closures in Java 7 came about. "Where was the community process in this decision?" is a question that was asked by dozens of commentators immediately after Mark Reinhold's surprise announcement at Devoxx that closures (of a certain type) will be included in Java 7. While we can't tell for sure, my guess is that more of the people who selected this option oppose closures in Java -- but, I also think that this option was probably selected by many people who might favor the inclusion of closures in Java, but object to the effective closure of debate on closures in Java 7 that occurred a year ago, only to be followed by a sudden announcement out of the blue that closures will be included and Java 7, and "here's the type of closure we're going to include." That seemed rather dictatorial to me.

In his comment posted to the poll, ipsi said:

I'm a little concerned about the community process in this decision... I haven't seen the actual announcement (is that visible online anywhere? Or at the least the actual wording?), but it sounds like the announcement was "There will be closures in JDK 7". Not "Well, we've decided to push back the JDK 7 release for reasons that have nothing to do with the Sun/Oracle Deal, and now have time to revisit the closure proposals", not "Project leadership has changed, and we're interested in revisiting closures", but "Closures are coming. Our closures. Applaud. Now".

It's true that a few days ago, in his post "There's not a moment to lose!", Mark Reinhold invited the community to participate going forward:

Revising a programming language that

You may have noticed a new item in the "Get Involved" section at the upper left of the java.net home page: Java.net Enhancements. This is a new feature that's been added as a way to enable the broader java.net community to identify potential enhancements to java.net that are most important.

The Java.net Future Enhancements provides many different ways of looking at enhancements that are being considered for the site. The default view briefly describes several of the proposed enhancements, and lets you vote your view of the importance of each item or add a comment. Clicking on an item's title brings you to a detail page for that proposed enhancement, where you can see the already-posted comments, or post your own comment.

The rating system for the importance of each proposed enhancement is as follows:

  • 5 stars: Must have!
  • 4 stars: Very useful
  • 3 stars: Useful
  • 2 stars: Could be useful
  • 1 star: Don't care

These additional enhancement views are also available:

  • List view - view a summary table of proposed enhancements, with statistics on number of views, comments, and the target schedule for implementation (if a date has been set)
  • All Completed Enhancements - a summary table of enhancements that have already been completed

If you don't see an enhancement you consider important on the Java.net Future Enhancements page, you can visit the Wish List Forum or the java-net project issue list. If still don't see the enhancement you're interested in, you can enter it as a new enhancement request, and it will be given consideration by the java.net development team.


In Java Today, Kelly O'Hair provides Faster OpenJDK Build Tricks:

Here are a few tips and tricks to get faster OpenJDK builds. * RAM: RAM is cheap, if you don't have at least 2Gb RAM, go buy yourself some RAM for Xmas. ;^) * LOCAL DISK: Use local disk if at all possible, the difference in build time is significant. This mostly applies to the repository or forest you are building (and where the build output is also landing). Also, to a lesser degree, frequently accessed items like the boot jdk (ALT_BOOTDIR). Local disk is your best choice, and if possible /tmp on some systems is even better. * PARALLEL_COMPILE_JOBS=N ...

peligri posted Please No Commits on v3 Trunk... and Other Stories of GFv3 FCS:

It's been a hard year, but the GlassFish community has kept pushing v3 onward and all the indicators are that the result is very much worth the effort. The target date for GlassFish v3 is mid-December so the last few weeks have been very busy - check out these MarkMail charts: ...

Elliotte Rusty Harold expresses his view on the news that Sun has decided to add closures to Java 7:

They will, of course, not remove anything to make room, so Java just gets bigger and bulkier. They will also give us a half-hearted implementation that removes some interesting pieces that would make it backwards incompatible, so we're getting really aren't closures after all. Did Sun learn nothing from the generics debacle? Most tellingly, despite all the talk of openness, this seems to very much be Sun's decision. There's no proposal in the JCP, and all discussion of this seems to have purely been internal to Sun. If you aren't eating lunch in the Sun cafeteria, you don't get to chime in. Sun simply presented the decision as a fait accompli to the community. First they decided they wouldn't do closures in Java 7; then they decided they would; and now they'll decide how and when. Scala's looking more attractive by the hour.

In today's Weblogs, John Ferguson Smart presents Test-Driven Development with Legacy code - an introduction:

Test-Driven Development, or TDD, is often quoted as an essential Agile best practice, and so it is. It works wonders on green-fields projects and new code bases where you can start afresh and ensure that all your code is both easily testable and well tested. But what about legacy code? (By legacy code, I mean any code that does not have a comprehensive set of automated tests, so you might be writing legacy code as we speak). For most of us, most of the code we will ever work on will not have originally been our own work. And, unfortunately for the software industry, only a small fraction of code can really boast comprehensive unit and integration tests. How can techniques like Test-Driven Development make our work as developers more productive and less frustrating? ...

Masoud Kalali posted Architecting a system need a wide knowledge of technologies, COTS, projects, standards....:

When we start working on a new project as an architect we are dealing basically with a set of requirement which our architecture should be able to act as a foundation for the design and implementation of those requirements in form of a software system. to let the customer fulfill its requirements in a better and more efficient way. Preparing the architecture for a software system means not only the architect to be familiar with the domain but also he should well aware of new technologies, frameworks, COTS, and standards available not only for the domain he is working on but also for the development platform which will realize the architecture into a working piece of software...

Fabrizio Giudici talks about "As" (when an RDF store meets NetBeans Lookup):

My latest example of an API that would benefit from support by a RDF store was the "Observation API" and focused on modeling a set of observations made by some subjects and related to some places (I'm keeping birds and birdwatchers in mind, but it's only a special case): ...

In the Forums,bradmiley is seeing jerky animations: "My animations are consistently not smooth. A create an animation of duration one second. Below is an example of the of the fraction of the percent of the animation elapsed. Note the huge jump from 0.381 to 0.629 that causes the jerky behavior. I..."

nareshdoni has a problem with Image scroll: "I was trying to make the image scrollale . but I could not able to do that. any help is highly appreciated. I have given my source code below. Suggest mw where I have to make changes. public FloorPlanDisplayable(YasmoLive _ParentMIDlet,..."

hiraldesai needs to Display commands as buttons on Dialog: "HI, I am trying to display the commands of a dialog as buttons on the dialog.This can be achieved by using the static methods on Dialog : 1.Dialog.setCommandsAsButtons(true) 2.Dialog.show("title",Component,cmds[]) ..."


In our current Spotlight, Terrence Barr invites us to Check out Java Card 3.0 Connected Edition: Real Java, just really flat ;-): "Java Card 3.0 was released a couple of months ago – and the second update (version 3.0.2) is scheduled for December. If you haven’t paid much attention to Java on smart cards because you thought it’s not “real” Java – well, look again. It’s true that Java Card 2 was very limited in many ways – a testament to the kind of technology you had available on smart cards 10 years ago. There are billionsof these out there today..."


The new java.net Poll asks What do you think about closures in JDK 7? The poll will run through Thursday.


Our Feature Articles lead off with Sanjay Dasgupta's in-depth articleSimplify Native Code Access with JNA. We're also featuring Eric Siegelberg's Using a Service Delegate to Avoid MVC Controller Bloat, which describes how to maintain separation of concerns and avoid MVC controller bloat through the use of service delegates. And, our latest Java Tech guest column is Marina Kamahele's "Transparent" Panel - Mixing Heavyweight and Lightweight Components.


The latest Java Mobility Podcast is Java Mobile Podcast 90: Augmented Reality: Excerpts from the JavaOne 2009 Augmented Reality session with Kenneth Andersson and Erik Hellman of Sony Ericsson.


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

I was surprised to read, in Mark Reinhold's post "There's not a moment to lose!", that the primary objective, or use case, behind Sun's sudden desire to add closures to Java is multi-core processors. I mean, it's not like multi-core processors are a brand new development, a stunning revolutionary technology that has popped up out of nowhere!

Mark cites Herb Sutter's March 2005 Dr. Dobb's Journal article"The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software" in making his case that closures are needed now in Java. But that article is almost five years old at this point. Multicore isn't news anymore, is it?

Still, it's quite true that, while the typical new PC even for home use has 2 or 4 cores today, very little mainstream software has been redesigned to take advantage of multiple cores. Rather, the gain in speed comes from the possibility of an individual core being fully tasked running a single foreground application, while the other cores take care of background and OS processes.

It has actually surprised me a bit, how slow companies have been to develop multithreaded apps. Of course, many of the most commonly used desktop applications are highly interactive. In that case, much more time is spent by the user deciding what to input or where to move the mouse than is spent by the computer processing the user's requests for action. And, also, much of people's activity as they sit in front of their computers today actually takes place on a remote server somewhere -- so, again, when your computer is serving as a smart terminal, having that terminal application (for example, your browser) multithreaded isn't really critical, since much of your wait time is likely to be your network connection anyway. But, still, it's hard to picture a future where 16 and 32 core PCs are inexpensive and the marketplace is not demanding that those cores be utilized to speed up our computer-based activities. Has there ever been a time when we thought our software applications ran too fast?

A couple years ago, I participated in the launch of Intel's open source Threading Building Blocks (TBB) project. I was the community manager for that project for its first nine months. TBB is a C++ threading library. It's objective is to facilitate development of multithreaded C++ applications that can take full advantage of multicore processors. In some cases, existing software can be "parallelized" automatically by wrapping the code in TBB structures. TBB represents a significant and formidable advance for the C++ world, when it comes to development for multicore/multiprocessor systems, in my view.

My 107 blog posts about TBB and multithreaded development in general are still public, if anyone's interested. I even engaged in a small debate with Herb Sutter over whether "superlinearity" in multithreaded development is really possible (see "Superlinearity Is Impossible; We Just Don't Always Think Correctly" and "Superlinearity and Algorithmic Complexity; or, My Interesting Conversation with Herb Sutter"). So, you can see that development for multicore systems is something I've spent a lot of time thinking about...

But, getting back to Java and closures: Mark links to the "Connection with closures" section of an IBM Developer Works paper. This section talks about ParallelArray, which "offers a nice way to declaratively specify filtering, processing, and aggregation operations on data sets, while also facilitating automatic parallelization." Later on:

one of the arguments in favor of closures is that it makes expressing small snippets of code - such as filters, mappers, and reducers in ParallelArray - much more compact.

Looking at the code snippet that follows (Listing 4 in the article), I am indeed reminded of some of the TBB constructs I was working with a couple years ago. The code snippet is part of a set of routines that compute the maximum GPA for graduating students. The snippet uses the closure syntax from the BGGA proposal. Here's the code:

double bestGpa = students.withFilter({Student s => (s.graduationYear == THIS_YEAR) })
    .withMapping({ Student s => s.gpa })
    .max();

Needless to say, for me, the entire closures discussion is becoming very interesting. But, I'm still a bit confused. For example, Java has had threads for a very long time. So, I would have thought that the concept of programming for multicore processors would have received a lot of attention in the past. And it's still confusing to read that suddenly right now is when Java must react to the advent of multi-core processors. This wasn't being thought about four or five years ago? Also, I see almost nothing about multi-core processors and multithreaded programming in the primary closures proposals. So, as I say, I find closures as a response to the multicore challenge, at this time, a quite surprising -- but nonetheless very interesting -- development.

More to come!


In Java Today, Mark Reinhold leads the closures charge with There

In Java Today, we highlight Stephen Colebourne's new blog post, More detail on Closures in JDK 7. In this informative post, Stephen talks about the announcement by Sun's Mark Reinhold at Devoxx last week (closures will be included in JDK 7) and "subsequent information that has become apparent."

Stephen speaks with authority on this topic, as he is co-author of one of the major Java closures proposals, "First=class methods: Java-style closures" (aka FCM). He notes that that the announcement "was a big surprise to everyone, and there was a bit of a vacuum as to what was announced." Still, the announcement showed that:

Sun, via Mark, have chosen to accept the basic case for including closures in Java. By doing so, the debate now changes from whether to go ahead, to howto proceed. This is an important step.

In Stephen's view, the big questions now relate to what's in and what's out. There have been multiple proposals on how closures could be implemented in Java, with differing proposed closure syntax. Assessing Mark's presentation and other information he's gathered since Mark's announcement, Stephen came up with a table that lists 13 fundamental characteristics of closures that have been specified in varying degrees of completeness in four major closure proposals:

  • CICE - "Concise Instance Creation Expressions" by Bob Lee, Doug Lea, and Josh Bloch
  • BGGA 0.5- "Closures for the Java Programming Language" by Gilad Bracha, Neal Gafter, James Gosling, Peter von der Ah

Terrence Barr highlights the Java Card 3.0 Connected Edition in this week's java.net Spotlight:

Java Card 3.0 was released a couple of months ago - and the second update (version 3.0.2) is scheduled for December. If you haven't paid much attention to Java on smart cards because you thought it's not "real" Java - well, look again.

Terrence points out that the limitations in Java Card 2 are in part related to the fact that Java Card 2.0 came out about 10 years ago. If you think of how much has changed in mobile technology in the past ten years, it feels like 10 years ago was the age of the dinosaurs.

And so, it makes sense that there is a lot of change between Java Card 2 and Java Card 3.0. Actually, the Java Card version numbering / edition naming is a bit confusing at this point. For Java Card 3.0, there is a "Classic Edition" and a "Connected Edition." Even when I first saw this several months ago, when Java Card 3.0 was announced, I considered it confusing. Java Card 3.0 "Classic Edition" is really a maintenance release of Java Card 2. So, why are they calling it Version 3.0 instead of calling it Version 2.something (since it's backward compatible with Version 2.2.2)? Sounds like the marketing department's idea, no?

Anyway, it's the Java Card 3.0 Connected Edition that includes all the big enhancements. Terrence calls this edition:

the dramatically enhanced next generation of Java Card technology. The Connected Edition contains a new architecture that enables developers to integrate smart cards within IP networks and web services architectures. It supports extended Java Card applets and servlets to allow for these new capabilities in addition to also supporting classic Java Card applets.

Highlights of the Connected Edition:

  • JDK 6 compatible VM
  • Full Java language support
  • Rich APIs
  • Three application models and two library models
  • Servlet Container with Servlet 2.5 support
  • Size still measured in KBytes
  • Netbeans plug-in for easy development

See Terrence's post and the Java Card site for the details. There's also a new Java Card project on Kenai.


In Java Today, Java Champion Jim Weaver posted The JavaFX How2 Compendium:

I'd like to make sure that you know about a great new JavaFX resource that Maya Venkatraman, Scott Hommel and others have been working on. This resource, located on the JavaFX.com site, is called the JavaFX How-To's (although I like to call it the JavaFX How2 Compendium because it is a concise, yet comprehensive compilation of how to get things done in JavaFX)...

Geerjan Wielenga posted pics and info about his talk on Lookup as OSGi Service Registry at Devoxx 2009:

Picture of Toni and me at Devoxx, talking about Lookup as an OSGi service registry, which is available from Kenai (here). More pics here: http://picasaweb.google.com/JavaPolis.com/Devoxx2009In other news. Watch a movie I made at the conference about interesting things learned at Devoxx: http://java.dzone.com/one-thing-from-devoxx...

Josh Marinacci pointed out that Neil Bartlett will be presenting "JavaFX in Eclipse" at Eclipse DemoCamps November 2009/London:

Since April, Neil has been working for Sun Microsystems to advance their tooling for JavaFX within Eclipse. In this demo he will show the current progress and preview some up-coming features. He will also show a demo of using OSGi for runtime modularity in a JavaFX application (based on original work by Johan Vos).

In today's Weblogs, Harold Carr provides his Kynetx Impact Conference - notes - morning day 1:

9:00-9:45 AM: The Intention Economy: What Happens When Customers Get Real Power, Doc Searls, Sr. Editor of Linux Journal, Author of The Cluetrain Manifesto. http://projectvrm.com. I only caught the tailend - stuck in traffic...

Aaron Houston posted DEVOXX Day 3 - JUG BOF with James Gosling - MP3 recording:

Here is a raw recording of the JUG BOF at DEVOXX with James Gosling who was our special host. We had 56 Java User Groups represented at DEVOXX; We had 60 people in the room with James. Detailed list of topics discussed by timing marks in the MP3 recording. MP3 is 19MB to download and is 40+ min long. Here's bits and pieces, so here is the disclaimer: Please Listen to the MP3 before making any judgments/opinions on the accuracy of the transcript...

Cay Horstmann comments on the "tantalizing announcement" at DEVOXX in Closures? In Java 7???:

Today, a tantalizing announcement by Mark Reinhold about closures in Java 7 has made its way through the twittersphere. On the same day, Neal Gafter updated his closure proposal (known as the BGGA proposal, named after the initials of Bracha, Gafter, Gosling, and von der Ahé, and not at all related to the B. G. G. A. organization)...

In the Forums,salwaalkhan_vn asks How to invoke a WS that is only known at the execution time of the program?: "Hi, How to invoke a WS that is only known at the execution time of the java invocation client? Is it possible with WS Java APIs to write a client that can invoke whatever web service? A client that is independent of any particular web..."

bugs318 has a problem where App Mode won't load: "I can run Dev mode, but I cannot get either app mode or a gdm session to run. I worked around some difficulties in installation to get the software installed on Ubuntu 9.10 64-bit. I get the following output when trying to boot app mode: ..."

rapiz needs help with Bidi - Hebrew font's...: "Hi again! I've downloaded the latest code from the SVN in order to use the new Bidi feature. My application mainly targets the israeli market so Hebrew support is very important. I set the RTL flag and so far the RTL alignment..."


In our current Spotlight, Terrence Barr invites us to Check out Java Card 3.0 Connected Edition: Real Java, just really flat ;-): "Java Card 3.0 was released a couple of months ago – and the second update (version 3.0.2) is scheduled for December. If you haven’t paid much attention to Java on smart cards because you thought it’s not “real” Java – well, look again. It’s true that Java Card 2 was very limited in many ways – a testament to the kind of technology you had available on smart cards 10 years ago. There are billionsof these out there today..."


The new java.net Poll asks What do you think about closures in JDK 7? The poll will run through Thursday.


Our Feature Articles lead off with Sanjay Dasgupta's in-depth articleSimplify Native Code Access with JNA. We're also featuring Eric Siegelberg's Using a Service Delegate to Avoid MVC Controller Bloat, which describes how to maintain separation of concerns and avoid MVC controller bloat through the use of service delegates. And, our latest Java Tech guest column is Marina Kamahele's "Transparent" Panel - Mixing Heavyweight and Lightweight Components.


The latest Java Mobility Podcast is Java Mobile Podcast 90: Augmented Reality: Excerpts from the JavaOne 2009 Augmented Reality session with Kenneth Andersson and Erik Hellman of Sony Ericsson.


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

This past week's poll suggests that Java User Groups have a substantial impact and play an important organizational role within the Java developer community. A total of 293 votes were cast in the poll. Here are the exact question and the results:

Do you belong to a Java User Group?

  • 22% (65 votes) - Yes, and I actively participate
  • 26% (75 votes) - Yes
  • 5% (15 votes) - No, but I sometimes attend JUG-related events
  • 3% (10 votes) - No, but I follow JUG-related news
  • 12% (35 votes) - No, there is no local JUG where I live
  • 31% (90 votes) - No
  • 1% (3 votes) - Other

Among those who chose to vote in the non-scientific survey, 56% either belong to a Java User Group, attend JUG events, or follow JUG-related news. Among the people who stated they do not belong to a JUG, about a quarter have no local JUG they can participate in where they live.

Almost a third of voters selected the "No" option, which implies that they could participate in a Java User Group, but currently choose not to do so. That's a fairly low fraction, in my view.

The poll elicited four comments. rdelaplante andjwenting commented that the JUGs in their areas have too many commercial presentations by companies and vendors.rdelaplante said:

I think my local JUG should be renamed to SUG (Spring Users Group) since we've recently had 3 presentations from SpringSource, and some of the other vendors that give us their sales pitch focus on Spring too like GigaSpaces. Why isn't Sun out here pitching GlassFish and Java EE 6? I guess it can be challenging for JUG leaders to find a constant stream of speakers, and companies like SpringSource are eager to take full advantage of the opportunity to give their sales pitches in every major city.

jwenting commented: "From what I've seen around here the JUG(s???) seem mostly to exist for the purpose of companies presenting whitepapers and giving commercial presentations of products. Not very useful at all."

To these comments, JUG co-leader fabriziogiudiciresponded:

Co-leading a JUG and attending some meetings from others, I can say I've never seen any whitepaper, any commercial presentation or any speech by a big company representative - with the exception of some specific events (e.g. the IDE shootout or the Application Server shootout) where representative from the various producers were invited - in any case, the talks were exclusively technical. JUG Roma is the one capable in Italy to organize the largest single-day gatherings (1200+ attendants) and, again, no white papers or commercial stuff at all. In normal cases, speeches are mostly held by JUG member themselves and arguments decided by means of the mailing list - usually they are the guy's direct experience with a technology, which also gives good hints for a discussion. I wonder whether there are big differences in how JUGs are managed in various parts of the world.

Meanwhile, ipsi finds "very little promotion of the local JUG":

I'm vaguely aware that it exists, but there's very little promotion of it, and I had to do a Google Search to find the webpage. I don't think it was mentioned to me at all during my University studies (which mainly focused around Java). The country-wide discussion list seems to have ~120 members, which is pretty pitiful.

So, it seems like the size of the Java User Group matters a lot, along with the location; and probably there are also some differences in management. A big JUG where enough members live nearby probably has a much easier time with having technical presentations by the members themselves. Whereas, smaller JUGs, or JUGs in regions that are not all that metropolitan, will have fewer attendees at the JUG meetings. And, a smaller pool of active members translates into a smaller pool of potential presentations from the members themselves. So, in order to have something interesting and at least somewhat relevant, vendors are called upon. Surely some vendors are more adept at presenting a genuine technical talk, while others will present mostly their standard marketing spiel.

New poll: closures in Java 7

The new java.net poll asks What do you think about closures in JDK 7? If you've followed the DEVOXX news, you'll have heard about the surprising and tantalizing coin flip decision that was revealed in Mark Reinhold's presentation at the conference.


In Java Today, Bill Venners interviews Stephen Colebourne in Java To Get Closures in JDK 7:

At the Devoxx conference in Antwerp, Belgium, Sun's Mark Reinhold announced that closures would be added to Java in JDK 7. In this interview, Stephen Colebourne, coauthor of the FCM closures proposal, gives his perspective on this surprise announcement.

One year ago, Mark Reinhold, Principal Engineer at Sun Microsystems, announced At the Devoxx conference in Antwerp, Belgium that the next major release of Java, JDK 7, would not include closures. At the same conference this year, however, Reinhold announced in a surprise turn around the Java would be getting closures after all in JDK 7. I sat down with Stephen Colebourne, project lead of joda.org and coauthor of the FCM closures proposal, to discuss his perspective on the reason for this change of plans...

Joe Darcy wrote about Project Coin: Milestone 5 Language Features in NetBeans:

To go along with the language changes available in JDK 7 milestone 5, the NetBeans team has created a developer buildof NetBeans supporting the same set of language changes, including improved integer literals, the diamond operator, and strings in switch. In addition to just accepting the new syntax, the NetBeans build has some deeper support too. For example, when auto-completing on a constructor with type arguments, the diamond operator is offered as a completion...

Java Champion Stephen Chin has posted his Devoxx University Slides:

My Devoxx university session yesterday was packed, which was awesome! It was 3 hours of hard-core JavaFX knowledge, and almost everyone stayed for the duration. Aaron Houston got a great shot of the venue (more on the Java Champions site). I posted my slides on SlideShare, so check it out when you get a chance. Special thanks to my co-authors, Jim, Weiqi, and Dean for help with the content.

In today's Weblogs, Harold Carr provides his Kynetx Impact Conference - notes - morning day 1:

9:00-9:45 AM: The Intention Economy: What Happens When Customers Get Real Power, Doc Searls, Sr. Editor of Linux Journal, Author of The Cluetrain Manifesto. http://projectvrm.com. I only caught the tailend - stuck in traffic...

Aaron Houston posted DEVOXX Day 3 - JUG BOF with James Gosling - MP3 recording:

Here is a raw recording of the JUG BOF at DEVOXX with James Gosling who was our special host. We had 56 Java User Groups represented at DEVOXX; We had 60 people in the room with James. Detailed list of topics discussed by timing marks in the MP3 recording. MP3 is 19MB to download and is 40+ min long. Here's bits and pieces, so here is the disclaimer: Please Listen to the MP3 before making any judgments/opinions on the accuracy of the transcript...

Cay Horstmann comments on the "tantalizing announcement" at DEVOXX in Closures? In Java 7???:

Today, a tantalizing announcement by Mark Reinhold about closures in Java 7 has made its way through the twittersphere. On the same day, Neal Gafter updated his closure proposal (known as the BGGA proposal, named after the initials of Bracha, Gafter, Gosling, and von der Ahé, and not at all related to the B. G. G. A. organization)...

In the Forums,shankar_vn wonders about a Circle Layout in LWUIT: "Hi all, I know there is no Circle layout, but does any one tried placing some 'n' number of images in a circle a format. Something like this: (Ignore the dots)..."

bernard_horan announces Clickable Link now in stable modules: "fyi I've just moved clickable link into the stable modules, and it will now be included by default in the list of capabilities. If you had previously been using/working with clickable link from the unstable modules, please update..."

hellofadude is getting an Unknown file type error (.jsp file): "Hi Im running windows vista on an M1330 (dell) with netbeans/glassfish bundle. Netbeans 6.5 and glassfish v2.1. when I try to run the guessNumber examble, I get a system error saying unknown file type with options to download from..."


Our current Spotlightis Josh Marinacci's new JavaFX open source Project MaiTai: "What is MaiTai? MaiTai is an open source tool for building interactive artwork. You create interesting sketches by wiring different blocks together with lines. There are blocks to produce graphics, process mouse and keyboard inputs, connect to webservices, and perform complex graphical transformations. The end result is limited only by your imagination. MaiTai can export a Java Webstart application or a QuickTime movie..."


The new java.net Poll asks What do you think about closures in JDK 7? The poll will run through next Thursday.


Our Feature Articles lead off with Sanjay Dasgupta's in-depth articleSimplify Native Code Access with JNA. We're also featuring Eric Siegelberg's Using a Service Delegate to Avoid MVC Controller Bloat, which describes how to maintain separation of concerns and avoid MVC controller bloat through the use of service delegates. And, our latest Java Tech guest column is Marina Kamahele's "Transparent" Panel - Mixing Heavyweight and Lightweight Components.


The latest Java Mobility Podcast is Java Mobile Podcast 90: Augmented Reality: Excerpts from the JavaOne 2009 Augmented Reality session with Kenneth Andersson and Erik Hellman of Sony Ericsson.


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

Conferences typically include some surprise announcements, usually by corporate sponsors of the conference. But a great many developers were astonished by the unexpected news from DEVOXX '09 that JDK 7 will include closures. Here's an image (resized smaller) that I found in Alex Miller's post Closures after all?


Mark Reinhold at Devoxx: Closures in JDK 7

Alex isn't at DEVOXX, but I think he speaks for a great many developers in his opening commentary:

I can't say what to make of that really. For years Sun has been saying that there is no consensus on closures and delayed the formation of a JSR or expert group on the subject despite having three proposals, all with prototypes.

Fabrizio Giudici is appalled by the apparent coin flip nature of the emergence of closure in JDK 7:

after a few weeks that the final word of Java 7 had been said with Project Coin (the famous final five or so), somebody changed his mind all of a sudden. What kind of decisional process is this?

Fabrizio goes on to say "I fear Java 7 could be the most chaotical Java release ever..."

Remi Forax considers Lite closure in JDK 7 to be good news, but he hopes "such closure will be on top of JSR 292 method handle."

Geertjan Wielenga noted (and wondered):

A second interesting, yet odd, thing was the surprise announcement out of nowhere that JDK 7 is going to have closures after all. Great news and maybe best if no one asks too many questions about how that process ended up throwing up this solution! First, we have a whole bunch of proposals, all of which get lukewarm reception. Then, suddenly, like a bolt from the blue, we have "simple closures". (I wonder if any of the existing proposals are called "complex closures". Isn't simplicity the whole purpose of closures in the first place?) OK, the closures will be simple in the sense that there will be no non-local return, no control statements, and no access to non-final variables. Still, how was that decision made?

As for me -- I see people whose expertise I respect on both sides of the issue. With respect to the language, I find closures to be acceptable as a programing option. But, with respect to development of the type I've done throughout most of my career, I'd consider the implementation of closures in high-availability operational systems overall a negative. Why? Because I believe that this type of programming makes code more complex to the uninitiated than it has to be. It may simplify things for the original developer, but when that person departs the organization, and someone else has to modify or enhance that code -- that becomes a real problem!

I've worked for a long time in an environment where we're building back-end infrastructure that has to be rock-solid and enduring. The development team historically has had a greater turnover than the software. When Joe, Alexei, Marina, and now Peter have worked on the same piece of code, it's problemmatic if the code is not readily understandable. I as manager have a budget for each needed mod or enhancement.

In all of my experience working in languages where, in essence, functions can be passed as arguments -- I've found that the code is difficult to work with once a new developer receives the assignment to maintain or enhance the code. This is a loss of efficiency -- not something most companies can afford during our present (or any?) economic times.

I can see how making closures available can make development more efficient during the design and initial implementation phase for new projects. But, overall, I think for a language like Java which has enormous amounts of operational high-end infrastructural code already in existence, the formal addition of closures poses a danger. The original developers of the legacy code may have moved on. What if a new developer improperly wraps a legacy function, effectively making it a closure, to simplify the task at hand -- might that create potential new security risks? In addition, of course, to making the code difficult to understand for the novice developer who takes over the maintenance of that code 18 months from now, after our clever closure function developer has moved on...

I suppose that making closures more formally and readily possible in Java isn't necessarily a problem. You can say it's just another programming option. We all like more "options" when we go shopping, right? But, in the back-end high-availability operational infrastructure realm that I work in (which, I think, is clearly the most important realm, since if that fails, all client apps are useless), as development manager and architect in this environment, I'll demand that my developers completely shun their use.

The bigger question people are asking right now, though, is: how did closures suddenly become a to-be-implemented part of JDK 7? Where was the community process in this? Where was the closing open debate? This announcement at DEVOXX surprised pretty much everyone!


In Java Today, Alex Miller comments on the surprise JDK 7 announcement at Devoxx, in Closures after all?

Apparently Mark Reinhold announced that closures would be added to JDK 7 at Devoxx today... I can't say what to make of that really. For years Sun has been saying that there is no consensus on closures and delayed the formation of a JSR or expert group on the subject despite having three proposals, all with prototypes. Neal Gafter's BGGA closures proposal is easily the most fully baked and has a fairly complete prototype and all of the necessary specification changes. I would have to guess that Mark's announcement must be based primarily off the ideas in Neal's work, but we'll know more soon I guess...

Danny Coward posted Devoxx 09: JDK 7, Java EE 6, JavaFX, Java Store and more:

The Janitor is here at Devoxx, just down the road from Neelie Kroes !  Her influence was on show at the Oracle keynote, which began with a legal disclaimer saying something about forward looking statements about products not being indicative of anything. One has to be sympathetic as the commission's wheels grind on, but it was a bit like hearing that the tenor has a sore throat before the opera starts. Happily, Roberto and Ludo were more melodious, announcing the imminent December 10th release date for Java EE 6 and Glassfish v3 and a demo of deploy-on-save in Eclipse (it could equally have been in NetBeans), re-deploying deployment descriptor-free servlets and EJBs to Glassfish v3 in about a second. Adobe gave an engaging keynote, and although the Janitor didn't love the smell of all the multistep automagical conversion to massage an app developed in the flash tool into something allowed to run on the iPhone (pretty sureApple doesn't either), the image-to-widget tool in Adobe Catalyst demoed very well. Something to think about for the JavaFX Production Suite...

Geerjan Wielenga posted his notes on Devoxx Day 3: Conference Day 1:

The conference proper started today. Up until now, there had been a lot of very long sessions, lasting 3 hours or so, i.e., university sessions. Now, not only did the sessions become shorter (i.e., more presentation-like and less lecture-like), but several big guns from the world of programming (e.g., James Gosling, as well as Oracle guys) turned up.

Before continuing, let me reveal that I am the Devoxx conference for one reason only: the El-Menoufiya JUG in Egypt gave me their ticket, since none of their members could make it. Hamada Zahera and the rest of the guys there: you rock and I am honored to be an honorary Egyptian. (Here's a pic of the whole group, me included.) ...


In today's Weblogs, Fabrizio Giudici finds that Now I've understood the meaning of "coin" in Project Coin:

It seems that at Devoxx it has been announced that closures will make their way in Java 7, after all. I don't want to discuss whether it's a good or a bad thing (you know I think it's bad). I'm only appalled that after a few weeks that the final word of Java 7 had been said with Project Coin (the famous final five or so), somebody changed his mind all of a sudden. What kind of decisional process is this? Ah, I got it - it's tossing acoin, now I get where the project name came from. I fear Java 7 could be the most chaotical Java release ever...

Remi Forax comments on Lite closure in JDK7:

It seems that "lite" closure will be in JDK7. I really don't care about the surface syntax but I hope that the runtime of such closure will be on top of JSR 292 method handle...

Felipe Gaucho is Testing PDF files with Canoo Webtest and Maven2:

This week I received one of that lovely and tricky tasks: to learn Canoo webtest, test it and prove its usefulness to the project in three days - convincing the managers that it should be part of the project. The goal of the project is to produce a finance report with ~200 pages and that report should be validated through azero-errors acceptance tests. Several tools were considered, including Selenium and others, but Canoo was choosen due to its PDF test features...

In the Forums,ciaodiego wonders about import world wfs from wonderland 0.4 to 0.5: "hi, i've create a world wfs in wonderland 0.4 called universita-wfs.
how i can import the old word in wonderland 0.5? there is a tutorial? ..."

treeniap has a Need to change LWUIT Designer screen size: "Hi, I've got LWUIT the lwuit resource editor to act as a kind of wsywig layout editor for my designers. It works great but i really need to change the default resolutions available in the theme preview. How can I add screen sizes..."

bernard_horan posted Simplified Chinese Locale... please test: "Thanks to Qingjiang Yuan, we now have a Simplified Chinese locale (zh_CN). So, if you are a Chinese-speaking developer currently using one of the other Locales, please take a moment to switch to the new Locale and test it out. Let us know of any issues..."


Our current Spotlightis Josh Marinacci's new JavaFX open source Project MaiTai: "What is MaiTai? MaiTai is an open source tool for building interactive artwork. You create interesting sketches by wiring different blocks together with lines. There are blocks to produce graphics, process mouse and keyboard inputs, connect to webservices, and perform complex graphical transformations. The end result is limited only by your imagination. MaiTai can export a Java Webstart application or a QuickTime movie..."


The new java.net Poll asks Do you belong to a Java User Group? The poll will run through Thursday.


Our Feature Articles lead off with Sanjay Dasgupta's in-depth articleSimplify Native Code Access with JNA. We're also featuring Eric Siegelberg's Using a Service Delegate to Avoid MVC Controller Bloat, which describes how to maintain separation of concerns and avoid MVC controller bloat through the use of service delegates. And, our latest Java Tech guest column is Marina Kamahele's "Transparent" Panel - Mixing Heavyweight and Lightweight Components.


The latest Java Mobility Podcast is Java Mobile Podcast 90: Augmented Reality: Excerpts from the JavaOne 2009 Augmented Reality session with Kenneth Andersson and Erik Hellman of Sony Ericsson.


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

Today's java.net home page features two Java Today items and one java.net blog that cover different aspects of Java EE. Adam Bien writes about the current state of adoption of EJB 3 / Java EE; peligri covers the JavaEE 6 specs that have been submitted to the Executive Committee; and Masoud Kalili provides an overview on the state of open source Java EE app servers.

At this past JavaOne, I recorded a java.net Community Corner podcast with Adam, "Real World Java EE Patterns: Rethinking Best Practices". As our conversation proceeded, I was surprised to learn how lightweight EJBs can actually be. Yet, EJBs offer well-tested infrastructural capabilities and scalability that would be very difficult to match if you started from scratch.

In this sense, if someone is starting a web site that offers a service of some type, to build the service from the ground up using Java EE is probably a wise decision. You may not need all the capabilities of EJBs when your site is small. But if it suddenly becomes famous, and the number of users who want your services multiplies by orders of magnitude, you're not going to have time to say "OK, now we'll redesign our product so that it scales!" It doesn't work that way. You may have only one chance. If your site becomes unusable because it can't scale at that critical moment, attention (and your audience and future customer base) may quickly move to someone else's service.


In Java Today, Adam Bien write ... And the Adoption of EJB 3 / Java EE Is::

far better than expected. The landscape:

  1. Java EE 5 is already supported by 14 (all major) application servers.
  2. Java EE 6 is already supported by Glassfish 3 and partially by JBoss 6.0 and Geronimo.

The adoption is harder to estimate - but it seems like Java EE 5 (6 is too early) and EJB 3 are gaining momentum. The w-jaxconference is over - it was interesting to observe some indicators ...

peligri outlines The Road Towards JavaEE 6 - Specs Submitted to EC:

The last batch of JSR's for JavaEE 6 were submitted earlier this week for Final Approval Ballot . The ballot will start on 11/17/09 and end on 11/30/09. They are:

     

JSR 316 - JavaTM Platform, Enterprise Edition 6 (Java EE 6) Specification
JSR 315 - JavaTM Servlet 3.0 Specification
JSR 317 - JavaTM Persistence 2.0
JSR 318 - Enterprise JavaBeansTM 3.1
JSR 322 - JavaTM EE Connector Architecture 1.6
JSR-299 - Web Beans (now called CDI)

Several JSRs had been submitted and approved previously...

The java.net Mobile & Embedded Community is highlighting the JT Harness 4.2.1 Milestone Release:

The JT Harness 4.2.1 milestone release contains a large number of bug fixes, including fixes in the following areas:
  • Fixed update problems in the test tree
  • Cleaned up potential NPEs and other exceptions
  • Test Panel now displays test output streams during test run
  • "Quick Pick" execution from test tree now includes a preference to control usage of the Tests to Run configuration setting
  • Fixed memory leaks
  • Added service management API ...

In today's Weblogs, Masoud Kalili provides an overview on the State of Open Source Java EE Application Servers:

This is a very basic review of active and available open source Java EE Application servers and Servlet container (Web containers) to let the community know which active containers are available and what is the general status of each container. The article can simply act as a start point for anyone need to select one of them for later use in development or product. Detailed comparison of these production cover many pages of a tick book...

Binod demonstrates Typing Detection in SailFin CAFE:

RFC 3994 standardized how SIP applications implement "Indication of Messages" or "Typing detection" at protocol level. SailFin CAFE provides a simple way to detect typing using a Communication Bean. Also a web application can send a "Message Indication" to a SIP client. Here is the code that implements receiving Instant Messages and Message Indication from a SIP client.

Fabrizio Giudici talks about Using Apple Keynote to create presentations:

No, this is not a tutorial about Apple Keynote, but a first impression from me, who have just used it for the first time. Historically, I've always made presentations with Powerpoint (up to 2001) and OpenOfficeImpress (since 2001). So far so good, even though I've always felt a bit of pain, before giving a speech, in preparing the slides. In other words, I *love* to give speeches, but the idea of preparing the slides often make me think twice before sending a proposal to a call for paper. I much prefer talks where most of the time is a hands-on session with a tool such as NetBeans; but in a way or another, you always needs a bit of theory to be introduced...

In the Forums,bbrtki finds that swingx1.0 setDragEnabled(true) breaks additive JXTreetable selection on Mac: "Odd enough, this works fine on windows. I don't think this needs an example code as it can be tested on any JXTreetable as soon as you call setDragEnabled(true). Shift + click selection works fine. Apple (ctrl key for single..."

mark13 gets an Error while running runRI.sh: "I have successfully build the stack and HE. But when I try to run the script it's giving me following error. I cannot nderstand the reason for this. I'm very new to this. Please help Thanks in advance. $ ./runRI.sh -setup..."

iclarence posted Query is executed against CMP Bean insted of table in GF 2.1: "Hi, I am new to j2ee, trying to develop cmp bean created connection pool and got "Ping Succeeded " created jdbc resource everything is ok.but whle invoking findbyprimarykey,create method getting Exception. JDO74004: Bean 'EmpBean'..."


Our current Spotlightis Josh Marinacci's new JavaFX open source Project MaiTai: "What is MaiTai? MaiTai is an open source tool for building interactive artwork. You create interesting sketches by wiring different blocks together with lines. There are blocks to produce graphics, process mouse and keyboard inputs, connect to webservices, and perform complex graphical transformations. The end result is limited only by your imagination. MaiTai can export a Java Webstart application or a QuickTime movie..."


The new java.net Poll asks Do you belong to a Java User Group? The poll will run through Thursday.


Our Feature Articles lead off with Sanjay Dasgupta's new in-depth article Simplify Native Code Access with JNA. We're also featuring Eric Siegelberg's Using a Service Delegate to Avoid MVC Controller Bloat, which describes how to maintain separation of concerns and avoid MVC controller bloat through the use of service delegates. And, our latest Java Tech guest column is Marina Kamahele's "Transparent" Panel - Mixing Heavyweight and Lightweight Components.


The latest Java Mobility Podcast is Java Mobile Podcast 90: Augmented Reality: Excerpts from the JavaOne 2009 Augmented Reality session with Kenneth Andersson and Erik Hellman of Sony Ericsson.


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

As you can see in Java Today, the Java Tools Community is providing Devoxx live coverage! via http://twitter.com/javatools. Twitter covera ]]>DEVOXX 2009 home page, you see "#Devoxx Tweets" prominently occupying the left column of the page. Meanwhile, a search for Devoxx posts at Technorati or Google Blog Search as I write this post (about 6:00 AM GMT Tuesday), yields only a few blog entries.

This is amazing to me! Or, at least, I would never expected reporting on conferences to come to this point, where a "story" consists of a set of

As I said when I followed TheServerSide Symposium via Twitter, a conglomerated Twitter feed does give you the feeling of being at a conference in the hallways or some crowded central area, where you hear many different people saying many different things, but all centered on what's going on at the conference. A conglomerated Twitter feed is unique in that way.

Of course, if you actually want to learn something, for example, about what was stated at a specific conference session, you need to step out of the crowd and go into a specific tweeter's set of tweets. For example, the Java Tools tweeter(s) attended a presentation on Generics on Devoxx Day one. The Java Tools tweets tell us that Professor Eric Steegmans explained the basics of generics:

Pros: better readability, compile time verification

Type erasure: the compiler removes all informaion on generic types for binary compatibility with legacy code

At compile time the code is converted to raw types. So Java 1.6 ArrayListis still compatible with 1.4 ArrayList.

And so on. As you can see, you can actually learn something about what was said in the presentation.

So, today, we publish in real time the notes we previously scribbled into notebooks as we attended conference sessions (at least, that's how I always did it). We publish those notes live, as the events are occuring -- rather than recording a day or half-day of notes, meditating briefly upon them, so as to gather some sense of the overriding import, then posting a blog based on the notes and the subsequent analysis.

After the conference is over, the presenters publish their presentations. And there are videos of the keynote addresses. And some people do post blogs, though more after the fact (for example, post-conference summaries) than was the case in that by-gone pre-Twitter era...

Ultimately, I suppose this new method does provide pretty decent coverage of the happenings from a conference. We're provided with a lot of raw material from the conference, that we can interpret ourselves in whatever way we choose. At the same time, I do consider the reduction of insightful blogging, that includes a few moments of reflection upon the import of the events, to be a loss for those who were unable to attend the conference. Tweeting really can't be journalism; blogging can be.

Anyway, this week I'll be following Devoxx via tweets from @JavaTools and Geertjan Wielenga, and I'll undoubtedly find some other interesting people to follow as well, from browsing the devoxx Twitter search feed. It may not be journalism, but from the right sources, tweeting is great reporting.

The next time I attend a technology conference, I intend to blog during breaks, and especially in my hotel room each night -- just as I've always done. But, yes, I'll be tweeting throughout the day, too!


In Java Today, James Gosling is enjoying Moules Frites @ Devoxx:

I'm back in lovely Antwerp for Devoxx. The purgatory we're in over the situation with Oracle has it's pluses and minuses. On the plus side, I don't have to do a keynote.... Steve Harris from Oracle get's that job. I will be doing a talk, but I'll be concentrating on the store we're in the process of launching. The hard part is that the only questions that anyone will be asking are the ones that neither Steve nor I can answer: until the acquisition clears the EC competition commission and closes, we're required to be mostly silent about the future. We're pretty much limited to the official statements...

Geertjan Wielenga interviews Tim Boudreau in his new article NASA Adopts the NetBeans Platform:

Tim Boudreau, Senior Staff Engineer at Sun Microsystems, recently spent some time with engineers at NASA, showing them how to use the NetBeans Platfom. Below, he reflects on some of the interesting engineering needs that NASA has and how the NetBeans Platform is well suited to respond to these. During the interview, Tom Wheeler, one of the NetBeans Platform's several external contributors, talks about his participation in the course at NASA, too! ...

The Java Tools Community announces Devoxx live coverage!: "JavaTools reporters are covering Devoxx this week. Want to know what is going on? Then, follow us!"


In today's Weblogs, Alexander Potochkin has news about The alternative Swing frameworks:

Hello Swing community. While the SAF project is on hold, the Swing team welcomes the active development of the alternative implementations of the Swing framework. I found a few promising projects and put the links to them at the SAF project main page...

Remi Forax demonstrates Strings in switch and closures with reference to JDK 7:

As you perhaps already know, jdk7 milestone 5 (jdk7b76) is out.
This new milestone contains a lot of bug fixes and improvements. This blog entry is about two of them:

  • Strings in switch
  • Method handles (yes again)

Carol McDonald presents The Top 10 Web Application security vulnerabilities Presentation:

I gave a talk at a the Jacksonville JUG about the Top 10 most critical web application security vulnerabilities identified by the Open Web Application Security Project (OWASP). You can view or download the presentation here: Top 10 Web Security Vulnerabilities ...

In the Forums, prmatta asks about the Scope of server side instance of implementation ?: "Hi All, In Metro, if I instantiate objects in the constructor of the implementation, can those be used in the web methods? I am probably missing something really basic here. My implementation has a constructor, and in that..."

steflik needs help with Role based client access: "Has anyone given thought to making the client role based so that once a world is deployed to a production environment that many of the client controls (including drag'n'drop ) object placement is disabled so that a user cannot either accidentally or..."

interactivemesh posted Heavyweight Internal Frames : Java 3D Sample: "Hi, as of the JRE 6 Update 12 release mixing heavyweight and lightweight components works almost perfectly. JInternalFrames with a heavyweight content are now supported. To test this new capability I wrote the Java 3D..."


Our current Spotlight is Josh Marinacci's new JavaFX open source Project MaiTai: "What is MaiTai? MaiTai is an open source tool for building interactive artwork. You create interesting sketches by wiring different blocks together with lines. There are blocks to produce graphics, process mouse and keyboard inputs, connect to webservices, and perform complex graphical transformations. The end result is limited only by your imagination. MaiTai can export a Java Webstart application or a QuickTime movie..."


The new java.net Poll asks Do you belong to a Java User Group? The poll will run through Thursday.


Our Feature Articles lead off with Sanjay Dasgupta's new in-depth article Simplify Native Code Access with JNA. We're also featuring Eric Siegelberg's Using a Service Delegate to Avoid MVC Controller Bloat, which describes how to maintain separation of concerns and avoid MVC controller bloat through the use of service delegates. And, our latest Java Tech guest column is Marina Kamahele's "Transparent" Panel - Mixing Heavyweight and Lightweight Components.


The latest Java Mobility Podcast is Java Mobile Podcast 90: Augmented Reality: Excerpts from the JavaOne 2009 Augmented Reality session with Kenneth Andersson and Erik Hellman of Sony Ericsson.


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

This week's java.net Spotlight is Project MaiTai, a new JavaFX-based open source project founded by Josh Marinacci. Josh announced the project last week:

If you follow my Twitter stream then you may have seen a string of strange videos I've posted. This was a series of experiments generated by a new art tool I've been building for the past few months. Now it's time to finally show it to the world.

Mai TaiScreenSnapz005.png

What is MaiTai? The project's About page tells us:

MaiTai is an open source tool for building interactive artwork. You create interesting sketches by wiring different blocks together with lines. There are blocks to produce graphics, process mouse and keyboard inputs, connect to webservices, and perform complex graphical transformations. The end result is limited only by your imagination. MaiTai can export a Java Webstart application or a QuickTime movie... MaiTai is free and open source (BSD). It is built on top of the powerful JavaFX programming platform.

I asked Josh how he came up with the idea for Project MaiTai, and what induced him to put the effort into creating the project. He said:

I created MaiTai because I love reactive graphics: things which react to real world inputs like mouse motion, touch screens, and music. I also wanted to see how far I could push the JavaFX scenegraph. I think this shows we can do quite a lot even without Prism.

Project MaiTai's source code is available on Kenai. The project's Kenai home page presents MaiTai as:

an intoxicating blend of audio visual effects that you'll definitely remember in the morning. Mai Tai is a tool for real time visual programming. It lets you combine high powered visual effects with streaming video, audio, and other programmatic inputs to create visual compositions. Mai Tai is built on JavaFX.

The project has three mailing lists(commits, issues, and roadmap). The Project MaiTai gallerylets you play videos that show completed MaiTai creations in action. For example (advance warning: don't watch this too many times at one sitting):

 

If you want to try out Project MaiTai for yourself, you can run the beta.


In Java Today, Mark Reinhold announced JDK 7 Milestone 5:

The JDK 7Milestone 5 builds are now available for download. This milestone introduces:

peligri annouces Updated Repositories for GFv3 Prelude:

GlassFish v3 is not just modular but the components can be updated through IPS-based UpdateCenter machinery. The Update Center team has been evolving tracking the IPS changes and adding refinements of their own; newer releases, like GFv3Preview, have been running recent UC, but the repositories for GFv3Preludewere running an older version of UC. Last week the Glassfish team pushed Update Center Toolkit 2.2u2 to the Prelude repositories. In normal conditions you should not notice the change but if you visit the repository directly you will see new graphics and additional facilities (like package search) plus improved performance and metrics...

Java Champion Antonio Goncalves is looking forward to A busy week at Devoxx:

If you don’t already know it, next week is Devoxx : the biggest European Java conference. It’s my 4th time there and this year I’ll be doing 2 conferences, 1 BOF and 1 book signing session.


In today's Weblogs, Jim Driscoll writes about IE, Memory Management, and You:

In a recent blog, commenters took me to task for a perceived IE 6 memory leak. It wasn't actually there (they were wrong), but in attempting to prove myself right, I found a couple of memory leaks under IE in JSF's Ajax support. Since I just spent a week learning how all this functioned, I thought I'd set it down so that others could learn from my efforts...

Simon Morris details his book writing experience in JavaFX in Action: from pixels to print:

I think just about everyone at some time or other has wondered whether they have the makings of a best selling book within them.  An old school friend spent several years tyring to get himself published, before giving up and throwing his lot in with Lulu.com .  Occasionally, when we meet up for a drink, the conversation drifts towards the state of the current book market, and he recounts tales of woe involving rejection letters. Well, it took me about 45 minutes to become an author, and I wasn't even trying.  JavaFX in Action,  my first book, has just hit the printing presses, and for all those (like myself) who've wondered how a computing text book gets written, the following should be a real eye-opener. [Freebie copies are available for those who survive to the end of this posting.] ...

Carol McDonald provides Web Site Performance Tips and Tools:

Web Site Performance Tips

  • Make Fewer HTTP Requests 
    • reduce the number of components in a page by combining CSS into single stylesheet,  JS single script 
  • Use A Content Delivery Network 
    • such as Akamai Technologies, Mirror Image Internet, or Limelight Networks. 
  • Add An Expires Header 
    • for static components set a far future expires header
    • for dynamic us a cache-control header ...

In the Forums, Imran M Yousuf is seeing an Error with load balancer plugin on Ubuntu: "Hi, I am trying to install Sun Java System Web Server for load balancing with GlassFish v2.1 cluster. But I after following all the steps correctly I am getting the following error: fine (14633): debug reports: Entering..."

Michael Czapski asks about Endorsing Certificate policy - What good is it for?: "Hello. This is a contextual question. The discussion in "Metro Security Guide", section 12.3.7, at ..."

black_lotus posted not prompted for client certificate: "Hi, I setup a listener running on 443 and enabled security, installed a self-signed certificate, and enabled client authentication via the admin console. When I access the server through https, I am prompted to accept the self-signed server..."


Our current Spotlightis Josh Marinacci's new JavaFX open source Project MaiTai: "What is MaiTai? MaiTai is an open source tool for building interactive artwork. You create interesting sketches by wiring different blocks together with lines. There are blocks to produce graphics, process mouse and keyboard inputs, connect to webservices, and perform complex graphical transformations. The end result is limited only by your imagination. MaiTai can export a Java Webstart application or a QuickTime movie..."


The new java.net Poll asks Do you belong to a Java User Group? The poll will run through next Thursday.


Our Feature Articles lead off with Sanjay Dasgupta's new in-depth article Simplify Native Code Access with JNA. We're also featuring Eric Siegelberg's Using a Service Delegate to Avoid MVC Controller Bloat, which describes how to maintain separation of concerns and avoid MVC controller bloat through the use of service delegates. And, our latest Java Tech guest column is Marina Kamahele's "Transparent" Panel - Mixing Heavyweight and Lightweight Components.


The latest Java Mobility Podcast is Java Mobile Podcast 90: Augmented Reality: Excerpts from the JavaOne 2009 Augmented Reality session with Kenneth Andersson and Erik Hellman of Sony Ericsson.


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

The results of the past week's java.net poll suggest that, while a fair number of developers are watching the developments related to the Java Store, a majority isn't yet paying much attention. A total of 193 votes were cast, a relatively small number compared with most recent java.net polls. The exact question and results were:

What do you think about the Java Store's recent progress?

  • 2% (4 votes) - The new client is a significant advance
  • 4% (8 votes) - PayPal X integration is significant
  • 3% (6 votes) - Both of the above
  • 29% (56 votes) - It's still not available in my country
  • 4% (7 votes) - It still doesn't work on my OS
  • 49% (94 votes) - I haven't followed the Java Store news
  • 9% (18 votes) - I don't know; other

This is not a scientific poll; rather, it is a voluntary survey. Hence, the results should not be assumed to accurately reflect the categorization of views within the entire global population of software developers.

Among the people who chose to vote, very few were able to offer an opinion about the Java Store's recent progress. In fact, at least 82% of the vote reflects either that the voter is unaware of the recent progress, or they are blocked from using the Java Store software due to country restrictions or OS issues.

A total of 9% of the voting considers the two very recent Java Store related areas of progress to be significant. Another 9% selected "I don't know; other." The fact that these people did not select "I haven't followed the Java Store news" implies that they have some awareness of the recent news, and either they haven't investigated it fully enough to have a strong opinion, or they don't consider the recent news significant (which would be why they didn't select one of the first three options).

For those who would like to catch up on the recent Java Store and Java Warehouse news, here are a few resources:

New poll: JUGs

Our new poll asks Do you belong to a Java User Group? The response options include choices like "I sometimes attend JUG events" for those who don't really have a "yes" or "no" answer. The poll will run through next Thursday.


In Java Today, Terrence Barr announced Java Store: Now serving payments:

Last week, PayPal announced their PayPal X Adaptive Payment API. Coinciding with that announcement Sun enabled the Java Store to take advantage of these new payment services. Starting immediately with the U.S., content developers can price their applications in the Java Store and leverage payment processing by PayPal, resulting in a convenient in-store billing mechanism for customers and developers. Developers receive 70 percent of the purchase price and funds are instantly routed to the developer upon completion of a transaction, thus providing fast monetization and real-time feedback on purchases...

The JCP Program Office reported the Final Results of the 2009 EC Elections:

The results are in...the 2009 JCP EC Elections have officially concluded, and final results are available on jcp.org. Congratulations to the new and re-elected JCP EC Members! ...

The java.net Java User Groups Community posted news from Bert Ertman, NLJUG reports on their 6th Successful J-Fall Developer Conference:

Email from JUG Leader Bert Ertman Nov 11th 2009: "....Yesterday, we ran a very successful J-Fall, our sixth. We had a number of Sun people over, including Reggie, Simon and Arun Gupta as well, amongst several others. Arun wrote a very nice blog entry about his J-Fall experience and it has a number of nice pictures.

In today's Weblogs, John Ferguson Smart writes about Parameterized web tests with Maven and Selenium:

Selenium is a popular web testing framework, well known for the Selenium IDE, which lets you record and replay web tests in the form of HTML files. However, that is not my preferred way of using Selenium. In fact, I much prefer using tools like Selenium for Acceptance Test-Driven Development. The high-level Selenium API is great for writing executable acceptance tests. This approach also works well with easyb, but in this article, for simplicity's sake, we'll just be sticking to plain old JUnit-driven acceptance tests...

Josh Marinacci is Announcing Project MaiTai:

If you follow my Twitter stream then you may have seen a string of strange videos I've posted. This was a series of experiments generated by a new art tool I've been building for the past few months. Now it's time to finally show it to the world...

Carol McDonald talks about her presentation on Java Garbage Collection, Monitoring and Tuning:

Yesterday I gave a talk at a the Jacksonville JUGabout Java garbage collection, monitoring and tuning, which included a demo of Finding Memory Leaks Using the NetBeans Profiler and a demo of the VisualGCplugin for VisualVM...

In the Forums,imavroukakis has a Wsimport WS-I BP1.1 compliant SOAP port parse issue: "Hello again I've got an odd issue with an externally provided WSDL. While feeding it to wsimport I get the following: [WARNING] not a WS-I BP1.1..."

jaded83 is seeking help with JOptionPane - closing the dialog: "Need new feature when closing JOptionPane's dialog which is created through createDialog method. By default in createDialog method PropertyChangeListener is added for property name of VALUE_PROPERTY to JOptionPane (which sets the dialog..."

abhigeetguptag asks about changing language in TextField: "Hi, How i can change language in Textfield from default english to some specific languages.My phone had support for different languages. Is there any way to handle it.As TextArea will by default take language from phone which are set by..."


Our current Spotlightis Geertjan Wielenga's post Financial Applications on the NetBeans Platform: "Experian and Soci

Janice Heiss pointed me to a new series of videocasts that's now available on java.sun.com: Deep Dive: Java Warehouse and Java Store With Bernard Traversat. The videos are hosted by Ed Ort, Senior Staff Information Engineer for Sun. Bernard Tarversat is Director of Engineering for the Java Store.

The deep dive is a three-part series:

  • Part 1: Get an overview of the Java Warehouse and Java Store
  • Part 2: Learn how to submit a desktop application to the Java Warehouse
  • Part 3: Learn how to use the Java Store

Part 1 has a run time of just under 7 minutes. If you haven't paid much attention to the Java Store thus far, this videocast provides a good overview. It also provides an update on what has happened since JavaOne, including discussion of the progress toward enabling developers to monetize their Java applications.

Part 2 is a fairly detailed (almost 16 minutes) demo that will be useful for developers who'd like to submit applications to theJava Warehouse for distribution via the Java Store. You need a Sun Developer Network account in order to submit apps to the Java Warehouse. The Warehouse portal supports IE and Firefox on Windows; Safari on Mac; and Firefox on Linux. Submitted applications must be approved by the Warehouse. Once an app is approved, it is up to the developer to decide when the application will be published (i.e., made available to visitors to the Java Store). An "auto-publish" option is available when you submit your application, designating that the application should be published automatically immediately after it is approved. A few other notes: if your application is for purchase, the purchase price must be at least $1.99; images/icons/screenshots must be in PNG format, and have specific sizes (to enable uniformity in the display of apps in the Java Store); version changes are supported through a convenient process.

Part 3 demoes the Java Store, including the new JavaFX Java Store client. The store offers the ability to run a preview of an application, where the store visitor can test a portion of the application that has been defined as a preview, without installing it, through a JNLP file and Java Web Start. The developer does not have to create the actual JNLP file for the preview; there is a process within the Warehouse that accomplishes this. The last half of the videocast includes presentation and discussion of the architecture of the Java Warehouse and Store, application view and download statistics that are available to developers, and Warehouse support. In all, Part 3 occupies just under 16 minutes.

If you'd like to get up to date with what's been happening with the Java Warehouse andJava Store, and also see them in action, the Deep Dive: Java Warehouse and Java Store With Bernard Traversatseries is something you'll want to watch. With a total run time is almost 40 minutes, the series really does take you on a "deep dive" into the warehouse and store. Even though I've followed the progress of the Java Store, there was a lot of stuff in the video series I hadn't seen before (especially the demoes of the warehouse and store).

Also, don't forget that we currently have a poll running that asks What do you think about the Java Store's recent progress?. Tomorrow will be the last full day of voting, so if you haven't voted yet, and you're interested in voting, be sure you do so soon!


In Java Today, Janice Heiss pointed me to a new java.sun.com videocast, Deep Dive: Java Warehouse and Java Store With Bernard Traversat:

Up on java.sun.com is a new deep dive videocast titled "Deep Dive: Java Warehouse and Java Store With Bernard Traversat," in which Bernard Traversat, Director of Engineering for the Java Store, discusses and demonstrates the latest advancement in Java technology: the consumer Java Store and the Java Warehouse for developers...

Scott Leberknight asks Can Java Be Saved?: :

The Java language has been around for a pretty long time, and in my view is now a stagnant language. I don't consider it dead because I believe it will be around for probably decades if not longer. But it appears to have reached its evolutionary peak, and it doesn't look it's going to be evolved any further. This is not due to problems inherent in the language itself. Instead it seems the problem lies with Java's stewards (Sun and the JCP) and their unwillingness to evolve the language to keep it current and modern, and more importantly the goal to keep backward compatibility at all costs. Not just Sun, but also it seems the large corporations with correspondingly large investments in Java like IBM and Oracle aren't exactly chomping at the bit to improve Java. I don't even know if they think it even needs improvement at all. So really, the ultra-conservative attitude towards change and evolution is the problem with Java from my admittedly limited view of things...

If you have a near-term deadline to meet, please don't read this, or click the link. Josh Marinacci has announced the Challenge: Five Winners, and the new Challenge: Holiday:

The Winner: Video Poker - We had four high quality entries for this month's challenge. The race was tight, but now we have a winner: Matthew Hegarty's Video Poker. I simply can't believe it was done in only 3000 characters...


In today's Weblogs, Fabrizio Giudici is Fixing two problems with Maven + Mercurial + Hudson: second take:

In the past weekend I've been able to improve the settings for automated Maven releases that I've blogged about about ten days ago. Peter Mount complemented the information with some practical examples on how to use that stuff invoking Maven with the proper parameters. I've been able to significantly clean up and improve the Maven configuration, so now a staged release can be performed exclusively with a sequence of Maven invocations, specifying profiles instead of a complicated set of parameters. And I'll show you how to fit it better with a CI environment such as Hudson...

Aaron Houston provides advice on how to Cultivate Your Career Today -- Join A User Group:

Java Evangelist Carol McDonald sent me a snippet from this blogger: User Groups: If you live near a major metropolitan area, it's easy to get involved in the local user groups that are there. Most user groups meet once a month, so they don't consume too many evenings when your family expects you to be home. Don't be a passive participant; get involved. Talk about what you've been learning in your spare time. Help organize the group. Get to know the other people in the group...." On the JUG leader's mailing list we've had many discussion(s) about the networking power of a Java User Group. Perhaps one of my favorite posts was by Java Champion Yakov Fain of Java Developer Journal. In his JDJ article: "Our JUGs need a Push-Up", Yakov makes some excellent points--quoted below...and things I've seen at a JUG meeting...

Felipe Gaucho announces CI of the Arena Project now available to Windows users:

With the newcomer Vaadin module I updated the Arena Project script to support builds on Windows platform. Not a big deal in terms of configuration but it is worthy a notification in case you had tried to build the project before and got frustrated with the Platform Classifier restricted to theUNIX-family...

In the Forums,sasnani is Nt able to use java.awt.Button : CDC application : Java ME Platform SDK 3.0: "I am new and was trying to develop a CDC application. i learn from net that we can use awt to fullest for the same. But when I try to code in the SDK 3.0 platform, it DOES NOT show support for awt widgets, though it gives partial support for..."

waynetg has a question regarding Digest authentication in glassfish: "Hi, does digest authentication work in glassfish. One of the wiki entries says it doesn't but I'm hoping its old and wrong..."

Igor Mameshin Can't find WSIT config file for servlet based WS: "Hello all, I am running into a problem with a servlet-based Web service. I managed to create several EJB-based web services and have it working. But I am still learning how to implement SAML callback handler for..."


Our current Spotlightis Geertjan Wielenga's post Financial Applications on the NetBeans Platform: "Experian and Soci

Some developers seem to think that logging is not really all that useful or important. I've worked with people who have this view. They think that the only way to solve a problem is to launch your program within an IDE or debugger, insert break points, look at variables, step ahead a statement or five, etc.

This method indeed is suitable for some problems. But it's not by any means suitable for all situations. Take, for example, multithreaded applications. Or, what about the case of very intermittent errors in a critical operational system that runs on a 24/7 basis? If you've got 168 hours a week to sit there running the application manually within your IDE, in parallel with the operational runs, waiting for that once in every 5-32 days anomaly (and really hoping that when it occurs operationally it also occurs within your IDE launched and monitored run) -- well, go right ahead and enjoy yourself!

But, guess what: there's a good chance that these unusual, intermittent failures won't be repeatable, and they won't occur in your IDE or debugger driven run, or any attempted rerun! They're intermittent! So, now what do you do? The damaging failure has occured once again, your boss is hovering over you saying "Well, you were watching it. So what happened, and why?" And you... umm... haven't a clue?

Logging has been an important component of operational systems since the inception of operational computing systems. A log is simply a very basic monitor. What complicated system runs without instrumentation to enable the operators to assess the performance of the system? Are we in a "nominal" state (i.e., nothing unusual stands out), or is something flashing an edge or out-of-bounds condition? That's what logs are for.

OK. So much for lecturing against logging naysayers. Just take it from someone who has decades of experience in the area: logging is of critical importance for operational systems.

That's why the recent Version 2.2.0 release of Microlog captured my attention, when I saw the news posted by the java.net Mobile & Embedded Community. Microlog:

is a small, yet powerful logging library for mobile devices based on the Log4j API. Supports Java ME (J2ME) and Android. Logs to device, to PC or to servers online. Used in all phases from development on emulator/device to outdoor field-testing.

The benefits of Microlog include:

  • Easy to set up
  • Similar to Log4j
  • Small
  • Fast
  • Mature
  • Many different logging destinations: Console, RecordStore, File, Canvas, Form, Bluetooth, ... (many more)
  • Different formatters for different needs

Now, I think I'm in the minority of developers in that a requirement of the software engineering work I do is that the operational system has access to me on a 24/7 basis. I mean, it's a requirement of my job that a text message sent by the operational system can immediately get to me. My Blackberry is within hearing range (almost) constantly. I've even created my own custom messages to send to myself based on certain criteria being met by scripts I've created to troll the data situation.

Why? Because certain messages from the operational system might require an immediate response from me (and others). We're supposed to be up and running 24/7. We have a number of nines of availabilitythat we've contracted to provide. We don't want to fall below the required nines. Our future viability as a data center design, development, and operational management team depends on success in fulfilling the required uptime.

Microlog makes it easy to notify developers or operators that anomalies or potential problems may have emerged. Of course, you can also use it for basic debugging as you develop or update a new application. And it's tuned for JavaME and Android. For that to be the case, it has to be lightweight and fast. It's also mature, having been around since 2005.

If you're working on JavaME or Android code, and you need help with assessing the characteristics of operational code, or code that is intended for an operational environment, Microlog looks to me like something quite worthy of your investigation.


In Java Today, long-time java.net author Jeff Friesendemonstrates some of his recent investigations in Elvis Comes to Java:

In December 2008, Joseph D. Darcy blogged about leading Sun's efforts to develop a set of small language changes for JDK 7. This announcement led Sun to create Project Coin, an official conduit for receiving language enhancement proposalcoin_final_five"> none of these operators made the final cut...

Terrence Barr provides an OREDEV Wrap-Up (& looking forward to next year!):

Just returned from

In this week's java.net Spotlight, I'm highlighting Geertjan Wielenger's Financial Applications on the NetBeans Platform. For quite a while, Geerjan has been searching the web for applications that are built on the NetBeans platform. He's found applications for business, scientific research, mapping, and a whole lot more. He sometimes uses the phrase and acronym "Yet Another NetBeans Platform Application" (YANPA) as he adds new apps to his list of discoveries.

In this past Friday's post, Geertjan writes about the use of the NetBeans platform by two large financial corporations: Experian and Soci

The past week's poll results indicate that, in general, Java developers are of the opinion that the JCP performs a necessary but difficult task. The poll drew a relatively small number of votes: 171. The exact question and results were:

What's your view of the JCP's role in guiding Java's future?

  • 40% (68 votes) - It does a good job of ensuring Java's stability
  • 20% (34 votes) - I often disagree with its decisions, but we need it
  • 13% (22 votes) - It impedes Java's development
  • 6% (11 votes) - We'd be better off without the JCP
  • 18% (31 votes) - I don't know
  • 3% (5 votes) - Other

The standard caveat applies: this is a voluntary survey, not a scientific poll, etc., etc.

Among those who chose to vote, at least 60% believe the JCP plays a needed role. On the other hand, almost 20% of the voters view the JCP in a negative light, as an organization that at minimum impedes Java's development in important areas. A fairly large number of voters either don't have a strong view about the JCP, or their view wasn't among the options. No one posted a comment to this poll.

While 60% of the voters explicitly state that a standards organization is needed, I have to believe that some or most of the 20% who have a negative view of the JCP probably also share the view that a standards organization is needed to protect Java's integrity and prevent significant fracturing. Even the people who selected "we'd be better off without the JCP" may be expressing that they'd prefer a standards organization that's different in its structure and mode of operation from the JCP, rather than that they think having no Java standards organization whatsoever would be the ideal situation.

I was actually surprised by these results. When your viewpoint is formed by newsfeeds and blogs that reference the JCP, it's easy to get the idea that almost no one actually likes the JCP. What's publicized is lots of criticism.

But, then again, I suppose that makes sense. A standards organization is something where, if people are pleased, they'll just keep quiet and stay busy doing their work. Hence, the views that are publicly stated will typically be critiques, along with arguments on the relative importance of features that are being considered for approval.

New poll: Java Store progress

If you have followed the news from this week's PayPal Innovate09 developer conference, you're probably aware of Sun'sannouncementabout integration of the PayPal X platform into the Java Store. If you read James Gosling's post, you may also have tried out the new Java Store client.

The new poll asks what you think about the Java Store's recent progress. The poll will be open for the next week.


In Java Today, Roger Kitain has posted a new Enterprise Tech Tip, Using CDI and Dependency Injection for Java in a JSF 2.0 Application:

This Tech Tip covers the intersection of three powerful technologies that are part of the Java EE 6 platform: JSR 299: Contexts and Dependency Injection, JSR 330: Dependency Injection For Java, and JSR 314: JavaServer Faces 2.0. JSR 299: Contexts and Dependency Injection (CDI) defines a set of services for the Java EE environment that makes applications much easier to develop. It provides an architecture that allows Java EE components such as servlets, enterprise beans, and JavaBeans to exist within the lifecycle of an application with well-defined scopes...

robilad presents his latest OpenJDK roundup:

In OpenJDK 6, Andrew Hughes finished backporting the Nimbus Swing Look & Feel. Kelly O'Hair meanwhile went ahead and restructured the jaxp & jaxws repositories to follow a new component delivery model. Milestone 5 in OpenJDK 7 has been extended in late October to cover build 76 to allow the JSR 166y integration to happen. Martin Buchholz pushed that code in earlier this week, while Joe Darcy did the same for his implementation of the Strings in Switch language change from Project Coin...

Java Champion Michael Huttermann writes about the upcoming Maven 3 talk in Cologne, by Jason van Zyl:

I'm very proud that Jason van Zyl, founder and driver of Maven, will give a talk about Maven 3 in Cologne for the Java User Group, on November, 16th. I'm also very proud that I managed to catch another international high-end speaker for a presentation, for coming to Germany. Again, other groups profit from my preparatory work, and invited him too, now, for making a small side trip there. I will never understand, why there are few to zero cooperations between Java user groups, and where the benefit is to provide exactly the same talk in a distance of few days a bunch of miles away. Details about the talk here: http://jugcologne.eu.

In today's Weblogs, Janice J. Heiss sent me an email pointing me to the Sun Developer Network article series Troubleshooting OpenSSO with Firefox Add-Ons. This series, which has been a work in progress by since March, is written by Jim Faut, with contributions from Rick Palkovic. The following articles have been published thus far:

John Ferguson Smart says he'll See you in Auckland, Melbourne and Syndey for the next TDD workshops:

I'm very excited about the upcoming Testing and Test-Driven Development for Java Developers 2-day workshop, coming soon to Auckland, Melbourne, andSydney. This course is already proving popular, with requests for on-site interventions coming in from around the world. Already a key best practice in Agile Development, Test Driven Development (TDD), as well as related techniques like Behaviour-Driven Development and Acceptance Test-Driven Development are growing in popularity among developers, as both empirical evidence and research point to its effectiveness. Check out "Uncle Bob" Martin's recent blog entry on this topic....

Binod describes SailFin CAFE: Adding communication capabilities to web applications made (very) simple:

So far I have described how create server applications that handle call, conference and IM using SailFin CAFE. In this edition lets take a look at how to add communication capabilities to web applications in a (very) simple way. I like to start with the code. So, here is some code that implements making a phone call between two parties from the web application...

In the Forums, Tony Anecito has a Metro/Tomcat6 Deployment issue...: "Hi All, I noticed that my web app needed to have the JAXWS jars put into the Tomcat 6.0.18 lib directory. I thought since I am using JDK 1.6.0_16 that Tomcat would find the jars needed for web services from the JDK but it did not do that..."

vinaykagarwal is wondering What causes javax.media.RestartingEvent: "Hello, On some players (but not on all) I am observing javax.media.RestartingEvent for some videos which causes it to stop playing momentarily. What is the real reason for this event? I am looking for something more descriptive than Player..."

And btasdemir has a Virtual Keyboard problem: "Hi all, I try to use Virtual Keyboard but failed. I dont know why but on Netbeans default qwerty emulator when I focus on a textfield, I dont see any virtual keyboard. on code side; public void startApp() { ..."


Our current Spotlightis the java.net ks2009open source project: "KS - 2009

Janice J. Heiss sent me an email pointing me to the Sun Developer Network article series Troubleshooting OpenSSO with Firefox Add-Ons. This series, which has been a work in progress by since March, is written by Jim Faut, with contributions from Rick Palkovic. The following articles have been published thus far:

We've just published Eric Spiegelberg's new article, "Using a Service Delegate to Avoid MVC Controller Bloat". Eric is a Minneapolis-based Java EE consultant. This is the sixth article he has contributed to java.net.

In his new article, Eric addresses the problem of "controller bloat" -- by which he means the tendency for code that does not belong in the controller in an MVC application to creep into it, as developers rush to get the job done, take what appear to be short cuts, and generally get lax about rigorously applying the principles of separation of concerns.

while the creators of frameworks and tools must invest a great deal of attention and focus on design, application developers can afford to be more lax. A classic example of the design gap is what I call controller bloat. In the case of web applications, controller bloat occurs when application developers violate separation of concerns and put non-web service code directly into their web MVC framework's controllers.

If you've been involved with software engineering for a while, say, at least five years, you're familiar with the problems that violation of separation of concerns creates. The code becomes difficult to read, difficult to maintain, and the possibility of its reuse is significantly diminished because multiple functions are embedded into, interwoven within, a single block of code. This situation can exist within the realm of pretty much any type of software development, not just in the Java MVC world.

Eric provides example code that illustrates the problem, using Spring MVC and a web MVC controller. It's not that the example code won't "work" -- sure, it would perform the function it was designed to perform. As Eric explains:

While the above code sample is functional, it does exhibit a major design problem: service code (i.e., your business logic) is unnecessarily located within the controller itself. The majority of the code within the handleRequestInternal method has nothing to do with the web tier and therefore violates separation of concerns. This leads to a handful of cascading disadvantages. Because the code lives in a class directly depending on the web tier, it can't be easily reused within non-web-based applications. Next, just as the code is difficult to reuse outside of a web-based application, it is difficult to unit test. While there is a plethora of options such as using mock objects or sophisticated strategies such as hot deploying code to running application servers and automated remote unit tests, that fact that your service coded is coupled to your presentation tier complicates both its testing and its reuse.

Eric goes on to discuss, and illustrate via code snippets, a solution: namely, creating a service delegate, so that the service code is extracted from the controller. This service delegate then becomes a reusable service, because it's now decoupled from your MVC controller. Furthermore, your web service tier itself gains flexibility:

Your MVC selection no longer needs to be a strategic or organization-wide decision because switching, or even using a separate MVC framework per application, is now trivial. Each application you create now has the freedom and flexibility to use the best framework for the given requirements and technical circumstances.

The thing about this situation that often trips up junior programmers is that mixing service code with web code doesn't necessarily seem inefficient, if you're just focussing on the specific task you need to get done today. But, a project lead or architect necessarily takes the longer-term view. Code written today isn't just for today. A year from now, you don't want to have to reinvent the same wheel you invented nine months ago and last week.

Eric cites additional benefits for the development team:

It doesn't scream for your attention, but another subtle benefit is that this design makes it easier for new team members or less experienced developers to join and contribute to your project. For a multitude of reasons, not all developers can jump head first into an existing system and make substantial contributions right away. By having your layers and your complexity cleanly separated, you can have a particular developer work on an individual area where they are strongest or most comfortable, while they gain experience with or knowledge of a different part of the system.

Eric concludes "Using a Service Delegate to Avoid MVC Controller Bloat"with:

While sample code demonstrating the design used Spring Web MVC for a Java based web application, the concepts presented universally apply to all types of applications as well as software created in any language for any platform. Because any time you emphasis good design, the end result is that your code will be easier to understand, develop, test, reuse, and maintain.

In Java Today, Java Champion Adam Bien wonders about the Sudden Death of Enterprise Projects?:

It seems like the huge, data driven, projects are either somehow completed, or were replaced by standard solutions. Especially in tougher times, even big enterprises are interesting in saving money and build software in more pragmatic ways. These are actually good news. Often (almost always) you can implement the same functionality with only a fraction of the originally planned resources, patterns, architecture, with a few passionated developers...

Joe Darcy posted Project Coin: Anatomy of adding strings in switch to javac:

Earlier this week, I happily pushed an implementation of Project Coin's strings in switch language feature into a repository being used for JDK 7 milestone 5. JDK 7 binaries with strings in switch will be available for downloading in due course. The javaccompiler uses the standard compiler architecture of having successive phases and adding strings in switch required modifications to several links in the chain of phases...

The first PayPal developer's conference is now closed. Frank Sommers published an informative report on one of the key events from the confernce, in his article PayPal Releases Open Payment Platform and APIs:

PayPal is best-known as a provider of electronic payments for e-commerce Web sites. Lately, the company has been working on a developer platform and associated APIs that allow deep integration of sophisticated payment processing into applications as well. Consumer-facing applications are a special target of this platform, especially after Apple announced that it would allow embedded payment integration into iPhone applications. PayPal unveiled its new developer platform at its Innovate 2009 Developer Conference...

In today's Weblogs, I'm leading with two interesting posts from outside of java.net. The first is Geerjan Wielenga's Performance Management Analysis on the NetBeans Platform:

Yet another NetBeans Platform application is a commercial application offered by Exie, in Norway. "Exie provides People-Driven Performance Management solutions architected for widespread adoption by companies serving dynamic markets. Exie drives financial outcomes and accountability across the company and thus effectively involve the entire organisation in the overall strategy. By making performance management available to everyone across the organisation, you create an organisational culture continuously striving to improve performance." ...

Second is Kirill Grouchnikov's Control alignment in Substance 6.0:

Last week i have written about improving the visuals oftext components, comboboxes and spinners in the 6.0dev branch of Substance look-and-feel library. Today, it's time to talk about the micro-design of these components - aligning perceived boundaries, text baseline and other visual elements of user input controls...

Jean-Francois Arcand says that he'll See you in Europe in November:

I'm will be leaving Qu

Geerjan Wielenga posted Performance Management Analysis on the NetBeans Platform:

Yet another NetBeans Platform application is a commercial application offered by Exie, in Norway. "Exie provides People-Driven Performance Management solutions architected for widespread adoption by companies serving dynamic markets. Exie drives financial outcomes and accountability across the company and thus effectively involve the entire organisation in the overall strategy. By making performance management available to everyone across the organisation, you create an organisational culture continuously striving to improve performance." ...

Kirill Grouchnikov posted Control alignment in Substance 6.0:

Last week i have written about improving the visuals oftext components, comboboxes and spinners in the 6.0dev branch of Substance look-and-feel library. Today, it's time to talk about the micro-design of these components - aligning perceived boundaries, text baseline and other visual elements of user input controls...

James Gosling attended the first ever PayPal developer conference, Innovate09, where Sun VP Eric Klein announcedand demoed the new integration of the PayPal X platform with the Java Store. Sun is a platinum sponsor of the conference (which is subtitled "the intersection of ideas and money"). Keynote speakers included Tim O'Reilly, eBay CEO John Donahue, and PayPal president Scott Thompson.

You'd have to say that PayPal has come a long way, to be holding a developer conference. At its most basic level, PayPal lets you open an account, embed a handful of lines of script into a web page, and you've suddenly got a working storefront. But clearly, PayPal has grown far beyond that. The conference includes two days of sessions, and six different tracks:

  • Innovators and Emerging Payments
  • Web Checkout with PayPal
  • Financial Innovations
  • Business Startup
  • Mobility
  • E-commerce with eBay

The conference has generated a lot of high profile coverage. For example, see Leena Rao's TechCrunch report PayPal X: A Complete List Of Adaptive Payments APIs and Sebastian Rupley's GigaOm article PayPal's (Partially) Open Platform to Usher in New Payment Models & Apps.

But, getting back to the Java Store: Eric's announcement talked about "an alliance with PayPal to support application payment in the Java Store Beta and enhancements to the beta user experience." Sun's formal announcement says:

Sun now supports for-fee applications submitted by developers for distribution in the Java Store Beta. Developers can price their offering anywhere from $1.99 to $200.00 (USD) and select the license rights they wish to apply to their application. Developers will receive 70 percent of any for-fee application sold through the Java Store Beta. Utilizing the new Adaptive Payment API from PayPal, consumers can authorize the Java Store Beta to bill against their PayPal account so they can simply click the "Buy" button and never have to leave the store. In addition, when a customer makes a payment in the Java Store Beta, the application owner also gets paid at the time of the purchase. This way, the developer immediately receives the revenue and knows exactly how many people have purchased their application.

In his post, James notes:

It always amazes me how complex it is to deal with all the details of global finance. And even so, the store today only handles US issues. But the framework is in place to go global as fast as the lawyers and accountants can work through the details - but it'll take a while. There's a new client application for shopping in the store, and a new warehouse site for developers to upload products.

The U.S.-only restriction is still in place, but that is being worked on as well. Also, Linux is still not an officially supported platform -- although the snazzy new clientJames mentions seems to run fine on the Gentoo Linux desktop on which I'm composing this post.

James asks developers to check out the updated Store and "let us know what you think: we'd like to get it out of beta and do a real large scale consumer launch as soon as we can."


In Java Today, James Gosling provides an update on Java Store ?: payment and a new client:

Put an accountant, a lawyer, an MBA and a software engineer together into a room... Sounds like the lead-in to a bad joke, but it's the exercise that the Java Store team has been living through for the past several months. At the PayPal conference today Eric Klein did an announcementand demo of the next phase in the Java Store's development. We've been working with PayPal on this for some time, using their new PayPal X platform. It always amazes me how complex it is to deal with all the details of global finance...

The Java User Groups Community announces the upcoming JUG Leaders Meet w/James Gosling at DEVOXX (JUG Birds-of-a-Feather session) Nov 18th, 2009:

The DEVOXX developer conference is to be held Nov 16-20, 2009 in Antwerp Belgium. Over 50 JUG Leaders will be meeting James Gosling to discuss a wide range of question(s) about the "State of the Java Union". James will also be speaking to DEVOXX conference attendees earlier in the day at 2pm. Below is a DEVOXX slideshow. Sun Technology Outreach staff will be adding photos/content in real-time from events happening at the DEVOXX conference (come back and check frequently)...

peligri invites us to Learn about OpenSSO or Troubleshoot it! - With Firefox:

Jim Faut and Rick Palkovic have been posting a nice series on how to troubleshoot OpenSSO with Firefox Add-Ons. They just pushed out two more entries in the series, which now includes ...

In today's Weblogs, Jean-Francois Arcand provides instruction on Writing a RESTful and Comet based PubSub application using Atmosphere in less than 10 lines:

Writing a publisher/subscriber (PubSub) is quite simple with Atmosphere using the atmosphere-jersey module. The main idea here is to use Comet for suspending the response when a client subscribe to a topic, and use REST for publishing messages to the those suspended responses. First, let's bind our application to the root uri using the @path annotation...

John Ferguson Smart talks about The three circles of developer web testing:

In this edition of the Java Power Tools Newsletter, we will be looking at strategies and tools for developer web testing. This is an important, but often overlooked, part of developer testing. After all, the web layer is what the end user actually sees and manipulates! And it is just as subject to bugs as any other application layer...

John Reynolds launched a discussion by suggesting that people Donate $5 to Eclipse:

Even if you love Netbeans, don't you think Eclipse is worth $5? http://www.eclipse.org/donate/

In the Forums,cwrighta70 is having Difficulties adding 2D or 3D text to the scene: "Hello! I have a 3D cube which I have created, and I've been able to add things to the scene such as spheres and dotted lines. I cannot, however, get any 2D or 3D text to show up. Here is some code I am using. Does this look correct? ..."

ghady_rayess has a question regarding Border line thickness: "Just a quick question, Does anybody know how to set the border line thickness for Round border in the Resource editor? Thanks"

And pillboy has an XML Schema question: "i would like to know if i could create a xml schema which a node contain both attribute and value? below is what i seen from w3cschool example, but after i create the schema and using xjc to convert to java object, there is no method which i could use to..."


Our current Spotlightis the java.net ks2009open source project: "KS - 2009

Java.net has a long-standing tradition of publishing high-quality full-length Java technology articles. We also have a vibrantblogging community, and active forums. While these types of content can cover pretty much any problem that Java developers would find themselves facing, it seems like there's room for at least one more new type of content. For this reason, today we're re-introducing the Java Tech column. It will have the same hard technology focus as before, but will feature a new, "bite-sized" approach to presenting solutions to Java development problems and issues. The java.net article format will still be applied, but Java Tech columns will be much shorter in length than traditional full-length java.net articles.

So, what's the point of doing this? Well, the intention is for the Java Tech series to provide solutions to specific problems related to programming and Java technology. These problems and solutions are probably too narrowly focused to warrant a full 2000+ word technical article. Yet, the problems are sufficiently difficult that in most cases they deserve a more formal and complete presentation than is appropriate for a forum or blog post. Yes, some java.net bloggers in fact write the kind of fairly formal post I'm talking about, little articles really. But the point of the re-instantiated Java Tech column is to have a central organizing banner for publishing solutions to specific problems that may have broad application and relevance for many developers.

Today I published our first new Java Tech column, Marina Kamahele's "Transparent" Panel - Mixing Heavyweight and Lightweight Components. In this column, Marina talks about the problem of overlaying lightweight Swing widgets on top of heavyweight AWT components. Specifically, Marina addresses the issue of transparency. A real-world example application based on NASA's World Wind Java SDKis also included.

Marina shows how a developer can overcome the problem whereby "a lightweight JPanel overlaid on top of a heavyweight AWT component cannot be transparent":

To overcome this problem, one can implement aTransparentPanel by overriding theJPanel::paint() method so that the JPanelonly paints its children, as shown below.

Marina then provides code that illustrates the solution.

Illustrating and demonstrating solutions to problems is what the renewed Java Tech column is going to be about. The problems will range in complexity and breadth of scope, and universal relevance, somewhere between what you'd find in a forum entry or a small blog post, and what you'd find in a full-scale technology article.

Thinking about it in terms of number of words: these columns will mostly be between 500 and 1000 worlds, and include code snippets, perhaps a diagram or screen shot (depending on the problem addressed). That's what I mean by "bite-sized": relatively easy to read and digest in one sitting. And, also, nowhere near as difficult to write as a full-scale java.net technology article.

I'm excited about the new Java Tech series, because I think a lot of people in the java.net community have discovered solutions to specific problems that are relevant for other developers, and I'm hoping that people will want to take the time to document their discoveries for broader dissemination via the column. If you've got an idea for a Java Tech column, please contact me, and we can discuss the possibilities!


In Java Today, Geertjan Wielenga has filed a Conference Report: TheServerSide Java Symposium:

"Power strips everywhere" was the first thought that struck me at TheServerSide Java Symposium, which took place Tuesday and Wednesday this week in Prague, Czech Republic. Instantly, the sad flat laptops around squashed JavaOne beanbags became little more than grim memory. Wireless was immediately available and excellent throughout and, with the preamble prior to the keynote mercifully short and sweet, the conference had begun...

Josh Marinacci announced that the JFXStudio Challenge: Five is over!:

JFXStudio Challenge: Five is now completely over. We got several entries that I'm excited for you to see. Unfortunately I won't be able to get them judged this week as I am in Sweden for the OreDev conference, but rest assured you'll find out the winner, and next month's theme, very soon...

Kirill Grouchnikov announced the Flamingo 4.2 official release:

I am excited today to announce the availability of the final release for version 4.2 of Flamingo component suite(code-named Hiolair). It is a stabilization release that adds a few minor features and fixes all known bugs.

Here is the list of minor features added in release 4.2:

  • Support for placing small command buttons in ribbon galleries
  • Option to specify the callback for populating the default content of ribbon application menu
  • Command buttons support no icon / no text mode
  • Emitting full bounding box coordinates in SVG transcoder
  • Support for changing the expand listener of ribbon bands
  • Better tracing of inconsistent ribbon resize policies ...

In today's Weblogs, Jan Haderka announces SwingX 1.6 released:

It's already five months since the version 1.0 have been announced at JavaOne. Today, new version of the SwingX have been released. This release is first Java 6 only compatible release. Setting base line to Java 6 allowed us to drop all the extra code necessary to maintain backwards compatibility for functionality added to the cora Javasince the release of Java 5. So as of today, you can benefit cleaner and leaner code behind API of various SwingX components, such as searching and filtering APIs ofJXTable, JXTreeTable and other components. Moving to Java 6, you now also get the full Nimbus LAF support...

John Ferguson Smart provides More Groovy Magic with Maven pom files:

Last time, I introduced some of the new Groovy support available in Maven 3, and looked at how you will be able to write your pom files in Groovy, or in other non-XML notations. In this article, we'll take a further look at what you can do with a Maven pom file written in Groovy. Jason Dillon, the guy who brought us GMaven, has been working hard on extending the Groovy pom scripting features, and is coming up with some great new capabilities...

Fabrizio Giudici provides advice on how to Kick your bugs in the ass! with the Chuck Norris Hudson plugin:

Just installed a fundamental Hudson plugin ...

In the Forums, REV Tamas has questions about jmx alerts: "Hi, On a GlassFishESB v2.1 production server we'd like to receive some kind of alerts every time a SEVERE or WARNING-level log is issued. We checked the "Alarm" on Logger setting page, but couldn't catch any alarm with..."

polski has questions regarding World managment, Octree, setUsedData() etc...: "I have a question about world management. I have considering implementing an OctTree or some kind of tree like structure for 3D. Does java3d internally sort the coordinates (x,y,z) in the BranchGraph? That is, does it balance..."

And bernard_horan talks about Internationalising Wonderland: "I've just posted a new blog entry reporting on our progress internationalising Wonderland. I'd also like to take this opportunity to thank Ronny Standtke for taking on this work and also Michel Denis for producing a French localisation..."


Our current Spotlightis the java.net ks2009open source project: "KS - 2009

This week we're spotlighting the java.net KS-2009 project, which is developing software to solve two-, three-, and four-variable Karnaugh maps(k-maps) on the J2ME platform. Karnaugh maps were invented in 1952 by mathematician Edward W. Veitch, and further developed in 1953 by physicist Marice Karnaugh, both of whom worked for Bell Labs. K-maps are usefule for solving Boolean algebra functions.

While I studied quite a lot of mathematics on my way to getting a Bachelor's degree in Physics in the 1970s, I certainly never encountered Karnaugh maps. From a quick search of the web, it looks like a primary application of k-maps is the design of circuits. For example, see "Logic simplification with Karnaugh maps" on the AllAboutCircuits.com site. From this, I would guess that some of the people I worked with in the 1980s, when I was developing instrument control and data acquisition software (interfacing HP-9000 and PC computers with the instruments using RS-232 and GPIB cables), probably were familiar with Karnaugh maps, since often I was interfacing the computers and software with their custom built circuit boards.

But back to the present: the KS-2009 project describes itself as "the world's first Karnaugh Map Solver for handheld devices" and describes k-maps as follows:

Karnaugh Maps are used to normalize complex digital circuits to reduce the requirements and complexity of hardware while implementing Digital Logic circuits. Mobile devices being so easy to access, this software will be a boon for all those digital circuit designers who are very often confronted with the problem to normalize complex digital circuits, and find normalization procedure using Karnaugh maps manually, very time consuming and difficult.

Talking about the current Version 1.0 release of KS-2009:

KS - 2009 Version 1.0 can be made in use to solve 2-variable Karnaugh maps, 3-variable Karnaugh Maps and 4-variable Karnaugh maps. The solutions will be given out in SOP (Sum of Products) form to ease understandability. This software is made on J2ME (Java 2 Micro Edition) platform using CLDC-1.0 and MIDP-1.1 profiles. KS - 2009 supports S-60 and higher mobile devices which support for Java Environment.

If you're interested in what is meant by "sum of products" there are lots of introductory pages available, for example, Canonical form (Boolean algebra) and K-maps (Karnaugh Maps). I myself have too little background in boolean algebra to get much from these pages quickly. It sounds so simple, doesn't it? Boolean algebra! Surely someone who once felt comfortable working with differential equations should be able to pick it up in a flash, right?

The other thing the KS-2009 project makes me think about is: here's a tool that engineers can use to solve fairly complex problems using a hand-held device they can carry with them from a laboratory to a conference room, to an auditorium presentation, then back to the laboratory. Undoubtedly, the hand-held device they are carrying is more powerful and has greater analytic capability and processing speed than the clunky desktop workstations I was working on during my instrumentation days 25 years ago. The progress has been enormous since the start of my professional career. The KS-2009 project is one more demonstration of that fact.


In Java Today, the Java User Groups Community reports that the London Java Community has reached 750 members:

Email from Barry Cranford states that the London Java Community (founded in 2007) has now reached over 750 members. They run their meetings using meetup.com and they maintain a blog

"...Having been founded in November 2007, after twelve months we hit 250 members, I had hoped we could grow to 750 by the end of the year so it

Filter Blog

By date: