Skip navigation
kfarnham

I Want It All Blog

Posted by kfarnham Mar 31, 2006

Paul Graham on patent trolls, Venitian glass-blowers, and hockey

The wretched silliness of software trivialities and obviousness that are granted patents by the U.S. Patent Office is a popular and easy target of scorn from technically-minded folks. A popular response is to declare that the very idea of software patents is nonsense at best and at worst the end of innovation in the tech industry.

Paul Graham will meet you half-way -- a lot of the things that get patents shouldn't -- but he makes a surprising case in favor of software patents in his essay Are Software Patents Evil? In it, he argues that holding and using software patents are two different things, the first isn't necessarily wrong, and the second has its defenses as well:

Google clearly doesn't feel that merely holding patents is evil. They've applied for a lot of them. Are they hypocrites? Are patents evil?

There are really two variants of that question, and people answering it often aren't clear in their own minds which they're answering. There's a narrow variant: is it bad, given the current legal system, to apply for patents? and also a broader one: it is bad that the current legal system allows patents?

These are separate questions. For example, in preindustrial societies like medieval Europe, when someone attacked you, you didn't call the police. There were no police. When attacked, you were supposed to fight back, and there were conventions about how to do it. Was this wrong? That's two questions: was it wrong to take justice into your own hands, and was it wrong that you had to? We tend to say yes to the second, but no to the first. If no one else will defend you, you have to defend yourself.


Further in Also in Java Today, "It sometimes seems like widely popular web-standards innovation halted around 2000, and the last few years have been a period of very slow catch-up. Various visions of a new Web, a better Web, have come and gone, leaving behind useful parts but not yet transforming the Web. Are we on the edge of the next big thing? It may make sense to look at the last few big things, comparing their visions with what's happening today." In the xml.com article The Next Web? Simon St. Laurent traces the promises and progress of various "Next Big Thing" contenders: the XML Web, the Semantic Web, the Services Web, the Next XHTML, and AJAX.


The latest java.net Poll asks "Have you tried the Mustang (Java SE 6) beta?" Cast your vote on the front page, then visit the results page for results and discussion.


In today's Forums,leo_test seeks help with Threads in GUIs for 1.5: "Next I'm getting confused about the Locks - What is the advantage to adapt code to 1.5 and not use any longer the synchronized in the method-name? (using lock resp. trylock instead of synchronized). And finally I am even more confused, cause I've found as well SwingWorkers. So, does this mean instead of hacking my own Thread-handling SwingWorker is the *better* approach? What's the benefit instead of starting the Thread by myself?"

beemer_addict has a clever hack in Re: Full Screen Mode on Linux: "I have found a workaround: A kind of 'poor mans' fullscreen mode: You simply maximize the window and remove the decorations. Works fine both on windows and linux win Java 1.4.2 and 1.5.0"


Nigel Daley has a grid computing introduction in today's Weblogs. In Compute Server: how it works, he writes: "The recently createdCompute Serverproject aims to enable Java developers to easily and efficiently use the Sun Grid Compute Utility as a platform for the distributed execution of parallel jobs. I thought it might be helpful to give a 50,000 foot overview of the recently created Compute Server project."

David Herron considers the surprisingly related issues ofScripting language support and whether Java needs to be open sourced: "I came across this article Former Sun Exec Calls for Firm to Open-Source Java which is repeating yet another in the series of calls for Sun to open source our Java implementation. [...] There is a part I want to examine a bit."

In Java Web Services (JWS) 2.0, Changshin Lee writes: "While I was working on preparing slides for my session on TmaxDay 2006, I came up with some idea of grouping and classifying Java web services technologies"


In Projects and Communities, Today (Friday, March 31) is the final day for entries in the Mustang Regression Challenge, which offers a t-shirt to every verified regression and an Ultra 20 workstation to the top five as judged by Sun's Java engineering and QA teams. Regression bugs will still be welcome after the deadline, but today is the last day for the contest.

The 74th issue of the JavaTools Community Newsletter rounds up tool-related news items from around the web, offers a "tool tip" for using Subversion when starting a new java.net project, welcomes four projects to the community, and congratulates three projects on their graduation from the tools community incubator.


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 the java.net News RSS feed.


Current and upcoming Java Events :

kfarnham

I Want to Break Free Blog

Posted by kfarnham Mar 30, 2006

So long GridBagLayout, hello XML

Ethan Nicholas picked up a lot of attention last week when he blogged about Style Swing components using CSS. In that blog, he talked about the value of separating controls from presentation, and why he chose CSS as a styling syntax for the JAXX Framework.

JAXX Framework?, you ask, q'est-ce que c'est?

Ethan returns with the answer in today's Feature Article,Introducing JAXX: A New Way to Swing: JAXX is a free, open source XML user interface language for Java. Instead of writing .java files representing Swing components, you instead write XML-based .jaxx files. Just like .java files, .jaxx files compile into ordinary Java classes.

Now, stop me if you've heard this before... and if you visit the site regularly, you'll remember we covered another XML-to-Swing library last month. But JAXX offers some really interesting ideas of setting up event-wiring and providing automatic data binding, which could save you the hassle of writing dozens of listener classes.

And, to go back where we started in Ethan's blog from last week, you can re-skin your application by playing with the CSS. It looks like a very interesting project -- check it out and let us know what you think.


In Projects and Communities, a JXTA mailing list message announces the release of JXTA Java SE 2.3.7 "Bisi Bele Baath". This release, the first to require Java 5.0, addresses a number of configuration issues, eliminating a long-obsolete Config class and improving handling of the home directory. Prebuilt binaries are available on the JXTA download page.

The latest NetBeans IDE 5.0 release is now available in Simplified Chinese and Japanese. The NetBeans news page adds: "Did you know that there is work currently under way in other languages? If you want to get involved or just take a look at what is taking place visit the translated files home page."


In today's Forums,ss141213 lays down the law for GlassFish in Re: Dependency injection of datasource in servlet is not working: "There is something wrong here. Adding version="2.5" to web.xml must not make a difference. You should be able to use dependency injection in your servlet even if your web.xml contains version="2.4". This is a bug in the container. The version attribute in web.xml is not the version of the Java EE(or J2EE) spec the application is written against. It is just the schema version of the web.xml. I have just filed a P2 to track this issue."

tuxtlequino needs help Running a jar file without the -Djava.library.path instruction: "Ok, my application is running, but not as I would like it to run. I still need to use the -Djava.library.path instruction or I get the error: java.lang.UnsatisfiedLinkError: no jdic in java.library.path . I want to know if it is possible to run my jar without that instruction. It would make it much easier to run. The jdic has it own folder (/org/jdesktop/jdic/) inside the jar. I have tried a lot of things, but nothing seems to work. I want to bo able to run everything from a single jar."


In Also in Java Today, a new Artima discussion is taking a look at the views expressed in a Java Futures Panel at TSS Symposium. "Last week's ServerSide Java Symposium concluded with a panel about the futures of Java that included half a dozen Java thought leaders. The discussion focused on what Java can learn from scripting frameworks, such as Rails, where open-source is leading Java, and why open-source is not free." eWeek also covered the session in the article Panel: Java Will Endure.

Garbage collection is nearly everyone's favorite feature of the Java platform; it simplifies development and eliminates entire categories of potential code errors. But while garbage collection generally allows you to ignore resource management, sometimes you have to do some housekeeping on your own. In Good housekeeping practices, Brian Goetz discusses the limitations of garbage collection and identifies situations when you have to do your own housecleaning.


Jacob Hookom talks up the Facelets Milestone Release in today's Weblogs: "Facelets recently revised its compiler to create a view layer that works with JavaServer Faces in it's most true form. It's the most practical way of delivering rich, component-based web applications with the ease of Model 1 development."

Romain Guy announces the availability of A lot of free articles: "If you can read French and like programming, you should enjoy what I have to announce."

In Testing some FrameWorks and applications on Glassfish build 40+ part III, Masoud Kalali writes: "This is part III of this series, in which I am trying to deploy at least a sample application on GlassFish. I used most of the frameworks or applications that I am testing in my previous jobs, maybe their older versions. In this part, I will test OSWorkflow from OpenSymphony" 

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 the java.net News RSS feed.


Current and upcoming Java Events :

kfarnham

Crazy Little Thing Blog

Posted by kfarnham Mar 29, 2006

So what's the deal with Java ME anyways?

So, apropos of nothing in particular on the front page... we've been talking about various topics among the O'Reilly editors and one thing that came up was what seems like a Java ME conundrum. To wit: people keep asking for ME content, but the actual ME readership seems very low. Maybe that means that the ME contingent, while small relative to the overwhelming number of enterprise Java developers, is quite vocal.

Here's an alternative hypothesis I'm floating -- people have figured out that there's a detach between what the official docs say you can do with Java ME, and what you can actually put on a phone, or a set-top box, or a Blu-Ray disc player. Come to think of it, how do you even get your app out of the emulator and onto those devices, especially the second two? This hypothesis implies that there's a bigger audience for Java ME content than is generally understood, and that they're not well served by content that doesn't drift far from the published API's.

What do you think? Do you want to know more about Java ME? Have you tried working with it and gotten stuck? If so, what are the sticking points? Or is ME really a tiny little niche after all?

Comment section is below. Do join in -- this is something that continues to boggle a lot of people, myself included.


Openly considering a potential Swing feature in today's Projects and Communities, Romain Guy blogs about a SwingX Painters Demo: "Richar Bair recently introduced painters in SwingX, something we have been considering for Swing as well. A painter can be seen as a delegate you can plug into a component to change its appearance."

JBoss' Julien Viet will be hosting a BOF on Portlet Best Practices at JavaOne 2006 and is asking for your input. "In order to prepare and promote this event I am gathering input from the Portlet community and I would like to know what people would like to learn and talk about."


In Also in Java Today, the Google:maps project offers "a freeware, open-source project to provide a 100% Java front-end to the GoogleMaps API." Being based on JavaServer Pages, it means "no Javascript, AJAX or APIs to learn, just JSP tags. The taglibrary does all the grunt work for you, providing cross-browser and clean GoogleMaps output, every time." The project was recently featured in a JDJ article.

Continuing with an excerpt from Zero Configuration Networking, The Definitive Guide, Stuart Cheshire and Daniel H. Steinberg move to the client side in Zero Configuration Networking: Using the Java APIs, Part 2. They show how to browse for and resolve services with Java, and how to register a service with DNS TXT attributes.


In today's Forums, Rob Ross is trying to figure out some video rendering and Java2D oddities inchanging swing.volatileImageBufferEnabled dynamically? "I am now adding support for playing Quicktime movies, via Quicktime or Java. However, I've been having major redraw issues (I'm using the native QT widgets, not the Swing ones - ie, a QTComponent, not a QTJComponent). Basically, if I move the window, or trigger some kind of repaint/update on the playing window (like moving the JFrame or clicking on another window, then clicking back on my main JFrame, the video starts acting "weird", including pausing, artifacts, no longer being centered, dropping frames, etc. I have found through painful trial-and-error that if I set swing.volatileImageBufferEnabled property to false in my main() method, these redraw issues magically disappear when playing movies using the Quicktime player component."

njs clears up rounding issues in Re: Bug in java.text.DecimalFormat: "Yes, that's the correct behavior because the rounding mode of the DecimalFormat class is ROUND_HALF_EVEN. From JDK 1.6, NumberFormat class provides a new method called setRoundingMode() in which you can specify your favorite rounding modes. If you want the result in your post, you may want to issue one of the following call depending on your need: df.setRoundingMode(RoundingMode.UP); df.setRoundingMode(RoundingMode.CEILING); df.setRoundingMode(RoundingMode.HALF_UP); Hope this helps."


In today's Weblogs, Changshin Lee explains that Mirae means "future", but Apache Mirae means "now": "I just posted a snapshot of Apache Mirae 1.0 to http://people.apache.org/~ias/mirae/ . "Mirae" in Korean means "future" and I used the word to name a project for implementing JSR 172 J2ME Web Services in Apache."

Kirill Grouchnikov is pretty dissatisfied with support for right-to-left languages. In RTL support in Swing - part II he's "Comparing core and third-party LAF support for RTL components. Today we will look at RTL comboboxes."

In Java APIs comparison, Konstantin I. Boudnik looks at an "Interesting approach of comparing two sets of APIs, e.g. JDK1.5 and JDK1.6"


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 the java.net News RSS feed.


Current and upcoming Java Events :

kfarnham

Tear It Up Blog

Posted by kfarnham Mar 28, 2006

Are "working" and "good" code the same thing?

Functional tests will tell you if your code behaves as expected, but is that enough? Is it possible that some class or classes, while passing all the tests set out for it, could be horribly written, ill-conceived, unscalable, poorly designed, unmaintainable, and generally an accident waiting to happen? Of course, that's possible.

So what are you going to do about it?

For one thing, you can look to see whether you're adhering to good principles in your code. Do you, for example, program to interfaces and not implementations? Can you prove it?

In today's Feature Article,Testing Java in an Object-Oriented Way, Soumen Chatterjee makes the case for testing just how OO your code is:

It's really very important to perform object-oriented testing, if your software is written with the intention of reusability from either system or framework points of view. It is very important to test open source and third-party software and, OO testing is the only way to test semantic contracts.

In the article, he shows how to employ JUnit to verify that your classes are adhering to a set of design patterns that describe good OO programming, and offers a set of twelve "golden rules" for maintaining a happy object-oriented system.


In Projects and Communities, ZDNet blogger Paul Murphy is dicussing at a potential role for Jini in the small device space, vis-a-vis the the Microprocessor Architecture for Java Computing (MAJC). In Here Jini, Here Jini, Jini, jini, he writes that Jini "has also proven to have been both ahead of its time and the underlying proof of concept for quite a few successor technologies today."

Project GlassFishdemonstrates its management abilities in the SDN article Managing and Monitoring Web Services in Project GlassFish, which "shows you with an example how to develop, deploy, and debug a Web service on Project GlassFish, without any knowledge of the underlying, often complicated, concepts."


Spurred by a blog by Michael Feathers, Bill Venners is kicking off a discussion about the idea of using The Committer Model for Commercial Development, which we feature in Also in Java Today. Bill writes: "This could be seen as a way to force code reviews by a few people who, because they are members of this special class of 'committer', might feel more responsible towards the quality of the code. The committers might also be more familiar with the code, and probably more talented in general at programming. It could also be a pragmatic way to accept the fact that you can't hire only superstar programmers."

"This is not your father's J2EE! If you were scared off of J2EE because it seemed too complex, it's time to take another look. If you've been attracted to alternative technologies such as Spring and Hibernate, you'll find many of the good ideas from those technologies in Java EE 5." That's the message -- making life simpler for developer -- made in the interview article The Advantages of the Java EE 5 Platform: A Conversation with Distinguished Engineer Bill Shannon. He stresses the importance of annotations as key to many of the improvements made in Java EE 5, and encourages developers to try out the new release.


In today's Forums,kirillcool complains about incompatibilities betweenSwingX and third-party LAFs: "I'm not sure if you're aware of the laf-plugin initiative that has been started a few months back and has since then been adopted by four third-party LAFs (Substance, Liquid, Squareness, Pagosoft with Skin taking it in the next version). This initiative follows the core Swing mechanism of UIManager that puts all UI related information (delegate class names, UI defaults, fonts, colors etc) in a single place. This allows efficient decoupling of LAF and components. The LAF writer doesn't need to know about third-party components, while the component writer doesn't need to know about all LAFs. It's the LAF plugin that binds them together. However, since SwingX uses a custom mechanism for looking up the UI delegates, the SwingX components have a predefined set of core delegates. In order to provide set of delegates for other LAF(s), the SwingX code needs to be changed."

ilazarte responds to Bruce Tate's comments in Java Will Endure with the question Is Bruce Tate Still Relevant? "I keep looking at round tables like this, and I relate less and less to someone like Bruce Tate on a daily basis. I think he's been hammering several key points for a while now: 1. Java innovation is dead. That, or it must be mediated by his 'call to arms' to be more Ruby-like. 2. Ruby on Rails is an endpoint, and Java is a starting point. 3. Scripting languages will ultimately prevail over strongly typed languages. 4. We'll actually listen? 5. The 10 year language cycle. So now, for some musings of my own..."


Tom White checks out A Faster Java Regex Package in today's Weblogs. "dk.brics.automaton is a Java regex package whose main claim to fame is that it is significantly faster then all other Java regex libraries, including the one in the JDK. How can this be?"

In Blarg #22: A Filter that auto-encodes session IDs on relative page links, Jayson Falkner writes: "This is an example Filter that auto-encodes all relative links on a website using the HttpServletResponse.encodeURL() method. As with all my stuff, it is free for commercial and non-commercial use. If you like it, please remember to mention who originally wrote the code."

Kito D. Mann notes the end of an age in RIP, Software Development Magazine: "I've always been a fan of Software Development Magazine, which CMP recently announced it is killing. Of course, they say that they're not really killing it -- they're just merging it with Dr. Dobb's. Yes, you read correctly."


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 the java.net News RSS feed.


Current and upcoming Java Events :

kfarnham

Hammer to Fall Blog

Posted by kfarnham Mar 27, 2006

Final week for Mustang Regression Challenge

The Mustang Regression Challenge closes at the end of the week (March 31) and with it, your chance to score a free t-shirt and (if you submit one of the five best) an Ultra 20 workstation.

The commitment to picking off regression bugs was recently noted in a Javalobby thread, which was then cited by David Herron in his blog Re: "Sun appears commited to fixing any/all regressions prior to release":

There was an interesting discussion thread on javalobby last week: Poll: Delay Mustang in favor of more fixes? ... I think the discussion added a lot of value to the discussion around Java and especially the in-progress Mustang release.

I wanted to focus on one statement that really stands out to me as the project leader for the Mustang Regression contest: "Sun appears commited to fixing any/all regressions prior to release". That's exactly the idea we wanted to reinforce with the public.

The promise we're making with the contest is not new. For as long as I have been with the Java team (since the tail end of 1.2.2) we have treated regressions with high priority. The contest comes out of this policy. It is not a new policy we're following, we have for a very long time held regressions in high priority, and would hold shipping a release to fix all known regressions.


Also in today's Weblogs, Ethan Nicholas achieves some GUI slickness as he shows how to Style Swing components using CSS: "Using the JAXX user interface framework, you can leverage the power of CSS to control the appearance of Swing components. This is a quick look at using CSS to make a calculator example more attractive."

Continuing a series, in Comparing webapp frameworks : WebWork, Simon Brown writes: "Like Struts, WebWork is a framework that is fairly established within the J2EE webapp space although it's interesting that I've only ever come across two types of WebWork users - those that have never heard of it and those that love it."


In Projects and Communities, the Sun Grid Developer Community project Compute Server "aims to enable Java developers to easily and efficiently use the Sun Grid Compute Utility as a platform for the distributed execution of parallel computations." Its early access release lets you try out your code locally, after which you can join the Sun Grid Pilot Project and get 100 hours of CPU time.

The Proposed Final Draft of JSR 231: Java Bindings for OpenGL are available. The spec describes Java bindings to all core GL calls as well as the GLU library, as well as platform-specific wgl/glx/agl libraries, abstracted out in a platform-independent way to permit framebuffer operations. An implementation is available from the JOGL project.


In today's Forums,leouser sends a Question to JTree users: "Hi folks, I'm just posting this to see if there are any JTree users out there that experience the same behavior I see. I have a java app that uses the JTree as an outliner. Now I've seen this odd visual 'distortion' happen when a certain operation occurs. Im trying to determine if this distortion is something in the app or something wrong with the JTree."

ludo points out a NetBeans-specific problem in Re: Persistence in glassfish 9.0-b41: "In latest build of GlassFish, the 'derby' directory that contains the derby db has been renamed 'javadb'. Old versions of NetBeans 5.5 builds would not know about this new name, so I suggest you use the latest daily nightly build of NetBeans 5.5, that can now understand this change."


In Also in Java Today, "With the release of the Java Standard Edition 6.0 Beta, Java developers no longer need to contend with clamp-on solutions or Java Native Interface (JNI) to make their applications interact with desktop products and features. These desktop-integration features now are part of the core." In Take Charge of Desktop Integration with Java SE 6, Gautam Shah looks at how to use Mustang to provide expected features like a splash screen and to access the Windows System Tray.

Developer box, integration box, production box. They'll all need the same Spring configuration files, but with profoundly different values for most, if not all, of the items to be configured. Merely annoying for hand-editing name-value pairs, this becomes a real problem if you choose to vary your bean wiring between deployments. In Advanced Configuration of the Spring MVC Framework, Dejan Bosanac shows how to synchronize bean properties and wirings to get yourself out of this mess.


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 the java.net News RSS feed.


Current and upcoming Java Events :

kfarnham

The Mob Song Blog

Posted by kfarnham Mar 24, 2006

Gosling talks scripting languages, predictable flamewar ensues

A while back, James Gosling discussed scripting languages vis-a-vis Java, both at a Sun conference and in a video interview. JDJ titled their story James Gosling: "Java Is Under No Serious Threat From PHP, Ruby or C#", and the response form the PHP, Ruby, and C# crowds was pretty much inevitable and predictable. In the talkbacks to Artima's write, Gosling: Java vs PHP a Moot Debate, Bruce Eckel wrote that "Basically shows that Gosling is worryingly out of touch, and is pretending that Java isn't under assault from all corners."

Artima cleared things up somewhat by transcribing the video interview in Java and Other Languages: What Gosling Really Said, which we featured on the front page yesterday. But Gosling himself is taking the time to provide some needed context in a new blog entry, Scripting flamewar, in which he acknowledges "Yes, I did say those things. But there's a lot of context missing, and they're the flippant soundbite version of what should have been a long and careful explanation that could easily mushroom into a series of PhD theses." Beginning to re-frame the discussion, he notes:

My big problem with a lot of it is simply that these two polarizing categories are a pretty poor way of capturing the distinctions between language designs. The terms are almost as goofy as "Republican" versus "Democrat". Taking huge multi-dimensional spaces of choices on different issues, then combining and simplifying them all down to a brutally simple binary choice is goofy.

So, before anyone else jumps to the simplistic assumption that Gosling is just parroting a company line, read through his thinking on just what it means to be a "scripting language", and the choices that go with that.

And it's not just about code. Consider one talkback from "Ivan":

Apart from PhD theses in CS, there's also room for theses in Economics, or maybe Sociology as well; at least room for an essay. What is missing in this discussion is the economic world we live in. In business environments, Java takes up the lion's share of the market, and people who specialize (or want to) in other languages (outside of stalwarts like C, C++ or alternatives like .Net) are frustrated.

Maybe that's an easy shot, but then again, why shouldn't we consider economics? Java makes developers more productive in many ways: by preventing entire classes of programming problems, by catching stuff at compile-time, by providing high-quality standard libraries and fostering an ecosystem of open-source libraries. And if all this makes the programmer "soft", or allows mediocre programmers to write good code (as some critics have said), why is that a bad thing? The goal is good code, not anyone's biases on how to create it.

Even critics like Beyond Java author Bruce Tate acknowledge Java's strengths before throwing in with its rivals. Those who would dismiss Gosling just because he talks up Java's advantages relative to would-be rivals are cheating themselves of a more thorough understanding. After all, if you read his book, you'll see that Tate doesn't consider PHP or C# to be viable rivals to Java either.


Also in today's Weblogs, Arun Gupta notes that WS-Addressing 1.0 Core and SOAP are Proposed Recommendation: "W3C WS-Addressing 1.0 Core and SOAP Binding are now a Proposed Recommendation. A final stamp from W3C Advisory committee will convert this into a Recommendation."

"In a new article on developers.sun.com, Rico Cruz and I explained how to create, in the Sun Java Studio Enterprise 8 IDE, the order-tracking Web service for Adventure Builder." More details from Marina Sum in What a Breeze: Creating Web Services on Sun Java Studio Enterprise 8


The latest java.net pollasks "When do you plan to upgrade to JUnit 4?" Cast your vote on the front page, then visit theresults page for results and discussion.


In Projects and Communities, Larry Freeman talks about Running Java BluePrints on Project GlassFish. "I thought that it might useful to blog about setting up the Java EE 5 Solutions Catalog to run on Project GlassFish. So, here are the steps that I followed to set it up." He describes installing and running GlassFish and the BluePrints, and demo'ing its JSF pop-up component.

"With NetBeans 5.0 out of the door, the work on Matisse now continues at even faster pace, targeting a large set of new innovative features as well as many improvements in the areas of usability, productivity, and overall user experience." The Matisse Roadmap shows goals for the JavaOne 2006, NetBeans 5.5 (Q3 2006), and NetBeans 6.0 (Q4 2006) timeframes.


In Also in Java Today, Andrew C. Oliver has a warning about performance his bluntly-titled blog entry, If you don't do this JBoss will run really slowly. "Most people don't know what RMI DGC is. And most people don't need to know what RMI DGC is. However, if you run JBoss Application Server on Sun's VM, RMI DGC is probably sucking the performance out of your app." Describing some -D switches to adjust DGC timing and thread stack size, he says "these two sets of switches consitute the 'go fast' button and the 'please work' button respectively."

Why let idle computers waste CPU time not doing anything? In the dev2dev article Use JMS Clients to Utilize Free Computer Resources, Nimish Doshi proposes distributing computing work across the network. "This article proposes a framework for placing Java Messaging Service (JMS) clients on these underutilized machines to offload the work normally performed on a server. The client can listen on a request queue for a unit of work to perform, and respond on a reply queue."


In today's Forums,miles is trying to better integrate Firefox and Webstart: "I'd like to try out the better WebStart support and Firefox integration I keep hearing is available in 1.6. However, as the documentation has not yet been updated, how do I automatically launch the application from a browser in Firefox and Mozilla-family browsers as well as Internet Explorer? I really look forward to finally not having to tell people to download and open JNLP files; this has caused so much unnecessary confusion."

legolas_w wonders where is the correct package of InvocationContext Can some one tell me where is the correct package for InvocationContext ? In jboss ejb3.jar, it is inside *javax.ejb *package, and in glassFish it is inside *javax.interceptor* Why, in case that these two class are the same, they are in different packages? Which one is correct? Does the standard say where classes should be in package hierarchy?

kfarnham

Parts of Your World Blog

Posted by kfarnham Mar 23, 2006

An audacious splitter for Swing layouts

It's enough to tough it out as a Swing programmer and use the powerful but verbose and obtuse GridBagLayout... the killer is when you've split the main window seven ways from Sunday and the boss comes back and says:

Can we make that resizable?

And inside your mind, a thousand neurons wired for thinking in Swing say:

AAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHH!!!!

Swing's support for resizability is... let's say "modest". The default component, JSplitPane, allows for a two-way split component -- i.e., a component with two children, arranged verically or horizontally, with a draggable separator between them. If you have, say, four or five components that potentially need to be resized, you're forced use nested layouts ofJSplitPanes, and even then, it may not be possible to achieve an intuitive, pleasing arrangement.

What's needed, obviously, is support for complex layouts and multiple splits, designed to co-exist.

In today's Feature Article, Hans Muller comes through with just such a beast, theMultiSplitPane, which allows for intricate split layouts:

MultiSplitPane differs from components with similar capabilities in that complex dynamic layouts can be defined without nesting or composition. All of the children managed by aMultiSplitPane are arranged in their rows and columns (and rows within columns and columns within rows) end up separated by divider gaps, but not by extra layout-managing containers.MultiSplitPane's layout class,MultiSplitLayout, is also a little unusual in that it exposes a model of the complete layout. Most layout managers have a complex internal model that represents the layout, and some, likeGridBagLayout, even support ad-hoc access to the model. MultiSplitPane provides explicit access to the complete layout model, in the same way that Swing components provide access to their data models. The motivation for this wasn't just flexibility, or separation of concerns. A single explicit layout model means that a more elaborate layout management system, like a docking framework, can be layered on top ofMultiSplitPane without requiring burdensome assumptions about the type or structure of the component hierarchy.

This is a remakably slick piece of work, supporting persistence (through XML bean persistence) of a user-tweaked layout, and a syntax for laying out the contents of theMultiSplitPane with a formatting String rather than a bunch of add...() method calls.


Tom Ball looks at A Little Language in today's Weblogs. "The rule language uses the Little Language design pattern to make accessing a subset of Jackpot's transformation facility easier. Tom discusses the trade-offs between power and ease-of-use in its design."

In "It's Alive", Dan Hushon writes: "With the launch of Sun Grid, Sun is attempting to change the paradigm to one in which independent software developers can have the same resources available to them as the best funded of companies."

How do I map xs:date to java.util.Date? Kohsuke Kawaguchi answers the question in his latest blog.


In Also in Java Today, Bill Venners updates the discussion about James Gosling's recent comments about Java vis-a-vis other languages in Java and Other Languages: What Gosling Really Said. "There has been a lot of discussion around the net, including at Artima, about Gosling's recent comments concerning PHP, Ruby, and other languages. But until now, the full transcript and context wasn't available. Last week we posted a short news item pointing to some comments made by James Gosling, and some questions about the accuracy of the quote came up in the forum discussion. James Gosling himself indicated that, "The quote is accurate, but incomplete and missing context." In this news item I give the full transcript of his comments, which recently became available in video form."

Profiling is a technique for measuring where software programs consume resources, including CPU time and memory. In Build your own profiling tool, software architect Andrew Wilcox explains the benefits of profiling and some current profiling options and their shortcomings. He then shows you how to use the new Java 5 agent interface and simple aspect-oriented programming techniques to build your own profiler.


In Projects and Communities, Mark Reinhold's blog Mustang Maintenance Review 1 discusses the recently-posted Maintenance Reviewfor the Mustang(Java SE 6) release. "This review describes the details of all the changes and additions made to the Java SE platform specification in Mustang that aren't themselves specified by their own JSRs... The maintenance review also contains countless small corrections to the platform specification."

The article Meet the Six New Star Spec Leads introduces new members of the JCP's honor roll: Danny Coward, Pierre Gauthier, Janna Majakangas, Eamonn McManus, Antti Rantalahti, and Bill Shannon. "Exceptional spec lead performance gets noticed by the community as a key ingredient for an effective and smooth Java Specification Requests (JSR) development process."


In today's Forums,oholo asks about java annotations and xsd-files to generate a web service: "I am trying to find out if it is possible to "generate" a web service starting with the following things: * an annotated java source file (JSR-181 type annotations but possibly others as well? JAXB-things?), * xsd-files: one xsd-file for each of the parameter/return/exception-types needed, * and of course java source files for the types mentioned above."

sgregory is interested in Calling out of the JDIC browser into the Java application We use the JDIC browser to implement an HTML editor. One of the problems that we have is that there is no way to call from the browser back into the Java application (for instance, to update the font face drop-down, the the bold toggle button). Are there any plans for implementing call backs of this kind? Native Win32 applications can do this, and it makes the Java version of our product very sluggish as we have resorted to polling with executeScript to see what we need to change.

kfarnham

One Jump Ahead Blog

Posted by kfarnham Mar 21, 2006

Set your watches for a timely Java update

When the US recently moved its Daylight Savings Time as part of an energy legislation package, some people complained that this threatened to cause problems for technologies that assumed DST came at the same time every year. My dad scoffed about this when I saw him over the holidays -- he pointed out that since DST had been tinkered with frequently, it shouldn't surprise anyone that it was a moving target, subject to change. After all, it's nowhere near as simple as many believe, since some parts of the country have instituted curious observations of it. For a long time, the state of Indiana ignored daylight time, except for its counties that were effectively suburbs of Cincinnati and Chicago, cities in states that did observe daylight time.

And the U.S. isn't alone in tinkering with daylight time. Australia has made a one-time switch of its Summer Time dates, in order to accomodate the Commonwealth Games. This change has now been added to JDK's 5.0, 1.4.2, and 1.3.1, and John O'Connor has written up the issue Australian Time Zone Changes Affect Java Applications as a special SDN banner article.

 

Also in Projects and Communities, Daniel Brookshier's interview blog JXTA in Belgium, takes an extensive look at JaiDiMo, a research project at the XIOS Hogeschool Limburg. "JaDiMo is a very cool application that can do various things from finding an open parking space to booking a hotel room. It is written with JXTA and Java plus runs on everything from cell phones to desktops."


Sahoo looks at Using Java Persistence API in application client in Java EE platform in today's Weblogs: "The Java Persistence API is the standard API for the management of persistence and object/relational mapping in Java EE 5 platform. It can be used in three types of containers, viz: ejb container, web container and application client container. In this blog, we will talk about using this API in application clients. We also discuss two different way of packaging the application."

Marc Hadley writes about RESTful Web Service Endpoints in JAX-WS: "JAX-WS can be used to publish RESTful Web service endpoints, here's a short tutorial describing how."

In An Enlightening Paper on Identity Management, Marina Sum has "wisdom from Robin Wilton, Pat Patterson, and Eve Maler, technical luminaries on identity management at Sun."


In Also in Java Today... call it Zeroconf, Bonjour, or even Rendezvous (if the lawyers will let you)... whatever it is, it's probably the best-known way of providing spontaneous networking, as epitomized by popular applications like Apple's iTunes. But why should native applications have all the fun? Apple has provided a Java binding to its Rendezvous implementation on Mac, Windows, Linux, Solaris, and *BSD. In Zero Configuration Networking: Using the Java APIs, Part 1, Stuart Cheshire and Daniel H. Steinberg, authors of Zero Configuration Networking: The Definitive Guide, show you how to register a Zeroconf service in Java.

"Every OS -- whether Microsoft Windows, Linux, Solaris Operating Environment, or Apple Macintosh OS X -- has some type of desktop graphical user interface (GUI) to represent the files on computers along with the programs the computers can run. However, when a user clicks on a data file, how does the OS know what program to use to open the file?" The concept of filename association, and how to access associations from Java so you can set up documents to be launched by the proper native application, is covered in the article Understanding JDIC File-Type Associations.


linuxhippy experiences tool delight in Re: Profiler for analyzing monitor useage, part of today'sForums: "This tool is a dream, especially in conjunction with netbeans' profiler. Since most monitor operations are caused by synchronized methods I just have a look at the locked object types, go to netbeans and let me display the stack-traces for the class. This way I was able e.g. identify that my use of BufferedInputStream.read() caused a huge amout of thin locking (one for every byte my application processed) - so just with this simple change I was able to reduce uncontended locking to about 25% of what it has been before. Thanks again, this is greeaaat!"

kmgramm works through some JDIC browser problems inRe: [JDIC] JDIC build 20060308 error: "Thanks for the reply. It affirms that my problem was a missing MOZILLA_FIVE_HOME setting in my environment. I was looking through the source of WebBrowserUtil.cpp over the weekend and noticed it was the main thing you were looking for. So I manually added it to my environment and everything started to work. For the record, it looks like MOZILLA_FIVE_HOME is not set on SUSE 10.0 installs by default. Maybe it is because Firefox is now the default browser or because they modify the source and breaks up the home directories of all the files (/opt/mozilla is almost empty). Either way, JDIC Browser will not work with the default settings. I'd also like to add that although WebBrowserUtil.cpp is supposed to search the path for mozilla and/or check gconf for the default browser. It doesn't seem to get the correct values, even thought both the path and default browsers are set."


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 the java.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.



Set your watches for a timely Java update  
kfarnham

Out There Blog

Posted by kfarnham Mar 20, 2006

Bringing in news feeds from near and far

A few weeks ago, we featured the ROME framework, a full-featured framework for parsing and providing web syndication feeds in all the popular formats. For those with simpler client-side needs, today's Feature Article looks into Reading the News with Sun's RSS Utilities. Author Chris Hardin says "For the technical folks out there who have been living in a hole for the past two years and only read news from a newspaper, RSS stands for "Really Simple Syndication" and is used for the distribution of newsfeeds and podcasts. RSS feeds are merely XML files based on a version of the RSS standard." His article presents an RSS library that was created as a simple example of a JSP library, but is perfectly viable for use in your own RSS apps.


John O'Conner has an alert in today's Weblogs, noting that Australian Time Zone Changes Affect Java Apps: "Australia changed its observance of Daylight Saving Time (DST) this year, and the change will affect many during Mar 26 through April 2, 2006."

Fernando Lozano says I wanna a real NetBeans Day: "Remeber last year's javaOne NetBeans Day? It was more about JavaStudio than Creator. I hope this year we have en event centered on NetBeans itself and less on the closed forks mantained by Sun."

In Can a Grizzly run faster than a Coyote?, Jean-Francois Arcand writes: "We all doubt, do we? This blog will compare the Web performance of GlassFish's Grizzly HTTP Connector with Tomcat 5.5.16 Coyote Connector family (HTTP11, APR)."


In Also in Java Today, Artima founder Bill Venners has an important commandment in his latest posting: Don't Let Users Confirm Via HTTP GET: "While it may be attractive from the usability perspective to let users click on a link in an email to confirm a registration, it violates one of the cardinal rules of the web: don't change state on HTTP GET requests. This weblog post explains the problem and suggests solutions."

Joel on Software has a crash course on user experience design inUsability in One Easy Step: "So, usability. That's really at the heart of good design, and I'm going to spend a lot of time on it. The good news is that I can teach you everything I know about usability while standing on one foot. Ready? Here we go: Something is usable if it behaves exactly as expected."


In Projects and Communities, Dan Hushion, community leader for Sun Grid, looks at Running Services on Sun Grid in a recent blog entry. "Sun Grid's resource management semantics basically dictate that jobs be self-contained, and terminate all processes in order to exit. The problem with terminating processes in a grid context is that it's not quite as simple as doing a PID trap on a single host..."

WebDAV, the popular read/write standard for the web, can be enabled in GlassFish, but as Jean-Francois Arcand explains in Enabling WebDav in GlassFish, "you can't enable it the way you usualy do it using Tomcat." In walking through a solution, he explains the root problem: "GlassFish lack of support for a default-sun-web.xml, where you usualy define your security constraints mapping. "


In today's Forums,andrewmt wonders about SwingWorker Exception Catching: "Hi there! I've been developing a program using Mustang's SwingWorker and am finding that exceptions thrown in the doInBackground method do not seem to be caught anywhere. On two occasions I've had bugs throwing NullPointerExceptions and both times the SwingWorker thread just terminates with no notice. doInBackground throws Exception, but looking at SwingWorker's source code I do not see anything catching it. I haven't seen any mention of this issue anywhere, but I am wondering if anyone noticed this and if it is supposed to do this (i.e. I should just print stack traces within doInBackground)?"

Romain Guy, inexplicably writing as rbair, introduces the SwingX Online Components Store: "Richard and I pre-deployed the online components store for SwingX: http://swinglabs.org:8080/store.jsp. Just check the components you want to use, click Download and you're good. The bulk of the work is done but we still have some things to do. The descriptions have been auto generated by a Python script so they must be worked on. We also need a description at the top and I have to finish implementing the "Select All" and "Deselect All" buttons at the bottom. Overall it works really well, plus it's quite fast. The server just streams you the JAR when you hit the Download button. Give it a try and enjoy!"


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 the java.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.



Bringing in news feeds from near and far  
kfarnham

Be Prepared Blog

Posted by kfarnham Mar 19, 2006

Learn from those who've come before

Our profession's zeal to reinvent itself every few years (months?) has the downside of rendering a lot of old ideas obsolete before their time. Some concepts that would empower Java developers aren't specific to Java and don't necessarily get to us, because they're not always wrapped in a pretty Java package (invite me to a rant on pointer manipulation in media formats sometime). The risk is reinventing the wheel, we're not only duplicating work, but that we might do an inferior job of it.

 

In today's Weblogs, John Reynolds has an informal interview of Data Structured System Design (DSSD) creator Ken Orr, in John's weblog entry Ken Orr's advice to Java programmers (and the secrets of writing good software). One of his first pieces of advice is a gem that should be obvious, but is seldom practiced:

John: "Ken... What advice would you give Java programmers?"

Ken Orr: "Don't define yourself as Java programmers."

Ken goes on to discuss what he sees as the lamentable stasis of CASE, and questions the direction of Model Driven Architecture. He also discusses the importance of programming flexibility, of knowing more than one language and approach, as typified by the ideal programming domains of OOP vs. AOP.


Also in today's Weblogs, Alexander Schunk digs into 3D graphics alternatives in Java3D, JOGL, JDX? "I recently tried the new JOGL Java OpenGL bindings to see how it differs to the normal C-style OpenGL API. Well, what i learned from this first experience i cannot see any advantages over the C-style OpenGL API."

Tom Ball has an example of The Power of Community: "Within a couple of days after posting a code fragment, readers posted helpful criticism while another made a great enhancement suggestion for Jackpot."


This week's Spotlightis about the news item OFBiz joins Apache Incubator: The Java Tools Communityproject Open For Business(OFBiz) has been accepted as an Apache Incubator project. OFBiz provides the building blocks of e-commerce applications, including catalog, customer, order, warehouse and fulfillment management functaionality. A strong community has formed around the OFBiz project, as described in a java.net success story article from 2004.


In Also in Java Today, JBoss blogger Tom Bayens wonders To BPEL or not to BPEL, that is the question, in a blog that attempts to clarify the difference between BPEL (Business Process Execution Language) and the broader goals of BPM (Business Process Management). "BPEL is a good integration technology, but it is a clumsy way of supporting your business processes. We need an alternative."

"While the [...] synergy between EJB 3.0 and JSF is appealing, it is not yet realized within the Java Enterprise Edition (JEE) 5.0 framework. In plain Java EE, there is still a significant amount of glue code necessary to use both JSF and EJB 3.0 when building a web application--even more, if you add BPM to the recipe for a great application." Want to avoid writing all that glue yourself? Try a seam instead. In JBoss Seam, Thomas Heute looks at how the Seam framework provides inter-framework plumbing and a stateful component model, to make web app development less of a hassle.


In Projects and Communities, the 73rd issue of the JavaTools Community Newsletter seeks feedback on favorite Java SE 5 and EE 5 tools in the tools forum. Along with news from around the web and an Eclipse tutorial "tool tip", it welcomes six new projects to the community.

Registrationis now open for NetBeans Software Day, to be held May 15, prior to the opening of JavaOne 2006. The event is free, and the first 400 attendees get a complimentary copy of the soon-to-be-published NetBeans IDE Field Guide.


Today's Forums kick off with the complaint VerticalLayout support gone: "VerticalLayout support in my NB 5.0 is gone. I can't use Form Editor to change Layout to VerticalLayout, as used to be. VerticalLayout option in layouts options is gone. How can enable again?"

samflores writes about Web Services and EJB 3.0: "I thought the problem was the entity anotations (like @Entity, @Id, etc.) in my entity classes. So I created another simple class (under ws.jar also) anotated as an entity. And one more time the web service worked very well. Conclusion: I believe the web service can't use the entities classes because they're in another .jar file. It's right? I saw somewhere in the web that the "ejbs.jar" portion of the app can see the entities 'cause they're in the lib directory, right? The web services shouldn't see them too? Is there a way to bypass that?"


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 the java.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.



Learn from those who've come before  

Putting on my community leader hat

Lots of us who work on java.net wear multiple hats. Along with editing the site, I'm a co-leader of the Mac Java Community, as well as the owner of an incubated project (more on that when it graduates).

It's always nice when a project request comes in for the Mac Java Community -- we've mostly been a news page, but we've gained a few new interesting projects in the last few months, which gives me some encouragement that the idea of the community is clicking.

It also means that when I post something to the Mac Java Community page, I can re-use it for the front page and carve 20 or 30 minutes of project research off my much more than 40-hour week. And that's a bonus.

So what's the new Project? Woof! By that, I mean that the Woof project improves life for developers using Apple technologies by allowing you to use FileMaker as a data-store for WebObjects. Along with a JDBCPlugIn for WebObjects, it provides a FileMaker JDBC driver "which is faster, less buggy, and more standards-compliant than the previous JDBC driver from FileMaker."


Also in Projects and Communities, Kohsuke Kawaguchi blogs about what may be theJAXB 2.0 reference implementation in his blog entry JAXB RI 2.0 release candidate posted. "Unit test failures are down to 0, SQE tests are down to 0, and TCK tests are down to 1. All the lights are almost green, except this one TCK failure."


The latest java.net Poll asks "What kind of device do you do most of your programming on?" Cast your vote on the front page, then visit theresults page for results and discussion.


In Also in Java Today... have you ever worked on a day job project that had less discipline and organization than the open source project you hack on by night? You're not alone. "Applied Software Project Management" authors Andrew Stellman and Jennifer Greene write: "It is rare to find a corporate environment where the project team has anything approaching the level of planning, documentation, or review found in successful open source projects. For some reason, as soon as a budget and a deadline are involved, all of the lessons we've learned over the years and applied successfully to open source projects seem to fly out the window." They take the lessons of open source back to the enterprise in the ONLamp article What Corporate Projects Should Learn from Open Source.

Are IT professionals ready to build and maintain business relationships, manage and deliver IT operations, and plan the future architecture and infrastructure? CIO's don't entirely thnk so. The article Survey: CIOs Concerned over IT Skills Gap cites a recent CIO survey conducted by the Harvey Nash Group, and funded by PriceWatergouseCoopers showing that "CIOs are expressing a growing concern over the skills gaps on their IT teams between key sills they view as important and the capability of their team members to deliver on those skills."


In today's Forums,edwardaux talks about Getting started... with JAXB: "We are thinking of using JAXB to provide the marshalling/unmarshalling to XML for our business objects. We have existing objects that we would like to keep - my reading suggests that we can get it to work using the JAXB annotations. Is that right? I've searched and searched, but I can't find any examples or guides on how to get started doing this. I have seen some tutorials on generating the classes from XSD files, but nothing for beginners when using JAXB annotation (that I could find). Does anyone have any pointers to existing documentation, or samples? Many thanks."

In Streaming binary content to WebBrowser (feature request),mcalmus writes: "I have a dynamically created PDF file I would like to open in the WebBrowser component without writing the data to disk. The setContent method would seem a reasonable place to put this, but it does not really work in its current implementation. I would like to see a setContent(byte[] content) method (or similar) to set a raw block of data directly to the web browser much as if it had been streamed from the server."


Jacob Hookom writes about The New Servlet for MVC Frameworks in today's Weblogs. "No one will argue that there are a lot of different approaches within MVC frameworks, but their foundations are extremely familiar. All of them seem to start from a basic Servlet or Filter and work up. This is 2006-- here's an alternative."

In Microsoft Imagine Cup 2006 launched, Alexander Schunk writes: "Microsoft has launched this year's Imagine Cup final round for student developers. It would be nice to see an equal challenge for students using Java technology."

Chet Haase wonders about Web Too? Oh. "I have been trying for some time to divine the true meaning of the phrase "Web 2.0". I finally get 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 the java.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.



Putting on my community leader hat  

The downside of editing while traveling

Your editor is travelling with the family this week. I figured the kids would get sick at the end of the week, but Keagan has surprised us by picking up bonchitis on the first day of the trip instead. Nice timing.

Speaking of timing, if you've ever done computer animation, you're surely aware of how central the issue of timing is to animation. Animating at 30 frames a second literally means doing some kind of drawing to the screen at 1/30 second intervals. A lot of developers end up writing this timing code themselves, and some ways of doing so are better than others -- it's good to use the system clock to figure out when you're due to paint, it's not so good to try to time things with Thread.sleep()calls.

Or... you could let the Timing Framework take care of things for you.

In today's Feature Article, Chet Haase introduces some new Timing Framework features in Time Again.

At the end of "Timing is Everything," I called out several future tasks that I wanted to accomplish to increase the power and flexibility of Timing Framework. I've finally worked through a couple of these, plus some more along the way, so it was time to update the project and to describe how things work in the new system.

In the article, Chet shows how the framework can be used to provided property changes driven by timed callbacks, how to interpolate between keyframes, and how to perform non-linear animation, so that things start up and slow down in a more natural manner.


In Projects and Communities, Romain Guy writes "SwingX is a great project but it's also pretty fat and many people would like to use only one component. (Or maybe just a few.) It's definitely possible to extract them from the project but it's a pain." His forum post SwingX Components Harvester introduces and links to a project to do this extraction for you. Romain's Harvester works on Java SE 5 and up.

The Mustang Regression Challenge seeks regressions in Java SE 6, offers a t-shirt to every submitted and verified regression, with five winning an Ultra 20 workstation. David Herron's blog entry Mustang Regression Challenge - winding down offfers points out that the deadline is March 31, and that 44 entries have already been made.


In today's Forums,ss141213 announces an important GlassFish change: version attribute is now required in every persistence.xml & mappings.xml. "Because of a recent change in the Java Persistence API spec, persistence_1_0.xsd has been updated. Now, every persistence.xml file must have a version attribute in the root element. Earlier version attribute was optional. So you may have to change your persistence.xml if it does not already have version attribute."

joshy offers a look at his Gradient Chooser and a Multiple Thumb Slider: "Hello all. I have code for a gradient chooser, multiple stop gradients, and a multiple thumb slider (which is used by the gradient chooser). Do you think this is something we should but into SwingLabs and where? You can see a screenshot of the chooser here."


Ed Burns looks at Using JSP Immediate Expressions to access JSF Data in today'sWeblogs: "Here is an ultra-quick blog entry sharing something in JSF 1.2 about which I'm not sure many people are aware. Thanks to the unified EL, it is possible to refer to JSF managed beans and other JSF concepts using plain old JSP expressions in the page."

Kohsuke Kawaguchi announces a Simpler and better binding mode for JAXB 2.0: "I recently added a new binding mode in JAXB RI 2.0, which makes it even easier to use."

In Echoing the Java Compatibility Call to Arms, Fernando Lozano writes: "Sun itself is asking developers to test their apps with third-party JREs to ensure the Java platform remains compatible. But missing from this claim was the need to test them also with the many cleam room, open source software JREs out there, and the need to throw out references to non-standard, vendor-provided JRE classes from application code."


In Also in Java Today, IT executives are increasingly interested in using web services for mission-critical integration among multiple endpoints, says a survey of 170 IT execs. The article Web Services OK for MC Integrations takes a look at why CIOs and architects are finding web services approaches more appealing -- even for complicated and mission-critical Enterprise Information Integration (EII) projects.

Sure, you can throw XML data into a database as a run of bytes, but in so doing, you lose the inherent structure of the data. A database built to work with XML can offer opportunities to the savvy developer. Deepak Vohra's Storing an XML Document in Apache Xindice introduces Apache Xindice, an open source database optimized for working with XML.


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 the java.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 downside of editing while traveling  
kfarnham

Everybody's Everything Blog

Posted by kfarnham Mar 15, 2006

Why not to be all things to all people

We're visiting my parents this week, and today's topic reminds me of something my dad once said about a U.S. President -- I'm not saying which one, because this isn't about politics -- that "you can't be all things to all people, because you'll usually end up being nothing to anybody."

One of our Also in Java Today items made me think of this. In I figured out what framework authors are doing wrong, Joseph Ottinger decries the over-complexity of some programming frameworks. He looks at JSF as having some profound, difficult-to-understand concepts, which requires the JSF developer to have a "sink or swim" moment:

When people "sink or swim," they end up having to endure this moment of transformation, where all of a sudden, everything comes into clear focus and understanding is granted from on high. It works, I guess, but it's also frustrating for people who can't commit the time and energy to working with a given framework.

It's an interesting challenge to manage complexity in frameworks. The usual maxim is to make basic things easy and advanced things possible. It's easy to find examples that don't live up to one or both of these. But how much of the complexity comes from the framework, and how much comes from the problem domain? Some topics are intrinsically complex, even before you layer a framework atop them. A friend of mine recently pointed me to javadocs for representing advanced scientific concepts, for example, having a class that represents a dose of radiation that may or may not be fatal to a recipient. If you don't already work in the relevant scientific field, these classes will be meaningless to you. Taking off my editor hat and putting on my author hat for just a moment, the reason I so prefer QuickTime for Java over Java Media Framework is that QTJ embraces the intrinsic complexity of managing media, while JMF frequenly blows it off. QTJ's concept of time scales isn't the most intuitive thing in the world, but JMF blows off the concept entirely. The casual developer just trying to play a piece of media doesn't need to care, but the developer writing a frame-accurate editor cares very much.

But maybe complexity-from-problem-domain is the special case. Are topics like web applications intrinsically complex, or do we make them complex by putting too many Big Ideas in our frameworks? It's hard to say, isn't it? For every developer decrying EJB 2.1's rococo design, I can show you someone fed up with the primitive simplicity of Struts. As noted in a previous AIJT item, the slam against most enterprise frameworks' complexities is that 98% of developers don't need it. Is it wrong to support the other 2%? Or is it wrong to make the 98% have this "sink or swim" moment?


The other item in Also in Java Today it the interview Seeing Shouldn't Be Believing: Solving Java Puzzlers With Google's Joshua Bloch, which quizzes the author of Java Puzzlersabout the writing of the popular book and what he hopes readers will get out of it. "Most of the puzzles confront the reader with a simple program, and the reader has to figure out what it does. It's usually pretty obvious what the program does but for one minor detail: None of the programs actually do what you expect them to. If you can't figure out what might be wrong with a program, you run it and find out what it actually does."


In Projects and Communities, A forum message announces a major update in Project Looking Glass' documentation. The PDF document Project Looking Glass - A Comprehensive Overview of the Technology (1.4 MB) covers LG3D's design, client-side API, effects, incubator applications, and future directions.

Larry Freeman's blog Java BluePrints for the Java EE 5 SDK discusses updates to theJava BluePrints, a collection of best practices, guidelines, and applications for the enterprise developer. "The new BP Catalog runs on both GlassFish and the newly released Java EE 5 SDK Beta Preview."


In today's Forums, Renoir Sewjee has a screen sapture solution for Java3D in Re: Is there a fast and reliable Canvas3D capturing method? "An alternative method of snapping the canvas is to do a screen capture using the java.awt.Robot class. We use this method when offscreen rendering fails to work due to driver problems (ATI + Linux)."

Romain Guy introduces JXGraph: "I just committed a new component called JXGraph. It has a full fledged BeanInfo with a lot of javadoc so you should have no problem to try it. It's also ready for GUI builders as I also committed the corresponding BeanInfo and an icon. Last but not least it's a subclass of JXPanel so you get translucency for free. It also provides a special paintExtra() method to let you add extra features in the graph easily."


David Van Couvering lookas at combining Derby and Amazon S3 in today's Weblogs, in which he offers "Some jotted notes on how I might use Derby and the new Amazon S3 service together. The problem I'm having is that the S3 schema is so basic -- just keys and values. It makes me wonder if I should add a new storage plugin to Derby that runs on top of S3, so that it could be queryable."

Navaneeth Krishnan collects portlet resources in The JSR 168 - WSRP blogosphere: "Someone recently asked me pointers to blogs that usually talk about JSR 168 Portlets and WSRP. Here is the list I sent him (in no particular order)."

Kirill Grouchnikov continues a graphic makeover in Spicing up your JTabbedPane - part III: "The third part of the series that describes the additional capabilities that you can get on your tabbed panes. This entry describes single-click close of multiple tabs and text alignment on left and right placement."


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 the java.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.



Why not to be all things to all people  
kfarnham

Well All Right Blog

Posted by kfarnham Mar 13, 2006

Possibly our most balanced poll results yet

A quick note about the current java.net poll, which asks "What do you think of bytecode manipulation frameworks?" Looking at the results, I don't think we've ever run a poll where the results were so even. Of five options, the most popular currently has 27%, and the least has 14%, and that's the usual "don't know / don't care" catch-all option. Look at the bars on the result page and you'll see how remarkably even this is, with no option getting much more or much less than an even 20%.

The takeaway? Only that the community's perception of and reaction to bytecode manipulation is very much a work in progress.


Greg Murray shows you how to do AJAX I18n with Java in today's Weblogs: Internationalizing your AJAX clients is not too difficult. This entry takes you through a few steps on the client and server for multi-lingual AJAX applications.

In Jackpot Early Access Available, Tom Ball writes "Jackpot is available as an early access release via the NetBeans 6.0 alpha update center."

Kohsuke Kawaguchi uses his blog to announce Hudson 1.18 released: "I just posted a new version of Hudson. The main improvement in this version of Hudson is the ability to record and track JUnit test result reports."


In Also in Java Today, the latest SDN interview offers a chance toMeet Kelly O'Hair, Senior Staff Engineer at Sun Microsystems. Kelly, who's also a java.net blogger, talks about JDK 6 build challenges, his process for writing software and working through trouble spots, favorite tools, and offers a little advice to the beginning Java developer: "Start out small, and gradually add more knowledge and skills day by day. Find a periodical or web site that has a good selection of technical papers that directly relate to what you do, and take the time to read the articles on a weekly basis. But don't assume everything you read is 100 percent true."

The popular Java-based weblog engine Roller recently released version 2.1. Among its new features are "comment management, comment moderation, trackback verification (optional), security improvements, performance improvements, an all-new pluggable cache system and Atom 1.0 support in the integrated planet aggregator."


In Projects and Communities, the JXTA Community is spotlighting Joan Esteve Riasol's Master's Thesis Project released on java.net as Juxta-CAT. The project uses JXTA to "build a job execution-sharing distributed environment."

The googlemaps-jsp project, part of the Java Tools Community, provides a "GoogleMaps JSP Taglibrary, bringing live interactive mapping to JSP developers."


In today's Forums,alanb offers some tool insight in the thread Re: Cannot load heap dump with jhat: "There was some work done to improve the memory requirements of jhat over the original Heap Analysis Tool (HAT). However its internal model still requires a lot of memory and there can be extreme cases that mean it needs more memory than the original heap where the dump is taken (one example is when the heap contains millions of zero length arrays). In this case you seem to need >1.3GB to read a 438MB dump which seems very excessive. The dumps are portable so if you have a 64-bit system then you should be able to analyze it."

In Re: JXStatusBar refactor, rbair writes: "I agree with all these points, but with some minor modification. First, I think the primary reason that a JXStatusBar should exist is for look and feel. Windows has a "standard" StatusBar look and feel -- at lest WinForms does. You can see it in VisualStudio, Firefox, Thunderbird, even WordPad (although it is more "squat" in WordPad). So we need to have a plaf for JXStatusBar. One subgoal is to add as little API as possible, both to slow the growth of our download size (1.4 meg uncompressed and counting!!), decrease the amount of API one has to know, and simplify the IDE experience."


Today's Feature Articleis Mobicents: JSLEE for the People, by the People.


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 the java.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.



Possibly our most balanced poll results yet  
kfarnham

Winning Blog

Posted by kfarnham Mar 13, 2006

A shout-out to Open For Business

One of our favorite projects is moving into a more prominent role, as the Java Tools Community project Open For Business (OFBiz) has been accepted as an Apache Incubator project. OFBiz provides the building blocks of e-commerce applications, including catalog, customer, order, warehouse and fulfillment management functionality. A strong community has formed around the OFBiz project, as described in a java.net success story article from 2004.

OFBiz has a remarkably active community -- one that has held its own OFBiz conferences -- and we're sure that the prominence they'll get as part of Apache will help to make this remarkable project even more successful.

Also in Projects and Communities, an article on TheServerSide addresses Clustering JSR-168 Portlet Applications in Tomcat. "While Tomcat has provided session replication for quite some time, it has not supported replication of session changes resulting from a cross-context call from one webapp to another." The article show how to resolve the problem, with needed changes to be included in Tomcat 5.5.16 and later.


... in today's Weblogs. Marcelo Mayworm isUsing Maven to remove Chinese Wall during offshore development: "I came across several interesting communication glitches in an offshore development software. We faced problems such as communication bottlenecks and lack of awareness of what developers were physically producing."

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

In The economics of quality, Malcolm Davis writes: "The only thing more expensive than writing software is writing bad software. - Alan Cooper. This blog discusses the truth in Alans statement."


New thoughts from James Gosling kick off the Also in Java Today section. In a talk at Sun's World Wide Education & Research Conference in New York City, Java founder James Gosling discounted the idea that Java was threatened by other languages. "PHP and Ruby are perfectly fine systems," he continued, "but they are scripting languages and get their power through specialization: they just generate web pages. But none of them attempt any serious breadth in the application domain and they both have really serious scaling and performance problems." He also dismisses C#: "we were afraid they were going to do something really creative - but they're hopelessly focused on one platform." Gosling also speaks to SYS-CON.TV's Jeremy Geelan in a video interview.

So what is Java? Lazy conventional wisdom spouts catch phrases about applets, bad performance, Swing appearance problems, and other issues that either aren't true or aren't relevant (and maybe never were). The article What Is Java tries to reframe the conversation for Java's second decade by separating language from VM and taking a look at what each is and where they're going, while also noting the profound size and influence of what is the largest and arguably most underappreciated open source community in existence today.


In today's Forums,jimorie wants help with using JAI for Converting raw bitmap data to TIFF: "Hello! I am interested in finding out if the Java Advanced Imaging library can help me converting raw bitmap image data into a TIFF image. I rip image data out of PDF documents, and I know the colorspace (CMYK, RGB or Grayscale), the dimensions and the bit depth of the image data. I need to convert this to a TIFF image. Can JAI aid me in this? I was thinking it should, but a very quick glance through some examples didn't immediately tell how. So I thought I'd try this forum. Maybe someone could be so very nice and give me a pointer to a relevant example, or class descriptions within the JAI API."

sjasja clears up a common misconception in Re: Option to compile to native code: "Hotspot already does compile to native code. It just doesn't write the compiled code to disk. By compiling dynamically it can make optimizations that are not possible or practical for static compilers, such as inlining "virtual" methods (non-final methods). Static compilation tends to slow down programs, not speed them up. There has been work towards caching some of the compilation on disk though; that has some benefit for short-running programs. To get real benefits from that you need to be running lots of small short-running programs that need to be very fast."


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 the java.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.



A shout-out to Open For Business  
kfarnham

I Put a Spell on You Blog

Posted by kfarnham Mar 10, 2006

The arcane sorcery of bytecode manipulation

Earlier in the week, I wrote an article for O'Reilly's other Java site, attacking the question What Is Java as a means of resetting long-held (and often wrong) conventional wisdom about Java and trying to re-frame the discussion. A big part of the inspiration for this was several different trends that have to do with the JVM.

You can see this in Bruce Tate's Beyond Java; while decrying the complexity of the Java language and the platform, he holds the JVM in high esteem, predicting that any rival to Java will actually have to run on the JVM to make significant headway. That's because the JVM has solved some remarkable problems -- security, portability, etc. -- and with millions of JVM's already out in the field, who would want to re-solve that problem when they can just get a free ride?

Another data point in this trend is JSR-292, Supporting Dynamically Typed Languages on the Java Platform, which seeks to add a new bytecode called invokedynamic to the VM, so that it can better support dynamic languages. Think about it: even Sun is getting into the act of running stuff other than Java on the JVM.

Finally, there is the curious matter of bytecode manipulation. As an editor, this is a tricky topic: the material is so arcane, it resists treatment in article form because writing anything interesting requires that the reader already have mastered some very difficult material about the inner workings of the JVM. The worry I have about this kind of material is that it's very easy for the target audience of a bytecode manipulation article to be the author him- or herself.

Yet, bytecode manipulation is fascinating because there's seemingly no limits on what you could accomplish with it. Yes, I'm aware that's very much a double-edged sword. But consider the fact that it's already used in dependency-inversion frameworks, AOP frameworks, obfuscators, and more. You might be using it indirectly without even knowing.

Anyways, since JVM hackery is on the brain, the latest java.net Poll asks the question "What do you think of bytecode manipulation frameworks?" Cast your vote on the front page, then visit the results page for vote tallies and discussion.


In Projects and Communities, The tutorial Building Java GUIs with Matisse: A Gentle Introduction gets the reader up to speed with NetBeans 5's GUI builder. "Matisse is Java UI building done right. It is familiar, offers drag and drop placement, and sensible defaults that can still be altered and overridden easily for flexibility."

As part of a series interviewing finalists in the 2006 Independent Games Festival, Gamasutra talks with Sune Nielsen of Oddlabs, creators of Tribal Trouble, who discusses their work on the Lightweight Java Game Library (LWJGL) and also says "The smartest thing was without a doubt chosing java as a development platform."


In today's Forums,cayhorstmann points to an Updated "Elvis meets Glassfish" article: "I updated the 'Elvis meets Glassfis' article at http://horstmann.com/elvis/elvis-meets-glassfish.html for build 40. Most of the bug workarounds are gone, and I now use Sahoo's EAR file organization. If you read this forum, you probably know everything that is described in the article, but you may want to point your colleagues to it if they want an easy working example. If there is interest, I'll gussy it up with a JSF 1.2 web frontend."

soupdragon has a critical re-think in the thread Re: Proposals for adding method support to Java?: "As far as I'm concerned anyonymous classes make the delegate concept completly redundant. What's the difference between a class creating a delegate on one of it's fuctions and createing an anomymous class instance that defines a method which calls that method?"


In Also in Java Today, Bart Smaalders discusses Performance Anti-Patterns in a recent ACM Queue article: "Performance pathologies can be found in almost any software, from user to kernel, applications, drivers, etc. At Sun we've spent the last several years applying state-of-the-art tools to a Unix kernel, system libraries, and user applications, and have found that many apparently disparate performance problems in fact have the same underlying causes. Since software patterns are considered abstractions of positive experience, we can talk about the various approaches that led to these performance problems as anti-patterns--something to be avoided rather than emulated." Also check an Artima discussion of this article and related performance pathologies.

Java Management Extensions (JMX) provide manageability for enterprise applications, but how do you get your apps instrumented for manageability, and exposed to some kind of console? The dev2dev article by Grace Lin, Managing Applications with HP OpenView, offers an introduction: "This tutorial focuses on JMX (Java Management Extensions) for the design of manageability of J2EE applications. I cover JMX basics and show how to instrument a simple J2EE application through JMX inside the BEA WebLogic Workshop 8.1 environment. I also introduce JMX Metric Builder, a tool that helps J2EE developers to configure their MBeans into a manageable metric, managed by a management application that is an HP OpenView BEA WebLogic SPI (Smart Plug-in)."


John Reynolds thinks about writing Software for Business People (like my dad) in today's Weblogs. "My father ran a small-town employee credit union in the 1960s and early 70s when most small organizations still used paper to store their records. Technology has dramatically changed, but in many respects businesses has not... Remembering this can help us write better software."

In Java Widgets, Changshin Lee wonders: "As I'm going to deliver some presentation on widgets such as Yahoo! Widgets (formely known as Konfabulator) and Google Desktop Sidebar, one idea hit me: Why not Java for widgets?"

Masoud Kalali says I want to share an RUP presentation that i have made before ..."This is a presentation that Introduce you the RUP (Rational Unified Process) , maybe this could help you understand some RUP basics..."


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 the java.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 arcane sorcery of bytecode manipulation  
kfarnham

Yours Truly, Confused Blog

Posted by kfarnham Mar 9, 2006

Baffling bits that break RMI

I feel a great affinity for today's "(Not So) Stupid Question", as it relates directly to a number of RMI problems I had to hack through years ago. The question from "Ashley" phrases it perfectly: "What's the deal with serialVersionUID?"

That's great: what's the deal? Because when you get bit by it, you immediately have to wonder if the cure is worse than the disease.

Not to give too much away, or take material from potential comments on the article, but serialVersionUID is meant to prevent mismatches when dealing with the serialized form of an object, in case the class has changed in ways that will prevent creating a new instance of the class from the serialized form. Where I found this popping up was in RMI, which uses serialization to exchange objects across the wire. The nightmare is that if you make anychange to a class, even changing some implementation, but not the methods or the fields, you get a new serialVersionUID and hence a version mismatch exception when you try to use the class in an RMI context. Until we really understood serialVersionUID, we had to update all our servers and all our clients at the same time, which was a nightmare.

So that's one reason you might want to set it yourself. There are surely others. More importantly, what do you set serialVersionUID to, why, and when do you have to? Hopefully, we'll get answers to this question in the comments to today's Feature Article,(Not So) Stupid Questions 8: serialVersionUID.


In Projects and Communities, the classic tutorial Jan Newmarch's Guide to Jini Technologies has recently been updated, including a new Jini in One Hour section that offers a crash course in setting up and running Jini services on a network.

The GlassFishproject has announced an incentive for filing bugs: "Download GlassFish milestone 5 and file a valid bug; one will be selected and the submitter will receive an Apple 20 GB iPod Photo." Carla Mott's blog has details.


In today's Forums,byhisdeeds wonders about strategies for Concurrent locks for large number of objects: "I'm recursing over about 2000 objects with multiple threads and need to have some locking to prevent two or more threads accessing the same object while it is being processed. I thought of attaching a semaphore to each object and letting the threads acquire it while using the object, which would allow the other threads to block till that object had been processed. My question is: 1) Is there a better way to handle this case than create 2000+ semaphores? 2) Is the memory footprint of the 2000+ semaphores large?"

In Re: Sources for Solaris 9?, hideya asks: "As far as I know, there is no one who has run LG3D on Solaris 9... Solaris users, is there any input here? Otherwise, we should clearly say in the getting started guide that the Solaris build is tested only with Solaris 10."


Greg Murray has some JavaScript Recomendations for AJAX Component Writers in today'sWeblogs: "At Sun there are many teams creating JavaScript based components. With AJAX there are many choices on how to use different aspects of JavaScript. Here are some recommendations we came up with for using JavaScript with the focus on creating AJAX components that will interact with server based on Java technologies."

Graham Hamilton assesses AOP: Madness and Sanity: "The much-abused term 'AOP' covers a wide range of uses, some of them eminently sane and some of them eminently crazy. Here are some comments on both the good and the bad."

In JDK Community: Dream or Reality, Andreas Schaefer writes: "Currently I am not working on any patches for the JDK because I want to ensure that my time spent on this is spent worthwhile and so I want to see if it makes it into the JDK or not and in case it fails I want to know why."


In Also in Java Today, the rebelutionaryweblogs relates an interesting discussion from the OpenSymphony administrators mailing list regarding heavy-duty enterprise functionality in enterprise Java frameworks, asserting that 98% of Java developers "just don't need it". "Most peopledon't need any of that to build their Java/J2EE applications. When I say most, I mean the 98% of people who aren't banks and although they understand 2PC have never actually needed it in their lives. The other 2% are probably banks and pay for WebLogic or WebSphere as a part of an 'enterprise software license agreement' all-you-can-eat-buffet deal anyway"

A new series from Bruce Tate looks at ways other languages solve major problems and what those solutions mean to Java developers. InCrossing borders: Exploring Active Record, he explores Active Record, the persistence engine behind Ruby on Rails. Active Record bucks many Java conventions, from the typical configuration mechanisms to fundamental architectural choices. The result is a framework that embraces radical compromises and fosters radical productivity.


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 the java.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.



Baffling bits that break RMI  
kfarnham

Horse to the Water Blog

Posted by kfarnham Mar 8, 2006

Will a free office suite on the web revive applets?

I forget where I noticed -- I think it was in the Java Posse's show notes while setting up a link to them for something else yesterday -- that ThinkFree Office is now available in a free applet version.

Seriously. This is how many things that how many people have been asking for for so long? Office in Java, like Corel tried and failed to do in the late 90's? Office as a free, available-everywhere web application, as famously (and incorrectly, natch) reported by Slashdot to be an imminent result of the Sun-Google deal? A totally useful end-user app written in Java? A non-trivial applet?

You'd think this would get more notice than it's gotten.

Granted, I'm a little skeptical, only because I'm a former ThinkFree Office user. I paid up for a one year subscription a while back. I wanted to believe.

And then it corrupted my presentation for the 2002 O'Reilly Mac OS X Conference.

And the next summer, I discovered that it couldn't actually do slideshow mode on Mac OS X, which kind of hosed plans to use it for my MacHack/ADHOC 2003 presentation.

But hey, it's free. So I went to the web page, set up an account, and loaded up the word processor. They have some very amusing loading screens that cycle through as the JARs are being downloaded for the first time. Here's a sample:

ThinkFree Office Online is now launching. The first time you run this application we need to store some stuff in your Java Virtual Machine (JVM). You only need to do this the first time, since the JVM stores the data. The next time you launch this application, it will launch just like any other desktop application.

Depending on your network, it may take the program a few seconds or several minutes to launch. But, like we said, those Sun programmers were really smart to develop the JVM so that we can cache the application.

The JVM allows us, and many other Java software developers, to write code that can be run in a web browser on many different platforms - Windows, Linux, and Macintosh. It also provides security for safe code execution.

Seriously, could Sun buy this kind of advertising if it tried?

And to appreciate what's being accomplished, the JAR download was far faster -- two minutes on my Dual 1.8 GHz G5, seven minutes on a 450 MHz G4 Cube -- than installing MS Office from a CD or downloading and installing OpenOffice. So think about that:Java is the fastest, least hassle option for installing an office suite.

I didn't have a lot of time to play, but I did notice that it got all of my local fonts and offered a WYSIWG font menu (nice!), and was amenable to my pasting in an image and then typing text in front of it, something that often tortures word processors that have to recompute wrapping and repaint constantly (read the description of Swing's GapContent to get an idea of how to deal with these challenges).

More importantly, since TFO and I haven't had a good history, I loaded in one of the conference presentations that I made with NeoOffice to see if TFO could handle it. Here's what it looks like on the Cube:

tfo-ppt-1.jpg

Surprises continue to abound: it didn't complain that I was running a browser other than IE or Firefox (namely Shiira), which is nicer treatment than I usually get from most JavaScript/AJAX sites out there. Perhaps more remarkably, this free version can read and write from your local drive, as well as storing online (good for travel?).

And the full-screen slideshow mode works. Running as anapplet.

GJ guys and gals. Looks like ThinkFree has finally pulled it together.

Now let's see if anyone notices, or if people continue to try to rewrite Office as an AJAX app.


In Projects and Communities, with the JDK Community nearly a year old, Ray Gans has an update on Where we are with the JDK Community. This blog thanks everyone who's participated, discusses community goals, and reveals some statistics about membership, downloads, bug reports and contributed fixes. It also links to a new JDK Community Survey about the community's presentation and activities.

In Meet GELC's New Executive Director, Robert Stephenson writes: "Tuesday morning, the Global Education and Learning Community (GELC) and Sun Microsystems announced that Dr. Barbara Kurshan had accepted the position of Executive Director of the GELC. What follows is a brief interview I did with Bobbi Kurshan."


In Also in Java Today, Dion Almaer, formerly of TheServerSide.com, asks Aren't you bored of Java frameworks? I am. "Back in the day, I was the first person to know, and care about version 2.6.1 of FooBar, the open source framework that does everything that you need. For one, as editor-in-chief of TheServerSide, it was my job to be on top of things. For two, I actually cared. The playing field was fun, there was a lot of innovation. It was a brave new world. Fast forward to 2006, and I am the anti-framework releaser. If I never see 'YetAnotherMVC 1.2 Released' announcement on TSS and others, it will be too soon."

In an excerpt from Maven: A Developer's Notebook, authors Timothy M. O'Brien and Vincent Massol help with Getting Up and Running with Maven. Dive right into this introduction to learn how to install Maven, kick off your first build, and start investigating its features for integrating with IDEs and source control systems.


Jacob Hookom has a look at The Unified EL from the Trenches in today's Weblogs. "A lot of people are taking note of the new EL-API-- what does it mean for JEE? Is it just for JSF and JSP? What kind of future does it have? What does a VariableMapper do for me? Why doesn't it have Feature X?"

Masoud Kalali offers A New Module for Netbeans IDE , an statistical CVS Reporter: "This is a New NetBeans Module which helps you gather statistical information about your CVS and view them in two different charts. Its features will comply with VCS Report in its first versions."

In Repost: Using JAAS with JSF, Ed Burns writes: "Here's another re-post of an Engineer's Sandbox entry that got sandbagged. This excerpt shows how the extensible design of JavaServer Faces can be used to allow JAAS to provide authentication to a JSF Web application."


In today's Forums,ryoko reports program slows down after upgrade to 1.5.0? "I recently upgraded to JDK 1.5.0 and this program I was working on suddenly slows down tremedously to the point where it just hangs. The strange thing is that it only happens at times; sometimes, when I run the program, it works perfectly fine, then the next time I run it, it just hangs when it loads and I can't even do anything with it. This never happens when I was using JDK 1.4.2."

foxdeath is looking for a Contrast Example: "I am a semi-newbie to JAI. I have been pouring over all of the examples and searching the internet like a madman. Does anyone have a clear example of how to do contrast? I have heard a lot of different methods (lookup table multiplying bands by constant, the rescale operation, etc). I am basically looking for something simple that runs very fast. I need to provide a slidebar control that will allow a user to adjust the contrast easily."


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 the java.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.



Will a free office suite on the web revive applets?  
kfarnham

Together We Are Strong Blog

Posted by kfarnham Mar 7, 2006

A lingua franca for JSP and JSF

After running a lot of desktop oriented features for the last few weeks, we figured it was high time to delve back into the web tier. And one of the key issues on the mind of a lot of people is how to make the most of JSF, especially if they're moving up the stack from JSP. But there's been a problem... In the Feature ArticleUnified Expression Language for JSP and JSF, Krishna Srinivasan points out:

JavaServer Faces and JavaServer Pages each has its own expression language. The expression language included in JSP provides greater flexibility to the web application developer. But those who are working with JSF have found themselves unsatisfied by the JSP expression language. The reason for the problem is that JSF is used for rendering GUI components, and needs run-time evaluation of expressions. Deferred evaluation means that the technology using the unified EL takes over the responsibility of evaluating the expression from the JSP engine and evaluates the expression at the appropriate time during the page lifecycle. But the JSP EL is designed for immediate evaluation of expressions.

In the artilcle, he shows how the new "unified" expression language, "essentially represents a union of the JSP and JSF expression languages", resolves these incompatibilities and makes life easier for the developer who wants to use JSF and JSP together.


Speaking of JSF, Jacob Hookom is Extending the Web with JSF in today's Weblogs: "I'm going to attempt to summarize where I think component frameworks should be heading on the web and how JSF fits into this picture."

In Architecting Applications 3: the Controller, Scott Violet writes: "This is the third blog in a series on architecting applications. In this third installment I'll go over the role of the controller as used in the MVC architecture. As promised, this blog has a runnable demo."

David Herron asks In writing software, whose job should be simplified? "What does the customer care about at the end of a project? You're delivering the application, and what's in their mind, what are their expectations? Are they caring how much fun you had with easily writing the code? Or are they caring about how well the application does the job they want?"


In Projects and Communities, Artima publisher Bill Venners asks After Seven Years, Are Devices Ready for Jini? "Sun's original marketing message that positioned Jini as a technology for devices backfired in 1999, because at that time many barriers existed that prevented the vision from becoming reality. Seven years later, how many of these barriers remain?"

The JDK Communityis linking to A. Sundararajan's blog Java "class"-ic errors, in which he replicates commonly-seen error messages and tracks through the classloading problems that led to them. Check it out if you've recently had a NoClassDefFoundError, or gotten the "bad version number in .class file" or "wrong name" error messages.


In Also in Java Today, In a pair of recent podcasts (part 1 andpart 2), the Java Posseinterviews Thinking in Java author Bruce Eckel. The wide ranging discussion covers the 4th edition of TIJ, his opinion of new Java 5 language features, his controversial blog entry Departure of the Hyper-Enthusiasts, the upcoming Programming the New Web conference, and more.

Whereas JUnit assumes that every aspect of testing is the domain of developers, the Framework for Integrated Tests (FIT) makes testing a collaboration between the business clients who write requirements and the developers who implement them. Does this mean that FIT and JUnit are competitors? Absolutely not! In Resolve to get FIT, code quality perfectionist Andrew Glover shows you how to combine the best of FIT and JUnit for better teamwork and effective end-to-end testing.


In today's Forums, Richard Bair writes about DataAware components : "Data aware components are also useful for people used to them -- anybody coming from the Microsoft camp. Experience shows that they are also very productive (anything you can do in the GUI builder without dipping into code tends to make programming more productive -- a statement which is debated in the Java world but a matter of course in the MS world, in my experience). So they still have a place, but are not essential or required."

On the JavaHelp board, jnejedly has Two beginner's questions: "I have a few beginer's questions concening JavaHelp. We have a j2ee application using struts, consisting of 2 projects - model and viewController (we use JDeveloper). I dowloaded latest version of JavaHelp and managed to run serverhelp example (swing doesn't interests us). First question: Where to put the help files? [... Second,] is it possible (I guess that with swing displying it is) to have the whole help put in single jar library?"


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 the java.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.



A lingua franca for JSP and JSF  

Honoring Java Luminaries

In a few of our internal meetings, the term "Java Champions" has come up. Initially, I thought this was an ad hoc term for evangelists within Sun, and didn't think of it again... until we got an e-mail in a response to a blog, Don't Give us your Tired Your Poor, that Daniel Steinberg wrote over on ONJava to point out all the world-class work being done in Java and calling on its developers to propose talks to OSCON.

The e-mail pointed out that many of the people behind important Java projects, along with others in a position to advocate the platform, are being brought together and recognized under the "Java Champions" banner. The program turns one at this year's JavaOne, and may well have 100 champions represented by that point. Members are chosen by criteriathat include such traits as being leaders, luminaries, having credibility, working with cool technology, and being able to influence other developers. In an intersting point, fealty to Sun's corporate positions is explicitly not a requirement.

Since we think a lot of others might not be aware of this program, we're featuring it in this week's front-page Spotlight: "The Java Champions project recognizes leaders in the Java developer community, in 'an effort to bolster and encourage this community of leaders'. The champions are an informal but carefully-selected group of professional Java developers, JUG leaders, educators and authors with a common goal of advancing the Java platform. The project includes material related to the nomination and selection of champions, as well as links to online articles by or about individual champions."


Patrick Wright talks about big crazy ideas in today's Forums. In Re: Wacky Wiki and Tons of Ideas, he writes: "I think I did start the Wacky Wiki page, but whatever, we have a similar page for Flying Saucer. I think using this to jot down interesting todos is good, just want to make one comment. The use of the word 'wacky' is meant to imply that any ideas that are potentially realizable are welcome, no matter how far off from the current roadmap they are. So for SwingLabs, this might include--bidirectional drag-and-drop between native spreadsheets and JXTable (using DataSet); or maybe, auto-create application by dragging an internal frame and dropping it on a desktop. At some point, it's nice to have people hacking away on really weird ways of using your software, as it can bring interest, fun, etc. into the picture."

pinus is looking for Tools supporting rich client development?: "I'm looking for tools to support ritch client development. I look for all kind of tools. Starting with enhanced components (tables,lists,...), data validation and graphs and ending with database binding and printig. Are there any tools available to generate SWING GUIs and Web GUIs from the same source? Are there tools available which support parts or all requirements?"


James Gosling catches up with new releases in today's Weblogs. In NetBeans 5.5.... EE5... BlueJ... Oh my!, he writes: "This week is a little quieter, but I'm pretty charged up by the recent progress of the BlueJ project. It's a very specialized IDE for teaching people to program who have never programmed before."

Jackpot's Coming (Finally!), and Tom Ball writes: "An early-access release of the Jackpot module for NetBeans will be arriving very soon."

David Herron wonders Will Java outlive PHP ?? My point is the compile time checking, strict checking, etc, done by Java offers developer productivity gains. Rather than being a hindrance, it's a benefit.


In Also in Java Today, "As the iPod abundantly shows, user experience (along with a strong brand, and clever marketing) is much more important for the success of a device then technical specifications. Web designers have grasped the importance of good user experience a long time ago; now it is time the big technology providers to understand where the industry is headed." In Why Features Don't Matter Anymore: The New Laws of Digital Technology, Andreas Pfeiffer lays down ten rules learned from the success of the iPod and the failure of more feature-packed rivals.

In Scheduling Jobs in a Java Web Application, Chris Hardin shows how to use Quartz to provide scheduling services for Struts-based web applications. By using Struts configuration options to bring up your scheduling code at startup, you can kick off scheduled services that operate independently of the user-driven actions on the web side of your server


In Projects and Communities, a drop-in replacement for various Java SE file I/O classes, TrueZIPtouts the mantra "ZIP compatible files are directories!", and so it enables an application to access EAR, JAR, WAR, ZIP or even RAES encrypted ZIP files as if they were just directories in a file's path name. Development of TrueZIP 6, with TAR support, is underway.

Bringing together Java groups from different colleges and universities, the forum mesage Approaching students of universities for Java describes so-called "groups of studies", which currently unite Java groups at several Brazilian colleges.


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 the java.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.



Honoring Java Luminaries  
kfarnham

Jeopardy Blog

Posted by kfarnham Mar 3, 2006

Absence of process is a process

I hope I don't tilt the results by talking about this week's poll so soon after posting it, but I've been really surprised by the first few hours of balloting.

Apropos of nothing, I decided to toss out a "what process do you use" question: XP, Scrum, Waterfall, and a few others that research suggested were prominent enough to get some votes. As usual, I threw in the "something else" and "nothing" options.

The "nothing" option is interesting. I worked at a place where our second major round of development was kicked off with show-and-tells about various processes: one engineer presented the then-new XP, another spoke on behalf of waterfall, etc. I facetiously demanded a turn to talk about not having a process as, in fact, being a process, albeit not necessarily a good one, especially for a team of 10. But then again, it had gotten us this far...

The idea of "lack of process as a process" gets a pretty good treatment in the Wikipedia entry on Cowboy Coding. While fairly pejorative in parts, it does note times when a no-process makes sense for very small projects, spike solutions, throwaway demos, etc. After all, most of the code I've written in the last two years was examples for books, and it's not like I could call my process for that XP, RUP, or anything else. So maybe it's OK sometimes. But the potential for slop remains immense.

That said, I was pretty surprised that after the first hour, "Cowboy coding" had picked up almost 90% of the votes. Another 90 minutes later, it's settling down in the 40% range. It'll be interesting to see if any of the "real" processes catch up with it by the time the poll ends next Friday.

So what do you think? Check out this latest java.net Poll, "What term best describes your software development process?", by casting your vote on the front page, then check out the results page for results and discussion.


A very different kind of "process" tops the latest messages from the Forums. In Number of processes (SJSAS), richardrobin2005writes: "I'm running 8.1_02 SJSAS on several different Linux boxes: 3 debian, and one Centos (2 are dev, and 2 are production). On two of the debian boxes, the number of appserv processes is about 90 each (ps -ef | grep appserv). After a while (days, weeks), what will happen is I'll get a PermGen space error and have to reboot the server (or box). In both cases, there are just the default http-server listeners (8080 and 8081).In the past, I've adjusted the app server's JVM as follows: -XX:MaxPermSize=128m and -XX:PermSize=64m. Which helps, but ultimately doesn't solve the problem. Any ideas on how to reduce the number of processes from 90 to something reasonable (5 or 10 maybe? -- presumably there is a min and max setting somewhere?)"

k_v_n explains some interesting implementation details Re: 1.6 server vm performance: "Tmarble is correct. Java program starts by executing in interpreter first. During this time VM collects statistic about bytecode execution including the number of time a method is called. When the invocation counter reaches the threshold VM compiles the method. Client and server VM has different compilation threshold: 1000 invocations for Client and 10000 for Server. You can change it by -XX:CompileThreshold=n Try to set -XX:CompileThreshold=1000 for server VM for your test."


In Projects and Communities, the Java Tools Communityproject panaseam needs help. But how to get it? In The PaNaSeaM Dilemma, project owner Pete Morgan makes a slightly "tongue in cheek" appeal by taking a look at some potential questions about the project's validity and gives a few answers for anyone who cares to look.

The entries are in for Java Unlimited's Java 4K Programming Contest, which challenged entrants to code a complete game in just 4 KB. In total, 55 entrieswere received before the March 1 deadline, all of which can downloaded and evaluated. Judging is expected to begin today and should last a week.


John Reynolds kicks off a batch of enterprise-focused Weblogs by asking Is an Enterprise Service Bus (ESB) appropriate for volume-performance critical consumer applications? "In response to my SOA/ESB Level Set blog entry, I got a very good question about whether or not an ESB makes sense in environments with "high volume-performance critical consumer applications (such as in a financial institution) who have well defined providers and don't need externalized orchestration, transformation or even routing"

Mark Little says Transactions are your friend: "In this article I'll describe why you shouldn't overlook the potential usefulness of transactions within your application, even if you're not using distributed transactions. "

In J2EE: There when you need it!, David Ockwell-Jenner writes: "In [an] article, the author muses that 98% of Java Developers don't need some of the advanced J2EE features such as XA and JMS, for many projects. [But] it's nice to know that as your project grows, J2EE stays right there with you!"


In Also in Java Today, the latest episode of O'Reilly Network's "Distributing the Future" podcast features Bruno Souza--if you attend JavaOne, you surely know him as the guy walking around wearing the Brazilian flag as a cape--talking about the importance of Java to open source development in Brazil. He also has some strong comments for the general open source community's seeming ostracism of Java. Plus, Tomcat and Ant creator James Duncan Davidson has added professional photography to his resume, and he discusses how he built up this interest while working at Sun and continues with it today.

Continuing a series on Java EE 5 improvements, the article Web Tier to Go With Java EE 5: Summary of New Features in JavaServer Faces 1.2 Technology spotlights EE 5's upgrades to JSF, including alignment with JSP software, improved state-saving behavior, the ability to turn off component ID generation, and the new setPropertyActionListener tag.


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 the java.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.



Absence of process is a process  

Of old data and new apps

Being able to work on new stuff is a surprisingly rare privilege. More often than is generally understood, you're either enhancing or replacing already-extant systems. And, as they've been deployed and are in use, they probably have a whole bunch of data that needs to migrate to the new application.

If this task doesn't have "we'll get to that" written all over it, I don't know what does. It's an unglamorous task, one that doesn't excite most developers, who'd rather talk about new approaches, new frameworks, righting past wrongs, etc. Still, as John Ferguson Smart points out:

Indeed, importing legacy data is a crucial part of most software projects. It is also a task that rarely evokes a great deal of enthusiasm among developers. And yet it is of vital importance for the end user. These old databases often contain years of valuable business records that the user needs to access from the new application.

In our Feature Article, Agile Legacies: Using Iterative Methods to Import Legacy Data, John argues for an early, test-driven, iterative approach to importing the old data into the new application. Among many obvious benefits, such as a lack of surprises later in the process, he points out that this improves testability for developers and often reveals features and requirements that may not be specified by the customer but are implicit in the old data.


In Also in Java Today, developer Eric Bruno rounds up Mustang's key improvements for GUI developers in Java SE 6 First Impressions: A Desktop Winner. "The desktop improvements focus mainly on user interface (UI) performance and native OS desktop integration. The core improvements focus mainly on improving developer productivity and Java application management. Sun's Mustang team also put significant effort towards Web services support and security improvements. Overall, whether you're an application developer, a system administrator, a tool vendor, or a security expert, Java SE 6 has something for you. This article presents some of the interesting new features I used in some more detail."

"Speech synthesis, also known as text-to-speech (TTS) conversion, is the process of converting text into human recognizable speech based on language and other vocal requirements. Speech synthesis can be used to enhance the user experience in many situations but care must be taken to ensure the user is comfortable with its use." In Introduction to the Java Speech API, Nathan Tippy looks at the Java Speech API (JSAPI) and provides an extensive example of how it works.


Joshua Marinacci gives some Props to the Trig Teacher in today's Weblogs. Upon whipping out some paper and pencil and drawing the triangles I needed I realized had to remember which function to use. Is it Sine, Cosine, or Tangent? Hypotenuse over Adjacent? Adjacent over Opposite? All... blurring... together...

Did the recent java.net upgrade cause any problems for your project? In javanettasks 1.0.8 and maven-javanet-plugin 1.5, Kohsuke Kawaguchi works through his: "Java.net has upgraded its system and with that came a lot of changes to the web interface. So I updated javanettasks to 1.0.8 and maven-javanet-plugin to 1.5 to cope with these differences."

In "Getting to know GroupLayout, part 2, Tomas Pavek writes: The first part of this article provided the theory behind GroupLayout. Now it's time to try it on a real example."


In Projects and Communities, the latest issue of the JavaTools Community Newsletter features seven "do's and don't's" for open source project leaders, welcomes nine projects to the community, and congratulates five projects on their graduation from the tools community incubator.

The NetBeans Board Elections are underway. Anyone with a NetBeans.org login can vote for up to three of the nine candidates, all of whom have online profiles. Balloting continues through next Wednesday (March 8), with the new Governance Board announced the next day.


In today's Forums,mcacker is struggling with Debugging glassfish in eclipse "Hi, i am trying to get a dev environment set up using JAXWS-2.0 in Glassfish, and the provided eclipse ide plugin. i can get the server setup and a webservice deployed to it, but i cannot hit any breakpoints. does anyone have a configuration like this working, or can anyone suggest how to make it work?"

navinkjha has a problem with startup spash screen in mustang. Well, two actually. "I have splash screen in a jar file of an application. It has two problems: 1. If I invoke the application from command line then the splash screen shows up but does not go away once the login the dialog shows up. The splash screen goes away only after the JFrame shows up. The documentation on splash screen does say that the splash screen should go away after first window shows up but it can inconvinient as a lot of applications have a login Dialog. 2. It does not work with web start."


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 the java.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.



Of old data and new apps  
kfarnham

Reunited Blog

Posted by kfarnham Mar 1, 2006

Jini gets back to the device

Remember when Jini was launched, how all the hype was about self-networking devices? Jini enthusiasts do... many of them with a shudder. Suffice to say that talking up the ability of your toaster to "talk to" your refrigerator was not exactly a compelling use-case in 2000.Jini has instead found its place as an enterprise technology, establishing the concept of "services" long before the "SOA" keyword was appearing in every third corporate press release.

Still, there's a story outside the enterprise about having devices that can just discover the network, available resources and services, and make use of them. And in today's Projects & Communities section, we see the self-networking story finding its way back to the device, with Jini in one case, with a different approach in the other.


In Projects and Communities, the JBAN project, a recent graduate from the Communications Community incubator, should be of interest to Bluetooth-savvy developers, as it "allows unlimited devices to form a network dynamically, and the devices can be of any type as long as they support Java and Bluetooth."

The Jini Communitypage links to a press release (PDF) from PsiNaptic, Inc., announcing JMatos for J2ME, which brings Jini features to the mobile space. Specifically, it allows an SOA architecture to use Jini end-to-end, from the server to the small device.


David Herron talks about Scripting languages and Java in today's Weblogs: "There's one new feature that I want to talk about today, and that's the support for scripting languages in Java. I have some personal interest in language interpreters, from working on several projects involving interpreters."

In Reflecting on MVC, Jacob Hookom writes: "The recent TSS posts on JSF addons have spurred on quite a bit of discussion and comparison. No solution is perfect. Get ready for some rambling."

There's a surprising answer when Brian Leonard rhetorically asksWhat is NetBeans? "Did you know that the NetBeans IDE is built on top of another product? Do you know which product that is?"


In Also in Java Today, a previous excerpt from Ant: The Definitive Guide, 2nd Edition showed how to integrate Ant with the Eclipse IDE. But running your build script from Eclipse is just the beginning. In Integrating Ant with Eclipse, Part 2, Steve Holzner shows how to work with Ant's classpath, properties, and environment variables from within Eclipse, how to add new tasks, and how to run different versions of Ant from Eclipse.

What Shale isn't is a shrink-wrapped, well-documented, well-tested product complete with an automated installer and a polished management interface. Now find out what it is, as Brett McLaughlin unveils this mighty -- and rightful-- heir to the legacy of Struts. In All Hail Shale: Shale isn't Struts, the first article of a five-part series, Brett explains what Shale is, how it's different from the Struts framework, and how to install and set it up in your development environment.


Today's Forums kicks off with some Java 2D questions about Advanced Effects: "My question is, why isn't there hardware accelerated alpha blending in java 2d yet? Why transparency is made with software mode? The minimum a decent graphical application must have these days are fast transparent sprites. Alpha blending is the key to most advanced effects. While java2d doesn't enable fast hardware alpha blending it can't be considered for serious graphic applications (to be more specific, for games)."

marlor is working through problems Re: SOAP attachments Interoperability: "I am busy with exactly the same problem. The best way to go for interoperability seems to be MTOM (i researched about it as much as i could). I managed to create a web service with JAXWS & MTOM, but although it should work, i get the error with a .NET client. I have posted it in this forum recently. When I write a JAXWS client, it works without any problems. And other way around, when i write a .NET WS to send files (with MTOM), and make a JAXWS client for it, it works too."


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 the java.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.



Jini gets back to the device  

Filter Blog

By date: