Skip navigation
ANNOUNCEMENT: community.oracle.com is currently Read only due to planned upgrade until 29-Sep-2020 9:30 AM Pacific Time. Any changes made during Read only mode will be lost and will need to be re-entered when the application is back read/write.
kfarnham

Cold, Cold, Cold Blog

Posted by kfarnham Dec 23, 2005

Bundling up for the winter holidays

We're taking off for the winter holidays, so the front page won't update the week of December 26 through 30; we'll be back on January 2, 2006. Of course, the collaboration space is available 24/7, so your projects, mailing lists, and forums will remain available and active during this time.

As we wrap 2005, I'd like to thank the O'Reilly staff - Daniel Steinberg, Sarah Kim, Craig Palmer, and Jamie Barnett for everything they do to keep the editorial side running. Thanks also to our partners, CollabNet's Helen Chen, and Sun's Marla Parker and Gary Thompson.

See you in 2006!


In Projects and Communities, the Java User Groups Community is kicking off a new series of profiles with a profile of Norway's javaBin. This interview with Kjetil Jørgensen-Dahl discusses the JUG's organization and membership, its activities, and its organization of the JavaZone conference, which "filled the largest conference hotel in Oslo to its limit" with 1,000 Java developers last September.

Beautifying your NetBeans environment could win you a t-shirt, USB flash memory, or an iPod. The NetBeans Look and Feel Competition is looking for users who've customized their NetBeans IDE with a custom look-and-feel, or the Substance plug-in. Visit the contest page for details on submitting your screenshot. The contest closes January 15th.


John O'Conner's Mustang contribution series nears the finish line in today's Weblogs. In Contributing to Mustang: A submitted bug fix, he writes: "Not yet complete, my work to fix a Mustang bug overcomes a major hurdle. Yes, I have submitted a fix. After so long anticipating this moment, after the deed is done, I feel like it was too easy."

Automated visual verification is hard, which leads David Herron to write: "in the Quality Team we try to automate our testing as much as possible. This is easy for tests of the core library or other functionality where there's no GUI. But when you bring in a GUI like for AWT/Swing tests then the test complexity goes up dramatically, because for some scenarios you need to verify the graphics rendered correctly."

In Spicing up your JTabbedPane - part II, Kirill Grouchnikov writes: "The second part of the series that describes the additional capabilities that you can get on your tabbed panes. This entry describes vetoable close buttons and vertical tabs."


The latest java.net Poll asks "What platform are you most looking forward to using in 2006?" Cast your vote on the front page, then visit the results page for results and discussion.


In Also in Java Today, Sameer Tyagi's Realizing Strategies for Document-Based Web Services With JAX-WS 2.0: Part 3 in a Series continues his examination of how to build document-based web services with Java EE technologies such as JAX-RPC. Part 3 examines "how to realize some of the same strategies with the Java API for XML-Based Web Services (JAX-WS) 2.0, a successor to JAX-RPC 1.1."

Hibernate eliminates a lot of hassles, but one new one it creates is the management of mapping files, which must be kept in sync with both your Java classes and your database schema. In Hibernate Class Generation Using hbm2java, John Ferguson Smart looks at the advantages of writing your own mapping files and letting the included hbm2java tool generate suitable Java classes. He also shows how to automate this process with both Ant and Maven.


In today's Forums,wangzaixiang wonders Is there any EJB metadata API? "I think a Metadata API on EJB3 is useful, for example: 1. Is the class Persistable? 2. What is the persistence field and Data type? 3. What is the Id field? and how to get/set it? 4. Information about the relationship. Although the information can be retrieved from the annotation, if there is a standard API and the JEE container may provide the implementation, that would be an good idea. Based on the metadata, an application can do metadata-driven programming, and do some general work."

Wondering about the assumptions of enterprise Java, in Re: Chapter 9: The Contenders barin writes: "For instance, everyone reflexively throws up the 'enterprise' argument. What are these 'enterprise apps'? XA transactions? Interface to PeopleSoft? SAP? So, if 90% of my application is web based, interacts with one or more databases, and 5-10% of it is XA transactions, or ERM/CRM connectivity, then that 5-10% somehow makes my application an 'enterprise' app? What exactly is the criteria for an 'enterprise' app, anyway?" 

In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Bundling up for the winter holidays  
kfarnham

All That You Dream Blog

Posted by kfarnham Dec 22, 2005

Imagining Duke's holiday travels

Today's Feature Articlecontinues a tradition here at java.net, the annual round-up of fanciful pictures of Duke on his end-of-year vacation. Since you can create such a picture either with a real Duke plushy, or with some image manipulation tools, the possibilities are pretty much wide-open, and we've had some fun contributions over the last few years. In Duke's Vacation 2005, you'll see Duke chilling, dancing, and taming the dinosaurs.


James Gosing's recent blogs about scrpiting language and typing continue to resonate in the blogosphere. David Herron replies to Berin Loritsch's James Gosling Asserts that Safety is Freedom in today's Weblogs. In Safety is freedom?, he writes: "It seems the basis for Berin's argument (loosely typed languages are safer/easier) is to take an analogy from Ben Franklin that "Any society that would give up a little liberty to gain a little security will deserve neither and lose both." While old Ben was a wise man and there's a lot of wisdom in that statement, computer programs are not people nor are they societies."

Are software architects not working hand-in-hand with developers? Marcelo Mayworm asks: "Why didn't the software architect think simple when designing the architecture (KISS - Keep it simple as possible)? It is fundamental for software architects to provide a solution design that is truly viable and that can be successfully and rapidly constructed, implemented, operated and managed."

John O'Conner's quest to get Mustang fixes approved continues inContributing to Mustang: Low hanging fruit: "The experiment isn't finished. I've finally found a bug to fix. So, let's continue."


In Projects and Communities, A beta of Java Advanced Imaging (JAI), has been released, and is available from the project's downloads page. According to its README, JAI 1.1.3-beta is primarily a bug-fix release with a few enhancements, such as the ability to build with JDK 1.5 and making JAI available via Java Web Start from java.net.

The JSR enumerating the proposed contents of Java SE 6.0, JSR 270, is now availablefor early draft review. As described in Mark Reinhold's blog Mustang Release Contents (JSR 270): Early Draft Review, JSR 270 is an "umbrella" JSR that points to other JSR's that make up Mustang.


In Also in Java Today, Steve Yegge's blog Is Weak Typing Strong Enough? enumerates the pros and cons of static typing and describes a "big case study" of battles between strong-typing and weak-typing camps within Amazon's Customer Service Applications group. "So for years, we had Java and Perl development going on side by side. This was a decision made in old days, purely for expedience reasons. When we were deciding how to implement Arizona (our internal web-based application suite for CS), we had about a 50/50 split between Perl and Java programmers on the team."

Following up on this month's major Java conference in Europe, Julien Delfosse has posted a Full Javapolis report over at JavaLobby: "My general impression about the organisation is excellent, the venue is nice, free drinks, comfortable rooms, very cool. The BeJug did an excellent job with Javapolis, such an event at an incredible low price, it's amazing, thanks guys!"


In today's Forums,jddarcy continues the discussion of accuracy and performance Re: Trig performance: "There is a difference between the specification of Math and StrictMath. The interesting StrictMath methods are required to use a particular algorithm, fdlibm, to ensure cross-platform reproducibility. Previously this was the definition for the Math class, but since developers had need for higher-performance mathematical methods when full reproducibility wasn't needed, the Math/StrictMath dichotomy was introduced in JDK 1.3. The fdlibm algorithms are pretty good in terms of speed and accuracy, but they are not new and algorithms that are better in various ways have been developed in there intervening 10+ years since fdlibm was written."

Back in the Book Club's discussion of Re: Chapter 9: The Contenders, archangel writes: "I think it really depends on what *space* Tate is talking about. For example, nobody would have ever looked at PHP and said 'This is much easier than Java, I'm going to write my enterprise app in this'. However, I've known lots of people to look at PHP and say 'This is much easier than Java, I'm going to knock-up the dynamic section of my website in it'. PHP has a sizable share of the total number of dynamic websites out there, but I would hazard a guess that few of them are enterprise-strength apps."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Imagining Duke's holiday travels  
kfarnham

Day at the Dog Races Blog

Posted by kfarnham Dec 21, 2005

Handicapping Java's rivals

The Book Club discussion of Beyond Java has reached the final chapter, which attempts to answer the question "if there's something next, after Java's period of dominance, what is it?". Here's how author Bruce Tate sets up the discussion in the book:

If nothing else, this book is about changing perceptions. Sure, the Java libraries have legs -- libraries and community. But the community can be dysfunctional at times, and the culture is leading to increasingly complex libraries. The JCP seems to be getting in the way, valuing politics and committees more than good libraries hardened in the crucible of experience. There's something to be said for a fresh start on a stronger foundation.

So, don't let Java's built-in advantages always lead you to sell the alternatives short. They've come a long way. In this chapter, I'll touch on the major contenders and some also-rans.

Given the way Tate has framed his arguments -- and the fact that he gave it two chapters -- you won't be surprised to know that Ruby is in the running. More surprising is the appearance of .NET, which throughout the book is dismissed as little more than a Java wannabe. Its advantage, and disadvantage, is Microsoft: lots of marketing and engineering support, but a proprietary mindset and lots of Java developers who just won't touch anything MS. Rounding out the main challengers are Python and the seemingly-fading Groovy. Tate's also-rans include PHP, Perl, Lisp, and Smalltalk.

If you're interested in reading more, Beyond Java is available as part of the java.net Safari Online Bookshelf, which has a 14-day free trial. Indeed, if you came to this conversation late, you may well be asking "Why are we talking about other languages? Why not just fix Java?" Tate is pessimistic about the prospects for this (see Chapter 4), but I'm not inclined to agree. For example, check out the Trailsproject for an example of convention over configuration in Java.

This is the last chapter of the book. If there's a book you'd like to host a book club discussion of, please mention it in the comments and we'll contact you about possibly making it our next title.


Also in today's Forums,pelegri offers a little app server history in Re: JBoss vs. GlassFish (Why Glassfish?): "There are two different ongoing release trains. The 'old' releases are based on the J2EE 1.4 standard and are available as the SJS AS 8.x (free) products. The 'new' releases are based on the forthcoming Java EE 5 standard and are the ones that currently are only available as early access at GlassFish.dev.java.net. Both release trains are based on the same code base, but, strictly speaking, the repository at Java.Net is that of the Java EE 5 release."


In Also in Java Today, Artima's Bruce Eckel blogs on The departure of the hyper-enthusiasts: "The Java hyper-enthusiasts have left the building, leaving a significant contingent of Java programmers behind, blinking in the bright lights without the constant drumbeat of boosterism. But the majority of programmers, who have been relatively quiet all this time, always knew that Java is a combination of strengths and weaknesses. These folks are not left with any feelings of surprise, but instead they welcome the silence, because it's easier to think and work."

In the Linux DevCenter interview Through Project Looking Glass with Hideya Kawahara, John Littler talks to Project Looking Glass founder Hideya Kawahara about the proof-of-concept 3D desktop that has turned into a popular open source project for exploring concepts of 3D user interfaces. He also discusses the lessons of VRML, the possibility of a "mod" community for Looking Glass, and tours the attractive demo apps that ship with the project.


In Projects and Communities, the SimpleDBM project is a new relational database written in Java. The project uses a modular structure that encourages use of components for research and experimentation, and its basis in published research makes it easier for newcomers to understand the code.

A recent graduate from the JavaTools Communityincubator, the a-jar-stdio-terminalproject allows you to take any application jar and attach a Swing "green screen" window to provide access to System.out log message and System.in console input.


John Reynolds has some Big dreams on the longest night of the year... in today's Weblogs. "December 21st is the winter solstice, the longest night of the year in the northern hemisphere. What better time to dream sweet visions for the future?"

Sahoo says Don't use @PersistenceContext in a web app...: "It's a common mistake to inject an EntityManager into a web application that uses Java Persistence API. Let's discuss why."

In the announcement blog JAX-WS development issues discussed on dev mailing list, Doug Kohlert writes: "In an effort to be more open about the development of JAX-WS, discussions about changes to JAX-WS are now happening on dev@jax-ws.dev.java.net."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Handicapping Java's rivals  
kfarnham

Let It Roll Blog

Posted by kfarnham Dec 20, 2005

Freedom and safety aren't opposites

James Gosling is reacting to the many comments on his previous blog, RADlab, scripting and scale, in which he stated his affection for scripting languages, before stating his concerns that they tend not to be as effective at scaling, generality, or testability. "I sure stirred up a pile of flaming with my previous post. The internet flame-before-reading tradition is alive and strong."

Jumping off on one frequently debated points is the value of static typing, which one talkback casts into a dichotomy of freedom versus safety. In his response, Safety is Freedom, Gosling writes:

One of the slogans that was brought up in the commentary to my previous blog entry was "freedom vs. safety". Once upon a time I used to believe that: it has certainly been conventional wisdom for years. But a lot of the time, the truth is actually that safety is freedom (eg. a good safety harness and rope give you the freedom to climb a mountain).

Also, as an illustration for this blog entry, he has a nice picture of Duke hanging a stocking by the fireplace... if only he'd submitted that for the Holiday Pictures 2005 too. Sigh.


Also in today's Weblogs, Krishnan Viswanath takes a new approach for Dealing with Command Line Parameters: "One of the things that keep popping up often is a need to write batch programs that is started from command line. Every single time it's always been either reinvent the wheel or copy/paste from old code. So I recently decided to put an end to this practice by looking at a professioanal CLI solution from Apache."

In JPasswordField with an empty echo character: the fix, Scott Violet writes: "Learn why my last attempt at a password field with an empty space echo character failed and how to fix it. And of course a demo is thrown in for good measure."


In today's Feature Article, Lu Jian has An Introduction to JMXRemote. JMX programmers know that getting an MBeanServerConnection from a JMXConnector comes with a string attached: no support for the registerMBean() method, and thus no way to register a local MBean with the remote server. The JMXRemote project aims to fix that, and this article shows how it works.


In Projects and Communities, Realtime strategy game Tribal Trouble from OddLabs.com was ranked number two in the strategy games division of GameTunnel.com's "Game of the Year". Tribal Trouble gained the honor for being fun, entertaining, and easy to play. We're sure that the fact that the game is pure Java had a hand in the victory too. Check out the screenshots. Vikings!

Two new releases highlight the JXTA community's recent activity.JXTA JSE 2.3.6 adds J2SE 5.0 support, enhancements to ext:config and PSE membership service, performance improvements and bug fixes. On the native side, JXTA-C 2.3 significantly improves RDV support, numeric types in the xpath-style query, and interoperability fixes.


In today's Forums,jansan says Java(TM) Update is getting on my nerves: "Since recently whenever I send my WinXP box into hibernation and then start it again, there is an error message displayed from "Java(TM) Update" saying something like "The Java update cannot be continued with the current system settings for the internet connection. Please check in windows system control under internet settings -> connections if the settings and proxy information is correct." (my translation from German). I do not remember this happening before I installed Mustang build 63. Is this supposed to be a new feature to make the user's life easier? It is just getting on my nerves to see this message every morning."

cayhorstmann summarizes an annoying bug-tracking experience in Re: GlassFish needs useful exception messages: "I just discovered the "log viewer" in the admin console. Well, that's certainly nicer than reading the raw server log. Here is a suggestion. When an error message with a stack trace is displayed, why not include a link to the log viewer? 'Click here for more detail' is a lot better than 'Find the logs yourself to prove that you are a Real Programmer'. I realize that the feature needs to be turned off in a production server. But if we can keep a few more budding developers from giving up in frustration, it will be worth it."


In Also in Java Today, David Gelernter's "Linda" programming language and his book Mirror Worlds have been cited by Java technology luminaries as key inspirations. In the interview Computer Visions: A Conversation with David Gelernter talks with him about these inspirations, as well as his recently-articulated "vision of information technology that goes beyond the Web and our current world of files and folders to one centered around what he variously calls 'life beams' or 'information beams'."

"Can your J2EE application sustain a large number of client requests simultaneously? Or does it become sluggish, with painfully slow response times? There are many reasons for such performance bottlenecks and many ways to prevent them. However, sometimes it's just a matter of following some simple best practices that can make all the difference." In Six Steps to Faster J2EE Apps: Performance Tuning with JSP and Servlets, Sridhar M S offers design and coding practices to help speed things up.


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Freedom and safety aren't opposites  
kfarnham

Easy to Slip Blog

Posted by kfarnham Dec 19, 2005

Java was going to be a scripting language?

Here's an interesting quote that's probably going to get kicked around a bit:

When the project that Java came out of first started, I was originally planning to do a scripting language. But a number of forces pushed me away from that.

That's Java creator James Gosling, discussing RADlab, scripting and scale, a blog that came out of a discussion with members of Berkley's new "RAD Lab". " The conversation was all over the map, but a major thread was about the design tension between scripting languages and strongly typed general purpose languages." So what happened to the scripting approach of this ur-Java? Gosling says "a number of forces pushed me away from that."

The biggest was concerns about performance and the inevitability of scale. I can't remember how often I've had experiences where someone has proudly shown me some system they've put together using the scripting-language-du-jour: things like an Adobe Illustrator clone written entirely in PostScript; a satellite groundstation diagnostic system written as TECO macros; a BASIC compiler written as Emacs macros; fourier transform algorithms in PostScript... This list is endless. They always ended with "this is so cool, but I'd like it to be as fast as {C,Assembler,whatever}". People get into scripting to quickly build small quick things, but they often grow far beyond where the initial concept started.

So, it's about scaling. Isn't it always about scaling? And wasn't that the original knock against Java: that it wouldn't/couldn't scale like native approaches would? There's a vigorous discussion in the comments section. Take a look at it.


Also in today's Weblogs. Bruce Tate takes a look at the difference between Popular vs. Great: "Cedric Beust posted an interesting blog about the Fan Syndrome as it pertains to Ruby on Rails. It got me thinking, why are some great frameworks scorned, and why are some poor frameworks popular?"

Moving into the pajamas-at-noon home office set, Felipe Gaucho asks How modern is your job? "I'm just moving from my current job to a new challenge: open my own company, as a IT consultant based on my home-office. After drinking coffee for fifteen years on traditional enterprises, I decided to drive my own destination - changing my career in a business perspective."


In today's Forums,ajaygautam has a question about JBoss vs. GlassFish (Why Glassfish?) "A friend of mine forwarded me the link to the Glassfish project and it got me thinking about why does this project exist. I looked into FAQ, and it seems that JBoss vs. Glassfish is not asked frequently enough. Anyway, it seems that glassfish does pretty much what jboss does. I mean, why not just contribute to the efforts of jboss, and try and make that and ever better product? If jboss is better, lets try and get jboss developers to join. Would anyone care to fill me in on whats going on?"

In the book club discussion of Beyond Java, rickcarson has some critical considerationsRe: Chapter 8: Continuation Servers: "On most web projects I've worked on, the Session was regarded as a limited resource, and in general the rule of thumb was not to shove too much into it if we could help it. From the links and comments about continuations, it sounds as though the amount of stuff being stored in the session would be a lot more with continuations than the state persistence I suspect that there would be a number of trade-offs, and my first question would be how scalable is the use of continuations? Is this only for low traffic situations, or is this for heavy duty prime time as well? Notably, Paul Graham's use of continuations was (allegedly) later rewritten in Java. Could scalability have been one of the major reasons for this?"


In Also in Java Today, the December Issue of the Java Technology Fundamentals Newsletter has a tutorial on "Understanding the Caret and Highlighter Interfaces of Text Components". "The Caret and Highlighter interfaces are two aspects of text components that control the view of the current text. The Caret interface describes what's usually referred to as the cursor: the location in the document where you can insert text. The Highlighter interface provides the basis for painting selected text. [...] Although you probably won't alter the caret and highlighter behavior for a text component, you should know that many interrelated classes are working together"

In the book excerpt Killer Game Programming in Java: A 3D Checkerboard, Part 2, Andrew Davison continues the development of a navigable 3D scene, consisting of a tiled floor and a sphere floating above it. This second installment creates the floor tiles and handles the positioning of the viewer in the scene graph, accounting for his or her movement through the scene.


In Projects and Communities, Alexander Krapf's NetworkWorld article Jini builds foundation for SOA details Jini's suitability for SOA architectures. "Jini offers such features as platform portability, mobile code and platform security. It is easily used in applications with access to a full [J2SE] run-time environment. But it also can be used on tiny, embedded devices and in applications written in non-Java programming languages."

Java Boutique's The Java Game Development Tutorial offers a crash course in developing Java game applets. "We will talk about Java Applets because everyone has a Internet browser, so everyone is able to play these games without installing the JDK!" The tutorial covers animation, double-buffering, sound, input handling, and points the way to advanced topics like AI, random landscapes, and level editors.


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Java was going to be a scripting language?  
kfarnham

Trip Machine Blog

Posted by kfarnham Dec 16, 2005

Time's running out for Duke's holiday pictures

Today's the last day to contribute pictures of Duke -- real or Photoshop'ed -- to the Holiday Pictures 2005 roundup. Actually, we won't pull the submissions together until early next week, so if you happen to see Duke over the weekend as he begins his end-of-year vacation, please get a picture and send it to  

For inspiration, here are the 2004 pictures and the 2003 pictures.


In Projects and Communities, the Open Web SSO project aims to provide an extensible identity services implementation, to facilitate single sign-on for web applications. The project recently graduated from the general incubator, and its session architecture and project sources have already been released.

Mohamed Abdelaziz has announcedthe availability of the stable 2.1.1 version of JXME, which provides JXTA functionality in J2ME. The new version adds a number of bug fixes and performance enhancements, and can be checked out by the JXME_2_1_1_STABLE tag.


The latest java.net Poll asks "How many session proposals did you submit for JavaOne 2006?" Cast your vote on the front page, then check out theresults page for results and discussion.


The Beyond Javabook club discussion continues to look at continuation servers in today's Forums. Re: Chapter 8: Continuation Servers begins: "Mid-way through the chapter, Tate summarizes the pros and cons of continuation servers: 'You've seen the primary benefit: you can look at a web application as one big piece, instead of coordinating lots of little requests. That's incredibly powerful. Continuation servers have some other capabilities as well. The Back button problem becomes much easier to solve, because if the Back button is not disabled, you can just revert the application state to the last continuation, or any previous continuation. To disable the Back button, you simply tell the browser and delete past continuations. Threading also becomes trivial, because each thread can work on a private continuation, each with an application's own resources. You don't have to worry about serializing access to a shared session.'"

cayhorstmann is making Another plea for better error messages: "I just wasted two hours trying to debug a simple EJB3 program. [...] I double-checked everything and even ran the example for comparison (which worked correctly). Finally, I realized that I had made a really stupid mistake. I forgot the @Entity declaration in the Choice class. I know that was stupid, but real programmers make stupid mistakes. Wouldn't it be easy to check for this mistake in the ORM layer and give a better error message?"


Meeraj Kunnumpurath looks at Resource injection in web applications in today's Weblogs: "I have been looking at the Servlet 2.5 specification (Maintenance Review). One of the key additions is the ability to inject dependencies to classes whose lifecycle are maintained by the container. "

In Ja-va-saurus and the Asteroid, John Reynolds writes: "The Business Week article 'Java? It's So Nineties' quotes Peter Yared as saying 'Java is a dinosaur'. Let's grant Peter the benefit of the doubt and assume that he's right. Let's assume that Java is in fact a dinosaur and have some fun..."

Carla Mott presents More examples using GlassFish: "Lately I have found more and more blogs about features in GlassFish. I thought I would mention some of what I found."


In Also in Java Today, Subversion has rapidly become a popular version control system, but its newness means it's not always well supported by IDEs and other tools. Fortunately, the Eclipse IDE's extensible architecture makes it very amenable to add-ons like the Subclipse plugin. In the dev2dev article, Using and Hacking Subclipse: the Subversion Plugin for Eclipse, Eugene Kuleshov shows how to install, configure, and use Subclipse with dev2dev's CodeShare repository.

In the interview Ajax technologies aren't particularly new or sexy, "Ajax in Action" author David Crane talks about the rise of Ajax, its pros and cons, and its affinity with Java. "At the risk of sounding a bit fluffy, I'd say it's a way of doing new things with old technologies. From the programmer's perspective, everything that we needed to do Ajax has been available for several years, but it's taken most of us this long to get it. [...] To the coder, Ajax is just a new way of using all the DHTML technologies, such as JavaScript, CSS and the DOM. Because you can get by longer without full-page refreshes, those technologies suddenly become more useful. To the architect and the business-person, it's more of a challenge, because it ousts some of the user flow control from the presentation tier, and requires a rethink of how the server-side 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 thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Time's running out for Duke's holiday pictures  
kfarnham

Nonstop Mega Mix Blog

Posted by kfarnham Dec 15, 2005

Who says Java doesn't have mixins?

OK, I'll admit it - I went to an ApacheCon session on Ruby yesterday, to see what the big deal is. There's syntactic sugar, sure, but there are some interesting liberties taken with the ideas of object oriented programming.

One of the neat ones is mixins, which offer a way to bring some commonly-used functionality to many parts of your code. There isn't really a straightforward Java analogy for this - you can use an interface to declare that many classes share a similar capability, but you can't use it to actually share the implementation between classes (indeed, it's a good thing that classes can implement the interface in different ways).

One analogy you could make is that a mixin resembles across-cutting concern in aspect-oriented programming, because in both cases, you're trying to put the same code in many different places.

Mohan Radhakrishnan takes this a big step further in In today'sFeature Article, by explicitly using AOP to deliver mixins in Java. In Writing Mixins using AspectJ, he uses the concept of event-notification code, something that many classes will have to support, yet most will do in pretty much the same way. In the article, he offers three progressively simpler versions of supplying common event-notification code: an AOP version without mixins, one with mixins, and one that uses J2SE 5.0 annotations to declare AOP join points.


James Gosling shares his Adventures in internationalization in today's Weblogs. "I spent a good chunk of last week fussing with how rocky internationalization support can be... Enough software failed to handle these [cases] that it was pretty awkward. I won't name names, but I did file bug reports."

Eitan Suez has had An Epiphany: "Epiphany is to Gnome what Camino is to MacOSX: a web browser that uses Gecko but its UI uses the Gnome and GTK APIs for a user interface. Epiphany was designed to fit in on a Gnome desktop. Indeed, it is the endorsed web browser for Gnome."

In Handling Type Codes in Your Domain Models, Jacob Hookom writes: "With complex enterprise systems, we often times find ourselves with lots of 'flags' or 'types' within our database tables. Utilizing Hibernate's UserType facility, we can handle these types in such a way that will carry extra behavior and information within your domain models. " 

In Projects and Communities, the JDK Community spotlights JVM performance: "Record setting Weblogic 9 set the world records running on Sun's Hotspot JVM. David Dagastine blog has more examples of Sun Hotspot JVM performance leadership. SOOOOO how does JRocket work with a Java Client? Kirill Grouchnikov gives a hint by yelling out show me the money."

The 65th issue of the JavaTools Community Newsletter features news from a number of projects, a list of new community projects, a tip for using Eclipse perspectives, and a call for JavaPolis attendees to meet community leaders Fabiane Bizinella Nardon and Daniel López, who are attending this week's conference.


In today's Forums,mayhem appeals for a performance improvement in Re: EA based lock removal in Mustang-b63!: "Of course, it's understandable that you don't have enough time/resources to implement stack allocation for the Mustang release. But still, IMHO it's probably the most important optimization missing in Hotspot to make Java performance competitive with C/C++ in certain areas (for example scientific and game programming). Another potential benefit of stack allocation is improved performance of iterators and "closure expressions", which can also aid implementation of other, more functionally oriented programming languages in the JVM."

From the Mobicentsproject, ivelin notes Google Talk Voice opening up : "The google team seems to be delivering on their promise to document and standardize the XMPP voice extensions: http://www.jabber.org/jeps/inbox/jingle.html and http://www.jabber.org/jeps/inbox/jingle-audio.html Any takers for a Jingle RA and JCC provider?"


In Also in Java Today, the JDC Tech Tip Variable "Arity" Methods introduces J2SE 5.0's support for "varags methods", which allows a method to take a variable number of arguments. "Prior to JDK 5.0, if you wanted to pass an arbitrary set of arguments to a method, you needed to pass an array of objects. Furthermore, you couldn't use variable argument lists with methods such as the format method of the MessageFormat class or the new to JDK 5.0 printf method of PrintStream to add additional arguments for each formatting string present... JDK 5.0 adds a varargs facility that's a lot more flexible."

BusinessWeek claims Java's hold on the enterprise is slipping inJava? It's So Nineties, wondering "can it possibly be that Java -- once the hippest of hip software -- has become a legacy technology, as old and out of style as IBM's (IBM) mainframe computers and SAP's corporate applications? Mounting evidence points to yes." Javalobby founder Rick Ross' commentarycriticizes the article's selection of evidence and sources, calling it "a grab bag of potshots at Java from people who have a clear and obvious interest in trying to gain something at Java's expense. "


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Who says Java doesn't have mixins?  
kfarnham

Drop the Bomb Blog

Posted by kfarnham Dec 14, 2005

Sun's big announcement at ApacheCon

Tim Bray offered a mid-day keynote at the second day of ApacheCon, with a set of four slides, each with a single term:

Derby - Dropping a major piece of news on the conference, Bray said that Sun would be redistributing the Apache Derby all-Java database asOpen Java DB. In this form, it will soon become prominent thorughout the Java realm, being added to Sun's Java Enterprise Server products (including GlassFish), picking up support in the form of a NetBeans plug-in, and more. But he stressed the point that a small, all-Java embeddable database has profound utility not just for the enterprise developer, but in all sorts of Java applications. There's a compelling argument here, even for the J2SE desktop developer -- depending on your persistence strategies, lots of preferences, properties, and flat files might be things you could replace with an easily-embedded database.

Threads - Showing off a new multi-core chip - 8 cores with four threads on one chip - he pointed out the growing importance of concurrent programming. Moore's Law lives, but not in the form of the 8 GHz CPU's that might have been expected by now. We still get double the transistors every 18 months, but now we need to use them in the form of concurrent threads. Critically, Java's support for threads is excellent -- far better than that provided by some rival languages -- although a show of hands suggests that those few who really had done serious concurrent programming found it remarkably difficult to master. This skill-set seems likely to become more important in the future.

Beyond Java - Bray said he'd been reading Bruce Tate's controversial Beyond Java and recommended it highly to the audience. While he thought Tate "went off the rails" (get it?) with some of his conclusions, he said that it was important to understand the capabilities provided by emerging technologies such as Ruby, Rails, continuation servers, etc. Like Tate, Bray noted the importance of separating the Java language from the Java platform, and the emergence of languages like Jython and JRuby that run on the JVM, providing them with all the benefits we typically associate with Java, such as platform-agnosticism, security, performance, etc.

Thanks - Finally, Bray offered his thanks to the Apache community for all their work and their remarkable accomplishments. Many people's livelihoods now depend on the various Apache projects. "Thanks," he concluded, adding, "don't screw up."


In Projects and Communities, Bernt Johnson's blog Open Java DB covers the ApacheCon announcement that Apache Derby will be redistributed by Sun as "Open Java DB" and integrated into many Java projects, including the GlassFishJ2EE application server. NetBeans will also get a plug-in for working with Open Java DB. More information about Open Java DB is available in a Sun press release.

The XML Schema Object Model (XSOM) project is "a Java library that allows applications to easily parse XML Schema documents and inspect information in them." It's a helper for applications that need to work with XML schema, and comes in two versions - a J2SE 5.0 version that uses generics, and a J2SE 1.4 version.


David Van Couvering has more on the Derby announcement in today's Weblogs. InApache Derby as Local Web Cache: "At the keynote at ApacheCon today we demonstrated how Derby can be transparently loaded via the Web browser and be made available to client-side JavaScript to store web application data locally on the client machine."

In Technology in use: APT + JAXB = persistence.xml, Sahoo writes: "Java Persistence API specification requires that for portability reasons, the persistence.xml file should contain the list of managed persistence classes. In this article, I shall show you how a simple program can be written using JAXB and APT to automatically generate persistence class list and update persistence.xml."

Doug Kohlert notes a tutorial to help you Create a JAX-WS 2.0 Web Service and Client in Minutes: "Bobby Bissett has written a white paper entitled "Building JAX-WS 2.0 Services with NetBeans." This is an excellent white paper for those wishing to get started using JAX-WS."


There are a few days left to join the fun of java.net's Holiday Photos 2005. Send us a photo -- real or PhotoShopp'ed -- of what Duke is up to for the winter holidays.


The Beyond Java discussion in the Book Club brings up an important new webapp concept in today's Forums. Chapter 8: Continuation Servers begins with an introduction: "A new class of web servers called continuation servers is starting to make some real noise. A continuation server uses a programming construct called the continuation to keep enough information about a request to be able to completely reconstruct the context. In technical terms, a continuation saves the execution environment, including the call stack. In practical terms, using continuations in a web server lets the server maintain context for you, freeing you to program in a more natural way."

conal is wondering about Faster alternatives to Math.sin etc? "Java/JVM would be a more appealing platform for games and visualization if it offered trig functions that run faster, at the cost of some precision. The Mustang speedups are helpful for trig, but there's a speed limit imposed by the (laudable) accuracy specs, at least when running on x86. Rather than have programmers stick with C/C++ to get fast trig, I suggest that Java add additional static methods (say, called "fastSin", etc) that perform the equivalent of what one gets in C, in terms of speed and accuracy. I'm guessing that many people have run into this problem when trying to stay with 100% pure Java. Is something like what I'm suggesting already planned? Has it been discussed and decided against? Are there other possible solutions?"


In Also in Java Today, it may sound simple at first, but Andrew Davison's book excerpt Killer Game Programming in Java: A 3D Checkerboard, Part 1delves into important issues for developing 3D graphics in Java. "Checkers3D illustrates many of the common, and sometimes tricky, aspects of programming with Java 3D. For example, the 3D scene is displayed using the Java 3D Canvas3D class, which must be integrated with Java's Swing components. All Java 3D applications require a scene graph, and Checkers3D shows how to add basic shapes, lighting (ambient and directional), and a background."

Time to get Fit? "Fit (Framework for Integrated Tests - http://fit.c2.com) is a tool for expressing application acceptance tests using tables, and one that solves a fundamental need in software development: capturing business rules in an easily accessible and executable form." In The Framework for Integrated Tests (Fit), Mario Aquino shows how Fit's table-based acceptance tests are simple enough to be written by anyone, even customers, which engenders greater collaboration between developers, customers, and other stake-holders.


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Sun's big announcement at ApacheCon  
kfarnham

Make It Better Blog

Posted by kfarnham Dec 13, 2005

Making sense of AJAX development

As you have undoubtedly heard, the latest and greatest four-letter acronym in the web-based software development world is AJAX. Despite the tidal wave of excitement and hype, there is another four-letter word that can be associated with AJAX:pain. The dirty little secret is that there are many reasons developing AJAX applications can hurt. Some of these reasons are the browsers' fault, due to the fact that each browser version offers differing levels of DOM and JavaScript compliance.

If you've written JavaScript, especially if it's just an aside to your primary Java development, you know what a pain it can be to make the mental swtich to the familiar-enough-to-bite-you-in-the-ass JavaScript syntax. Worse is that when you try to debug your script, you don't have a sophisticated logging framework, or even stdout to fall back on. The typical response is to use alert()as a de facto System.out.println(), but clicking through one alert after another, run after run, is inefficient and tiresome.

In today's Feature Article, Eric Spiegelberg has an alternative: Log4Ajaxshows how to write a client-side logging library that can log debugging messages, of varying levels of verbosity, to a<div> in your web page. Moreover, you can use the power of AJAX to call back to your server, and log client events to the server log.


In Projects and Communities, the Substance look and feel project has reached their 2.1 release. Kirill Grouchnikov's blog entry summarizes and has screenshots of new features, including new shapes and gradients for buttons, Mac-like "unsaved content" indicators, 21 additional themes, a new color wheel chooser, custom UI delegates for NetBeans components, and more.

Episode 19 of the Java Posse podcast features an interview with Burr Sutter of the Atlanta Java Users Group. Sutter talks about the group's history and activities, his history with it, and the group's heavily-trafficked AJUG jobs page, as well as his role heading up the Atlanta Chapter of the International Association of Software Architects.


In today's Forums,netsql asks Why wait to add "GroupLayout" to Java 7, it should be in 6! "I see an interview on a new LayoutManager, that is released in version 1.0 AND used in NetBeans. It's planed to be included in Java 7. WHY WAIT? Why do I have to include a jar to ship my application? ps: of course, current layouts are not humanly maintainable, so of no use. Now I use jGoodies."

leouser discusses the pros and cons of rival languages in Re: Chapter 7: Ruby on Rails: "Readability wise, I find the productivity boosting conciseness of the dynamic languages, cut against it. Usually from perusing some Java code you can figure out what the heck it is after doing a good read. You know who the players are, the addresses variable is a List<Addreses>. With Python, you can get, hmmm there's an iteration here but what does self.addresses refer to... its not in the __init__ or set in this method? Let me see if the find function of this editor can get at it.. not in this file. Let me try the project search... hmmm... its in the AddressGiver class, that's odd. With that said, I like working in Jython/Python. It's fun. But as I said in the beginning, I still like working in Java better."


Vikram Goyal says $100 laptop - No Thanks. $100 smartphone - Yes Please!in today's Weblogs: "IMHO, the $100 laptop is a waste of time and money. Instead of spending money on a crank it yourself laptop with limited capabilities and an arbitrary, ambiguous and sure-to-escalate price point, MIT labs should have looked at the mobile phone market and learned a lesson or two from it. Instead of a laptop, it should be looking at providing a smartphone."

Santiago Pericas-Geertsen has parsing performance update in DOM vs. JAXB Performance - Part II: "In an earlier blog, I started a discussion about DOM vs. JAXB performance. For that purpose, I selected 4 different XML schemas, including 3 standard ones: UBL, FPML and GAML [...] The results showed DOM coming just ahead of JAXB, but several people have asked me to break up the roundtrip time into marshalling and unmarshalling times. So I did, and here are the results..."

Kohsuke Kawaguchi is Disappointed with JMX: "I just implemented the JMX support for my project, but the experience wasn't pleasant."


In Also in Java Today, single sign-on (SSO) can make life easier for both users (who need only remember one password) and administrators (who need to manage only one identity store and can terminate a user across many applications), but developing SSO applications requires careful attention to various issues. TheServerSide's article SSO and Identity Management looks at the separate tasks an SSO application must perform -- authentication, authorization, profiling, and management -- and argues that these should be broken into separate interfaces, to allow greater flexibility when implementing them.

"Testability is one of the key principles behind the Spring framework (i.e., the ability to test each component in the framework regardless of its nature). In this sense, Spring was a major improvement over the core J2EE model, in which the components were hard to test outside of the container." In Simplify Unit Testing for Spring Web Components, Edmon Begoli introduces Spring's testability features, saying they "make unit testing Web components as easy as testing plain old Java objects (POJOs)."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Making sense of AJAX development  
kfarnham

If You Were Here Blog

Posted by kfarnham Dec 12, 2005

A short hello from ApacheCon

Today's daily blog comes to you from the ApacheCon keynote, with Cory Doctorow having just discussed a wide-ranging assortment of digital rights management horrors, the legal and economic motivations behind it, and the frustrating and ultimately futile results of it. The "Inside Apache" panel has just started, with Apache's leadership discussing not so much what specific projects they're working on, but rather the motivations behind them.

If you've noticed that this is being posted later than usual, it's because your editor is now three time zones further to the west and he's trying to catch up. More from the conference tomorrow.


Jim Driscoll corrects some Servlet History in today's Weblogs, saying "I've been reading Beyond Java, and since Bruce got some of his facts wrong about the history of servlets, I thought I'd issue a correction."

Bruce Boyes has an OMG Robotics report from Burlingame: "This week saw 3 special talks and 9 RFI response presentations. The Robotics DSIG has formally changed to a Domain Task Force, which means that there is enough participation to actually start working on standards."

In Don't guess -- test, Scott Oaks writes: "You'll never know what performs better until you test it under a variety of circumstances. "


This week's Spotlightis on the Ricoh Java Programming Contest 2006: The ricoh.dev.java.net project is the home of the Ricoh Java Programming Contest 2006. Students from universities in six European countries are encouraged to develop innovative Java-based applications for Richo's Aficio multi-functional products. Information on entering the contest is compiled on the ricoh project's front page, and requires being a java.net member, joining the CoolThreads project and the support forum, and then submitting a project request. Registration is open through February 15, 2006.


In Projects and Communities, the Artima.com article Banking on Jini Services, the first in a series on innovative architectures, looks at how Rubean, A.G., developed a Jini-based system for managing devices in banks. Online since 2002, the system serves over 35,000 customers and is a model of a decentralized system and one that can use Jini to proxy legacy devices.

Tor Norbye's weblog Performance profiler - now for the Mac! notes that Milestone 11 of the NetBeans Performance Profiler now works on Mac OS X. The profiler is based on JFluid and previously required a special JDK. Those modifications have been rolled into the JDK and were part of the latest update to Apple's J2SE 5.0 VM.


In Also in Java Today, Integration Developer Newsreports on developments in the JBoss/Microsoft partnership in Microsoft, JBoss Co-op To Gain Momentum in 2006: "Microsoft and JBoss will spend much of 2006 working together to improve .NET-to-J2EE interop, including efforts to enable Hibernate to work well with both .NET and Windows.

In Lightweight R/O Mapping, Norbert Ehreke offers an introduction to the Amber framework, which inverts the typical object-relational scheme of starting with objects and mapping them to database tables. "Amber approaches the problem of data exchange from the opposite angle. It assumes that the ER model is the reference for resulting OO structures. It also assumes that the database access is handled mainly via stored procedures, which provide a unified point of access to the database and which are also perfectly set up to handle transactions. Put into a provocative statement: the middle tier is implemented as a set of stored procedures. This means an expert on ER modeling, the DBA, is responsible for design and optimization, including stored procedures, which results in much better structures, and faster and more secure access, compared to automatically created ones."


In today's Forums,egulatee has some questions after taking a Glassfish first look "I really like what I see with glassfish. Looks very robust and professional. A nice console and very configurable. A few questions/concerns? Where did clustering go (SunAS8.1EE has some AFAIK), will it be implemented for glassfish? Supposedly EJB 3 is close to being final, so are clustering annotations are outside the EJB3 scope? Is/Will hibernate be supported in persistence.xml? What I mean by this is some way to switch the persistence layers so that there can be automatic injection depending on what's configured. Regarding the new database creation mechanism... Any chance of getting an update mechanism like hbernate? And support for postgresql? That would make my day and then some..."

In EA based lock removal in Mustang-b63!, linuxhippysays "just found that Mustang-b63 now supports lock removal thanks to EA. Wow one feature I was waiting for since a long time. Great to have it now, thanks a lot. However there's one point which is not quite clear to me:" As part of this change, the bytecode escape estimator was added. Without it, almost no opportunities for this optimization are detected". What is a bytecode escape estimator? Is it some kind of optimistic compilation which could force hotspot under some circumstances to recompile or something cheaper?"


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



A short hello from ApacheCon  
kfarnham

Peek-a-Boo Blog

Posted by kfarnham Dec 9, 2005

Your editors make an appearance

Your editors, meaning Chris Adamson (me) and Daniel Steinberg (him), will be at ApacheCon 2005 in San Diego next week. We're mostly there to find out what's up with Jakarta, Harmony (wow, that's been quiet lately), and the many other Java-related activities in the Apache sphere. We're also really interested in meeting people and getting a sense of what people are working with, what they do and don't like in the Java realm, and what else is out there.

Prospective writer, blogger, or podcast correspondent? We're hosting a Writing for O'Reilly BoF on Tuesday night that will cover writing opportunities on java.net (and other O'Reilly sites). Of course, if you want to write for us, you don't have to be at ApacheCon; just drop us an e-mail at  


Not that Apache is the only game in open-source town. Jacob Hookom says Move Over Apache, in today's Weblogs: The reason why I'm writing this blog is that so many out there have shied away from contributing to Sun's open source initiative under the CDDL. I'd like to use my last year as an example of the opportunities that are provided by making that one decision, the same decision that any of you can pursue.

In Humane interfaces, simplisticity, and domain languages, John D. Mitchell is "weighing in on the debate over 'humane' vs. minimal interfaces, what simplicity doesn't mean, and how creating good languages is the only truly humane solution."

Fernando Lozano says If you use Linux, you should use JPackage: "The lives of Linux System and Network Administrators and Developers would be easier if all Java software vendors started to use JPackage guidelines when building their installation packages."


The latest java.net Poll asks "Where should operator overloading be permitted in Java?" Cast your vote on the front page, then check the results page for results and discussion.


In Projects and Communities, the JavaTools Community page is spotlighting the Coyote project, whose goal is to create NetBeans plug-ins to simplify writing code in dynamic languages. The project is initially targeting Groovy and Jython, but intends to develop a common framework that could be used by many languages (noting there are nearly 200 languages that run on the JVM).

The SDN feature The Next Wave of GUIs: Project Matisse and NetBeans IDE 5.0interviews Scott Violet and Tomas Pavek, creators of the Project Matisse GUI builder for NetBeans. They discuss Matisse's goals, its use of a new LayoutManager, the challenges of developing a cross-platform GUI builder, two-way editing vs. guarded blocks, and more.


In today's Forums,nall says I want green threads. Help me brainstorm how... "I have an application (a simulation framework) which could benefit from green threads (aka user-level threads). [...] Unfortunately, the -green JVM option was dropped in 1.4. I have been trying to come up with a way to get green threads behavior, but it is difficult as Java doesn't support continuations."

murphee explains openness to alternatives in the Beyond Java book discussion Re: Chapter 7: Ruby on Rails: "Why should I want to replace the Java platform? I'm earning my money with it and it's a huge platform that contains everything that one can need (libraries, tools, etc) But: it does not mean that Java (the language) is the last word in language design. [...] Not to mention that I'm slowly losing trust in the Java language development team, after such nonsense as static imports added to the language (I won't discuss Generics). With all the mad talk about adding direct XML to the language & all, I'm looking for possible(!) exit strategies from the Java language that will allow me to keep on using the Java platform."


TCP tuning tips top Also in Java Today. If you're doing big file transfers, you might find that big pipes don't always deliver the performance you may expect. But don't automatically blame the network engineers: the problem may well be un-tuned software. In the ONLamp feature Tune Your TCP, Brian Tierney shows how to determine optimal send and receive buffer sizes, and how to set those parameters on Java's Socket class.

"Java technology and AJAX work well together. Java technology provides the server-side processing for AJAX interactions. It can provide this through servlets, JavaServer Pages (JSP) technology, JavaServer Faces (JSF) technology, and web services. The programming model for handling AJAX requests uses the same APIs that you would use for conventional web applications. JSF technology can be used to create reusable components that generate the client-side JavaScript and corresponding server-side AJAX processing code." In the tech tip Using AJAX with Java Technology, Greg Murray shows how to create auto-completing text fields in a browser with AJAX and servlets.



 

In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Your editors make an appearance  
kfarnham

Big Mess Blog

Posted by kfarnham Dec 8, 2005

A look at the huge stack of JavaOne proposals

Think it's hard to write up and submit a JavaOne session proposal? Try reading a few of them.

In fact, imagine reading nearly 1,400 of them.

That's the task facing Annette Vernon and the JavaOne team. In her blog JavaOne Excitement Is In the Air, she writes about the deadline deluge of propsals:

The Call for Papers opened on November 1, 2005. The deadline was November 30, 2005: one month to write and submit a brief abstract on some technology to be (hopefully) presented at JavaOne. Was it the Thanksgiving holiday that caught so many of you off-guard or was it plain old-fashioned procrastination? 2006 seems like months away (less than 2!)

On Tuesday, November 29 at 2pm, our content website showed 359 papers submitted. In the next 36 hours, nearly 1100(!) technical talks and birds of a feather proposals were submitted. A huge thanks to the Java developer community for your overwhelming support of the 2006 JavaOne Conference Call for Papers.

On the one hand, it shows tremendous interest in the platform to have almost 1,400 talks proposed for the show. On the other hand... imagine reading all of them, keeping them straight, and then picking the small subset that will make for the best conference.


Also in today's Weblogs, Carla Mott has an Interview with GlassFish persistence developers: "Last week I had the opportunity to talk with Tom Ware and Gordon Yorke who are working on the persistence module in project GlassFish. Both Tom and Gordon are from Oracle's Ottawa, Canada office and have extensive knowledge of the TopLink codebase."

In A Short Review of Maven 2, Andreas Schaefer writes: "This is a follow up of my original concerns about Maven 2 after I attended a presentation by Carlos Sanchez at the LA - JUG last night. In this blog I discuss the points that make me stay with Maven 1 so far but I hope that most of these points can be resolved in the future."


In today's Feature Article,Java Tech: Image Embossing, Jeff Frisen takes a pixel-level look at creating an "embossing" effect to give the illusion of depth, manipulating intensities to suggest small ridges and valleys. In this installment of "Java Tech," he introduces an algorithm to perform the embossing effect, and shows how easy it is to implement with Swing and Java2D.


In Also in Java Today, Jakob Nielsen clarifies one of his most controversial stances in Why AJAX Sucks (Most of the Time): "Judging from the email I receive, the most controversial statement I have made in my Alertbox columns so far was to make 'the use of Ajax' one of the mistakes in my list of top ten mistakes in Web design. For new or inexperienced Web designers, I stand by my original recommendation. Ajax: Just Say No. With respect to the use of ajax by highly skilled Web designers, I have changed my opinion somewhat: people who really know what they are doing can sometimes use ajax to good effect, though even experienced designers are advised to use ajax as sparingly as possible."

Eclipse or NetBeans? How about both? Or neither? Peter Coffee's eWeek opinion piece One Tool Won't Cut It argues against the lock-in that comes with expecting one IDE to perform all your programming tasks. "If I said that integrated programming environments are mixed blessings, any developer who started work in the past 15 years might look at me oddly and say, 'Compared to what?' Most developers probably feel that their choice is between one integrated environment or another. The idea of using entirely separate tools -- an editor from one vendor, a debugger from another and compilers from other vendors still -- is foreign to most developers working today." He goes on to say "I'd rather work with incomplete but complementary views than accept the bullet point on a recent Microsoft briefing chart that read, 'One tool, one framework, one programming model.' No, I don't think so."


In Projects and Communities, the taglibrarydoc project hasreleased version 1.3. taglibrarydoc "is a utility for automatically generating javadoc-style documentation for JavaServer Pages (JSP) Technology Tag Libraries. It accepts a set of tag libraries as input, and generates a set of HTML files as output."

Recently announced on the discuss@jxta.org list, a beta version of JXTA Java SE 2.3.6 is now available. You can build the beta from the CVS sources or downloadbinaries. Community members are asked to test their JXTA applications against 2.3.6 in advance of its scheduled release on December 15th


"Beyond Java"'s efficiency claims, and whether they're comparable to Java, are being analyzed in today's Forums, In Re: Chapter 7: Ruby on Rails, archangel writes: "I agree with many of your points, but there is still a difference in the order of magnitude in development - four months to four days. I doubt the rewrite could have been done in Java that quickly. With regards to the sacrificies made in Ruby, like Java, they're acceptable depending on your point of view. The biggy is less static checking of code - this means that the compiler will save you less (but you've written unit tests right?), but you get a more flexible programming model. There are many others (syntax, code blocks, portability etc.). It depends on your point of view."

Replying to requests Re: add XML support for java.util.ResourceBundle,mokutsu writes: "Mustang has some enhancements to ResourceBundle so that you can define resources in other formats, like XML. Please check out this tech tip."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



A look at the huge stack of JavaOne proposals  
kfarnham

Satisfaction Blog

Posted by kfarnham Dec 7, 2005

Why Java developers should understand Rails

The Book Club's discussion of Beyond Javahas reached Chapter 7, in which author Bruce Tate has dedicated an entire chapter to Ruby on Rails?

But why? Why is this being offered to a Java audience? Why should Rails be on the Java developer's radar? Tate explains this in the beginning of Chapter 7, saying that the advantages of Rails are too much to ignore, even for the Java developer well-versed in lightweight Java frameworks.

As a fairly content Java programmer, I really didn't go searching for an alternative. In some ways, Rails found me. Dave Thomas and I speak at the same conference. I taught several sessions on the Spring framework with Hibernate, and I was very happy with my productivity. Of course, compared with EJB, I was very productive. Dave pointed out that even in Hibernate with Spring, you tend to repeat yourself on a fairly regular basis.

I reflected on David's comments. To make a persistent domain model, you need to specify a database table with its fields and indexes, specify an object domain model with a class (repeating yourself) and a field as an attribute (repeating yourself), and add accessors for that field (repeating again and again). Then, you need to build a mapping with the database table (repeating again) and the class name (and yet again). Finally, your mapping must specify each database column and the corresponding database field (repeating each column twice more). Of course, most sane Java developers do not do all of that repeating. They let the tools do most of it for them, but now your programming model dictates your tool set, your development experience, and generates more lines of code to maintain. I came to the conclusion that ORM makes sense when the domain model and object model are sufficiently different, and I decided I'd take the slight productivity hit and be compensated with better performance and the possibilities of better mapping.

This is where the opportunity for Rails to make inroads comes in...

As I've said, I worked with a company that builds safety software for a manufacturing plant. We effectively build a web user interface to manage a complex domain model. We decided to build this application with a lightweight Java stack of Spring, Hibernate, and Web Work. We moved pretty quickly, and were pleased with our progress. We were proud of our accomplishments, because we'd rewritten a one-year Microsoft application in four months with Java. Naturally, as we accumulated a bigger code base, coding began to take longer.

Over time, Dave's arguments nagged at my subconscious. Dave and my business partner had the same conversations. As luck would have it, over the same week, we tried building a part of the application in Rails. I banged out the model and scaffolding in a couple of days. With his stronger HTML experience, Justin got further than I did. He actually implemented the whole application in Rails in four nights. The Rails version shocked us in another way--it was actually faster!

So, what do you think? Please join us in the book club discussion -- the book is on Safari, which comes with a two-week free trial, so there's no cost to check it out -- and tell us what you think about Java, Ruby, and the outlook for their respective enterprise frameworks.


Also in today's Forums,tmarble announces a Java Tuning White Paper: "For any of you that have followed our messages at JavaOne in recent years you have heard us talk about the importance of analyzing performance as part of the development process as well as using statistics for the basis of decision making from Java benchmarks. We know that there is a great need to put all of these ideas together into one document -- a one stop shop for Java tuning. Thus was created the first draft of the Java Tuning White Paper. This reference is intended to be a practical guide for Java performance best practices and a 'how to' guide for Java tuning."


An excerpt from JBoss: A Developer's Notebook, entitled Managing and Monitoring JBoss, Part 2, tops Also in Java Today. In it, Norman Richards and Sam Griffith delve into dynamic management of your JBoss applications, by showing how to create monitors and send alerts either to the management console or straight to you via email. It also shows you how to forsake the Web Console and manage JBoss directly from the command line.

"The time is ripe to give the EJB 3.0 spec, which was engineered to offer big gains in productivity, a test drive." In Getting Started with EJB 3.0 and Enterprise Bean Components Rod Coffin shows how to use JBoss and Maven to develop EJB 3.0 enterprise bean components. "This article is the first in a three-part series exploring EJB 3.0 as defined in the public draft.... This first article will introduce EJB 3.0 and the basics of Enterprise Bean Components."


Eduardo Pelegri-Llopart announces Java EE 5 and GlassFish pages at Java.Sun.Com in today's Weblogs: "Things are beginning to improve. Java.Sun.Com just added some pages on Java EE 5. The content is a bit limited but at least there is a list of all the technologies... The other pages that were added are pages for the GlassFish Community which is developing the reference implementation for Java EE 5."

John D. Mitchell wonders "why is web server security so much of an afterthought?" in the provocatively titled Piss Poor Web Security Approaches

Answering the rhetorical question Why do I not have to use .par file to bundle my EJB 3.0 entity beans?, Sanjeeb Kumar Sahoo writes: "A lot of developers still believe that when they use Java Persistence API (confusingly part of EJB 3 JSR), they need to bundle entity beans in a .par file. They would be relieved to know that, its not true any more. Sun's next version of application server which is being develped in open source project called glassfish does not require it's users to use any such extensions like .ejb3 or .par. Let's see why."

A position is open in the Santa Clara, CA area for a recent college graduate to write sample Java applications. See Inderjeet Singh's weblog entry Looking for a Great Recent College Grad for more info.

In Projects and Communities, the JDK Community home page is featuring A. Sundararajan's blog entry Observability Highlights of Mustang, which summarizes all the technologies for looking into the behavior of the Mustang JVM, including heap analysis tools, locks and deadlock analysis, internalized String listings, better dtrace support, jconsole improvements, and more.

The builder.com article Installing Java on your Linux system offers a short and simple guide for dealing with the fact that most Linux distributions don't include Java because of licensing concerns. "Certain Java implementations are free, such as GCJ, or the GNU Compiler for Java, but it isn't Sun's Java implementation, which is arguably the better of the two."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Why Java developers should understand Rails  
kfarnham

Mechanical Man Blog

Posted by kfarnham Dec 6, 2005

What does thought feel like?

Max Goff's ambitious artificial intelligence series concludes today, in our Feature Article,The Artisan and the Artilect, Part 3. Having considered questions of teleology (purpose and direction) and epistemology (assumptions and world view), he turns his attention to consciousness. What is it? How does it come about? How would it be replicated?

The question of consciousness leads to one of will: the consciosus application of one's abilities. If this can genuinely be duplicated, then all bets are off:

We are at the threshold of what may be an epoch-magnitude change, ushered in by work in the maturing field of artificial intelligence. Classic approaches to AI have yielded interesting results, sometimes even reaching a human-competitive level (see Genetic Programming IV: Routine Human-Competitive Machine Intelligence). But the stated intentions of producing GPHC machines by more than one serious effort marks the beginning of a new era. The mind race is on.

At the outset, I framed this discussion of AI based on books by two very different authors, both of whom are making contributions to the field, and both of whom have stated goals of one day producing GPHC machines. The characterization of one as an artisan and the other as an artilect was a literary device and nothing more. In truth, Hawkins is just as much a reductionist as de Garis. And while the de Garis tome may to some smell of bad science fiction, it at least qualifies as art by some definition. So the roles might just as easily have been reversed.


There's much to learn, as today's Weblogs offer a set of tutorials and introductions. Sanjeeb Kumar Sahoo offers an Introduction to using Java Persistence API in a web application in Java EE environment: "Example of a very simple web application using Java Persistence API in Java EE environment is shown here. I will also discuss how how to package such an application in a portable way. We will do all these without using any kind of IDE so that we don't miss the details that often happen while using a super smart IDE."

In Variations of JPasswordField, Scott Violet writes: "we've been gathering input from customers on various features they would like to see us implement. At such a meeting one customer requested a variation of JPasswordField. I figured it would be interesting to blog on how you could modify JPasswordField to vary the level of feedback it gives you. I'll cover various pieces of Swing's text architecture in implementing one variation, as well as a demo."

David Herron asks What time is it? "What I have here for today's blog entry is the underlying Java code which does the minimalist functionality I need. That is, given a set of time zones, print a table showing the current time in each. The first thing to see is that the Date class doesn't have the required functionality. You can make a Date object and it gives you the current time, or you can initialize it for some other time. But, how do you know the time in some other timezone? Further its getYear and other methods are deprecated in favor of the Calendar class anyway."


   
http://www.java.net/favicon.ico

Did you notice our new favorites icon in your address bar or your bookmarks/favorites? Thanks to Sarah Kim for nice work in a small space.



 

In Also in Java Today, the smallthought.com blog What If... rhapsodizes over a surprising choice of dream languages: "People are often surprised when I tell them which language I choose to work in. But where else [can] I find one as expressive as Ruby, with a VM as sophisticated as Hotspot, an IDE as good as Eclipse or better, and a community with 20 years of experience at using those three pieces as an integrated whole? Frankly, I couldn't make any other choice with a straight face." Read on to find which language is being described and how it relates to Java.

While we'd prefer you host your project on java.net, we couldn't resist noting the recent milestone: Java Surpasses C++ on SourceForge. "Last week, Java became the dominant language on the SourceForge site for the first time, surpassing C++ in the number of projects on the repository of open-source projects site. As of last Thursday, Java surpassed C++ with 16,738 projects versus 16,731 for C++. Officials at Sun Microsystems Inc., the creator and steward of the Java platform, called the achievement 'a clear sign of vibrant growth' and participation in the Java developer community."


In Projects and Communities, the Java WS & XML Community is featuring the ZDNet blog entry Dana Gardner on New SOA Component Models, which offers pointed crticism of the proposed SCA and SDO standards: "As usual, this exercise is not about peeling the layers back from an onion -- only to find more layers. It's actually adding more layers to the onion in order to hide the lower layers, which are too complex, as you know."

The Sun Grid Community Wiki offers a place for community members "to share content and collaborate on the development of new resources for our community." It has been seeded with a vast collection of links, including existing community projects, FAQ's, recommended tools and frameworks, Sun Grid documentation and webinars, related organizations and companies, and a quick bullet-point list of what a Sun Grid job looks like.


In today's Forums,sivakumart has a clever JavaOne 2006 suggestion Re: Grab Bag: Other Ideas for JavaOne: "Would it be possible to open/expose the J1 schedule as a web-service (in addition to the regualar interface made available)? Then we could have people whip up scheduling tools as they seem fit. This is a developer event after all."

tackline discusses overloading and confusion in Re: Overloading impact: "A big advantage Java has over C++ is that the common library is established and well used. Put together with the lack of 'latent typing', the foundations are secure. If java.util.Set does not to define + to copy the left hand side and addAll to the right hand side, it is highly unlikely to start meaning that with anyone else's implementation. Hopefully java[x].* bods realise + for String concatenation was a mistake. So if you want to know what + does, it's addition (except for String)."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



What does thought feel like?  
kfarnham

Gut Feeling Blog

Posted by kfarnham Dec 5, 2005

How to tell when someone is "thinking in Java"

Use a language long enough and you'll adjust your thinking to it. For a very brief time in high school, I paid enough attention to French class that I believed I could think in French for short periods -- I specifically remember one time in English class taking a note in French because there was a shorter way to express something in French than in English (probably one of those marvelously convenient words like donc or jusqu'a). Of course, this applies to Java as well. Not for nothing is one of the most popular books called Thinking in Java.

Two items on the front page have to do with the idea of getting the most out of Java by adapting your thinking appropriately. In the Book Club discussion of Beyond Java, rickcarsoncloses his post, Re: Chapter 4: Glass Breaking, with this anecdote:

By analogy, I had a friend I introduced to Java who was a big fan of Pascal. Initially he complained about a lack of enums. Later on I found out he was using arrays for everything because he didn't trust other people's libraries for things like ArrayList and Vector (due largely to bad experiences with Microsoft's IIS libraries). I convinced him to give the sun ones a chance. A couple of years later I caught up with him again and asked him about enums. He said that he didn't miss them any more, somewhat surprised I asked him why not - and he said that if you program properly in 'the Java way' you don't need them.

But what does Thinking In Java get you? A job, maybe. In his weblog, When you know that a programmer is a Java programmer, Kirill Grouchnikov writes:

Suppose you have an excellent Perl developer and a good Java developer. Which one should you take to your Java project? Arguably, an excellent non-Java developer can learn Java syntax in 4-5 days. But is syntax everything you need to know to write excellent Java code? How much time will it take until he starts to write Java code that looks like Java code and not like Perl code (don't forget that working on team means that the code is maintained by everybody, and even if somebody leaves, his code stays)? Do big projects really need "stellar" developers, or perhaps a team of good developers with solid Java knowledge does better job in the long run?


Also in today's Weblogs, Eduardo Pelegri-Llopart offers a heads-up about Java EE 5 specifications in PFD: "The GlassFish Community is implementing the Java EE 5 specifications. Almost all those specifications are now in the Proposed Final Draft stage, which means they are done, except for fixing substantial problems. Here is a list of pointers to the specification documents..."

John Reynolds discusses Form Validation in an SOA context: "This blog continues the classic client-side versus server-side validation discussion, but now adds another layer - web service "side" validation. How can you share validation logic across client-side JavaScript, Java within the web application, and Java within underlying web services?"


Also in today's Forums,linuxhippy wonders How much improvement can be expected in the future? "I ask this question myself many times thinking about the quite good code generated by HotSpot-Server. On the other side I still see 5% improvements for numerical benchmarks like SciMark which I thought are almost optimal and have only little room for further optimizations. Of course it really depends which code you're running but in general, how much improvement can we expect in the next couple of years in general (summing up all kind of java-software)? I see great improvements in EA in conjunction with lock-removeal and stack-allocation (please in Mustang!). What else could be done to improve raw performance?"


This week's Spotlightfeatures SwingLabs: "The SwingLabs project describes itself as "a Sun Microsystems supported project that allows experimentation with extensions to existing Swing components, new Swing components, and other desktop related technologies such as Java2D, AWT, etc. It acts as a testbed for ideas related to client side techologies. Successful experiments will be considered for inclusion into future vesions of the JDK." As well as being the parent to the prominent JDesktop Integration Components (JDIC) and JDesktop Network Components (JDNC) projects, SwingLabs has a number of smaller, focused projects, like the latest version of the SwingWorker for thread-safe long-running Swing tasks."


In Also in Java Today, you may have heard of "on-demand computing" from some of the big companies in the industry, but what does it really mean, and what will it do for you? In What Is On-Demand Computing Stephen B. Morris digs into this new line of thinking and looks at where it aspires to go: "on-demand computing (ODC) provides an infrastructural solution to the needs of modern organizations. Risk can be managed and running costs can be lowered by migrating to a more automated IT business infrastructure. Very few (if any) businesses operate today in a truly on-demand fashion. For this reason, ODC is a migration (not a forklift upgrade) target for today's infrastructures. The end result of this migration will allow for a more automated, business-policy-driven model."

"In order to use AJAX and Mozilla XUL with JSF, component writers have to make sure to provide any resource files need by these technologies, such as images, style sheets, or scripts. The standard approach to providing resource files for a JSF component library is to serve them directly out of the web application root file system." The article AJAX and Mozilla XUL with JavaServer Faces: Loading Resources With Weblets introduces the java.net Webletsproject, which helps with this by providing resources from a JAR, rather than serving them from the file system.


In Projects and Communities, NetBeans Day Toronto is being held today, December 5, at the Metro Toronto Convention Centre (MTCC), in room 715AB, from noon to 5:15 PM. Presentations include introductions to plug-in development and building rich client applications, three variations on "What Makes NetBeans the Best?" (including J2ME and J2EE versions), and a closing keynote by James Gosling.

The JavaDesktop Community page is featuring Scenic, a scene-based 2D graphics library for Java, which has just graduated from the community incubator. Scenic aims to be fast and offer high quality graphics by directly using the capabilities of modern graphics cards. The project supports a handful of cards on Windows and Linux and seeks C++ developers who know DirectX or OpenGL.


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



How to tell when someone is "thinking in Java"  
kfarnham

Old and Wise Blog

Posted by kfarnham Dec 2, 2005

Years later, they finally "get" Jini

Jini continues to be adored by a small crowd that "gets it", and ignored by many people who seem determined to reinvent about half of it (and not well). So let's reset for a minute: Jini is not about networking your refrigerator and your toaster oven. Just thought that needed to be restated, because so much of the initial Jini hype was about small devices that Jini ended up not running on anyways.

I first used Jini as a proof-of-concept for a project at a video networking company, where we were planning to put our servers on customers' LANs and allow them to move video around the network. Some of our machines would be able to dub this video to tape. But... which machines? Where were they? How could they be found? What could they do? How would you know if they were already busy? Some of the engineers and management were perfectly happy to solve most of these questions with configuration files: you put a box on your network, you get to edit a config file on the server, in whatever format we feel like supporting. So there's a maintenance to-do. And be sure you never lose the config file, or you have to re-write it. And, oh by the way, the typical broadcast engineer is not necessarily a competent network admin, so it probably wasn't smart to assume that the customer really could maintain this file. Multiply times hundreds of sites and it sounded like a support nightmare.

This is what got me interested in Jini. I thought we could have our VTR boxes announce themselves on the network as a "service", and then the rest of our software would discover these services and use them. It would eliminate the maintenance hassles and isolate the customer from being responsible for networking issues that they neither understood nor cared about. We whipped up a proof-of-concept in a couple of weeks, and, like a lot of quick-and-dirty demos, most of the code ended up eventually going into production.

The point of this: Jini has had a fabulously underappreciated history in the enterprise, and as people talk about software as service, they should look back at how Jini phrases the questions and offers some very robust answers.


Jini's SOA strengths are highlighted in the JavaPro article Jini at Your Service, featured in today's Projects and Communitiessection. In it, Alex Krapf writes: "What most people didn't realize during the initial launch of Jini was that it also provided a gorgeous framework for building service-oriented applications. The failure to notice this important capability is easily understood: the term service-oriented architecture (SOA) had not even been invented yet."

Also in Projects and Communities, the JavaTools Community Newsletter #64 is out. This edition discusses ideas for creating short videos of projects to be shown at the JavaOne 2006 Community Corner. It also welcomes two new projects to the community and links to a tip for creating Ant build files from Eclipse project configurations. Previous newsletters are available from the JavaTools Community newsletters archive.


The latest java.net pollasks "What do you think of the WebWork / Struts merger?" Cast your vote on the front page, then visit the results page for results and discussion.


In today's Forums,alanstange offers some answers Re: Trig performance: "Give the mustang builds a try. Many of the Math.* routines have been 'intrinsified' for extra performance. Please try it and post the numbers comparing the 3 systems (1.5, C++ and 1.6). There's not a lot you can do in the 1.5 world. The issue is that the Java FP operations are defined to behave in a certain way. C/C++ programs can violate IEEE754 FP semantics in small ways which Java can't."

The Beyond Javadiscussion notes the conclusion of Chapter 6: Ruby in the Rough, and whether Java is Collapsing under the weight of abstraction?: "My playtime in Ruby makes another, more powerful idea, clearer. As we stretch Java in increasingly unnatural directions, there's a cost. AOP and dependency injection are near-trivial exercises in Ruby, but they force Java developers to learn new programming models, deal with XML, and introduce increasingly complex syntax. With each new metaprogramming concept that we bake into Java, it's looking more and more like all of that complexity is trying to drive us somewhere. The net effect is to push Java further and further into the enterprise niche, and make it less and less accessible to the average Joe. Contrast that situation with Ruby, where dependency injection and AOP don't consume your focus; you're free to apply those ideas in spots right where you need them."


In Also in Java Today, "EJB persistence has long been criticized for its complex development model and for poor performance of entity beans. It's pretty much accepted as fact that if entity beans (especially container-managed persistence entity beans, or CMPs) are going to be used in an application, performance will suffer. This is not true." In the dev2dev feature article, Peak Performance Tuning of CMP 2.0 Entity Beans in WebLogic Server 8.1 and 9.0, Dmitri Maximovich reveals concurrency and caching strategies you can use to improve the performance of CMP beans.

Still waiting to move to J2SE 5.0? James Gosling thinks you should make the switch. In the interview Migrating to Tiger: James Gosling and Mark Reinhold on Java 2 Platform, Standard Edition 5.0, he says "People always fear new releases. But in the Tiger release, we performed rigorous testing in long alpha and beta cycles of a large variety of giant outside applications that we took in house, working directly with outsiders." He goes on to discuss criticisms of generics and autoboxing. Finally, Gosling defers to J2SE chief engineer Mark Reinhold regarding Tiger startup speed and a few other questions.


Santiago Pericas-Geertsen sizes up DOM vs. JAXB Performance in today's Weblogs: "A key design decision when creating an application that has to process large amounts of XML data is whether to use an API that supports random access or not. APIs that only offer sequential access to the XML data (i.e., the XML infoset) are referred to as "streaming APIs". If an application does require random access to the infoset, two of the most popular options are the use of a DOM API (such as W3C DOM API) or a binding API (such as JAXB). In this blog, I'll kick the tires of the latest DOM implementation from Xerces as well as the latest JAXB 2.0 RI. So how do they stack up?"

"We have started a new blog to highlight interesting news from the GlassFish Community." Eduardo Pelegri-Llopart has more details in The Aquarium: News from the GlassFish Community.

In Paving cow paths - Service Component Architecture plans to smooth out the bumps, John Reynolds writes: "If you have the time, you might enjoy reading the joint whitepaper from BEA, IBM, Interface21, IONA, Oracle, SAP, Siebel, and Sybase on Sevice Component Architecture."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Years later, they finally "get" Jini  
kfarnham

Pipeline Blog

Posted by kfarnham Dec 1, 2005

Working through e-mail troubles

You may have noticed intermittent problems with java.net email over the last couple of months. Those of us who work on the site every day certainly have. The folks at CollabNet are working hard to address the problem but unfortunately it's not a "flip a switch and everyone's happy" scenario.

Kohsuke Kawaguchi has been keeping an eye on the situation. Describing his blog entry Monitoring java.net e-mail delivery delay, he writes:

Since mid-2005, we are starting to observe a large latency in the java.net e-mail delivery. For example, when someone commits a change in CVS, the delivery of the change notification e-mail often gets delayed. When you post to a mailing list, the distribution of that e-mail gets delayed, similarly. So I started monitoring this delay, in an attempt to better understand the problem, and to reduce the impact it causes to our projects.

Kohsuke notes in a follow-up that his automatically updated graphic of the mail delay is available online.


Also in today's Weblogs, David Herron has more to say about The quality team's test execution load and scheduling: "The other day I wrote about a patent some of us in the quality team received over a test execution scheduling tool we developed. While the patent and the software is interesting, the thing that's really interesting is what that software enables us to do. Which is ... because of DTF we are able to schedule execution of a tremendous amount of testing on a wide set of platform combinations. Without DTF we would get lost with the test execution schedule the java quality team faces. I thought it would be good to outline just what that is."

Digging back a few days, we noted James Gosling's blog on Kids & Java: "We've been having lots of fun at home with my favorite "other" Java IDE: BlueJ. It's an IDE specifically designed around teaching programming. It's used extensively in Universities, High Schools and Middle Schools. It takes the rather unusual tack of teaching programming by not starting off with programming..."

Our annual "holiday pictures" game is underway, as detailed in today's Feature Article, Holiday Pictures 2005: "As in years past, Duke and his clan are getting ready for their annual end-of-year vacation. You're invited to send us a picture of where you think he will go and what you think he will do. Between now and Friday, December 16, 2005, you can send your pictures of Duke on vacation to me at     "


In Also in Java Today, SYS-CON Media's second annual Application Server Shoot-Out brought together representatives of Oracle, Sun, IBM, BEA, Microsoft, and JBoss to discuss their respective offerings and the app server market in general. Participants discussed open source, open standards, integration, and customer needs, and risk mitigation. A complete webcast of the one-hour program is also available.

The process for developing a new version of the GNU Public License (GPL) is underway. NewsForge's GPLv3 guidelines released reports that "the Free Software Foundation released its guidelines and process specifications [Wednesday] for the revision process that will produce version 3 of the GNU General Public License (GPL). The guidelines are designed to include as many people as possible in the revision process, says FSF executive director Peter Brown, but the foundation's specific ideas for changes to the license are not being released to the public just yet." Key issues to be addressed in GPLv3 are linking, compatibility with other licenses, and patents.


In Projects and Communities, the community tip Portlets and Servlets: What's the difference? starts off by showing the similarities between the purposes and processes of these two popular web application standards. It then examines the key differences of portlets: portlets provide only fragments of pages, users see portal URL's and not portlets themselves, portlets support persistent configuration and customization, etc.

The document Escaping the Java Trap: A practical road map to the Free Software and Open Source alternatives presents the current state of Free and Open Source Software (F/OSS) projects that aim to deliver a complete Java stack. It provides an overview about runtimes, compilers, libraries, applications, packaging into Linux distributions and Java SE / EE coverage and certification initiatives.


In today's Forums,kbr replies to a file I/O complaint in Re: Opening a file with FILE_SHARE_DELETE mode (Only on Windows): "Currently there is no convenient way to do this and no way to force the Java libraries to specify FILE_SHARE_DELETE when the file is opened. Thanks for mentioning this deficiency and providing a clear explanation of why it is necessary. I've filed RFE 6357433 to cover it which should be visible in the bug database tomorrow. There are a few possible workarounds, but none of them are really convenient."

jluehe has some explanations Re: annotations in JSP 2.1 specification: "Hi Todor, the reason that annotations are not supported on JSP pages or tag files is because all the information represented by annotations needs to be known at deployment time. If an annotation is included in a JSP page, it won't be seen at deployment time (unless the JSP was being precompiled during deployment). TLD listeners support the exact same annotations as Servlet event listeners. JSP.7.1.11 is going to reflect this and is going to list the following supported annotations..."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

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


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



Working through e-mail troubles  

Filter Blog

By date: