Skip navigation
kfarnham

Warning Blog

Posted by kfarnham Sep 30, 2005

java.net downtime this weekend

As you've hopefully seen in the broadcast message on the front page and all project pages, java.net will be unavailable during some downtime this weekend. The site will be unavailable on Saturday 10/1 from 8 AM PDT to 8 PM PDT (1500 - 0300 UTC). We'll be looking for you on the other side of the downtime.

Your editor is writing from the producer's desk at O'Reilly Media in Sebastopol, CA, following a two-day meeting of the java.net infrastructure group. We spent a good part of yesterday planning for JavaOne 2006, which occurs a month and a half earlier than last year (it's in mid-May instead of late June), and thus requires everyone to move up their planning. Our goals include not only an expanded presence and awareness at the conference, but also greater accessibility for those not at the conference. We're still brain-storming, but we hope to have some forms of two-way communication at JavaOne 2006: not just news and commentary flowing out, but your input coming back in and having an effect during the conference itself. I hope you'll join us and suggest your ideas as we plan for this event.

 

In Projects and Communities, program information for the Ninth Jini Community Meeting, to be held October 19 and 20 in Chicago, has been published. Schedules for Wednesdayand Thursdayare available, along with abstractsof all the sessions. Registrationfor the meeting is still open and is free.

The Javapediaentry for AJAX collects articles defining and explaining this new client-side technology, including its Wikipedia entry and J2EE Blueprints catalog entry. It also lists commercial and open-source software that enables AJAX-style programming, including java.net's DWR project.


In today's Forums,jseltzer notes that J2SE 5.0_05 has significant performance improvements: "I just noticed something with 1.5.0_04. I'm not sure how long this has been around but I think it's way cool. I ran the swingset demo on my windows xp machine and also launched the windows task mgr. I was surprised to see what happened when I minimized the demo. The memory it was using dropped from 30 megs to 1 meg and stayed there. I know what you're thinking. If I restore the window, I'll have to watch it slowly repaint.....Wrong. It restores perfectly without any delay to user interaction. By the way, I noticed that internet explorer behaves the same way. Am I crazy or is this a new performance feature? Having multiple java desktop apps running at the same time looks possible now."

philrace has some explanations Re: Java2D font rasterizer status: "Basically we implemented an MS extension to the TrueType standard that MS implemented and used in a couple of key fonts. That was the major fix. There are still some open issues for us to pursue. Definitely issues in key UI fonts such as Tahoma, Microsoft Sans Serif, and the C* fonts (I forget all their names) that are coming up in Vista will be of particular priority. Very specific reports of point size (indicating java or native size) and font and O/S platform help a lot. PNG images help even more..."


Today's java.net pollasks "What part of the Java version numbering convention bugs you the most?" Cast your vote on the front page, then visit the results page for results and discussion.


In today's Weblogs, Eamonn McManus shows off Mustang debugging wizardry in Mustang JDK now includes attach-on-demand: "The Tiger JDK introduced a nifty feature whereby you could run an application with -Dcom.sun.management.jmxremote and then later connect to it using the jconsole tool. That allows you to see the JVM's instrumentation (memory, classes, threads) plus any JMX instrumentation you've defined yourself. As Alan Bateman describes, with the Mustang JDK you can now attach jconsole to any application, even if it wasn't launched with the magic-Dcom.sun.management.jmxremote incantation."



 

In Synth Subtlety, Style that ComboBox @#!, Romain Guy works through some look and feel issues: "Synth is quite often subtle to use. I just spent a couple of hours trying to fix a bug and it appears it was not a bug."

"Is your JSP editor giving you headaches? I've got just what the doctor ordered." The cure is in Brian Leonard's NetBeans - Take 2 and Call Me in the Morning.


In Also in Java Today, one desirable trait of a desktop application's "splash screen" is to come up as early as possible, providing feedback about the application's startup and to hold the user's attention for a second while the app initializes. You can do this with Swing, but then you have to wait for both the JVM and Swing to load and initialize. Another option is coming: according to the SDN article New Splash-Screen Functionality in Mustang, Java SE 6 "provides a solution that allows the application to show the splash screen much earlier, even before the virtual machine starts. Now, a Java application launcher is able to decode an image and display it in a simple nondecorated window."

"Answering the question 'What is open source?' used to be a lot simpler than it is today." Open Source for the Enterprise author Dan Woods says that open source software is usually released under licenses "that ensure that the source code is available to everyone to inspect, change, download, and explore as they wish." Usually. Things have gotten more complex, and in What Is Open Source, Dan explores what the term now means, and whose definitions are different.


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



java.net downtime this weekend  
kfarnham

Burnout Blog

Posted by kfarnham Sep 29, 2005

Alternatives to too-complicated web app frameworks

It's day two of the java.net summit out here in Santa Clara, with the executive board / infrastructure team looking at the site, considering feedback from community leaders, and planning out our big ideas for the next year and beyond. It will be a while before you see any of this on the site, but rest assured that we're not standing still -- java.net will continue to change and adapt to better suit the needs of its members.

Speaking of change, it's hard to see any more profound change in the realm of web applciation development than the movement from top-heavy formal specs like EJB 2.1 to more nimble alternatives. Ruby on Rails is the poster child here, and it has inspired Java developers to seek out frameworks that give them the ability to get web apps up quickly, without having to change languages and throw out everything they've learned in the last few years. Not that RoR was the first, mind you, it's just that it best typifies some of the ideas of "convention over configuration", which Oliver Keissler employs in his web ap framework, "karma":

The karma frameworkwas created to tackle the problem of unnecessary complexity, to reduce the amount of configuration needed to get simple things working. The key is that it uses a set of conventions to find stuff. This approach is called convention over configuration. This is nothing unusual these days but when I started the framework about a year ago, this approach was not widely implemented.

In the Feature Article, Developing Content-Driven Web Apps with karma-jcr, Oliver introduces the karma framework by way of a "news page" application, showing how you can use the data-persistence piece karma-jcr to quickly add CRUD (create, retrieve, update, delete) functionality to an MVC-oriented karma web application. Add just a little JSP for the client side and you have a functional web application up and running.


In Projects and Communities, the NetBeans Community has announced the release of NetBeans 5.0 Beta, which brings significant new capabilities to the NetBeans IDE, Mobility Pack, Profiler, and the NetBeans Platform. IDE changes include support for plug-in development and rich client apps based on NetBeans, the Matisse GUI builder, redesigned CVS support, Weblogic 9 and JBoss support, and more.

Apple Technical Note TN2110: Identifying Java on Mac OS X describes how to use system properties to determine the version of Java currently being run, as Mac OS X ships with 1.3.1 and 1.4.2 implementations and has J2SE 5.0 as an optional download. A series of tables shows the version strings that may be encountered on various versions of Mac OS X.


In today's Weblogs, Vikram Goyal is highly suspicious of the news Nokia joins Eclipse for J2ME development: "Nokia has decided to join the Eclipse project as a board member and a strategic developer, whatever that means. Sorry, I know what it means..."

John O'Conner is carrying out a very public investigation into Mustang development in Contributing to Mustang: An Experiment Begins: "Sun wants the community to contribute to Mustang development. How easy is it to contribute? Can I do it? Let's experiment!"

In Application Servers or IDEs running on PSP?, Ludovic Champenois teases "GlassFish Java EE 5 or NetBeans 5.0 Beta running on Sony PSP? I wish..."


In Also in Java Today: "Wouldn't it be nice to combine the declarative power of Apache Ant build scripts and its rich cross platform library of tasks with the flexibility and dynamism of BeanShell, a Java scripting environment? This is actually possible with less than 150 lines of BeanShell code." Pankaj Kumar's Supercharging BeanShell with Ant explains how to "execute any Ant task from within a BeanShell script, bringing the rich and growing Ant task library to BeanShell programmers and, in the process, vastly increasing its potential for serious scripting. This kind of bridging is good for Ant as well, allowing Ant tasks to be used within familiar control and looping constructs."

"The Observer Pattern is also known as a publisher and subscriber design pattern. The pattern is useful when you have one publisher and many subscribers (one-to-many) that are interested in the publisher's state or messages." In Spring Loaded Observer Pattern Scott Priolo describes "an easy process of implementing the observer pattern within the Spring framework, as well as an easy way to start the Spring Framework in any project."


mthornton has an idea Re: FS extended attributes and FS notifications in Java in today's Forums: "It occurs to me that there is already a Java API that could provide access to attributes (in bulk) and also notification. Namely JNDI. All that is needed is a suitable JNDI provider for the file system (and not the trivial one built on top of File). While this would be more complex to use than a purpose built API for files and file systems, perhaps the extra work in learning to use it would pay off when using JNDI for other purposes such as DNS queries. After all, File already covers most of the simple use cases."

qubitnl wonders about Code coverage, Mem-leak and perfromance tools: "Hi i'm currently busy searching for some Code coverage, Mem-leak and performance tools. But I can't decide what is good to use, there are so many. I'm using Eclipse as IDE. There are some requirements to the tools though. They have to be run from the command line or ant. It would be nice if the tools come as one complete package, and it also would be nice if they are open source. This however does not mean that i'm not interested in commercial tools. Which tools do you recommend?"


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Alternatives to too-complicated web app frameworks  

The pros and cons of hibernation

Your editors are on the West Coast for some java.net meetings, but we're still on East Coast time. Sleep always seems to fall by the wayside on these trips, but there's so much to do out here. If there weren't now a Fry's Electronics in Atlanta, I would probably have brought a second suitcase just to load up stuff from the Palo Alto store.

I went to college just up the Penninsula from here, so this is sort of my old stomping grounds... but for the proliferation of large and largely empty office towers foolishly built at the end of the dot-com era. There's much that I want to see, but trying to squeeze in trips to campus, Fry's, Tower Records, Compadres, Japantown, and the O'Reilly offices 90 miles north in Sebastopol -- to say nothing of the all-day meetings that are the point of this trip -- is going to come at the expense of sleep.


Moving from sleep to hibernation, two views of the object-relational framework appear in Also in Java Today, one arguing for its use, the other against it. In What Is Hibernate, James Elliott, author of Hibernate: A Developer's Notebook, introduces the ideas behind, and applications of, this exceptionally popular object-relational mapping framework: "Hibernate doesn't get in your way; nor does it force you to change the way your objects behave. They don't need to implement any magical interfaces in order to be blessed with the ability to persist. All you need to do is create an XML mapping document telling Hibernate the classes you want to be able to store in a database, and how they relate to the tables and columns in that database, and then you can ask it to fetch data as objects, or store objects as data for you. Compared to most of the alternatives, it's almost magical."

Eric Bruno says this approach has drawbacks: "Typically, those not familiar enough with SQL will choose CMP entity beans or frameworks such as TopLink and Hibernate, which generate queries and help to isolate them from the Java code. Regardless of which you choose, the resulting code will still contain Java-based queries." The article Use Stored Procedures for Java Persistence argues against this approach and shows how writing your own stored procedures can lead to faster, more agile code.


Michael Nielsen wrestles with cross-platform (er, ide) challenges in today's Weblogs: "Once again, cross-platform development is just out of reach... that is, when thost 'platforms' are IDEs, and the development is for plugins. With extra effort it is do-able; but how many will do it, at long as it requires extra effort?

In Customizing Ocean Gradients, Scott Violet shows "how you can customize the gradients drawn in ocean; from the garish to the minimalist, anything is possible."

Andreas Schaefer wonders about the implications of JBoss entering the Evil Empire, noting that "JBoss Inc. and Microsoft announced a partnership of some sort", but notes that it's not clear what that means.


In Projects and Communities, the 54th JavaTools Community Newsletter announces the graduation of theMaven java.net plugin. Built atop the java.net tasks project, the plugin helps you deploy a Maven-generated website to java.net, upload distribution files to java.net, and host artifacts in the java.net Maven repository.

The Java Desktop Community points out another Swing Sightings preview: Mpowerplayer is a free mobile game player for your desktop that lets you find, try, and buy games for your mobile phone. Every game in the extensive catalog is playable and easily purchasable.


In today's Forums,ingridy discusses complaints Re: Mustang Early Access JRE size and Early Access AutoUpdate: "Regarding the JRE bundle size, we are aware that the size is getting increased and we are monitoring the size. Minimum JRE bundle size is actually 8.95 MB not 30.7 MB. Now you might think, then why you are downloading 30.7MB jar file. Ok what you are getting is just a raw image of our JRE bundle in the self-extracting JAR file. Keep that in your mind that self-extracting jar installer is not really designed for our JRE bundle. This was our ultimate choice to release our source bundles only and later due to the customer requirements we have released the JRE/FASTDEBUG bundles in the jar format as well."

kellyohair discusses options for simplified native code in Re: JNI Improvements: "Sun Studio 8 had released with a Native Connector Tool (NCT) that would read Dwarf2 debug information from a shared C or C++ library (Solaris or Linux) and automatically create the Java layer interfaces into a native library. Google NativeConnector and you should find some documentation on it. I'm not necessarily recommending it, but Sun has indeed attempted to produced such a beast. For various reasons I'm not sure it is still delivered, but the audience was very limited and the "real" JNI programmers seemed to prefer writing their own code. Giving Java access to native code has it's dangers, and getting it right (and who's 'right') isn't easy either. I agree that using JNI is not easy, it never has been."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



The pros and cons of hibernation  
kfarnham

Hitchin' A Ride Blog

Posted by kfarnham Sep 27, 2005

Make your media mobile

Mobile phones have a wide variety of media capabilities -- something that's both exciting and challenging to the programmer who wants to use them. It's great to potentially have MP3 playback, a capture device like a camera, or video on board. On the other hand, it's a huge hassle if you intend to deploy your MIDlet across a wide variety of devices, all with differing levels of support for media. You don't want to show buttons or other GUI elements that encourage the user to attempt to use features that won't actually work.

Fortunately, the Mobile Media API (MMAPI) makes it fairly straightforward for a MIDLet to interrogate the device it's running on and determine what media capabilities are present.

In the Feature Article, J2ME Tutorial, Part 4: Multimedia and MIDP 2.0, Vikram Goyal continues his J2ME series with an introduction to MMAPI. He shows how to play audio and video on the small device, in cases where they're supported, and also shows how to deal with threading issues that can occur when large media data is downloaded over a potentially slow connection.


In today's Forums,kirillcool replies to a post that says contributing to Mustang "is nothing for a community. It is only for Sun": In Re: More reasons, he writes: "Nothing for a community? How about a new feature / fixed bug that was added to JDK as the direct result of the contribution? Or are you expecting a paycheck for fixing the bug? Will you get one working on Harmony? Your name is in the code, on the bugfix, just not in the copyright section. Is your ego really that big?"

jseltzer writes of The successful developer: "I've learned one thing about successful developers. They aren't necessarily the smartest. They're the quickest to make decisions. Indecision is a killer to the development process. Successful developer's find the shortcut solutions. They don't reinvent the wheel. They copy. They finish on time and the managers love them for it."


Tom White talks up MapReduce in today's Weblogs: "MapReduce is an amazing distributed system for massive data processing from Google Labs. There's now a Java implementation."

Simon Brown checks in with news of The Java Posse podcast: "After I wrote about the JavaCast being discontinued, Dick Wall got in contact to tell me about a new Java podcast that he was putting together."

Kathy Walrath is Now Hiring: "The client group in Java SE-land is looking for someone smart enough to automate themselves out of a good job -- and into an even better one."


In Also in Java Today, with tongue very much in cheek, The Spuddy Show debuts as a Flash-animated, Daily Show with Jon Stewart-like take on recent Java events. The first episode satirizes Sun's anti-Dell ad campaign, recent Java conferences in China, and even borrows fromArtima's interview with Gavin King for some biting humor at the expense of Hibernate, the JCP, and JBoss.



 

The page-reload cycle presents one of the biggest usability obstacles in Web application development and is a serious challenge for Java developers. In Ajax for Java developers: Build dynamic Java applications, author Philip McCarthy introduces a groundbreaking approach to creating dynamic Web application experiences. Ajax (Asynchronous JavaScript and XML) is a programming technique that lets you combine Java technologies, XML, and JavaScript for Java-based Web applications that break the page-reload paradigm.


In Projects and Communities, the new JXTA Community project Peermi describes itself as "an extension of the standard RMI classes to enable true peer-to-peer, bi-directional RMI. Peermi includes a universal (Internet-wide) lookup system like the RMI registry and classes to facilitate multicast method calls."

java.net and the Robotics, JDDAC and Embedded Communities will be participating in RoboNexus. This conference, held October 6-9 in San Jose, CA, is technically oriented with seminars for and by the world's leading robotics professionals and manufacturers.



In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Make your media mobile  
kfarnham

Longview Blog

Posted by kfarnham Sep 26, 2005

What it takes to not suck

It's not often that an online screed is so brimming with ideas that each of them could support its own blog entry.

It's even less often that such a diatribe has a simple and blunt a title as In Why Software Sucks.

In it, Scott Berkun (author of The Art of Project Management) manages to cover:

  • what it means for something, i.e., software, to "suck"
  • how reactions to software are expressed
  • what users mean when they say software sucks
  • what they would say if it were good
  • how to mis-time and therefore mis-use your skills
  • learning curves and expectations
  • developer and user expectations
  • how bad things are made
  • the difference between the acts of construction and design
  • code prettiness and its tenuous relevance to application quality
  • how good things are made
  • how to look at and understand good things
  • the questions to ask yourself about the making of good things.

Laying these out as a list, they look like chapters of a book. This probably should be a book. I'd buy it.

This is a great essay, something you may want to think about, compare with your own situation and those you've been in before, and think critically about. Is Scott right on all these points? There's a discussion going on in an Artima blog entry by John D. Mitchell that digs in further and takes things in new directions. If you have time, do check it out.


Also In Also in Java Today, this year's ONJava Reader Survey results are a window into the personalities, purposes, and choices of the Java community as a whole. The results show AJAX capturing mind share at an astonishing rate, Groovy disappearing, and J2SE 5.0 surprisingly slow to be adopted. The wrap-up article ONJava 2005 Reader Survey Results, Part 1 also has numbers from the Eclipse-NetBeans IDE battle, surprising demographic data, plus readers' requests for articles and predictions of the Next Big Thing in Java.

In Projects and Communities, the Mobicents VoIP project has reached its first beta-quality milestone, version 1.0b1. According to the announcement "At this point the core engine is reasonably stable with support for auto deployment, persistence and basic High Availability. The performance is also acceptable for a wide range of applications except for high end carrier grade deployments."

The Internetnews.com article A Wireless Web For Ocean Waters introduces the NetBEAMS project, part of the JDDAC Community, describing how it uses a network of sensor devices around the San Francisco Bay to monitor water quality. The sensors are based on the JDDAC transducer data models and interfaces, and use the cellular network to communicate.


In today's Forums,trembovetski questions the timing concerns Re: Single Threaded Rendering and D3D, Windows Vista and OpenGL: "Unfortunately STR for D3D will not happen for mustang. We'll work on it and porting to a newer D3D version in the future release. What makes you think Vista will be widely adopted on desktop so quickly that we must have this functionality now?"

ewin has some pessimistic thoughts Re: Keeping up: "Don't try to keep up with everything. Instead, ignore stuff as hard as you can. Sun comes up and did come up with stuff that dies and died faster than it is or was thrown at developers. [...] Of course it is not only Sun coming up with one trial balloon after the other. It is paramount to the Java ecosystem. There are two big disadvantages coming with this behavior. Of course it is impossible to follow everything. And, maybe even worse, existing things are badly maintained, because resources are used to invent the next stupid thing."


In today's Weblogs, Eitan Suez describesMy Dream JDesktopPane, noting that "one area of Swing that does not appear to be getting much attention these days (or that may have fallen out of favor with developers) are the elements that make up the Multiple Document Interface: JDesktopPane and JInternalFrame."

Konstantin I. Boudnik opens his weblog writing about Java. Quality. Metrics: "In this series of blogs I will talk about our goals, visions, and ways to measure, improve, and do smart test development for J2SE platform."

Romain Guy continues his look and feel series in Synth Week, Components Orientation Support: "Tiger introduced Synth, a cool and easy way to create custom look and feel. Unfortunately, it has some limitations. Discover how Mustang addresses one of the most important ones."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



What it takes to not suck  
kfarnham

Way Down the Line Blog

Posted by kfarnham Sep 22, 2005

Adding arbitrary web app debug code at runtime

"Debugging" can mean a lot of different things. The classic use case has a developer sitting at his or her machine, using a low-level debugger like jdb or IDE-based equivalents to inspect the state of variables, threads, objects, etc. And that's great. But there's also a sense of debugging involved in seeing a production system misbehaving and trying to find some way of determining what it's doing and why. Particularly with web apps, these situations aren't amenable to hooking up a debugger, because of the remote deployment, the fact that debugging may not be enabled, etc. And that's assuming the problem is amenable to that style of debugging.

Admit it: at least once, you've probably wanted to throw an arbitrary System.out.println() into a remote, running application, if only to start to figure out what the heck's going on. But of course, that means recompiling, restarting, and lots of other impracticalities. What you could really use is a maintenance servlet that would let you get in and do stuff at runtime.

This is Lorenzo Puccetti's line of thinking. In today's Featured Article,Dynamic Interaction with Your Web Application, he writes:

The servlet we want to write needs to be able to hook into any resource provided by the web server and allow the user to inspect any part of it. To be able to gather the required information, it might require flow-control constructs and loops. This leads to one solution: to make the servlet able to execute a script sent by the client (i.e., the browser). The script will have not only the ability to access any server resource, but by manipulating host objects representing a HTTP request and response, it will be capable of communicating back to the client.

He goes on to deploy the Rhino JavaScript interpreter behind this servlet, and shows how JavaScript code can access the Java runtime, allowing you to dig into your web application's behavior interactively, sending the results back to your browser.

This is a wide-open technique, which has some obvious benefits and hazards -- check it out, think it over, then let us know what you think in the article comments.


Vikram Goyal continues the cross-blog discussion of employment in Live and let code, featured in today's Weblogs: "Programmers and Managers have a symbiotic relationship... I don't fully pretend to understand what they do, while they don't pretend to tell me how to code."

Rich Unger shows off A simple NetBeans module, written in NB 5.0: "As promised, here's a recap of a simple module I built to help me test a bugfix."

In Debugging on J2ME/CLDC devices, Oyvind Bakksjo writes: "Debugging programs running on real J2ME/CLDC devices is hard and frustrating. Some things can be done, though."


The latest java.net Pollasks "What's your highest level of involvement with the JCP?" Cast your vote on the front page, then visit the results page for results and discussion.


In Projects and Communities, the Ninth Jini Community Meeting takes place October 19-20 in Chicago. "The meeting will run for two full days (Wednesday and Thursday) and be filled with a variety of technical, business/marketing, and general sessions." You can also get more info on previous Jini Community Meetings.

The Mac Java Community points out the availability of Apple's Xgrid agent for Java. "The goal of the project is that by using Java a completely cross-platform Xgrid agent can be produced. Using this agent it would be possible to build multiple platform Xgrid clusters that could be used to run any embarrassingly parallel tasks."


In today's Forums,jeffmutonho worries about Keeping up How do you keep up with all the new java technologies that are out so fast?I tried buying books , but end up not even reading half the material because there's too much to learn and so little time...

sbohmann considers the unintended consequences of a proposed feature in Re: "string" primitive: "I've always found it the worst of features of C# that I can never be certain whether operator == will compare by reference or value. This forces me to use if ((Object)a == (Object)b) ... on instances of a class I haven't used before or whenever I simply don't remember whether the class had implemented operator ==, or not. It is NEVER about brevity. It is NEVER about beauty. It is always only about clarity. Hitting some more keys on the keyboard doesn't hurt nearly as much as ALWAYS having to think about every single tiny detail, just because there are no consistent mechanics to understand, but merely a lot of possible different ways a type might have been implemented in order to manipulate the language's basic syntax."


In Also in Java Today, the article Struts-Velocity integration , features Struts Recipes co-author George Franciscus walking you step-by-step through integrating the Velocity Template Engine into your Struts applications. The result is a fast, flexible alternative to JSP, but with all the creature comforts you expect from Struts.

So, you're fixing bugs as fast as you can. Maybe you even have a rational process to prioritize the process. Great. Now when do you stop? In the ONLamp feature, How to Decide What Bugs to Fix When, Part 2, Scott Berkun (author of The Art of Project Management) says "you need to plan out, in advance, how you'll know when you're done. If you don't do this you'll spend hours arguing over whether code is done enough or not. If you're smart, and take the time earlier to define exit criteria, you'll set up your team to spend those hours coding instead of arguing."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Adding arbitrary web app debug code at runtime  
kfarnham

Pay The Man Blog

Posted by kfarnham Sep 22, 2005

The idea of mutual respect

Yesterday's Editor's Blog, Why Don't You Get a Job? kicked off some pretty heated responses, showing some very different perceptions of how to keep your Java career going. The crux of that blog was a report, one of several I've seen recently, saying that businesspeople want developers who are more than "just programmers", meaning they need to have business skills, project management skills, and (this is the controversial part), knowledge of the employer's field of business.

John Reynolds takes issue with some of these conclusions and assertions in his blog How to keep your programming job. He says the key to making the relationship work is respect:

It is not necessary that you choose a business specialization like "finacial" or "medical" or "media" to retain your employability. If you learn to treat your business owners with respect, they will be delighted to explain their business to you. You'll have to do your homework to learn their lingo, but if you make the effort to deal with them in their own terms, you will find that business Subject Matter Experts (SMEs) are every bit as worthy of respect as you think you are.

What business people crave from programmers (and technical people in general) is respect.

He goes on to say that it's your responsibility, as a programmer, to understand the relationship between the business needs and what software can deliver:

Your business people will not grasp your excitement for the latest Java technology unless you can explain to them how that technology relates to their business. To really communicate, you'll need to learn their language and to express yourself in terms of their world view.

John and I may not be that far apart on this -- you've got to understand the business to some meaningful degree to make a case for how Java can help it. But what do you think? Please continue to comment on these blogs keep the conversation going.


Also in today's Weblogs, Romain Guy brings usSynth Week, Load Themes From Anywhere: "Better late than never, here is the first installment of the Synth Week. If you like cool features and crappy drawings, click the link!"

John O'Conner is looking for an OpenOffice Blog Extension: "Word has a blog toolbar for the Blogger API. Has anyone done anything similar for OpenOffice with the UNO APIs, JAX-RPC, and java.net?"


In Projects and Communities, the JXTA Community recently announced the release of JXTA-C 2.2 "Palau". The new release offers an SQL-based CM, XPath query capability, updated build environment and installer for Win32, Rendezvous capability, and important bug fixes. You can get JXTA-C from the download page, or via CVS. Build instructions are on the JXTA wiki.

The tutorial Integrating DreamWeaver with NetBeans says "you can integrate NetBeans IDE 4.x with Macromedia Dreamweaver MX for further visual HTML and JSP editing. Dreamweaver can be set up to edit JSP files in your NetBeans project directory, and it can automatically keep those files synched with your build files."


In today's Forums,ray_gans follows up on a request for starter bug-fixes in Re: Hunting wabbits... erm, bugs: "This is a great idea and we'll post a list of good 'smallish' bugs to work on as soon as we can. We are also looking at ways to make some improvements to the bug database similar to those you suggest. Stay tuned and thanks for the comments. If there are other improvements you'd like to see, please let us know on this forum."

mclro641 is trying to discern the Vision for Mobicents: "Hi, not really sure if this is the write place to ask this but i will anyway(if its not could someone point me in the write direction, cheers). Unlike Other JAIN SLEE implementations such as Open Clouds Rhino, Mobicents is obviously Open source, i am interested in asking how complete Mobicents is in your vision of how it will be when it is complete, and also what sort of business play / goals do you have. "


In Also in Java Today, Artima blogger Michael Feathers says Java Enums want to be Classes. Or do they? "For the longest while, I was glad that Java didn't have support for enumerated types. I've used them in C and C++ but I often ended up in that weird place that calls for the Replace Type Code with State/Strategy refactoring: I start writing a switch statement that uses the enum and I know that the code in the cases could be in a class, if only I had one instead of the enum." He goes on to show what happens when he creates a J2SE 5 enum for compass point directions and then needs to add a getOpposite() method.

"A software system should respect its users' language and geographic region to be effective. Language and region form a locale, which represents the target setting and context for localized software. The Java platform uses java.util.Locale objects to represent locales." The SDN article Internationalization: Understanding Locale in the Java Platform "describes the Locale object and its implications for programs written for the Java platform."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



The idea of mutual respect  
kfarnham

Why Don't You Get a Job? Blog

Posted by kfarnham Sep 21, 2005

Coding skills are no longer enough.

If you thought specialization in your career meant picking J2EE, SE, or ME, get ready for a rough ride. More and more analysts are saying that it's not enough to be "just" a programmer anymore. According to the IDN article Survey: CIOs Want Devs with More Business Skills, featured in the Also in Java Today section, a survey of 90 top CIO/CTO executives say that tech leadership will put a premium on business-savvy IT professionals. "The SIM survey found that programmer-only skills were falling in demand, when compared to IT staff with a business and project management background."

Just being aware of project management isn't enough. It's increasingly important to pick a field and understand it. According to survey co-ordinator Kate Kaiser:

"While technical skills may still be in use at these companies, they won't necessarily be in house [hires]. These days, the trend in critical in-house skills are the client-facing skills" such as project management and knowledge of the business your employer is involved with." [emphasis added]

That's a big change that professional developers need to be aware of. In the future, you may be not just a J2EE developer, or even a J2EE web app developer, but instead a J2EE financial web app developer, or a J2EE medical web app developer, or a J2EE media web app developer, etc.

On one hand, there are a lot of people who will appreciate the value of focusing on one field and building their value in that field. That's also more useful to companies that are hiring too, since they'd prefer to hire someone who understands their business and won't make the mistakes that come from not understanding or not caring about the purpose or details of a development project.

On the other hand, what if you're all about the code? There are surely developers who really just want to code Java, and don't particularly care whether it's for finance, travel, government, etc. Is that wrong? Maybe the right place for that kind of talent is in developing products for other developers, but is there enough work to be had there?

One other factor to consider. I became more aware of this when I read a story a few months ago -- I'm sorry, I've searched and absolutely cannot find it -- about how college counselors are now applying this kind of thinking to college computer science students, guiding them to start focusing on an industry early, and to take some non-CS courses to start understanding the field they might like to program for. This may be a good way to produce more well-rounded, less-replaceable CS students. CS could use the help, since enrollments are still going down. And let me share one more alarming statistic. Tonight, O'Reilly's ONJava site will release the results of its annual reader survey. I've seen the results, and of 988 people who responded, none said they were age 18 or younger. Is there even going to be a next generation of Java programmers?


On a potentially employment-related point in today's Forums,jwenting has serious doubts Re: Certifications: "Many certifications can be passed by just cramming for the exam for a few days or weeks. That's the way to get a piece of paper without learning anything, as the knowledge doesn't get stored in your long-term memory and isn't backed by any real world experience."

alanb has a timely update Re: FS extended attributes and FS notifications in Java: "This is a good (or maybe bad) timing. I've just taken over JSR-203 and will be spinning it up very shortly. One of its goals is to define a new file system interface. As you have identified the current API (essentially java.io.File) only provides very limited access to file attributes. This means that applications currently have to resort to native code to do anything with EAs. File change notification is also very important and a number of file systems now provide some sort of notification mechanism. The goal for JSR-203 is to be ready in good time for Dolphin (Java SE 7.0). This might be too late for what you want to do but worth keeping in mind - maybe you can structure things so that it won't be to difficult to migrate in the future."


In Also in Java Today: "The case for AJAX has been made by many people recently. The advantages of AJAX have also been proven in practice. The downside of custom AJAX is its complexity and incompatibility. Large amounts of client-side JavaScript mean developers are likely to run into browser implementation differences. In addition, JavaScript is an unpleasant language for complex applications." Avoiding custom widget development and selecting a client-side AJAX library is a fix to this problem, and in the dev2dev feature, A Backbase AJAX Front-End for J2EE Applications, Mark Schiefelbein shows how to use the Backbase AJAX tools to create an AJAX-based version of the classic Java Pet Store.


Bernt Johnsen wonders about Easy String Concatenation Considered Harmful in today's Weblogs: "Could it be that it is too easy to concatenate strings in Java? And that easy string concatenation encourages programmers to write inefficient code? At least in some contexts?"

In And another new NetBeans plug-in, Tim Boudreau writes: "A few people have mentioned that they would like better support or organizing import statements in NetBeans. So I wrote a module that does that..."

Tom Ball jokes that he Can't Tell the Forest for the Trees, namely that "the new javac abstract syntax tree API is now available on java.net"


In Projects and Communities, the GlassFish project, the open-source project for Sun's Java System Application Server PE 9.0, has announced that nightly builds are now available. These builds have undergone a small amount of testing, as described in the announcement. GlassFish builds for Mac OS X are also now available.

The JavaDesktop Community notes that the Columba Java email client has reached version 1.0. Columba features a user-friendly GUI, I18N support, and a Java Web Start launcher. The developers also discussed Columba and Java Desktop development in a ClientJava.com interview.


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Coding skills are no longer enough  
kfarnham

Keep 'Em Separated Blog

Posted by kfarnham Sep 20, 2005

Keep malicious code out of your web app

In the first installment of his series on web app security and validating input, Stephen Enright showed some surprisingly effective attacks that could be carried out by sending SQL statements in HTML form values. But of course, the server is only one half of the security story. The browser also offers opportunities for mischief.

In the Feature Article, Handling Java Web Application Input, Part 2, he takes a look atcross-site scripting, which describes a variety of attacks to insert code from an external source, often using the <script> tag, but potentially launchable from images, objects, anchors, and other content. Even the <body> tag offers an avenue for attack. After showing the broad variety of possible attacks, Stephen shows how filtering and encoding practices can be used to thwart attackers:

The appearance of automated tools and the incorporation of new features into the various specifications and web browsers has resulted in attackers finding new and innovative ways to exploit an application through application input. An attacker can initiate an attack through a web browser by constructing attack strings, sending them via a HTTP get request through URL tampering, via a HTTP post request through HTML forms, or by other means. It is therefore critical that any possibility for data being input into an application from an external source is carefully analyzed, and secure coding practices put in place to meet the specific validation needs of an application in order to neutralize any threats.


Oyvind Bakksjo kicks off today's Weblogs with some Java Exception Handling Patterns (Part 1) "Recommendations and best practices for exception handling in Java. General rule: Write separate classes for all your exceptional conditions. Declare for each method exactly which of these are thrown. Do not declare to throw some big, fat, one-exception-to-rule-them-all."

Ed Burns is working on Clearing Up JSF 1.2 JSF 1.1 and MyFaces Confusion: "A couple of weeks ago, Rick Hightower asked some pointed questions and made some interesting assertions about JSF 1.2, JSF 1.1 and MyFaces in his blog . This blog entry is a response to that blog."

The demise of The JavaCast comes as a disappointment to blogger Simon Brown: "Having just come back from holiday, I fired up iTunes hoping to get a new JavaCast that I could listen to on the way to work. Unfortunately, this wasn't going to be the case."

In Also in Java Today, TheServerSide is asking readersHow Should Tutorials Be Written? "Tutorials are hard to write. If you make them too short, they tend not to convey the information people need; if you make them too long, people lose patience and stop reading them. Likewise, examples need to be real-world, but real-world examples tend to be too complex to communicate in a tutorial." Three trouble spots identified by TSS include inadequately-scoped tutorials, overly-complex API's that don't lend themselves to tutorial treatment, or inappropriate level of abstraction.

The O'Reilly Network Databases site notes the opening of the ODBMS.org site. A news release for ODBMS.ORG says it "provides the most up-to-date collection of free materials on object database technology on the Internet. ODBMS.ORG was created to serve faculty and students at educational and research institutions as well as OO software developers in the open source community or at commercial companies. It is designed to meet the fast-growing need for resources focusing on object database technology and the integration of object-oriented programming and databases. All materials and downloads are free and anonymous."


In Projects and Communities, the Linux Community home page notes the progress of GNU Classpath: "A week ago the developers of Classpath, a F/OSS replacement for the J2SE class library, reached 90% of all API implemented and working. Interested readers should also visit Planet Classpath for info about when the updates will be availabe on major F/OSS JVMs."

The most recent Java Tools Community Newsletter discusses challenges and offers advice for dealing with varying character encodings and shared source: "This is particularly troublesome for open source projects, where people from all over the world, working in different languages and operating systems, share a single codebase."


In today's Forums,ochkarik calls for FS extended attributes and FS notifications in Java: "There exists a class of problems that cannot be given a scalable solution with current J2SE. These include, for example, an enterprise file management solution, and a desktop search engine. Imagine we have to develop a web-based interface for file uploading, with metadata storage (author, public/private flag, category, keywords), and with concurrent access to the file repository as a regular filesystem, for further categorization, renaming/moving, sorting, FTP access (important!). Due to missing filesystem extended attributes and filesystem notification support, a J2SE solution is going to be extremely inefficient. (I'm going to explain this further if there is an interest.)"

arnaud_roques has some design ideas Re: Immutable java.lang.DateTime class: "A lot of people agree that Date should be immutable. We understand that it's not easy to define new classes as DateTime in future release of Java. But here idea of what can be easily done: 1) Put @Deprecated on setTime() of the java.util.Date class. 2) Like the java.util.Collections class, having something like java.util.Dates class, with public static Date unmodifiableDate(Date date): Returns an unmodifiable view of the specified Date. This method allows modules to provide users with "read-only" Date and attempts to modify the returned Date result in an UnsupportedOperationException. What do you think about it?"


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Keep malicious code out of your web app  
kfarnham

Come Out And Play Blog

Posted by kfarnham Sep 19, 2005

Making your mark on Mustang

It can be done. Outsider contributions will be in the next version of Java, and there's still time to join in.

If you don't believe it, check out the forum message JDK collaboration bug fixes, cited in today's Projects & Communities section. In it, timbell lists 39 bug fixes that have been submitted by outside contributors. Nine of them have already been integrated into Mustang, two of them in the recent b51 build. And some of the submissions under consideration address important stuff, like access to the created-on and last-modified dates of files, conversion of Readers intoInputStreams, garbage collection ofDialogs and Frames, and a number of performance fixes.

Mustang's still a long way from final, so there's plenty of time to jump in yourself. Check out the Mustang Snapshot Releasesproject to get the latest sources and binaries, and the How to Collaborate document to learn how to bet your own fixes in.

Of course, what bugs should you get in on? kenroddraises this as an interesting question in the forums, in Hunting wabbits... erm, bugs:

Let us say I am keen to 'level up' to being allowed to work on 'riskier fixes and feature enhancements' and so am looking for some 'smallish bug fixes' to start out on. It would be nice if the bug database allowed me to search for 'really old bugs that nobody has ever touched' or 'bugs lodged but not in progress', or even if Sun put together a list of 'smallish fixes that we're not going to get to that would be good for community fixes'. At the moment I can pull up 'Top 25 Bugs' or 'Top 25 RFEs' but they are unlikely to be smallish.

Anyone have some suggestions for Tim? The anecdotal use-case for open source contributions is that people fix the bugs important to them, but what if the act of contribution is more important than the specific fix? Surely there are some little hassles that would be amenable for small, unintrusive fixes. What are they?

By the way, Tim, two points for using the term "level up". Now I'm going to have to explain that to Daniel when he reads this blog.


Also In today's Forums,hammer wonders about The Power of Networking: "I've been a developer for about 6 years (3 companies) now, and always knew somebody at companies I worked for before I was hired. One of the advantages of working as consultant is being able to meet many people (developers, project managers, etc) from different companies. Because I kept good relations with some of these people, the times I've needed/wanted to change jobs were easy because I applied at companies where I knew someone. I did this because I already knew a little bit about the environment, and I was able to get a recommendation. I've also helped 2 or 3 developers get jobs during my career. Because of all this, I don't worry much about being unemployed. Any thoughts from developers with more experience? less experience?"

 

Also in Projects and Communities, congratulations to the NYJavaSIG on its 10th Anniversary! The 3,500-member group is holding a 10th Anniversary Party on Thursday, September 29, with special guests Jim Waldo and Guy Steele. Food, refreshments, and prizes will be available. Attendees must register in advance at the above link.


Kohsuke Kawaguchi unveils a Maven java.net plugin in today's Weblogs: I have a lot of projects on java.net, so I needed a way to simplify the project management. That's why I came up with the maven java.net plugin. The idea is simple. Maven provides an excellent framework for managing a large number of small projects. So I wrote a plugin to perform java.net specific tasks.

kfarnham

Nothing Bad Ever Happens Blog

Posted by kfarnham Sep 16, 2005

Getting pro-active when Bad Things happen

OK, so you know your application is going to have problems at some point. Maybe it won't be your fault, maybe it will be, but in any case, how will you find out and what will you do about it>

One unfortunately typical approach is to wait for something to go wrong, wait for the customer to complain, and then try to get the log files -- you did remember to log things in your code, right? -- and start reading through them. That's assuming, of course, that you can even get to the log files. After all, they might be on an unreachable remote machine, or the time you want to investigate may have already rolled off the logs.

Author Romin Irani proposes an alternate approach:

Someone supporting live, deployed applications would probably appreciate the importance of getting notified of application errors as early as possible. It is much better to be proactive dealing with errors, rather than waiting to hear from the customer that something seems to have gone wrong. How about getting notifiedimmediately, by utilizing an Instant Messenger client like Yahoo Messenger?

In the Feature Article, Receive Application Errors via Yahoo Messenger, Romin shows how to extend the log4j logging framework, and to use the jYMSG library to provide a logging extension that sends log messages via instant messenger. With this arrangement, you can use your IM client as a fairly light-weight remote monitoring system, without going for the more complex and difficult options like JMX, SNMP, etc.



 

In Projects and Communities, the JXTA Community has just announced two releases. The JXME 2.1 (Tantà) release provides a "reliable bidirectional communication profile" along with "significant bug fixes". Meanwhile, the JXTA Java 2.3.5 "Shebakia" release offers a number of bug fixes and "significantly improved performance for the rendezvous and relay peers."

The next Jini webinar is scheduled for Wednesday, Sept 21 at noon EDT (16:00-17:00 UTC) and features Richard Nicholson speaking on "Complex Adaptive Systems, Jini, and the Enterprise DataCenter" Meanwhile, an MP3 of Jim Waldo's May 25 talk at the NYJava SIG, "An Architecture for Service-Oriented Architectures", is now available as well.


Chris Campbell has good news about Java2D/JOGL Interoperability in today's Weblogs, including: "details (and screenshots) on the improved Java2D/JOGL interop story in the latest Mustang and JOGL builds... More improvements to the OpenGL-based Java2D pipeline in Mustang b51 (and b53)... And a big thank you to the attendees and event staff at JavaChina 2005..."

Scott Schram says The XStream library offers clean, easy XML serialization of POJOs: "XStream serializes and restores very clean, readable XML from POJOs, with only two lines of code, no dependencies, and a BSD-style license."

In Declarative UI and Principles of REST, Jacob Hookom writes: "HTML is declarative, XML is declarative, so is URI access (as REST promotes). If we can capture component frameworks in a truely declarative nature, then we can operate statelessly. How are we going to get there?"

In Also in Java Today, "the Java API for XML Processing (JAXP) SAXParser or DocumentBuilder classes were [before J2SE 5.0] the primary instruments of Java technology XML validation. The new Validation API, however, decouples the validation of an XML document from the parsing of the document. Among other things, this allows Java technology to support multiple schema languages." The article XML Validation and XPath Evaluation in J2SE 5.0 looks at validation, XML schema, and the XPath API.

"BackPack, Google Suggest, Google Maps, PalmSphere... All these websites show that web applications don't need to rely solely on pages being reloaded from the server to present changes to the user. Everything seems to happen almost instantly. In short, when it comes to designing a responsive user interface, the bar has now been set much higher." But client-side trickery is not easy to accomplish, and coordinating it with the server is even harder. InAn Introduction to AJAX, David Teare examines the challenges of AJAX, and shows how the java.net project Direct Web Remoting (DWR) simplifies client-server communication.


The latest java.net Pollasks how you would complete the sentence "I think AJAX..." Cast your vote on the front page, and then check out the discussion on the results page.


In today's Forums,bhills wants to know how to switch to A Server Side Career: "I was wondering if anyone here during their Java career has moved from writing desktop Java to server side Java and how they did it. I have been working on a desktop Java application for three years but this is now complete and there is no more Java work in the pipeline with my current employer and so I am looking to move on. Most of the Java jobs I see advertised here in the UK are for server side developers and this is the area I would like to move in to. The problem is, all these jobs seems to require at least three years server side Java experience, but of course to gain this experience I need a job as a server side developer first! - So I am kinda stuck."

platinumdragon is trying to work out problems withJBoss and JAX-WS 2.0: "Obviously, some of you out there have successfully deployed applications using JAX-WS 2.0 and JBoss. I am new to web services, and have been trying to piece together how to do this, but since all of JBoss' documents are for JAX-RPC 1.x, and the JAX-WS 2.0 docs are out-of-date and for Sun AS, I'm having a heck of a time getting this to happen. I've done the WSDL->Java import, JSE, web.xml, webservices.xml, and I still can't quite get this to deploy. Does anyone have a working sample for JBoss that you could post or send for analysis? It would be extremely helpful."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Getting pro-active when Bad Things happen  
kfarnham

On the Outside Blog

Posted by kfarnham Sep 15, 2005

Great examples of Java gaming and video

Someone sent me the link for The Big Ad the other day. Assuming you're not from Australia and haven't seen it, this is a beer advertisement that parodies lavish, over-produced ads. It looks, and sounds, like something from the Lord of the Ringsmovies:

big-ad.jpg

Here's the cool part for us: it's playing on your screen in Java. You probably figured that out from the trusted applet dialog:

vividas-cert.png

If you're wondering how it's done, you can Google for "Vividas", the company that makes the streaming player. Their web page has more examples, but not a lot of details on the Java end. In fact, one point I did find interesting was in a financial statement, and it's this:

The current commercial version of the Vividas streaming player generally requires the presence of Java on the user

kfarnham

Only Makes Me Laugh Blog

Posted by kfarnham Sep 13, 2005

Et tu, .NET?

Stop me if you've heard these before: "Java's too big", "nobody's ever going to download something that size", "if Sun can't fit Java on a floppy, I'm switching to .NET", etc. Check out the forum Mustang is too big (again) if you want to join in.

But then again, maybe this is just a sign of the times. Romain Guy is working with .NET -- by the way, Romain, why? -- and reports on the size of the latest update:

Every now and then we see a new blog/thread/article about JRE/JDK download size. Well, I just downloaded .NET 2.0 beta 2 and here are the file sizes:

  • Runtime: 23 MB installer
  • SDK: 324 MB installer (!)

In his weblog JRE/JDK download size?, Romain notes that since you need the runtime to install the SDK, "that is a 347 MB installer to have a command line based framework plus its documentation."


Also in today's Weblogs, Kirill Grouchnikov shows off the Substance look and feel in Adding watermarks to your GUI - now at your nearest "look and feel": "How about running your favourite IDEand looking at your favourite actress all along? Just make sure your wife is OK with it. Here is how you can do it."

In Emerging Robotics Standards through OMG, Bruce Boyes writes: "The Object Management Group is working to develop the first ever open robotics standards... an RFI has been published and the deadline for response is 2005 Nov 14."


In Projects and Communities, the latest Java Tools Community newsletter announces the graduation of JLanguageTools from the community incubator. The project simplifies internationalization by allowing you to put localizations in their own XML files, and then request localized strings by key name. The project also provides a GUI to select from available languages.

The Mac Java Community home page notes some updates to QuickTime for Java for Windows. QTJ is now installed by default with QuickTime 7 and does not require a custom or full install. Bug fixes improve QTComponent rendering, running in headless mode, movie progress procedures, MPEG playback in applets, and more.


In Also in Java Today: JUnit is the de facto standard unit testing library for the Java language. JUnit 4 is the first significant release of this library in almost three years. It promises to simplify testing by exploiting Java 5's annotation feature to identify tests rather than relying on subclassing, reflection, and naming conventions. In An early look at JUnit 4, Elliotte Harold takes JUnit 4 out for a spin and details how to use the new framework in your own work.

"Maven is a formidable tool for simplifying the construction of J2EE applications. If you're currently using an Ant build or some other build tool you'll be able to reduce your build script by several folds, thus saving maintenance time. But perhaps even more importantly, you'll get as a result a nicely structured directory organization that follows building best practices." In Building J2EE Projects with Maven, Vincent Massol shows how Maven will help you generate EJB interfaces and deployment descriptors, JARs, EARs, WARs, and more.


In today's Forums,kcpeppe explains Java memory management in Re: N medium-size heaps instead of only one huge heap: "Heap is currently divided into young, old and perm space. Young space is further divided into Eden and two survivor spaces. There are flags to set the size of each of these areas either as a % of total or an absolute value. In the 1.5 you can also specify % free values that help the JVM decide on how big each of the spaces should be. There are also adaptive policies that can be specified."

dtrehas is looking for a Java and .NET interoperability lib?: "Ok, I know that web services give the capability to interop with .NET. I thought to implement through Memory-Mapped file a fast way to interop with .NET. Is there an implementation for this goal? The second step is to use RMI-IIOP and .NET.IIOP but I want an ultra fast implementation. What is your opinion?"


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Et tu, .NET?  
kfarnham

Running on a Treadmill Blog

Posted by kfarnham Sep 13, 2005

Unit testing and integration testing

One of the downsides of enterprise-class app servers, databases and such, is that it gets expensive to own more than one. It's really implausible to have one of everything for production, another for QA, and a third for developers' integration testing. All that times however many teams or projects you may have. Someone is going to have to without, which is fine, but then how do you test your stuff?

All too often, you don't, and QA becomes the integration test... or, worse yet, production does.

Assuming you'd like to avoid the almost certain disasters that ensue from those scenarios, what do you do? How about replacing the app server and database with mock objects, so you can still expose your business logic to rigorous testing on as many development systems as you'd like?

Bob McCune says Mockrunner may be the answer. In today's Feature Article,Container-free Testing with Mockrunner, he writes:

Mockrunner is a lightweight testing framework, built on JUnit, for testing J2EE applications. Its focus is on transparently simulating your application's runtime environment so you can easily create unit tests that run out-of-container and independently of deployment descriptors or other external artifacts.

The core distribution provides built-in support for testing the most commons J2EE component types including the Servlet APIs, JDBC, JMS, EJB, as well as Struts Actions. Its comprehensive API support makes Mockrunner a compelling tool as it provides a consistent framework for testing your applications from end to end.


Here's another perspective on unit testing, from Also in Java Today: "Teams that adopt agile practices often adopt Test Driven Development (TDD), which means, of course, that they end up writing a lot of tests. In general, that’s great but there is a failure case for teams that attempt to get test infected; you can end up writing very slow tests that take so long to run that they essentially start to feel like baggage even though they help you catch errors." In A Set of Unit Testing Rules, Michael Feathers argues for re-defining the concept of "unit test" to exclude tests that hit a database, make remote calls, or are in other ways incompatible with running quickly and concurrently alongside other tests.

"JavaServer Faces technology offers a rich set of components as well as a standard render kit to render these components to an HTML client. At the same time, the design of JavaServer Faces technology is flexible enough to allow component writers to create their own render kit in order to render components to non-HTML clients, whether these components are the standard ones that come with JavaServer Faces technology or if they are custom components that the component writers have created themselves." Creating and Using a Custom Render Kit describes how to create your own render kit and how to use a custom render kit in an application both by itself and with other render kits.


In today's Forums,jay_levitt is baffled by a CPU-gobbling Java process. In Re: How can javaw take over XP?, he writes: "Even if the Java threads have high priority, if javaw itself has normal priority (which it does), shouldn't they still end up getting shoved off the processor? I've never seen any other app exhibit this behavior; yes, threads can starve other threads, but I've never seen them starve other apps since 32-bit apps came about. Even the following C program: while (1) {;} maxes out the CPU at 85-95%; it can take a few seconds to pull up a task manager, but once it does come up, it updates every second like normal."

jwenting criticizes annotation-dependent tools inRe: annotating code: "If the tool forces the programmer to use specific constructs or the tool won't work the tool is limiting the programmer and therefore limiting what he can achieve using that tool. That makes the tool worse than useless."


In Projects and Communities, the Java Communications Community project zircdescribes itself as "an irc client written in pure java. It supports multi-server connections, dcc file sharing, mirc-compatible text coloration, smilies, a simple, intuitive interface... It has everything you may need to make your irc experience easy and enjoyable."

The public review for JSR 253: Mobile Telephony API (MTA) closes on Monday (Sept. 19). This JSR defines a set of functions, suitable for Java applications written for J2ME devices, for controlling calls and using network services like conferences, scheduled calls, and voice services.


Richard P Gabriel is talking up the OOPSLA conference in today's Weblogs. In OOPSLA 2005, he writes: "OOPSLA is coming up soon. As the premier object conference, OOPSLA should be of interest to members of the java.net community. I'm the program chair and have been working on revising the conference to be of interest to the larger programming community. Here are some reasons why I think you should attend OOPSLA this year."

Gregg Sporar files a report from the road NetBeans Day China: "After the success of the NetBeans Day that we did back in June, it was decided that NetBeans should go on a world tour. In other words, take NetBeans Day on the road to the folks who didn't make it to JavaOne in San Francisco. The first stop on the tour was Beijing, China..."

Malcolm Davis says he's impressed with Eclipse 3.2M1: "If you are using Eclipse 3.1, you may want to review Eclipse 3.2 M1. Eclipse 3.1 looked rushed. [Possibly trying to get ready for JavaOne.] I read the bug fixes for Eclipse 3.2 M1, which seemed to contain a large number of fixes for an 'M' release."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Unit testing and integration testing  
kfarnham

We Close Our Eyes Blog

Posted by kfarnham Sep 12, 2005

Truth, rumor, and Java source-code licenses

"NB, if you ever sign up, or even look at Java's source, you are no longer eligible to contribute to OSS Java projects as you are now contaminated!"

Interpretations like the above, stated with authority, carry a lot of weight, as they can be frequently repeated, spread about the developer community, with each new recipient taking them at face value.

Kind of a shame that this one isn't true.

This quote, taken from Andy Roberts' The Java Open Source Debate on NewsForge, was at least corrected (and the author graciously ack'ed the correction), but it's not hard to imagine how many such instances can help a bogus factoid take root.

More work has been done to clarify the Java Research License (JRL) to clarify developers' rights when looking at Java source code, and in his weblog entry, Java Research License Update, Ray Gans spells out the nature of the changes:

Thanks to thoughtful comments and questions from the community and great feedback at Java One, Sun has revised the Java Research License (JRL) to address several concerns that have been brought to our attention -- in particular with how it affects open source developers. As before, it is Sun's purpose to make its code easily available to developers under JRL for research and collaboration purposes and to not get in the way of other efforts. In addition we want to make the license possible for a non-lawyer to understand (which believe me is a challenge!) so people don't needlessly worry about accepting its terms. The changes we made are really just clarifications and some cleanup to the existing language, so no java.net projects using this license should be affected. The upshot of the update, we hope, is that more people will now be comfortable about participating in JRL projects.


Also in today's Weblogs, John Reynolds appreciates and contrasts the roles of Innovators and Remodellers: "I admit to RoR envy (It's fun, powerful and innovative) but I am more likely to actually use Facelets (in my work). Facelets doesn't have any fresh ideas (to speak of). It's the improvement of an existing framework (JSF) by the application of other's innovations (Tapestry et. al.)."

In Patterns: Not with Me, Andreas Schaefer writes: "I do not need patterns in my career as Java developer because I think I mastered Java before the patterns book became available. But I don't hate patterns and think they have their place where they are needed. That said many managers do not share my view of patterns and think I am some sort of weirdo, but I think they should rather take the time to view developers as a whole rather than squeeze them into a check list of skills they think they need."

In this week's Spotlight, The javaserverfaces project hosts Sun's implementation of the Java Server Faces standard (JSR 127). This technology allows for speedy development of web applications by combining reusable UI elements in a web page and connecting these to data sources and event handlers. The project offers not only nighly and weekly builds and the latest source, but also sample code that is highlighted in two recent Sun Developer Network articles: Creating and Using a Custom Render Kit and Unified Expression Language.


In Also in Java Today, with disasters fresh on the minds of many, the O'Reilly Network Databases site is featuring the dbazine.com blog entry Database Disaster Recovery: "A disaster recovery plan is like insurance – you're glad you have it, but you hope you don't need it. With insurance, you pay a regular fee so that you are covered if you have an accident. A disaster recovery plan is similar because you pay to implement your disaster recovery plan by designating a disaster recovery site, shipping backup copies of the data off-site, preparing recovery jobs, and practicing the recovery procedures."

"A major compensation index study for F500 firms finds a mixed picture for architects and developers. While employment rates are the highest they've been since 2001, wages have remained virtually flat during that 4-year period -- rising only about 5% during the entire period." The article Architect, Dev Employment Strong, Wages Flat also lists Java as one of the IT jobs in highest demand


In Projects and Communities, Thursday is the last day for individual Jini licensees to vote on the Porter Proposals, Part 2. The proposed changes are all security-related, touching on Jini activation, JERI, and trust verifiers. Information on the ballot, including how to participate, can be found in jini.org's vote project.

The Java Games Community forum Project Proposals gives community members an opportunity to vote on project approval. Projects proposed in accordance with the guidelinesare added to the forum for discussion and consideration.


In today's Forums,cavalleydude is looking for some activity Re: webstart in windows 64 "This is not reality, 64-bit Windows XP x64 is a desktop OS... plain and simple. You may not totally agree, but you cannot force reality. Windows x64 will be on desktops everywhere soon and the demand WILL come for the 64-bit webstart and plugin... blackdown.org already has it for Linux. We need it... like yesterday."

In Re: Is Mobicents ready for deployment, ivelin writes: "I think you will find all features that you are looking for available in Mobicents at this point. As far as stability and production quality is concerned, I would still be cautious to give you a definitive positive response. I will note though that there are at least two companies that use Mobicents in production or pilot products."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Truth, rumor, and Java source-code licenses  

EBay sniping, now with Java Desktop power

My theory is that one of the reasons desktop Java hasn't lived up to the lofty expectations is that web applciations stole a lot of their thunder. While the web app suffers from a far worse GUI (dicey AJAX gambits notwithstanding), it shares the advantage of being cross-platform, and can be installed an administered from a central location.

However, while the browser is fine for working with fairly static data, it's lousy at handling dynamic data. This may be an opportunity for Java: browsers are ill-suited for working with things like media, while Java can easily handle dynamic data and cross platforms easily.

Another form of dynamic data I hadn't considered is a live event, such as an eBay auction. But Roger Brinkley has, and he has a tale of success in his weblog JBidWatcher snipes. Roger describes himself as an eBaysniper: "Those ebay buyers that step in at the absolute last second and take the bid away from perspective bidders." He recently discovered a J2SE GUI application that offers far more power than just hitting the eBay web page:

Then I found JBidWatcher. JBidWatcher is a free open source project currently developed on Source Forge (sigh). As the JavaDesktp Community Leader it had immediate appeal. It was FREE, it was a Java client, I could run it on my own machine(s), it was FREE.

Read on for Roger's tales of success with JBidWatcher, and a follow-up comment from the author of the application.


Also in today's Weblogs. Jacob Hookom has anADF RoaR: "I've been reading a few blog entries about RoR presentations with all of the visual bells and whistles in relation to AJAX. I dug into the mechanics of it, asked around, and found a very large gem in the process."

In Quick tabbedpane switching w/o sacrifying mnemonics, Joerg Plewe writes: "Having JTabbedPanes with many tabs can be awkward concerning keyboard usage. Per-tab mnemonics are not really an option because they really limit the number of available mnemonics for the tabs own valuable content! The TabSwitcher utility can help!"


In Also in Java Today, "There are two challenges to making smart bug decisions: first, understanding how to make good bug-fix decisions; and second, creating and following a process that makes it easy to stick to those decisions when the pressure is high." With this "survival kit," Scott Berkun hopes to help you understand bug and RFE triage, in the article How to Decide What Bugs to Fix When, Part 1.

"Just as design patterns provide a way to communicate concisely about desired software practices, antipatterns provide the equivalent advantages for communicating undesirable practices." InAn Introduction to Antipatterns in Java Applications, Puneet Sangal shows how some of these common bad practices manifest themselves in J2SE and J2EE code.


The latest java.net Pollasks "When do you think you'll write your last line of Java code?" Cast your vote on the front page, then check out the results page for discussion and commentary.


In Projects and Communities, the Java Enterprise Community home page is spotlighting tgcalendar, a project in the community's incubator. tgcalendar is a JSP tag library to display calendars on web pages. It supports month-by-month navigation, event links, multi-day events, multiple events on one day, CSS style customization, and more.

On Friday, Sept. 9, from 8:00 AM to 4:00 PM PDT (1500-2300 UTC), the JXTA developer teams will hold an online chat devoted to the upcoming JXTA-C, JXME, and JXTA Java releases, including the recently-announced 2.3.5 beta. The chat will use MyJXTA2 which you can download or launch with Web Start.


In today's Forums,amyroh has good news in Re: Newbie question: How can I be authorised to download GlassFish?: "Many folks encountered permission error (as fyang1024 did) although 'accept the CDDL' link was highlighted in yellow, etc. We were finally able to get rid of click-through license step so users can download/checkout binaries and sources without getting permission error. Hope this helps!"

In Re: FileSystemWatcher, mthornton writes: "I notice that FAM only works one level deep. In other words you don't get notified of changes in subdirectories (if a file in an immediate subdirectory changes, you get a hint in that the subdirectory is notified as having changed). By contrast FileSystemWatcher can provide notification of changes in an entire directory tree."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



EBay sniping, now with Java Desktop power  

Eliminating glaring security holes

When you're developing a system, you can't help but imagine it being used in the proper way, the way that you offer it to your users. And that means that when you have a "First Name" field, you expect to get back something like Jane orOmar.

Not something like Jane' or 1=1 --

But, surprise, that's exactly what a nefarious user might do, and if you've set up your application to tack the name onto the end of an SQL statement like select * from customers where name = ', then the above code allows an attacker to see all the records in the database. Or crash it by returning far more records than you ever expected to handle.

Either way: oops.

What you need to do, argues Stephen Enright, is to validate your input. And in today's Feature Article,Handling Java Web Application Input, Part 1, he shows how just trying to catch invalid input will never be enough. Instead, he calls for a server-side strategy of screening to accept only valid data, rather than screening to reject invalid data. "The criterion here is that there will most likely be a case you simply cannot perceive... Moreover, by checking for validity, you reduce the potential for exploits through data masquerading. Data masquerading is the process by which insecure data is represented in a way to make it look secure.


In Also in Java Today, Application Development Trendsmagazine has posted a summary of Enterprise Systems' 2005 Salary Survey, providing links to each of the four parts of the detailed survey. ADT says "Overall, there is a cautious optimism about new and ongoing opportunities in IT which may translate into increased compensation... The IT job market has been strengthening over the past year, but many organizations have been aggressively cost cutting, keeping their IT departments lean and mean, according to a new salary survey of 1,170 enterprise IT sites conducted by Enterprise Systems." Looking specifically at how Java skills fare in different positions (see Part 1 of the detailed survey), Java is in the middle of the pack for Programmer Analyst salaries, ahead of VB and COBOL, but behind C/C++ and CICS. For Applications Programmers, Java trails only C/C++, but is at the back of the pack for Systems Programmers.

One of the most ambitious Java desktop applications fares poorly in a recent NewsForge review. In ThinkFree Office? Think Again, Bruce Byfield writes: "Running on GNU/Linux, ThinkFree Office performs far better than many people would expect a Java application to run." However, he criticizes its mimicry of the Microsoft Office GUI layout, instability with large documents, and problems when importing MS Office documents.


In Projects and Communities, the Flying Saucer team has announced Release 5 of their pure-Java XHTML/CSS renderer. Aside from performance improvements, they've also improved absolute positioning, float and clear support, and :hover and rollover support. Release 5 also provides directory listing in the browser, image browsing, proper DTD support, and more.

The bindmarkproject provides a comparison of open-source and commercial XML-to-Java binding libraries. While subjective factors like ease-of-use are detailed, most of the development is for performance comparisons. A recent update to the test schema improved the fairness of how certain numeric items are handled.


Kohsuke Kawaguchi has tips on http://weblogs.java.net/blog/kohsuke/archive/2005/09/using_fastinfos.html in today's Weblogs: "FastInfoset is an alternative way to represent/transfer XML infoset, which is generally much smaller and faster than textual XML representation. Some people asked in the forums how to use FastInfoset with JAXB. This is how."

Ben Galbraith shows off My Ultimate Home Office: "Over the past few years, I've been doing a lot of consulting out of my home office, and the trend will continue for at least the next year. Recently I decided, "Hey, if I'm going to be spending a lot of time in here, I might as well spruce up the place a bit." Over the past few weeks, I've upgraded. Let me tell you what I've got, why I like it, and in some cases, why I still haven't found nirvana yet"

In Easier to access GlassFish, Carla Mott announces: "We removed click-through and just made it easier to participate in project GlassFish."


There's more forward-looking posts in today's Forums. In Re: #region like what is in C#, euxx writes: "By the way, code-level annotations would allow to hint UML tools that is doung roundtripping for non-class diagrams (e.g. sequence and activity). For instance, stick labels and other UML info to the code. Actually I love how it is been done for class diagrams in Together, but code-level annotations would allow to move things even further."

jitu has some ideas Re: Deployment of a Web Service: "JAXWS 2.0 spec won't define deployment but 109.next would specify deployment requirements for JAXWS services. I think there is way to do deployment without descriptors in some cases on 109-aware containers. JAXWS RI works in non-109-aware containers and it has a proprietary deployment descriptor."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Eliminating glaring security holes  
kfarnham

The Human Touch Blog

Posted by kfarnham Sep 7, 2005

Do some programmers avoid their users?

There's a really interesting comment in a discussion on Desktop Careers in the Your Java Career forum. I'll let johnreynolds take it from here:

As a User Interaction person, you are going to have to deal with Users and their Opinions. The further you move towards the technical end of the spectrum, the less you will have to deal with uncertainty (the wire protocol either works, or it doesn't).

For most of my career, I have worked on the User side with technologies all the way from character mode DOS to Swing to HTML. I've always worked for small companies, because I like gathering input from users and negotiating solutions. I couldn't code a UI to a concrete specification if you put a gun to my head.

Friends of mine hate this kind of work. Any ambiguity in a requirement drives them batty. These guys are great at writing device drivers.

If you're a desktop programmer, you've probably been in both of these moods. Desktop Java is what I've done for most of my career, and like John, I'd prefer to work with people directly, and get my GUI right in front of them. That said, a few rounds with testers -- especially when QA is hired late in the game and doesn't know what the app is supposed to do -- can send me running for the server side. My personal low point: a tester who was convinced she could crash our Java application by dropping the mouse from a height of several inches. Seriously.

So, it's understandable that you might want to work on the back-end, or at the framework/middleware level, where you'll primarily work with other developers and their standards. You know your values will be respected and you know you'll be able to communicate how much effort things take. Another true story: a non-technical friend of mine hated a new system that his company had installed because it didn't have undo. He figured they were lazy idiots because "it's only one menu item."

On the other hand, if you're intrinsically drawn to working on the desktop, working with people and doing work that directly affects them, chances are you can't help it. That's what you like, and while it's not the hottest thing in Java (not by a long shot), it's what matters to you.


Also in today's Forums, the Mobicents project has kicked off an effort for XMPP Resource Adaptor collaboration. ivelinwrites: "This message begins a new thread an collaboration between interested parties to a new XMPP RA. The RA will be compatible with Jabber software as well as Google Talk. In the future it will also support the voice XMPP extensions proposed by Google. pchaino at PT, Lisbon expressed intention to contribute a working prototype, which should be a great starting point. Vodafone R&D also expressed open interest in the RA and is willing to work closely with PT on it once it is contributed to the Mobicents CVS. I would like to encourage the folks from both companies to add a message to this thread with their current status and future plans with the XMPP RA."


Jacob Hookom is brain-storming Tomorrow's Webtop Application in today's Weblogs. He writes: "Thin clients will probably continue to be the deployment of choice, but so many developers spend all of their time trying to dress up a web page to act/feel like a desktop application. What will you use to develop your next desktop application?"

In Ocean, Gradients and Image Caching - oh my Scott Violet shows off "how Ocean gradients are drawn and how we were able to make Ocean perform as well as Steel."

Tim Boudreau is soliciting feedback about "Split Class" refactoring: "For a while now, I've been thinking a refactoring I've never seen would be pretty useful. Tell me if it's a good idea, or if it just means my style of coding is too chaotic and I'm crazy :-)"


In Projects and Communities, Jason Lam is releasing his work-in-progress book J2ME & Gaming under the GPL. The book "is about programming with J2ME on wireless devices with focus on developing games... The book also serves as quick reference for Java programmers who are interested in game mobile game development." PDF's are available along with source at the book's site.

Do I need to change my Java application to run on Intel-based Macintosh computers? This Apple Technical Q & A says the answer is generally "no". However, JNI libraries and applications that use native launchers must be rebuilt as "universal binaries", as they do notrun under Rosetta. The article also illustrates updating XCode projects to create universal binaries.


In Also in Java Today, with the growing popularity of content management applications, the need for a common, standardized API for content repositories has become apparent. The Content Repository for Java Technology API (JSR-170) aims to provide such an interface. In Introducing the Java Content Repository API, you'll use the open source Apache Jackrabbit implementation of JSR-170 to explore the features offered by this promising framework by designing a simple Wikipedia-like encyclopedia backend.

IRC is great, but who has time to switch from their work to the IRC client every few seconds? Fortunately, Java can help you out. In the reprised feature IRC Text to Speech with Java, Paul Mutton shows how you can connect two open source frameworks--one for the IRC client and the other for converting text to speech--and then just listen in to the conversation over headphones or speakers.


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Do some programmers avoid their users?  
kfarnham

One More Time Blog

Posted by kfarnham Sep 6, 2005

Returning to "Head First" country

One of our most popular, and maybe a little controversial, Featured Articles is Breaking the Last Dependency by Head First Design Patterns co-authors Elisabeth Freeman and Eric Freeman. Our database shows us that a lot of people have read this article since its original appearance, and the great number of talkbacks show that many have had different reactions to it.

One criticism you'll see in the comments is that the code isn't the most efficient, but that's to be expected of code that's illustrating a new technique -- things will be different in the run-once example versus the up-for-months server. You have to start somewhere.

What's maybe more interesting is how their approach changes the nature of programming. A quick recap: the idea of the article is that the Factory Pattern described in the book still depends on instantiating and returning concrete classes... a behavior not entirely true to the goal of programming to interfaces. The authors say: "As Head First Design Patterns was about to go to press, Erich Gamma sent us a note suggesting that in the factory pattern chapter we should break the last dependency and show how to write code that does away with concrete classes completely." The technique of doing so uses a property file to describe which classes should be provided by the factory, and using reflection to instatiate them.

Some of the comments reflect the idea that this effectively makes the properties files part of your "code", and a part that doesn't benefit from Java compile-time checking. As readernapier notes:

Some comments mention that this technique will break compile-time checks, but it seems to me that's inevitable. If you break the last dependency, then you have isolated one set of classes from another (through properties files, reflection, etc.), so that the classes don't need to know about each other. You'll lose the compile time checks but if want the code to function independently you'll have to give up something. What you gain is code that is actually modular, which in certain situations can be very valuable.

Take a look at this piece if you haven't before, and even if you have, have your opinions of this approach changed? With the increasing use of annotations, dependency injections, and other styles of meta-programming, do the objections still stand, or are they increasingly typical of modern Java programming practices? And is completely eliminating the dependency on concrete classes worth it?


John O'Conner is bothered by a gotcha of Building Java SE 6.0 (Mustang) on Windows In today's Weblogs: "Mustang requires the Microsoft Visual C++ compiler for builds. Although Sun is encouraging users to download, build, and improve Mustang, does this compiler requirement effectively limit participants? Do the majority of contributors come from Linux backgrounds, where dev tools are open and free?"

In XML, Readers, and Streams: A Cautionary Tale, Ben Galbraith laments: "If a system's glitches can be compared to fish, I want to tell you about my white whale. Learn from me. Spare yourself the pain of wrestling with this one yourself. Make me feel my time was well spent.

Romain Guy highlights desktop Java in Zoom Pictures with SwingLabs FX: "SwingLabs FX module provides new Swing components to create interesting effects. See how to use the new ZoomableImagePanel together with other effects."


In Also in Java Today, the article Web Services: REST in Peace? presents the case that the REST and orthodox positions have not only converged, but that the so-called orthodoxy has actually surpassed the REST architectural principles by decoupling the Web from Web Services and reducing the REST approach to a subset of the new Web Services architecture. "While the Web Services community has much to thank the REST community for in terms the insight they brought to the discussion, the fact is that Web Services -- at least in more enlightened quarters -- are now on the right track."

JDBC 4 is the forthcoming release of the Java Database Connectivity API. Currently in Early Draft Review in the JCP (JSR 221), JDBC 4 is a major new release with a strong focus on ease-of-use and programmer productivity. The new JDBC version also introduces support for SQL 2003 data types, including SQL's native XML type. Frank Sommers' Upcoming Features in JDBC 4 has a preview of what's next for JDBC programmers.


In Projects and Communities, the latest JavaTools Community Newsletter announces the graduation of the Hibernate Query Editor (HQE)project from the community incubator. HQE simplifies the creation of HQL/SQL queries for Hibernate by adding syntax coloring and other conveniences.

The early draft review for JSR 246: Device Management API closes on Wednesday (Sept. 7). This JSR is an optional package for the J2ME CLDC configuration that provides a generic interface to the device management implementation specific to the device.


More discussions about feature creep appear un today's Forums. In Re: #region like what is in C#, kcpeppe writes: "Are you suggesting that we implement every idea that comes through this forum? What would the language do if we did that. I don't think the idea is to halt langauge evoluation. However, we do need to be selective about what is accepted and what isn't. There is a fine line between language features that are disruptive and those that are helpful. Sometimes innocent language features can destabilize the usability of the language. I think that is only one criteria in which changes to the language needs to be evaluated before embarking on the change because once released into the wild, there is no chance of pulling it back."

jam1000b wonders if there's an Accounting system framework available? "I am scoping a project to be developed in Java that needs a basic accounting sub-system ... AR, AP, GL ... the basics only but for a large volume of transactions. Does anyone know of a customizable Accounting framework built in Java that implements the accounting business rules and provides an API for building the user interface? Any advice will be highly appreciated."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Returning to "Head First" country  
kfarnham

Be My Number Two Blog

Posted by kfarnham Sep 5, 2005

When it helps to have two voices

No, you're not seeing double. Today's front page does have two blogs on the same topic, namely the renumbering of the next version of NetBeans 5.0. Space-saving filler to get through a holiday weekend in the U.S.? Hardly. Let me explain.

Two of the roles that weblogs are best suited for are reporting and commenting on developing events. Blogs go straight up to the site with no delays for production or editorial changes, making them good at getting the word out quickly when things happen. But since each blog author has his or her own distinct "voice" -- a combination of background, values, skill, and style -- bloggers implicitly comment on things just by their choices of what's worth blogging about, what kinds of details to write about, and what they have to say about them.

For example, Gregg Sporar's (4.2 == 5.0) says that the new IDE features are "significant enough that they justify a change on the left of the decimal point", singling out (among others), the Project Matisse visual UI editor, rewritten CVS support, improvements to editor features like code completion and hints, and more.

Tim Boudreau's Zdrasvitsie NetBeans 5.0 (yes, 5.0) also justifies the new version number, but it's not about the IDE features at all. Instead, Tim writes about "the really nice new support for building RCP apps on the NetBeans platform". Adding that "in NetBeans 5.0, apisupport is back in a big way", he iterates through some of the rich client platform features in NetBeans 5.0, including "fix and continue" debugging, changing branding with a plug-in, building a distribution painlessly, etc.


Also in today's Weblogs. Binod kicks off his blog by talking about Lazy Initialization of Application Server Services: "This is my first ever blog. I got many e-mails recently, asking me details about a feature called on-demand initialization (or lazy initialization) in Sun Java System Application Server or GlassFish (http://glassfish.dev.java.net) and I thought I could use this blog post to explain what it is all about."


In this week's Spotlight: "The AtLeap project describes itself as "a multilingual free Java CMS (Content Management System) with full-text search engine. Blandware AtLeap is a framework which allows you to rapidly start your own Web application." The servlet-based system handles multi-lingual content and offers many search and customization options. Project owner Andrey Grebnev also notes in his blog that AtLeap won second place in the J2EE division of a recent Sun-sponsored Java programming contest."


You can help prioritize a Mustang RFE in today's Forums, in whichtimbell asks for Any remarks on 6307387: Add String.endsWithIgnoreCase(String suffix)? "Since this is an RFE rather than a bug fix, the RE (Responsible Engineer: a domain expert in this area) is pushing back on the request. The question is: would this addition carry its own weight without adding unused clutter and complexity to the language and the test suite. Of course, making this method part of the API would require adding compatability and functionality tests to cover it. So: we are interested in starting a discussion here. Would you use String.endsWithIgnoreCase(String suffix), or not? If you could spend a dollar on adding new methods to the next JDK release, how much would you spend on Bug 6307387?"

Mustang downloaders, don't panic: kellyohair saysBuild 50 Windows binary download size increase is a bug: "Don't be shocked if the download size of the Windows JRE and JDK install bundles are bigger, it's a mistake, my mistake. I've been trying to keep the *.PDB and *.MAP files around so that the JDK developers have an easier time analyzing problems, and I thought I had stripped them out prior to the installshield bundling. I got it wrong and these rather large files ended up in the JRE and JDK binary image downloads. This will be fixed in Build 51. My apologies if I give anyone a heart attack over this. "


In Also in Java Today, one of the popular features of the J2SE 5.0 libraries is the addition of concurrency utilities. Provided as part of JSR 166, the utilities provide advanced concurrency programming capabilities that take developers beyond the synchronized keyword and related synchronized blocks. One of the areas improved by the concurrency utilities is locking. Core Java Tech Tips: Locks introduces locks, interruptibility, timeouts, and more.

Debugging web applications might mean digging through log files to figure out what went wrong after the fact, but that's not necessary anymore. With a proper runtime configuration and the right tools, you can debug your server-side app from the comfort of your IDE. In Configuring Eclipse for Remote Debugging, Deepak Vohra shows how to set up Eclipse to debug an application deployed in JBoss on another box. He also notes that the technique should work for other application servers, like WebLogic, provided they run in debug mode.


In Projects and Communities, the JavaDesktop Communityhas made another Swing Sighting: "jPodder is a news aggregator specialized in audio content, known as podcasts. It lets you download audio content to your favorite media player -- computer, iPod, etc. -- or even publish your own podcasts." JPodder is also Unix Review's Linux App of the Month.

The Jini communityis featuring Calum Shaw-Mackay's Dependency Injection and Jini Configurations, in which he shows a simple form of dependency injection through which the values in a Jini configuration file can be injected into the fields of a class, and are thus easier for the class to retrieve at runtime.


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



When it helps to have two voices  
kfarnham

A Day in the Life Blog

Posted by kfarnham Sep 2, 2005

The making of the front page.

5:30 - Alarm (current selection: Final Fantasy Theme [iTunes link] by Nobuo Uematsu)

5:40 - I'm at my computer, heading to weblogs

5:42 - Switch on Armitunes

5:45 - Romain's blog is really good, definitely posting that. It must have been a huge hassle posting all the screenshots. IM shows him as available... is he really up that late (2:45 AM) in CA?

5:48 - Have three blogs picked for the front page. Romain and Arun's descriptions aren't long enough to wrap around their pictures, so I'll have to use excerpts from each blog as a description instead.

5:54 - Weblogs are done, looking at forums. Looks like there's activity in the community/project-specific forums (GlassFish, JAXB, Mobicents, etc.), Mustang, and the new Performance and Your Java Career forums.

5:57 - A "relational versus object db" question in performance forum. That's something I haven't seen brought up in a while. Still, "3,000 times faster than mysql"? When is anything ever 3,000 times faster than anything else under any real-world conditions?

6:00 - Really nice post about bug fixes in Mustang contributed by outsiders. Important to get the word out that that's happening, so that'll be the second forum item.

6:04 - I'm done editing forum post descriptions - added links to the JDK one.

6:05 - AIJT (Also in Java Today) blurbs. One AIJT is already written, and I've left myself a note on a second one from a newsletter that arrived yesterday.

6:12 - P&C (Projects and Communities) blurbs. Because we "share the wealth" of the 10 weekly P&C slots on the front page, we don't like to run P&C's from any of the 20 communities more than once a week. So, I shouldn't use NetBeans, WS-XML, Portlet, Mac, Games, JavaPedia, Jini, or Tools.

6:14 - Check RSS feeds. Three community pages have updated: WS-XML, JavaPedia, and Desktop. Can't use the first two, and the third points to Romain's blog (got it), and Joshy's article (got it). So I need to start researching. Still, the BindMark announcement on WS-XML is interesting and we'll want to point out this project sometime soon. Pencil in for next week.

6:24 - I thought there was something JXTA-related in my mail, but apparently not. Keep looking. BTW, 17 new e-mails overnight. If Chris gets 50 e-mails a day and needs five minutes to read and respond to each, will he ever get any work done?

6:26 - Item 1 can be Portlet Community's pointer to JBoss PortletSwap. Portlets had been quiet for a while, but I'm hearing more about them from many places.

6:27 - Editor-in-Chief Daniel Steinberg appears on IM.

6:29 - Portlet blurb written. A little over four lines, so the next one will have to be that long too, so they balance when displayed side-by-side on the front page.

6:32 - Enterprise page features AppFuse 1.8.2, but it's a bugfix release with no new features. AppFuse is great, but is this front page news for me? Probably not.

6:35 - Nothing new on the Communications page, but Mobicents has been really active lately, check their page... ah ha, an announcement that they're able to handle 10 calls/second. That's an interesting development, so I'll use that.

6:41 - Setting up the poll. I wrote a list of poll questions a while back, so there's one ready to use. It's the last one, so I need to write new questions this week.

6:45 - Poll is ready

6:46 - Where's "Itooshii Hito no Tame ni"? Usually someone on Armitunes puts it in the queue to play sometime around 6:30 AM (US Eastern).

6:48 - Start pushing front page out to the server, section by section.

6:49 - P&C's don't quite balance. Need to lose or gain a word on one side or the other.

6:51 - Fixed P&C's.

6:52 - AIJT's are up.

6:53 - Weblogs are up.

6:54 - Forum postings are up.

6:57 - Poll is up.

7:00 - E-mail from Daniel about an infrastructure project. Instead of collaborating via SubEthaEdit, we'll write our two sides separately. Pity that Java doesn't have an equivalent to SEE... Multitaneous isn't it, at least not yet.

7:02 - Time for news. Steve Mallett writes them - I just do a quick check and arrange them on the page to reduce spacing problems (which may be inevitable today).

7:07 - Hmmm... JBoss Wiki is a portlet? That's an interesting approach.

7:11 - News is up.

7:13 - Double-check - page is all set, except for daily blog, which I'll write after exercise, shower, and breakfast. Of course, by keeping these notes, I've been writing it all along.

7:14 - Just realized I broke my repetition guideline by running a portlet P&C. Oh well, it's a good link.

7:20 - Exercise: half-hour of StepMania.

8:02 - Done with exercise. High score #9 (but only because I had added two songs to the routine, thus increasing the number of possible points).

8:55 - Back to put the daily blog together. I wonder how many people use this as, effectively, an RSS version of the front page

9:05 - Blog content is ready, but needs HTML formatting. This is why I have BBEdit.

9:24 - HTML and spell check done. Heading to Movable Type.

9:32 - Two typos, some HTML fixes, but otherwise ready. Here we go!


In Projects and Communities, the open-source VoIP project Mobicents has posted an update on their performance accomplishments: "We can run at 10 calls per second sustained. Still a far cry from the carrier grade 100+. Do you want to bet how long before we get there or you want to help and be part of the success?"

The Portlet Community page points out JBoss PortletSwap, "a community gathering place for JBoss Portal developers to publish and share portlets, themes and layouts. Portletswap is a one-stop-shop for JSR-168compliant portlets and JBoss Portal themes and layouts for use in JBoss Portal."


timbell has an update on JDK collaboration bug fixes in recent Mustang builds in today'sForums: "JDK collaboration fixes are making their way through our internal bug-fix pipeline. If you look at the change documents provided with each promotion, you will find these Bug-IDs listed. I thought it would be useful to give an update on contributed fixes that have been integrated in recent Mustang builds"

wte is weighing JDBC vs ODBMS: "I'm thinking about using Spring + Hibernate + MySQL. But I've recalled that there are also ODMBS Java databases. I googled the web for searching such engines and found prevlayer and db4o. These engines are really cool and pretty easy to use. But on the prevlayer website I read that this mechanism is 3000 times faster than MYSQL. Does anybody have experience with ODBMS? What can you say about ODBMS performance?"


The current java.net Poll asks "What kind of Java metadata would you like to see other languages adopt?" Please cast your vote on the front page, then join the discussion on the results page.

In today's Weblogs, Romain Guy unveils his Synth Studio: "When I started working at Sun, I wrote three tools to help me create Synth look and feels for Swing. The downloadable archive contains everything you need to run them but I haven't included the source code yet, for I need to figure out which license to use."

Arun Gupta works out a best practice in List of annotations in Annotation Processor Factory: "Relying upon factorypath or classpath for the correct annotation processor to claim the annotations can lead to unpredictable results. I fixed this problem in the JAX-WS annotation processor factory by fully qualifying the annotations that can be claimed."

In Great Javascript resources, John Reynolds writes: "AJAX has rekindled my interest in Javascript, and much to my delight there are a lot of great library resources out there."


In Also in Java Today, the "J" in NeoOffice/J stands for Java, and without it, Mac OS X users wouldn't be able to run OpenOffice.org without a very un-Mac-like X11 server. NeoOffice/J uses Java to provide a user interface that Mac users expect, tying into the Mac's menu bar, printing, copy and paste, drag and drop, and other UI systems. In What Is NeoOffice/J (and Can It Replace MS Office) Matthew Russell makes the case for making NeoOffice/J your primary office suite, and interviews lead developer Patrick Luby about Mac Java issues, such as Apple's very different 1.3 and 1.4 implementations and the end of Cocoa-Java, and how they affect this popular suite.

Do you need to build a sophisticated Java desktop application? Do you need things like window management, file editing, online help and maybe a plug-in system? Are you going to write all that yourself? Why? In Getting Started with the NetBeans Platform, Tom Wheeler makes the case for building your app on the foundations of one of the biggest Swing applications out there: NetBeans. "When developers think of NetBeans, they typically think of the popular open-source IDE. I want to be clear from the beginning: this is not an article about how to use the IDE. Instead, I'll explain how to get a head start towards creating desktop applications by reusing the infrastructure on which the IDE itself is built."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



9:34 - E major!

The making of the front page  

Easily distributing your desktop app

More and more J2SE apps are appearing with Java Web Start launchers, such as several JAXB tools noted in the latest Projects and Communities (see below). And why not -- a little work spent by the developer up-front to make an application deliverable by Web Start saves a number of installation and launching hassles for the user, hassles that would probably just become calls to tech support or complaints to the developer anyways.

But Java Web Start has more to offer than just click-and-launch functionality. A collection of options allows the Web-Start-ed application to nestle into a permanent place on the user's system (with his or her permission, of course), and pick up such native-platform integrations as a place in the Start Menu (or equivalent) and document associations. And if you're really ambitious, there's more.

In the Feature Article, Java Sketchbook: Digging into Java Web Start Joshua Marinacci continues his overview of JWS, showing off advanced features like dealing with the security sandbox -- including using JWS-specific API's or signed code to access needed functionality -- speeding downloads with Pack 200 compression, and more.


In Projects and Communities, the JAXB-Workshop projectprovides tools for working with JAXB. The tools, all of which have Web Start launchers, include Milano (an IDE for viewing schemas and generating classes), Genoa (a scrambler for XML schema), and Verona, a parser for XML colorers.

Like a pop star touring to support a new album, NetBeans is hitting the road for the NetBeans worldTour. Members of the NetBeans team (and special guests) "will discuss what's new in the 4.1 IDE and the NetBeans Mobility Pack, as well as what is coming in NetBeans 5.0". The first date is Sept. 12 in Beijing, China.


In today's Forums,tmarble talks about Mustang performance in Re: Will be stack-allocation based on escape analysis integrated in Mustang: "We usually publish results of performance improvements from release to release (for example, see the J2SE 5.0 Performance Whitepaper). Although we have given some early indications of Mustang performance (see the slides from "TS-7984 Java Platform Performance" from JavaOne San Francisco 2005), we don't publish performance results prior to a release. Understandably some prospective optimizations work and some don't but rest assured that we now have quite an impressive battery of automated performance testing and, for most platforms and most benchmarks, we are seeing nice performance improvements in Mustang relative to Tiger."

Re: Annotating 3rd party classes defends annotations against recent criticisms. subanark writes "Without annotations people will often rely on naming conventions on methods for 'annotation' purposes, such as prepending get and set in a method to mean getters and setters. Although this naming convention is not evil by itself, the reflection used by some classes (e.g. classes in the java.beans package) to determine properties is evil. Further development of the java.beans package should adopt and encourage the use of annotations.


In Also in Java Today, the O'Reilly Network Databases site points out an article-like weblog entry that may be of use if you're using and maintaining an Oracle database for your J2EE system. In 10G Segment Advisor, Chris Foot writes: "The 10G segment advisor identifies segments that have become fragmented as a result of update and delete operations. Oracle describes these objects as being sparsely populated. Not only do sparsely populated objects waste space but they can also contribute to SQL performance problems. This blog will show you how to use the 10G segment advisor to identify sparsely populated segments. In my next blog, we'll discuss the different alternatives we can use to reclaim the wasted space."

"While Struts and many other Model View Controller (MVC) frameworks from the early 2000s are largely operation-centric and stateless, the frameworks emerging most strongly are component-based and event-driven. The leading contenders in this space are the new "standard", JavaServer Faces (JSF), and Struts' cousin from the Apache Jakarta project, Tapestry." In JavaServer Faces vs. Tapestry: A Head-to-Head Comparison, Phil Zoio puts these frameworks head-to-head, comparing each on its merits: "we rate the two on critical aspects of their design, development and runtime environments."


David Van Couvering attacks The problem of identity in today's Weblogs: "What is it that makes two objects different, and how can you tell they are different? This is an important aspect of database design, and it has wide-ranging social impact."

In Learning from the BluePrints, Gregg Sporar writes: "Sun's BluePrint solutions are a good way to learn best practices. NetBeans makes it easier by providing BluePrints that are ready to run."

The cajo what? John Catherino writes: "With two major milestones this month; our 100th new member, and our official recognition by the Internet Assigned Numbers Authority: The cajo project is quite likely, the most famous unknown project on the net! Please help me let this cat out of the bag..."


In today's java.net News Headlines :

Registered users can submit news items for the java.net 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 thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Easily distributing your desktop app  

Filter Blog

By date: