Skip navigation

Pressure Drop Blog

Posted by kfarnham Apr 28, 2006

Flip the calandar, notice JavaOne, don't panic!

This is the last week of April, and if you've pencilled in a trip to JavaOne 2006, then when you flip over to May, you'll see that you have two weeks to go.

Surely this is no surprise to everyone exhibiting at the show, who are presumably in a crunch time that's only going to get crunchier as May 16th approaches.

We're continuing to make plans for the Community Corner, and you can follow that link to sign up to present a 20-minute mini-talk about your project, or submit pictures from your project for use in the slide-show in the booth. We're also working on ways to get some of the content from the community corner out to people not attending the show, and we'll hopefully have some news on this in the next two weeks.

Over on dev2dev, BEA's Bill Roth has written a blog about his many JavaOnes, in which he rolls up a running history of the show in JavaOne: A look back, and predictions for this year. He writes: "JavaOne descends upon us like the monsoon. It's a force of nature and you'd better be prepared for it. BEA is a Platinum sponsor again this year, another sign of our continuing fealty and devotion to the Java Platform and its community. I have been at every JavaOne since 1995, and the show has changed quite a bit. It is also interesting to recall who Sun's cast of characters was at the individual shows."

As for the other item in Also in Java Today, EJB brings scalability, security, and support for transactions, but traditionally it has also required a pedantic assortment of deployment descriptors, implementation of rarely used callbacks, and the resulting code is ill-suited to testing outside of a container. EJB 3.0 addresses these complaints in a major reworking of the framework, and these changes are described by Vimala Ranganathan and Anurag Pareek in the dev2dev article An Introduction to the Enterprise JavaBeans 3.0 Specification.

In Projects and Communities, a forum post announcces the availability of Java3D's latest binary build, 1.5.0-build2. Poster paulby notes "This is the release we will include with lg3d 0.8.0 so please focus your testing around this version." The 1.5 roadmap in the project Wiki includes a JOGL-based renderer, texture optimizations, and a refactoring to stop using finalize() to clean up state.

Kulvir Singh Bhogal and Mark Talbot's article Build and test JSR 168-compliant portlets with Apache Pluto offers a guided tour to portlet testing. It shows how to install Pluto and build, compile, package, and deploy a simple portlet to Pluto to test it for JSR 168 compliance. It also looks at the next portlet spec, JSR 286.

The latest Poll asks "Where are Java's best growth prospects?" Cast your vote on the front page, then visit the results page for results and discussion.

In today's Forums,neilweber is trying to figure out JDIC Deployment: "I would like to use the JDIC System Tray and Desktop functionality in the cross-platform application I am writing. The application will be deployed via Webstart. Looking at JDIC, I'm not 100% how it's intended to be deployed. I see there are a number of OS-specific binary downloads. I could combine these all into a single jdic.jar and jdic-native.jar. I could create a jdic-windows.jar, a jdic-linux.jar, a jdic-macosx.jar, and put all of the native code into jdic-native.jar. What's the intention?"

In Re: Comm-API: Windows download missing,dsg123456789 tries to put together the Windows support story for javax.comm: "If I remember correctly, Sun has not and does not plan to release a Windows implementation of that api. I think that there are numerous third party implementation, however. came up in a google search for serial port libraries, as did several forum posts that javax.comm was to be discontinued for Windows in v3.0."

John Reynolds concerns himself with Teaching Kids to be Thoughtful Programmers in today's Weblogs. "Today's kids are amazingly creative technophiles... If you have any doubts about that, just check out some of the videos posted at sites like YouTube... They are obviously great film-makers, but how do we get them to be great programmers?"

In Subversive SVN Mason Glaves gets a big idea: "Every so often, you are just going through your day like you always do, doing the same thing over and over again, and then suddenly it dawns on you.... THE IDEA. The big one that you can't believe how blindlingly obvious it was before you noticed it. That's what happened to me today."

Dru Devore blogs about an idea for a Self Describing Data Object (SDDO): "I have created an object to pass dynamic data to and from Web Services. I am blogging it because I want to know how others feel about this type of object."

In today's News Headlines :

The international search for bugs

Briefly noted in the results of the Mustang Regression Challenge, which sought out the best regression bug reports forMustang (Java SE 6), is the international nature of the particpation. The results page lists the top five submissions, as chosen by JDK senior staffers, along with another five honorable mentions. Take a look at the sources of the submissions: Japan (three times), Germany (twice), United States (twice), Israel, Switzerland, and the United Kingdom. That's a powerful statement about Java's strong following around the world and the interest generated by the regression bugs contest.

Another thing that's remarkable is that despite the predominance of enterprise topics in many Java pursuits, most of these bugs concern desktop functionality: Swing, AWT, SWT, and Java2D. Granted, maybe that's where most of the heavy lifting is in Java SE (as opposed to EE), but to have quality bugs filed on the desktop technologies is an interesting and important reminder of how many people work closely with those technologies.

Congratulations to the winners of the contest, who will be receiving Ultra 20 workstations for their efforts.

Also in Projects and Communities, five years after its launch, JXTA "has moved from being only a prototype to being the industry-leading open-source peer-to-peer (P2P) technology for use in large-scale implementations." The SDN article JXTA Technology Turns Five Years Old looks at the industrial applications of JXTA, its community acceptance, the technical enhancements made to the standard, and the potential for its future.

Our Feature Article discusses Using Dojo and JSON to Build Ajax Applications. "The AJAX developer faces a series of challenges in his or her work: not just on the client or server side, but also in combining the two. Zarar Siddiqi suggests one combination that solves a lot of problems: using the Dojo JavaScript library and the JSON library for converting Java objects to and from String representations."

Swing Hacks goes East in today's Weblogs. Joshua Marinacci writes, "One of my co-workers from Japan, Yuka Kamiya, just told me that the Japanese translation of Swing Hacks is coming out this week. She blogged about it here, and while I can't read any japanese I'm pretty excited."

In The World's Slowest Web Service, Chris Campbell asks: "What happens when a client-side guy dips his toes in the river of web services (JAX-WS)? Come for the absurdity, stay for the tutorial."

Ethan Nicholas has been Leaking Evil: "I just ran into a wicked memory leak in Java 5.0. If you aren't aware of this one, you probably should be."

In Also in Java Today, Frank Sommers writes "Continuous integration assumes that the code builds cleanly on the integration server. While in principle no developer would wish to check in code that breaks the build, in practice build failures still happen. Slava Imeshev, whose company, ViewTier, provides a build automation tool, studied build problems, and found that most build problems emanate from a handful of development anti-patterns (patterns of what not to do)." In the Artima discussion Three Build Anti-Patterns, Sommers reveals these three anti-patterns: "Five o'clock check-in", "Spoiled fruit", and "It's a small change".

In the latest installment of the Java Posse podcast, episode 49, Posse members Carl Quinn, Tor Norbye, Dick Wall, and Joe Nuxall cover feedback to listener mail, discussing a proposal to make class members final and private by default, talk up the idea of XUL-based "thinlets", consider a JavaWorld article advocating the use of annotations to eliminate getters and setters, and, inexplicably, get onto a sidetrack about the infamous "Leeroy Jenkins".

In today's Forums,sateh asks about Developing with Maven 2.0: "Does anyone have a simple Maven 2.0 project that shows how to do JEE5 development with glassfish?"

swpalmer clarifies the point of asking Will JFileChooser ever get fixed on Windows?: "Why don't I just write my own version of every class in the JRE that has bugs and forget that Sun has anything to do with it? :) I know I can work around the problem, that's obvious and has little to do with Sun fixing what's broken. Sun could just not fix any bugs - we can all just work around everything by writing our own code from scratch. The Swing team is a little more responsible though.. they actually fix their own bugs :) . But some are easier than others, sometimes it could be that there is no practical solution and that's that. My point being, that I was asking about JFileChooser and if I should expect improvements to be coming from Sun or not."

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 Right Profile Blog

Posted by kfarnham Apr 26, 2006

Desktop Java's impression

Checking back in with the latest Poll, the question What's holding back Java on the desktop has generated far more commentary than any recent poll.

What's interesting is that while "deployment issues" is only slightly ahead of "performance issues", there are a large number of posts that detail the difficulties of Java's deployment story -- getting a JRE to the end-user, managing different versions of Java, etc., -- and apparently not one post about performance. What's the difference? Is it that the performance story is more self-evident than deployment (which can be JRE downloads, versioning, packaging as .exe's and .app's, Web Start woes, etc.), or is it that people who've deployed Java apps have more of an axe to grind? Heck, is complaining about performance just a default response for a lot of people, something they don't need to (or can't?) back up? Just a bit of a detach for these top two responses.

"Legacy perceptions" is a prominent response, one I hadn't thought to include in my draft set of responses. Daniel Steinberg suggested it, and it looks like he was right on for about 15% of you. So how do you overcome the bad taste left in users' (or management's) mouth by some slow Swing app from 1999? What other technology has such an old monkey on its back?

Finally, it's worth noting that part of the idea for this poll came from hypotheses advanced by members of the Java Posse podcast, but those options -- the difficulty of moving from enterprise to desktop development, and the sorry state of the multimedia API's -- are currently the least-selected options. Which doesn't mean they're the wrong answers, just not popular responses among the readership.

In Projects and Communities, the 76th issue of the JavaTools Community Newsletter features tool-related news from around the web and has a tip on using the NetBeans collaboration service, which allows you to engage other developers around the world in public or private conversations via NetBeans. The newsletter also notes two graduations and welcomes seven projects to the community.

The Mac Java Community notes a new technote from Apple, Technical Note TN2147: JNI Development on Mac OS X, which "discusses techniques and concerns specific to JNI programming on Mac OS X with explicit examples of what to do (and what not to do)." Featured techniques include data transfer between native code and Java, building with XCode, and thread-safe techniques for mixing Java and Cocoa.

In today's Forums,augustorighetto has second thoughts about a design decision in the EJB spec in Re: NPE when @EJB is used on other class than the main class"Hi again. I read the spec but I didn't notice that injection is only for main class. I think this limitation is very strange, because it will inflate the main class of application clients with things that shouldn't be there. But ok. Thanks again for your help."

leouser has a global-right click idea in Re: Selection using right-click: "One thing that may give you the ability to do a global right click is an AWTEventListener added to a Toolkit: addAWTEventListener adds an AWTEventListener to receive all AWTEvents dispatched system-wide that conform to the given eventMask.

In Also in Java Today, the Swing UI toolkit makes it possible, though not always easy, to update user interfaces dynamically in response to events or user actions. Peter Seebach's article Dynamic interface design with Swing reviews some of the common ways you can build UIs that update dynamically, a few pitfalls you might encounter along the way, and some principles to help you decide when this is the right approach for the job.

Do you have a stake in the startup scripts of the server your app runs on? Well, it depends--do you want your application to run fast, and to have expected services present? Ah, now I've got your attention. Chris Josephes writes "In most Unix environments, the startup process consists of a handful of autonomous boot scripts. They act independently of one another; unaware of what scripts have already run or which ones will run after them. When they are invoked, there is no serious error checking and no recourse if the script fails." In Using Solaris SMF, he introduces Solaris 10's Service Management Facility (SMF), which "addresses the shortcomings of startup scripts and creates an infrastructure to manage daemons after the host has booted."

Gregg Sporar almost gets caught putting his GIFs in the wrong place in today's Weblogs. In Watch Those Icons Closely, he writes: "I'm developing my first application that is based on the NetBeans Platform. With invaluable help from Geertjan, I'm making progress."

Vikram Goyal notes an FTPOnline special report on Java ME, saying "FTPOnline has a few articles on Java ME development"

In SOAP Over JMS using Java EE Service Engine, Manisha Umbarje writes: "Java EE Service Engine, part of GlassFish project, is a JSR 208 compliant component which along with JMS Binding component from openESB can be used to achieve SOAP over JMS."

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 :

Note the lack of drama

Daniel IM'ed me last night while I was trying to write a podcast to ask if I was planning on doing something special with the site given the big news of turnover atop Sun's management.

My instant response: we're not a Sun site.

Sure, it's a big deal to everyone at Sun, which supports the site and has put many of their prominent projects here (the JDK itself, GlassFish, Project Looking Glass, etc.). But how much does does yesterday's news affect the membership, communities, or all the various projects? My counter-argument was to consider the other partners: if Tim O'Reilly of O'Reilly Media, or Brian Behlendorf of Collabnet decided to step down or retire, would it affect the membership here enough to have a "stop the presses" moment?

What we've tried to do at is to help create a community that exists as a valuable gathering unto itself, in its own right. So while Scott McNealy stepping aside and Jonathan Schwartz taking over as CEO is big news in terms of business, I think it has more the tenor of "interesting things going on outside of". So, I linked to a write up in the "Also in Java Today" section. News director Steve Mallett also picked it up for the "News" section.

We're here for the community. We think it's a viable community that succeeds on its own terms and exists for its own sake, not simply as an appendage of some other entity.

All that said... I owe Daniel five bucks. I thought for sure that Hani would weigh in with some abuse before midnight our time.

Today's Feature Article, introduces the basics of Writing Cool Games for Cellular Devices. Games represent many of the most popular applications for Java ME, but how do you get started writing games for the small device? In this introduction, Kobi Krasnoff develops a simple, multi-screen basketball game for the mobile phone to show you how it's done.

Ben Galbraith makes the case for A Desktop Application Developer's Conference in today's Weblogs. "Too many of us really don't understand good UI design principles. Often, we haven't taken the time to check out what our (WinForms, Cocoa, SWT, etc.) neighbors are up to. And, of course, we all have more to learn about how to use our toolkit of choice more effectively. Do you think it would be a good idea to hold a 1-2 day Desktop Application Development conference?"

In Java Precisely, Masood Mortazavi writes about an interesting new book: "What makes Java Precisely valuable is not only its rigor and density but also the presentation style where textual explanation on the left has been complemented with code on the right no matter where you open the book."

Chris Campbell offers Five Easy Pieces, "a few short tidbits on some recent/nifty Mustang putbacks, documented here before my brain washes away on vacation."

In Also in Java Today, covers the change in Sun's management in McNealy steps down at Sun. "Sun Microsystems co-founder Scott McNealy has stepped down as chief executive, and has been replaced by President Jonathan Schwartz, the company said Monday. McNealy who will stay on as chairman, was one of four co-founders of Sun 24 years ago and has been CEO for the last 22 of those. Since then, he has been a strong and often contrarian voice for change in the computing industry."

Bill Venners considers Guido van Rossum's discussion of the rightness and wrongness of changes that break backward-compatbility, in Compatibility versus Entropy in Java and Python. "Many methods in the Java API have been deprecated, but I know of none that have been actually removed. The result is that Java over time has become more and more bloated with historical design artifacts, while Python remains more lean, mean, and clean. What do you think is the correct tradeoff between backwards compatibility and entropy reduction for Python and Java? Does Python go too far to clean things up from release to release? Does Java not go far enough?"

In today's Forums, Don Casteel says he need[s] a working BufferedRandomAccessFile class: "I desperately need a working BufferedRandomAccessFile class, or something better for working with huge amounts of active data. (8Gb+). I've searched the net, and tried what I've found, but I can't seem to find a version that works. Many of the ones available on the net require additional package imports, or have depreciated methods."

kingwell has a problem with encoding in facelets: "Hi all, i have a problem about facelets encoding. I use mysql(default charset is utf-8) and facelets. It seems that every time i insert some records into the mysql via facelets based jsf program, the output will not displayed correctly until i add an additional escape="false" attribute. Without this attribute, the page will display the utf code directly, like "丫" etc., anyone has some idea of solving this problem?"

manyce400 considers an atypical career move: J2EE to Swing: "Hi am a J2EE developer very interested in learning and working with Swing. Any advice on where i should begin. I find the swing presentation layer a bit confusing."

In Projects and Communities, GELC executive director Bobbi Kurshan's blogGELC Progress - Moving Fast assesses the issues unique to the Global Education and Learning Community: "I have been spending the past 6 weeks meeting partners for GELC. And I have found that the issues to growing community and increasing projects circle around three topics..."

The xmlportletproject has graduated from the Portlet Communityincubator. The project's mission "is to provide a base portlet to serve as a simple mechanism for transforming XML data into the view for your portlet application. This base portlet will be JSR-168 compliant and will relieve you from developing the basic boilerplate logic needed to transform XML using XSLT into HTML."

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 :

A double dose of Brazilian Java

Seriously, I didn't set out to do a "stuff from Brazil" theme in the Projects and Communities section today. Roger Brinkley had noted the new project for a Brazilian Portugese localization of the JDK as a possible front page item, and while I was digging for other items for the page, I came across the contest results on page and liked the story, mostly because of the idea of the clever plugin to bind mouse gestures to actions. That's an interesting form of human-computer interaction I hadn't thought about since the last time I deleted text on a Newton with a "zorro slash", although now that I think about it, there's also a new video game called Okami, in which you use your controller like a calligraphy brush to draw figures and achieve various magical effects. At any rate, the idea of greater use of gestures appeals to me -- I'd love to, say, save off text or URL not with a careful highlight-and-right-click-menu-item but maybe by just circling the target text with my mouse.

Anyways, it was only when I'd put both items into CS that I realized they were both Brazilian in nature. I think that's pretty cool because instead of laboring to contrive some sort of "Brazil Day" theme, it means there's so much Java development and innovation happening there that the two items I picked for the page would just happen to be from in Brazil. Obviously, that speaks volumes about just how hot the Java is in that country.

Elaborating on these Brazilian items in Projects and Communities, Roger Brinkley and Bruno Souza have announced the Brazilian Community Translation of the Java API Specification. The project, in the works for a year, will tanslate the JDK 5 APIs and Guides into Brazilian Portuguese. "It is believed that by translating this specification we will remove a barrier to entry for new software developers in Brazil, thus growing the Java Community."

The winners of "Desafio NetBeans" -- "NetBeans Challenge" in Portugese -- were announced at NetBeans Day Sao Paulo. First place in this plugin-writing contest went to Wagner Bastos' RSI Prevention Module, and second place to Mouse Gestures Module, a team effort that allows invocation of an action by a specific mouse gesture, such as drawing a shape while right-clicking.

This week's Spotlightis on the Direct Web Remoting (DWR) project, which recently reached milestone 1 of version 2.0. DWR is popular for providing "easy AJAX for Java" - making it simple to call server-side Java from client-side JavaScript by eliminating almost all boilerplate code. The new version will introduce the concept of "reverse AJAX", in which server-side Java can asynchronously call client-side JavaScript, making interactive applications much easier.

In today's Forums,golovnin has some AWT advice in Re: Relation between java.awt.Toolkit and java.awt.GraphicsConfiguration: "Try to set the system property 'awt.toolkit' to the name of your class, e.g.: java -Dawt.toolkit=MyToolkit MySwingApplication The method java.awt.Toolkit#getDefaultToolkit() will create and return an instance of your class. You class must have a public no-arg constructor. Hope this helps."

swpalmer asks Will JFileChooser ever get fixed on Windows? "I'm getting a LOT of pressure at work to write my own JNI code to access the native Windows file dialogs because the Swing implementation is so poor. Our customers complain, other developer's complain, our sales people complain.. etc.. So now I'm complaining here. There are several open bugs for this... and they are all old. Some have been closed without being resolved, but many are still open. I appreciate some of the performance improvements I've seen recently with Mustang... they help a bit.. but there is so much more to do."

For everyone who's ever blocked forever on network problems or server problem in RMI, Neil O'Toole has a solution in today's Weblogs. In RMI Interruptus! - Interrupting RMI method calls, he asks: "Ever wanted to interrupt an RMI call that's taking too long? The user clicks the 'Cancel' button, but your RMI thread is blocked in IO, and you want that thread back! Unfortunately there's nothing you can do (until now that is!). "

In Confessions of a noob..., intern Sonya Barry asks (and answers) the question "What am I doing here anyway?"

Konstantin I. Boudnik wants to know what's up in the micro space in Smaller Java, but bigger market?: "The post on recent CTIA event: why didn't we see a lot of Java producers presented? I'm kinda wondering what is the message JavaME community will be getting by this de-marsh?"

In Also in Java Today, in the interview Gosling Outlines the Trouble With AJAX, the founder of Java talks about the challenges of developing AJAX tools for use in server-side frameworks. "Creating them is extremely hard. Not because programming JavaScript is hard, but because all these flavors of JavaScript are ever so slightly different. You have to build your components so that they're adaptable to all the different browsers that you care about. And you have to figure out how to test them. None of the browsers has decent debugging hooks. We could build little things for people where they could test these components." He also talks about Sun's successes and blunders in the system software field.

Beginning and intermediate developers may have heard of object pooling (keeping reusable objects around in a "pool" instead of frequently creating and destroying objects) without having had an opportunity to put the concept to work. It's critically important in database work, given the expense of creating and destroying database connections, and Kunal Jaggi walks through an application of the idea in Database Connection Pooling with Tomcat, in which he shows how to use JNDI to allow your components to find and use the pool.

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 :


Yours Is No Disgrace Blog

Posted by kfarnham Apr 21, 2006

So why not own the desktop too?

I was listening to the Java Posse podcast last night while trying to get Keagan to bed -- he jumps on the bed for an hour, I listen to podcasts... it's a living -- and they had a discussionon the topic of "what's it going to take for Java desktop applications to really take off?" It's interesting that one of the things to kick off this discussion was a blog by Joshua Marinacci from last year, and its follow-on discussion. It also came from the fact that the new version of ThinkFree Officehas hit stores, and is one of the very few Java-based applications that you can buy at your local computer retailer.

The Posse advanced two hypotheses that don't typically come up in this much-repeated discussion. Dick Wall suggested that with the increasing importance of media applications, the poor support for multimedia in the language and its official libraries is an underappreciated handicap. Joe Nuxall suggested the problem is on the developer side, that the differences between writing enterprise and desktop Java are so great that the webapp developer really can't begin to understand the world of the desktop developer, and vice versa.

We figured we could add to the discussion by putting it out there as today's Poll, which asks "What's holding back Java on the desktop?" We've combined the Posse's answers with some of our own. Cast your vote on the front page, then check out the results page for results and discussion.

Today's collection of Projects and Communitiesitems will tax your bandwidth with multimedia demos of new Java development. In the JavaLobby audio-and-slides presentation JBoss Portal 2.2, co-founder and developer Roy Russo introduces this JSR-168-compliant portal, highlighting its ease-of-installation and interesting features like inter-portlet communication, content management, pluggable themes and layouts, and more.

Ed Burns' blog New release of JSF AJAX Components introduces several new AJAX components provided by the Java BluePrints project. Ed's blog also links to some QuickTime screencasts he's created that illustrate the AJAX progress bar, PayPal-style "buy it now" button, Netflix-like "rating" widget, and other components.

Speaking of AJAX, in Also in Java Today, Dion Hinchcliffe serves up a tasty mixture of skepticism and scorn in Five Earth-Shattering Things You Should Know About AJAX and You Don't. "You'vesurely heard that Ajax is the total panacea to the all the problems of traditional Web applications. This includes (but is not limited to, no!) bad navigation experiences, long page reloads, lousy interactivity, web service integration, native application envy, and even the solution to world peace. Yes, it's all there. Except, dammit, the bad news is that Ajax is NOTreally as perfect as they say. No. Probably not even close really. Yes, I know, I'm calling everyone's favorite babyugly. But fawning write-ups do sell magazine articles, books, and page views nicely, don't they?"

The Java Persistence API (JPA) should provide EJB developers with a welcome relief from entity beans, but it's not just about EJB's--it can be used in Java SE, or in other EE containers. Seth White takes a closer look in the dev2dev article Using the Java Persistence API with Spring 2.0: "Spring 2.0, for its part, provides an elegant facility for creating data access objects that leverage JPA. Spring's data access architecture makes it easy to switch between different persistence technologies without the need to rewrite the rest of the application code."

In today's Forums, Krishna Gadepalli talks up Project Looking Glass' participation in Google Summer of Code 2006 "As already mentioned in this list, Project Looking Glass is indeed participating as a Mentor Organization in this year's 'Summer of Code' and we have now officially signed on. I will be the administrative contact for Project Looking Glass. We need to publicize our participation to the relevant student audience as much as possible and I hope the forum members will help us do that so that we get quality student applications and help grow our community."

In the Java Desktop Product Announcements forum,aldomart announces the QTJPlayer 1.0 beta: QuickTime JavaBean "QTJPlayer is a Java Bean based on Apple's QuickTime for Java. It has an easy-to-use API which provides all basic functionality to control QuickTime media and it comes with complete Javadoc documentation. According to the QTJPlayer license, you may use it for free within non-commercial, non-profit projects. Download link:"

So you want to rewrite or re-factor your application? In today's Weblogs, Calvin Austin writes: "Give an engineer some code and one of the first things crossing through the mind of some engineers is, 'Should I rewrite or re-factor that code?'. The logic being that the new version will be ultimately be better in some way than the original. But it doesn't always work out that way.."

In Reinventing GridBagLayout, Ethan Nicholas writes: "GridBagLayout is the layout manager everyone loves to hate -- undeniably powerful, but famously difficult to use. Take a look at how JAXX reinvents GridBagLayout as a simple, easy-to-use layout while retaining all of its power."

Roger Brinkley highlights the Brazilian Portuguese JDK API and Guide Translation Project: "The Brazilian Portuguese translation of JDK 5 has been announced and is underway at "

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 :


Roundabout Blog

Posted by kfarnham Apr 20, 2006

More on real-time Java slot cars

Last week, we had an Also in Java Todayitem about programming in real-time Java, specifically the JavaOne Slot Car Programming Challenge. If you couldn't imagine it in your mind, it helps to have pictures of just what your code is up against.

James Gosling provides just that kind of perspective in his blogFun in real time, in which he shows Greg Bollella setting up the track, along with pictures of the 80 tiny sensors that will be programmers' only indication of where the cars are and what they're doing.

Oh, and you thought you'd just track progress from one sensor to another? Think again.

These sensors are simple photocell gates (the kind used to detect paper moving through a printer) placed along the slot. They give a simple 0/1 indication of whether or not the car is passing by the sensor. To make life harder, all of the sensors areored together. There's only 1 bit of input - two, actually - one sensor gets a seperate bit: it's the start/finish line. So you have to count. Accurately. No missing sensor pulses.

Ready for this? It will be interesting to see not only who wins, but how their code works.

Also in today's Weblogs, Dru Devore looks atDataSources with Sun Java System Creator and JBoss: "We are currently using Creator to create a testing and QA front end for the enterprise application we are developing. After success with working with services we finally needed to hit a configuration database to show all the configuration options available to different applications and users."

Marina Sum writes about "Practical, useful, and up-to-date course material, illuminating examples and exercises, let alone knowledgeable instructors with passion and expertise" in her blogValuable Training Not To be Missed: Java University Program.


In our Feature Article, Jacobus Steenkamp looks at Bringing Swing to the Web: "Unless you are implementing a thick enterprise client such as an applet or a Java Web Start application--options which have their own sets of size, deployment, and compatibility issues--you might think that there is not that much scope for using Swing within web applications, or indeed Java EE. You would, however, be making a mistake; there is no reason why web and Swing development should be mutually exclusive. In this article, we will look at putting one of Swing's most overlooked (and basic) features to work inside a web application."

In Also in Java Today, ClientJava has collected a pair of deployment horror stories in the entry Why I will never deploy with Java Web Start again. It starts with Keith Lea describing the problems experienced with a class scheduler at Rensselaer Polytechnic Institute, including user-experience complaints, scripting woes, and JNLP file confusion. Kyle Cordes adds a few miseries of his own and advocates a native alternative.

The latest release of the Java platform includes a number of new system monitoring and management features. In Using Java platform management beans, developers May Glover Gunn, George Harley, and Caroline Gough team up to get you started using this API. After a quick overview of the package, they guide you through a number of short practical scenarios to probe the performance of a running JVM.

In Projects and Communities, Danny Coward takes a look "beyond Mustang" and what he sees is Modularity on the Java SE horizon. "It still amazes me that under these competing demands, Java the language and Java the platforms have remained so consistent. But in places, the signs of age and stress are showing. In order that Java can continue to be many things to many people, its natural to look to ways to flex under the stress, rather than snap"

The interview article Java ME Luminary - Hinkmond Wong of Sun Microsystems Ventures "Beyond Google Maps" previews a JavaOne session advocating Java ME for the client side of AJAX applications. "Don't get caught up in the notion that you need JavaScript to do AJAX", Wong says, "a MIDlet running on a cell phone can automatically check a Web 2.0 back-end service and integrate with it using common protocols like REST and XML."

In today's Forums,byhisdeeds says Swing applications cause 100% CPU usage on Fedora Core 5: "I have recently upgraded from FC4 to FC5 and noticed that my Swing applications running under mustang b80 exhibit 100% CPU usage. I tried the SwingSet2 demos and the JColorChooser demo causes the CPU to run at 100%. I tried 1.5.04 and the CPU usage is the same. On a FC4 machine the CPU usage is 90% but that machine is using the MESA libraries. Anybody have a similar experience. I'm running the 2.6.16-1.2080_FC5 kernel with the NVIDIA 8756 driver."

alexlamsl speaks up for annotations in Re: method implementation should not be an @Override?: "You might hate them, but these features help us to trust the code beyond trusting whoever writing "know his/her stuff and think before his/her compile" To have mistakes like these taken care of in a formal and concrete way always helps - at least by using the annotation the team will have one less thing to worry about, which potentially means that they will get along with each other better."

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 :


Leave It Blog

Posted by kfarnham Apr 19, 2006

Apple finally flips the switch on J2SE 5.0

Well, this has been a long time coming, the end of 1.4-by-default on the Mac:

[chrisg5:~] cadamson% java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing)

Not that we haven't had access to J2SE 5.0 on the Mac -- Apple released their first release about a year ago, and it's public knowledge that some developers had access to pre-releases before that. Truthfully, this was not the endless wait that some of the previous Mac Javas have been.

But the big news about the new version, J2SE 5.0 Release 4, is that it "flips the switch", making J2SE 5.0 thedefault for applets and applications. Previously, if I wanted to use 5.0 from the command-line, I'd need to use a command like/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Commands/java. And if typing long paths like that doesn't send you running tomake, ant, or Maven, nothing will.

In fact, playing arount this morning, I'm reminded of the class file format change in 5.0, and how a class I compile withjavac will now no longer run in 1.4.2, so I need to decide on a per-project basis what version of Java I'm compiling and running with. That issue has always been there, it's just more prominent now that java and javac have been re-pointed to the 5.0 version. Anyone managing multiple versions of Java on other OS'es and pointing symlinks or aliases to the various versions has surely had to think about this too.

You realize of course, what the first reaction from the Mac crowd is going to be, right?

So where's Mustang?!

Also in Projects and Communities, Gregg Sporar's weblog entry Field Guide, Take 2 discusses the changes made and new chapters added to the NetBeans IDE Field Guide, 2nd Edition to bring it up to date with all the changes in NetBeans 5.0. As a further enticement, Gregg reveals that the first 400 people through the door at NetBeans Day San Francisco will get a free copy of the book.

In today's Forums,fluxe recalls the user experience of the old "warning applet window" and compares it to Java Web Start in Re: "Java application window" -> "Origin:": "Unsigned webstart apps are just like applets in that they're sandboxed, but the phishing issue is that they appear to be native windows (that's sort of what we wanted with Swing, right?). Perhaps the unsigned webstart apps should contain text that indicates the URL where they came from instead of "Java application window" (cause for concern??) or "Untrusted window" (read: undesired popup) or something like that. To the user it would be obvious that the window wasn't native."

In inserting element tags and values, icoman seeks help with XML marshalling: "Lots of stuff is available on how to create a content tree from scratch and then marshall it out to an XML document. But how do I insert some new tags and values into an existing content tree before marshalling. I already created a package with xjc from an OAGIS schema. I can easily instantiate a class and assign a value. However, occasionally I need to create a few custom tags that aren't on the schema and insert them into the content tree."

John Reynolds covers his interesting lunch conversation with the author of Beyond Java in today's Weblogs. In "Programmer to the Stars" Bruce Tate spotted at swanky North Austin establishment, he writes: "I recently had lunch with 'Programmer to the Stars' Bruce Tate at a swanky North Austin establishment... Bruce was (of course) traveling incognito due to the fatwa issued against him by various Javatollahs for blaspheming the one true programming language."

Joshua Marinacci proclaims I finally fixed my first Mustang bug!, in which "Joshua describes a fix to the Windows Look and Feel for indeterminate JProgressBars"

"Please, please, can we just all work together for a world where the active window keeps focus until the user decides otherwise?" More of Ben Galbraith's call for user experience sanity in International "Focus Abuse Awareness" Month

In Also in Java Today, An important part of the EJB 3.0 spec (JSR-220) is the Java Persistence API, a new standard for object-relational mapping solutions in Java. The article EJB3 Persistence Jumpstart explores the fundamentals of the new API and provides practical code samples to serve as a tool to help developers quickly get started with the API. The article aims to introduce the API and provide a flavor for the powerful capabilities that this new standard introduces.

Are you looking to simplify AJAX code? Bruce Perry has some help in Prototype: Easing AJAX's Pain, which introduces the "Prototype" library. Prototype introduces a number of development-easing shortcuts for JavaScript authors. Further, "Prototype also wraps the functionality of XMLHttpRequest with its own Ajax.Request and related objects, so that you don't have to bother with writing code for instantiating this object for various browsers."

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 :


Going for the One Blog

Posted by kfarnham Apr 18, 2006

Hassle-free LDAP lookups

Today's feature article makes an interesting comparison between JNDI as a means of looking up LDAP information, and JDBC as a means of getting data from a database, noting some common and unpleasant traits: "They require extensive plumbing code, even to perform the simplest of tasks. All resources need to be correctly closed, no matter what happens. Exception handling is difficult."

Pointing out that the Spring framework's Spring JDBC dramatically simplifies database access for the Spring programmer, they wonder why it shouldn't be just as easy to look up LDAP records.

In the Feature Article, LdapTemplate: LDAP Programming in Java Made Simple , Mattias Arthursson and Ulrik Sandberg introduce LdapTemplate, a library modeled on Spring JDBC's JdbcTemplate, for simplifying LDAP programming in Java:

It completely eliminates the need to worry about creating and closing DirContext and looping throughNamingEnumeration. It also provides a more comprehensive unchecked exception hierarchy, built on Spring'sDataAccessException. As a bonus, it also contains classes for dynamically building LDAP filters anddistinguished names.

In Projects and Communities, the Direct Web Remoting (DWR) project, popular for providing "easy AJAX for Java", recently reached milestone 1 of version 2.0. This new version will introduce the concept of "reverse AJAX", in which server-side Java can asynchronously call client-side JavaScript, making interactive applications much easier.

In between the mini-talks at the JavaOne Community Corner, we'll be running a slide show on the screen. We'd like to show pictures of groups of developers from projects, project screenshots, and other visuals of your project or community. To upload your picture, visit the 2006 JavaOne Slide Show document folder.

In today's Forums,vijaysr clears up a web services misconception in Re: JWSDP and Glassfish: "There is no need for you to integrate JWSDP into GF. GF has all JAX* technologies integrated in itself. All apps developed using JavaWSDP2.0 will deploy and run on GF as is (although the app will not be recognized as a webservice by GF because they are not JSR109 compliant). Having said that, the problem you are seeing is because of a late change in the spec. For uniformity, spec was changed to change the API (like for example, AccessType got changed to XMLAccessType). you are probably using the old JavaWSDP2.0 release a while back which is not in sync with GFb42 which has the (almost) final spec implementation."

prunge points out cases where a Java USB library isn't necessary, in Re: Usb support (especially for windows): "Having low-level USB access from Java is similar to having direct access to the physical layer on network cards or directly accessing the SCSI bus. You don't need direct USB access to use card readers or USB mass storage devices - that should be handled by the OS. You should be able to simply create a file in the appropriate section of the file system, write to it, and the OS should take care of the rest."

Claudio Miranda thinks about How your apps look on a napkin in today's Weblogs: I noticed today on nbusers mailing list, an email from Alex Lam L. S. (an active NB community member), that Napkin Look and Feel were updated. Some parts were updated to work with JDK 5 apps. As I use NetBeans 5 with JDK 6 (AKA Mustang), it looks even better. I think it's because of the fonts Napkin uses (Felt Tip Roman).

In Color up, Scherbatsky, Kirill Grouchnikov writes: "Substance LAF has turned one year old during a ten-hour flight over the Atlantic (on April 14) and celebrated this joyous event by providing even more color themes than before."

Joshua Marinacci has some Stuff to Play With: the EnumComboBoxModel, in which "Joshua shows how to display enums in a JComboBox"

In Also in Java Today, the blog We're Niche Players looks at the role of Smalltalk within the broader software community and discusses whether Java "killed" Smalltalk. "I probably have astigmatism when it comes to this event, but I think Java didn't kill Smalltalk. Smalltalk is not dead, as Michael points out. But Smalltalk developers have not become thought leaders, as was asserted. I think we've become niche. And we cannot blame Java."

The SDN previews JavaOne 2006 in their article The Power of Java Hits San Francisco: "Thousands of passionate Java technology advocates, developers, and experts from across the globe will descend upon San Francisco, May 16 to 19, for the 2006 JavaOne conference. This annual exchange of all things about Java technology will include hundreds of expert-led technical sessions, real-world tips and examples, Birds-of-a-Feather sessions, Hands-on Labs, previews and demonstrations of technical advances, and exciting evening events with industry leaders."

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 :


Long Distance Runaround Blog

Posted by kfarnham Apr 17, 2006

Clearing the junk from the programming mind

One of our guidelines to bloggers is to "write on topics of interest to Java developers." That's Daniel's phrasing, and it's excellent because it clears out the truly irrelevant (you don't come to for Miyazaki movie reviews any more than you'd go to to learn about EJB 3.0), but leaves things more open than they'd be if we just said "write about Java".

After all, there's more to being a Java developer than throwing down code. There is a community, a trade, a craft and a lifestyle that comes with this particular career choice, and it's entirely appropriate for bloggers to talk about those aspects in their blogs.

In an interesting stretch of an analogy, David Herron blogs about Garbage Collecting your life, in which he offers "a few thoughts on harmonizing (or garbage collecting) ones life I've gleaned from 13 years studying various spiritual practices":

Corporate life tends to ask a lot of us -- it tends to ask us to imbalance our life towards being a good employee. It tends to ask us to work long hours. Globalization means we have coworkers in distant timezones, and to have meetings with them means intruding the meeting time into our personal life. Corporate life tends to ask us to not express our emotions, and instead to stay on task.

That's the garbage that needs to be collected. Somehow.

When you get home from the job -- what do you do with this garbage? Do you dump it all on your family? Do you stuff it inside, causing distance from your family?

So... how?

The first step is to become aware that you have a problem. Until you recognize the process that's happening, its occurence is irrelevant to you. As soon as you recognize it, then you can begin to take steps towards more balance.

Also in today's Weblogs. William C. Wake previews a novel conference session in Extreme Test Makeover: "'Extreme test Makeover' is a session to be held at the Agile Conference this summer. The idea is that you bring your code and tests, ready to run. We'll have a number of people who are experts in unit testing and acceptance testing, to help you improve and extend your tests."

In Elvis, Meet Portability, Brian Leonard writes: "J2EE 1.4 applications using CMP were a nightmare to port. How portable are EJB3 applications? We know they're easier to develop. This blog proves how easier they are to port."

In Projects and Communities, Chet Haase's blog JavaOne 2006: Aren't You Registered Yet? highlights some of the desktop sessions at JavaOne 2006. "This year, we went out of our way to recruit known Desktop Java developers to submit good, deep technical talks. The responses we got were fantastic, and the result was that most of the Desktop sessions this year are from outside Sun."

The Blueprintsproject has announced version 0.5 of the Java BluePrints Solutions Catalog. This release contains a number of new AJAX components, including an auto-complete text field, progress bar, Google map viewer, PayPal "buy now", file upload, AJAX validator, and more. The catalog also has information on using the new Java Persistence API.

This week's Spotlightis on the JAXB 2.0 Project: which "hosts the reference implementation of the Java Architecture for XML Binding, as defined in JSR-31 (JAXB 1.0) and JSR-222 (JAXB 2.0). The project, part of Project GlassFish, is committed to provide a production-quality implementation of the spec. The JAXB codebase is written entirely in Java and runs on many different platforms."

In Also in Java Today, Frank Sommers has kicked off an Artima discussion of the appropriateness of exploiting database-specific features, at the possible expense of portability, in Logic in Database Apps: Stored Procedures or Java?. "Often nothing can beat the speed and efficiency of executing the right SQL query or stored procedure inside the database. Yet, the notion of pushing computation into the database, and retrieving only the needed amount of data, runs counter to a long-running trend in the Java community."

The db4o database has advantages for certain types of applications, such as embedded and disconnected applications that need a local data store, but it can do more than that. As Jim Paterson writes in Agile Object to Relational Database Replication with db4o, "the new db4o Replication System (dRS) now allows you to join together the different worlds of object and relational databases. Based on Hibernate, it provides the capability to replicate data between db4o and relational databases such as Oracle and MySQL. In practice, this means you can synchronize data between the local db4o database on a partially connected device and an enterprise RDBMS. It also means that your db4o data becomes available on an SQL-friendly platform for ad hoc access."

In today's Forums, Project Looking Glass is making plans in Re: Summer of Code 2006. Replying to the questionWill Looking Glass participate in the Google Summer of Code 2006?,hideya writes: :Yes! We're already talking with them and got OK :) Krishna (the newest team member) volunteered to become the liaison with Google regarding SoC. So, we are looking for mentors and mentees. Is anyone interested "

victorsosa seeks Usb support (especially for windows): "I think we need in java SE 6 support for USB, Firewire and bluetooth. Many devices use especially USB to make comunication like card reader, storage device, etc. I am trying to comunicate to a usb device, but I have many problem and especially for Windows Xp. I saw JSR-80 and JUSB, and both work with linux, there is one JUSB for windows but is very unstable and is a beta api. I think we urgently need an API for usb, bluetooth and firewire, because more and more devices come with these technology (mobile device especially)."

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 :


Ups and Downs Blog

Posted by kfarnham Apr 14, 2006

Clicking the "approve project" button

Lots of us who work on wear multiple hats. For example, along with representing CollabNet on the infrastructure group and among the community leads, Helen Chen is also involved with the JXTA and Sun Grid communities. Similarly, while my main job is as an editor for O'Reilly, I'm also the owner of an incubated project, and a co-lead of the Mac Java Community.

For a long time, the Mac community has primarily existed as a news page, but recently, we've had several projects appear out of nowhere and join the community. This is encouraging, because we were worried that we'd missed the boat -- Mac OS X Java hones closer to Java experience of other platforms, and doesn't require add-on's like Mac OS 7-9 Javas did, which made us wonder whether there really were that many potential Mac-specific Java projects out there. The fact that we're growing and gaining new projects (though still a small community overall), is encouraging.

We're highlighing one of these new Mac community projects in today's Projects and Communities section. The IntelliWO project "makes WebObjects development nicer on IntelliJ." It enables WebObjects-specific files or bundles (such as .wo and .eomodeld files) to be opened from within IntelliJ, adds an action button to open the corresponding .wo component file when its .java class is opened in the editor, and listens for requests on port 4050, displaying a java file or WO component when certain HTTP requests are received

Also in Projects and Communities, new GELC Executive Director Bobbi Kurshan kicks off her blog by introducing herself and askingWhat is an "Open Source Curriculum?" "I want to begin my first blogging experience by asking you what you think 'open source curriculum' means. How does the community develop it and how do we distribute it to make a difference in education?"

The latest Poll asks "For whom do you do most of your programming?" Cast your vote online, then visit the results page for results and discussion.

Ben Galbraith talks up Swing customizability in today's Weblogs. In Finally... Client Properties You Can Use, he writes: "I often use client properties to extend Swing components... and now I can manipulate them in a GUI builder."

Gregg Sporar has YABAHEIITWPMFN, in other words, "Yet Another Blog About How Easy It Is To Write Plug-in Modules For NetBeans. If you are tired of reading about how easy it is to create plug-in modules for NetBeans, then do not read this blog entry. Please click a different link."

In Jini: 300,000 test-executions strong, Nigel Daley writes: "Testing the Jini Technology Starter Kit is a lot of fun. It's also a lot of work."

In today's Forums,rdander has a Mac OS X problem: webapp using JAI causes java icon to appear in dock: "We are using JAI within a web application that is running under jetty. We noticed that when a web method is called that relies on a JAI method call, a Java icon pops up in the dock on OS X as soon as the first JAI method is executed. This is an undesired behavior because it also changes the focus from the application to the dock. Has anyone experienced this issue with using JAI in their application on OS X? Any ideas on how to avoid getting an icon popup in the doc whenever the first JAI method gets invoked would be greatly appreciated."

msandoz asks How do I annotate classes referred to by a list of superclass?"I have a schema that defines a list of a certain type that is abstract in Java. It defines subclasses but when I unmarshal the list, it tries to instantiate the base abstract class, not as the subclasses. Inside the xml file the elements of the list/array are differentiated by xsi:type="x" or xsi:type="y". the list is an unbounded list of type "z". In Java, x and y both are subclasses of z. In the schema, they both use it as a base for "extension". What is the mechanism for deciding to instantiate the base class - as referenced by the list - and the subclass - as defined by the individual elements?"

In Also in Java Today, the interview Programming in Real-Time Specification for Java (RTSJ): A Conversation with Distinguished Engineer Greg Bollelladiscusses the problems that the Real-Time Specification for Java (JSR-1) tries to solve, and how RTSJ makes these problems more manageable. Greg also previews the JavaOne "Slot Car Programming Challenge", which will provide developers a real-world example of real-time programming.

In the second installment of a series from dev2dev, Emmanuel Proulx demonstrates a standards-compliant instant messaging system in An Introduction to SIP, Part 2: SIP Servlets. He writes, "SIP is an extremely promising telecommunication standard, and the SIP Servlet API is a great way to easily and rapidly develop server-side SIP applications."

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 Talk of Creatures Blog

Posted by kfarnham Apr 13, 2006

Giving Java a voice

For a while, I've wanted to run an article on assistive technologies, somethign that is arguably more acknowledged than understood. I've heard from some people over the years with a keen awareness of the issue and a need for more information, often those who are developing for government and are required (by contract or law) to ensure that their application is accessible by the blind, the deaf, etc. Accessibility is built into Swing, but few developers really do anything with it.

These needs kicked off Jeff Friesen's development of a voice-based technolgy that he writes about in today's Feature Article,Vocal Java:

Several years back, I configured a blind gentleman's Microsoft-Windows-based computer to vocally identify the window under the mouse pointer. As he moved the pointer around the screen, the computer spoke the name of the underlying window. I have never forgotten how beneficial that speaking computer was to that gentleman's life.

My earlier work on configuring a Windows-based computer to speak inspired me to create an equivalent assistive technology for use in Java contexts. This technology transparently helps blind users interact with Swing-based GUIs. It also can be used with AWT-based GUIs, provided that those GUIs are made accessible to the technology.

Jeff's article introduces the Java Speech API and then uses a free, all-Java implementation called FreeTTS to provide the needed text-to-speech functionality.

In a sense, this article is a two-fer: it's an introduction both to Java speech technologies and to the ideas and workings of the assistive technologies built into Swing.

James Gosling has a bunch of Bits and pieces in today's Weblogs, mostly related to JavaOne preparation: "We did a run-through of candidate keynote demos last week. They're looking pretty sweet. The SwingLabs folks did a particularly stunning job."

In Constraint-Based Services with RPC, Jacob Hookom offers "a slightly different perspective on procedural RPC and it's possible role with B2B and thin-client applications."

Masood Mortazavi writes More on Java DB: "Currently, a global Sun engineering team of database experts is actively participating in the Derby community and working to incorporate other useful features in Derby: SUR and JDBC 4."

In Projects and Communities, the NetBeans plugin Copy and Paste History Module has graduated from the Java Tools Communityincubator. The project maintains a history cache for Copy actions. "This history cache can be accessed by the user, who can select the appropriate String which will be pasted into the selected editor." It features an adjustable cache size, and be accessed via toolbar, menu, or keyboard shortcut.

Frank Sommers talks up high-level Swing in Spring Rich-Client Platform Release 0.1: "Until recently, Swing applications lacked the high-level abstractions and frameworks that have long eased the development of their server-side cousins. There are now at least three Swing frameworks in development. One of them, the Spring Rich-Client Platform, reached a 0.1 release milestone."

In Also in Java Today, Operations Support Systems (OSS) enable telecommunications companies to manage, monitor and control telecommunications networks. Billing, customer care systems, directory services, inventories, network elements and network management are all Operational Support Systems. Service management considerations include handling new customers and service activation with subsequent service assurance. Service management is always looking to minimize the costs of introducing new services and of changing existing ones. The article Bootstrap Interfaces Definition by Leveraging OSS Common JSR Design and Shared Entities provides users with guidelines about how to extend the OSS Common API which was developed through the Java Community Process asJSR-144. has collected a series of posts on SwingX's "painter" feature in the omnibus post Swing and SWT Painters Roundup, which begins with Romain Guy's weblogSwingX Painters Demo: "Richard Bair recently introduced painters in SwingX, something we have been considering for Swing as well. A painter can be seen as a delegate you can plug into a component to change its appearance. As of today, you can call JXPanel.setBackgroundPainter() to customize the background of any instance of JXPanel". Romain's later posts build further on the idea, and a post from the From Thornapple Trail blog brings the painters into the SWT/Draw2D world.

In today's Forums,sunyi asks What if I want to port my JAXB 1.0.x application to JAXB 2.0? I have recompiled my schema with the newer JAXB 2.0 xjc. But modifying the application code to work with the new bindings is really a confusing thing, since I didn't find any Guide or Docs about the changing points between JAXB 1.0.x and JAXB 2.0. How can we get some useful Docs about the modifications in detail?

rbair gets to the root of build process problems in Re: swinglabs-demos no longer builds out of the box on Mac: "The main problem here is that: * Netbeans makes it easier to manage our build files because it does it for us behind the scenes. * Netbeans makes it easier for us to hose our build files because it does it for us behind the scenes. These sorts of problems only creep up if somebody commits the build files (I don't consider failing tests a major problem -- you can always compile around them). We could have a rule that would in effect be 'Thou shalt not commit build files unless they have been tested on the command line'." 

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 :


Happy Home Blog

Posted by kfarnham Apr 12, 2006

What it takes to keep programmers productive

Joel Spolsky has another interesting essay up, and this one should give developers the warm fuzzies because it says that if you're at a software company, then the whole point of management is to keep you happy and productive.

Specifically, Joel writes of a The Development Abstraction Layer, which exists to eliminate all the implementation details that sit between you and a svn commit.

With a software company, the first priority of management needs to be creating that abstraction for the programmers.

If a programmer somewhere is worrying about a broken chair, or waiting on hold with Dell to order a new computer, the abstraction has sprung a leak.

Think of your development abstraction layer as a big, beautiful yacht with insanely powerful motors. It's impeccably maintained. Gourmet meals are served like clockwork. The staterooms have twice-daily maid service. The navigation maps are always up to date. The GPS and the radar always work and if they break there's a spare below deck. Standing on the bridge, you have programmers who really only think about speed, direction, and whether to have Tuna or Salmon for lunch. Meanwhile a large team of professionals in starched white uniforms tiptoes around quietly below deck, keeping everything running, filling the gas tanks, scraping off barnacles, ironing the napkins for lunch. The support staff knows what to do but they take their cues from a salty old fart who nods ever so slightly in certain directions to coordinate the whole symphony so that the programmers can abstract away everything about the yacht except speed, direction, and what they want for lunch.

Management, in a software company, is primarily responsible for creating abstractions for programmers. We build the yacht, we service the yacht, we are the yacht, but we don't steer the yacht. Everything we do comes down to providing a non-leaky abstraction for the programmers so that they can create great code and that code can get into the hands of customers who benefit from it.

Set aside vanity for a second, and what Joel is saying still makes sense. The business functions (sales, legal, accounting, administration) are still required, but the point of them is to keep the software engineers writing software. Without them, after all, there's no software company. Oh, there may still be activity -- I've known places where much of the company seemed to play "business", in much the same way that children play "house" -- but if that activity fails to keep the software engineers cranking out software, then there's no point to it. Joel has one more nice kicker about what produces software productivity:

A programmer is most productive with a quiet private office, a great computer, unlimited beverages, an ambient temperature between 68 and 72 degrees (F), no glare on the screen, a chair that's so comfortable you don't feel it, an administrator that brings them their mail and orders manuals and books, a system administrator who makes the Internet as available as oxygen, a tester to find the bugs they just can't see, a graphic designer to make their screens beautiful, a team of marketing people to make the masses want their products, a team of sales people to make sure the masses can get these products, some patient tech support saints who help customers get the product working and help the programmers understand what problems are generating the tech support calls, and about a dozen other support and administrative functions which, in a typical company, add up to about 80% of the payroll. It is not a coincidence that the Roman army had a ratio of four servants for every soldier. This was not decadence. Modern armies probably run 7:1. (Here's something Pradeep Singh taught me today: if only 20% of your staff is programmers, and you can save 50% on salary by outsourcing programmers to India, well, how much of a competitive advantage are you really going to get out of that 10% savings?)

Anyways, there's something to show the boss. Let us know how that goes, OK?

The other item in Also in Java Today should be of use to web services developers. After all, you may know web services, but how much do you know about the underlying HTTP standard? With a little tweaking, it's possible to speed up your web service not through snazzy programming on the server side, but by letting HTTP help you out with persistent connections, caching, compression, authentication, and more. Joe Gregorio's "Restful Web" entry, httplib2: HTTP Persistence and Authentication, is nominally about a Python library, but this installment is almost entirely about HTTP headers that are easily manipulated from Java.

In Projects and Communities, NetBeans' Subversion support is catching up with CVS, and Roman Strobl's weblog features a Flash Demo of New Subversion Support in NetBeans. "While the old Subversion support is still available on the update center, the new one will be available soon. You can watch this demo to see how it works at this moment..."

In an article from the Java BluePrints Solutions Catalog, Greg Murray shows how to do Realtime Form Validation Using AJAX. The article shows how you can perform server-side validation without reloading the page, allowing you validate such things as the availability of new user names or to use server-side business logic while the user is still typing

deronj is excited by a Looking Glass development in today's Forums. In 3D in 3D!, he writes: "With the recent release of Nvidia's 8756 driver, OpenGL programs now run *INSIDE* Looking Glass. Check out the this image. This is running lg3d-app on Solaris x86 on an Ultra 20 with a Quadro FX 3000. The two glxgears windows are not still images--they are actually actively moving, running 3D OpenGL programs. Notice that OpenGL windows can be transparent in LG and they also can be slanted. While slanted, the gears on the right keep turning. Best of all, I didn't have to do a thing. Nvidia did it all for me!"

rickjones is trying to figure out an AccessControlException problem in applet: "I'm migrating some web service client code from 1.x to 2.0, and this code has to run in an applet. The problem is that it throws an ExceptionInInitializerError, caused by an AccessControlException somewhere down in resolver. This happens on the first attempt to create the connection object. The code runs fine stand-alone, so this seems to be an applet issue. The equivalent functionality written for JWSDP 1.5/1.6 never had this problem. The applet is signed, and the remote connection is under the same URL as the applet."

Marina Sum announces further open-source releases in today's Weblogs. In Open Source Soon: Key Components of Sun Java Studio Enterprise IDE, she writes: "Today, Sun announced that it will open-source the key components of its Sun Java Studio Enterprise IDE as NetBeans Enterprise Pack on"

Masoud Kalali is Testing some FrameWorks and applications on Glassfish build 40+ part V , And some tips about Application deployment: "In this part I will show you how DWR works fine on GlassFish. Also you will see different methods of web application deployment in GlassFish."

In Rewriting SendRedirect to deal with SSL (or https) offloading, Satya Komatineni writes: "When 'sendRedirect' is used, sometimes the relative URL is translated into an absolute URL using the wrong scheme (http vs https). This articles explores the problem and a possible solution using servlet filters."

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 :


Give It To Someone Else Blog

Posted by kfarnham Apr 11, 2006

Adding scripting languages to Java

So, JSR-223 brings scripting languages to the Java platform. For the sake of rhetorical argument, let's ask the obvious question: "what the heck does that mean?" In the Feature Article,Scripting for the Java Platform, Thomas Künneth explains:

It means Java classes and objects are exposed to a scripting language so that you can instantiate classes and access public members from within a script, using the syntax of the scripting language. This way, scripting languages can control Java applications but also benefit from the wealth of Java class libraries.

OK, great, but continuing our rhetorical argument... why? Granted, there are lots of great Java libraries, but is it such a great thing that we can expose these to various scripting languages? After all, it's not like these languages exactly lack for great library support (as epitomized by perl's CPAN). Thomas has an interesting option here for certain kinds of applications: give your user access to the scripting language:

Embedding scripting languages into your application can significantly enhance the overall user experience of your program. I have already mentioned that the user can automate repetitive tasks. What is even more important is that she will be able combine scripting-enabled Java applications to solve complex chains of tasks using her favorite language.

In today's Forums,jeffhoff is trying something a little offbeat with JDIC in the message Saverbeans - Container? - want to add JEditorPane. "I'm having a little trouble with a vision I have for a Saverbeans screensaver. I want to add something that displays some HTML, but every option (javax.swing.JEditorPane or others) requres some sort of Container such as Frame or Panel. This works fine if I want to use it in ScreensaverFrame, but not in a normal full-screen because there's no container to add to. Is there any way to get / make a container so that I can display a JEditorPane in the full screen version?"

In a differt sort of out-of-container context,spiff wants to know How to deploy a javax.persistence standalone app using Web Start? "I have an out-of-container app that uses javax.persistence to talk to a derby database using the toplink agent jar from glassfish. I would like to deploy this app using Web Start but I'm running across a couple of problems: 1) Apparently, Web Start does not allow one to set the "-javaagent" flag, so there is no way to specify the toplink jar as a java agent. 2) I'd be willing to run this app inside a container (making an ear isn't a big deal). However, my application has bundled native libraries (.dlls/.sos) and I can't find a way to tell the appserver what jnlp file to use so that I can attach the native libraries."

Joshua Marinacci recalls The Summer of 1998 in today's Weblogs. "Some time ago I wrote an article for Slashdot discussing Be, Apple, and the future of operating systems. The mention of Be should indicate just how far ago this was. The other day I decided to try to find the article both to find out if I was at all correct in my conclusions, and to see if my writing has improved at all."

In MS Visio works with Apache Derby, David Van Couvering notes: "A blog shows how Apache Derby works with MS Visio."

Jean-Francois Arcand explains Resource Consumption Management using GlassFish: "Grizzly's Application Resource Allocation (ARA) extension allow an administrator of GlassFish to enable Resource Consumption Management (RCM). This mechanism can be compared to Solaris 10 zone, but available for all platforms supporting Java, and per application inside GlassFish."

In Also in Java Today, Gregg Wonderly says It's time for a new Java I/O API: "The JME connector architecture, for me, is much better designed for arbitrary streams. It's more focused on the I/O and less focused on the protocol/transport details. I'm starting to wonder if we shouldn't press the dolphin powers that be to go after a new I/O API for JSE that brings together the connector architure from JME together with a new Selector API thats more focused on generic I/O sources and less focused on the specific sources of I/O."

The Palm Treo platform is an appealing environment for mobile developers, with its wide screen and keyboard. The article Running J2ME Applications on Palm-powered Devices shows you how to migrate your J2ME applications to Palm OS using the WebSphere Everyplace Micro Environment for Palm OS Garnet (WEME), which "provides a MIDP2.0/CLDC 1.1 compliant run-time with support for file and personal information manager (PIM) integration (via JSR-75) as well as Web services development with JSR-172."

In Projects and Communities, Dan Creswell clarifies some key Jini concepts in the blog Stub, Proxy and Smart Proxy, in which he writes, "these terms come up in many a question on the Jini lists and elsewhere so I figured it was worth a blog to define them," noting both the history of stubs (from rmic to JERI to JDK auto-generation) and the advantages of smart proxies.

The Embedded Java Compilation and Application project, EJC, offers a "a universal extended language(like flash script) embedded in a desktop application, web application, EJB module, [or] mobile service built by java." Its compilation approach looks for "a balance point between a program's run speed and its expansibility."

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 :


Resolution? Blog

Posted by kfarnham Apr 10, 2006

JBoss and Red Hat join forces

So, JBoss is now a part of Red Hat. (linked) has the business story, and JBoss' own Marc Fleury has his personal take on his blog JBoss Signs Definitive Agreement to be Acquired by Red Hat, along with pictures (nice Braves t-shirt, Marc... people sometimes forget that JBoss is in Atlanta, as is your editor).

It will be interesting to see what comes of this. There are, of course, business reasons that range from the combination of major open-source players, to the simple desire for highly-vested insiders to cash out after years of hard work (Fleury says "an IPO was possible and indeed planned but in this day and age of 'Sarbannes-Oxley' the right M&A provides liquidity and reduces much of the risk."). There's also the question of what effect, if any, this will have on other Java application servers, both open source (GlassFish, Geronimo) and proprietary (WebLogic, WebSphere).

The one thing I keep wondering is whether this will eventually lead to the end of JBoss on non-Linux (or, for that matter, non-Red-Hat) platforms. Since it's written in Java, it shouldn't matter. Shouldn't. But will you be able to get support for running JBoss on Windows, Solaris, Mac OS X, FreeBSD, etc. in a year or two? My guess is yes -- what they're selling is support contracts, not obsessive fealty to a given OS -- but we'll have to see just how much JBoss stays as it is, and how much it yields to Red Hat's values and priorities.

The other item in Also in Java Today, should help Java programmers who are trying to bring some sanity to AJAX. Java has always supported concurrency among threads, starting with the synchronized keyword and the wait() and notify() methods of the Object class. J2SE 5.0's addition of an excellent concurrency package is just icing on the cake. But what if you didn't have any of these tools, and you needed to prevent concurrent access to shared data models? Well, you might well be writing an AJAX application, and discover that JavaScript is perfectly happy to let two threads access the DOM at the same time. In Mutual Exclusion for AJAX, Bruce Wallace introduces a set of techniques that allow you to set up critical sections in your AJAX code and defend them against use by multiple simultaneous threads.

In this week's Spotlight, the latest SDN Ask The Experts session focuses on Java Web Start, which allows for one-click deployment of Java software over the network, with clients receiving automatic updates of your code after the initial download. All week -- Monday, April 10 to Friday, April 14 -- Java Deployment in J2SE team members Andy Herrick, Thomas Ng, and Cheng Dan will be available to answer your questions about this popular solution for Java distribution and deployment.

In Projects and Communities, the Java Distributed Data Acquisition and Control (JDDAC) projecthas reached version 1.1. "This release includes improved support for J2ME builds, the 1-wire interface from Dallas Semiconductors, and a REST interface for the measurement portal." The new version is available from the downloadspage or from CVS.

The JSR Communityhas collected several JSR's going through maintenance reviews that end on April 24th. Among these are Java TV (JSR-297), Content Repository for Java (JSR-170), Java Management Extensions Remote API (JSR-160), and Java SE 5.0 Release Contents (JSR-176).

Ethan Nicholas reveals the power of Creating a Service Provider Interface in today's Weblogs. "A Service Provider Interface is like magic -- just drop a special JAR file onto the class path, and suddenly you have extra capabilities. But how do you actually make one?"

In JXTA at 5 Years Old, Daniel Brookshier writes: "JXTA is just about to turn 5 years old. Hard to imagine. Those internet years at 7 to 1 seem to be in play, at least with my memory. A lot has happened in 5 years."

Davor Cengija shows how to go about Configuring Ivy to fetch Luntbuild artifacts: "Luntbuild is a build automation and management tool. Ivy is a dependency manager. Luntbuild produces artifacts, Ivy uses them. See how."

In today's Forums,alspaughb is looking for advice on Generating DB Key Values: "Most databases have some sort of autoincrement or sequence generator feature that can be used to autogenerate serial numbers to be used as primary key values for newly inserted rows. How do I set up a DataTable to take advantage of that feature when I sync inserted rows with the database? In general, is there a recommended strategy for how I should be generating serial numbers for primary keys? Should I be doing it in code, or can I let the database generate those values?"

Following the announcement of a 5.0-to-1.4 backport of Hans Muller's JXMultiSplitPane, MulitSplitLayout, Patrick Wright seeks to get them into the SwingX project in Re: New swingx classes: JXMultiSplitPane, MulitSplitLayout: "Would you like to sign the JCA? If you did, you could check your code in the incubator and we could create a tree or branch of the code for backports to 1.4. We talked about doing this before, after the 1.0 release, there just aren't enough hands to work on it. It would be great to have it checked in, though, because not only could people use it, but we could keep it in sync more easily with the main code branches."

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 :


So Quiet in Here Blog

Posted by kfarnham Apr 7, 2006

What Java topics are we overlooking?

I took a look at O'Reilly's Java page the other day to tally up the number of Java books they currently have in print. The answer? 90. And that's in-print: it doesn't count previous editions, or out-of-print titles like Jini in a Nutshell (sigh) or Java AWT Reference (the entire text of which is online).

So here's a question? Are we done? Have we covered all the topics that deserve books, and now just need to do updates and keep an eye out for the next big thing?

Let's turn this into a game. Pretend I'm the weekly book review meeting and your a proposed Java book. How do you convince the publisher that not only are you important enough to commit a book to, but that you'll actually sell enough copies to cover your costs? That second point can be a killer -- there are niche topics with highly-motivated developers and potential readers, but if the niche is too small, even selling to 100% of the potential audience might not be good enough. And Java is famous for its schisms and orthodoxy splits (EE vs. SE vs. ME, Spring vs. EJB, Swing vs. SWT, etc.) that divide the potential audience. On the other hand, what topic is so broad that it's not already covered by one of these 90 books already in print?

Tricky, huh? And yet there are almost certainly important, and potentially successful topics, that could deserve to be books. What are they? Drop a note in the comments. And come to think of it, if you think of topics you'd like to see covered in feature articles on, we'd love to hear from you about those too. Thanks.

Santiago Pericas-Geertsen talks about Sun StAX Parser at in today's Weblogs. "The Sun Java Streaming XML Parser (SJSXP) FCS version 1.0 is now available in binary and source forms from This parser is an implemenation of JSR 173, submitted to the JCP by BEA. We liked this parser and the StAX API so much that we've made it a key component of our Web services stack in Glassfish."

In About that trust store ..., Gregg Sporar writes: "Want to test a web service with the NetBeans IDE but you talk to it with HTTPS? Not a problem."

Finally, Vikram Goyal shares some lessons learned in Managing estimation failures: "We all do fail in our estimates one time or the other. The problem is not in the fact that we provide an incorrect estimate, but if we don't manage the fall out better."

In Also in Java Today, the FreeBSD project has announced the availability of J2SE 5.0 JDK and JRE binaries for FreeBSD 5.4 and 6.0 running on the i386 architecture. "The FreeBSD Foundation has a license with Sun Microsystems to distribute FreeBSD binaries for the Java Runtime Environment (JRE) and Java Development Kit (JDK). These implementations have been made possible through the hard work of the FreeBSD Java team as well as through donations to the FreeBSD Foundation that supported hardware, developer costs, and legal fees."

Want to write an instant messenger, voice, or video chat client, or an internet game? The process begins with the initiation of a "call" between the participants, and if you want to work with the established standard in this realm, you'll want to learn SIP. In the dev2dev article An Introduction to SIP, Part 1: Meet SIP, Emmanuel Proulx exposes the anatomy of a SIP call and introduces some of the Java frameworks that work with SIP, laying the groundwork for a part two that shows off a chat-room application written with the SIP servlet API.

The latest Poll asks "Have you learned a dynamic language?" Cast your vote on the front page, then visit the results page for results and discussion.

In Projects and Communities, the Savant project has released an alpha of version 2.0. "Savant is a dependencies framework that allows complex dependencies to be managed," and can be used as part of an Ant build or as a stand-alone tool. "The main focus of this release was to get the idea out there and take feedback and bugs from the community."

The JDJ article Sun Starts Mobile Wireless Java Portal reports on the launch of, that offers Java applications for purchase and download. "Subscribers from more than 250 wireless carriers worldwide can access the new website via a web browser on any Java-powered mobile device."

In today's Forums,joesephjava is trying to figure out a Fedora Core 5 and Java 6 applet plugin problem Using Fedora 5 OS. I downloaded the weekly snapshot of the JDK read a website that showed how to get it to work and it does. I can not get the Java 6 applet plugin to work. I CAN get the Java 5 applet plugin to work by downloading the JRE and doing [...] Has anyone succeeded in getting the weekly Java 6 JDK snapshot applet plugin to work? If so how?


Did Ye Get Healed? Blog

Posted by kfarnham Apr 6, 2006

What not to try, catch, or throw

I don't know why, but I enjoy the heck out of anti-patterns. It's nice to see when someone recognizes bad ideas for what they are. Well, maybe not a bad idea, per se. If a pattern is a good way to handle a common problem, then an anti-pattern is a badway to handle a common problem.

And don't tell me you don't see these anti-patterns all the time: spaghetti code, lasagna code, feature creep, etc. It's easy to think through failed projects, identify what went wrong, and know that it would be all too easy to make the exact same mistakes again. And that's the value of the anti-pattern: it shows how a given reaction to a problem may seem appealing, and how it has been shown not to work in practice.

Today's Feature Article, applies this to the process of dealing with exceptions, a constant point of frustration and contention among many Java developers. With so many best practices documents offering contradictory advice, maybe we can at least agree on what not to do. Tim McCune'sException-Handling Antipatterns identifies a dozen worst practices for exception-handling, from the obviously-wretched "Catch and ignore" to the subtle side-effects of multi-line log messages.

In Also in Java Today, JBoss' Jason T. Greene relates a bizarre story of Taking RMH's JAX-WS Challenge. Replying to Richard Monson-Haefel's harsh evaluation of JAX-WS, Greene took up the rhetorical challenge to use JAX-WS to connect to a real-world web service such as Amazon or eBay. "So, in order to redeem JAX-WS, I decided to show just how easy it is by taking his challenge. I posted directions for a client that communicates with eBay in his blog comments. To be honest, I never expected to hear anything; however, to my surprise, he literally ate his words. I have to hand it to him for that. Although, he didn't have to go that far (I'm not that mean), a simple correction would have been nice."

Is nearly everyone adopting a service-oriented architecture for their enterprise project? According to the article Survey: 75% of Java Devs Looking at SOA, "more than three-fourths of enterprise Java devs are now working on (or plan to work on) SOA enterprise projects, according to a survey of 500 Java devs just released. The survey also found than some 30% of Java devs want to connect legacy C++ applications to their SOA infrastructure."

In Projects and Communities, Nigel Daley hopes to save you some CPU-time dollars with the blog Compute Server: locally debug your Sun Grid app. "This execution environment approximates the Compute Server execution environment on Sun Grid, with the exception that only one task will be executed at a time."

The latest episode of the GAME ON! Podcast features Sun Chief Gaming Officer Chris Melissinos discussing the recent Game Developers Conference, next-generation gaming consoles, and the Video Games Live concert at GDC, plus an interview with Jeff Kesselman, lead architect for Project Darkstar, Sun's new gaming server middleware project.

Tim Boudreau shows you how to Deliver your beans in a NetBeans module (the hard way) in today's Weblogs: "In Monday's blog, I announced a webstart-enabled standalone tool that will generate a NetBeans plug-in module that takes a JAR of Swing components, putting them on the component palette for users to drag and drop. Here I describe how to do the same thing using the plug-in development tools inside NetBeans."

In Product Architecture from a software perspective, John Reynolds writes: "I recently worked with an Enterprise Architecture team to develop a "holistic product architecture", but quite frankly we were not sure what "product architecture" meant. Here's what we came up with."

Davor Cengija has some advice on how to Install Instantiations RCP Developer on Linux: "Instantiations offers RCP Developer installer for any platform, but when you try to install it on Linux it fails. But you can install it on Windows and use it from Linux."

In today's Forums,ksak clears up some GlassFish naming conventions in the thread Re: Confused about java:comp/env: "java:comp/env is a special context available to Java EE components. It provides the abstraction that each web application and ejb component has its own private naming context. The 'java:comp/env' string is only used in the actual lookup() call. When defining the component dependency, it's up to the developer to pick a logical name that represents the dependency within its component naming context. There are recommendations for how to name things, e.g. prepending 'jdbc' or 'ejb' but those are only guidelines. The developer can choose any name he/she prefers."

Desktop developers are waiting to see what happens next in RE: databindings and org.jdesktop.binding.swingx: "You should be aware that databindings is the subject of JSR227. I suspect that there are quite a number of people looking forward to an announcement from that group - I for one have an application 'on the back boiler' waiting for some news - I'm reluctant to commit too much effort to the existing codebase since we are told that it could change quite significantly."

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 :


Moondance Blog

Posted by kfarnham Apr 5, 2006

Why can't Java talk to my Dance Pad?

OK, someone please stop me from having to write this as a native Mac app...

I'm working on some stuff for the Distributing the Futurepodcast, and I have some phone and Skype interviews that I'd like to transcribe before I write my script and plan my edits. When I worked at CNN, I'd occasionally be assigned tape logging duty, which meant I'd spend the day throwing tapes into a deck and transcribing them. To go fast, a logger needs to keep his or her hands on the keyboard, instead of reaching up for the jog wheel. So the tape deck had foot pedals which could run the tape forward or backwards, allowing you to control the deck with your feet while you kept your hands in a typing position.

I'm in pretty much the same situation, except that the motion I want to eliminate is mousing over to the audio's scrubber bar to go backwards and forwards. I want to create a GUI that has an audio scrubber (from QuickTime for Java and/or JMF [to support Linux, which can't run QTJ]) at the top, then a line for the current media time, then a big text area to type into. A hot key will copy the media time into the text area, so you can easily log when specific sound bites occur. The key is being able to control the media scrubber with my feet.

You'd think that the lack of foot control hardware would be the blocker, but... I have several Dance Dance Revolution dance pad controllers, and a PlayStation-to-USB adapter that works with StepMania. It may sound crazy, but Microsoft is already experimenting with just such an input method. So, with a little experimentation, I should be able to map the arrows to some sensible actions (play, rewind, stop, go back 5 sec., etc.), convert those into corresponding method calls on the audio, shove the pad under my desk, and start logging.

As it turns out, the blocker is not the existence of hardware, but rather seeing the dance pad from Java. I tried JInput, with some guidance fromChapter 28 of Java Programming Techniques for Games, but the Mac version of JInput seems to be a total no-op. Running theControllerReadTest demo brings up a single empty window with no menus or buttons. Going lower level, there's also JSR-80, the Java USB API, the spec for which finally got released last year (five years after the JSR was approved and the expert group formed), but so far as I can tell, there's no Mac implementation of this anywhere out there.

So... it's looking like if I'm even going to write this at all, I have to go native. Or write it in Java and not have it run on my own machine, which is kind of pointless. It's a shame, because this seems like it would be a curiously practical app for what I need to do.

Anyways, sort of a whiny blog today, sorry about that. If you know of any working Mac implementations of JInput or JSR-80, I hope you'll post a link in the talkbacks. Thanks.

In Also in Java Today, following up on recent attempts to define software architecture and clarify its value, Artima's Bill Venners writes that Software Architecture is Leadership: "I think one of the most important ways to think about architecture is that it is an opportunity to provide leadership. The architecture embodies the decisions of the architects, the leaders, on how things should be done in the project. The architecture should make it easy for people working on the project to do things the right way: the way the architects believe things should be done. In other words, instead of just saying that things should be done a certain way, the architects should design architectural systems and structures that guide the team down that path."

After two excerpts that exposed the Java APIs to the Zeroconf/Bonjour/Rendezvous API, ONJava wraps its look at Stuart Cheshire and Daniel H. Steinberg's Zero Configuration Networking: The Definitive Guide with a thorough code example. Zero Configuration Networking: Using the Java APIs, Part 3 features a self-networking tic-tac-toe game, in which each client advertises itself to the network and discovers potential opponents. Look past the details of the Xs and Os and this could be the foundation of any Zeroconf-enabled game or other network application, written in Java.

Ethan Nicholas proposes a Java 2 Browser Edition in today's Weblogs: "Java isn't usually considered to be a serious alternative to rich client technologies like Ajax and Flex. And that's a shame, because it is by far the most powerful of them. What would it take for Java to become a serious contender?"

Kito D. Mann runs some interesting numbers in Job Stats, Indeed: "Since I'm pretty heavily immersed in the world of Java web frameworks, I had to run the following query: ((jsf and java) or "javaserver faces"), ruby on rails, tapestry and java, webwork"

In Headless toolkit basics, Artem Ananiev offers "A short overview of a special AWT toolkit called 'headless toolkit' which can be used in a system with display and/or mouse and keyboard missing."

In Projects and Communities, the article Using Java DB in Desktop Applications describes how to download, install, integrate, and deploy Java DBwithin desktop Java technology applications. A demo application called Address Book demonstrates how to work with Java DB as an embedded database.

The Javapediaentry for SIP collects items of interest to developers working with the Session Initiation Protocol, including feature articles, open-source projects, and related JSR's. As with all Javapedia pages, you can click the "edit" link to add your own resources to the page.

In today's Forums,cayhorstmann is wondering how to Configure a LDAP database for use in JSF? "I'd like to configure an LDAP database so that it can be accessed in a JSF app. I'd like the JSF app do a JNDI lookup, using the same style one would use to get a JDBC resource. How do I populate the GlassFish JNDI to do this? (Note: I am NOT trying to use the directory for role-based security. I know how to do that, through the Security/Realms part of the admin interface). I think I need to do JNDI/Custom Resources. But what factory class do I use? Is there a factory class that will locate an LDAP server, given the port and connection parameters? Do I need to write my own? If so, is sample code available? How do I deploy it?"

Answering the question Which lossless JAI supported image format would be the fastest to load pixels from if the destination images requested are of random size and scaling?, the post Re: [JAI] Optimal speed image storage format says: "Look into the Raw format. It may be counterintuitive but if there's a lot of random accessing to be done, an uncompressed, raw format can be faster than dealing with compressed data, despite the added disk I/O time. A lot easier too."

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 :


Have I Told You Lately Blog

Posted by kfarnham Apr 4, 2006

Stripping away the SOA hype

There's been so much hype about Service Oriented Architecture that sometimes it's hard to see that there really is some point to it, other than hawking a bunch of commercial wares. On this, David Walend writes:

Unfortunately, most developers find it hard to cut through this tide of hype to learn just what service oriented architecture is about. Forests of three-letter acronym (TLA) standards sprout, bloom, and are overgrown before any of us can learn enough about them to decide if they are appropriate for our own projects. The standards compete for our attention and allegiance. Further, most articles and presentations focus on a specific TLA, and how to make some legacy system fit within someone else's favorite web service plumbing. "Legacy" seems to mean "the software that has to keep working to keep the system alive and useful to the business."

In the Feature Article, Understanding Service Oriented Architecture, David spells out the specific characteristics that characterize SOA's, walking through how each works and how it provides value to the whole. "Creating encapsulated, loosely coupled software that obeys a clear contract requires discipline," he says, "but shows immediate benefits."

In Projects and Communities, for those J2ME developers working with the Connected Device Configuration (CDC) prevalent on smart handsets and PDA's, the NetBeans team has released the NetBeans Mobility Pack for CDC. As many of these devices use an AWT or Swing subset, the CDC mobility pack allows you to use Matisse to bulid your GUI

With Bluetooth introduced to J2ME by way of JSR-82, the opportunity exists to create small, ad hoc "personal area networks" (PANs) on the fly. The article Add a Bluetooth Text Protocol to J2ME Apps shows how to roll a device discovery, pairing, and messaging implementation, allowing participants to exchange arbitrary text messages.

In Also in Java Today, ONJava blogger Robert Cooper writes: "The advent of the invokedynamic JSR, as well as the continuing RoR vs whatever hype and framework proliferation in Java has brought a question to the forefront: where is Java going? I have some ideas that I would like to express. This isn’t necessarily a highly structured treatise, but more of a braindump." In Dreaming in Java, he takes on Java's XML handling, "design by contract", JRE baggage, applets, Swing, working with other languages, and more.

Last year, Joel Spolsky wrote in the introduction for The Best Software Writing I: "The software development world desperately needs better writing. If I have to read another 2000 page book about some class library written by 16 separate people in broken ESL, I’m going to flip out. If I see another hardback book about object oriented models written with dense faux-academic pretentiousness, I’m not going to shelve it any more in the Fog Creek library: it’s going right in the recycle bin. If I have to read another spirited attack on Microsoft’s buggy code by an enthusiastic nine year old Trekkie on Slashdot, I might just poke my eyes out with a sharpened pencil. Stop it, stop it, stop it!" The book was a hit, so he's seeking new nominations for great writing to be featured in Best Software Writing - Volume II... maybe there's a article or weblog you'd like to nominate?

In today's Forums,stvconsultants complains about Re: Glassfish hogging 100% when trying to shut down post PermGen space runs: "I'm guessing it's one of those hard to track down memort leaks due to classloaders not getting dereferenced. Increasing PermGen should give me a longer time between failures and, as it's failures during development redeployment that matter to me, that will fix the problem for now. Long term, somebody needs to track down where the classloaders are having references kept from."

A message in the thread Re: Java3D 1.5 and Mac OS X? claims that JOGL has poor Mac support: "This is not true. A check with our JOGL team, JOGL has had complete pbuffer support for a very long time. Not on all platforms. Mac is the missing one right now. I've been porting the RI code for the past couple of weeks on the Mac to use AGL and SWT and in general for the past 3 months on all platforms for SWT so I've got a reasonably good clue as to what is there. To confirm, I just went back to look at the JOGL RI code and the pbuffer classes (MacOSXPbufferGLContext and MacOSXPbufferGLDrawable) are pretty much just a skeleton."

David Herron looks back on a successful campaign in Mustang regression contest is now over in today's Weblogs. "This has been an amazing experience. We started this contest without a clue what would come of it. Thankfully the management trusted that something useful would result."

Tim Boudreau asks Got JavaBeans? Here's a way to distribute them... "There are a lot of Swing components out there - the problem is how to get them to people so they can use them. Here's a new way to distribute them. It's a tool that generates a NetBeans plug-in from a JAR, adding all the JavaBeans in it to Matisse's (aka the form editor's) component palette, in your very own category."

In JGroups demos on SuSE Linux 10.0, Davor Cengija writes: "If you need reliable multicast communication in Java, then you need JGroups. But if you run SuSE Linux 10.0 you'll have troubles running its demos."

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 :

JavaOne sneaking up?

If you're planning on attending JavaOne 2006, you are aware that it's just six weeks away now, right? The move to mid-May from its typical June spot is sure to catch some people just a little off-guard. In fact, the early registration discount runs out the week after next, so if you need to get your boss to cover your trip, this might be the week to be nice to him or her. :-)

Your editor needs to be out there for a number of reasons, related to the various hats he wears -- editor, project owner, community co-lead, ONJava editor, etc. -- and with my local airline running a one-day sale today, I'm going to probably book my travel as soon as I post this blog.

We will again be running the community corner in (barring any last-minute surprises) a bigger spot than last year. This will give us even more room for the individual project presentations that were such a hit at last year's show. This is your chance to do a 20-minute mini-talk on your project, complete with a big monitor for your slides and comfy chairs for the audience. This year, we'll also be distributing papers and abstracts from the mini-talks at the booth, so it's your chance to publish a paper at JavaOne, even if you weren't approved for one of the big sessions that went out in the conference program last week.

As a reminder of our JavaOne activities, this week's Spotlight, features the Community Corner 2006 wiki page, which collects all the essential information relevant to our presence on the pavilion floor. You can use the wiki to propose a mini-talk, volunteer to work at the booth, and (soon) upload pictures for our slideshow.

In Projects and Communities, the JSwarm project is building "a heterogenous swarm of small (affordable) autonomous robots which use embedded Java." They plan to show a working swarm at a JavaOne BoF, and have a collection of Lego robot designs online as images and LDraw models. The initial members include two teams from the University of Utah's CS4500 class, but anyone is welcome to join.

A new tutorial on the Apple Developer Connection walks throughBuilding a JNI Unversal Application with XCode. "Using the JNI, your Java application can access a user's Address Book, make Spotlight queries, take advantage of Core Image and Core Video, and leverage many other rich features unique to Mac OS X."

In today's Forums,bodiam has some GUI concurrency advice in Re: Threads in GUIs for 1.5: "Using Executors, and ExecutorServices in combination with a GUI and adding tabs, etc, will probably not get you very far, unless you create your own ExecutorService. Threads started from the GUI inherit the priority of the GUI, which always runs at a high (normal or high, I'm not sure) priority to give the user a fast feedback on his actions. When you start multiple (or, as I do, a thread or 40), they all run with the same priority as the GUI, causing the GUI to respond slow, or not at all."

zafoe seeks more information on a cool SwingLabs/NetBeans widget in Looks cool - where's the documentation? "I was looking for a widget like the collapsible pane used in Netbeans 5.0 profiler. I found swingLabs, and it looks cool, but I cannot find any documentation other than the API's. Is there any? I specifically want to know about the task pane and the collapseable pane ... namely how to use them properly. Any info would be much appreciated."

Bhakti Mehta has a Overview of Web Services Reliable Messaging in today's Weblogs: "In the real world, challenges are encountered in delivering messages. There can be network/connection problems. Consequently, messages can be lost or delivered out of order. Web Services Reliable Messaging (WS RM) provides a mechanism to ensure a layer of reliability between potentially unreliable or intermittently connected networks."

Arun Gupta has a preview of Project Tango @ Java One 2006: "JavaOne is 6 weeks away and I can see the momentum building up within Sun for the slideware, demoware, machines etc. As it gets closer, everything starts revolving around JavaOne. I've been involved with Project Tango since it's inception and here is the list of related technical sessions and BoFs that will be presented.

In The NetBeans golem...revealed!, Tim Boudreau writes: "On one of the NetBeans lists, I mentioned that if you work in Sun's Prague office, and you do a CVS commit that breaks the build, you get to have this ugly ceramic "golem" on your desk, possibly for weeks, until someone else breaks the build. Someone went so far as to file a bug demanding to see the here it is..."

In Also in Java Today, the BusinessWeek article An Open-Source Lightning Rod profiles JBoss' Marc Fleury, saying "Marc Fleury has taken JBoss to the top, but he has alienated many along the way." A companion interview The Bad Boy of Open Source goes on to say "Fleury is a pioneer in spawning viable businesses from free software. But he's also alleged to be abrasive, paranoid, controlling, and a credit hog." Fleury responds to all of this in his latest blog entry.

"The hardest part of getting started with a Java application is, well, getting started. So many logistical decisions have to be made up front. Where should the Java source files go? Where do I place unit testing? Where will we store dependency .jars? How will the project be built, documented, tested, and deployed? The choices made at this stage will follow a developer for the rest of the project." Chris Hardin suggests that instead of having to become an expert in all these realms, you can let Maven do the driving. In Maven 2.0: Compile, Test, Run, Deploy, and More, he looks at the new version of this popular project building/testing/reporting/managing toolkit.

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: