Skip navigation
ANNOUNCEMENT: is currently Read only due to planned upgrade until 29-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.

The Hand That Feeds Blog

Posted by kfarnham Oct 31, 2007

Want Java 7 done right? Help pick the JCP Executive Committees.

This sort of the same pitch I used last year, but I think it's still valid: if you are for or against closures, properties, language-level XML support, reified generics, type literals, superpackages, or any of the other features being kicked around for Java 7 (Alex Miller has a pretty good list), then you've got a stake in the 2007 JCP Election.

The Executive Committees elected this time each year are tasked with considering and approving or rejecting the standards (JSRs) proposed to them, so along with ensuring the details of each of these features gets done right, they also approve JSRs for the final release contents of each major version of the Java platforms (ME, SE, and EE). There are other important ways to participate in the process -- read and post to relevant forums, check out the prototypes from expert groups that conduct their work in public, etc. -- but the one that ultimately counts is the thumbs-up or thumbs-down vote from the JCP EC.

And if you're a member of the JCP, this is your chance to pick them. Balloting has now begun for the elected seats on the JCP Executive Committees. JCP members can visit the Election Ballot page from now until November 13 to vote for two seats on each of the two committees. The nominees for the SE/EE committee are CodeGear, the Eclipse Foundation, Ericsson AB, Google Inc., Interface21 Inc, Klaus Meffert, and Perret Pierre-Henry. Nominees for the ME committee are Luiz Carlos Bentes dos Anjos, Intel Corp., Marlon Faria da Luz, Orange France SA, and Sean Sheedy.

Also in Java Today, Apple has posted the Java on Mac OS X v10.5 Release Notes. "J2SE 5.0 on Mac OS X v10.5 contains many new features including 64-bit Intel support, a refreshed Swing Aqua Look and Feel, improved SWT interoperability, and a Sun 2D graphics pipeline." The available versions are also worth noting: "Java on Mac OS X v10.5 is comprised of J2SE 5.0 (1.5.0_13-b05) and J2SE 1.4 (1.4.2_16-b05). J2SE 1.3 is not present on Mac OS X v10.5. J2SE 5.0 is recommended for all development and deployment on Mac OS X, and all use of J2SE 1.4 is deprecated."

A reminder: The Translation Project has launched localization efforts for NetBeans 6.0. Many of the language teams are looking for contributors. Sign up today to make NetBeans available in your language!

Today's Weblogskick off with two blogs about Silicon Valley Code Camp, each with shoutouts to the other. In Metro @ SiliconValley CodeCamp 2007, Rama


Only Blog

Posted by kfarnham Oct 30, 2007

Time's ticking for would-be presenters

So, I was already planning on putting the Mobile & Embedded Developer Days on the front page, given that tomorrow is the deadline for proposing a session for the inaugural edition of that conference. As it turns out, I'd forgotten that JavaOne had just put up their CFP, and on a tight deadline.

So if you plan to speak at either conference, you should probably be working on your presentation outline right about, um, now.

Not sure if you should? One of the interesting things that JavaOne's been doing in recent years is honoring the top-rated speakers and presentations as the the JavaOne Conference Rock Stars. If you want to learn how to do a session at a big show, you could do worse than learning from the best, the Josh Blochs, Ben Galbraiths, and Brian Goetzs of the world. It helps to have a great topic, and some sign of credibility from your previous work. Beyond that, you can figure out the rest. JavaOne even has speaking coaches to help you learn how to better work the room.

So here are the details, as collected in the Java Today section. The JavaOne 2008 Call For Papers has opened, and will close in just over two weeks, on November 16. This year's CFP aims to broaden the conference's scope: "2008 will be the most significant evolution of the 13 years of the Conference. We have expanded our topics to include areas that appeal to development - not just in Java technology - but in areas of compatibility and interoperability as well. We are digging into next-generation scripting languages, Web 2.0, ecommerce collaboration, business management topics and more. We are also reaching out to include technologies that play well with Java, exploring the rich development platform available to all."

And, as mentioned above, the Call for Papers for the first-ever Mobile & Embedded Developer Days conference ends tomorrow, October 31. Content areas are expected to include the traditional phone and PDA development on the Java ME platform as well as SunSPOT wireless sensors, Trackbot and Java robotics, and other small Java systems used in machinery and process control but centered around Java, JavaME, and open source aspects of Java.

In other news, Kelly O'Hair explains the OpenJDK team's use of multiple code repository in his blog entry, OpenJDK Mercurial Wheel. "The JDK team has been using TeamWare (also a Distributed SCM like Mercurial) for a very long time, and the strategy adopted involves having different teams (usually based on functionality) push changes through specific team areas rather than everyone integrating into one MASTER area. Each team can focus their testing on the changes their team is making, and also protect themselves from regressions made by other teams. It also allows for changes to be "baked" before being pushed into the MASTER area."

In our Feature Article, Building Maps into Your Swing Application with the JXMapViewer, Joshua Marinacci introduces Swing Labs' new mapping components.

The JXMapViewer is an open source (LGPL) Swing component created by the developers at SwingLabs. At its core, theJXMapViewer is a special JPanel that knows how to load map tiles from an image server. All of the details of how to convert coordinates to pixels, cache tiles, and stitch them together on screen are nicely hidden insideJXMapViewer's API. All you need to do is add it to your Swing application the way you would with any otherJPanel.

Simon Morris reacts to last week's dust-up over the status and future of Java ME in today's Weblogs, declaring Java ME is Dead, Long Live Java ME! "It seems Java ME is not dead after all. Thank goodness, because Swing's desktop components are no substitute for widgets designed specifically for the mobile market! JavaFX on its own will not answer the need, so let's start getting inventive with 'Swing Mobile'."

In Loading Properties from XML (revisited), Felipe


Closer Blog

Posted by kfarnham Oct 29, 2007

Closures getting closer

Hey, remember when the big topic was the idea of adding closures to the Java language for Java 7? A lot of people like the idea, and others aren't so sure. But the topic has gotten kind of quiet for the past few months, as the sides have seemingly agreed to disagree in the absence of further information and details on the topic.

So, Neal Gafter's latest blog seems likely to open things up again. Because he's got a closures prototype working.

In Java Closures: First Prototype, Neal writes:

I've finally had some time to make progress on a prototype of closures. If you want to see what an API looks like, you can compare Doug Lea's jsr166y fork-join framework to the same API ported to use the language features of the prototype.

If you want to try it, you can download an executable version of the prototype here. Make sure a JDK6 version of java and javac are on your path. This is binary-licensed under the JRL, but if a JSR is created I expect to license it under GPLv2. There are a few small test cases included.

The blog goes on to detail what is and isn't present in this prototype, with an explanation that he wanted to get a version out without the missing features, and thereby enable a comparison once those features are added. Neal also notes that he's working on some closure-related language changes for JDK 7. "For example, "extension methods" enable you to have the effect of adding methods to existing interfaces (e.g. adding "each", "filter", etc to Collection) without breaking backward compatibility."

So, assuming you have JDK 6 (sorry, Mac developers... but that's another story), this is your opportunity to take a look. And, presumably, a cue to bring the closure debate back to the foreground.

Also in Java Today, a recent note in Barton's Blog points out that NetBeans is now dual-licensed. "As of Monday's release of NetBeans 6 beta 2, in addition to the CDDL, the Java-based tool set is now also available under GPLv2 with the Classpath exception. The target had been to add GPL by FCS but thanks to some over achieving legal folks the team made it early. The goal of the dual licensing is simple -- make NetBeans more friendly to the GNU/Linux world as well as making it an option for those who were unable to use it under the CDDL."

The latest edition, Issue 144, of the JavaTools Community Newsletter is available, with tool news from around the web, announcements of new projects within the community, and a Tool Tip on dealing with dependencies with the Maven 2 Dependency Plugin.

Tooday's Weblogsstarts off with another hot-button issue, the absence of Java 6 from Mac OS X 10.5 Leopard. In So, no Java 6 with Leopard, Fabrizio


True Nature Blog

Posted by kfarnham Oct 26, 2007

Is JDK 6 on the Mac OS X 10.5 install disc?

Apple's Mac OS X 10.5, "Leopard", comes out today, at 6PM local time around the world. It's still Friday morning here in Atlanta, but parts of the world (Australia, New Zealand, much of Asia) should be able to buy it at this hour. And the big question that Mac-based Java developers have been asking is whether itfinally provides JDK 6.

In case you've missed this soap opera: Apple was offering pre-release builds in 2006 that closely tracked the JDK 6 betas, but stopped at b88. That led a lot of people to suspect that the release of JDK 6 for the Mac would be tied to Leopard, consistent with Apple's practice of not trying to support older versions of their OS with their JVM. Things got worse when Leopard's Spring-time ship date slipped to Fall, without the release of an interim JDK 6 for the current Mac OS X.

So, since today's the release date for Leopard, we're finally,finally going to get JDK 6. Right?

Um, maybe, maybe not? Over on Cafe Au Lait, the news from Elliotte Rusty Harold is Not Good:

The official release isn't out till tomorrow, but some people got their copies early and Apple has only shipped Java 5 with Mac OS X 10.5 Leopard. Java 6 remains a pipe dream for cross-platform development, and Jobs' promise to make the Mac the best Java development platform is as empty as ever. :-(

Of course, Elliote may not be remembering that the same thing happened with the last Mac OS X release. Mac OS X 10.4 ("Tiger") came out on April 29, 2005, and the first public release of Java SE 5.0 for Mac OS X was made available that day as a separate download. So maybe it's worth keeping an eye on the Apple Downloadspage.

But if not... then what? With Leopard out, what would be the delay, or the excuse, for not getting JDK 6 out for Mac? And what would or should Mac-based Java developers do if they need JDK 6?

Apropos of this ongoing saga, the latest Poll asks "Who should bear primary responsibility for supporting Java on Mac OS X?" Cast your vote on the front page, then check the results page for current tallies and discussion.

In Java Today, the JSR-311expert group has released the early draft review of JAX-RS: The Java API for RESTful Web Services. "This JSR will aim to provide a high level easy-to use API for developers to write RESTful web services independent of the underlying technology and will allow these services to run on top of the Java EE or the Java SE platforms." Interested readers may also want to check out the JSR-311 project with a historical archive of spec drafts, as well as Project Jersey, which hosts the reference implementation.

The NetBeans community is announcinga drive for localization help, in the Translation Project. "The Translation Project has over 14 different language teams--Brazilian-Portuguese, Czech, Russian, Japanese, German, Traditional Chinese, Albanian, Indonesian and more--and all are looking for new contributors. (Students are welcome to participate!) Joining the Translation Project is a chance to mingle with experienced developers, learn the latest technology, and have fun! It's also a way of giving back to the NetBeans community and helping future users of the IDE. You can work on translating, Quality Assurance, or terminology consulting. There's even a cool certificate of participation for successful localizations."

The recently-launched dcoat project offers another option for object-relational mapping, offering what it says is an easy-to-learn, comfortable, high-productivity option for persistence challenges. Its stated advantages include ease of learning and use, no need to write SQL or an XML or annotation-based mapping configuration, auto-generation of property names, and high productivity.

Today's Weblogssection starts with an entry by Kohsuke


James Says Blog

Posted by kfarnham Oct 25, 2007

Repeat after Gosling: ME is not going away!

OK, back on Monday, we featured the CNet story speculating about the possibly of SE eventually becoming the platform of choice for mobile devices. It didn't help that CNet went with the provocative title Sun starts bidding adieu to mobile-specific Java? I talked about the article in Monday's editor's blog, talking about both the potential for such a development and wondering if it was really that practical or valuable: "Simplicity is one thing, but given that SE will surely use up a lot more of the device's memory and CPU, it is fair to ask what developers will get from SE on the device that they can't achieve with ME." In other words, SE has more stuff, but how much of it is relevant in a mobile/embedded context, and how valuable is it?

A lot of people apparently didn't take the grain of salt and assumed CNet was right in its apparent assertion that Sun seemed content to set aside the lynchpin of a billion dollar industry. So that makes today Correction Day.

To get the story straight from the creator's mouth, check out James Gosling's latest blog: JavaME is *not* dead! He continues:

It's growing up. Sheesh. Some folks are far too eager to misinterpret statements and put words in my mouth. The early versions of JavaME were very simple and limited, a direct reflection of the fact that early phones themselves were simple and limited: we had to work with what we had. But as time has passed, and cell phones have become more powerful and capable, JavaME has grown up too. Cell phones are becoming the new desktop. We've been saying this for years. Over time, it's pretty clear that Java ME and Java SE will converge and become largely indistinguishable.

That last sentence is a pretty interesting prediction, but not that implausible. Consider a definition that Kim Topley makes inJ2ME in a Nutshell: "J2ME VMs are usually defined in terms of those parts of the Java Virtual Machine Specification and the Java Language Specification that they are not obliged to implement." So, whereas today Java ME is "Java SE minusfloat, double, runtime class-loading, etc.", maybe the improvement of devices allows for an ME that is "Java SE minus nothing". It still be valuable to have a specific mobile edition, to support user interaction models that make more sense on portable devices than the AWT's assumption of a keyboard and mouse, or to support APIs that are largely meant for mobile use (Bluetooth, for example), but still, Gosling is offering a way to think of the likely evolution of the platform that's more useful than the journo-skewed "Sun to ditch ME" meme.

The "ME is not going away" point is backed up by several items in the Java Todaysection. The official Sun breaking news blog, On The Record, tries to ratchet down the SE-to-replace-ME chatter in a clarification titled Java ME - Oh the Drama! "It seems that some of the discussions around convergence & what will happen in the future caused people to think Sun is (insert your favorite descriptor here - bidding adieu, killing off, abandoning, waving goodbye) Java ME. Not happening! Java ME and Java SE are not mutually exclusive - they are complementary platforms - as James Gosling posts on his blog."

And an article covers Sun's clarifications that there's Plenty of Life Left In Java ME. "In a recent updateto its Java roadmap, Sun Microsystems pretty much omitted any discussion about Java Micro Edition (ME), which would seem to be a bad sign for the embedded language. However, the company insists there is plenty of life in technology and it won't be abandoned any time soon. James Gosling today updated his blog to state rather unequivocally that Java ME is not going anywhere."

Meanwhile, in a forward-looking bit of SE news, John Rose has a posted a JSR-292 Meeting Summary, compiling notes from last week's "kickoff" meeting of the expert group considering designs for aninvokedynamic VM instruction. "To make the current Proof of Concept design public, we need to pass the "red face test". That is, the design shows a direction that we as an EG think is worth explaining and improving. Since this is not a voting milestone, the EDR [Early Draft Review] spec. can be incomplete and have unresolved issues." The notes also suggest that JSR-292 may changes beyond adding invokedynamic, and will likely launch an OpenJDK open source sub-project to develop the Reference Implementation.

Returning to today's Weblogs, Carla


No One's Leaving Blog

Posted by kfarnham Oct 24, 2007

The curious comebacks of applets and the NetBeans Mobile

Yesterday, we featured an interview from in which Ben Galbraith interviews Ken Russell on the newly rewritten Java Plug-In. And right out of the gate, Ben establishes a tone of skepticism.

                    BEN GALBRAITH
           OK, I'm here with Ken Russell, of 
           Sun Microsystems.  We're at the client
           update media briefing that Sun put
           on today at the W hotel in San Francisco.
           And Ken's here to talk about the updates
           that Sun has made to the Java Plug-In...
           the Java Plug-In applet architecture
           thing, that runs in browsers.  It's
           pretty exciting stuff, basically a
           whole rewrite of how applets work in
           the browser, and I wanted to talk
           to you Ken about that, because Java
           applets have sucked for the past ten 
           years, and we're really excited about
           the prospect of that changing.
                    KEN RUSSELL
           Well, I wouldn't necessarily say that
           they sucked, Ben...

And, insulting one's guest notwithstanding, there is a genuine skepticism about applets that has built up over the years. I can recall magazine after magazine telling readers to turn off Java in their browsers, for reasons of stability and performance. But with the new plug-in running in a separate process, the days of a Java VM crash taking out the browser will soon be at an end. With improvements to applet startup time, and applet startup no longer blocking the browser, users should see both real and perceived performance benefits.

Can applets stage a renaissance at this date? While pundits were happy to tell you a few years back that embedding a rich runtime inside the browser was foolish and undesirable, the YouTube-spawned explosion of interest in Flash has trashed that conventional wisdom. And what's the difference, at least in theory, between a Flash presentation and a Java applet? Each runs in a VM, each reserves its own display space in the page, each is cross-platform and has a set of standard runtime libraries. Thusfar, the Java Plug-In's problems have been a drag on applet adoption. With those issues resolved, will applets really challenge Flash? Hard to predict, but Flash is such a performance dog on the Mac, and its release history on Linux has been hit or miss, so there are genuine opportunities for applets to emerge as the better choice for developers and users.

And if it's weird to think about possibly writingimplements java.applet.Applet again, Calvin Austin helps trace the history of how things got this way in today's Weblogs. In Applets re-birth, what happened?, he tracks the story of applets through the earlier versions of Java:

Applets were dependent on Motif for Unix, something that didn't change until JDK 5 and Sun didn't have a lot of development history with Windows either. The apis was functional but new, there were many early issues with modal dialogs and later motif related drag and drop issues in 1.2

The big push was for Java 1.0 and of course the adoption by netscape, however deployment of 1.1 applets was immediately affected by the pace of netscape development and the infamous reverse dns lookup feature. For applet developers it meant that many complex early applets would 'break' because they were too new or fell foul of corporate firewalls.

And here's another unexpected flashback for you, The Return of the NetBeansMobile. Tim


Ripple Blog

Posted by kfarnham Oct 23, 2007

The sliding, fading, floating GUI... made easy

I went to an Apple developer event last year, and came away very impressed by the design of the Core Animation framework in the upcoming Mac OS X 10.5 (Leopard) OS. It uses a property-binding scheme to allow you to animate parts of your GUI as things change. I'm a fan of animation when used properly -- "to show change in context or content" is my rule -- and found myself wondering about the practicality of doing the same thing in Java. Of course, the whole issue of properties is in play at the moment, but it's at least not impossible that you can say "treat the component as a JavaBean, and animate the y value between these two extremes over this period of time." But it's still got hassle written all over it.

So, Plan B. What if you could just say "here's myContainer now, and here's what it's going to look like as a result of the action I'm handling, just animate all those changes for me." And if that were handled not by actually moving the components on different layers, but rather by just grabbing images of the before and after and painting the tweens on the glass pane... well, I wouldn't mind that one bit.

And that, in a nutshell, is the idea of the Animated Transitionsproject. You provide the initial Container and change it in a callback method, and of course you make sure to actually use the same components (i.e., literally the same objects) in each state, so the library can figure out if a given component has appeared, disappeared, or moved. This gives the library all the information it needs, and allows it to fade, slide, spin, or otherwise animate the changes in your GUI.

The topic is the subject of Chapter 18 of Filthy Rich Clients, and in today's Feature Article, co-author Chet Haase gives a brief introduction in Create Moving Experiences with Animated Transitions. He offers a short demo of the library, along with screenshots and, most helpfully, videos (QuickTime or MPEG-4) showing the transition effect. Even if GUIs aren't your thing, take a look and ask yourself if you wouldn't rather have this kind of user-experience instead of "snapping" changes in your face and expecting you to parse the delta. As Chet explains:

That's what Animated Transitions are all about: animating the user interface from one screen of the application to the next, to create a seamless flow between these states. Transitions help keep the user connected to the program by helping them understand how the UIs fit together.

So have a look, and the next time you see some nice behavior elsewhere, like iChat users fading as they log out or moving to an "idle" section of your buddy list, consider that this kind of thing is highly doable in Swing too.

In Java Today, NetBeans IDE 6.0 Beta 2 is now available for download. The focus of NetBeans 6.0 is superior developer productivity with a smarter, faster editor, and the integration of all NetBeans products into one IDE. NetBeans IDE 6.0 features Ruby/JRuby/Ruby on Rails support, enhancements for improved Swing development, a new Visual Game Designer, updated Data Binding support, integrated Profiling, and more. Plus the new installer lets you customize your download preferences--choose the features and runtimes you need in one go.

The Java SE Deployment team's Ken Russell has been talking about his group's work on a new Java Plug-In on several websites. He tells JavaLobby that the new plug-in will improve reliability by running in a separate operating system process from the web browser, which will allow for more powerful applets, permit the termination of poorly-behaved applets, and eliminate browser crashes caused by applets. Then, in a video interview with, he talks with Ben Galbraith about more plug-in tidbits, "such as having JNLP working natively in the browser, and how this could be used to allow other scripting engines such as JRuby to run in the browser. One JNLP extension, and everyone can share JRuby."

The ON project "is a small, free library, enabling powerful object notation .It provides a surprisingly easy to use, yet completely understandable way to notate object in human nature reading and thinking way. It is actively being deployed in most language environment such as Java, C, C++, and so on, all over the world. Its core is just a grammar in ANTLR syntax."

In today's Forums, E-ming Saung announces the latest ME SDK release from Sun in Sun Java Wireless Toolkit 2.5.2 released! We've released the WTK 2.5.2 (Windows, Ubuntu Linux, and multilingual versions) with improved multiuser environment support. We've heard and listened to users' comments and have recompiled our WTK for Ubuntu linux based on Glibc 2.3 libraries to provide support for other distributions of Linux. Keep in mind, the WTK has been tested on Ubuntu Linux version 6.x. Download the latest version today.

stylertim isn't comfortable with what Windows claims is his app's memory use, in Windows Task Manager displays faulty memory consumption? "I'm currently developing a Java3D application involving landscape creation. This is obviously very memory consuming depending on the size of the objects used. Still, the Windows Task Manager (WTM) seems to fail to compute the correct memory consumption. When I start my application all that is drawn are some Swing components - about 26MB of RAM is used according to WTM. After minimizing and maximizing the JFrame the consumption shrinks to 12MB which is 50% of the original value. The same thing happens after adding the JPanel that contains the Canvas3D used to render 3D data."

tmilard needs compressed audio in JOAL, according to the post JoalMixer reading .mp3 file... "I use joalMixer which is good. It reads wav files. Because of limitation in bandwith over the Internet, I really need to load mp3 files rather then wav files in the JOAL API. Question 1: Has someone in java3D+JOAL+JOALMIXER community has coded it? Question 2: If not, is someone interested also with one 'improved' JoalMixer that reads .mp3? I am willing to do it with someone Question 3 : Please if you want also this joalMixer addon (read mp3 files)) let me know."



Just Because Blog

Posted by kfarnham Oct 22, 2007

Java SE for the phone? Why not?

It's obvious that today's hand-held and other embedded devices (set-top boxes, game consoles, etc.) are far more powerful than the desktop PCs of just a few years ago. In fact, so few years, that they fall within the timeframe of recent versions of Java. Which leads many to ask "if Java SE 1.4 or 5 could run reasonably well on those PCs, shouldn't they run on these devices just as well?" After all, considering the PlayStation 3 is powerful enough to become the dominant Folding@Home OS despite a small install base, I think it should be able to handle Tumbling Duke and the Swing Set just fine.

Of course, like a lot of things, this talk of SE on the device has gotten a push from the iPhone, which seems to beg the tech press to write articles about it. Earlier, the vogue theory was that the inclusion of a desktop-quality browser, MobileSafari, was Apple's attempt to push towards an Ajax standard for Rich Internet Applications on the small device, and away from Flash and Java ME -- RoughlyDrafted's hype-tacular The iPhone Threat to Adobe, Microsoft, Sun, Real, BREW, Symbianis a typical example of this line of thinking. But now that the iPhone will be getting a proper SDK, thinking is again retuning to running big stuff directly on the device. Like Fabrizio Giudici's openly wondering about possibly porting OpenJDK to the iPhone.

But, um, don't we already have Java for most phones? The Micro Edition? That brings us to today's news, as CNet blogger Stephen Shankland sees Java SE replacing ME on the phone, in his blog Sun starts bidding adieu to mobile-specific Java. "One area where Sun Microsystems' Java caught on was in mobile phones, but a leader of the project is working to eventually replace the mobile-specific version of the software. Java Standard Edition (SE), geared for desktop computers, will gradually supplant Java Micro Edition (ME) as technology improvements let more computing power be packed into smaller devices, said James Gosling, the Sun vice president often called the father of Java. "We're trying to converge everything to the Java SE specification. Cell phones and TV set-top boxes are growing up," Gosling said at a Java media event here Wednesday. "That convergence is going to take years.""

Shankland cites JavaFX Mobile as evidence of an SE-to-the-device migration, based on the SavaJE, which included most of Java SE, with a few sensible omissions. He points out the advantage would be to unify and simplify the mobile Java platform, in sharp contrast to the various profiles and options of the ME world. "With the multiplicity of Java ME extensions, there was often little guarantee that a program written for one mobile phone would work on another. Java SE has a much richer basic set of abilities, so using it instead of Java ME could at least in principle restore some of Java's promise of software portability."

Simplicity is one thing, but given that SE will surely use up a lot more of the device's memory and CPU, it is fair to ask what developers will get from SE on the device that they can't achieve with ME. OK, you'll have floats anddoubles now, but what will you do with them? Here's one thought: ME disallows runtime classloading, so having SE on the device and the ability to load and execute classes over the air suddenly makes Jini's longtime promises a lot more interesting. Remember the old Jini vision of getting a printer driver from an unfamiliar device while you're mobile? That might be a lot more compelling with the always-portable mobile phone than the occasionally portable laptop. Granted, there are obvious security concerns -- it sucks if that printer driver is a trojan that turns your phone into a spam zombie or recruits it for a DDoS attack -- but it does seem a valid argument to say we could do a lot more with SE on the device than ME.

Still, it seems like the key isn't just that the devices are now capable of running SE, it's that there needs to be a genuine value in running SE, along with an awareness of the difference between the desktop and the device. MHP and BD-J have a totally different set of widgets, the HAVi widget set, better suited to use with a simple remote control than a keyboard and mouse, for example.

Are you ready for SE in small spaces? What will you do with it?

Also in Java Today, issue 143 of the JavaTools Community Newsletter, is out, with a brief guide to the JavaTools projects directory, tool-related news from around the web, new tools that have joined the community, and a Tool Tip describing the available kinds of information about project activity and an call to the community to help determine what other kinds of project metrics would be useful.

The ExpressionLayout project offers a new powerful, yet easy to use layout manager for use in Swing and AWT based applications. Project ownerjskress writes, "basically, this is an experiment to test out some ideas I've had about the possibility of creating a layout manager that is generic enough to use for as many different component arrangements as possible and powerful enough to support any variety of dynamic arrangements while still being simple to read and use." Versions are available for Java 6, Java 5 and even Java 1.4.

This week's Spotlightfocuses on the current Ask The Experts session, which is on NetBeans, the free, open-source, Integrated Development Environment (IDE). NetBeans IDE 6.0, which is currently available as a beta download, contains a wealth of new features designed to make application development easier and faster. Got a question about NetBeans IDE 6.0? Post it during this session and get answers from key members of the NetBeans evangelism team: Judith Lilienfeld, Brian Leonard, and David Botterill.



When We Was Fab Blog

Posted by kfarnham Oct 19, 2007

A modern heyday for Swing developers?

I remember when Swing jobs were almost impossible to come by (and I should know, I was desperately trying to find one in 2001 before Worthless Piece Of Crap Wireless Software Company Number 2 pushed the big "mass layoff" button), and they simply weren't out there. At the time, I think I petulantly grumbled something the lines of "apparently, if you're not an EJB jockey, you don't deserve oxygen." And even today, I hadn't thought Swing jobs were particularly plentiful, certainly nothing like the 1999-ish salad days of Swing.

So it was really surprising when I was gently dispatching a random recruiter call yesterday, and the recruiter said that they were combing Atlanta for Java developers, particularly Swing developers, with four positions having just opened up that day. I pinged some former colleagues, and got this very remarkable reply from one (who asked not to be identified):

Most of the resumes I've seen have had the same skill set listed on them: J2EE, Struts, Spring, JSP. Atlanta programmers who have Swing experience are few and far between, and those who say they have Swing experience and actually know what they're talking about when you call them up for a phone interview (e.g., can tell me when and why you would use SwingUtilities.invokeLater(), or can give me a reasonable explanation of deadlock) are nearly impossible to find.

In a follow-up, he elaborated on what the Swing ecosystem needs, at least here in Atlanta:

It's remarkable how many people will list years of Swing development experience, but give you a blank look when you ask about the event dispatch thread, or think that deadlock can be avoided by simply adding "synchronized" to method names. We really need someone to write a "Head First Swing" book. I'm readingFilthy Rich Clients at the moment (love it!), but I get the feeling that handing some of those techniques to some of the programmers in the field would be like giving a machete to a monkey.

This really surprised me, because I thought that the announcement of JavaFX might well put rich Java GUIs on hold until that new platform comes out. But then again, JavaFX is still in the works (and Adamson's First Law still applies: "all software is vapor until it ships"), whereas Swing is here today and in fairly widespread use. After all the flamewars over client-side technologies -- Swing vs. SWT vs. Ajax vs. Flash -- it's remarkable to hear that the demand for Swing developers so outstrips the supply.

Oh, and Swing developers? Start your resumes... apparently, you're a hot property once again.

Speaking of Swing, in Java Today, a tutorial by Nazmul Idris shows How to use the AnimatedTransition API. "I needed to build animations that show a transition from one screen to another. This is slightly different than creating custom, or modified components which perform a function and have a set of graphical effects. I needed animations that would transition my user interface from one "screen" to the next. While I'd been writing much of this code myself, to do these animations, it just got really tedious and frustrating to add this level of complexity to my code, when all I needed were some simple animations. I've been using the SwingX API and the TimingFramework API to perform the animations and leverage the components, however, this last piece was missing. And this last piece just got delivered by Chet Haase, as a part of the binary deliverables with his (and Romain Guy's) great book, Filthy Rich Clients."

We'll hear directly from Chet on the subject of animated transitions next week, so stay tuned...

ME developer Edoardo Schepis relates the gory details of getting his ME app running on real-world devices in Java Verified Program: A Tale of Carriers, Trust and Certification. "This is a long post and a sort of group therapy. I will appreciate any comment, specially those of you with a similar experience." Follow along as he works through getting his app through the Java Verified Program.

Do your provide certificates for the attendants of JUG events? Not yet ? Now you have a tool to generate certificates (signed PDF documents) and to send to your JUG members, courtesy of the Footprint project. The inspirational use-case for the program, as described by the project owners, is that "JUG members include digital certificates in their CVs and these certificates can be verified by human-resource, boss or other professional interested in to evaluate the candidate of a job position or other purpose."

In today's Weblogs, Bruno


That What It Takes Blog

Posted by kfarnham Oct 18, 2007

A new diagnostic tool for Java

Writing this blog has been tricky, because the big news of the day is the release of the VisualVM project, a new all-in-one troubleshooting tool for the Java platform. Problem is, while a couple of people have blogged about it, almost nobody has described it in significant detail. And that makes it hard to know what you're going to get with the binary download.

Fortunately, someone mentioned that it had been shown at JavaOne, and while it doesn't appear in any of the technical session PDF's that I looked through, Mandy Chung has posted a PDF (592 KB) of the BoF session, "Visualize Runtime Problems: A New All-in-One Troubleshooting Tool".

Reading this, we can better understand the runtime problems that VisualVM is meant to address, specifically given the fact that most JDK diagnostic tools are geared to a single task (consider jstack, jmap, jstat, jinfo, jhat, etc.). There's no integration between tools, and no performance tool at all. So, the VisualVM offers "a graphical tool from monitoring, performance analysis to troubleshooting", suitable for production use, as it can be attached to a running JVM. VisualVM integrates integrates jps, jstack, jstat, jmap, and jinfo, along with CPU and memory profiling functionality, and a heap walker for heap analysis.

And beyond that, I think the next step is to downloadthe VisualVM and try it out. Hmm... 7.8 MB zip. Hope it runs on the Mac Java 5.0 JVM...

Also in Java Today, OpenMark is an innovative online assessment system developed by The Open University, then released under the GPL. OpenMark differs from many CAA systems in its emphasis on feedback, its allowing of multiple attempts, the breadth of interactions supported, and its design for anywhere, anytime use. Version 1.4.0 is the first stable release since the code was open-sourced. The developers say, "please give it a try and let us know what you think."

Ericsson AB has submitted JSR-319, Availability Management for Java. "The purpose of the Availability Management for Java is to enable availability frameworks to supervise and to control Java runtime units in a standardized way." To do this, the framework is meant to "coordinate redundant resources within a cluster to deliver a system with no single point of failure," by deciding how to distribute software resources across the cluster, manage activation and deactivation of those resources and monitor their health, handle error recovery, and more. The JSR review period runs through October 29.



Awaiting On You All Blog

Posted by kfarnham Oct 17, 2007

Will you make your voice heard in the JCP?

Our current pollsuggests that most of the community isn't following the 2007 Java Community Process elections very closely. And that's too bad, because some of the same people who aren't paying attention will probably complain if they don't agree with what the JCP produces in terms of a properties API or a closures proposal for Java 7. No, the next version of the language won't be put up for a point-by-point plebiscite, but you can affect the process by helping determine who's on the Executive Committees that approve or disapprove the JSRs.

The first round of balloting is already over, with the holders of ratified seats -- Apache, Red Hat, and Nortel on the SE/EE Executive Committee, and Research in Motion, Samsung, and Time Warner Cable on the ME EC -- all approvedby the voters. It's interesting -- to me, anyways -- that the Apache Software Foundation scored the highest ratification rate (94.9% voting to return Apache to the SE/EE EC), despite the group's apparent new policy of voting against all JSR's as a protest against JCK licensing terms.

We're now in a two-week nominations period, in which JCP members can nominate themselves to run for the open seats, one on the SE/EE EC and two on the ME EC. The Java Posse's Joe Nuxoll was talking about running on a one-issue (properties) platform, so Joe, it's go time. Once nominations are complete, balloting will take place from October 30 through November 12.

How 'bout you? Are you in the JCP, and are you going to throw your hat in the ring? If not, what are you looking for in candidates? What would you like to see the JCP do differently, either in terms of conducting its own affairs or how JSRs are approved and developed?

Also in Java Today, an SDN article Introducing the OpenDS Project, offers an overview of the OpenDS project on "OpenDS, an open-source software (OSS) project, was launched in 2005 by a small team of Sun engineers. Their goal: to build a directory service with the ease of use that developers desire and the scalability required in carrier-grade deployments. Their success thus far -- OpenDS stands out from other directory servers by virtue of its full-stack roadmap, intuitiveness, platform portability, and a large, experienced, full-time community of developers, QA engineers, and documenters."

The latest Java Mobility Podcast, Episode 24 takes a look at, or rather a listen to, some of the Mobile and Embedded Community Stars. The episode features a round table discussion with Terrence Barr and some of the Mobile and Embedded Community most prominent members: Maurico Leal, Joe Bowbeer, Hartti Suomela, and Bruno Ghisi.

James Gosling addresses followups to Friday's Solaris and OS X blog in today's Weblogs. In Solaris and OS X (continued), he writes, "there were a whole pile of questions about my previous blog entry, here are a few quick answers. [...] Apple's JDK support is a part of my problem, and yes, I have their JDK6 from the ADC. I've met the folks on the JDK team and they're trying real hard. It's hard to tell what the fundamental issue is, but it keeps feeling like the big problem is that developers aren't the "Target Demographic"."


Real world verus pretty architecture, guess who wins?

Reading Eoin Woods' Avoiding the Icebergs: Top 10 Software Architecture Mistakes was like a flashback movie for me, of decisions and oversights I'd love to have back. Whether you read the whole two part article (1,2) or just the InfoQ summary, I'll bet you'll feel the same way.

For example, I read point 4, "Box and Line Descriptions":

The question is, how do you go about describing something as complex as a modern software intensive system? The approach that we've all tried at some point is the single, all inclusive,


All Things Must Pass Blog

Posted by kfarnham Oct 15, 2007

James Gosling ends his Mac-using era

Cited on an Apple PR pagefor his use and evangelism of Mac OS X, and having writtenthat he "tend[s] to think of OSX and Linux with QA and Taste", James Gosling says he's moving on.

His latest blog compares Solaris and OSX, and he explains why he's now chosen the former over the latter.

I loved Tom Yeager's article The next best thing to OS X. As several people have noticed at my talks over the past few months, I no longer carry a Mac laptop. As much as I love the Mac's eye candy, it really hasn't been keeping up as a developer's machine - their attention has clearly been elsewhere. Meanwhile, the Solaris folks have made huge strides in Solaris's usability on a laptop with recent Nevada builds: the latest Gnome is quite lovely. Firefox, Thunderbird and Silverlight kick ass. The new installer is totally slick. The nwam (network automagic) service makes network hassles almost totally disappear. And Java, NetBeans and Glassfish go like the wind! It's amazing how fast things run.

Of course, when he says the Mac "hasn't been keeping up as a developer's machine", he specifically means as aJava developer's machine, which gets into the long-discussed and agonized-over issue of the absence of Java SE 6 from the platform, and the apparent fact that it will only be available in the yet-to-be-released OS X 10.5 ("Leopard"), trailing its release for Windows, Solaris, and Linux by more than 10 months now.

On the other hand, Dr. Gosling also admits that Solaris won't put his laptop into hibernate mode when he shuts the lid.

So, OS X to Solaris: good idea, bad idea, practical necessity, or what? Chime in here, or back on his original blog.

Also in today's Weblogs, Arun


Hammer And A Nail Blog

Posted by kfarnham Oct 12, 2007

New movement on Java alternatives running on the JVM

Wow, the stuff I'm getting through the back channel lately. Earlier in the week, Dalibor Topic (aka, robilad), sent me an interesting link from the OpenJDK project's announcements list, basically proposing a formal effort to prototype better support for non-Java languages as part of the HotSpot project.

Specifically, in Project proposal: Multi-Language VM, John Rose writes:

The emphasis will be on completing the existing bytecode and execution architecture with general purpose extensions, as opposed to a new feature for just one language, or adjoining an unrelated new execution model.

The emphasis will also be on work which removes "pain points" already observed by implementors of successful or influential languages, as opposed to more speculative work on unproven features or niche languages.

So what's up here, other than the old classic call for aninvokedynamic bytecode? John writes: 

Here are some examples of features that could be prototyped in this project, if developers were found who are willing and able:

  • tail calls and tail recursion [5]
  • continuations and coroutines [6]
  • tuples and value-oriented types [7]
  • lightweight method objects [8]
  • runtime support for closures [9]
  • invokedynamic [10]

So what do you think? Are you one of the developers who has the VM chops to pull this off? Would you be glad if someone did it? This development will be well worth watching.

Also in Java Today, on his Angry Bill blog, JBoss / Red Hat veteran Bill Burke talks about JSR-311, JAX-RS: The JavaTM API for RESTful Web Services, JSR 311, JAX-RS: Comment and suggestions. Citing a blog by Brian Leonard, he worries aloud that " 311 does seem like it is just standardizing the REST framework Sun has already written." With a code demo, he offers a number of change suggestions, and adds "I'm seriously thinking about implementing 311 with the changes I've suggested here and integrating it with our EJB3 implementation. Hopefully I have the time. "

Issue 142 of the JavaTools Community newsletter has been posted, with tool-related news from around the web, useful links for community members, and a Tool Tip by David Green on "Analyzing Ant Build Performance".

In today's Weblogs, John


Lay My Head Down Blog

Posted by kfarnham Oct 11, 2007

When am I supposed to be able to listen to all these Java podcasts?

From the Problems You'd Like To Have file, I think there may now be more good Java podcasts than it is actually possible to keep up with. Certainly for me, since I don't have a daily commute and I find I can't work on words (i.e., I can't edit or write) while listening to spoken-word podcasts. Almost makes me wish I drove a car or took a train somewhere.

But seriously, we've got the Java Mobility Podcast from's own Mobile & Embedded Community, there's the NetBeans Podcast from Roman Strobl, the Java Posse, and the Drunk and Retired podcast, and that's setting aside our own JavaOne Community Corner Podcast that has run its course for this year, but may be joined by new podcasts in the future. Oh, and aside from those, there are plenty of tech podcasts that you may listen to, even though they're not specifically Java-related, such as This Week in TECH, the Google Developer Podcast, the SDN Channel, etc.

Seriously, I've got iPod drive space, but having enough hours to listen to all of this is another matter. Again, better too much than not enough, right?

So, today, we feature a pair of new podcasts in the Java Today section. Episode 23 of the Java Mobility Podcast features an interview with Johannes Eickhold is a Research Staff Member at the University of Karlsruhe. "While most his of work is on Peer-to-Peer networking he is also working on a distributed Java VM on eight bit micro controllers to leverage that peer-to-peer network. Johannes talks about his experience porting phoneME advanced to the Nokia N800 and future directions that the community should take for this device."

In the 36th episode of the NetBeans Podcast Gregg Sprorar and Roman Strobl share their recent travels, discuss the NB Governance Board Elections, Mobility tools game designer, Arun Gupta's screencast, Ruby debugger screencast, module of the podcast and more.

Acknowledging that it's a "work in progress" that "probably belongs on a wiki page", Kelly O' Hair has posted a lengthy Glossary for JDK Builds in his blog. Along with providing insight into the process and tools used to build the JDK (including a number of Mercurial terms) , it also reveals the various workspaces for "corba", "deploy", "jaxws", and more. Those actually building the JDK will find a number of interesting "ALT_..." variables used by makefiles to select alternative paths, locations, or settings.



Power Of Two Blog

Posted by kfarnham Oct 10, 2007

Can the community get Java on the One Laptop Per Child computer?

In a new editorial, Java, the OLPC, and community responsibility, Javalobby founder Rick Ross seeks to rally the troops to help get Java on the One Laptop Per Child (OLPC) computer, the low-cost laptop targeted at the developing world.

"It doesn't already have Java?", you might ask, even given that the OLPC is Linux-based and Java opens all kinds of doors to Linux users. Nope. According to an OLPC wiki page, "Java is currently not shipped by default. Only open source software is, and apparently open source versions [of Java] are not yet usable." That's not an inaccurate assessment. After all, Sun's current production-quality JRE isn't open-source, Harmony isn't done yet, and OpenJDK is still working to eliminate its final IP encumbrances.

Rick says that's a problem that is incumbent on the Java community to solve:

This is one of those rare moments of opportunity, and we should not let it pass us by. The Java community could make a meaningful contribution to this amazing and worthwhile project. I hope you will think it over and decide to get involved. There are so many times in life when we feel powerless to change things, but in this case your help could make all the difference.

Rick goes a step further by pledging US$5,000 in seed funding to a "reasonable, credible project to bring Java to the OLPC."

Still, lobbying aside, OLPC's insistence on open-source software requires that there be an open-source Java implementation they can use, and with arguable exceptions (perhaps Kaffe and GNU Classpath), there isn't a production-ready option that satisfies this.

Yet it seems like the community is already working on this, through collaboration on the GPL OpenJDK (and Harmony too, as its ASF license would presumably also be acceptable to the OLPC project). When OpenJDK is finally free of its patent encumbrances, OLPC will be able to evaluate whether it meets their needs. There are potential hazards of course, like a JRE perhaps being too heavyweight for the minimalist OLPC computer, but at that point, the GPL nature of OpenJDK would allow for a fork to target a smaller subset of the full JRE for use on the device.

The OLPC ship might have already sailed by the time that OpenJDK is production-ready, but there's always OLPC 2.0...

In Java Today, the bean-propertiesteam is "proud to announce the release of milestone 1 of the bean properties API and implementation as part of our roadmap for a full scale release in 2008. Bean-properties is one of the first and most extensive Java properties implementations that requires no language change or bytecode instrumentation. Bean-properties allows RoR like productivity while maintaining Java's hallmarks of type safety and compiler checking." A Web Start demoof Bean-properties is also available (requires Java SE 6).

The SDN has launched a series of interviews with Java Champions, with the first installment, Becoming a Better Programmer: A Conversation With Java Champion Heinz Kabutz. Kabutz is best known as the creator of the freeJava Specialists' Newsletter, targeted to expert Java developers. Since its inception in November 2000, the newsletter has grown from an initial audience of 80 friends and colleagues to, after 150 issues, one that includes more than 30,000 programmers in 114 countries.



Run Blog

Posted by kfarnham Oct 9, 2007

Who's running for the JCP seats, and will you join them?

I was listening to the Java Posse last night, and I think they got a key point on the JCP 2007 Elections wrong when they speculated about the nature of this week's ratified voting, speculating that this voting is for the individuals who represent certain organizations and companies. Well, I just cast my votes for the ratified phase, and all that's there are the names of the six companies and seats that are up for re-election this year. A short item on Artima, 2007 JCP Elections Under Way, puts things concisely and clearly: "In the first phase of the JCP elections, the community votes on Sun's nominees, while the second phase invites nominations from the broader community."

On the nominations point, Posse member Joe Nuxoll says he wants to be on the EC in order to get language-level properties in Java 7. IMHO, he could probably do more by putting together an expert group to write a definitive properties JSR, but whatever... nominations for the open seats begin next week, and Joe can start running officially then, notwithstanding his reality-detached declaration of a "write-in campaign".

We were talking about the elections on the Posse's IRC channel this morning and Dalibor Topic made a good point about accountability. While the ballot page provides statements from five of the six ratified seat-holders (apparently, no statement was receive from the Apache Software Foundation), there isn't a particularly straightforward way to see how the current seat-holders have used their positions. As Dalibor writes in his blog, The JCP election season starts:

So I'm wondering if there is a JCP activity board out there somewhere, that lets me figure out how the candidates have participated in the JCP, which JSRs they've been leading, how they've voted in the past, when they abstained, what sort of comments they have attached to their votes, what sort of licenses they publish the RIs and TCKs under for the JSRs they lead, if they have publicly readable mailing lists for their JSRs, etc.

Good question. There seems to be no formal link trail connecting an EC member to its behavior as a member of JSR expert groups, and digging through JSRs to find a voting history is a tedious process. All I've ever noticed in the voting history is Apache's recent tendency to abstain or vote against all JSRs as a form of protest about the licensing of the JDK TCKs (see their votes and comments on JSRs 315,316, 317, and 318).

So, how do you cast an informed vote in the ratification phase of the elections? Has there been enough discussion, and can people find those discussions?

Feel free to share your thoughts on the elections here, or in the JSR forum.

In Java Today, a new SDN article looks at Long Running Web Process (LRWP) in the Java Platform using GlassFish. "The Long Running Web Process (LRWP) is a protocol used by a web server to communicate with its peers. LRWP is similar to CGI, but faster, since the peer is persistent across requests." The article moves on to considering Java implementations, to run onGlassFish: "the design for implementing the LRWP protocol in the Java platform uses a servlet container to handle HTTP requests and also to make use of servlets to handle the LRWP processing. "

Java SE 6 focuses on performance, with expanded tools for managing and monitoring applications as well as diagnosing common problems. The article Monitor and diagnose performance in Java SE 6 outlines the basis of monitoring and management in the Java SE platform and provides detailed information about the relevant enhancements in Java SE 6.

The Notebook projectoffers "a simple program to organize notes, to-dos, lists, and anything else you need to jot down. Notebook is designed to be small, fast, and portable. This makes it ideal to keep on a USB thumb drive, and use on any computer with Java 1.5 or higher installed. Notebook is also designed to be simple and easy to use. No extensive menus, no complicated options, and no fluff. Anyone can begin using Notebook in a matter of seconds, using simple toolbar buttons or intuitive keyboard shortcuts."

In today's Weblogs, Kirill


Closer To Fine Blog

Posted by kfarnham Oct 8, 2007

Open governance updates from NetBeans and OpenJDK

One of the things that didn't get a great deal of attention alongside the GPL'ing of Sun's Java implementation (in the form of the OpenJDK project), was the formation of a governance board of two Sun employees and three outsiders, who were charged with drafting a constitution for the OpenJDK community. This formal process is backed up with a charter that enables the GB to act in the interests of OpenJDK until the constitution is finished and ratified, which should happen by May 8, 2008 (as that's the date that the interim board is due to be dismissed).

You might remember the announcementat JavaOne of the GB members: Mark Reinhold and Simon Phipps from Sun, Dalibor Topic of, Fabiane Bizinella Nardon of ZILICS, the JavaTools Community, and the Java Champions, and Doug Lea of SUNY and JSR 166. But you might wonder what they've been up to and how they're doing.

Mark Reinhold's blog, Constitutional conversations commence recaps the initial activities of the board. He writes, "the OpenJDK Governance Board held its first two meetings this past July. The minutes have just been posted (for 2007/7/12 and 2007/7/17); herewith the highlights. The primary mission of the current GB is to write a Constitution for the OpenJDK Community. These initial meetings served to set the stage, both procedurally and philosophically, for that work." In his blog, you'll find an overview of the initial agreements on process and philosophy. For more details, you can check out the minutes for theJuly 12 and July 17meetings.

Also on the topic of governance, it's worth a reminder that this is the second and final week for the ratification portion of the 2007 JCP elections. Nominations for elected seats begin next week.

Continuing the governance theme in the Java Today section, the Autumn 2007 NetBeans Governance Board Elections have ended. All of the votes have been counted and the board members have been announced: the community representatives in the new NetBeans Governance Board are Wade Chandler and Tom Wheeler . The third member and Sun Microsystems appointee to the Governance Board is Brian Leonard. The election organizers offer "congratulations to Wade, Tom, Brian and all of our respected fine nominees!"

Stephen Colebourne's Weblog has an entry about JSR-310 and Java 7 language changes with examples of what he considers Java limitations. "Part of the difficulty I'm finding with designing JSR-310 (Dates and Times) is that I constantly come across gaps in the language of Java. My concern is that these gaps will shape the API to be less than it should be." Among these are concerns about usingBigDecimal to represent durations, and a lack of immutable classes. He also makes a case for self-typesand operator overloading being appropriate for JSR-310's purposes.

This week's Spotlightis on the first ever Java Mobile & Embedded Developer Days Conference, January 22-24, 2008, at the Sun Santa Clara Campus Auditorium, California, USA. Hosted by the Mobile & Embedded Community, the conference is devoted solely to the technologies of mobile and embedded Java platforms and is targeted for application developers of intermediate and advanced skill levels, platform developers, and technical personnel at tool vendors, OEMs and carriers. Planning is underway for a series of technical sessions, lightning talks, hands on labs, and poster sessions. The Call for Papers is now open, and you can get even more information from the Developer Days Wiki and a Developer Days-focused episode of the Mobile & Embedded Podcast.



More Adventurous Blog

Posted by kfarnham Oct 5, 2007

From the lowest-level language to one of the highest

Understand and believe that when articles are proposed, I do make the author justify "why it matters" to readers, so that you don't see 2,000-word treatises on concepts of purely academic interest with little or no practical application. I bring this up because the premise of today's new article -- calling Java from assembly language -- might well bring hackles of impracticality.

Biswajit Sarkar has already covered invoking assembly code from Java, which has a straightforward usefulness to those seeking performance in critical sections of code. But when he proposed going in the opposite direction, from assembly to Java, I had to ask "why would anyone ever need to do that". He replied in his second draft with an anecdote to say that he'd already been in a position where this was the right approach:

Some time ago, I was associated with an application to collect real-time data from a number of sources and save them in circular buffers so that new data would overwrite old data once the buffer got filled up. If a designated trigger event was sensed through a digital input, a fixed number of data samples would be saved in the buffers so that a snapshot of pre- and post-trigger data would be available. The original application was written in assembly language. After the application was used for a few months, it was felt that it would be very useful to have the application mail the snapshots to authorized supervisors whenever the trigger event occurred. Of course, it would have been possible to write this extension in assembly, but the team felt that in that particular instance it was easier to write that extension in Java and hook it up with the ASM program. As I had earlier worked with ASM-oriented JNI, I knew this could be done and, indeed, the project was implemented quickly and successfully.

Even if you're not an assembly language programmer with an occasional need to call out to Java's many capable libraries, taking another tour into the specifics of how JNI manages interfaces to native code may be useful for understanding just how your Java code interacts with the system.

So I hope you'll enjoy this Feature Article,Launch Java Applications from Assembly Language Programs. Actually, with a lot of legacy assembly code out there, it's entirely possible that there could be some novel uses for the idea. Perhaps an assembly language program on an old mainframe could be exposed as an SOA by writing a small amount of new assembly to call out to Java-based SOA libraries? Who knows... we'll see if this is an idea that gains traction.

Unknown and undocumented properties are the focus of two of today's Weblogs, starting with Jean-Francois


Does He Love You? Blog

Posted by kfarnham Oct 4, 2007

Slashdot founder reveals why he hates Java

Oh sure, it's cool to hate Slashdot, but I read it every day, and so do many people in our field. I indulged one of their tenth anniversary stories the other day, largely interested in how the site's story tracks back to founder Rob "CmdrTaco" Malda's days atHope College, my wife's alma mater.

In A Brief History of Slashdot Part 1, Chips & Dips, CmdrTaco relates the story of how he came into possession of a DEC Alpha (his first non x86 computer since middle school) as part of an arrangement involving reworking graphics for a "Space Invaders" clone written with a friend's Java sprite library. In the end, he got a computer to install Linux on... and a nastygram from Sun Legal:

Later Sun sent me legal threats forcing me to take the game offline since it was called Java Invaders, and clearly this was an evil crime against the universe. My hatred for Java has never died since that moment.

Two possible reactions here. Presumably most will opt for the first, that ten years is a pointlessly long time to hold a grudge, especially over such a small matter, and given how much Java has done to keep Linux viable for enthusiasts like CmdrTaco. Surely it's time to let bygones be bygones. But I think you can also see a sort of Golden Rulekarmic payback kind of thing: whatever IP value Sun Legal managed to defend that day, it has been destroyed a hundred million times over by the anti-Java emnity marshaled by Slashdot and groups like it.

Treat others the way you'd have them treat you... especially when they later get popular and influential.

In Java Today, Jean-Francois Arcand has announced that Grizzly 1.6.1 has been released and is available for download. The new version adds Grizzlet, port unification and SSL for HTTP support, adds well-known MIME types to its HTTP web server, and fixes several issues.

In a new screencast from, Roman Strobl demonstrates the NetBeans Ruby Debugger features such as adding breakpoints, running tests, analyzing local variables, exploring call stacks, and viewing watches.

The OSS/J 3GPP Extension for Fault Management project is an extension of the Fault Management API (JSR 263). Its 3GPP Alarm IRP Specification is available for download, as is the reference implementation, which uses Java SE 5 and GlassFish. The project notes that "in accordance with the OSS through Java Design Guidelines, this extension supports the JVT, XML/JMS and Web Service implementation profiles and passes the OSS/J FM API TCK." The project's TCK is available as source or binary.

In today's Weblogs, Rama


It's A Hit Blog

Posted by kfarnham Oct 3, 2007

Early word is good on the Consumer JRE

Notwithstanding some reports that you may need to bang on Windows Registry entries to get JDK 6.0 Update N Early Access hunky and/or dory, early reports are pretty positive. I was on the #javaposse IRC channel early this morning... really early because a certain 5-year-old decided to wake up in the middle of the night and start talking non-stop about Ninja Warrior... and caught a discussion from the group's European membership about initial experiences with it. Such as:

<pdoubleya> I'm really happy the the new JRE, works great, very surprised at the quick turnaround and the good performance
<pdoubleya> I was surprised how fun it was to browse the applet world again. There are tons of applets out there, some quite cool (for some reason, quite a lot of graphing/math/algorithmic stuff)

It turns out he also made more or less the same comment in our Forums, featured below. Later on, while I was AFK, he made another important comment about 6.0uN:

<pdoubleya> man! so annoying. one person wrote on a TSS thread that quickstart was windows-only. now there's a front-page article on JL about it.
<pdoubleya> afaict, it's just a packaging issue.
<pdoubleya> wrong news travels fast.

To be sure, some of the new Consumer JRE features will be Windows-only, some because of their very nature (a Direct3D-based rendering pipeline), others because Sun's engineers announced at JavaOne that they would deliver certain features for Windows and expect others to do it for the JDK's they're responsible for (e.g., Apple for the Mac OS X JDK, perhaps the open-source community for OpenJDK, etc.) But it looks like QuickStarter isn't one of them.

To keep up with what others are doing with 6.0uN and what they're saying about it, check out the active 6uN Early Access forum.

Starting today's highlights from the Forums,pdoubleya has more details in First impressions: quick starter. "I had the pleasure yesterday of trying out quickstarter, by simply googling for random applets around the web and trying them out. To coin a phrase, applets are fun again (don't quote me on that, it's geeky in the wrong way). No, honestly, as of this Release N I was able to visit many, many sites, some quite old, to see what their applets were about. The experience was, overall, very smooth and for the first time I didn't find myself cursing applet technology under my breath. It's kind of a revelation to have applets be usable and useful again. I was also surprised by how well applets blend into web pages with this new update, even pages that were quite old (as in "this applet requires Java 1.1" kind of old). So, first comment, great work. Now some criticisms, or comments on what I think you can improve."

Elsewhere, ernestojpg writes about web services authentication issues in Re: Holder-of-key and Truststore files. "I've tested the last WSIT Nightly Build, and it look like already works! The Server get the Client's Public Key from SAML Assertion (SubjectConfirmation), and don't look for it in its truststore. But something strange happens. I have tried this scenario, but now using a empty Trustore in the server side, and that also works! I thought that 'wssip' and 'xwss-certificate-authority' certificates would be necessary. It look like the Server verifies the wssip signature using only the KeyInfo in the SAML assertion, but the Server doesn't look for the Certificate in its truststore. Or perhaps it doesn't verify the SAML signature, I don't know. Is that normal?"

vhardy has a suggestion for getting at SVG files inRe: JSR-226 : How to Change value of SVG text? "To modify the SVG source, you can use gunzip to turn the .svgz file into a regular svg file and then search replace the mouseover/mouseout with focusin/focusout. Alternatively, I think Mobile Designer has a way to trigger events on focusin/focusout. I believe there is an SVG Timing option panel where, if you select "Event", you'll find "focus in" and "focus out" under the event type. Good luck with your project."

Returning to the topic of 6.0uN, in the Java Today section, Danny Coward summarizes the goals and progress of the "consumer JRE" project in Consumerizing Java on the Desktop. "Heard the early roll of thunder about a project called the 'Consumer JRE' last JavaOne ? Yesterday it came a step closer to reality: We've released an early access versionof an major update to the Java Runtime Environment (JRE) on Windows platforms, specifically focusing on features of the JRE needed by consumer content."

Issue 311 of the NetBeans newsletter is now available. Highlights include: A Plugin to Make You Filthy Rich, Participate in Intland's codeBeamer-NetBeans ALM Module Project, Feature Viewer: A Plugin for Listing Plugins, How to Use jMaki on Rails in NetBeans 6.0 IDE, Video: NetBeans Ruby Editor Code Completion, Running Woodstock JSF Components in Portlet Environment, Rails and JPA (Instead of ActiveRecord) and much more.

SDN recently posted a tutorial from John O'Conner on learning how to use JavaFX Script's Declarative User Interfaces. "in JavaFX Script, you can use declarative statements to define the UI. That's a significant difference and adapting to it can take some time and effort. To learn this new declarative style for creating UIs, I decided to port an existing application UI from its Java language implementation to JavaFX Script. "

Another big event this week was the announcement of Java Mobile & Embedded Developer Days. In today's Weblogs, Sean


Close Call Blog

Posted by kfarnham Oct 2, 2007

Bringing mobile Java developers together

I usually get up around 5:20 AM... well, that's when the alarm goes off... it's often more like 5:40 before I'm actually in front of the computer and starting work on the front page. Today, just before the 6 AM exercise break (400 cal. of Dance Dance Revolution Supernova 2), I got an instant message from Mobile & Embedded community lead Roger Brinkley.

Remember: it's just before 6 AM in the East. And I know Roger's in the Mountain time zone, where it's just before 4. So he's been up all night working on something big.

How big?

How about a whole new conference, just for Java ME developers?

He said "you guys are the first to know", as he sent me the URL for the the Java Mobile & Embedded Developer Conference, to be held January 22-24, 2008 at the Santa Clara Auditorium.

But why a conference just for ME? Consider it part of the ongoing trend towards smaller, more focused conferences (Desktop Matters, for example), as the page notes that:

At the present time there is no dedicated mobile Java developer conferences with deep technical content. We have consistently heard from developers at Sun Tech Days and JavaOne about the need for such a conference. Developers want a conference solely devoted to the Java Mobile space where they can learn about the technical content.

Some of the specifics of the conference are still being worked on, such as the cost (they intend to keep it under US$200), and the various kinds of content (technical sessions, lightning talks, hands-on labs, etc.), so be sure to keep an eye on the page for more information. Registration for the conference opens November 1, and the Call for Papers is underway as part of a forum thread.

And yeah, the home page's link to the Call for Papers currently goes to the Mobile Aerith project instead, but give Roger a break: he was up really late on this. I'm sure he'll fix it when he gets up in a few hours.

Also in Java Today, the latest edition, issue 140, of the JavaTools Community Newsletter is out, with tool-related news from around the web, a new community project (JSON Library), two graduations (IntelliJ-Plugins andON), and a Tool Tip on using HTML files in the project web site using a SVN repository.

Over on O'Reilly's Beautiful Code site, blogger Michael Feathers wonders Will Java 7 Be Beautiful? "Java seems to be going through its mid-life crisis. A year or two ago, there was a massive push to get closures into Java. No doubt this was inspired by the upsurge in interest in functional programming languages and abetted by the rising use of languages like Python and Ruby which show us daily how convenient blocks are." But he finds himself wondering if closures might end up feeling tacked-on, like the OO extensions to Fortran, Cobol, and Ada.

Today's Forums have some reactions to the release of the user-facing JDK 6.0 Update N Early Access, in new forums for 6uN Early Access and Java Quick Starter. In Re: Installing 6uN over 6u2, radvani7 reports, "I figured out the problem with my installation and am posting it here for reference by anyone else who is having trouble getting this build to be recognized by Java Plugin. The problem with the installer on my machine was that it did not create the necessary registry keys (obviously I'm using Windows), which are used by Firefox to scan for your Java Plugin and Runtime. I had to add these keys manually."

Project Wonderland's developers have a major announcement, posted by paulby: Voicebridge has been open sourced. "The Voicebridge is the technology we use to provide the high quality audio features within Wonderland. The great news is that the project has now been released as open source, This is great news as we can now integrate the audio system into the binary and source releases of Wonderland. We will be updating the builds and ant scripts to integrate the components over the next few days."

finite9 wonders if there's no firefox plugin for 64-bit version of jre 6? "I run Ubuntu 64-bit and I download the jre6 from but when I unpack the zipped package, there is no plugins directory. If I download the 32-bit linux package then there is a plugins directory and there is a mozilla firefox plugin. Why is there no plugin for the 64-bit version?"

Today's Weblogsalso feature responses to the early access release of the "consumer JDK". Chet


Go Ahead Blog

Posted by kfarnham Oct 1, 2007

The consumer JRE is ready for you to try out

The focus of several sessions at JavaOne 2007, and many blogs about needing to improve the client-side/consumer/user-facing Java story, the so-called "consumer JRE" is now available in an early access form for testing. Only now it's called Java SE 6 Update N.

In fact, I'd be testing it on Parallels right now, if the DSL weren't out.

The ambition of this release is pretty impressive, as it targets a number of long-standing problems with the Java user experience on the desktop, some of which fall under a general "Java is slow" complaint, but actually involve a number of different causes:

  • The JRE download is crazy huge -- so this version debuts the "Java Kernel" to allow for modular downloads of just the parts of the JRE that the user currently needs.

  • The startup time is unacceptably long -- so a Quick Starter feature preloads parts of the JRE into memory

  • Graphics are slower than with native apps -- a new Direct3D-based hardware-accelerated graphics pipeline should help

Further improving the user-experience, this version adds the Nimbus look and feel, along with a JRE update mechanism that doesn't make each point release look like a new item for Windows' "Add/Remove Programs" list.

And for developers, a Deployment Toolkit simplifies figuring out just which versions of the JRE the user has installed.

It's a pretty good bet that this will be one of the main topics of discussion this week. If you're on Windows and have an interest in client-facing Java, go get the download, and check out the testing guidelines and feedback forums.

Oh hey, look: my DSL is back up. Time to start downloading Update N onto the Mini...

In other JDK-related news in the Java Today section, Tom Marble has posted an update on the OpenJDK project's efforts toward Clearing encumbrances from the JDK. "It is our hope to get to 100% Freeand 100% Java Compatible as soon as possible. I'd like to give you a brief update on progress on our OpenJDK projects to clear the outstanding encumbrances."

The 2007 JCP Executive Committee Elections begin today with a 14-day period of voting for ratified seats. "Ratified Seats are filled by a simple ratification process. Members are selected for the Ratified Seats using a ratification ballot that is carried out starting the first week of October of each year. [...] The PMO nominates Members to fill the vacant Ratified Seats with due regard for balanced community and regional representation. Eligible Members vote to ratify each nominee over a 14-day voting period. Each nominee is ratified by a simple majority of the Community Members who cast a vote." This phase ends on October 15, with nominations for elected seats beginning on October 16.

Today's Forums start with an Update N-related post, in a thread Kirill Grouchnikov kicked off about the packaging of Nimbus. In Re: Nimbus package in JDK 6.0_05, pdoubleya quotes from Jasper Potts' blog to provide an answer: "You've probably already seen Jasper's blog since posting this, but for the record: "The reason Nimbus is in the sun.swing

Filter Blog

By date: