Skip navigation
1 94 95 96 97 98 Previous Next

editor

1,645 posts
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  
kfarnham

Small Change Blog

Posted by kfarnham Feb 28, 2006

Step by step with the SwingLabs Wizard

Oh sure, any Java desktop developer has probably written their own Wizard. The existence of the CardLayout makes it both simple and inevitable. But then again, if so many people are rolling their own, why not just have a single first-class implementation that everyone can use?

Fortunately, SwingLabs is here with a candidate for just that implementation. In our Feature Article,Using the Wizard API, Thomas Künneth writes:

The Wizard project is a subproject of SwingLabs, which allows experimentation with extensions to existing Swing components as well as completely new ones. These new or enhanced components might be included in future versions of the JDK. Wizard is a class library that aims to provide a simple API for writing wizards. Its goal is to offer an easy-to-use solution that enables any Swing application to provide wizards with minimal code and effort.

Thomas goes on to show off not just a simple wizard, but how to block for needed input, branch based on the user's actions, and how to store the entries in each panel of the wizard for use after he or she clicks "Finish".


Special system upgrade notice: "java.net projects area will be unavailable while undergoing upgrade Tuesday 2/28 10:00 - 16:00 pacific. Please plan your usage accordingly." We apologize for any inconvenience.


In today's Weblogs, Hans Muller introduces A Reusable BuddyList Component, in which he shows "how to build a generic buddy list cell renderer. File under Advanced JList Hacking."

In Servlets Updated, Greg Murray writes: "The Servlet 2.5 Maintenance Review is currently in the review process. Servlets do not have the buzz like they did 6 years ago but the fact that servlets have been around for many years and have evolved to suite the needs of the web is a triumph to the simplicity and good design of the original Servlet API."

Ed Burns says Java EE SDK Runs ADF Faces, a blog which is an "announcement of ADF Faces running in Sun's Java EE SDK, including a tutorial on how to run it yourself."


In Projects and Communities, Robert Stephenson's latest blog spotlights the Computer Algebra System, or CAS project. "The applet is right on the CAS project page, so it's hard to miss. It is an algebraic function plotter that is well documented (scroll down the page) and seems both robust and well designed."

The latest version of the Substance look and feel offers a slew of new features, including full interoperability with core L&Fs, fade in/out animation, I18N and L10N, auto-completion for editable combo boxes, password field strength checking, gradient menu backgrounds, and much more. It also fixes several memory leaks.


In Also in Java Today, the SDN article Web Tier to Go With Java EE 5: Summary of New Features in Java Standard Tag Library (JSTL) 1.2, the second in a series on the new EE web tier, delves into the Java Standard Tag Library (JSTL) 1.2. "Although the changes in this maintenance release of JSTL are relatively small, they are essential to the alignment of the JSP and JavaServer Faces technologies." The article covers the fixed forEach and illustrates ideas behind the Unified Expression Language for JSP and JSF.

Trying to combine JSF and JSP is like trying to shoehorn a foot into a glove: it's possible, but it's really just a stopgap measure until something better comes along. In Facelets fits JSF like a glove, JSF enthusiast Rick Hightower introduces you to what he likes best about Facelets: easy HTML-style templating and reusable composition components.


JDIC apparently doesn't integrate all desktops according to today's Forums.michael_shan's post Re: JDIC on MacOSX? says "Since we haven't a Mac environment, we can't provide a build for that. For users who want to run JDIC under Mac, they have to make a build themselves. We'll be very appreciative if anyone could provide us a build under Mac and that will also help other users."

robjava is looking for End to End Caching Solutions: "Hello. Would anyone have any thoughts on creating new, or using existing products, like Open Source, or proprietary Java Caching Solutions. Any feedback, especially those based on real experience(s), would be highly appreciated Thanks in advance."


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.



Step by step with the SwingLabs Wizard  
kfarnham

A Snowy Day in Cleveland Blog

Posted by kfarnham Feb 27, 2006

It's snowing in Cleveland today. A cloudy, gray snow that hoses your visibility and slows down traffic.

I drove through this snow today, to the funeral of Elena Steinberg. Elena was the six-year-old daughter of Daniel Steinberg, our editor-in-chief and the first editor of java.net. She died suddenly last Wednesday.

I don't want to focus on their family's heartbreak. Instead, I want the java.net community to understand how much Daniel and his family mean to us.

To me, Elena was the voice in the background that would pop in when Daniel and I were voice-chatting about the site. We'd be planning, scheming, or kvetching about something, and I'd hear this "daaaaaa-dee?" in the background. On the surface, it meant that someone wanted lunch, or permission to do something... but it also meant that Daniel's family was a constant, important part of his work. If you recall the daily blogs of his tenure, you'll remember he was constantly talking about what his girls were doing, and the kinds of thoughts it brought to mind.

I wasn't going to blog about this... I'm just not sure it's appropriate... but seeing hundreds of people in the church made me appreciate how much the Steinberg family is involved with their many communities: school, church, family, and work. Author James Duncan Davidson was there. So was Apple Java engineer Scott Kovatch. And the former head of O'Reilly's Online Publishing Group, Bruce Stewart. (update: I've since learned that O'Reilly's Nancy Abila, Mike Loukides, and Sarah Kim were also in attendance, as was java.net author Jonathan Simon) And that community involvement made me think.

Daniel was one of the key movers in the launch of java.net a few years ago, and has been instrumental in making this community succeed. Maybe arguing hypotheticals is bunk, but I honestly don't believe that this site would even be here had he not been O'Reilly's top person on the project. He is a voice for not just this community, but for the idea and the ideals of an open-source community: what it can do, what it should do. Think it's easy? Look at all the failed "build it and they will come" community sites that were launched over the last few years. There's more to it than throwing up a source-control server and a web page.

It is to Sun's credit that they will bring on as partners people who say things that Sun doesn't want to hear, but needs to hear. Daniel has had to say a lot of those things. It's not easy. You get insulted, you get attacked, and when you don't win, you get blamed by people who you probably agree with. Personally, I haven't been fighting nearly enough of these battles to support him. He's had to take a lot of the heat himself, and I feel terrible about that. Everyone at Sun and Collab, you're now on notice: I am the new "bad cop". Daniel can retire.

While continuing as our editor-in-chief, Daniel has been working on some new projects. If you're a podcast listener, you know him as the producer, writer, and voice of O'Reilly Network's Distributing the Futurepodcast. You probably didn't, however, know that he used to be a radio DJ. Listen to the voice and you can hear it. He's also writing one of the few books the world really needs, Head First Calculus. Learning Calculus is one of the two things I've insisted that my children will have to do when they're teenagers (the other is learning to drive stick-shift). When work resumes on that, you can follow the progress on his Extreme Teachingblog.

Daniel has done so much for our java.net community, and for me personally. He helped cover my work on the sites when we were in the hospital for three weeks with my son's third heart surgery. I'm taking some of his work until he can return, and I don't care how long it takes. Stuff will get done.

It's still snowing in Cleveland. In California, millions of bits are passing through the java.net servers. It's supposed to snow again tomorrow, and the site will continue on too. Projects will get started, code will be checked in and out, and I'll pull together a new front page. Most of this will go on as it always has.

But some things can never be the same again.

kfarnham

Remember Blog

Posted by kfarnham Feb 26, 2006

Back to the browser

Do you remember the Applet Era? Back in 1.0, before Servlets, or even the Java Web Server, before Swing, back at the beginning of Java, most code was written either as command-line utilities or as applets. For the GUI crowd doing applets, it helped that getting a free ride from the then-popular Netscape browser was providing our potential user-base with a runtime. If only it had gone better -- the move from 1.0 to 1.1 (and its radically overhauled AWT event scheme) was a train-wreck on Netscape, sent out in bits and parts in minor verions of the Netscape browser. Perhaps the worst problem was that the Mac version shipped with a brain-damaged Frankenstein version -- 1.0 for the AWT and 1.1 for everything else, so your code couldn't even look at the version system property to figure out what to do.

The Java plug-in helped solve these problems by standardizing browser access to Sun's JRE. While applets have dropped off the radar for many, they still work and are still supported. In this week's Spotlight, Sun's Ask the Experts page is featuring members of the Java Deployment Team answering questions about Java Plug-In Technology. If you're working on getting your code to run in a browser, Sun staffers Dennis Gu, Danielle Pham, and Mike Lei will be taking your questions all week.


Krishnan Viswanath presents A simple utility in today's Weblogs. "Often, a password is embedded in source as clear text. No corporate risk management folk would approve of exposing passwords, which would potentially expose access to sensitive data. Here is a partial solution that addresses technology by extending the IDE and by using Java 5 Annotations."

Jacob Hookom describes a New Feature for JSF 1.2: "In order to solve some misconceptions with JSF's API and to setup a platform for partial processing (AJAX), we've add a new method to JSF 1.2. For this blog, I'm going to summarize it a bit and provide some ideas for extension."

In Service Oriented Mashups, John Reynolds writes: "What can Service Oriented Architects learn from Mashups? Aren't mashups just about fluffy browser stuff? NetBeans 5.5 may just change that."


In Also in Java Today, by-the-book JMS development means boilerplate code to resolve a JNDI context and manage a JMS session; it takes a lot of work, or a lot of copy-and-pasting, before you're ready to start exchanging messages. The Spring Framework helps do away with this by providing a "template" abstraction that isolates Spring developers from the boilerplate, version differences, and other drudgery. In Asynchronous Messaging Made Easy With Spring JMS, Srini Penchikala provides an overview and examples of how it works.

"Data Access Objects (DAO) is a popular design pattern for building the persistence layer of a J2EE application. Developers use this design pattern primarily to separate their JDBC code from business logic. The EJB3 Java Persistence API, which defines the persistence API for the Java platform based on O-R solutions such as Oracle TopLink and JBoss Hibernate, lets developers skip the mundane task of building DAO and JDBC code." But what if you've already rolled your own DAO? In Migrating JDBC Data Access Objects to Use EJB3, Debu Panda reports that performing this migration on the J2EE Adventure Builder Consumer web site reduced the code size by 16% and the class count by 36%.


In Projects and Communities, the Seneca project is a effort to use open source methodologies for research and analysis. The project is being used to create a paper called "SOA at the Edge". The goal is not to create a "perfect" paper, but to investigate open-source dynamics. The first version of this paper has been uploaded and is available from the project's CVS repository.

Sun has re-released the jini.org projects Surrogate and IP Surrogate under the Apache License, v. 2.0. The various surrogate projects provide a means for devices to participate in a Jini federation even if they are unable to perform certain Jini requirements, such as downloading and executing Java classes on the fly.


In today's Forums,dav0 contributes an analysis and some criticism on Re: why Java3d is not widespread: "Keep in mind that when large companies drop down millions of dollars in the adoption of a new platform, they can't afford to jump ship a year later when Sun decides to start selling Java Server Faces or some new framework. First of all, the chosen framework is seldom used as is, but customized layers are built on top of it to both work around problems, as well as improve upon it. These sorts of application development projects take years to complete and funding for these sorts of rewrite projects is not perpetual."

In Re: Display alert dialog box for all uncaught exceptions,leouser writes: "If you don't have the liberty to develop the mechanism, then study the source of JOptionPane and see how it does its dialogs. Or maybe use a JOptionPane for the notification mechanism instead. Be warned though, if your message is big you will probably need to pass in your own widget to control the sizing of the message. Ive put a patch out for that problem in the Collab project, but I believe things are on hold to see if developing multi-line labels will help solve the problem."


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.



Back to the browser  
kfarnham

Like It Or Not Blog

Posted by kfarnham Feb 24, 2006

The verdict's in on SE 6, how about EE 5?

I worried a bit about posting today's poll because the wording is so similar to last week's that some might not even realize the poll had changed, as it does every Friday. Last week we askedWhich Java SE 6 (Mustang) features appeal to you most?, and according to the results the winner of that poll was "Desktop Enhancements", by a huge margin. Not for nothing is the Swing team saying that Mustang is their biggest release since Java 1.2.

But that was last week, and came off of the announcement that Mustang had gone beta. This week, Java EE 5 has gone beta, so how can we not ask the same question of this major platform. So, the new java.net Poll asks "Which Java EE 5 feature appeals to you most?" Cast your vote on the front page, then visit the results page for results and discussion.


Joshua Marinacci offers My Mustang Beta Thoughts in today's Weblogs: "As a relatively new member of the Swing team I don't have much to add, but I will say that we've put a lot of improvements into the the Windows Look and Feel, including using the official XP themeing API (we used the XP themes before but not through the then undocumented API)."

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

Kohsuke Kawaguchi announces a Hudson extreme makeover! "I just posted a new release of Hudson (a continuous build engine) with improved GUI."


In Projects and Communities, the Delta DOM project, a recent graduate from the Enterprise Community incubator, introduces a simple JavaScript API for component developers to use instead of traditional HTML form.submit() that will automatically manage the incremental update of the client-side DOM.

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 March 8, with the new Governance Board announced on March 9.


In today's Forums,paulby has some fixes Re: LG3d and Java application as Graduation Project: "I've just integrated a few fixes to the toolkit code which should give you some idea of the level of Swing support you can expect from SwingNode in the short term. The toolkit is by no means complete but it may suffice for initial work. In particular buttons, check boxes etc work OK. TextField and TextArea work for text display and entry however the cursor is not rendered (but only on JDK 1.5, 1.6 is currently not working)."

dibyendumajumdar points out an interesting GlassFish problem in Re: Question about dependency injection: "Glassfish allows an interface to be annotated both as @Remote and @Local. I assumed therefore that this is legal, and also that there is some intelligence to decide which one is appropriate. However, what happened was that when the application client tried to lookup the EJB, it got an exception. Almost as if the Local interface had hidden or taken precedence over the Remote interface."


In Also in Java Today, this month's theme on the Sun Developer Network (SDN) Channel is "open communities", featuring a 15 minute video in which you can hear both Sun leaders and open-source innovators discuss "why Sun is opening source code across its product portfolio, and how you can reap the benefits for smart innovation." The page also links to Java-oriented blogs and podcasts, and major open-source projects like GlassFish.

A service-oriented architecture (SOA) approach should be built for flexibility, and that means it should be built to last. "SOA relies on successfully institutionalizing a culture of reuse. The building blocks of SOA are discrete, reusable services and architectural elements that can be combined to form composite applications and service infrastructure." In the dev2dev article Successfully Planning for SOA: Long-Term SOA Planning, David Groves looks at how to build not only the project, but also its organization and governance, to ensure success in the long run.


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 verdict's in on SE 6, how about EE 5?  

Filter Blog

By date: