Skip to main content

On the Outside

Posted by editor on September 15, 2005 at 7:47 AM PDT

Great examples of Java gaming and video

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


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


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

The current commercial version of the Vividas streaming player generally requires the presence of Java on the user’s computer. The Directors believe that Java is installed on most personal computers in Europe. Java is installed on approximately 90 per cent. of personal computers in the USA.

90% desktop penetration! I'm a little hesitant to believe it, but then again, they've bet their company on the prospect of Java as a desktop runtime environment. So, wow. They go on to note that one advantage of going the Java route is that their video can play without installing a media player, something that many business users would not have the access privileges to do (sorry Real, QuickTime, Windows Media, etc.)

Since this is a successful solution to a real problem, you have to wonder - why aren't more sites offering Java-based media players? Robert X. Cringely's Nerd TV offers MPEG-4, playable by QuickTime and other popular players, with a Java applet player "still in development but coming soon". Still, most sites insist on locking you into a format that only plays on one or two platforms. You would think that the content providers care about content, not delivery, so they'd be incented to use a broadly-compatible technology, like Java. My suspicion is that with the big players spending so much in the media space right now, popular sites are... shall we say "facilitated"... by the big companies. What suasion can't accomplish, a free encoder, consultant, or cold hard cash just might. That's my theory, anyways.

Another nice example of a Java based solution comes to us from the JavaDesktop Community page, which links to Phil Milne's Swing version of the popular Japanese number-arranging solitaire game Su Doku:

Click for full-size image

Often written as "Sudoku", this is a Japanese puzzle game in which you have to arrange the numbers 1 through 9 so that no number appears twice in any row, column, or 3x3 sub-box. It's a game of deduction, where you calculate what must, can, and cannot be, in order to fill the grid. More info, as always, in its Wikipedia entry.

And it's very addictive. Wondering why you're not getting the daily blog until 11AM EDT [GMT-4] this morning?

The game is simple enough to be printed in daily newspapers and large book collections, but the Swing version offers many conveniences you can enable or disable to suit your preferences. In the image above, I've turned color-coded gems in addition to the regular numbers. I've also enabled a hints feature that shows the possible values for remaining boxes in the selected cell's row, column, and region. This helps you play very fast, but it pretty much makes the game too easy.

This is another example where Java is well suited to the problem domain. While web apps have trumped the Java desktop in some cross-platform pursuits, I don't know how well a web app version of Sudoku would turn out. Maybe it could be made tolerable with some AJAX cheese, but Phil's already got such a nice head start with undo/redo, saving and loading of games, etc., it'd be hard for a less-rich approach to catch up.

Oh, and he's got a Web Start launcher. C'mon, you know you want to try it...

Also in today's Projects and
the ROME project offers a set of Atom/RSS Java utilities that make it easy to work in Java with most syndication formats. It includes parsers and generators for RSS (0.90 through 2.0) and Atom 0.3, and can convert from one format to another. It can either present data in a form specific to its format, or as a genericized SyndFeed object.

In today's Forums,
echofloripa is looking for an
Unused classes/packages tool:
"I'm working in a company whose code evolved too fast and among a lot of different developers. There are hundreds of packages and thousands of classes. We are migrating to subversion (from source safe, urghh), and as a part of the migration plan, we want to get rid of any unused class or package. I'm looking for kind of tool that, given a start point (a class or a method of a class), this tool could list the classes and/or packages in the included source path(s) that are not reached by the initial class(es), directly or indirectly."

In Re: Certifications?, hammer writes:
"I've been a consultant for the last five years and I've learned that it's more important to know what certifications are used for. They are really no reflection upon your skills. I've know both great and horrible programmers with certifications. In my experience as a consultant I've seen certifications mainly used by clients (especially government) as requirements in an RFP. This means if you are working for a consulting company (or applying to one,) certifications can be helpful."

In Also in
Java Today
JavaServer Faces (JSF) was released with its own expression language, but this caused problems when used with JSP tags. So, the specification writers looked to combine expression languages, bringing the JSF EL's capabilities to JSP: "these features include the ability to use expressions to set the value of external object properties as well as get data from them and to invoke methods. At the same time, the webtier team made the language pluggable and extensible so that advanced developers can add custom resolvers able to evaluate expressions not already supported by the expression language." The article Unified Expression Language uses examples from the javaserverfaces project to illustrate the capabilities of the unified EL.

"Although you may be completely at ease with Java collections in previous versions, J2SE 5.0 collections are both simpler and different, requiring less code -- but altered programming techniques." In Get Familiar with J2SE 5.0 Collections, Jeff Heaton looks at how Generics, the enhanced for loop, and autoboxing have affected collections programming.

Eamonn McManus explains Optimizing the internals of the MBean Server in today's Weblogs:
"It's rare for me to be able to work for a week on something so when I got the opportunity it seemed like the ideal occasion. The internals of the MBean Server really needed work so that's what they got."

In the announcement Callflow module in project GlassFish goes online, Carla Mott writes:
"callflow is a new feature in GlassFish which enables applications developers and system administrators to monitor the behavior of applications deployed on the server."

Gregg Sporar speaks a little Chinese in his blog entry
"Duibuqi, Wo bu hui Zhongwen. But we all speak Java, so JavaChina ended up being a big success."

In today's
News Headlines

Registered users can submit news items for the href=""> News Page using our
news submission
. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href=""> News RSS

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href=""> events submission form.
All submissions go through an editorial review before being posted to the

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 it will be
archived along with other past issues in the href=""> Archive.

Great examples of Java gaming and video