Skip navigation

Been Swank Blog

Posted by kfarnham Jul 31, 2008

JavaFX SDK is ready for its close-up

The JavaFX SDK is available for download from Download options includeNetBeans 6.1 with JavaFX for developers, and Project Nile, a suite of tools and plugins for Adobe Photoshop CS3 and Adobe Illustrator CS3 for designers. An overview of the technology is also available from updated pages at and the OpenJFX Communityon Finally, Josh Marinacci is blogging about JavaFX on a new JavaFX Blog. In his first entry, Start Your Engines, he promises:

Over the next few months you're going to see more blogs from me and other JavaFX developers, showing off tricks and waxing philosophic about graphical interfaces. And don't just think it's all eye candy. We've got lot's of nutritional value here too. This is just the beginning of a great new platform for rich applications.

Also Java Today, debate has once again arisen in the community around JSR 277, which is a proposed dynamic module system for Java 7. The flashpoint of the debate this time around is the version numbering system that is planned for JSR 277 Java Modules (JAMs). In the round-up article JSR 277 Debate Renews Around Versioning, InfoQ examines the discussions and arguments to understand more about the current state of JSR 277 and its acceptance by the community.

Overloaded method names must differ by parameter count and type and not return type, right? Wrong! The VM knows the return type of all methods and with a little bytecode engineering, you can have methods that differ only by return type. In our Feature Article,Return-Type-Based Method Overloading in Java, Vinit Joglekar shows you how it's done.

Today's Weblogsbegin with Dana Nourie explaining the Young Developer Learning Path. "This article describes the tools you can use to learn Java programming. You decide which tool to start with based on what you currently know."

In Developing MEP Connectors - Part 1, Santiago Pericas-Geertsen writes, "developing an application using the Sun Java Mobile Enterprise Platform (MEP) requires writing two components: a sync client application that runs on the mobile device and an enterprise connector that enables the MEP gateway to access the back-end system where the data is located. Ryan has already provided an intro on the architecture and features of the client SDK, so in this blog entry I'll introduce the Enterprise Connector Business Object (ECBO) API which is part of the server SDK and can be used to write enterprise connectors."

Finally, Kohsuke Kawaguchi describes Deploying non-Maven jars to m2 repository. "Maven users often have to push 3rd party jars to the Maven repository. Here is how you can do this easily."

In today's Forums,venu19 reports an LWUIT Rendering bug when Combo box is opened. "Noticed a bug with ComboBox. It only occurs when the combobox(should be a big list so when box is selected the opened box height should be bigger then the screen) is the last component on the screen and when selected, box opens at the top of the actual combo box and then notice the starting element in the box is off the screen some where at the top and the last element is at the top of actual box. So, its missing scrolling functionality and looks like the rendering y position is calculated as openboxY = actualBoxY - openBoxHeight(sum of height of all the elements in the combobox). so, openboxY being negative value when openBoxHeight is greater then actualBoxY."

osbald kicks off a discussion on Thread safety in SwingWorkers (take care they're not magic). "What bothers me is the worker and it's fields are created on the EDT, doInBackground() on some other thread has access to the fields then done() is back on the EDT accesing the same fields. So this isn't really thread safe? I should either have thread safe collections, add synchronised accessors, or make them atomics, or have that complicated return object (not boolean which is pointless in this example). Alternately is it possibly OK to access those fields after the Future.get() in the done() method? shouldn't their values be visible by then?"

Finally, mboet is interested in 64-bit Linux JAI native libs on Intel 64-bit machine (Xeon). "Has anyone tried to run JAI with the 64-bit native libraries for Linux on a machine with Intel 64bit processor? In particular, I am interested whether anyone has experiences in successfully running the (natively-accelerated) JAI for the linux-amd64 platform on Intel Xeon processors. From the name of the downloadable package linux-amd64 it is not clear if it was only compiled for AMD processors, or whether it also works for AMD-64 compatible ones (like the Intel Xeon)."

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

JavaFX SDK is ready for its close-up  

Lack of Communication Blog

Posted by kfarnham Jul 30, 2008

Whatever happened to Glossitope?

Anyone remember a year or two ago when we were talking about Josh Marinacci and Robert Cooper's "Glossitope", a Java-based widget engine that aspired to be a cross-platform Dashboard / Yahoo Widgets? Don't go looking too hard for it... the domain lapsed as the guys got busy with other things, and the project was particularly harmed by the long absence of a JDK 6 for Mac OS X, since Glossitope was built for Java 6 and used many of its GUI features.

Still, the idea of a cross-platform widget engine is a good one, so it's not surprising that the idea would find a new home somewhere.

In WidgetFX: Glossitope reinvented, Josh reports:

Earlier this year Stephen Chin emailed me about the AB5k code base, asking if the project was still going. I said no, but that the code was still available for anyone to pick up if they so chose. I also recommend using JavaFX instead of straight Java, since JavaFX has already solved a lot of the problems I was struggling with (like transparent windows and virtualizing components). Thus, Stephen started a new project: WidgetFX: The JavaFX Desktop Widget Platform.

Josh makes the case that JavaFX is a better home for this project, given that it has transparency, a dock, and draggability. And who knows, it might make for a compelling JavaFX showcase.

Also in today's Weblogs, Fabrizio Giudici says OpenJDK is a very good thing - but you have to test for it. "Even though OpenJDK is guaranteed to be Java, in the sense that it passes the Test Compatibility Kit, if you wish to deploy an application with no Java embedded and you imagine that it could be run with either Sun's JDK/JRE or OpenJDK you have to esplicitly test for both."

Carol McDonald's latest exercise is a Dynamic Ajax table example using dojo and RESTful Web Services on Glassfish . "This Sample Catalog app demonstrates a RESTful Web Service, coded using JAX-RS: Java API for RESTful Web Services (JSR-311) and Java Persistence API, which provides a list of customers, and a Dojo client which gets and displays the Web Service responses in a dynamic Ajax table ( Dojo grid)."

The latest JavaOne Community Corner Podcast is j1-2k8-mtH01: Dynamic Networks with JBI by Travis Chase. "This mini talk addresses how Glassfish and OpenESB helped solve the problem of connecting disparate, secured networks for the purposes of running an exercise. These networks only allow incoming XMPP traffic to enter their domain. Gestalt


Tell Me What You See Blog

Posted by kfarnham Jul 29, 2008

Talking about OpenJDK and 6u10

Sometimes, it's a little hard to keep the JDKs straight. There'sOpenJDK, which is working on Java 7 along with the back-port, OpenJDK 6.. and then there's Java SE 6 Update 10... and they're not the same thing, at least not yet. So one's got great user-facing features and the other's available under the GPL, and you need to decide which is more appropriate to your needs.

Still, it's great that both are so active, with 6u10 particularly close to release. In the Java Today section, you'll find an announcement that the JDK team is interested in your experiences with Java SE 6 Update 10 Beta and are running a Java SE 6u10 Post-Beta (b28) Survey. The poll seeks feedback on the stability and performance of 6u10, draggable applets, the Java Kernel Installer, the Java Deployment Toolkit, graphics performance, and the Nimbus look-and-feel.

Meanwhile, in a new SDN article, Roger Yeung shows how to make use of The New Draggable Applet Feature in the Java SE 6 Update 10 Plug-In. "Starting in Java SE 6 Update 10, currently in beta release, the new Java Plug-in includes a draggable feature for applets. This feature allows users to bring together their browser and desktop experience. As a Java technology developer, you can use the rich functionalities in the Java platform to create an applet and allow the user to bring your applet to the desktop. This feature increases flexibility in application deployment and takes advantage of Java Web Starttechnology to increase the ease of deploying Java Network Launching Protocol (JNLP) applets."

On the OpenJDK front, Episode 33 of the FLOSS Weeklypodcast features an interview with Dalibor Topic and Bruno Souza talking about OpenJDK and the open-sourcing of Java. In a discussion with hosts Randal Schwartz and Leo Laporte they talk about the history of third-party FLOSS efforts like Kaffe and GNU Classpath, how Sun came around to its decision to open-source its Java implementation, how the open-sourcing is going, how the free software community will be able to use scripting languages atop the JVM, the SoyLatte project, and the importance of the project to the FLOSS community as a whole.

In today's Weblogs, Giovani Salvador looks at Java, SOA and XML. "Sometimes we think we have good understanding about XML technology. We believe that parsing XML is all we need to do with XML and we have good tools to do that, especially in the Java world. But when we enter the SOA world we realize how important is to understand lots of other things related to XML like namespaces. Here I list 2 reasons why we should pay more attention to XML mainly when entering the SOA path."

In New JSFOne track added Kito D. Mann announces that "JSFOne, the conference I'm hosting with NFJS, has just gotten bigger -- we added an entire new track full of quality nuggets of knowledge including portlets, security, Google API integration, and more."

Most Software Development Obstacles are ______. John Reynolds challenges you to "Fill in the blank in the following statement:
Most Software Development Obstacles are ______
(A) Technical
(B) Cultural
If you answered (A), then I am intensely jealous."

In today's Forums,codingvista is trying to figure out an approach for Firing up another midlet from running midlet. "I'm playing about with J2ME and I'm trying to write a little app where the menu provides a link to another app - when clicked the other app fires up in front of the running app. In NetBeans I've added the JAR/JAD to the resources folder but to be honest - I'm clutching at straws and have no idea what I'm doing I've tried platformRequest - but that has unexpected results."

magpie reports a problem with Windows XP SP2 dualview Rendering on one monitor only. "I would greatly appreciate if one of you Java2D guru could help me out with my problem. I've got a rendering engine that draws an image on multiple backbuffers (VolatileImages) and then blit them together as one before drawing it on a JPanel. Under Windows XP with dual monitor capabilities set as dualview when I drag the application to the second monitor the JPanel image goes blank and when I drag it back onto the initial monitor the image comes back. A potential solution was to recreate the VolatileImages with the new GraphicsConfiguration object as I move across monitors but the whole application just hangs."

Finally, jpowell92127 wants to know what's going on under the covers in Enable SSL w/embedded Java 6 http server? "We are trying to keep our project free of IDE and app server dependencies, a la JSSE and have the nice Endpoint.publish(url, serverObject) paradigm working for a fairly complex web service using Metro 1.2. For our security requirement, It would be completely sufficient for us to enable SSL at the transport layer, but all of the real work in the relevant Netbeans/Glassfish example is being done under the hood and it is not obvious how to do it programmatically. Since we are using Java 6 it should be a matter of correctly configuring the embedded HTTP server context or instantiating an HTTPS server instead of the usual HTTP server. Has anyone been successful in getting this working?"

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

Talking about OpenJDK and 6u10  

C'mon C'mon Blog

Posted by kfarnham Jul 27, 2008

One Chance Blog

Posted by kfarnham Jul 25, 2008

28 minutes with James Gosling

We did a pretty good job of keeping our secret for Wednesday afternoon at JavaOne... the last mini-talk of the day was listed as just a Q&A with a "special Sun VIP". So when Java creator James Gosling showed up at 4 PM, there was a crowd of people who recognized him on the pavilion floor, but a vastly smaller crowd than, say, his Friday morning keynote. And with only a few dozen people, attendees had a chance to talk with Dr. Gosling about the big topics on everyone's mind.

It's remarkable that he offers this style of wide-open, unprepared Q&A, handling whatever the audience chooses to throw at him. I've seen him do a couple of these sessions over the last year (at Sun Tech Days Atlanta and the Mobile & Embedded Developer Days, if I recall correctly), so it's clearly hismodus operandi. Still, I can think of a lot of other tech luminaries who aren't about to put themselves in front of a crowd and offer themselves up for whatever kind of feedback is on the audience's mind.

Along with the kinds of topics he usually handles -- "where's Java 7", "what do you think about closures", etc. -- it's interesting to hear his opinions on topics that he hasn't talked about frequently in public. I was particularly surprised that he took a question about his favorite JVM-hosted scripting language, and got his initial answer down to one word (hint: it rhymes with "Impala").

Anyways, we recorded it like all the other mini-talks, and today, we're putting it on the podcast feed. That's right, the latest JavaOne Community Corner Podcast is j1-2k8-mtW10: Q&A with James Gosling. In the special, unannounced Community Corner session from JavaOne 2008, James Gosling discusses the creation of Java, what might go into Java 7, the future of Micro Edition Java, his thoughts on, his favorite non-Java language, closures, and more.

In Java Today, Terrence Barr has announced the release of phoneME Feature Milestone Release 3 (MR3). "We're excited to announce the new milestone release 3 (MR3) of the phoneME Feature project. As you know phoneME Feature is a live code base which is being continuously evolved by the efforts of community members as well as Sun's engineering teams. It forms the basis of Sun's commercial product known as the Sun Java Wireless Client 2.1." Along with providing a long list of features, Terrence's post includes information about supported platforms and guidance about the project's closer integration with Sun Java Wireless Toolkit (WTK) going forward.

The Aquarium asks What Languages Should be Added to GlassFish Server? "Ming is in charge of the localization efforts for the GlassFish Server and he is soliciting input on Expansion of Language Support. GlassFish is currently localized to Simplified Chinese, Traditional Chinese, Japanese, Korean, French, German, and Spanish - see TA entry and G11n Home Page. The process will be further simplified and opened for participation for GFv3 and GFv2.1."

Authors Tom Hicks and Randy Kahle begin with a consideration of bindings in TheServerSide article A RESTful Core for Web-like Application Flexibility - Part 1. "It may seem strange to start a series of articles about REST systems and the RESTful design approach with such a low level issue as binding. After all, REST is a "high level" idea that originated from a post hoc analysis of why the World Wide Web works so well However, if you'll allow us to ground the discussion at this level, I think you'll see that binding is an essential aspect of RESTful systems."

In today's Weblogs, Jean-Francois Arcand summarizes Grizzly news: New lead, New committers, New Tutorials and a Growing Community. "There is a lot happening this summer with Grizzly. We have two new committers, several new tutorials, a new lead and our community is growing. Happy Summer from the monster..."

Ryan Shoemaker's latest blog takes a A Closer Look at the MCBO API. "I briefly introduced the MEP client architecture in my previous post. In this post, we will take a closer look at the client architecture and use it as a foundation for the next few blog entries that will focus on the details of the programming model."

Finally, Mandy Chung introduces an OSGi Repository for Java Module System A prototype of the OSGi repository for supporting OSGi bundles in the Java Module System is now available in the OpenJDK Modules project. Looking for feedback and contribution from the community."

The latest Poll asks "Do you use static code analysis?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

In today's Forums,demonduck asks Is there a file that can be edited that can change the JVM parameters. "I'm thinking about writing a little GUI to help people set the JVM parameters on their machine. The way it is now is daunting to many people. Having to open the Control Panel and then find the JVM parameters and then figure out how to edit them is not done nicely. A simple GUI tool would be better than typing -Xmn256m etc. So is there a file that can be edited and changed or are JVM parameters kept in the registry?

anthony_p reacts to the recent discussion of Re: 6u10-b27 Flashing green border with dialogs. "We're probably going to partially address the issue with the annoyance of the border in 6u10 by reducing the time of flashing to lees than one second. This should be less distracting than before. Concerning the popup menus, we're investigating this issue now."

chile62 summarizes a solution in Re: RE: Problems with GlassFish trying to compile properties file. "To recap for others with similar problems: Having a properties file in the jre/lib/ext directory causes problems compiling jsps because the app server tries to treat the properties file as a jar file to use as the class path to compile jsps. For my case using the Ingrian device setup, the properties file is tied to the jar file location. The Ingrian device looks for the <path to ingrian.jar>/ file. By moving both of these out of jre/lib/ext directory and like you said adding the path to the ingrian.jar file to the jvm classpath options of Glassfish, the ingrian jar file was found and the properties file was no longer in the jre/lib/ext directory causing the jsp compile to fail.

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

28 minutes with James Gosling  

The World At Large Blog

Posted by kfarnham Jul 24, 2008

Life viewed without purple-and-gray-tinted glasses

John O'Conner has posted a rather remarkable report in his blog, one which probably reflects the worldview of a lot of people outside of Sun, but may well be surprising to those within the company's various campuses.

In Discovering Java outside of Sun, he writes:

After leaving the protective cocoon of Sun Microsystems, I have discovered a Java world I never knew. Of course, the blogosphere hinted that this world existed, but I didn't care. I barely noticed since that world had little relevance to me in my comfy space at Sun where it was always ok to use the latest release of the JDK and NetBeans.

I've discovered several facts since marching out into the lone and dreary world outside the Santa Clara or Menlo Park offices:

  1. Companies don't always use the latest JDK for their flagship products.
  2. Teams like the Eclipse IDE.
  3. Java isn't always the preferred rich client.

Is this news? Well, if all you've ever known is Java-as-default-choice, sure. Of course, that's not the world most of us live in, and it's important to have a real-world understanding of how Java's various offerings -- the latest JDK, NetBeans, Java as a rich-client platform -- fare against the competition when the goal is not Java for its own sake, but for real-world business purposes. This is the world Java contends in, and a clear understanding of its viability is crucial for the well-being of its future... to say nothing of your career and mental well-being.

Also in today's Weblogs, Terrence Barr looks at the proliferation of open source in mobile computing, in Symbian and open source: Who's going to show up? "There has been quite a lot of press around Nokia's announcement to buy Symbian, unify S60, UIQ, and MOAB, and open source the platform within two years. This move highlights a number of important things such as the intensifying battle for supremacy in the mobile platform space..."

Finally, in Good-bye, Alpha, David Walend writes "I just released SomnifugiJMS v22. Not alpha-0-22. After reading some blogs and reflectin, SomnifugiJMS is finally done with alpha releases."

In our Feature Article, Raphael Mudge shows you how to have Fun with Continuations. "Continuations offer the ability to persist program state, which gives you the ability to employ a number of sophisticated techniques in your development. Sleep, a Perl-like scripting language that runs on the JVM, offers first-class support for continuations. In this article, Raphael Mudge shows you how to use continuations in Sleep and what you can do with them."

In Java Today, Dalibor Topic has posted his OSCON OpenJDK talk slides. "Per popular request, the slides for mytalkabout the growing community around OpenJDK are up - the session was unexpectedly full for early in the morning." Dalibor's talk shows how the parallel histories of the Sun JDK and F/OSS alternatives came together to lay the groundwork for OpenJDK, the status of OpenJDK today, and the many projects relating to open-source Java, including Iced Tea, Ice Pick, the Common VM Interface, CACAO, BSD ports and Soy Latte, IKVM.NET, and more.

The Aquariumnotes the announcement of the Horizons (JavaCAPS, OpenESB, GlassFish, NetBeans) European Conference. "With the releases of OpenESB 2.0 and its commercial counter-part JavaCAPS release 6, there's a lot to cover in a user conference. Horizons conferences have been going on for a little while for SeeBeyond and JavaCAPS users and they now cover topics such as GlassFish, OpenESB, NetBeans and Mural (Open Source Master Data Management). The EMEA Horizons Conference should cover all of the above topics and be held in Munich, Germany from October 6th to 9th."

Matt Brasier, a consultant with niche Java EE consultancy C2B2 Consulting, compares the performance of JBoss Messaging, JBoss MQ and Sun Java System Message Queue, in their out of the box configurations. Performance testing open source JMS part 1 looks at the performance of these three implementations when sending messages to a JMS queue. The results indicate that the overhead of establishing a connection to a server, and looking up a queue is lowest in JBoss MQ, but that JBoss Messaging is the fastest at actually sending a message. However the time taken to send messages tends towards 1-2ms in all implementations. The testing also highlights the importance of configuring your JMS server to protect your application server from running out of memory.

In today's Forums,michael_heinrichs answers a question Re: Multi-threading, saying "JavaFX cannot be used to write multi-threaded applications, at least for now. Instead there are going to be some classes to do the most common tasks, which need to be done in another thread. There will be specific classes for specific tasks for example RemoteTextDocument allows to load a text-document asynchronously. AFAIK the whole async-package is still under development and the fact that AbstractAsyncOperation is public is probably a bug."

Davy Preuveneers answers a question about geolocation in the thread Re: JSR 179 Location API on Windows Mobile. "JSR 179 is not available in any of the phoneme svn repositories. I found an implementation in one of the zip files you can download from the phoneME download page. [] What I did was copy around some configuration files so I could build the JSR sources again. However, as there are currently no WinCE location providers I had to use the stubs implementation (see src/common/native/stubs). That is why you are getting this message."

lazjen follows up with an idea in Re: How to install glassfish without hard coded paths. "As far as I'm aware, there's no overall environment variable to set (like, say GLASSFISH_HOME) for the base directory of glassfish. A while back I experimented with writing a script to go through the glassfish installation to modify the paths to a new location. From memory it was a simple sed script (*) that changed the current path to the new path, and I think this worked. However, my requirements changed and I no longer needed to move the glassfish installation, so I abandoned the work. You might be able to package something for your clients by using this approach."

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

Life viewed without purple-and-gray-tinted glasses  

The merits of small conferences

The latest Java Possepodcast episode recaptures what was probably my favorite session from March's "Java Posse Roundup", a small session about small conferences. Java Posse #197 - Roundup 08 - User Organized Conferences began with just three of us: me, Dianne Marsh (a co-organizer of CodeMash), Stephan Janssen (founder of Javoxx, né JavaPolis), though we were later joined by Jython contributor Jim Baker and Roundup organizer Bruce Eckel. Still, it's appropriate and intimate that this group could sit comfortably around a single small table with one microphone.

Much of the exchange is practical ideas and details between the three conference organizers -- Dianne, Stephan, and Bruce -- about organizing small tech conferences, but one thing that also comes out is the idea of conferences having a specific personality, a unique reason to exist. JavaPolis may initially have aspired to be a European JavaOne, but it evolved into something much more interesting than that, and indeed, Bruce says he'd rather go to JavaPolis than JavaOne. CodeMash is particularly interesting, as it tries to get the similar-but-different camps of .NET, Java, and scripting language people talking to one another, by bringing them together for a tech conference in the middle of the winter at an indoor waterpark.

When you can watch the presentations from some conferences online, why take time off work and travel to a conference? Meeting people is one good reason, and these smaller conferences take it a step further by creating environments where speakers and attendees mingle, and where the premise of the conference is often something you wouldn't find at the one-size-fits-all mega-conferences. You might not be planning to launch one of your own -- though if you are, please go for it, as we could always use more geographical and topic diversity in our conference repertoire -- but this is still a highly-interesting listen.

Oh, and Dianne would probably like for me to mention that the CodeMash Call for Speakers is now underway.

Speaking of conference presentations and podcasts, the latestJavaOne Community Corner Podcast is j1-2k8-mtW09: Marge: Java Bluetooth Framework by Bruno Ghisi and Lucas Torri. They say, "the idea of this Mini-Talk on Community Corner is to show a little aboutBluetooth, JSR 82 (Java Apis for Bluetooth) and Project Marge. Tired of big texts, full descriptions, etc? Watch this, this and this!"

In Java Today, Kelly O'Hair's latest blog announces that the OpenJDK team is Going on a Warning Hunt. "You'll probably see a set of bugs/rfes being filed and fixed over the next few months related to reducing the warning messages in the OpenJDK builds. As the warnings get fixed, we also may want to dial up the warnings found with compiler options that ask for more warning diagnostics. We could even include the use of tools like pscan and findbugs, but that's beyond the scope of this hunt."

Geertjan Wielenga has posted a guide on JavaLobby to get you From OSGi to GlassFish in 5 Steps. "Sometime ago the new connection between GlassFish and OSGi was announced: you will be able to extend the upcoming GlassFish V3 via OSGi bundles. Though V3 isn't final yet, one can already get acquainted with it and, already, with its OSGi extensibility. The information on the practical steps of extending GlassFish via OSGi is currently not centralized, so here is a quick start, describing the absolute basics, from which one can extrapolate more meaningful scenarios."

The SDN series on Real-Time Java continues in An Introduction to Real-Time Java Technology: Part 2, Garbage Collection and the Sun Java Real-Time System (Java RTS). "Because garbage collection (GC) is one of the largest sources of unpredictability in Java applications, a real-time virtual machine (VM) must find a way to prevent collection pauses from causing tasks to miss their deadlines. [...] There are several different approaches to scheduling GC within a real-time environment, each with benefits and weaknesses. These include work-based and time-based incremental collection approaches, which are aimed at minimizing the effect of GC on scheduling."

Today's Weblogsbegins with Emilian Bold Announcing work on the NetBeans standalone editor. For the last year I've patched and supported a standalone variant of NetBeans' HTML/XML editor. Now I'm starting to publish the changes for a totally standalone editor.

John Ferguson Smart introduces BDD with ease with Easyb. "Behavior-Driven development (BDD) is a promising evolution of the more well-known Test-Driven Development. And EasyB is a promising new tool for BDD in Java."

Finally, Qusay H. Mahmoud collects Highlights from O'Reilly Open Mobile Exchange (OMX) at OSCON2008. "Symbian OS goes open source, but will it be a threat to Linux? Is the browser going to be the new open mobile platform? Here are some highlights from the OMX..."

In today's Forums, Qunhuan Mei posts A suggestion about TextArea. "Hi LWUIT team. Say I have a long message to be displayed using TextArea. I need to figure out how many rows I need before a proper TextArea is constructed. But I have noticed the TextArea itself actually knows how to display a long message. I mean it knows where to start a new line and how to handle "\n" etc. So it could go a bit further to figure out the rows needed all by itself. I was wondering if you could add/modify TextArea constructor (s) so that we do not need to supply "rows" value. Make sense?"

Sahoo explains the status of GlassFish vis-a-vis the emerging EE 6 spec in Re: Does Glassfish 3 supports Java EE 6? "Java EE 6 is not out yet. When Java EE 6 becomes available, GlassFish will support it. It will happen in v3 time frame. Currently, v3 support Java EE 5 + some of the new features of Java EE 6. The most notable EE 6 feature in v3 is support for EJBs in .war file."

Finally, jwwwwl lets off a little steam about browser components in Re: JDICPlus. "Some time before i programmed in C++. And i used COM, ActiveX. There was no problems with embedding IE in programs. But now i see that in Java i can't embedding any normal browser. I looked JRex, JxBrowser, NativeSwing Browser and last JDIC Browser. JRex dosn't work in Vista x64 and seems not supported already. JxBrowser even dosn't start. NativeSwing freezes application. Last and most stable of all is JDIC Browser. But i noticed that it load CPU up to 100% when i go to some web sites. So it seems that Java have no working browser."

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

The merits of small conferences  

Other People's Lives Blog

Posted by kfarnham Jul 21, 2008

Reading between the lines of a brief mailing list note

Kirill Grouchnikov's Swing links of the weekpost notes an apparent leadership change in the Swing Application Framework project. "A message from Richard Bair on the mailing list of AppFramework (reference implementation of JSR 296) announces that Alex Potochkin has taken over the ownership of this project."

The project was founded by Hans Muller, who left Sun in May. I wasn't sure whether to give this front-page billing, since Richard's e-mail only has one new paragraph:

Danny Coward is not the spec lead for JSR 296, rather it is Alex Potochkin. He might be on vacation (it is that time of year).

Now that's obviously not the kind of substantial status update one might have hoped for, particularly when you consider, as Kirill notes, that the project hasn't had any source commits since October, 2007. But given the importance of the project and the number of people who would like to see some best practices established around Swing application life-cycles -- the typical real-world Swing application still launches from public static void main() and builds its GUI in the app's main thread rather than the AWT event-dispatch thread -- unearthing any nuggets that the project and the JSR are still viable is important news.

Also in Java Today, Java ME user interfaces are about to get an exciting boost with the early release of a new library and tool from Sun called the Lightweight UI Toolkit (LWUIT). In the DevX article Java ME User Interfaces: Do It with LWUIT, Jim White looks at the problems the LWUIT is meant to solve and the environments in which it runs, demos a simple LWUIT application, and digs into LWUIT's significant features.

"Among developers, there's a behavior that is more damaging than guessing. Because we're trained to look at code, when something goes wrong, we look at code. And no matter how good our code is, we can always find something wrong or ugly that's begging to be fixed." But, according to performance expert Kirk Pepperdine, it's foolhardy and counter-productive to jump into code without profiling, and without looking at the context the code is operating in. In the SDN interview Java Performance Tuning: A Conversation With Java Champion Kirk Pepperdine, he shares more of his experiences and insights.

Today's Weblogsbegin with the update JRuby 1.1.3 released - Getting Started with GlassFish from Arun Gupta. "JRuby 1.1.3 was released last week - download here. The highlights are: * 82 issues resolved since JRuby 1.1.2, * RubyGem 1.2 (phew, finally Gem installation is much faster again :), * Bunch of Compatibility and Performance problems. Going forward, JRuby point releases will be on a 3-4 week frequency. And you can always checkout the trunk and build yourself."

In A bit off-topic: "We're Not *Resources*", Terrence Barr writes, "this is a bit off-topic but it struck a chord with me. Mark Turansky posted an article on JavaLobby a few days ago which analyses the thinking that creeps into the planning process when you term software developers as "resources"..."

Scott Schram posts a warning in Why are Getty Images and Flickr teaming up? It may cost you."If any of the images (or portions of images) on your site are licensed to Getty Images, it may cost you thousands of dollars. And soon thousands of Flickr images will be licensed to Getty Images."

In today's Forums,macintyrei hopes for a less garish unsigned applet warning in Re: 6u10-b27 Flashing green border with dialogs. "Our (unsigned) applets use a lot of modal dialogs. The general consensus within our company (and our customers that have seen it) is that the new look is terrible. The warning icon next to the close symbol is fine, but the flashing green border really detracts from the look of the application - it looks like some VB for MSDOS application."

lndeveloper would like to Pass events through the layers of a JLayeredPane. "I am using java/swing. Inside a JLayeredPane I have put various objects at various layers. As a result mouseclick events are caught only by the actionlisteners of the top level objects. I want to further "forward" these events to the underlying layer objects. So the top-level objects handle the event first, and then "somehow" the event is forwarded to the next underlying level."

Apparently not up to speed on the state of Java media support,asterfr would like some guidance on Getting started with videos playing. "I'm trying to play media file and I feel a bit disapointed : I've success only with .wav file... No way to play any MP3, H264, XVid .. Can someone explain how to did it ? If it is possible of course."

terrencebarr explains the ME community's communication strategy in Re: IRC Channel for phoneME development. "We discussed it a bit. The feeling was that and IRC channel for regular communication is not ideal because a) it requires someone to monitor it all the time which distracts from other things and b) it fragments the communication channels (right now the forums/email aliases is where it all happens). So I think we should stick with the forums/email aliases for now. But we should keep IRC in mind for specific real-time events like Q&A sessions."

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

Reading between the lines of a brief mailing list note  

Lots of Insane Stupid Parentheses

Do they still teach LISP in college? I always appreciated how profoundly different a mindset you needed to have to use LISP effectively. It's all about structure and recursion, traits that have always stood in stark opposition to the straight-ahead program flow of C and the various curly-brace languages it spawned. But there are some problems for which LISP's way of thinking is quite elegant, and curly-brace languages less so.

In a new InfoQ article, Per Jacobsson begins Exploring LISP on the JVM.

"So what makes Lisp worth looking at? For one thing, this fifty-year-old language has been the catalyst of many ideas we take for granted today. The if-then-else construct originally came out of Lisp, as did early attempts at object-orientation and automatic memory management with garbage collection. Lexical closures -- a hot topic for Java programmers right now -- were first explored in Lisp back in the seventies. And beyond that, Lisp still has many other unique features that other languages have yet to adopt, the kind of good ideas that are bound to make a comeback in the future."

Also in Java Today, Bill Shannon has announced a new GlassFish Architecture Mailing List. "The purpose of this mailing list is to discuss architectural issues for GlassFish. [...] I've asked the existing GlassFish architecture team to move all discussions to this new mailing list. I'm looking forward to participation from many of you as well!"

The latest edition, issue 175 of the JavaTools Community Newsletter is out, with tool-related news from around the net, new projects in the community, one new graduation from the incubator (MathRider), and a Tool Tip on Twitting your project.

In today's Weblogs. Carol McDonald offers an Example using jMaki and RESTful Web Services. "This Sample Catalog app demonstrates a RESTful Web Service, coded using JAX-RS: Java API for RESTful Web Services and the Java Persistence API, and a jMaki client which gets and displays the Web Service responses in a dynamic Ajax table."

David Herron says the effort to pull in BSD Java is Getting closer... "We've been working legal ropes for awhile to get this result: Sun Approved: Merge from BSD Java to OpenJDK. There was a funky little legal snarl in that the BSD Java team has been working on Java ports to xyzzyBSD for years but it was under the JRL or SCSL license and they couldn't directly offer their changes to the OpenJDK project."

Finally, Arun Gupta offers GlassFish @ Utah JUG Summer 2008 - Trip Report. "I presented on GlassFish at Utah JUG yesterday,slides are available. The topic provided insight into GlassFish v2, the current production version, and GlassFish v3 - the upcoming modular, embeddable & extensible version. The slides have data on leading adoption indicators on how GlassFish momentum. There were close to 100 attendees and the list of sponsorsis certainly impressive."

This week's Spotlightis on the UISpec4j project, which offers a functional/unit testing library for Swing-based applications. "UISpec4J was conceived in an Extreme Programming environment, where automated testing takes a central place. The existing Swing-based testing frameworks did expose too much of the Swing APIs, resulting in arcane and unmaintainable test classes. This is why we decided to implement a set of wrappers, trying to make our tests as close as possible to human-readable text. Our ultimate goal is to allow tests written with UISpec4J to become the actual detailed specification of an application."

In today's Forums,kumarjayanti explains a VM-specific problem in Re: AIX: XWSS ClassDefNotFound:. "Yes, unfortunately the sun SAAJ API has dependency on Sun's JAXP implementation. We are considering a rewrite/restructuring of SAAJ, but it is a lower priority item for us right now. The latest error you are seeing is becuase IBM JDK does not seem to support the particular Alogrithm. Try changing the Algorithm that you are trying to use. Try using AES algorithms becuase we know from our testing that those are supported on IBM JDK."

Tim Boudreau warns against a tree-table approach for editable components in Re: JXTreeTable: Is this possible? Screenshot attached. "You're far better off going with live components for this sort of thing - you can create a generic parent panel with an expand/collapse button that shows/hides a sub-panel with the additional contents depending on its state. Otherwise, you'll find you have weird problems with components not behaving quite right."

sfitzjava reiterates a long-time ME complaint in Re: Anyone developing Java ME on OS X? "The question that we have asked for years however is why must the Preverifier be a platform specific EXE file, and not just another Java application. This would make it so much easier to build and port the WTK or other mobile tools to Linux and Mac where a sizable portion of developers like to work. It is sad that Unix is the platform which is last to have the WTK ported to if at all, and it is the OS that Sun helped build, and is their hardwares' primary OS."

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

Lots of Insane Stupid Parentheses  

Good for Everyday Blog

Posted by kfarnham Jul 18, 2008

Searching the mailing lists

So for the past couple of weeks, we've been talking with Jason Hunter of MarkLogic, which offers a service called MarkMail to provide indexing and searching mailing lists. As Community Manager Marla Parker relates in her blog MarkMail for

This year at JavaOne, Clark Richey met me in the Community Corner to tell me about MarkMail, a free service for searching mailing list archives powered by MarkLogic Server, a product that they sell. I said sure, go for it, sounds interesting and the price is right.

They came back with interesting results. The growth of mailing list traffic is obvious (and expanding!) when you do a basic search across all lists. As Jason wrote:

We just finished loading the archives into MarkMail. You can now search (and analyze!) in a unified way the roughly one million emails gathered across the thousands of lists over the years.

The traffic growth chart is really quite beautiful, trending up and to the right. You can see it here:

Just about half the mails are auto-generated as a result of checkins or bugs. If we remove those, it's still beautiful as you can see below. People are writing more than 15,000human-to-human emails every month on!

Play around with the search interface: it's not only useful for finding specific topics (say, messages about JList cell renderers), but also for big picture trends (for example, Swingversus SWT). We'll probably be adding a mailing list search field to the main layout soon, so this tool will always be at your fingertips.

Also Java Today, Dalibor Topic compiles the awesome awesomness of awesome followups this week's release of a Debian package for OpenJDK 6, in the awesome blog Awesomnia. "Mark Pilgrim thinks that OpenJDK in Debian main is awesomeThe awesome Debian packagers waste no time, so following the arrival of OpenJDK in main, TinyLAF followed, as well as libcodemodel-java. May a lot more follow! Our awesome Joe Darcy didn't waste time either, and releasedOpenJDK 6 build 11, which was promptly integrated into IcedTea thenext day."

In a sure-to-be-controversial Atrima essay, Bruce Eckel asks Does Anyone Really Care About Desktop Java? "Basically, UI programming in Java has always been an afterthought, reluctantly accomodated but never really supported. It's no wonder that people are taking a wait-and-see attitude about Java FX. [...] The reason people don't seem to create consumer and business desktop applications in Java may in fact be the UI debacle."

The latest JavaOne Community Corner Podcast is j1-2k8-mtW08: OpenEco. OpenEco is a global on-line community providing free and easy-to-use tools allowing users to assess, track, and compare their energy performance, share proven best practices to reduce greenhouse gas (GHG) usage and encourage sustainable innovation.

Kito D. Mann begins today's Weblogs by Announcing the JSF 2.0 Group Blog. "Having trouble keeping track of the progress with JavaServer Faces 2.0? Here's the place to look..."

Ethan Nicholas has an interesting idea for declarative GUI layout in Introducing Java CSS. "Read about my latest project: a new CSS engine for Java which makes it simple to apply styles to your Swing (and eventually JavaFX) programs. With advanced features like programmatic selectors and animated transitions between states, you owe it to yourself to check this out if you create GUI applications."

Finally, in JXLayer 3.0 - Painting implementation, Alexander Potochkin writes, "the JXLayer's functionality consists of two parts: painting issues and input event processing. In this entry I'll describe painting in details, the second part will come shortly."

The latest Poll asks "What's your interest level in JavaFX?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

In today's Forums,linuxhippy asks Whats going on at a JNI call? "I did some benchmarking of JNI calls on x86 and I would be really interested whats going on when a native method is called. On my C2D I see about 35cycles call-overhead ... I would be really curious what is goind on at a JNI call, which instructions are used and what they are actually doing. Has anybody had a look at the instructions generated by hotspot?"

Kristian Rink has an interesting idea for coupling Apache with GlassFish in Re: Glassfish on port 80 on alternate IP - pointers?. "Generally I'd strongly vote for running apache 2.2 in front of glassfish for a rather simple reason: Given extensions like mod_security, mod_evasive and friends, apache2 does offer a wide range of features to harden your service in terms of any attacks likely to be lead against servers exposed to "th internet" these days, including (D)DoS and related pains. This way you add one more line of defense which you surely will learn to love in times of need."

Finally, Shai Almog has some LWUIT performance advice in Re: Forms and Components. "AFAIK you are correct, realizing a media file might be lengthy so it might be a good idea to cache the component. So the strategy of removing it from the parent component (thus allowing the form to GC) might be better. It might also be OK to leave this form always and never recreate it... We do this in LWUIT demo for the home screen which contains many icons in 3 different states, so we just keep the form always in memory and avoid the penalty of recreating it (while paying in memory overhead)."

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

Searching the mailing lists  

Shock Doctrine Blog

Posted by kfarnham Jul 17, 2008

If the Java language isn't the point, then what is?

As much as we've focused lately about other languages on the JVM -- wasn't it just yesterdaythat we pointed out NetBeans taking the InfoWorld prize for best Ruby on Rails IDE, to say nothing of Groovy, Jython, Scala, and all -- there are signs of a backlash to the seeming deemphasis on the Java language.

Joe Winchester presents this case in an editorial for Java Developer's Journal, What Does the Future Hold for the Java Language. He makes the case that's it's a perfectly viable choice to specialize in one language, certainly a better choice than to be a jack of all trades and master of none, and that Java's a good choice. He also points out that his prior language of choice, Smalltalk, tried to save itself with a "rearguard action" to make Java run on Smalltalk VMs, and that Microsoft has recently taken the approach of pushing nearly all of its various languages onto the Common Language Runtime VM. To Joe, this is an anti-pattern that Java needs to avoid:

What bothers me now is that there seems to be a resurgence of the idea that virtual machines can do anything. Rather than focus on Java and what the language needs to move it forward, there is a lot of hoopla and fanfare about making JVMs to run Ruby, PHP, or other equally trendy languages, as well as technologies like Java FX, which itself abstracts programming to an even higher and utterly non-Java syntax. If this all occurs, what do we have left? We have a virtual machine that can run Java but can run other languages as well; we have languages that compile to Java but aren


Metameme Blog

Posted by kfarnham Jul 16, 2008

No, seriously, what is a Rich Internet Application?

A series of blogs from the last few weeks (1, 2, and 3) led the Java Posse into a lengthy discussion of Rich Internet Applications in their latest episode, a discussion which hit a massive roadblock halfway through on the question of whether iTunes and Google Earth are RIAs.

The original discussion (and the earlier editor's blogs) was mostly about the competition between the "browser stack" (HTML + DOM + CSS + JavaScript) versus embedded VMs like Java applets, Flash presentations, and whatever Silverlight is. But isn't a desktop application, whose entire value comes from its network connectivity (as is the case with Google Earth), also an RIA? After all, it has rich interactivity, is completely dependent on the internet, and it's an application. Or maybe the distinction is that webapps and applets/Flash don't require a client-side application install, whereas Google Earth and iTunes do, and so maybe we'll assign them their own little category ("Desktop Internet Applications", anyone?). But then again, even if we do that, what do we make of Java Web Start apps, or Java 6u10 applets that are dragged from a web page to become full-blown desktop apps?

David Herron tries to offer a binding definition in his blog, Thoughts on Rich Internet Applications.

The latest javaposse episode had an interesting go around what is a 'rich internet application'. BTW, guys, I'm really bummed you're not having the 200th episode recording on Sun's campus, I was really looking forward to it. In any case given their confusion over what an RIA is, it indicates there's lots of confusion out there in the world over what RIA's are. So in an effort to solve this problem let me tell you what RIA's are.

Check it out and decide for yourself if his definition holds up. There's already a good discussion underway in the comments.

Also in today's Weblogs, Kohsuke Kawaguchi announces Hudson now available in IPS package. "In addition to Debian, OpenSUSE, and FreeBSD packages, Hudson is now available as an IPS package for users who run on OpenSolaris, and here is how you can use it."

Ryan Shoemaker has another announcement Sun Java System Mobile Enterprise Platform 1.0 is Available!"I've spent the last year working on a new product at Sun called the Mobile Enterprise Platform (MEP), which enables mobile access to enterprise data. Using MEP, you can easily develop mobile applications capable of synchronizing data between Java enabled mobile devices and corporate back-end EIS systems."

The latest JavaOne Community Corner Podcast is j1-2k8-mtW06: API compatibility puzzles by Mikhail Ershov. "Many Java developers create API libraries for use by applications. Such libraries typically evolve over time, providing more and more functionality with each release. At the same time, it's important to preserve backward compatibility of the API so that the API libraries could be upgraded without any negative effects on existing applications. This session focuses on a series of common API modifications that seem like normal modifications, but can manifest subtle compatibility problems. Attendees will acquire skills to evaluate API changes for backwards compatibility, and how to sidestep compatibility pitfalls. The Java Conformance team at Sun has been part of the API evolution in both Java SE and ME, where preserving backward compatibility is critical to platform success. In this session we'd like to share our experience in this area. A short overview of compatibility problems in general will be presented, as well as the API compatibility puzzles."

In Java Today, the OpenJDK community has announced the approval of two new projects, Compiler Grammar and Type Annotations. The Compiler Grammar project's goa il "to develop an experimental version of the javac compiler based upon a grammarwritten in ANTLR." Meanwhile, the Type Annotations project is implementing "a Java language extension that permits annotations to be written on uses of types. One example of the new syntax is generic type arguments, as inList<@NonNull Object>. The type annotation syntax is also known as "JSR 308"."

The SDN has posted an edit of a white paper by Brian Goetz as An Introduction to Real-Time Java Technology: Part 1, The Real-Time Specification for Java (JSR 1). "Real-time computing is often associated with high speed, but this is only one part of the picture. At its core, real-time computing is about predictability -- the knowledge that the system will always perform within the required time frame. The deadlines involved need not be very short -- though they sometimes are -- and the consequences of missing a deadline may not be dire -- though they sometimes are. The key to whether an application is a real-time one has to do with whether its requirements include temporal constraints."

InfoWorld Test Center compares nine IDEs for Ruby on Rails Development, in Lab test: Climb aboard Ruby on Rails, with NetBeans 6.1 taking top honors with a score of 9.0 out of 10. Author Martin Heller awards NetBeans the article's only "Excellent" rating, saying"NetBeans has long been a strong Java development environment. It gained Ruby and Rails support in the last year. With Version 6.1, NetBeans is a seriously good Rails IDE.

In today's Forums,asdf_asdf asks about JavaFX's viability in Feasibility of JavaFX (vs Flash). Wanting a third opinion. As JavaFX has appeared on the Java scene, it seemed that could be the best solution, since the existing architecture is all-java and the team of developers at ease with java as with any other programming environment. However, at its current stage JavaFX seems as visually unattractive as its applets and much slower than Flash and difficult to embed seemingly onto websites. Is it only my perception, or could JavaFX look as nicely as Flash counterparts (Ajax in some case possibly) without requiring a significant effort (such as hard-coding nice custom elements), be nearly as fast, and allowing easy being plugged in into HTML without popup webstart annoyances and long download time?

qu0ll expresses disappointment on JAR-loading performance in Re: My feedback on Update 10 and wishlist for the future. "But there is one thing that is clear about dynamically loading JARs... class instantiation is S-L-O-W! I have found that once the first class is downloaded, each subsequent instantiation of a class from within that same dynamically loaded JAR takes forever. It's as if the JAR is not being downloaded in full but that each class is downloaded separately and thus incurring the overhead of an additional IO. Is this possible?"

trekkyleaper says Quartz is the way to go for scheduled actions in Re: Running Java Applications as a back-end batch processes. "Personally, I use Quartz ( I have a servlet that is initialized when my app starts up. The servlet sets up my schedules and starts up the scheduler. It has worked well for me. The only problem I have is when trying to shutdown the app server while doing a long-running job. Since Quartz uses its own thread pool, there are occasionally times when I have to forcibly stop Glassfish."

myersj asks Is the source for Java Web Start available? "I've spent a few hours Googling and searching through the OpenJDK webpage, but I can't seem to find a place to download the source for Web Start (javaws.jar, deployment.jar). Was Java Web Start released as open source yet? (or close source but still viewable?) The reason I'm interested is I'm having an issue with the version of Java Web Start included in 1.6 update 7. My application worked fine with update 6, but Web Start consistently crashes (before my application starts) without any errors, logs, or dump files generated with update 7."

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

No, seriously, what is a Rich Internet Application?  

Beyond Right Now Blog

Posted by kfarnham Jul 15, 2008

OpenJDK sets the stage for growth

It's been a long time coming, but OpenJDK may finally be passing muster with the toughest critics from the open-source community. To wit: it now has a package.

Dalibor Topic marks this important occasion in his blog, QotD: Debian Overview of openjdk-6 source package, which he begins by quoting the first log comment:

[2008-07-12] Accepted 6b10dfsg-1 in unstable (low) (Matthias Klose)

Dalibor then goes on to explain why this is a Big Deal:

OpenJDK in main is not only great because it means a lot of other Free Software Java-based packages can now more easily follow suit and enter main as well - it also means that a lot of the thorough work done by the OpenJDK community in the past weeks paid off in an OpenJDK source code tarball that was cleaned up to meet the hardest standard of all distributions."

So, going forward, Debian package managers will be able to assume the existence of Java -- in unstable for now, but that'll change over time -- and add packages that depend on Java, simply by expressing this dependency.

Dalibor is also the host of the newest Java podcast, the OpenJDK Podcast. In OpenJDK Podcast Season 1 Episode 1: Thomas Fitzsimmons on IcedTea, Dalibor talks with Thomas Fitzsimmons of Red Hat, who explains what the IcedTea project is, how it came about, its role for Fedora, trademarks, certification, gcjwebplugin, netx and the portable Zero interpreter for Hotspot.

Also in Java Today, The New York Times reports on an ambitious adoption of Blu-Ray's BD-Live -- the presence of expanded local storage, picture-in-picture and internet access in addition to the mandatory Blu-Ray Disc Java (BD-J) -- for Sleeping Beautyand other upcoming Disney Blu-Ray discs, in the article Disney Taps Into Blu-ray's Interactive Technology. "All of these activities are possible because of a technology that connects Blu-ray discs with the Internet, which the entertainment industry is calling BD Live. Disney and other studios, including Lionsgate and Sony, believe that BD Live could be Blu-ray's killer app, potentially altering the tepid response that consumers have given Blu-ray to date."

Winston Prakash is wondering about interest in his latest prototype, in Generic Web Page Designer for Netbeans, anyone? " I thought it is worth a time to explore the concept of a generic Web  Page Designer, with out any restrictions of any particular framework. If you are interested, you can read my proposal for a generic Web Page Designer at proposal includes Web Page Designer Concept Overview and Web Page Designer Design Concepts. I also spent some time to create a prototype of a HTML designer. [...] This HTML designer embeds Mozilla Layout Engine (XULRunner) for rendering the web pages. Therefore, unlike Visual JSF designer, user would get hi-fidelity rendering of the web pages. Details on embedding Mozilla in Netbeans is available here."

Today's Weblogsbegins with Fabrizio Giudici going through Various updates from me (J2ME, JSON, travels - and blueMarine, of course), starting with project windRose. "I had recently to deal with J2ME for business and this ended up in resuming the work on windRose, my open source navigator for palm devices, which hadn't been updated in two years (since version 0.4.1, rough to use but trusted enough to record all of my travels in the meantime). The new windRose 0.5.4 has less rough corners and some new features, such as maps (OpenStreetMap and Microsoft Visual Earth), waypoints and even weather information."

Masoud Kalali notes that a GlassFish refcard is available for download for free. "If you are a GlassFish user then you will definitely like this reference card as it contains many of day to day information which you may need. It will ease the pain of looking for a command or tip in the web or reference manuals."

Finally, Arun Gupta announces a Exciting Job Opportunity in GlassFish Scripting Team. "Do you want to work in Scripting and Dynamic Languages and associated Web frameworks such as Ruby/Rails, Groovy/Grails, Python/Django and learn the Open Source work culture Work with and in the GlassFish team in a dynamic, innovative and fast-paced environment? Are you a new graduate and do you have it in you ? Buckle up, fasten your seatbelt and apply here. This has been a very exciting journey for me so far and we need your help in taking this to the next level."

In today's Forums,kirillcool questions the practicality of a ground-up rewrite of Swing's much-criticized file chooser, in Re: FileChooser component, please!. "Your multiple posts on the JFileChooser on Windows platforms over the past couple of years indicate great attention to all the small details that vary even between the Windows platforms. Now take that and extend to other supported platforms, including playing nicely with Mac, even if it's not developed directly by Sun. Now take that and extend to non-system look-and-feels, including core Metal / Nimbus and the existing third-party look-and-feels. So, yes, it still does not compare with a web browser. But it is a gigantic task as compared to other core Swing components, if you do want to provide complete platform fidelity for all the target platform. I have asked this before, and i will ask once again. Would you undertake to reimplement it from the scratch? If the answer is "no, i don't have time due to all these other things that are more important to me", the same would be true for the other side as well."

cinsulan wants more flexibility in LWUIT layout, as explained in Question: Flexible menu position?. "This is something that has been bothering me for a while. I can choose whether I want the menu to appear on forms throughout the whole application using UIManager.getInstance().getLookAndFeel().setReverseSoftButtons(true/false); There are instances, and in my application a critical one, where I would like the menu on a different side than on most of the other forms in the application. It might sound counter intuitive to change the position of the menu, but in this case it's really not. Is there any way of accomplishing this?"

Finally, mshaffer55 looks at the JAXB spec and its practical use in Re: XJC complex type derived by restriction from another complex type derived. "The issue is that, unlike for extension, Java has no obvious analog for restriction. The JAXB 2.1 spec indicates that restriction should be treated exactly the same as extension, i.e. a subclass should be created, but "...there is no requirement that Java properties representing the attributes or elements removed by the restriction to be disabled.". So a restriction of this kind would be pretty much useless, since the resulting subclass would be identical to the base class. Anyway, based on my reading of the spec, which is reasonably clear on this point, I'm surprised by this error. You could try submitting a defect that points to this thread, and see what happens."

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

OpenJDK sets the stage for growth  

Late 4 Work Blog

Posted by kfarnham Jul 14, 2008

Organizing your development teams

An interesting question once you have more than a few developers on your project is how to arrange them. Yes, you want to pair people to their talents, but how are you going to get them to work with each other? Are the server guys going to play keep-away from the client team? Are the database developers one-trick ponies, or can you get them to help out on other parts of the system? Do you want developers to have a broad top-to-bottom understanding of the application, or keep them in their own little silos and really focused on one distinct area? And how much does your development methodology -- whether waterfall, XP, cowboy, or something in between -- determine your personnel policies?

These are the questions that John Ferguson Smart focuses on in his blog Architecture-Oriented or Feature-Oriented - how do you organise your development teams?

Traditionally, there are two fundamental approaches when it comes to organising your development teams: the Architecture-Oriented approach and the Feature-Oriented approach. The first priviledges teams that focus on the different architectural layers or components, whereas the second prefers to organise teams around deliverable application features.

Which works best? Not to give too much away, but the best answer might be a hybrid approach:

Personally, I prefer the flexibility of the Feature-Oriented approach, but keep a healthy respect for the clean architecture that is fostered by an Architecture-Oriented approach. One possible compromise that I have used on some of my projects goes along the following lines...

Also in today's Weblogs, Alexander Potochkin's JXLayer 3.0 - LockableUI compiles up-to-date information about one of SwingX's most difficult features, "so forget about the blocking glassPanes, input verifiers, old JXLayer API and let's start."

In JEDI Certification - Help the Brazil community to build the certification exams for JEDI, Daniel Wildt asks, "Do you know JEDI project? Do you want to help Brazil community to build the certification test for JEDI modules? Your time has come! So, study JEDI modules and send out some questions for us!"

In Java Today,Patch 2 for NetBeans 6.1is now available. The patch includes bug fixes in modules for BPEL, C/C++, Composite Application, Database, Editing Files, GlassFish, IDE Platform, JSF, Java, Java Debugger, Java Profiler, Mercurial, NetBeans 6.1, NetBeans Plugin Development, Platform, RESTful Web Services, Ruby, SOA, Spring Web MVC, Visual JSF, WSDL, Web Applications, Web Services, XML and Schema. To obtain the fixes, the NetBeans IDE must be installed and running. You can download the fixes through the IDE's Plugins Manager.

The Aquariumpoints out a tip for Running VisualVM on MacOS X: "I wrote about VisualVM yesterday (entry) but I had missed Octavian's Introduction where he gives instructions on how to use VisualVM on MacOS X. As a reminder, to run the VisualVM client you need a recent JVM, so you will need to use the latest JVM from Apple, but the app can run in a variety of JVMs, remote or local to VisualVM. VisualVM can even save the data into a snapshot and process it offline."

InfoQ explains the next concept that might be standardized in Java concurrency: Phasers. As explained in New Java Concurrency Feature: Phasers, Doug Lea, the spec lead of the JSR 166 concurrency utilities, posted on the 166y concurrency-interest mailing list this week regarding the feature. "The flexible barrier functionality that was previously restricted to ForkJoinTasks (in class forkjoin.TaskBarrier) is being redone as class Phaser (targeted for j.u.c, not j.u.c.forkjoin), that can be applied in all kinds of tasks."

This week's Spotlightis on the Java Native Access (JNA) project, which provides Java programs easy access to native shared libraries (DLLs on Windows) without writing anything but Java code--no JNI or native code is required. This functionality is comparable to Windows' Platform/Invoke and Python's ctypes. Access is dynamic at runtime without code generation. JNA's design aims to provide native access in a natural way with a minimum of effort. No boilerplate or generated code is required. While some attention is paid to performance, correctness and ease of use take priority.

In today's Forums,michael_heinrichs spots a dangerous technique in Re: Strange: AWT-EventQueue-0 and incorrect display in JavaFX table. "The first issue I noticed is you are using a Java-Timer together with JavaFX. That is pretty evil and should be avoided. It is very likely you are running into some synchronizations issues (might even be the root cause of the problem here.) I suggest to write the StockFeederMock in JavaFX using a Timeline. Switch to compiled JavaFX and to the new UI-library (packages javafx.gui.*)."

nileshpereira forsees severe Palm porting problems in Re: Volunteer needed to port phoneME Advanced to Garnet OS / Palm OS. "Unfortunately, all the old code you find out there is m68K-palmos code, which is not going to be of much use beyond implementing the CDC GUI. All the heavy lifting of the CVM will only be possible using arm-palmos code, of which there is precious little information. None of the toolchains like Palm's SDK or Prc-Tools work out of the box and create working arm-palmos code, as they haven't been updated for many years. Even worse is that there is no way to test the arm-palmos code except on the device, as the Palm Simulator is only able to execute m68k-palmos code. Infact, I think the only way to get working arm-palmos code is to build Prc-Tools from scratch and apply your own patches onto it, which is what Tom Borris has done for his SDL port."

Robin Chaddock points out challenges imposed by CLDC's limitations in Re: Java ME and remote classes. "CLDC does not provide java.lang.ClassLoader, and so provides no mechanism for runtime definition of Java classes. CLDC also does not support java.rmi. Therefore, implementing what you describe in the way you describe it is impossible. Obviously there are other ways of achieving this functionality (running arbitrary code on a thin client) but you'll no doubt find them restrictive, cludgy and inefficient. A better solution would be to target CDC rather than CLDC., where all of the api functionality you require is exposed. (with the rmi package itself being an optional addition)."

Finally, demonduck vents some serious plug-in frustration in Just updated to -- it sucks worse than 0.5. "What are you people doing? 0.7 draws half as fast as 0.5 and was already slower than draws half as fast as in 0.5 and 0.5 is about half as fast as What are you doing??? Are you trying to put us all out of business? And the LiveConnect bug is still disabling JavaScript <-> applet communication."

Current and upcoming Java Events :

Registered users can submit event listings for the 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 it will be archived along with other past issues in the Archive.

Organizing your development teams  

Just Got To Be Blog

Posted by kfarnham Jul 11, 2008

More Java stuff in your home than you might think

OK, simple Poll Question to end the week, right? "How many Java devices do you have?" Many of you look down at your phone and run a little mental routine like

  if (! (phone instanceof iPhone))

But there's more to it than that. How many computers do you have? Well, they're devices, and they all have Java in some form right? Even your visiting mother-in-law's computer that doesn't have JDK 6 probably has some version of a Java runtime if only for applets.

Got an Amazon Kindle? javaDeviceCount++. PlayStation 3 or other Blu-Ray player?javaDeviceCount++.

Your old JavaOne badges? JavaCards. I say, count 'em.javaDeviceCount+=5.

There's a lot more Java in your everyday life than you might realize. Take a second and tally it all up before you vote. Cast your vote on the front page, then check the results page for current tallies and discussion.

In Java Today, The Aquarium notes a major identity-management release in OpenDS 1.0 Released - Open Source LDAP. "And it is out! This morning Ludo announced the Release of OpenDS 1.0! You can download the Core Server or the DSML Gateway or use a Java WebStart to launch it. For more details go to the Open DS home page or directly to the Promoted Build Information. Many congratulations to the team!"

The Public Review has started for JSR 297, the Mobile 3D Graphics API 2.0. This update to JSR 184 "will extend and enhance M3G to better leverage state-of-the-art hardware, particularly programmable 3D graphics accelerators, but also to extract better performance from more constrained devices." The spec is designed to allow efficient implementations on top of OpenGL ES 2.0 and 1.1 class graphics hardware. The proposed draft is available for download, and the public review continues through September 8.

Refactoring is a well-accepted practice for improving existing code. Yet, how do you find the code that should be refactored, in a consistent and repeatable manner? The latest installment of Paul Duvall's Automation for the people, Continual Refactoring, explains how to use static analysis tools to identify code smells to refactor, with examples showing how to improve odiferous code.

The latest JavaOne Community Corner Podcast is j1-2k8-mtW05: Best practices and examples in writing integration logic with OpenESB . SOA is about decoupling application that need to be integrated through the use of services. To achieve a good degree of decoupling two main ingredients are needed: a good middleware and a well written integration logic. This session will show examples and best practices on writing integration logic inside a JBI ESB. Some topics that the session will touch are: -- synchronous vs asynchronous integration -- stateless vs stateful integration For each pattern the session will show a way to implement it using a JBI ESB, discussing advantages and common pitfalls

In today's Weblogs, James Gosling praises a Nice realtime Java book Peter Dibble has just published the second edition of his Real-Time Java Platform Programming book. It isn't just about the realtime APIs: it covers a lot of the theory behind realtime programming (warning: contains Actual Math), along with a lot of examples.


Black Door Blog

Posted by kfarnham Jul 10, 2008

Putting your app in the CD tray

Java deployment, particularly on the SE side, has gotten a lot of attention in the last year, in hopes of cleaning up one of the platform's most long-standing frustrations. Java SE 6 Update 10 cleans up a lot of old problems with applets and even lets you turn them into desktop apps by dragging them out of the browser.

Still, there are other scenarios common to desktop applications that Java's never been particularly keen on handling. To wit, while Java Web Start offers a comprehensive solution to network-based distribution, with updating thrown in for free, the old-fashioned style of distributing an app via CD-ROM has proven a a difficult fit for Java.

In today's Feature Article, Luan O'Carroll shows how to bring the two approaches together, byDistributing a Java Web Start application via CD-ROM:

Combining Java Web Start and Launch4J allows for the creation of CD-ROMs that can be distributed to people like trade show visitors who can then easily and quickly install the application. The full update capabilities of Java Web Start are still available to the user so that they can easily get updates or equally so that they can use the application where an internet connection is not always available, the best of both worlds.

In Java Today, David Dagastine follows up Monday's release of JDK 6 Update 6 Performance Release with a thank-you in Apache Harmony: Thanks for the TreeMap Work! "I'd like to thank Apache Harmony for their JDK library performance efforts. We were given a tip that the Harmony folks were doing some interesting work with the TreeMap collection class, and low and behold they were. The work is surrounding fat TreeMap nodes where each node contains several TreeMap entries. This greatly improves in order traversal of the TreeMap entries, and since SPECjbb2005 traverses over a TreeMap I can see why they did this. Controlled measurements showed the "fat" TreeMap significantly faster with in order traversals, and improved our SPECjbb2005 score by a solid 3-5% depending on the platform."

JSR 289, SIP Servlet 1.1, has gone to a final approval ballot, after releasing two proposed final drafts over the last few months. The updated JSR " requests the evolution of the SIP Servlet specification to address capabilities discovered by the industry as a result of using the specification." The GlassFish Community's SailFin project is tracking JSR 289, with an intention of delivering full compatibility with the spec and integration with existing GlassFish features.

The latest edition, issue 174 of the JavaTools Community Newsletter is out, with tool-related news from around the web, new tools community projects and three graduations, and a Tool Tip about the Troubleshooting Wiki.

In today's Weblogs, Qusay H.

Over a decade of the Java Glossary

An interesting item came in the other day via the Submit Content form, buried among 20 pitches for Indian real estate and other spam that comes in through that channel. This was from Roedy Green of Canadian Mind Products, whose Java Glossary was indispensable to me way back in 1997 when I was trying to get my head around Java and some of its concepts. It's a remarkable, long-running contribution to the Java community, one which I suspect a lot of newer Java programmers have never heard of.

Anyways, Roedy writes that he commissioned two professionally-rendered Duke icons, and has made them available to all in ico and png format in various sizes under the Java Glossary's Duke listing. "JRE Duke" is a slim Duke as a runner, while "JDK Duke" is a full-figured Duke as a carpenter.

This is made possible by the fact that Duke was open-sourced back in 2006 as the Duke project, where you'll find many more images, animations, and 3D models of the Java mascot.

So, thanks Roedy, and keep up the good work!

Also in Java Today, Luis-Miguel Alventosa has announced two releases from the VisualVM project: JDK 6 Update 7 Java VisualVM and VisualVM 1.0 released. "After eight months of frantic development since VisualVM Preview 1 was released I'm happy to announce the general availability of JDK 6 Update 7 Java VisualVM and VisualVM 1.0 ( What's new? Well, mainly that if you download and install JDK 6 Update 7 on your machine running VisualVM will be as simple as calling<jdk-home>/bin/jvisualvm."

Java applications can be scaled vertically (on a single system), or horizontally (across multiple systems). But to do either, you have to understand all parts of the system and software. Not doing so could defeat the purpose of adding system resources or more systems. In TheServerSide article Scaling Your Java EE Applications - Part 2, Wang Yu presents some surprising results of Java application scalability based on his experiences in a performance laboratory. The second installment of this series discusses scaling horizontally.

The latest JavaOne Community Corner Podcast is j1-2k8-mtW04: Operating TrackBots using SunSPOTs by Shawn Silverman. "This session will show how to use a SunSPOT to control a TrackBot. Attendees will be shown how to take code created using the TrackBotsAndGreenfoot session and send it to a SunSPOT, although attendance at that session is not a prerequisite. Basics of how to compile and deploy for this device will be covered."



I Got Mine Blog

Posted by kfarnham Jul 8, 2008

A milestone for Java 6 Update 10 Downloads

Question for you: how many times do you suppose Java 6 Update 10 has been downloaded? Think about it: it's a work-in-progress, so it's presumably still appropriate only for developers. And its focus is on desktop functionality -- a new browser plug-in, the Java Kernel, startup time improvements -- so it might not be that big a deal for the server-side majority of Java programmers.

So, how many times do you think it's been downloaded? 50,000? 100,000? Quarter million?

Try a cool million downloads. At least.

The details are in today's Forums, in the post 6u10 hits 1,000,000+ downloads by rogerl. "With today's report, by my count, 6u10 JRE and JDK have had over 1M combined downloads. We are pretty happy, and proud, about that. This number includes all the Online and Offline installs of the JRE and JDK. Each week there are still some downloads of 'older' builds that I have chose to ignore, in order to keep things 'simple'. Also, we only really started to keep track of the downloads in March, the first builds of 6u10 were released in September:, so the overall download number may actually be a bit higher, but we will go with what we have."

Does this mean there are more desktop Java developers than we thought? Or are end-users already trying out the new plugin? Or is it something else entirely? At any rate, it's a very encouraging sign that the interest in 6u10 is so great, and that the feedback is so positive.

Also in the Forums,terrencebarr addresses app-signing hassles for ME inRe: Permissions, certificates, and devices' questions. "But I agree, the Java Verified cost model is not ideal - however, you may want to check with them as I believe there are making changes to the program. How do we get this fixed? The problem is that what is happening in this space is that some (not all) device manufacturers and operators are using security mechanism to impose business models on developers. So it's a business problem, not a technical issue. And these are harder to solve - especially in a consistent manner across the industry. As Shawn mentions there is the idea of a non-profit Developer Alliance that could create some pressure on the industry to address some of these problems."

Harold Carr handles a question about Metro and a timeline for documentation in Re: wsit transaction implementation documentation. "Metro implements the submission version of the WS-AT/Coord specifications. .NET 3.0 implements those same versions. .NET 3.5 implements both the standard and the submission versions. In other words, when you want to interop between Metro and .NET, be sure to configure .NET to use submission. Yes, we are planning to start moving our design documents so they are publically available. However, right now we are busy with our 1.3 release (late July - the one that will interop with .NET 3.5) so the design doc push will probably happen in August."

In Java Today, David Dagastine reports that the JDK 6 Update 6 Performance Release is here. "I'm please to announce the release of JDK 6 Update 6 Performance Release on SPARC platforms. This is the latest of our performance releases and is the culmination of our optimization efforts over the last year. With this JDK Sun achieved many world records on SPECjappserver2004, SPECweb2005, SPECjbb2005, and the first ever SPECjvm2008 submission. Please try it for yourself, download it at" has announced the immediate availability of NetBeans IDE 6.5 Milestone 1, now available for download. This stabilized development build contains many new & noteworthy features in the following areas: PHP, improved support for Web Frameworks (Spring, Hibernate, JSF, JSF CRUD Generator, JPA), Ajax, Ruby, Groovy, Java, debugger, database, mobility, GUI Builder, web Services, and improvements to XML and schema tools. Get more details about these features and additional New and Noteworthy Features available in the release. The final NetBeans IDE 6.5 release is planned for Fall 2008.

The Sprint Instinct Java Developer Contest will open soon to consumer and business applications optimized for the new Samsung Instinct and has a $20K grand prize. Join us for a webcast on Wednesday, July 9 to learn more about this great device, development tools and the contest. For more information about the upcoming webcast, click on the registration link.

In today's Weblogs, Terrence


All You Ever Wanted Blog

Posted by kfarnham Jul 7, 2008

A wish list for browser evolution

Continuing on a long-running thread, two weeks ago, we talked about the browser stack versus RIA competition, and spent some time last week on the case against the browser stack.

Today, let's look at the other side. If an RIA has a scene graph or other visual object model, a scripting language, network conectivity, and some means of handling UI events and rendering content, well, doesn't that describe DOM + JavaScript + the browser, too? The browser stack continues to evolve, and maybe from the mile-high view, using ActionScript to manage a Flex video object isn't that different than using JavaScript to manage an HTML5 <video> tag.

But what does the browser stack need to do to keep the Ajax crowd happy? InfoQ points us to an interesting wiki-based poll on the topic, in What Do You Want On Future Browsers? Time to Vote! "An industry wishlist for future browsers has been collected and developed by OpenAjax Alliance. Using wiki as an open collaboration tool and with contributions from many people in the industry, the feature list now lists 37 separate feature requests, covering a wide range of technology areas, such as security, Comet, multimedia, CSS, interactivity, and performance. The goal is to inform the browser vendors about what the Ajax developer community feels are most important for the next round of browsers (i.e., FF4, IE9, Safari4, and Opera10) and to provide supplemental details relative to the feature requests"

Also in Java Today, the SDN has posted a Enterprise Tech Tipon Preventing Non-Repeatable Reads in JPA Using EclipseLink. "In this tip, you'll learn how to prevent non-repeatable reads through the Java Persistence API (JPA) and JPA extensions provided by EclipseLink. A non-repeatable read is a concept pertinent to database transactions. In a non-repeatable read, multiple reads of a data item from a datasource do not return the same value for the data item. In JPA terms, a non-repeatable read means that within a transaction, if an application reads the same entity multiple times from a datasource, the application will find that the entity state has changed between reads."

If an application is useful, then the network of users will grow crazily fast at some point. As more and more mission-critical applications are now running on Java EE, many Java developers are caring about scalability issues. However, most of popular Web 2.0 sites are built with script languages, and there are a lot of voices to doubt the scalability of Java Applications. In TheServerSide's article Scaling Your Java EE Applications, Wang Yu takes real world cases as examples to explain ways on how to scale Java applications based on his experiences on the laboratory projects, and at the same time, bring together practice, science, algorithms, frameworks, and experience on failed projects, to help readers on building high scalable Java applications.

The latest Java Mobility Podcast is Java Mobility Podcast 52: Wireless Industry Partnership and Top Ten Dating Tips For Developers. Caroline Lewko from WIP shares how WIP helps developers negotiate the mobile ecosystem and talks about the new Mobile Developer Wiki that's currently in Beta. We finish up with two selections from her popular talk Top Ten Dating Tips for Developers.

Today's Weblogsstart with a guide from Inderjeet


American Boy Blog

Posted by kfarnham Jul 4, 2008

A brief holiday blog

It's the Independence Day holiday here in the U.S., so today's blog is going to be kind of short... I want to get the kids in the car and off to the Lake Winnie amusement park -- and for those of you who follow the link, is that not the most unusable website you've seen since the mid 90s? -- before the crowds get too big. After all, now that our son is big enough to go on roller coasters, and likes them, it's well worth the admission fee. Our daughter wants to go on the coaster too, but being only three years old, she'll have to stick to the kiddie rides just a bit longer.

However, we do have a fresh front page for you, packed full of interesting new Java goodness.

The latest JavaOne Community Corner Podcast is j1-2k8-mtW03: Comet and Bayeux by Kevin Nilson. Ajax has become quite popular as websites have become richer and richer. Ajax allows a page to periodically request data from the server. Comet, on the other hand, allows the server to push data to the client at any time. Comet applications are starting to redefine the capabilities of Web 2.0 applicaions. Bayeux, which is still in daft, is the first standard to define a comet based transport protocol. This talk will discuss the basics of Comet and Bayeux.

In Java Today,The Aquarium points us to More Project Fuji screencasts: "Keith Babo has released a new ten minute screencast on Project Fuji's interceptor featurewhich intercepts messages as they travel across the NMR (Normalized Message Router) to implement alerts, auditing, validation, security, routing, and many more useful scenarios in a very non-intrusive way. [...] Project Fuji was announced at this past JavaOne and is the next generation OpenESB architecture based on GlassFish v3, OSGi, and JBI."

In an e-mail to the OpenJDK "announce" list, Mark Reinhold has announced the approval of the Common VM Interface project. "The goal of this Project is to provide a documented VM interface for OpenJDK which will significantly lower the barrier for entry for both existing Classpath VMs and any other VMs that may wish to use OpenJDK in the future."

Sun's Brian Goetz continues a series on the use of wildcards in generics, in the article Going wild with generics, Part 2. "Wildcards can be very confusing when it comes to generics in the Java language, and one of the most common mistakes is to fail to use one of the two forms of bounded wildcards ("? super T" and "? extends T") when needed. You've made this mistake? Don't feel bad, even the experts have, and this month Brian Goetz shows you how to avoid it."

The latest Poll asks "How much of your work time is spent maintaining / updating old code?" Cast your vote on the front page, then visit the results page for current tallies and discussion.

In today's Forums,terrencebarr offers ME performance tips that don't require magic VM improvements, in Re: How to reduce the loading time of a midlet? "Furthermore, we have found that poor start-up performance is often related to the MIDlet itself. General best design practices indicate that you should do late initialization in the MIDlet start-up, spread out time-consuming tasks, and pre-process resources (such as images) during build time, if possible. Observing such guidelines can reduce the perceived start-up up a MIDlet dramatically without any VM tweaks."

Speaking of performance, airwin wonders about performance and validation in JAXB. "The documentation mentions that a JAXBContext is expensive to create and designed to be thread safe, so as suggested I keep a Singleton version. However it also says that the Unmarshaller is not thread safe, yet I'd think it would be expensive to create due to the schemas that are required to be passed to it (I'm assuming it parses the schemas in prep for validation, please let me know if I'm wrong here). Is the normal design to create a new Unmarshaller for each call into the handler? Is this expensive?"

Hinkmond Wong reports on nasty challenges porting phoneME Advance to Palm in Re: Volunteer needed to port phoneME Advanced to Garnet OS / Palm. "It looks like using our already existing ANSI and POSIX porting layers in pMEA to hook into PalmOS is harder than expected. No stdio and pthreads is one thing (we could work around that), but no float.h, and no File I/O makes a bad situation even worse since it compounds the need for workarounds into many areas instead of just two. Ack!"

tjwolf asks Does anyone know if JDK 7 (or before)'s JTable will have a Column Control? "JXTable has a nice concept of a column control popup which the JDK's JTable lacks (as far as I know). Does anyone know whether there are any plans to enhance JTable with this feature? Since in the past year or so, there were some comments about various feature development on JXTable having been suspended, I want to move back to JTable if I can. This is the only feature holding me back."

In today's Weblogs, Jean-Francois


Please Blog

Posted by kfarnham Jul 3, 2008

Can we have a competent filesystem API in Java 7?

Take a look at Bug 4032604: Copy method in class, filed in February, 1997. It's pretty self-explanatory: provide a one-line method call to copy files. Now look at the typically smug and dismissive evaluation: it's easy enough to do yourself (that's right, Sun wants everyone writing the same boiler-plate file copy implementation over and over again), and it's behavior would vary across platform (so does the DIY version: based on the host OS, the copied file loses ownership and permissions metadata, TYPE/CREA and resource fork on the classic Mac OS, etc.).

Not for nothing have a lot of us hated -- I mean reallyhated -- over the years. Scroll down to the comments and notice something interesting. The first comment, filed in 1997 and supporting the bug, is from well-known Java author Elliotte Rusty Harold. The second, written in 1999, is from me.

So it's a fascinating coincidence that Elliotte and I should happen to come together on this point nearly a decade later. As part of his continuing series, The Open Road, which looks at features tracking for likely inclusion in Java 7, he's investigating JSR 203, which could drag Java's filesystem support into the modern era:

However, finally in Java 7, it looks like there's at least a 50-50 chance we'll get a filesystem API that's more powerful than the clunky old that was thrown together twelve years ago to push Java 1.0 out the door. Sun, IBM, Oracle, Intel, HP, Google, NTT, and Doug Lea are working on JSR 203 to create "More New I/O APIs for the Java Platform ('NIO.2')". Don't hold your breath yet, but do keep your fingers crossed. Maybe, just maybe, we'll finally be able to copy files in Java 7.

Will we get a copy method? Will we like it? Will the editor's "planet-melting hatred of" be allayed? Find out in our Feature Article,The Open Road: java.nio.file.

In Java Today, an article on JavaLobby makes the case for migrating to GlassFish. In Tomcat Today, GlassFish Tomorrow?, Alexis MP writes "GlassFish has made a lot of efforts to appeal to developers. Its a single, small download of about 60MB, has auto-deploy capabilities, starts pretty fast for an application server with GlassFish v2 (probably the best full-blown application server startup time). To be fair to Tomcat or Jetty, they are still perceived by many as lighter- weight and faster to start. GlassFish v3is all about being modular (based on OSGi), extensible and very developer friendly. The recently released TP2 (Tech Preview 2) starts in less than a second, starts/ stops containers and resources as needed and provides support for scripting technologies such as Rails, Groovy, PHP and more."

From The Aquarium: "Ed [Bratt] has announced the second Release Candidate for OpenMQ 4.2, now available at the Downloads Page. Features include: • Performance Improvements, • Multiple Destinations for a Publisher or Subscriber, • Schema Validation of XML Payload Messages, • C-API Support for Distributed Transactions, • Support for MySQL Database, • Installer Support for Sun Connection Registration. Full details atRelease Notes and 4.2 Highlights."

Time to really master java.util.concurrent? Intel Principal Engineer Anwar Ghuloum has posted some Unwelcome Advice for many developers: massively multi-core CPUs are the future, and developers need to adjust their thinking accordingly. "Ultimately, the advice I'll offer is that these developers should start thinking about tens, hundreds, and thousands of cores now in their algorithmic development and deployment pipeline."

In today's Forums,mikeazzi reports some problems with JNLP in Re: Launching Applets Through JNLP Link Has Got to Be Easier Than This. "I see two problems here. First is the lousy, and ambiguous error messages from the new plugin. I really wish somebody would do something about them before FCS release. And quite honestly I really don't care whether these confusing error messages make sense technically speaking or not. This is not a philosophical exercise here, this is all about common sense and what makes the developer life a little easier. Second, I don't know whether you are using the netbeans JavaFX plugin to generate your.jnlp file or not. But that's where the second problem is. The netbeans jnlp generator produces invalid xml for the .jnlp that it generates."

rogyeu announces a chance to get your 6u10 questions answere in Ask the Experts: Java SE 6 Update 10 Beta (July 7-11). "Java SE 6 Update 10, currently available as a beta release, introduces many new features and enhancements that dramatically improve the developer and user experience. Some of the significant improvements in Java SE 6 result in faster and easier deployment of Java applications and applets, better performance, and an improved look and feel. Got a question about Java SE 6 Update 10? Post it from July 7 through July 11 on the Ask the Experts page and get answers from three key members of Sun's Java SE Platform team: Danny Coward, Ken Russell, and Richard Bair."

fatbatman posts My feedback on Update 10 and wishlist for the future. "Here is a list of my thoughts/questions/feedback on Java6u10 that I compiled for a scheduled conference call with Sun that didn't happen. Instead of wasting the notes I thought I'd post them here. All comments welcome."

cowwoc questions the real-world practicality of applets in Re: Notewothy: Flash content now indexable. "It would be really cool if we *could* do that though, because silly little things (like drop-down shadows) take forever to implement in HTML and almost no time in Java. The remaining question is why you'd want to consider implementing this in Java versus Flash. In my case the answer would be "because I know Java better than Flash" but this is a rather poor answer at this time. Yes, Applets run a lot faster than Flash once they load up but this doesn't matter for most usages."


Seriously, Linux community, what does it take?

Surely, many of you saw the Slashdot item last week, Does an Open Java Really Matter, which closed with the parting shot:

Since Java itself never mattered except to sell books, I still don't see why opening it matters.

That's cheap and trite -- even for Slashdot -- and a lot of you let them know it (I did, too). But let's set aside the heat and see if there's any light. The source of the Slashdot article was Neil McAllister's InfoWorld blog Java is free at last. Now what? Discussing IcedTea's passing of the JCK, he wonders what's next for Java. "In terms of raw popularity, it's hard to argue that Java has been anything but a runaway success," he writes, seemingly refuting CmdrTaco's cheap shot in advance, but then goes on to wonder if the open-source community, particularly those in the Linux community, will have a change of heart:

The Linux community, in particular, has long viewed Java with ambivalence. Sun makes prepackaged binaries of the JDK available to Linux users at no charge, but that simply isn't good enough for Linux distributions that bundle only software that's available under a Free Software license, such as Debian and the Red Hat-sponsored Fedora project.

Um, hello, the whole point of OpenJDK and IcedTea is that Java, largely built atop Sun's implementation, is now available under the GPL. Seriously, Linux community, what does it take to satisfy you?

McAllister's point is that the developer tool marketplace is different today than it was when Java was born. "Today, RIAs (rich Internet applications) are all the rage, but the buzz isn't about applets and JavaBeans; it's about JavaScript, Flash, and Ruby on Rails. Google is the leading Internet company, and the language of choice for its application platform isn't Java, but Python."

Well, great. We've got a dozen different scripting langauges for writing webapp back-ends (most, if not all, of which also run on the JVM), a completely proprietary VM (Flash) to run in the browser, and for thick apps on the small devices we've got the proprietary iPhone SDK and the still-vaporous Android. And in some people's eyes, all this is preferable to GPL Java? Really?



Wicked Game Blog

Posted by kfarnham Jul 1, 2008

Has Google backed the wrong horse in the RIA race?

You'll recall that last week in this space, we discussed the browser-versus-VM competition, spurred by an update from Artima, Rich Internet Applications: VM Runtimes or Browser Standards? It asked the question of whether RIAs can continue to build on the JavaScript/CSS/DOM/Ajax stack, if that'll hold up and not become hopelessly incompatible and complex, or if the future is a VM-based solution in which the RIA runs inside a virtual machine, as with Java (and JavaFX), Flash/Flex, and Silverlight. We noted Apple and Google's bets on the Ajax browser stack, with Apple's support of WebKit and Google's use of Ajax for so many of its apps.

But is that really the right choice for Google? Or have they become a big enough company that they're blinkered into adopting the browser stack because that's what their previous successes are built on? That's the premise of Simon

Filter Blog

By date: