Jun 11 2007

JavaOne 2007: Friday General Session

Friday’s general session, the last day of JavaOne 2007, is generally known as James Gosling’s Toy Show. The Toy Show is just a series of demonstrations of kewl applications and technologies that make good use of Java. To paraphrase Gosling, when all the announcements have been made “What do you do at the end? you inspire!”

Gosling talked a bit about Network.com, Sun’s pay-per-use grid computing network. Sun’s grid computing is offering 200 free hours. Tor Norby, the ‘Demo Stud’ as Gosling introduced him, showed off NetBeans 6 and demoed NetBeans’ Ruby on Rails integration and local file history. My favorite demo was of Project Wonderland. Wonderland is a virtual collaborate environment. You can run FireFox, NetBeans, and just about any other application in 3D in Wonderland. In wonderland, Gosling joked, is a virtual world where you could have your own window office. Gosling also talked about a meat scale with a JVM and browser that can communicate to a centralized database. Gosling also had robots, Robosapiens, literally running on Java and dancing on stage.

Technorati Tags: , , , , , ,


Jun 11 2007

Glossitope – An Open-Source Java-based Widget Container

Joshua Marinacci and Robert Cooper presented on Glossitope, a Java-based widget Container. Glossitope was originally named AB5k. Joshua is also the founder and lead of the XHTML Renderer project which is code named Flying Saucer. As good of a coder Joshua is, he is horrible at naming projects!

A widget, also known as gadget, is a small and simple program that lives and runs in a manager container. As Joshua said, they do “a lot of useful awesome little things.” The OS X Dashboard widget system comes with a calendar, date, and calculator widget. Independent developers have released all times of widgets such as RSS reader and weather widgets that there is a growing widget economy.

There are a few other widget systems other there such as Google Gadgets for the web, Dashboard for the OS X, and Yahoo! provides widgets for the desktop as a third-party application. Even with all these widget systems, Joshua and Robert see issues with them all, such as they use an XML-based markup and lack a real programming language. These ‘issues’ sound surprisingly similar to the ones presented by Chris Oliver for his motivation for JavaFX Script. Another common reason used for both the JavaFX Script and Glossitope projects is large number of Java libraries. Joshua also reminded the audience that Glossitope has immediate support for a myriad of languages such as JRuby, JavaFX Script, and French (via Unicode).

Joshua also mentioned that it is his hope to be able to support widgets written for other systems like Yahoo! or Google. He also hopes that Glossitope will be the standard widget system for Linux distributions. As a call for action, he asked the audience to write more widgets targeted for Glossitope. To demonstrate the limitless ability of Glossitope, Joshua demoed a 3D widget using JOGL! Glossitope is very alpha and still throws the occasional exception here and there but still worth the look.

Technorati Tags: , , , , , , ,


Jun 11 2007

The Java 3D API and Java Binding for OpenGL

This JavaOne 2007 BOF covered both the Java 3D and JOGL APIs. The session started with the news that Java 3D 1.5.0 was released back in December 2006 and includes a lightweight JCanvas3D and several bug fixes. This session had a ton of kewl demos, mostly of scientific applications and Web 2.0 style image reflections. They also demoed Wonderland, a Second-Life-like virtual and immersive world developed in Java using the Darkstar game server. The speaker described Wonderland as a “virtual collaborate environment,” where your avatar can peer-program in NetBeans with fellow engineers telecommuting half way around the world!

The speaker also posed an open question to the Java 3D community. He wondered if the community in general should focus on version 2.0 or 1.x, where 1.x would be fully backward compatible. Key features he said he would like to see are to allow a mix of Java 3D and JOGL, making lightweight components first class citizens, ease of use utilities for sound, and a plugin architecture.

The Java OpenGL portion of the BOF skipped the powerpoint presentation and went straight for the demo. NASA Ames’ World Wind application was demoed. World Wind is an open source, Java-based, extensible and mashup-able, and mind boggling Google Earth like application. They also demoed some Java 3D/2D integration with JOGL where some Java 2D based text graphics was shaded and animated by JOGL code.

Technorati Tags: , , , , , , ,


Jun 10 2007

Web 3.0 – This is the Semantic Web

This JavaOne 2007 BOF was about the coming web, deemed the Semantic Web. The way I would describe a semantic enabled site is to talk about microformats. You can use microformats to annotate a given snippet of HTML to describe the data contained in the HTML. For example, a typical site uses HTML to structure the data, CSS to style the page, but if you want to annotate and describe your data you can use a microformat and add additional attributes to the HTML tags. Simply speaking, you can use a microformat in a web page to describe the meaning and relationship of data. For example, blogs that have a blogroll can add XHTML Friends Network (XFN) data to links to describe the relationship to the link, whether they link to friends you met or coworkers. But instead of using HTML, the Semantic Web is based on Resource Description Framework (RDF). And instead of using XFN, you use Friend of a Friend (FOAF) to describe human relationships. RDF is a way to meaningfully describe your data.

Another format like FOAF is the Description of a Project (DOAP). DOAP is used to describe an Open Source projects with a name, description, SVN info, etc. so that this information can be crawled, indexed, scrapped, and later successfully searched. RDF, like XML, is open in such a away that you can define your own ontologies, and there are many existing ones that will be standardized. Competing ontologies will be naturally selected and standardized by the community. Another interesting RDF format is Beatle, bug and enhancement tracking language.

The speaker started the session by describing a timeline of recent modern computing. He narrowed the PC Era to the desktop of the ’80s, the Web 1.0 was the original World Wide Web of the 90’s, he described the Web 2.0 as the Social Web we currently live in, Web 3.0 will be the Data Web or Semantic Web, and Web 4.0 which is slated for 2020 will be the NetOS or Intelligent Web. In terms of search, he stated that we started Web 1.0 with natural language search, we will soon move to semantic search, then associative search, simple reasoning, and finally to intelligent agents in the Web 4.0.

The speaker said that the Semantic Web, and RDF, can be used to search, archive, and retrieve online content in new ways. He said that the open web would be treated like a massive distributed database. The web is made up of data and RDF can define your data into a database that can be located, reference, and related to other data with URLs.

The speaker also touched on the growing number of semantic tools, a large portion of which are written in Java. The speaker spoke of RDF databases and repositories and SPARQL, a SQL-like query language to search RDF repositories.

Technorati Tags: , , , , , ,


Jun 9 2007

Write a 3D Game in Java

The complete name for this JavaOne 2007 technical session was Write a 3D Game in the Java Programming Language in Less than 50 Minutes. This was not a hands on session but instead Erick Hellman spoke on his experience writing a 3D game in Java. In full disclosure Erik informed those present that he never before written a game, has basic knowledge of OpenGL, lacks artistic talent, and suffers from color blindness. He said, “I need a ruler to draw a stick figure,” but he reassured the audience that a ruler wasn’t required because game development is made simple in Java.

Erik presented a basic recipe for game development. The recommended tools of the trade include Blender for 3D modeling, Gimp for image manipulation, JOGL for OpenGL bindings, JInput for game control, Vectmath for Java 3D coordinates, and XMLBeans for loading and persistent the models.

The architecure of the game revolves around the scene graph. The scene graph is the core of modern games and everything builds around it. He also briefly touched on the core mathematical concepts of 3D graphics, which are matrix transformations such as rotate, scale, and translate. For those that didn’t do well in linear algebra, or don’t even know what that is, the speaker say that OpenGL abstracts most of these details and that what a game developer is concerned with is the graphics pipeline.

Erik also mentioned some good 3D model formats. Lightwave, 3D Studio Max is a closed formats but he also recommended Collada and X3D as open format alternatives. The speaker also described a bit the ideas and algorithms used for collision detection. The technique he used is to enclose the character in a virtual, invisbile, bounding box. Elements of the game, such as barriers, need to be outside ot the avatars bounding box. He also listed some common issues when developing a multiplayer game. These issues include latency, pocket loss, and cheating.

In summary, Erik listed the key components for a simple game. He assumed the audience that with a scene graph, model, navigation, and collision detection any one there could in fact write a 3D game in 50 minutes. Talk about rapid game development!

Technorati Tags: , , , ,


Jun 9 2007

Beans Binding

In this aptly named technical session, Shannon Hickey and Hans Muller tag teamed to talked about the current state of JSR 295: Beans Binding. Right off the bat, Shannon said that the Beans Binding implementation is far from final and if any body has any thoughts on how beans binding should be done Shannon suggested they participate in the discussion.

The Beans Binding JSR intends to replace the property change and action listeners which litter Swing applications. In essence as Shannon described Beans Binding “keeps two properties in two objects in sync.” Beans Binding also has support for objects that don’t adhere to the bean pattern, such as collections. Beans Binding also has the ability and added value that it can convert and validate values of as it sync and binds them to the target object.

The end goal of Beans Binding is to make it trivial to bind an application model to a Swing UI component.

Technorati Tags: , , , , ,