Skip navigation
ANNOUNCEMENT: is currently Read only due to planned upgrade until 28-Sep-2020 9:30 AM Pacific Time. Any changes made during Read only mode will be lost and will need to be re-entered when the application is back read/write.

OpenGL + Swing == pretty!

While we're waiting for the Aerith project to work through the legalese and get their source online, there's the question of how they got such nice effects to play with Swing and be performant. Usually, that seems like one of those multivariant equations where you can maximize two variables -- pretty, Swing-based, and performant -- at the expense of the third.

But there's an interesting hint in today's Forums, that speaks to the specifics of the "latest features of Mustang" that Romain talked about at JavaOne while demoing Aerith. Considering he also talked about OpenGL/JOGL and how the overlays were justJPanels, it seems like there must be some secret sauce that pulls together OpenGL and Swing and makes them cohabitate in a nice high-performance way.

And I think that secret sauce is called GLJPanel, if I'm reading the tip from Chris Campbell in Re: [JAVA2D] Repaint flicker when mixing swing & heavyweight correctly:

You mention that your app "necessarily" contains a heavyweight; have you looked into using GLJPanel instead? GLJPanel allows for 100% correct mixing of JOGL and Swing in the same app without worrying about flickering issues, and in JDK 6 and beyond, it is fully accelerated when the OGL-based Java 2D pipeline is enabled.

Mixing OpenGL and Swing in the hardware-accelerated rendering pipeline? Sounds tasty.

Well, we've got Mustang on the Mac now, and there's a nightly build of JOGL for PPC Macs (and a milestone release that's a Univeral Binary for Intel Macs), so that might be fun little research project... if I can remember any of that JOGL stuff that I did two years ago (avert your eyes, children!)

Also in today's Forums,kellyohair weighs in on the prospects of changing the JDK build process on Windows in Re: Getting the JDK to use gcc. "Speaking as someone that has bloody fingers from building on Windows, I cannot disagree with you. There are concerns here, but we won't know until we try. Solaris builds using Solaris compilers is probably not going to change, but then again building Solaris with gcc is just a small mountain to climb. Getting the Windows builds to use gcc would be a big mountain to climb. But perhaps this mountain needs to be conquered, or at least scoped out."

Back on the topic of all things GUI and animated, in today's Projects and Communities, the Timing Frameworkproject, originally introduced in the articles Timing is Everything and Time Again, has released a pack of updates. The new version migrates demos to their own subproject, adds a triggers package, moves interpolation classes to their own package, fixes bugs, and adds support for doubles in KeyValues because Romain insisted.

The Order Management API project hosts the proposed spec for JSR 264, which is in public review through June 11. The API "specifies minimum requirements for an Order Management System interface, supporting end-to-end creation and management of Products, Services and Resources, including Work Orders."

In Also in Java Today, Offering another introduction to one of Java EE 5's marquee features, the SDN article The Java Persistence API - A Simpler Programming Model for Entity Persistenceby Rahul Biswas and Ed Ort offers an in-depth tutorial. "The Java Persistence API deals with the way relational data is mapped to Java objects ("persistent entities"), the way that these objects are stored in a relational database so that they can be accessed at a later time, and the continued existence of an entity's state even after the application that uses it ends. In addition to simplifying the entity persistence model, the Java Persistence API standardizes object-relational mapping."

Instead of writing general show impressions for a JavaOne wrapup feature, this year Daniel Steinberg focuses on this question of open sourcing Java, and Sun's two JavaOne announcements on the topic: a new license intended to make it easier to distribute the non-free JDK with certain Linux distributions, and a promise that the open sourcing of Java is, according to Executive VP of Software Rich Green, "not a question of whether, but a question of how." InTelling Stories at JavaOne, Daniel takes a thorough look at the content and context of Sun's JavaOne announcements, and surveys how they have been received by their intended audience in the open source community.

Kohsuke Kawaguchi deals with a Gripe about web services in today's Weblogs: "Arun brought a comment to his session to my attention, in which an user made some interesting comments about web services. Since I work on the JAXB RI, so I know a thing or two about the issue he's talking about."

In Swing and Roundabouts 1: Event DTs, Evan Summers writes: "JSR 296 aims to help Swing developers avoid common bad practices, eg. Swing apps that are "a tangle of actionPerformed methods that block the EDT." My last project was a tangle SwingWorkers upon SwingWorkers. This blog presents how I eventually untangled that application."

David Walend takes a listen to the podcast of his Community Corner mini-talk in No Giant or Windmill, Just a Deranged Muppet, in which he offers "A quick note about my talk on generics at JavaOne."

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

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.

OpenGL + Swing == pretty!  

If It's Not Addin' Up Blog

Posted by kfarnham May 30, 2006

Integrating early and often

Constant integration one of those things you don't do until not doing it bites you in the butt. Typically, especially in a small company, you'll have teams working in parallel (it's faster!) and not worrying much about their points of contact for now (it's faster!), and assuming that everything will just work out in the end (it's faster!). This approach is great as long as you never seriously intend to integrate. When you finally have to, it's usually a mess of missed messages, class mismatches, props files overwriting each other, classpath fiascoes, and other misery. But hey, it was faster up to this point, right? And now you get to comb through thousands, if not millions, of lines of code to figure out how to get the pieces to work together.

Or you could, oh I don't know, get it right in the first place?

Continuous integration is the antidote to integration hell. It offers a powerful way to detect bugs and conflicts early, so that they can be fixed quickly and easily, and without too much bloodshed among team members. It basically involves automatically building and testing code at regular intervals. Team members commit their code to source configuration management very frequently (at least on a daily basis). A central server regularly checks out the latest version of the project source code, and runs a complete build, including compilation and tests. The build process automatically notifies team members of any build failures, and (hopefully) the team member responsible for committing faulty or conflicting code will immediately jump out of her chair (figuratively speaking) and rush off to fix the problem before anyone else notices!

In our Feature Article, Continuous Integration with Continuum, John Ferguson Smart shows how to use the Apache Continuum tool to automate your integration testing, so that you can jump on problems when they happen and keep your project on track.

In Projects and Communities, the Technoracle blog declares the Lego robot swarm and JVEX robotics to have been The Coolest Thing at JavaOne. It says "the result is that Java can easily be used with the VEX kit, which is a great prototyping environment. You can come up with an idea during morning coffee and make a prototype using Lego and talk to it via JVEX all before lunch."

A meta-blog asks Is anyone still dreaming of Jini?, criticizing its marketing message as it has evolved from embracing internet toasters to web services to open-source. However, bloggers have rallied behind Jini and its proposed move to Apache, with DamnHandy noting "Jini is cool if you take the time to scour the web to find out what Jini actually does."

In today's Forums,leouser explains the Swing philosophy in Re: What is the threading model of Swing?: "I think of Swing as a single-threaded library. Doing stuff outside of the EDT should be considered 'illegal'(not sure if you can go to jail for doing it, but it can certainly hang your application). With that said, there are some places where you can do multi-threaded swing stuff, but only do that if the javadoc clearly states 'multi-thread safe'."

vvaldo reports problems Using the Compiler API (JSR 199): "I am trying to use the Compiler API (JSR 199) but fail to get it working. According to the JavaDoc on java.lang.Compiler: When the Java Virtual Machine first starts, it determines if the system property java.compiler exists. ... If so, it is assumed to be the name of a library ... the loadLibrary method in class System is called to load that library I checked this and System.out.println(System.getProperty("java.compiler")) returns null. To which values should it be set?"

Jean-Francois Arcand processes JavaOne feedback in today's Weblogs. In After JavaOne, let the Grizzly hibernate....., he writes: "Slides and comments from Grizzly talks @ JavaOne this year. From the feedback I got, it seems many folks wants Grizzly available outside GlassFish, more examples on how to use the asynchronous request processing extension, and more blogs about tricks and tips with NIO. So before going to hibernate, I will try to push Grizzly binaries to a Maven repository. But more important, have you seen the Grizzly running on the Real Time VM during the Friday keynote?"

In a farewell note, Bruce Tate says Thanks..." has been good to me for all of these years, but it's time for a change. I'm moving my blog to"

Sahoo has a short tutorial on Using Kodo as Java Persistence API provider in GlassFish: "Pluggability of third party Java Persistence API providers into a Java EE container offers Java EE users exciting combinations to use. Earlier we had shown how to use Hibernate in GlassFish. Now it's time for Kodo, which is another high performance & popular O/R mapping solution. Recently Kodo 4.0GA was released and it supports Java Persistence API. So, I thought I shall give a try using it in GlassFish."

In Also in Java Today... sample code in your documentation is critically important to developers who use your software, since many of them will copy the code and paste it directly into their own code. But these examples are often poorly maintained and either don't work, or fail to evolve with your project. In Source Citing: Making Examples Work, Peter Arrenbrecht argues "it should be obvious by now. What automated testing (and unit testing in particular) did for code quality, it will also have to do for documentation quality. Only in this way can we keep the blessings of short iterations, constant refactoring and frequent releases whithout sacrificing the quality of our documentation."

In the tradition of Spring, JBoss offers Seam, which uses a declarative state model, extensive use of annotations, and two-way dependency injection to make automation of huge portions of your complex Java EE apps not just possible, but downright sensible. In a DevX article, Mark Smith shows you how to Discover Seam and Sew Up Your Java Projects Faster than Ever.

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

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.

Integrating early and often  

Time to hit the pool

It's Memorial Day in the U.S., the unofficial start of Summer. The only thing standing between me and the swimming pool is writing this blog.

So, it's going to be short.

But seriously, there was a comment on the latest poll that I wanted to make note of. On our poll about "What's your reaction to Sun's JavaOne 2006 announcements?" ilazarte, asked "no seriously, what announcements" and had this to say:

i followed and javalobby and even some artima waiting for the "bulleted list" of important information and it never came. i dont want to download a damn audio file, i dont want to meander through someones damn blog, JUST GIVE ME THE INFO

Well, sorry if our coverage wasn't what you were looking for, but for the last three years (i.e., every year since was launched at JavaOne 2003), we've used our bloggers as the primary form of coverage. We think this has the effect of filling the front page with fresh material from the technical sessions, the pavilion floor, the birds-of-a-feather meetings, announcements from projects, and the overall feel of the conference.

If you want consolidated notes just from the announcements in the keynotes,'s JavaOne page offered a pretty traditional coverage of what news was made.

But honestly, having done a few of these shows now, the keynotes seem to me the least interesting part of JavaOne. By a wide margin. As in: given a choice between staying up late for BoF's and getting up early for keynotes, stay up late, because there's more and better stuff in the BoF's than the keynotes.

JavaOne is the polar opposite of Apple's WWDC, which will take place across the street in Moscone West in August. In that show, the keynote totally sets the tone for the whole show, and usually launches surprise technologies that will then be covered in the technical sessions. I think the key difference is one of transparency: Apple, with its proprietary technologies, keeps its cards close to its chest and can unleash them in the keynote for maximum effect. Java is developed in the open, under the aegis of the JCP, so there's rarely any surprise because the contents of a given release are known months or years in advance. Indeed, the one big surprise of JavaOne was the Google Web Toolkit, which made a splash precisely because it could be developed in secret and unleashed with a surprise announcement... which isn't an option for Java itself. And I think most of us are pretty happy about having that kind of transparency.

Speaking about making a splash, did I mention that it's 85° (33°C), and there's a swimming pool down the block waiting for me?

There's also a JavaOne reflection in today's Weblogs, as John O'Conner seeks feedback in Java ME Opinion poll: SavaJe phone at JavaOne: "The 'device of show' at JavaOne was a SavaJe cell phone with a CDC and JSR 209 implementation. What's your opinion of this phone?"

In Refactoring Translations, Evan Summers writes: "An approach is presented for "refactoring" strings out of an application, towards translatable resource bundles, which are loaded into a "messages" class via reflection."

Finally, Chet Haase is Trigger Happy, as he writes about "using the new Triggers functionality in the timing framework"

In Projects and Communities, a discussion on JavaLobby asks Whatever happened to shared VM support?, saying it has been alternately promised for Tiger, Mustang, and Dophin, with a complementary spec approved, JSR 121, to handle the isolation of applications from one another. The first post also claims that lack of a shared VM precludes using Java for small desktop applications, due to memory footprint issues.

Avez-vous besoin de quelques blueprints Java EE? The blueprints project has a new French version of its AJAX FAQ, to compliment the English and Chineseversions. The blueprints project "presents best practices, guidelines and applications for designing enterprise applications and Web services using Java technologies." In addition to the FAQ's, there's also a set of AJAX components for your use.

In today's Forums,km105526 discusses security concerns in Re: Database Password in Clear Text in the domain.xml File: "Yes. There is a way by which you could hide this password or avoid displaying it in clear text in domain.xml. But before even we go there, note that on good operating systems like Solaris, the domain creation process for GlassFish takes care of setting the permissions of this file to 0600. And dare I say that the highest form of security is derived from the platform and its file system. Once you compromise that, you are hosed anyway."

In Need a way to tell 32bit and 64bit JDK apart in uninstall,hlavac writes: "On 64bit Windows I almost always have both 32-bit and 64-bit Mustang installed. I noticed that both look almost the same in "Add or Remove Programs" control panel (except 64-bit has a messed up icon). Could you change the name to include information that differentiates x86 from x64 (like "(x64)" suffix to the program name)?"

In Also in Java Today, Anil Hemrajani says that the established processes of Big Requirements Up Front (BRUF) and Big Design Up Front (BDUF) seem like a good idea, but in practice, they often lead to a waste of time and effort, and sometimes lead to projects failing entirely. In the dev2dev article Using Agile Processes and Modeling to Build Enterprise Applications, he looks at the approach of adapting less verbose and more reactive processes--agile methodologies--to keep your project on track. "Since agile methods tend to follow a common set of principles and values, one unpublished benefit of agile methods is that you have the option to pick and choose from various techniques and tailor them to your environment."

Among the now-final Java EE 5's most prominent features is a new persistence API defined by EJB 3 that is, in fact, available for use by any Java SE or EE application. In Standardizing Java Persistence with the EJB3 Java Persistence API, Debu Panda writes: "It simplifies the use of transparent persistence by using metadata annotations and the configuration by exception approach. Several application servers, including Oracle Application Server 10g (10.1.3), Sun's open source GlassFish Application Server, and JBoss Application Server 4.0, provide early support for the EJB3 specification. With the Java EE 5.0 and EJB 3.0 specifications finalized, you'll soon see many leading application server and persistence providers implementing EJB3 Java Persistence API."

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

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.

Time to hit the pool  

Hurry Faster! Blog

Posted by kfarnham May 26, 2006

On demos that purport to do everything

There's something I remembered thinking during the JavaOne keynote and wanted to get into my blog about Aerith but forgot when i was writing it. So it gets its own blog today...

In the previous blog, I was noting how much more I enjoyed Aerith than the impeneterable interoperability and BPEL demos that preceded it. Surely that's in part because I've got a desktop slant. But there's also something that Romain said that impressed me:

He said that the basics of Aerith's appearance took about three days to write.

Seriously, there's something you don't hear every day. A demo that doesn't purport to do your job in 20 minutes. That was the point of some of the other demos I saw last week -- that they'd work out everything for you in some trivial amount of time. Personally, I'm a little suspicious of such demos; I kind of wonder if they work so fast because the demo is in an unrealistically trivial "toy" domain, and wonder if the approach of the product will actually scale up to a more serious project.

On the other hand, if this project actually does reduce some task to a half hour of dragging and dropping, then my services as a developer won't be needed for this task anymore, and I'll move on to something else that takes serious effort.

So with Aerith, it was nice to hear that sliding the pictures in and out and doing the translucent panels and everything took a non-trivial amount of time... that's somehow more believable, more plausible. It helps, of course, that it wasn't too much time. Trying to achieve this much customization in a less extensible toolkit like *WT (read that as a wildcard, please), would probably be painful-to-impossible, so there's a sense of relief that you can get such a nice app with only three days work.

In Projects and Communities, taking a look at DWR's most prominent new feature, Prokata asks What is Reverse Ajax? "The problem is that web servers can't easily contact web browsers. For one thing firewalls will get in the way, and even if they didn't, browsers only listen for answers to questions they've asked. So how is the web server to get the message through? Answering this question is the essence of reverse Ajax. "

In the blog Sun Posts SPECjAppServer2004 results using GlassFish, Scott Oaks writes: "Today, Sun posted our first-ever SPECjAppServer 2004 result on SJSAS 9.0 Platform Edition. This is the only SPECjAppServer result published so far on an open-source application server [...] It is also the first (and so far only) SPECjAppServer result published on an application server that is certified to the Java EE 5 specification."

The latest Pollasks "What's your reaction to Sun's JavaOne 2006 announcements?". Cast your vote on the front page, then visit the reuslts page for results and discussion.

In Also in Java Today, Frank Sommers and Bill Venners ask Should More Individuals Join the JCP? "In this editorial, we argue that greater individual involvement in the JCP would lead to better specifications, and that more individual developer members could provide a healthy balance between vendor perspectives and those of users."

"If you have been in the IT field for a while, you can't help but get the feeling of deja vu when you hear vendors pitching new technologies. If the buzz and hype around Service Oriented Architecture (SOA), makes your head spin, you are not alone." Nick Simha tries to cut through the hype and get back to a useful understanding of SOA in the dev2dev article SOA: Are We Reinventing the Wheel?

Kirill Grouchnikov has a Proposal for common "feel" layer in look-and-feel libraries in today's Weblogs. "This entry describes the laf-widget project that provides support for and base set of additional behaviour and widgets in look-and-feels. In addition, it allows outside developers write plugins that will run in under all supporting look-and-feels."

Marc Hadley is Mapping WADL to Java: "This entry discusses a prototype mapping from a WADL description of a Web application to a set of client-side stubs that simplify use of the application."

In Bean Curd (Chapter 1), Evan Summers writes: ":An earlier blog "Explicit Reflection" wished for lightweight field and method references (eg. for binding properties and registering event handlers). This blog presents the approach I currently use for bean bindings without string references."

In today's Forums,sunyi asks what is the relationship between JDK1.5.0 and JAXB2.0? "I'm curious that is there any dependence or relationship between JDK1.5.0 and JAXB2.0? Must I update JAXB to 2.0 when use JDK1.5.0? If I update my JDK to JDK1.5.0 and still use JAXB1.0 the same time, will it cause any incompatible problem?"

diverdad has a question about Printing Resolution: "How do I take advantage of the full resolution of the printer? When I do a default print using the printer service I seem to get the resolution of the window that I am printing, is there some way of getting the resolution of the printer not that of the display device? I have a Java2D graphics window, and have tried the following with no success..."

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

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.

On demos that purport to do everything  

Fragments of Memories Blog

Posted by kfarnham May 25, 2006

Desktop guys need persistence too

Joshua Marinacci makes a pretty strong statement in today's feature article:

However, the sad fact of client software today is that as every application gets bigger, it eventually needs a database. From the largest billing system to something as simple as an address book, almost every application needs a database

Thing is, he's probably right. Productivity apps, loosely defined as those where your data is more valuable than what (if any) the application provides, are often well-served by having a database to sort, search, and organize your data. A database is critical to for wrangling thouands (or tens of thousands) of songs in an MP3 player, and when I look at how iChat has saved all my instant-messaging sessions in separate files -- 3,800 of them now -- it occurs to me that this app would be well served by a database to organize all those old conversations.

Thing is, most desktop developers don't get a lot of face-time with an SQL command-line and many aren't enthusiastic about working with databases. Says Josh:

I've been a professional software engineer for close to ten years now and I don't know anything about databases. Sure, I can write a simple SELECT call, but if you ask me to do an double outer join with foreign keys or convert my schema to 18th normal form, I'll simply get lost and give up. I don't know databases. In fact, I hate databases. I'm a client guy. To me, a database is simply a box to store stuff. I don't know how they work and I don't want to know.

So, how do we get client-side developers hooked up with database persistence without pulling them away from their pretty GUI's and making them look at database diagrams? In today's Feature Article, Josh suggests using the new Java EE persistence API. In An Introduction to Java Persistence for Client-Side Developershe shows how a lightweight combination of Hibernate, HSQLDB, and the JPA can make saving address book entries a snap.

A post-JavaOne reality check tops today's Weblogs. In State of Java ME development, John O'Conner writes: "Having just returned from JavaOne, I'm excited about the talk about Java ME development. There's just one cell phone service provider and device manufacturer are completely clueless, unable to help me."

In Gosling Goes Real-Time, Janice J. Heiss writes: "At the JavaOne Conference Friday morning keynote, 5/19/06, James Gosling talked with Sun Distinguished Engineer Greg Bollella about Real-Time Specification for Java (RTSJ)."

Finally, Kirill Grouchnikov grumbles about This little HTML renderer in my head: "If there is one implied skill in Java development positions, it's the ability to read HTML tags and see the layout..."

In Also in Java Today, Michael Feathers says It's Time To Deprecate Final: "Here's the problem: When you use final pervasively, you make unit testing nearly impossible. Believe me, I know. I encounter enough teams who are in that situation. Have a class A which uses a class B that is final? Well, you'd better like B when you are testing A because it's coming along for the ride... The problem with final (and a couple other language mechanisms like it) is that it is too coarse a tool for what it does. It prevents everyone from subclassing or overriding. What we really need is selective access, or maybe just convention."

"'Real Time" doesn't mean "real fast'." In Peter Mikhalenko's Real-Time Java: An Introduction, the author takes a close look at the Real Time Specification for Java (JSR 1) and a recent implementation from Sun. "Real-time Java offers a much more reliable and predictable scheduling mechanism, memory handling methods, different memory models, a more predictable threading and synchronization model, asynchronous event handling, and high-resolution time handling. It makes predictable execution the first priority in all trade-off decisions, sometimes at the expense of typical general-purpose computing performance measures. This is what real-time means."

In Projects and Communities, Scott Violet writes about the approval of JSR 295: Beans Binding in his blog Ease of Swing Development - Beans Binding. "Beans Binding aims to make it easy to bind two properties of two objects together. Taking the slider example, you might be able to bind the two together with the following code: bind(slider, "value", selectedObject, "foo");"

The goal of the Sun Grid Developer Community's Neurona project is "to create a prototype of an AI system which can work as a sole entity formed by neurons or 'brain cells'." The approach will use distributed computing "in order to have several computers working independently, saving and restoring 'memories': text, images, sounds, video and any kind of information available."

In today's Forums, Juan Gonz


Aerith's Theme Blog

Posted by kfarnham May 24, 2006

Timing is still everything

It makes sense that Aerith, the beautiful Swing / web services mashup example from Tuesday's JavaOne general session, depends on Chet Haase's TimingFramework, because, as Chet has pointed out, Timing is Everything.

Puns aside, it is terribly unfortunate that the Aerith demo was put at the end of this general session, because it followed what I thought were two absolutely lifeless and inscrutible demos, one on .Net interoperability and another on BPEL, that sent atendees flocking to the exits. And as for those that stayed, well, the guy to my immediate left had fallen asleep midway through the BPEL demo, and I'm sure he wasn't the only one.

The unfortunate upshot for Romain and Richard was that all life had been sucked, wraith-like, from the hall before they even took the stage. Maybe it's my desktop bias, but it seems terribly unfair. They put together a useful application, with quite a few "you can do that?" moments, combining JOGL rendering and SwingX components in audacious ways (even if obviously inspired by Mac OS X's aesthetic). Shown to an audience that hadn't been worn down for two hours, it probably would have garnered more buzz.

Memo to Sun: next year, put Romain, Josh, and Richard at the beginning of the keynote, not the end.

We point to Aerith in today's Projects and Communities, section, describing it as a "Swing roadtrip slideshow editor/presenter that pulls in webservices from Google Maps, Flickr, and Yahoo geocoding." In the blog Aerith Updates and the End of Java One 2006, co-author Joshua Marinacci points to Aerith's initially-available resources and how to watch it in the keynote stream.

Continuing the page's all-JavaOne theme, the Community Corner podcast episode j1-2k6-mtW02: Panel discussion with non-Sun JDK contributors Brian Harry, Jesse Sterr, and Andy Tripp discusses the experiences of three outside Mustang contributors. David Herron discusses how to get started contributing to Mustang or Dolphin in his blog You can fix the JDK today.

In this week's Spotlight, the Substance project provides a "configurable and customizable production-quality Java look and feel library for Swing applications." Its latest release,version 2.3 provides support for right-to-left orientation, inverted themes and better support for dark themes, extensive watermark support, various tab improvements, a color picker, and more. A screenshot gallery helps visually convey Substance's many abilities.

Kicking off a JavaOne wrap-up special in today's Weblogs, Jim Driscoll looks at JavaOne: What worked and what didn't: "In a little while, we're going to have a meeting to discuss the next JavaOne. While I cringe at the thought, I want to be ready - help me with my list of things that worked and didn't."

Ben Christen offers My lunch table survey of the best JavaOne sessions: "I surveyed my lunch table to find out what JavaOne sessions were the best!"

Taking a high-level perspective, Max Goff writes on JavaOneXI: Sun Spots, bleeding and other cycles: "According to one article on,, throughout history events such as wars, migrations, crusades, uprisings, and revolutions have clustered around peak sunspot periods. While JavaOne in 2006 hardly qualifies as mass hysteria, it was nevertheless quite an event."

In Also in Java Today, the JavaPosse podcast was particularly active at JavaOne 2006, with three episodes already posted from the show. Episode 55features their birds-of-a-feather session, recorded live in front of a late-night Argent Hotel audience. In Episode 56, they interview Google's Brett Taylor about Project "Red Pill", better known as the Google Web Kit, and Greg Murray of Sun about Sun's AJAX tools and support. Finally, in Episode 57, the Posse does a packing-day wrap up of their favorite stuff from JavaOne, including Semplice - Visual Basic for the Java Platform.

Filling a big hole in its plans for a F/OSS Java implementation, the Apache Harmony project showed off an AWT/Swing implementation at JavaOne 2006. Project leader Geir Magnusson writes: "Today during our JavaOne talk (given by Tim and I) I was proud to demonstrate JEdit running on Harmony! That's right, with Swing/AWT code. The formal contribution is on it's way, and I don't wish to steal any more thunder from the contribution when it's made, but we (Intel hat on here..) wasn't able to make the donation in time for the talk today because of internal process loose ends, and I wanted to make a splash for us at JavaOne. I expect it will be here in the next couple of days."

In today's Forums,kldavis4 needs help with Derby/Persistence Issue: "I saw a nice talk at JavaOne this week one how easy it is to persistence in Netbeans 5.5 & Glassfish. So I immediately went and tried to do the persistence tutorial on ( Unfortunately, my attempts to duplicate the demo I saw at the conference have failed miserably and after days of hacking at this, I am frustrated and really would appreciate some assistance."

dan2003 is surprised by performance problems withlg3d-livecd-2.5-full.iso: "I just downloaded this today (19/05/2006) and have tried it on two machines both of which it runs horrendously slow (one screen update every 4 - 5 seconds!). Previous versions have run far better. Surely i should be experiencing better performance than this?"

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

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.

Timing is still everything  

You probably think we took a break yesterday after a grueling JavaOne. And maybe we should have. Everyone's feet still hurt.

But truth be told, we should have switched back to the regular page by now. In fact, Monday's page is sitting, finished, in the staging buckets, ready to go. It features a spotlight on theSubstance look-and-feel project, an "Also in Java Today" linking to the Java Posse's various JavaOne podcasts, and some forum postings by people trying to use Derby and Looking Glass after their JavaOne tech sessions.

Unfortunately, something is amiss between Atlanta, Sebastopol, and Hawaii, and thus we're still in JavaOne coverage mode.

So, until we return to your regularly-scheduled website, please enjoy a final collection of podcasts and weblog wrap-ups from JavaOne 2006.

JavaOne 2006 wrap-ups  

JavaOne 2006 Day Four Blog

Posted by kfarnham May 19, 2006

With a cheer from exhausted booth personnel, the JavaOne Pavilion closed at 7PM last night. I put the last touches on the podcast from the hotel room when I got back, and here's what it looks like if you load it up in the iTunes Music Store


44 episodes in the can, 38 of them mini-talks recorded in the booth over the last three days. If you find enough bandwidth to download them all, you'll be set for a very long drive -- if you already listened to the pre-show podcasts and just picked up all the mini-talks, you'd have 11 and a half hours of audio over the course 38 presentations, totalling 347 MB of 64 Mbps mono MP3.

It's also interesting taking a look at the iTMS screenshot above as evidence that people have been subscribing to the podcast, since it shows what other podcasts our subscribers have picked up: Sun Developer Network, Leo Laporte's Mac vidcast, the Java Posse, etc. We won't be able to get stats from our download server that houses the MP3's until our doer-of-all-things Sarah Kim returns from her much-delayed honeymoon in Hawaii (have fun, Sarah; thanks for everything at the show this year!), but we do think this is going to enable a lot of people to check out interesting presentations that they weren't able to attend in person at the booth.

That said, assuming we do this again, we probably ought to improve the workflow. We capture, paste on intros and outros, add tags, convert to MP3, upload to server, hand-edit the RSS feed, and write an announcement in the jnpodcasts project. Multiply by 16 talks a day, and I'm pretty beat.

So anyways, are you getting around? Meeting people? That's John Gage's command every year: go forth and mingle. It's always interesting to be in front of the book store and meet up with someone you debated with in the Q&A portion of a tech session earlier in the week, or someone you saw across the room in a BoF. There was a lot of mingling last night at the well-attended After Dark party, and there's still time to track people down via instant messenger for one last coffee or a game of NHL 2K6 in the hang area before we all go our separate ways for another year.

This morning we kick off with the final general session, highlighting innovation on the platform. This should be fun, as it's a place for all the cool demos that remind you of what's possible with Java. If you're already heading to the airport, remember to check back on the JavaOne Sessions page for on-demand webcasts when you get home.

Next week, the front page will return to its normal format, and we'll take a look back at JavaOne, and hopefully be re-inspired about our communities and our projects. See you then.

Update 11:00 AM PDT -- Check it out, we're the #79 technology podcast on iTunes, ahead of the Ruby on Rails Podcast, NerdTV, and even the Java Posse. Thank you for listening!


From our pod, to your iPod  

Apple's 2006 JavaOne BoF Blog

Posted by kfarnham May 18, 2006

It wasn't easy staying up for a 10:30 BoF from Apple, but it's a tradition, so Daniel, Josh, Cooper and I hung out at Moscone until the wee hours.

It was worth it.

Apple's Alan Samuel set out to break some widely-held misconceptions, by making two interesting releases. The first misconception was that since Apple had released a Mustang developer preview for Intel Macs, that it had already turned its back on PowerPC. This was dispelled by the announcement of Developer Preview 2, which supports both Intel and PPC.

The other misconception was that Apple was not supportive of SWT. At this point, Alan welcomed engineer Scott Kovatch, who showed off a demo of a new compatbility library that allows SWT widgets to coexist with AWT and Swing widgets. In his example, an SWT text field shared a window with a Swing JTree and some AWT widget I don't recall.

They marked the occasion by clearing the bug in Ecilpse's Bugzilla... well, they put a comment into Bugzilla, but forgot to change the status from NEW to FIXED, so a few hundred developers tracking the bug got an e-mail about the new comment, and presumably will get a more complete update later.

Both of these announcements were mirrored in a java-dev mailing list entry Ann: Java SE 6 for PPC and Intel and SWT Compatibilty Libraries now available!, so those not at JavaOne could join in the fun too.

In a remarkably impressive demo, Scott showed the Aerith demo from Tuesday's general session, running in the pre-release Mustang for Mac. While a little pokey, it maintained all of the lavish JOGL-powered graphics, seamlessly rendering in the Swing environment, in all of Aerith's OSX-inspired 3D reflective goodness.

A Sharkdemo was planned, but time ran out.

Late night, but well worth it.


JavaOne 2006 Day Three Blog

Posted by kfarnham May 18, 2006

It's 6AM PDT and your editors are pushing the morning page from their Japantown hotel. Daniel's picking the front page items from the many sources (our blogger coverage, podcasts, etc.), while I'm writing the daily blog and then writing two or three blogs of my own (micro-preview: yay Mac, boo Blu-Ray). This is after somehow wobbling back to the hotel at midnight, after Apple's night-capping BoF.

It's too bad that Apple only had a BoF, but the freedom of that format -- regular tech sessions need to have slides submitted months in advance -- suited them well. They were able to make some-up-to the second announcements, including a Mustang preview for PowerPC Macs and a fix to a long-standing SWT bug, which they marked as fixed in Eclipse's Bugzilla right there in the BoF. They even showed the Mac running the Aerith demo from Tuesday's general session. Well worth staying up for.

Still, the crazy-long days and nights of JavaOne, with general sessions as early at 8:30 AM and BoF's that end at 11:30 PM, make me wonder if there shouldn't just be some event that runs overnight -- some crazy MacHack-style coding contest perhaps -- so that JavaOne can finally be the 24/7 conference that it seemingly longs to be. That way, there'd always be something going on, and the night owls and insomniac jet-laggers could do something other than watch Conan and [adult swim] back at the hotel. Maybe there would even be a style of session appropriate for a 3AM block, not "birds of a feather", but something more nocturnal... "bats of a wing" perhaps."

JavaOne's size and many interests/passions/niches prevent there from usually being one big story that all attendees track. Sun PR was determined that I know in depth about the Linux licensing announcements that will make it easier for Linux distros to package the JDK in ways that make sense to them -- so you can finallyapt-get jdk in Debian -- but this seemed not to be the point of Tuesday's general session appearance by Ubuntu's Mark Shuttlesworth, and it's primarily of interest to the Linux Java community, particularly to desktop developers who need to ensure that end-users can get Java easily. A good source for further information on this is David Herron's mini-talk podcast on licensing for Linux packagers.

Podcasting was most of your editor's day yesterday, with a long stretch of mini-talks at the Community Corner. We did 14 of them yesterday, all of them available from the jnpodcasts project (check out the RSS podcast feed, iTunes page, and browser-readable announcement page for new podcasts). One that was particularly interesting was the panel discussion with non-Sun JDK contributors, in which Brian Harry, Jesse Sterr, and Andy Tripp talk about the bugfixes they've contributed to Mustang (Brian is the guy from the general session who's contributed a few hundred fixes, many of them in Swing). I led this panel discussion, and we talked about not just the bug fixes, but what it's like to participate in the Mustang program, and what it's like to work with the code. It was a refreshingly frank discussion, as Andy talked about working around the difficulty of building something as big as Mustang, and Jesse acknowledged that some of the internal inconsistencies inside the code came as a shock to him. Of course, one of the benefits of opening the source as has been done with Mustang is to shine a light on some of those dark spots in the code base, hopefully leading someone to make them better over time.

Today's the last day for the booth and the pavilion as a whole (schwag and loud PA alert). So if you haven't come by to see us, we're under a big "" banner in the 500's... right next to LoudSystems or whoever... and the booth offers a chance to meet with some of the community leaders and the Sun/Collab/O'Reilly team, as well as to attend the last day of mini-talks. I hope we'll see you there.

At this rate, why not just make it 24/7?  

JavaOne Day Two Blog

Posted by kfarnham May 17, 2006

Wow, I knew my Swing Hacks partners -- co-author Joshua Marinacci and contributor Romain Guy -- were destined for great things, so getting their demo in the JavaOne keynote is just par for the course. They've always blown me away with their ability to tie together the disparate parts of Java2D, the GlassPane, JOGL, etc., to achieve clever effects that you supposedly can't do with Swing. One of the things that Josh and I said in a session last year was that "if you can paint() it, you can have it", meaning that there were lots of places where you could use various forms of rendering (Java2D, JOGL, QTJ) and get it into Swing's rendering pipeline.

Their demo, Aerith(already posted as a project!), is a mashup that combines photo management with Google Maps, allowing you to find and define points of interest in real-space and associate pictures with them. In short: take your pictures, locate where you took them, and then let Aerith take you for a drive, tracing your progress from point to point while superimposing a translucent photo slide-show of your photos as you reach each point. The progress trace is done with a thick red line, and if you hum the "Raiders of the Lost Ark" theme in your head as it goes, the effect works much better.

Aerith uses Mustang's latest features, and it wouldn't be surprising if the ambitious JOGL integration isn't a little touch and go if your Mustang is more than a few weeks old (same goes, I imagine, for the early-access Mustang available to Intel Mac developers). But then again, the fact that it's an open source project on should allow anyone who's interest to help make any neccessary adjustments for their platform, and it could provide a good test of Mustang rendering on the various Java platforms.

I'll have more to say about Aerith next week... it occurs to me that I've spent four paragraphs on just one demo from the keynote, and of course there's a lot more going on at the show. One look at the weblogs page shows the extraordinary diversity of activity, ideas, and opinions being tracked by our bloggers. There were 34 blogs posted yesterday!

I spent most of my time at the Community Corner in the Pavilion, working on our podcast series. We had to quickly react to various realities of the situation in the booth -- audio output that was initially too "hot", too little wireless bandwidth to upload the first few talks until hours after they were presented, Garage Band exports that took too long (I've abandoned its "mixdown" approach in favor of copy-and-paste in Sound Studio), and an attempt to do an interview with two mics without knowing that only one was supposed to be used at one time. So there are audio glitches in some of the podcasts, and while I regret their existence, I do see them as a badge of authenticity -- these talks are being given just once, and we're right there with a laptop grabbing them as best we can and getting the audio out to listeners around the world as quickly as we can. And really, by the second half of the day, we had things down pretty well. This is an important experiment for us, because while only a few people will find their way to the booth for each talk, we think that preserving the talks online and providing them as an easily-accessed series of podcasts will help them reach a much larger auidence. In turn, this should give project owners one more way to get the word out about their projects.

Speaking of mini-talks, I'm doing two today: a panel discussion with JDK contributors who don't work for Sun, and then one on my still-incubated QTJ extension project, Lloyd. I should probably get my slides written, given that I'm presenting it in a few hours...

Long live Aerith!  

I thought the "fake wifi network so we can steal your passwords" schtick was played out two JavaOnes ago, nevertheless, here's what the air looked like in the Tuesday morning general session:


Sigh. Who are these bottom-feeders, and how did they get into JavaOne?


JavaOne 2006 Day One Blog

Posted by kfarnham May 16, 2006

For most people, today is Day One of JavaOne 2006, as it's the first day with technical sessions, general sessions (aka "keynotes"), the pavilion, BoF's, etc. That said, it's nottechnically the first day of JavaOne, as plenty of official activities were already underway yesterday, including the Java University and the Fireside Chat.

Probably the most popular event yesterday, at least if our blogging community is any indication, was NetBeans Day 2006. Gregg Sporar, John O' Conner, Steven Harris, and others have checked in with their recaps, impressions and pictures from the event.

Meanwhile, I was with Marla Parker, Helen Chen, Gary Thompson, Roger Brinkley, Joshua Marinacci, and others coming and going from the setup of the booth. We tested the audio and the screen for mini-talk presenters, and I got to make a bonus trip to CompUSA to get a cable for recording the mini-talks for our podcast series.

And as if good company and good talks weren't enough, there are other compelling reasons to hang out in the community corner... might I mention comfy couches and a power strip?

Having said all that, today is the big keynote day for most people, with a morning general session from Jonathan Schwartz and Jeff Jackson on "Making Java Work for You", and an afternoon general session in which Graham Hamilton and Bill Shannon lay out the "Java Platform Roadmaps". Probably the key things to watch for here, as I discussed in last week's preview article, are what kind of a push Sun puts behind the finally-ready Java EE 5, and what specific features make the early cut for the Dolphin roadmap.

It's time to get dressed and get ready. See you in line around Metreon in a few minutes. I'll be the bald guy with the iPod. :-)

Looking ahead to the first full day of JavaOne 2006  

I spent part of yesterday afternoon at the booth, helping set up for podcasting the mini-talks, which start today at 11.

The booth arrangement is really nice this year: on one side, we have the kiosks for signage, literature, and computers, which allow community leads and project owners to show their stuff and meet with people. At the opposite side is the screen, speakers and podium for the mini talks, with a backdrop behind the screen so the light from nearby booths doesn't distract you. In front of the podium is seating for about 16-20.

And in between we have a pair of comfy sofas for members to hang out in and enjoy the mini-talks from the back row. The sofas have a coffee table for your drinks/snacks/laptop, and on top of the table we have the rarest of all things at JavaOne: a power strip. Yes, you can relax and recharge in the booth... literally... while you meet other community members and get the 20-minute info dumps that are the mini-talks.

I did an interview with Community Manager Marla Parker while the booth was still under construction, which you can hear asour latest podcast.

So do come by. Booth 532. Under the big orange "" banner. Just listen for the sound of community and innovation.


JavaOne 2006 Day Zero Blog

Posted by kfarnham May 15, 2006

Sure, the official schedule says that JavaOne starts tomorrow, but for a lot of people, it's been JavaOne for a while now.

On Saturday, we held our Community Leaders weekend in a Sun office on 1st and Howard in downtown San Francisco, about a mile from the Moscone Convention Center. The event was attended by about 20 people, mostly leaders of the various communities, but also a few project leaders,, CollabNet, and O'Reilly staffers.

Rather than try to anticipate everyone's needs in advance, the meeting was held with more of an "un-conference" format, incorporating elements of Foo Camp and similar exploits. Attendees were encouraged to give one or more five-minute "lightning talks", the time limit of which kept things moving along quickly.

We also scheduled our break out sessions by writing up topics on the spot, so that instead of committing to topics attendees might find boring, we could hit the specific things that people wanted to talk about. These talks included our evolving approach to supporting multiple languages on the site (which has a lot of technical, editorial, staffing, and user experience issues that are not obvious) and how to establish a life-cycle policy for floundering communities (we found we're generally opposed to eliminating a community and will make multiple efforts to find new leadership to reboot a failed community, but we are developing a policy to handle the case where a community is just not going to succeed).

During lunch and while the event was breaking up, I recorded a series of short interviews for the podcasts JavaOne 2006 series (RSS feed | direct iTunes Music Store link). These included:

  • Bruce Boyes talking about the Robotics community and their JavaOne demos
  • Roger Brinkley talking about the Java Desktop community
  • Fabiane Nardon talking about the challenge of managing the 500+ projects in the Tools community
  • Joshua Marinacci talking about the SwingX project, Java on the Mac, and Swing Hacks in Japanese

I also conducted an interview with Ray Gans about the JDK community, the Mustang and Dolphin projects and the translations projects, but for technical reasons we had to drop it (my laptop was set to capture from its internal mic, not the podcasting mic, and thus barely picked up Ray from halfway across the room). Hopefully, there will be time for a do-over later this week.

I think that most attendees liked the new format of the meeting - it was fresher, faster, and more productive than the usual all-day conference grind. Plus, Flip brought us food and schwag. And Bruno brought Juggy.

Sunday and Monday are set-up days. I spent yesterday working on podcast material, shopping for anime goodies in Japantown, and banging my head against a Segmentation Fault that threatens to make my mini-talk a lot less interesting. This morning, I'm heading down to Moscone to meet Marla and test out the podcasting set up in the mini-talk area, to make sure that when the talks start tomorrow, we'll be able to record them without a hitch and start getting those to you shortly after they occur.

You think JavaOne hasn't already started?  

Countdown Blog

Posted by kfarnham May 12, 2006

Last chance for pre-JavaOne releases

Those recent RC's are turning in x.0 releases, as the big run up to JavaOne reaches its final hours. More and more people are already in the Bay Area for pre-J1 events, which is a pretty significant lead time considering the conference proper doesn't start until Tuesday.'s various community leaders will be gathering for theCommunity Leaders weekend on Saturday, and many of the Sun employees in the community are committed to setup responsibilities on Sunday and Monday. After all, someone has to pull things together so it's ready first thing on Tuesday morning.

If you're coming to the show, check out and our Community Corner at pod 532 on the pavilion floor. If you're not coming, then please subscribe to our podcast and we'll bring the community corner to you.

In Projects and Communities, the blueprints project has announced the release of Java Pet Store 2.0, Early Access, which provides a reference application illustrating the blueprints for designing a complex AJAX web application on Java EE 5. illustrates BluePrints for using AJAX with Java, building AJAX-enabled JSF component libraries, using Java Persistence APIs, applying MVC and other design patterns in an AJAX web app, and more.

The NetBeans IDE 5.5 has gone beta, just in time for JavaOne. 5.5's most prominent features involve Java EE 5, including support for EJB 3, the new Java Persistence API, Servlet 2.5, JSP 2.1, JSF 1.2, JAX-WS, and javadocs and code completion for Java EE 5 API's. Other new features include code completion for JSP expression language (EL), security configuration in EE applications, and support for running SQL scripts from the IDE.

In today's Forums,enigmatecalex sees some nice potential coding paradigms in Re: Support for named code blocks: "The upshot of this idea -- being able to put annotations on blocks of code ... or even anywhere -- seems so natural and useful, I'm surprised not to see more discussion about it. Don Schwarz noted this desire early on, [in an article], but I've not seen many other people clamouring for it. I think it would definitely take java+annotations to the next level."

In Re: Autologin with JAAS?, dutow makes the case for auto-login: "Most forums have this feature ("Remember me"). It stores another cookie on the client (autologinid), and when the user's session expired, it creates a new, with the user logged in. So if the user choose this option, he doesn't need to log in again for severel months... I want to add a checkbox to the login page. If it isn't checked, then it's a normal login, with just a session cookie. But if it is checked, then I want to store an autologincookie on the computer. And if a client with autologin cookie, but without session cookie reqeusts the page, I want to login the user... But if I undertand it correctly, I can't do it with JAAS."

Claudio Miranda talks up the NetBeans 5.5 beta in today's Weblogs. In See some NetBeans 5.5 (beta) features and screenshots, he writes: "NetBeans 5.5 beta is out, together with the Enterprise Pack, which is an addon bundle like Mobility and Profiler. Read and see some of the nice features I found out... (psst. SubVersion support is at AUC)"

In Swing trumps Ajax and Web 2.0, Evan Summers says: "Let's use the web as a delivery platform for Swing applications, rather than a rich application platform in itself. It stands to reason that it's easier to write in pure Java, rather than a big mix-up of Java, JavaScript, XML, JSP, HTML, CSS, et cetera. Ajax is a poor platform for rich applications. Just compare to, via 55Mbit broadband in a future coming soon..."

Tom White writes about Literate Programming with jMock: "jMock is not just about mock objects, its support for constraints make it a great example of literate programming."

In Also in Java Today, dev2dev blogger Henrik Stahl asks What would you do with 450 GB of...heap?, in which he describes running the JRockit JVM on large Silicon Graphics servers. He reports that garbage collection takes a minute, but then again asks how long it would take to defrag a 450GB hard drive. In the comments, he provides a GC log, so you can see just what it's like when the garbage collector tries to take on such a large heap.

Real-time Java doesn't mean fast, it means predictable, so much so that you can count on things. "The WebLogic Real Time server (WLRT) provides a lightweight infrastructure with low latency for event-driven applications. It is intended for use in highly competitive environments where performance is key and therefore every millisecond counts. For example, certain industries such as telecommunication or insurance require that transactions be performed with very low latency within given timeframes. Trying to implement this with standard Java most likely will fail because of the unpredictable pause times caused by the garbage collection process." Markus Eisele explores this platform in the dev2dev article An Introduction to WebLogic Real Time.

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

Current and upcoming Java Events :


Marathon Blog

Posted by kfarnham May 11, 2006

The long road to JavaOne 2006

Pardon your editor for still having travel on the brain, but getting to San Francisco for some internal O'Reilly editorial meetings in advance of JavaOne has been a... challenging experience. Thunderstorms hit Atlanta as I left for the airport, making my 45 minute drive a two-hour affair, complicated by the near-shutdown of the freeway near me, construction at the airport, and full-to-overflowing conditions at all the airport parking lots. The airline wasn't going to take my suitcase until the flight got pushed back another hour.

And I had to get out to SFO last night because Jon Mountjoy, editor of the dev2dev site was counting on me for a ride up to Sebastopol, CA, where O'Reilly is located. And he'd flown in from Scotland eight hours earlier.

I probably could have made something of my in-flight time, like organizing Garage Band and other materials for the Community Corner podcast... oh crud, did I forget the iLife CD?... but my brain was pretty fried, so I just watched the Final Fantasy VII Advent Children DVD instead (come to think of it, that movie hits the right geek spots for the movie lounge at JavaOne... I wonder if they'll show it?)

Anyways, all of this, plus a long drive and a 1 AM PDT arrival, explains why you're getting the front page so late. Tomorrow will be more timely and then, of course, we'll go to our all-blog running coverage of JavaOne front page next week.

Speaking of JavaOne, what do you think is going to be the big story of this year's show? In today's Featured Articles, we take a look at What to Watch for at JavaOne 2006, focusing on what might be announced in the Dolphin roadmap, the likely push behind the finally-ready Java EE 5, and other significant conference activities.

In Projects and Communities, Carla Mott's blog GlassFish and JUG reception - register says the GlassFish and JUG joint reception at JavaOne is open to all who register, while Simon Phipps' Bloggers, Beer and JavaOne 2006 announces the annual JavaOne Bloggers Gathering at the Thirsty Bear.

The jaxb project has releasedits reference implementation of the JAXB 2.0 spec (JSR 222). JAXB allows for the marshaling/unmarshaling of Java objects to and from XML representations. A binary download, release notes, and a changelogare available.

In today's Forums,carlavmott is seeking Feedback on GlassFish Community: "I'm putting together slides for my BOF at JavaOne titled "Project GlassFish: where we are today and where we are going". I wanted to include a summary of things that are working and things that need improving from the community's perspective. Here are some ideas from me but I really wanted feedback from you guys."

swpalmer is looking for a high-performance approach to Creating Java Images from native code: "I have a need to get image data from native code to a Java Image, e.g. a BufferedImage, in the most efficient manner possible. Ideally I would like to write to the BufferedImage's raster directly in my native code, or get an image from a DirectByteBuffer of RGB pixel data. If I can reuse the same Image object multiple times to avoid excessive garbage creation that would be best. I'm looking for options and pointers on how I should implement such a thing while avoiding as much as possible any data copying."

Artem Ananiev explains the difference between Mustang'sDesktop class and the brutally fragileRuntime.exec() in today's Weblogs. In New Desktop API in Mustang - what's an idea?, he writes: "There is a new class introduced in Mustang, java.awt.Desktop, which helps developers to better integrate their applications into native desktop. This blog briefly shows what new abilities are provided by this class."

In Servlet/JSP jars now in the maven repository, Amy Roh writes: "Servlet/JSP jars are now in the maven repository as part of the push to move GlassFish jars into the site-wide maven repository."

Mason Glaves updates his innovative use of Subversion in Subversive SVN Part II: Downrush: "A week or two ago I laid out a novel idea for using SVN as the back end for a client-side installer/updater. There seemed to be some positive feedback, so I took an weekend off and a few hours here and there in my spare time and put together a quick prototype of such an application. It seems to be relativly stable now, so I'm setting it free to the world. Take a minute and look at the Downrush project."

In Also in Java Today, the other side of an empty try-catch block speaks out in the Joel on Software entry Lazy Programmer, Didn't Handle Exception. But it's not just bad programming, but bad process, bad organization, and bad attitude that gets Joel's goat: "One of the hallmarks of a broken system is when there's just no possible way that the programmer who is writing code that talks to customers can ever get feedback from those customers about bugs, because the call center is outsourced to a different company than the software development project is outsourced to. Everyone is trying their hardest to do their job but management has set it up so that it's impossible."

Most well-designed software architectures are intended to support a system's extensibility, maintainability, and reliability. Unfortunately, inattention to quality issues can easily undermine a software architect's best effort. In Code Quality for Software Architects, quality expert Andrew Glover explains how to continuously monitor and correct quality aspects of code that can affect the long-term viability of your software architecture.

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

Current and upcoming Java Events :


Working Man Blog

Posted by kfarnham May 10, 2006

How's your pre-JavaOne crunch?

I'm getting on a plane to California in a few hours -- meetings at O'Reilly before JavaOne -- and I'm just slammed trying to keep up. At some point, I have to just give up, move stuff over to the laptop, and take it all with me, hoping I haven't forgotten anything.

The baggage screeners in Atlanta are going to have a fun time with my suitcase: podcasting mic, cables, and mixer for the podcasts, wifi hotspot for the hotel room, iSight camera so I can squeeze in a little video capture work on Lloyd... I wonder if I should type up a list of contents and include it in the suitcase so when the X-ray makes them open it, they'll have some idea what they're looking at.

Of course, I'm not the only one crunching in advance of the show. When news editor Steve Mallet sent over the news items for this morning, his message to me started with the line "The pre javaone release orgy has begun!", before listing eight new software releases. While some people have been done for a while -- I know Joshua Marinacci was crunching on his demos a month or two ago, and now they're done, he's had time to blog again -- others are cramming in their last pre-show to-do's. At 12:45 AM, I got a stack of blog requests that want to be up and running by JavaOne... yeah, that's real nice.

See you soon from the Pacific time zone...

In Projects and Communities, the last spots for Community Corner mini-talks are going fast. The 20-minute talks allow members to present their projects or other activities to the audience in the pod area (#532), complete with monitor and microphone. If you miss a mini-talk or are not attending JavaOne, this year's talks will be available on the podcasts feed.

Peter Ahé's blog has a list of over 25 b85 compiler fixes in Mustang. He writes, "Wei brought down the memory consumption of javac when generating stack maps (-target 6). Also worth mentioning to those that prefer to stick with Tiger: Nishant has ported my cast fixes to 5.0u8. Finally, I'm happy to report that I got the wildcard bugnailed this time."

In today's Forums,firefight explains the frustration in the thread Re: Improvement to reflection API: "And, it IS a sorepoint. Just because it's difficult, or perhaps impossible, to implement with the current architecture does not mean that many times developers have real problems that need to be solved, but the language can't support a good solution. Just look how many posts there are on the internet asking for this functionality and you'll see what I mean."

mxc4 wonders Any java swing components for the tablet PC?: "I need to develop some tablet pc applications. The customer wants me to use some .net sdk -- yuk. I dont know much about tablet pc development and cant seem to find any java stuff for it specifically."

In Also in Java Today, Mark Petrovic's blog entry Tomcat "-security" option and catalina.policy file describes a process for "modifying thecatalina.policy file to allow your webapp just enough leeway to run - and no more." The approach involves running tomcat and searching for messages that indicate which activities were denied, and then permitting just those. In an update, Mark points out catscan, a perl tool to generate a fine-grained catalina.policyfile using much the same approach.

If you're a Java ME developer, there's a good chance you've written at least one game for the platform, and that means you've surely faced the challenge of creating and presenting engaging sound within the tight limitations of the mobile phone platform. Peter Drescher offers a number of novel approaches in the Digital Media article Could Mobile Game Audio BE More Annoying?!, which is adapted from his presentation at the recent Game Developers Conference.

Kohsuke Kawaguchi posts the announcement JAXB 2.0 is released in today's Weblogs. "Today, we released the FCS (Sun jargon for "release") version of the JAXB RI 2.0 (and JAX-WS RI 2.0.). I think this release is the most extensively tested JAXB RI release ever, simply because we have so much accumulation of tests over time."

In Java frameworks - maybe too many, Vikram Goyal wonders "Are there too many Java frameworks? Or is Struts still the king?"

Barbara Kurshan asks CAN GELC BE UNIQUE?: "I have been busy the past two weeks meeting with developers and educators that are exploring and 'playing' in the education open source community. It is amazing what this community thinks about the opportunity for GELC and what it can become."

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

Current and upcoming Java Events :


Closer to the Heart Blog

Posted by kfarnham May 9, 2006

Do you prefer to dig in or isolate?

We were having a discussion the other day about different kinds of programmers and the materials that appeal to them, and someone pointed out the signficiant difference between the programmers who want to get their hands dirty at a low level, and those who want to program to higher-level abstractions. For example, you have the client-side Ajax developer who's already heavily invested in JavaScript and doesn't mind piling on more, and the server-side Java guy who wants a clean, simple client-side API that isn't going to drag him into the browser-checking, loosely-typed muck (hint: try DWR).

This is more extreme in the database side. We've had JDBC for a long time, though of course there are those for whom even that's too high an abstraction and who prefer to move their logic into the database and its world of prepared statements, triggers, etc. But on the other hand, there is a large class of programmers who just want to work with database records in a clean way that doesn't expose factors they're not interested in or not prepared to deal with: maintaining connections, babysitting JDBC, etc. For them, it makes sense to move JDBC's details into the framework, and let them focus on business logic, not boilerplate.

In today's Feature Article, Vikram Veeravelu looks at one such framework, answering the question Why Spring JDBC? He writes:

Spring JDBC provides benefits such as cleaner code, better exception and resource handling (at least than what I usually write using traditional JDBC), and the ability to really focus on the business problem instead of on plumbing code. It is noteworthy how much less code is required with the Spring framework to implement essentially the same functionality as with traditional JDBC.

In Projects and Communities, a pair of postings on Geertjan's Blog (part 1 and part 2) previews what he calls "The Best Feature Of The Upcoming NetBeans IDE 5.5", the ability to pull your database data into a fully-functioning Java EE 5 web application with only a few clicks and no coding or even typing.

The Register reports that Sun is changing its JRE license terms to make it easier to distribute the Java runtime with Linux. A Sun spokeswoman is quoted as saying "we are broadening the distribution of the platform," and promises further details at JavaOne.

Graphic issues dominate today's Forums.kyank has some interesting profiler data in the threadRe: Mustang: Swing apps freeze then painting corrupt: "I've successfully CPU profiled a number of these freezes, but have received very little insight into the problem. t doesn't look like any Java code is running during the freeze. The thread runtimes captured during a ~20 second freeze only add up to about 300ms, which is just spent laying out and painting the user interface What else should I do to diagnose this issue?"

campbell explains the absence of "draw this pixel" method from Java2D in Re: please make a drawPixel function: "A drawPixel() method would only make sense in the case where you have a one-to-one mapping between a logical pixel (1/72 of an inch) and a physical pixel on a display. This mapping breaks down in a number of cases, like in a printing scenario or on a high-res display. We have purposely not added a drawPixel() method for these reasons, instead we'd suggest using Graphics.fillRect(x, y, 1, 1) if you're just trying to fill a single pixel."

In Also in Java Today, OSDL CEO Stuart Cohen has his take on Sun's recent history and future prospects in the BusinessWeek opinion piece Sun's Big Open-Source Bet. Arguing that openness has saved Sun in the past, he calls on the company to go further: "If open source is good for Solaris, isn't it time that Sun freed Java under an open-source license? And while you're at it, why not make your Microsoft Office clone, OpenOffice, truly open? Set it free, too. Liberated from Sun's ownership, OpenOffice could be the best hammer ever to break the Microsoft desktop monopoly. And that creates more business opportunities for Sun, the great new open-software company."

Continuing the SDN's preview of the JavaOne 2006 technical session tracks, Eric Giguere looks at the Highlighted Mobility Sessions for JavaOne 2006. "JavaOne is an exciting event for any Java developer, but this year Java ME developers have some hard choices to make due to the sheer number - over 40 - of sessions devoted to Java ME topics. " His top sessions include Developing Streaming Media Applications Using the Mobile Media API: What Works, What Doesn't, and What to Do About It (TS-5439) , A Close Look at the Sun Java Wireless Toolkit Support for New JSRs (BOF-2506), and Beyond Language Barriers: Internationalizing Java ME Platform-Based Applications Using JSR 238 Mobile Internationalization API (MIAPI) (BOF-2364).

John Reynolds describes John Gage's Ad-Hoc Keynote - WCIT2006 in today's Weblogs: "Senator Kay Bailey Hutchinson (R. Texas) was not able to make it to Austin's WCIT2006 for her Friday Keynote Address (due to a late Senate vote), so John Gage (Chief Researcher and Vice President of the Science Office for Sun Microsystems) pitched in with a delightful Ad-Hoc presentation."

Alexander Schunk explains Java deployment problems in We just wanna have' an exe Sir: "This blog describes some real-world programming issues using Java on the Windows platform. Currently, there is no world-class IDE that allows developers to simply create a stand alone exe file that would run in any directory on the target system."

Argent BOFs On Tuesday Nights Are Full, Roger Brinkley answers the question "What should you do if the BOF you want to attent in the Argent Hotel is full?"

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

Current and upcoming Java Events :


The Spirit of Radio Blog

Posted by kfarnham May 8, 2006

Podcasting almost live from the booth

A while back, one of our to-do's in the infrastructure committee was to find a way to involve off-site members with our activities at JavaOne next week. After all, not everyone can afford (or get their company to spring for) the travel and cost of a JavaOne pass. Moreover, our nature as an open-source community doesn't always align with the more business-oriented slant of JavaOne, so there are probably lots of you who wouldn't even be interested in most of JavaOne anyways... which means that what we do at JavaOne misses you as a target audience.

For most of the last few months, this to-do got sidelined as we just didn't have any ideas that seemed practical. Then a couple of weeks ago someone in one of our infrastructure meetings (Gary or Marla, I think) bounced the idea of "could we do a podcast from the booth?"

I knew it would be a lot of work, but came to realize this is a great idea. By recording all of our mini-talks and immediately compressing them, uploading them, and putting them in a podcast feed, we can make a near-real-time feed of our community corner activity available to those of you not at the show. It'll be an opportunity for projects to get the word out about their activities, and a way for listeners to sample this activity from the privacy of their desktop or iPod.

There may be a few game-time decisions to be made in terms of figuring out whether the gap between presentations allows us enough time to compress, tag, and upload the last presentation before the next one begins. And we still have one or two more legal i's to dot and technical t's to cross. But we expect it to come together in time for the start of the show next Tuesday.

It helps that I've done a few segments for the O'Reilly Distributing the Futurepodcast, as well as producing an anime commentary podcast in my free time (i.e., at the expense of sleep). You can read about my podcasting adventures with Final Cut and Garage Band over at my MacDevCenter blog (1, 2), and it's been a useful learning experience. I'd rather learn the various steps at home, with a few weeks to spare, than have to figure it out at the last second on the show floor.

So, we're featuring the new Podcasts project in this week's Spotlight. Add the podcast feed to your podcatcher of choice and you'll get our first pre-JavaOne episode: an interview with site manager Helen Chen about the mini-talks and other activities in the Community Corner.

By the way, sorry about my poor audio quality during the interview -- somehow my USB headset, Skype, and Audio Hijack Pro decided not to be friends that day, and I didn't hear the problem until after we recorded the interview. The audio from the show floor will be off a professional mixing board and should sound much better.

Time permitting, we may have more pre-JavaOne episodes, and we'll also get the feed added to major podcast indexes and the iTunes Music Store this week, so as long as you subscribe before the show starts on Tuesday, you'll be set. I hope you'll subscribe -- wouldn't it be a kick in the pants if we could get this and some of the other Java podcasts (like those I featured in an article on Java Podcasters [part 1, part 2]) into the upper reaches of the iTunes listings? That would be a nice show of strength...

JavaOne events also figure prominently in today's Weblogs, as Jim Driscoll discusses the New way to attend JavaOne talks: "This year, they'll be doing things a bit differently for attending talks - no more getting shut out of a talk you're dying to go to... But it means you have to plan ahead."

Graham Hamilton is Hurtling Towards JavaOne...: "I'm in my normal ten-days-to-JavaOne panic phase, but the various pieces are starting to come together..."

In Which GlassFish build to use?, Sahoo writes: "Some of the recent postings in the GlassFish forum suggest that there is some confusion in the GlassFish user community about which GlassFish build to use. This is largely because of activities happening in more than one branch in CVS. I will try to respond to the confusion here."

In Projects and Communities, a list of JavaOne 2006 Jini Events collects the technical sessions and birds-of-a-feather sessions that directly relate to Jini, as well as several sessions which touch on Jini as part of their discussion, such as several grid-computing technical sessions.

The recently-graduated Jabble project aims to create a codebase to solve Einstein's equation of general relativity, as the form of these nonlinear partial differential equations lends itself naturally to a grid-based implementation.

In Also in Java Today, the Java platform is not the first platform that comes to mind when thinking of real-time applications. Java's garbage collection, while adding convenience and safety to conventional applications, can play havoc with the determinism and predictability requirements of a typical real-time system. In a real-time application, the right answer delivered after a deadline has passed is no answer at all. Predictability is frequently more important than raw performance. In RTSJ - The Real-Time Specification for Java, Don Busch says the RTSJ team aims to change that perception by enhancing the Java platform with capabilities required by real-time applications.

Consider the requirement to manage not only objects and documents, but also their history, perhaps tracking not just the deltas, but the time, date, user, and reason for each change. Sure, you could develop your own tables and logic for this, but doesn't it sound like a problem that's already been solved? Come to think of it, doesn't it sound like what a source code repository does? InConfiguration Management in Java EE Applications Using Subversion, Swaminathan Radhakrishnan suggests letting Subversion do this work for you, by connecting your Java EE application to a Subversion repository by way of the JavaSVN library.

In today's Forums,lolocohen asks about problems involving SaverBeans: support for various Linux flavors? I'm the admin for a Java-based grid framework ( and I started using the SaverBeans sdk to implement nodes as screensavers, a la SETI@Home. I haven't had too much trouble with the Win32 implementation, but it was a nightmare to make it work on Linux. I have Fedora Core 5 x86_64 (AMD processors), and obviously the makefile doesn't account for that type of JVM (i.e. no client JVM, folders in jre/lib/* with different names, etc...). Another developer in our team uses a Debian-based distro, which is not tagged as a supported platform on the project web pages.


Hang On To Yourself Blog

Posted by kfarnham May 5, 2006

Never forget the big picture

Whatever your job please take a minute to step back from your day to day life of the tech world and think about why we are here. Whether you work on server, client, or mobile apps, you are in the business of writing software for other people. Non-technical other people. (unless you are lucky enough to work on Netbeans :). We are here to make software that works, that is easy to use, that is beautiful, and most importantly that makes life better for other people.

Joshua Marinacci takes a step back and looks at the big picture in Why we are here. And what he realizes is that writing good software is our responsibility as developers:

I came to a revelation: these users weren't idiots. They were clearly intelligent people; after all they were going to the same school I was. They were just experts in something other than computers. They knew a lot about electrical engineering, or architecture, or industrial design. They became experts in that stuff so I didn't have to. Therefore I should be an expert in computers so they don't have to!

True enough, but there's another side to this coin -- the need for us as software developers to know and care enough about our problem domains to deliver excellent software. Personally, I think that's a bit of an unanswered question for a lot of people. If you develop performant, stable, extensible code that doesn't do what a user needs it to, are you the wrong kind of expert? I guess that's why I don't idolize the developers who write software for other developers... it seems a little like a dodge. I think it's valuable to know something other than computers, and deliver kick-ass software other than IDE's, libraries, and tools. For me, it's media. For you, it might be banking, medicine, science, transportation, etc. But I think that's part of the big picture of solving your users' problems too.

I don't mean to knock Josh... he gets it, and that's the point of his blog. I'm just saying there's a lot to it.

Also in today's Weblogs, Jacob Hookom says We've Grown too Fat for AJAX: "Things are too simple for us right now, Java's been dumbed down enough that many of the patterns from my old blueprints books are useless. But looking at the suggestions/frameworks for AJAX, it looks like we'll be reverting right back into the EJB 1.x/2.x days."

In Understanding Weak References, Ethan Nicholas writes: "Weak references have been around for a long time, but they still aren't widely understood. If you don't understand weak references as well as you'd like (or at all!), read on."

The latest Poll asks "Are you in crunch time?" Cast your vote on the front page, then visit the results page for results and discussion.

In Also in Java Today, the point of AJAX is to work on just a small part of a page instead of reloading the whole thing, so it's only natural that developers would want to combine AJAX with Portlet technology, building their pages with smaller, smarter pieces. "Through the use of standard technologies and some best practices, you can take a lot of the pain out of AJAX and start creating highly interactive, user-driven websites that set you apart from the competition." John Margaglione shows how to achieve this in the dev2dev article AJAX Programming in BEA WebLogic Portal 8.1, Part 2.

Continuing the SDN's series of must-see sessions at JavaOne 2006, John O'Conner presents his picks for the Top 10 Cool Stuff Destinations at the 2006 JavaOne Conference. "Sessions in the Cool Stuff track at the 2006 JavaOne conference show you some of the most original Java technology available. And they have one thing in common: They inspire, motivate, and encourage innovative use of the Java platform. With at least 39 different sessions in the Cool Stuff category, you'll need to plan ahead to make the most of your time and energy at the conference." Among his picks are The Sun Grid Compute Utility (TS-1109),Building Highly Dynamic Battlefield Network Infrastructure for Boeing U.S. Army Future Combat Systems Using JXTA Technology (TS-3527), and Java Technology in an Intelligent Swarm of Heterogeneous Lego Robots (BOF-0503).

In Projects and Communities, Artem Ananiev enhances one of Mustang's desktop integration features in Using JPopupMenu in TrayIcon: "Support of SystemTray and tray icons is introduced in Java SE 6.0 (aka Mustang). However, tray icons lack some useful features, and this blog covers one of them: the ability to show Swing popup menu."

As announced on the list, JXTA community members are again participating in the Google Summer of Code. A JXTA how to participate wiki page discusses how to get involved and collects a list of possible JXTA-oriented project proposals, which will be finalized by June 3rd.

In today's Forums,int3 asks about WinXP Heap Corruption/DbgBreakPoint's: "Has anyone debugged a windows application hosting jvm/awt and found Debug Breakpoint popups compaining about heap-corruption? It appears to relate to menu clicking and only happens if your're in MS Visual Studio debugger. I traced this to what appears to be a problem in AwtObject descruction and an issue of a CriticalSection being destroyed before another thread 'Leaves' it (the critical section is being freed out from underneath the thread possessing it) I'm very new to AWT so I'm asking if anyone might comment on if they've seen this in 1.5.x and/or what might cause (preferably Prevent) this from happening?"

dmouse has some great news for the SwingX project in IntelliJ license for SwingX developers!: "Recently I contacted IntelliJ regarding an open source license for the SwingX project. This morning I received confirmation that SwingX has been approved for a license. Anyone who is a developer on this project is entitled to the key (and I know who you are). Once they send me the shared key I will distribute it to the developers who request it. For specifics regarding IntelliJ and their open source license please go to their site. Please read their license agreement and abide by it. I love this IDE and would hate to have our key taken away."

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

Current and upcoming Java Events :


Oh You Pretty Things Blog

Posted by kfarnham May 4, 2006

Little pieces make big web pages

With no offense to the portlet spec or the portlets community, Michael Jouravlev had a different idea: stateful, self-rendering components that could be put together to build up a page, without formally requiring a portlet container. Add to this a little bit of Ajax -- the components can refresh just themselves in an Ajax-friendly browser, or the entire page in an older browser -- and you have the idea behind today's Feature Articles,Almost Portlets:

Today I am presenting a pure JSP library that is compatible with all standard JSP 1.2+ containers and that allows the creation of independent portlet-like page fragments like login forms, checkout wizards, tabbed notebooks, or image sliders. The fragments handle their own input and render themselves without having any knowledge about composite page into which they are aggregated. Similarly, the composite page knows nothing about the lifecycle of page fragments.

Claudio Miranda puts together A brother to a coyote in today's Weblogs: "I am not a huge fan of scripting languages to do professional work (maybe some perl and bash has their niche). But one that helps me a lot is the interactive console of BeanShell, where I can type code and press enter, that's it, the code runs fine. But I needed to launch it as an external app. So I took some spare time to make the console as a NetBeans module to run it inside the IDE."

John O'Conner wonders about the consequences of the JavaOne Schedule Builder: "Schedule Builder is a new tool for planning your sessions at JavaOne... but some sessions show up as Full. That doesn't look good. Does that mean I can't attend? Does that mean I'll be rejected at the door when I walk up?"

In JDBC 4.0 SQLXML Interface, Lance Andersen writes: "JDBC 4.0 has introduced several new features which will be highlighted in blogs over the next few weeks. Today's focus is on the SQLXML interface."

In Also in Java Today, the Artima discussion Swing Application Framework JSR looks at the effort to standardize an application framework for Swing in the form of JSR 296. "At least three desktop Java application frameworks emerged in the last few years: NetBeans RCP, Eclipse RCP, and Spring RCP. Each framework attempts to provide an infrastructure for building Java desktop apps, yet each approaches the problem differently. The recently accepted JSR 296, 'Swing Application Framework,' may finally unify the best practices learned from these frameworks, although, as the JSR's title states, the solution will be specific to Swing."

Continuing the SDN's preview of JavaOne 2006, Dana Nourie looks at tool-oriented sessions in Tools: Top 10 Destinations at the 2006 JavaOne Conference. "The 2006 JavaOne conference offers many technical sessions, Birds-of-a-Feather (BOF) sessions, tutorials, and technical case studies where you can learn about the many enhancements in tools; methods to debug and profile, integrate, and use scripting; and ways that your favorite tools can speed up the development process on all the Java platforms." Some of the suggested sessions areCreating Professional Swing UIs Using Matisse GUI Builder (TS-4916), A Script for More-Powerful Java Technology-Based Applications (BOF-2455), and Debugging Across Tiers: Advanced Techniques (TS-1878).

In Projects and Communities, Nigel Daly highlights a new release of the Sun Grid Developer Community's Compute Serverproject in his blog Compute Server: new open source release: "Today's release contains a major enhancement in its licensing -- both binary and source code are now available under the Apache License, v2.0."

In the jini-users mailing list message A New Day..., Jim Hurley announces a proposal to re-invigorate Jini development and its place in the development community. Jini is to be proposed as a top-level Apache project, as the Jini Technology Starter Kit already uses the Apache license. A new Jini community on is also proposed.

In today's Forums, JAXB userrationalpi asks about Getting Started: "I'm fairly new to JAXB 2.0 and am having a hard time getting a solid installation. I think the problem is that I have a bunch of inconsistent pieces from various downloads that aren't fitting together. I keep running into classes that aren't found. One jar file was missing javax.xml.bind.annotation.AccessType. Once I found a jar file that contained AccessType I found that I was missing javax.xml.bind.annotation.XmlAccessOrder. I feel like I've been doing a lot of tail chasing. I'm at the point where I'm ready to slick all the JAXB classes from the machine and start over with a clean installation, so before I go down that path, I thought I'd ask for recommendations on what exactly a 'clean installation' should include."

Project Looking Glass creator hideya proposes Moving lg3d-core/www contents to lg3d-/www: "Hi LG3Ders, I've been saying this for long, but this time for sure -- I propose to move the lg3d-core/www contents under lg3d-/www (because the contents became too big (that is a good news!), however lg3d-core is really a repository for source code. Does this make sense? Does anyone kindly volunteer for the work?"

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

Current and upcoming Java Events :


Five Years Blog

Posted by kfarnham May 3, 2006

Mac OS X has been particularly good to the Java developer

Mac OS X was a long time coming... practically a decade, depending on how you account for the false-starts and misfires of Apple's post-System-7 operating system strategy (do the terms "Copland", "Pink", and "Taligent" give anyone shivers?). One of the most striking advances was the state of Java on the platform. After getting out a pretty good JDK 1.1 implementation for the Mac OS 8 series and getting the Mac community to standardize on the Apple VM (there were lots of variant VM's in the mid-90's, including those from Metrowerks, Microsoft, Netscape, and Roaster, plus an abandonware 1.0 JVM from Sun), the roadmap sort of froze in its tracks. The rest of the Java world moved on to Java 2, and Apple gave no hint of its plans. At one point, Apple even claimed that not moving to Java 2 was a good idea, since that was what Microsoft was doing.

Not surprisingly, a big part of the problem was what we on themrj-interest list called "latent subtle Unixisms". In short, the further an OS gets from the U*ix view of the world, the less suited it is to Java. The Classic Mac OS posed many challenges to a Java implementation, from its lack of pre-emptive multitasking or a command line, to the fact that it would let you name all of your drives the same thing, which confused the heck out

When Mac OS X released in 2001, its grounding in BSD suddenly made it far better-suited for a Java implementation. Java 1.2 got skipped, as Mac OS X was able to ship with a reasonably current 1.3 implementation. Java 1.4 was a somewhat long time coming, due to Apple ditching the last vestiges of its Classic-era AWT, implemented with the Carbon API's, in favor of a newly-written Cocoa implementation. But Apple's Java 5 has tracked reasonably closely behind the official drops from Sun, held back primarily so that it could ship with Tiger (Mac OS X 10.4) and use API's in that release. And its native Swing look-and-feel has won raves for its attractiveness and fidelity to user expectations on the system (chat me up about button order and position inJOptionPane dialogs sometime).

So the wait for Apple to get its JVM out has gone from years to months and now maybe even less. For the first time, they've offered a pre-release of a non-final JVM, releasing a developer preview version of Mustang. A message to Apple's java-devlist, Available Now: Java SE 6.0 Release 1 Developer Preview 1 (Intel), announces the first public build of Mustang for the Mac. It says that a PowerPC developer preview is coming, and that "we just wanted to get 1.6 out as fast as possible." This preview is available at the Apple Developer Connection (registration required).

Your editor has been developing Java almost exclusively on the Mac for 10 years, and with that perspective, it's remarkable how much life has improved for the Mac-based Java developer.

Also in Projects and Communities... as noted with an e-mail screenshot in Ludovic Champenois's blog Yet another Java historical landmark...., the Java EE 5 spec has been approved. As seen on the results for the Final Approval Ballot, the ratification was unanimous, with comments including Sun Microsystems' "Hurrah! Hurrah! Hurrah!" and Hani Suleiman's "Wheeeee!".

In today's Forums,avinashdha asks about JAXB Compatibility We have various objects that have decorated member variables that get serialized into FastInfoset and sent over the wire. Now the question I have is regarding backwards compatibility and forwards compatibility. If I add member variables serialize them and send them over to a node which doesn't have the latest code for the class the deserialization shouldn't be a problem right ? Secondly would the same work if I removed or renamed a field?

haroldcarr has a Welcome to a new WSIT forum: "Welcome to the Web Services Interoperability Technologies (WSIT) forum. This is the place to ask questions and post comments on Sun's Project Tango - an open-source project to provide web service features such as bootstrapping, optimizations, reliable messaging, security and atomic transactions. We are testing the WSIT codebase with Microsoft to ensure interoperability of these features with Windows Communications Foundations (WCF - aka Indigo)."

David Walend describes Tilting at the Generics Windmill in today's Weblogs. "I'm doing a Community Corner talk at JavaOne, on ways to make generics easier to use. Here's what I'm going to try to say in less than twenty minutes."

Newly-published author Vikram Goyal talks up his topic in Pro Mobile Media API Book released: "The first book devoted to MMAPI has been released - learn to add audio/video/tones/MIDI to your Java enabled phones."

In David Berlind of ZDNet sees the light, David Van Couvering writes: "David Berlind has the "aha" moment with the potential for Java DB as browser-side storage"

In Also in Java Today, it's not unreasonable for an enterprise project to start with MySQL and simply stick with this database as the project grows, ultimately moving up to MySQLCluster for higher availability and performance. But replication can be a problem, due to the differences between masters and slaves in the cluster. In Advanced MySQL Replication Techniques, Giuseppe Maxia writes, "using features introduced in MySQL 5.0 and 5.1, it is possible to build a replication system where all nodes act as master and slave at the same time, with a built-in fail-over mechanism."

"In the tradition of Spring, JBoss offers Seam, which uses a declarative state model, extensive use of annotations, and two-way dependency injection to make automation of huge portions of your complex Java EE apps not just possible, but downright sensible." Mark Smith has an introduction to this framework in the DevX article Discover Seam and Sew Up Your Java Projects Faster than Ever, in which he says "much of the data movement and framework/API manipulation work that enterprise Java developers have drudged through for 7 years disappears with Seam."

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

Current and upcoming Java Events :


Station to Station Blog

Posted by kfarnham May 2, 2006

What's on your JavaOne agenda?

For a lot of attendees, JavaOne is an annual occurance, a Spring ritual (unintentional pun?) of traveling to San Francisco and rubbing elbows with more than 10,000 other Java developers. If you've been going consistently for a few years, it's easy to forget that the crowd is changing every year, with some attendees not coming back and others attending for the first time.

And if you're planning your first JavaOne, you might wonder "what do I want to be sure to do?" The Moscone Center is a massive complex (essentially two underground city blocks, with a few halls up at surface level), and the schedule is jam-packed with sessions, off-site "birds of a feather" meetings, keynotes, socials, private parties, pavilion booths, late-night jams, tutorials, and more. And don't forget the Community Corner in the pavilion, with the 20-minute mini-talks. It's a wonder anyone has time to crash on the beanbags and play "Madden" on the XBoxes.

So today's Feature Article, takes on (Not So) Stupid Questions #9: JavaOne, specifically How do I get the most out of JavaOne? If you've attended one ore more JavaOne's, I hope you'll join the discussion in the article's comments section and talk about the essentials and the skippables, the great and the gawdawful, and any other tips you might have for getting the most out of these four days in San Francisco.

In Also in Java Today, continuing the SDN's preview of JavaOne, Ed Ort weighs in with his picks for the Top 10 Destinations for Enterprise Developers at the 2006 JavaOne Conference. "The year 2006 is shaping up to be a significant one for developers of the Java Platform, Enterprise Edition (Java EE, formerly referred to as J2EE). With the upcoming finalization of the Java EE 5 platform specification and the near-term release of the Java EE 5 SDK [...] enterprise developers have access to technologies such as Enterprise JavaBeans (EJB) 3.0 that make development of enterprise applications easier than ever before. " His top picks for enterprise-oriented sessions include EJB 3.0, Java Persistence API, and the Web Tier (TS-1887), What's Happening With SOA in Open Source? (TS-2002), and Project GlassFish: Developing the Java EE SDK (TS-3274).

Drawing from Zarar Siddiqi's article Using Dojo and JSON to Build Ajax Applications, Frank Sommers has kicked off an Artima discussion called JSON or XML? "Aside from philosophical nitpicking about the definition of AJAX, this question brings to light an important issue: Some developers shy away from AJAX partly because XML is not an easy programming tool to work with. XML is often an intermediate format: You have to convert your data to XML, send the XML over the wire, and then convert the XML back to some representation suitable for the client programming language. JSON, or JavaScript Object Notation, aims to simply that process in the context of JavaScript on the client. JSON is an alternate data interchange format between JavaScript and another language for which there is a JSON implementation—a list that includes Java, C, C++, C#, and host of other languages."

In Projects and Communities, the Thread Dump Analyzer (TDA) project has announcedthe release of version 1.0. TDA small Swing GUI for analyzing Thread Dumps generated by the Sun Java VM that parses thread dumps from a log file. The tool provides information about locked monitors and waiting threads, and is meant to provide a first idea of what is happening in a system.

With NetBeans Day less than two weeks away, the Integration Developer News article NetBeans Day Previews EJB 3, SOA Tools offers a "no-nonsense interview" with NetBeans’ evangelism team manager Judith Lilienfield about NetBeans' new features, including SOA support, subversion support, the Matisse GUI builder, and EJB 3.0 support.

Eitan Suez talks up programmer lingo in Stoked: Not Just for Surfers Anymore, one of today's featuredWeblogs. "It occurred to me on the plane ride back to Austin that the term "stoked" is normally used to describe the feeling one gets when surfing [...] To my wonder, the term could be applied, and very aptly so, to moments that we, geek software developers, have in our work."

In New role requested in the *** project, Kirill Grouchnikov writes: "We all welcome when people want to join our projects. This request was a little unusual."

Rama Pulavarthi has a guide to Understanding Handlers in JAX-WS: "In this article 'A little about Handlers in JAX-WS', I explain the differences between logical and SOAP handlers, and show examples to write a simple handler [...] I hope this article helps you in understanding handlers and get you started."

In today's Forums, Joshua Marinacci is seeking reader input Re: JXButton & JXLabel: "I should mention that we are in the process of putting painter support into JXButton. I hadn't thought of JXLabel though. Why would you want to use that instead of a JXPanel? Just the text support? Also we are rewriting the positioning mechanism so that TextPainter and ImagePainter will use the same API. What kinds of positioning would be useful to you?"

In Re: Java Webstart, multiple shortcuts per JNLP file,cowwoc writes: "This brings up a related issue. My application wants to run on system startup. In this mode I absolutely do *not* want Webstart to display any sort of splash screen even if it is downloading a new version of the software. I would only want it to display a window in case of a failure, not success. To my understanding, there is no support for this kind of operation (it would be related to both the above RFEs)."

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

Current and upcoming Java Events :


Fame Blog

Posted by kfarnham May 1, 2006

The timing of all these release candidates

OK, I went over this last year, and Daniel went over it for years before that, but let's do it again. Making your big release at JavaOne seems like a good idea, because there's so much going on at the show and everyone's tuned into Java for that week. But in the end, it turns out to be a bad idea for many products and projects, because you get drowned out by product announcements from a few big guys, or news from the keynotes, or whatever. If you did your big release in the middle of the summer, when things are slow, it would probably end up on our front page (since we're usually dying for news around that time of year) and the other major Java sites as well. But when you do it during JavaOne, you get buried. So unless you're doing a big release at JavaOne for the sake having something to talk up at your pavilion booth, it's really not as good an idea as it seems.

Why am I mentioning this now? Well, the last thing I do before writing the blog is to check and push the news items, and I noticed that three out of the seven items are "release candidates" of various projects. And when you're kicking the tires of the release candidate two weeks before JavaOne, it's a pretty good bet that the final release will come out at J1.

And what'll happen is that we'll be in the Community Corner listening to mini-talks and meeting project owners and talking up the site to convention-goers and handing out schwag (we do have schwag, right Marla?) and not paying a lot of attention to product releases. And the front page will be our traditional JavaOne big-bucket-o-blogs coverage of the show, from our bloggers as well as a few guests. So, we won't really be looking for project release blurbs until the week after JavaOne at the earliest.

So, seriously -- you want to make a splash? Do a release in the middle of the summer, and send me an e-mail then so I can be sure to put it on the front page. Thanks.

In Projects and Communities, Joshua Marinacci says "I'm sure I'm the last Mac Java developer here to figure this out so I'm posting it not so much for you but for future generations intrepid googlers to find":How to get code completion with Javadocs in Netbeans on Mac OS X. A comment points out the documentation bundle is availablefrom Sunor from Apple.

The radioAe6rt blog entry Mating Tomcat to JXTAcombines the the world of the web applciation with the world of JXTA via BridgeServlet, which is "a Java servlet that has a view into a JXTA peer to peer network. In fact, BridgeServlet functions as a servlet and JXTA peer simulaneously, processing HTTP requests on one side and JXTA peergroup services on the other."

David Herron covers Tutorial on implementing a scripting language on top of Java in today's Weblogs: "Build your own scripting language for Java covers a topic I had wanted to research and write. Fortunately someone else took up the cause. At issue is the question of using the JSR 223 features, in Mustang as the javax.script package, to implement a scripting language on top of Java."

In The World (of IT) Heads To Austin, John Reynolds writes: "The World Conference on Information Technology (WCIT) is coming to Austin this year... and it should be a lot of fun. I've been volunteering for the event over the past week or so (doing some mundane tasks that just have to get done) and I will be helping out during the event itself. There is a tremendous amount of work that goes on behind the scenes..."

Roger Kitain has a compatibility update in Java EE SDK Runs Seam: "I am happy to report that Seam (the JBoss application framework that unifies JSF and EJB 3.0) runs on GlassFish, the Open Source Application Server from which the Java EE SDK is built."

In today's Forums,alexismp clarifies GlassFish issues in Re: Why doesn't @EJB annotation work in client with -javaagent. "Resource injection only works on managed objects. Using the @EJB annotation works for ACC clients. Such clients can be run with the appclient script or deployed via Java Web Start. See Tim's blog here:"

ewin bemoans a javax.comm abandonware fiasco in Re: Comm-API: Windows download missing: "But it gets worse. The license prohibits redistribution of the implementation. So even if you have that old release, you can't legally redistribute it. I always asked my customers to download the implementation from, because I couldn't bundle it. Can you imagine the fun when new customers couldn't find it? I had to refund quite a number of customers who of course immediately became ex-customers. I had to stop distribution of a software until I had a version using RxTx. I lost quiet some money and customers."

In Also in Java Today, Robert Eckstein takes a look at the JavaOne 2006 session list and picks out the Top 10 Java SE Destinations for JavaOne: "whether you're an enterprise, desktop, or portable device developer, you don't want to miss all the juicy information that will be available at this year's JavaOne conference." Among his must-see talks are The Continuing Adventures of Java Puzzlers: Tiger Traps (TS-1188),Filthy Rich Clients: Animated Effects in Swing Applications (TS-1297), and Simpler, Faster, Better: Concurrency Utilities in JDK Software Version 5.0 (TS-4915). Be sure to reserve a spot for your preferred sessions with the 2006 JavaOne Schedule Builder.

"Using scripting languages from Java can be useful in many situations, such as providing extensions to your Java application so that users can write their own scripts to extend or customize the core functionalities. Scripting languages are both simpler to understand and easier to write, so they can be ideal to give (technical) end users the possibility to tailor your product to their needs." In The Mustang Meets the Rhino: Scripting in Java 6, John Ferguson Smart looks at how the integration of scripting languages and Java actually works.

In today's News Headlines :

Registered users can submit news items for the News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to the News RSS feed.

Current and upcoming Java Events :

Filter Blog

By date: