Channels ▼

Eric Bruno

Dr. Dobb's Bloggers

JavaOne: The Toy Show (aka The End)

May 11, 2008

JavaOne always closes with James Goslings'  Java "toy show," as he calls it.  Basically, there a lots of demos and cool Java-based software and devices shown.

This morning, the show was kicked off by John Gage talking about a new unit of computing being named after James; the Gosling. Thanks to Sun's work in reducing power consumption and heat generation in its servers, this unit measures that savings.

The "Fifth Beetle"

Afterwards, a tribute was given to John Gage, the man who coined the term, "The network is the computer," who has often been labeled the "fifth Beetle." Although technically not one of the original founders, he is credited with much of Sun's success and acceptance in the market place. He's been active on the social and political fronts for decades, and is known throughout the world for his work to advance technology to benefit human-kind. The tribute included words of appreciation from James, Rich Green, Jonathan Schwartz on stage, as well as by Scott McNeally and Bill Joy via video.

When the video concluded, the toy show began:

1 - The Visual VM
Tomas Hurka and Luis-Miguel Alevntosa joined James on stage to talk about a new tool to visually inspect and profile the Java VM and applications running on it. Basically, it can be used to analyze memory usage, garbage collection, and the general performance of any application. It understands different application types, such as web and application servers. For instance, it looks inside the application server and inspects deployed Java EE applications and servlets automatically. It does so through standard Java EE APIs, and Java reflection, so it works with just about any Java EE-compliant application server or servlet engine. Being able to focus on single applications, and certain threads or classes within, allows you to narrow the focus and not get overwhelmed with information.

It outputs reports that show the JVM arguments that were used to start the VM, along with properties that were read in from appropriate files (such as deployment descriptors). With it, you can get threads and heap dumps, and code-profiling reports. For instance, you can get snapshot reports that show top cpu and memory usage by thread, class, method, and so on. It does a lot of its work through standard JMX MessageBeans (MBeans), but you can add your own to your applications to expand the reporting.

2 - NetBeans JavaScript support
Next, Tor Norbye joined James on stage to talk about the newly-added JavaScript support in NetBeans. Basically, the NetBeans editor now supports all of the same Java-editing features with JavaScript. For example, JavaScript developers now enjoy code completion, in-line errors and warnings, code suggestions, re-factoring, and so on. In fact, as I reported in an earlier blog, these features are now shared with the multiple scripting and dynamic languages supported by NetBeans 6.1. 

There are some big advantages to JavaScript developers that use NetBeans. For instance, the IDE performs type inferencing to make it look like a more static type system, which JavaScript is not. Warnings are flagged when type violations are detected, which is something that JavaScript alone doesn't provide. This can save you from experiencing strange behavior in your script applications that would otherwise be difficult to find. The IDE also works with script libraries such as those from Google and Yahoo!, and it uses objects and their properties to simulate classes when writing code. As a result, NetBeans infers class methods, method calls, and return types, and validates all of the code accordingly to transform JavaScript development to be more Java-like, but still valid JavaScript. There's supports for type annotations (within comments), with warnings that check the documentation against the actual code.

Perhaps the most impressive features are NetBeans' ability to analyze your JavaScript code against the latest versions of released browser APIs (such as Firefox, Safari, and Internet Explorer) to find compatibility issues, and its source-level debugging capability. Suggestions are made to remedy browser compatibility problems, and a browser plug-in is included so that you can debug your JavaScript within NetBeans while it runs in your target browser. You get full source-level debugging with the ability to set break-points, watch variables, and inspect the stack.

3 - Java on nVidia APX 2500
Next, Ken Russel and Sven Gothel joined James on stage to talk about a last-minute addition to the toy show; the Open GL ES 2.0 API with shaders implemented on Java ME. The demo, run on a cell phone with the nVidia chip-set, showed 3-D graphics with associated sound. The result was a mini spatialization engine that looked as though you were flying around a city. The technology, in compliance with JSR 248, works directly with the sound card, runs on the Java ME CDC VM, and turns a cell phone into a PSP-like device.

4 - Java Games and Project Darkstar
Next, Chris Melissinos and Joshua Slack joined James on stage to talk about the JMonkeyEngine (a 3-D gaming engine) , along with Slick (a 2-D gaming engine). ProjectDarkstar can be described as an application server for game developers, which allows Java and non-Java client applications to connect to it over the Internet for multi-player gaming. It automatically scales to large numbers of users of relatively few servers.

You can check out the demos online, and the entire stack is released as open-source at java.net. The goal is to get people to develop cool games that work with it; one example is the company NCSoft. For a non-gaming example, NASA is using it for its Mars visualizer tool. Check out these sites for more information:

callof thekings.com
projectdarkstar.com
jmonkeyengine.com

5 - Extreme Java Card Innovation
Next, Laurent Lagosanto, Gemalto joined James to talk about their innovative software for the latest JavaCard, version 3.0. They implemented an entire Servlet engine that runs on the JavaCard, and implemented a robot war demo running on it. When you remember that a JavaCard is the same size as a credit card, you realize just how incredible this is.

6 - Sentilla's Pervasive Java
Next, Joe Polastre joined James on stage to talk about the RFID reader devices and sensors they placed throughout the show. Each device is a small computer running Java, with 10K of RAM, 38K ROM, 1MB storage, an 8MHz CPU, and a 256Kbps radio. The devices are meant to take measurements, and report statistics back to a server application via its radio. Therefore, it's not surprising to see the device have lots of bandwidth, but a small amount of memory.

The devices are sensitive to all sorts of things, such as temperature, acceleration, vibration, RFID, and so on. In fact, they demand so little power that they can be powered by vibrations from wherever it's mounted, such as a railcar, an escalator, a train, and so on. Some interesting applications, to show off the device, included drink coasters with Sentilla devices that detect pressure; when a drink would begin to get empty (as detected by less pressure on the coaster) an alert would be sent to the bartender to refill. As another fun example, at JavaOne, Joe through large beach-balls out into the crowd, which were then plotted on screen to show their relative position to one another and other sensors mounted throughout the room. The practical, and fun, uses for the devices are limitless.

7 - Livescribe Pulse - Never Miss A Word
Next, Jim Marggraff from LiveScribe showed the Pulse Java pen - arguably the best device at the show. The pen records your writing activities with associated audio in 3-dimensions: x-axis, y-axis, and time. As you write, the audio from around you and the pen is recorded in sync with what you've written. Later, when you want to review your notes from a lecture, for example, you can play back what the instructor was saying when you took your notes simply by clicking on a word. The audio picked up when you wrote the associated text is then played back.

Since the pen is running Java ME (CLDC 1.1) and comes with either 1GB or 2GB of RAM, applications can be written and deployed to the pen. For instance, Jim showed a translator application; he wrote some words in English, chose the Spanish language on the pen's display, and clicked on different words. As he clicked, the word was spoken, through the pen's built-in audio output, in Spanish. 

The pen works on the desktop also when plugged in via a USB port. Everything written with the pen is automatically shown on screen exactly as it was written on paper. In fact, all of the handwritten notes are then searchable; type in a word or phrase, and all pages that match are shown with the word or phrase highlighted. Currently this feature only works on Windows XP, but platform support is being expanded in the near future.

To complete the picture, each user gets a personal space on the web to optionally share what he/she has written. The handwritten pages and associated audio is made available via Flash. Other interesting notes: 
-The earbuds record with built-in stereo microphones and play back with full spatial awareness
-Although the Pulse pen requires special paper with small microdots in order to perform its magic, LiveScribe is making a PDF available on the web for free so users can print out blank pages at no cost.

8 - Industrial Strength Java (the Java Real-Time System)
Next, Greg Bollella brought Project BlueWonder on stage, along with a neat demo that showed colored balls dropping down tubes. The BlueWonder box (an x86, fan-less, disk-less, PC running Solaris 10 and Java RTS) was shown controlling a Profibus device and relay board often used in industrial automation. These are often used in factories, power plants, manufacturing plants, assembly lines, and other industrial automation environments.

The legacy control systems required for these environments consist of primitive relay racks, and large custom-built computers with special-purpose operating systems and other software. What Sun has done is create an industrial-strength PC with no moving parts (solid-state disk, and no cooling fans) that are very small, x86-based, and run Solaris 10. These computers can handle extreme heat, freezing temperatures, and the dusty environments often found in industrial sites. The version of Solaris 10 it's running is the same one you and I can download and install today, with the addition of the Profibus device driver for control bus processing.

The demo that Greg showed included all of the actual hardware proposed for industrial automation solutions, and a series of plastic tubes with colored balls being bounced throughout. Color sensors identified balls as they passed by at high speeds, and sorted them in real-time thanks to Sun's Java Real-Time System (Java RTS). A Swing application run within the same real-time JVM, on the same control computer, as the real-time software, which kept track of it all.

9 - Tommy Jr. Autonomous Car
Paul Perrone then came out in front of the stage, closely followed by Tommy Jr., and autonomous car, which was guiding itself into the audience. Tommy is part of the DARPA Urban Challenge, where people and corporations compete to build an autonomous vehicle that can complete a given challenge before anyone else. 

The car consists of all sorts of sensors, including a GPS system that is accurate within 2 to 4 inches. The car has complete spatial recognition, and will move away from people that get too close. Most of the car's internals consisted of power regulators and actuators to control its movement, and a computer with a $200 CPU that was running Solaris 10 and Java RTS. In fact, all of the hardware throughout the car was all commonly available parts - there was nothing custom-built for Tommy. Not only was it truly a testament to autonomous transportation, and Java RTS, but also to hardware and software integration.






Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 


Video