Jun
12
2007
This JavaOne 2007 technical session seemed like a panel discussion between Eugene Kuleshov and Tim Eck of Terracotta, Tom Ware of Oracle/TopLink, and Charles Nutter of Sun/JRuby. The session started off by describing the Java Virtual Machine, the Java bytecode, and the ASM framework. The Java Virtual Machine (JVM) is a proven and reliable platform aimed at high-performing applications. The JVM is designed for statically-typed languages but provides class loading and a reflection API for dynamic languages. The discussion also delved into the class file format. The class file format simply consists of field and method names, string literals and constants, and debug information.
The ASM bytecode framework is a simple, small, and fast library for adding dynamism to your Java application. The ASM framework is useful for Java code generation and modification. Terracotta, TopLink, and JRuby use ASM to dynamically inject code into an existing class.
Charles Nutter described how the JRuby team is using the ASM framework to support Ruby’s dynamic and open class nature. Speaking of JRuby’s move to ASM Charles said, “To be slower than one of the slowest dynamic languages was embarrassing.” Using ASM, recent version of JRuby are performing better than the C implementation of Ruby in some cases.
As a word of warning, you should always document use of code generation because it is hard to debug and maintain if you don’t know what is going on.
Technorati Tags: javaone, javaone2007, asm, dynamic, jvm, code generation, jruby
no comments | posted in Conference, Java, Ruby, TechKnow
Jun
11
2007
This JavaOne 2007 technical session started off with Cameron Bateman describing how to use the Eclipse Web Tools Platform (WTP) Project to create JavaServer Faces (JSF) applications and custom tools for Eclipse. This was a discussion better suited for JSF component developers. Eclipse web tools provides a web page editor, JSF configuration model, editor, and wizards. Eclipse and the WTP project are extensible, the WTP in particular allows developers to leverage design-time tag rendering, expression language support, and the meta-data framework. Customizing Eclipse and the WTP project allows you to provide design-time support for your custom tag libraries in the Eclipse IDE.
This was like two sessions in one because Philippe Ombredanne then presented on the Ajax Toolkit Framework (ATF) tools in Eclipse. The ATF project can help to develop AJAX applications in Eclipse. The most interesting aspect of the ATF project is the Eclipse Mozilla mashup. The ATF project embeds Mozilla in Eclipse via XULRunner and JavaXPCOM. In addition to embedding a browser in the Eclipse IDE, the ATF also provide a rich feature set for AJAX developer such as a JavaScript editor and debugger, DOM and XMLHttpRequst inspector, and plain simply faster AJAX development. You can debug a remote website in Eclipse with the ATF project similarly how you would step through a Java project in the debug perspective. Embedding the Mozilla “enables web browser integration beyond the capabilities of the standard SWT browser widget” and brings AJAX applications to the rich client desktop.
Technorati Tags: javaone, javaone2007, eclipse, jsf, wtp, atf, mozilla, xulrunner, javaxpcom, ajax, javascript
no comments | posted in Conference, IDE, Java, TechKnow
Jun
11
2007
Kirill Grouchnikov and Alexander Potochkin presented on advance Swing techniques at this JavaOne 2007 technical session. They talked about advanced painting and effects such as non-rectangular components, translucency, layering, image filtering and animation.
Custom components, especially non-rectangular components, should override the contains and paint methods. You can implement any effect on custom components by overriding these methods. By default, components are opaque. You can use opacity for transition effects, such as fading in and out of a container when tabs as selected. The reason you want to use visual effects is to indicate to the user a change in state, by nature Swing changes the UI immediately on an event.
In addition to adding effects to custom components and playing with opacity, Kirill talked about using a custom RepaintManager, and drawing on the glass pane. Customizing the RepaintManager allows you to control Swing’s component painting, for example to force a container to repaint child components. Drawing on the glass pane allows you to paint over all components. Kirill also suggested using JXPanel and JXLayer of the SwingX project from SwingLabs, these containers supports translucency, Painters API, image filtering, and non-rectangular components.
Kirill and Alexandar also talked about layering with UI delegates. Swing UI delegates are the classes responsible for painting Swing components, there exists one UI delegate for each component. As of current Java versions there are 41 UI delegates.
Kirill demoed some eye candy Swing effects, something he calls the ghost effects. Kirill has made available Rainbow, a SVG explorer application that demonstrates many of the techniques discussed in this session.
Technorati Tags: javaone, javaone2007, swing, desktop, painters api, svg
no comments | posted in Conference, Java, TechKnow
Jun
11
2007
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: javaone, javaone2007, gosling, grid, netbeans, jvm, robosapiens
no comments | posted in Conference, Java, TechKnow
Jun
11
2007
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: javaone, javaone2007, glossitope, ab5k, widget, gadget, javafx, jfx
no comments | posted in Conference, Java, TechKnow
Jun
11
2007
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: javaone, javaone2007, java3d, 3d, opengl, jogl, world wind, nasa
no comments | posted in Conference, Java, TechKnow