The Source for Java Technology Collaboration
User: Password:



Hans Muller's Blog

Swing Archives


Parading Out of the Open Source Door

Posted by hansmuller on June 28, 2004 at 09:30 PM | Permalink | Comments (0)

June has been a record breaker for new open source projects at Sun. The projects ambling out the door this month have run the gamut from new initiatives like JDIC, JDNC, to longtime J2SE stalwart Java3D. And standing in the doorway is the great hulking giant Solaris, of which our president Jonathan Schwartz has said: "Make no mistake: we will open source Solaris". At today's opening JavaOne keynote Jonathan also let it be known that Project Looking Glass was similarly poised to pass through the open source doorway, just as soon as some final (unspecified) details were ironed out.

So now perhaps you're wondering what all of this implies about Java itself passing through the same door. Of that I can tell you with absolute certainty: I have absolutely no idea. My goal is just to remind those of you who of depend exclusively on blogs for news, a little about the significance of the Looking Glass and Java 3D projects.

One way to explain Project Looking Glass is to take stock of the obvious. For some time now nearly all new PCs have included general purpose CPUs that can execute billions of instructions per second. Right next to the fire breathing CPU there's usually a separate graphics processor that can render 3D scenes of enormous complexity at frame rates well in excess of what you'll find at the local cinema. With all this power at our disposal, why are we viewing a desktop GUI that requires little more than an efficient implementation of an early 1980s BITBLT graphics library? Of the many possible answers to this question, the one that Looking Glass is intended to explore is this: we still don't know how to take all of that potential and turn it into a desktop that makes using a computer easier. It's time to start experimenting with the possibilities and Project Looking Glass is a software laboratory for doing just that.

Project Looking Glass is based on an extension to the X11 server that combines the contents of top level windows from conventional X11 clients and new Java 3D client application scene graphs into a unified scene graph that's composited and displayed on the screen. There's a new X11 window manager that demonstrates how one interact with a desktop metaphor that's more than just a stack of sheets of (opaque) paper. There are also some demo applications that give you an inkling of what it's like to deploy an application whose visual elements occupy 3-space. To begin your own exploration, watch for the project's open source announcement on javadesktop.org.

The other big open source announcement that I wanted to mention was Java 3D. Java 3D has seen much use in serious endeavors like engineering and medical science, and it's been used in loads of games and virtual reality applications. However the big question many developers gravitate towards, as they while away the moments waiting for their tiny espressos to brew, is this: would it be possible to use Java 3D to build a first-person-shooter view of the operating system and would we be allowed to remove files or kill processes by blasting at them with impossibly large weapons? Not surprisingly, the answer to that question is yes. As to the natural follow up question: will the processes and files fight back? We're still looking into that. One example of such an application, which I haven't tried, is the "Brutal File Manager". If you're aware of others, I'd like to hear about them.

You'll find the new Java 3D API open source project here: java3d.dev.java.net. It's a big software stack. The developers describe it like this:

The Java 3D API provides a set of object-oriented interfaces
that support a simple, high-level programming model you can
use to build, render, and control the behavior of 3D objects
and visual environments. With the Java 3D API, you can
incorporate high-quality, scalable, platform-independent 3D
graphics into applications and applets based on Java
technology.

Java 3D is an integral part of the Looking Glass Project. If you're planning to explore desktop 3D in depth (IOK, not all that clever, but hey - this is a blog) check it out now.



LinuxWorld Tradeshow Shows Desktop Java

Posted by hansmuller on September 03, 2003 at 07:45 AM | Permalink | Comments (1)

A few weeks ago I attended LinuxWorld up in San Francisco. I marched around the tradeshow and took notes about what I saw, notably the impressive collection of desktop Java applications on display. If I was a good blogger or even a disciplined one, I would have immediately collected my impressions and published them. Sadly I'm easily distracted and rarely disciplined and so my little collection of observations has been gathering dust. Just now I'm sitting on an airplane bound for San Jose and the person seated in front of me has graciously (and inexplicably) kept his seat upright, leaving enough room for my hulking laptop to open. So it's time to get this little item written.

HP has a new storage rack named HP StorageWorks NAS 8000 which comes with a Swing administration UI deployed as an applet. In addition to displaying and setting administration parameters it allows to bring up a performance monitor that graphically displays parameters like network traffic etc. The representative I talked with said the engineering team used Swing because they really wanted to do some "hardcore coding". I'm happy to report that they've produced a nice GUI however it's always troubling to hear this kind of work described as challenging. We need to find ways to make it easier.

I saw a bunch of nice looking Swing GUIs in the Veritas booth and also in Dell's booth. Dell was showing the Veritas Cluster Manager front-end. Most of the Veritas administration front-ends were Swing, some of them looked pretty slick.

Computer Associates had a nice Swing GUI for their "eTrust AntiVirus App". The CA representative on the floor showed me a similar and much older Motif GUI running on Solaris. I voted for using the new Java GUI on Solaris, I'll look for that next year.

Appro was one of the many companies showcasing a big dark intimidating rack of servers and storage. They've got a very good looking remote management GUI for their "BladeDome" (even the name sounds ominous) HPC product.

Novell was showing their Swing GUI for the "GroupWise" Personal Information Manager (PIM) front-end. Apparently they've got a native Win32 PIM and they use the Java version to reach the Mac/Linux/Solaris markets.

I talked with a very tired but very friendly and helpful representative from Arkeia about the very futuristic Java front-end they've built for their backup system. It looks more like a custom MP3 player than a backup admin console - definitely the most exotic admin console I've seen.

GenaWare is a small map visualization company. They've got Swing client called "GeoVisJ" that based on a custom vector graphics map renderer. The GUI isn't going to win any beauty contests but map data is always interesting, and they've got a lot of it.

I'm sure you'd like to see screenshots of some of these apps. We'll try and collect a nice set in an upcoming Swing Sightings column. Don't miss the current column (yes, this is a shameless plug), you'll find it here on the Swing Connection site at http://java.sun.com/products/jfc/tsc .

Selling Snakes with Huckster

Posted by hansmuller on August 04, 2003 at 08:35 AM | Permalink | Comments (2)

Disclaimer: I wrote most of this blog about a month ago. Before I finished, a combination of vacation and other distractions kept me from completing it. So finally, here it is.

At Sun Microsystems, we're all required to take vacation during the week of July 4th. I think it's more of an economic requirement than a patriotic one. Ofcourse some people take Independence Day pretty seriously, for example founding Fathers John Adams and Thomas Jefferson both managed to drop dead exactly fifty years later, right on the 4th. I'm not quite as inspired by the date however I am writing this outdoors on a beautiful Pennsylvania afternoon with four US flags fluttering within my line of sight over the top of the laptop. Pennsylvania weather is a big change from California's Bay Area, it's humid here. Sometimes it's unbearable however today it just makes the breeze more entertaining. A little bit like swimming without getting wet. Or cold.

The weather at the Castle Rock and Big Basin parks in the Santa Cruz mountains was different but just as nice. Earlier this week my older sons and I and some friends went backpacking from Castle Rock, through big Basin, and all the way out to the Ocean. The trail ends at Waddell Beach where the kite surfers zoom around above the surf like a cloud of giant butterflies. The trail itself is impressive, having been cut into the side of ridges covered with Coastal Redwoods and in other places Chaparral and rock formations that look like they were lifted from old Roger Dean album covers. The trail winds up and down, always opening up a new little vista, never boring.

In many places the trail is just a two foot wide shelf cut into a ridge. As you walk westward your right shoulder brushes up against the scalloped edge of the trail cut. Just past your left shoulder there's a good approximation of a cliff. Rattle snakes are common on the sunnier parts of the trail and on the second day we passed a baby that shook it's tiny rattle half heartedly and then slipped into the bushes. We felt very manly then, tramping past the venemous snake, even bending over for a closer look. That feeling passed later in the afternoon when we turned a corner into another sunny vista and nearly stepped on the baby's big mother. We didn't see the rattlesnake right away but we heard it angrily shaking its big maraca. The cliff on the left looked pretty dangerous at that point so the rattle snake headed to the right. Unfortunately for the snake, the trail's right shoulder was even steeper. The rattler strugged but couldn't wind it's way up, so it settled for a waist high defensive position at the base of a small tree growing out of the scalloped edge of the trail. Rattling for all it was worth the snake spring loaded its coils and pointed it's big triangular head directly at us. Left side cliff. Right side, angry rattle snake aimed directly at my shorts.

My friend Norm and I are software engineers. We were also the adult supervision for this trip, so we snapped into action and took some digital pictures of the snake. It seemed likely that someone would create a web site about us after the bodies were found and having a picture of the snake that did us in would make our epitaph more interesting. That taken care of, we tried to calcuate how far the snake could lunge and Norm decided that it was unlikely that it could hit a target perched on the far left edge of the trail. Since I wasn't carrying dinner, Norm suggested that I go first. I'd like to say that I strode fearlessly past the reptile. The truth is that if I'd had a tail, it would have been between my legs as I leapt past while the snake rattled.

If you're still reading this (and you're not Norm) then you're probably wondering where the technical content escaped to. I've been saving it and it's your reward for putting up with my travelogue.

The word "huckster" seems to have the same Dutch origins as "hawker" and both words are used to described peddlers whose pitch is mightier than their product. Like snake-oil salesmen (that's the best I can do for theme continuity). This year at JavaOne James Gosling created a simple presentation editor/player called Huckster and used it for his keynote presentation. He's also launched a Huckster open source project that you'll find on javadesktop.org in the projects section here. Huckster makes a number of simplifying assumptions that reduce the scope Huckster's design and implementation to the point where one hacker could carry off the first version without making a joke out of their day job. It probably doesn't hurt that the developer is James Gosling.

  • The only elements needed for a presentation are images and text. Users who need fancy charts and diagrams can always produce those in more specialized tools.
  • Fine control over slide layout is overrated. You can live without being able to insert a couple of pixels of padding between a slide's title and the first bullet and you certainly don't need to be able to control where all of the line breaks go.
  • A direct manipulation WYSIWYG style GUI isn't neccessary for entering the text for titles and bullet points. You're better off working with an outline editor flanked by a slide preview window.
  • Transitions are evil. I'm really sure about the thought behind this design constraint, however it's clearly stated in the docs. I'm guessing that during his formative years James was involved in some kind of bloody PowerPoint accident.

One novel Huckster feature that I haven't seen in any other presentation tool is that it dyanmically reduces the font-size for titles and bullet text. The more you type the smaller the fonts get. If you type for a long time (I tried this) the text gets really really small. I have yet to do a full one-hour presentation with Huckster however with small examples this seems like a very useful feature.

I have to admit that when I first tried Huckster on my Linux laptop I couldn't add images to the presentation - which pretty much defeated my objective of creating a slide with the picture of the great big rattlesnake. The problem was that Nautilus (the drag source) would only provide a file URL string. When I drag-and-dropped an image on Huckster it just inserted the file URL as text. So, hooray for open source, I changed Huckster so that if you drop a string that can be parsed as a URL and that produces an image, Huckster does the right thing. I also fixed some other minor problems and proudly sent them back to James to be incorporated in the next version.

Here's the snake presentation encoded as a huckster ".esl" file. It's kind of refreshing to see a simple plain text file format again.

A Big Snake
-Hans's Blog
-July/August 2003
-\I500:/export/home/hans/big-snake.jpg
Same Snake
-This time the image is used for the slide's background
-\I500b:/export/home/hans/big-snake.jpg
The End

And here's the same tiny presentation exported as HTML (just images really) so you can have a look.

Sharing a Week With the GUADEC Generation

Posted by hansmuller on June 20, 2003 at 02:18 AM | Permalink | Comments (2)

I'm here at Trinity College for the 4th annual GNOME users and developers conference (GUADEC) in Dublin Ireland.

Dublin Ireland time is eight hours ahead of PST back in Silicon Valley however I've mostly overcome the jet lag. Except from 1-2 PM every day when I feel like a narcoleptic. It's 1:30 right now and it feels like my brain is draped with a big hot wet wool blanket.

That was as far as this blog got on Tuesday. After failing to find a way to make both eyes focus on the screen at the same time, I stumbled out of the computer room to find strong coffee.

The computer room was the conference's social hub. As rooms go it wasn't terribly impressive: a big windowless room filled with folding tables surrounded by chairs, plenty of outlets on the floor, and a broadband ethernet cable duct taped to the table in front of each chair. It's hard to explain how inviting your own little space at the internet trough can look after you've been offline for a few days. The computer room was a magnet for the folks attending the conference. It was jammed all day with GNOME developers who were yacking and hacking and enjoying the camaraderie. It was here that I discovered some things about the conference and the GNOME community:

  • They're friendly, they like to talk, and they really like to talk about the software. I'm shy and hopeless at making conversation however I found myself talking to all kinds of people about what they were building, what they planned to build, and (typically for me) about how Java might fit in.
  • There's no point in finishing your GUADEC presentation before arriving at the conference. That's something that can be taken care of in the hours before you're scheduled to perform. Preferably in the terminal room, where you can procrastinate further by talking to me.
  • Hacking on big systems that you're passionate about is fun, and both qualities are contagious.
  • There's a clear hierachy among the developers. There are high priests, there are groups of trusted lieutenants, and there is the rabble. As a member of the rabble, I appreciated the fact that ones relative position in the hierarchy didn't seem to have any effect on the hobnobbing. Everyone made time to talk with everyone else.

Last week I spent the entire week at JavaOne and had a great time of it. One consistent theme that JavaOne attendees have fed back to the conference committee is that they want more technical content in the sessions. They want to see source code. This week I was at the conference (GUADEC) where code was king. The technical sessions were filled with developers hacking away at their laptops while the speaker talked about code and in some cases actually wrote code while everyone watched. Raptly. In one session the speaker ran a new (JIT) compiler on a small app and everyone watched attentively for several minutes while the instructions the compiler generated scrolled by in blur on the screen.

These are my people.

One of the most memorable keynote presentations of the week was given by Alan Kay, who appeared via a video link from his home in California. The average age of the GNOME developers I met at GUADEC was probably mid 20s and I felt very old, although not as old as Alan Kay. Alan's presentation began with an inspiring review of projects he'd worked on (or witnessed) back in the 1960s, including some great video of those old apps in action.

Ivan Sutherland's early 1960s "SketchPad" drawing application, which featured the first use of multiple windows (SketchPad3), still looks great. Users draw directly on the screen with a stylus and the app recognizes crudely drawn simple shapes and redraws them as perfect rectangles or semi-circles or rectangular polygons. Alan pointed out that this was the first object oriented system - a user could create classes of graphic objects, editing the class changed existing instances.

There was also a 1966 video of Doug Engelbart using a combination mouse/keyboard system to navigate around a little information tree. Response time was excellent even though the app was running on a 1/2 MIP time sharing system with 192KBytes of memory. Engelbart's goal was (is): "augmenting the collective IQ of groups of people". Still seems like a worthwhile goal.

These projects and more like them were intended to inspire everyone to build new apps that were atleast as capable as the ones built 40 years ago. Ofcourse there was an implicit dig in the call to action - we've lost the ability to craft small responsive apps even though we're now working with hardware that has 1000 times the capacity of what our forefathers had to work with. In other words, why does it take so much more code and computer horsepower to build high performance interactive data visualization apps then it used to? There are a variety of tired responses to such questions, some cynical, others self deprecating. The one that's not trotted out very often is the punchline to an old Bill Gates joke - "that was the demo". Great demos are a combination of technology and theater that deliver a little shot of adrenaline to the viewers imagination. The 1960s era demos we saw were certainly masterpieces, however they were still only demos. The difficulty of turning the vision those demos inspired into apps suitable for everyday use by everyone should not be underestimated. Hollywood had us traveling to the moon in the movies 40 years before anyone set foot there.

Bulding practical useful systems that deliver on the implicit promises in great demos is hard and it's time consuming. The GNOME community has done as much for Linux desktop computing and I can say from personal experience that it works like a champ.

Traveling Under the Watchful Eyes of the Big Brotherhood

Posted by hansmuller on June 16, 2003 at 08:05 AM | Permalink | Comments (2)

I'm in Dublin Ireland this week for the GNOME Users and Developers Conference (GUADEC, pronounced "gua-dac"). It's a long way from Santa Clara California, not just in terms of hours and miles but in terms of queues and security checkpoints. Security has been tightened at airports by scanning luggage and people and shoes and by repeatedly checking one's boarding pass and photo ID.

Within the last couple of a months a proposal to enhance security at government sites by installing tens of thousands of web cams and deploying an army of eyeballs to watch them (from home!) has been widely reported. Most reports come with a subtitle like "Is this nuts or what?", however I have to admit to finding the idea intriguing. Despite 25 years of computer vision research, the human visual system is still the most effective way to distinguish an image of an intruder at the border of some restricted area from a deer or a tumbleweed or the wind and shadows. Webcams are cheap and, in theory, there's a Big Brotherhood Eyeball Workforce eagerly waiting to watch them.

Back in the 1960s Peter Graves' Impossible Mission force wouldn't have thought twice about penetrating a security system that required one to fabricate a photo-ID and a paper boarding pass. I can't imagine that modern bad guys would find the problem any more difficult. On this trip to Dublin, while I was waiting to have my papers checked, I thought about how one could apply RFID and The Brotherhood to the problem. RFID is "Radio Frequency Identification" a technology that's used for tracking individual products (like cans of beans) or packages or cattle. An inexpensive - about 5 cents - chip is attached to a paper tag along with a tiny anttena coil. An RFID reader hits the tag's antenna with a radio signal which powers up the chip and causes it to transmit it's unique 64 bit ID number.

So here's the idea. Make a digital photograph of every passenger when they first arrive at the airport and give each passenger a RFID transponder card. That initial check-in would be the only time the passenger would need to show their photo-ID, although aiport might make a photograph of that too, to enable a double check. Security people manning checkpoints with RFID readers would see each passenger's picture along with their ticket information. So passengers wouldn't have to repeatedly fumble for ID's and boarding passes. The passenger images would only be hours to minutes old, so checking would be much easier than eyeballing a 10 year old passport photo. RFID cards are cheap, likewise for database entries.

Once you've got a system that can passively identify passengers and is armed with a picture of every one of them, the job of watching would be easy to deploy on the net. The same eyeball army that might watch the fences at secure government sites, could also be employed matching faces at airport checkpoints or even on security cameras monitoring the wide open spaces within the air transportation system. Gadget freaks should find comfort in the fact that security guards could use PDAs (even their mobile phones!) to keep tabs on the flow of faces.

There are plenty of reasons why this would never work. The physical and software infrastructure problems are considerable. Although there's nothing fundamentally technically challenging about creating a system that stores ticket info and picture or two keyed by a dynamically allocated ID, it's easy to imagine the project being hamstrung by mundane problems like cabling, mounting web cameras, even getting passengers to hold still for a minute. And those problems pale by comparison to the privacy issue cyclone that such a system would inspire.

So I'm here at GUADEC and in case you haven't guessed, jet lag has me up early enough in the morning to record this lunacy. While I'm here, I hope to talk with GNOME developers about the prospects building more GNOME desktop applications in Java and for extending same in Java. The GNOME 2.2 release includes a bunch of new integration points for extending Nautilus and the Panel, I'm also hoping to develop a better understanding of how Java might be used in that context and with the venerable Bonobo component infrastructure. Java is widely used on Linux, more than any other language per a recent IDC report. In terms of Linux desktops, notably GNOME desktops, it's harder to say how prevalent Java is - since the whole point is creating applications that are not specific to any platform. By the end of this week's GUADEC conference, I hope to have a better feel for how well Java is working for GNOME.

Intersperse Savage Raid

Posted by hansmuller on June 13, 2003 at 09:47 AM | Permalink | Comments (2)

I finally got a chance to wander around the JavaOne "Pavilion" trade show floor. If you trot out to the edges, you'll see that the Pavilion is flanked by huge arrays of tables covered by white table cloths and little isolated clots of laptops and sandwiches attended by glassy eyed hackers trying not to give in to jet lag. I like to start out at the edges because that's where the new companies are. In years gone by the edge was where the crazy ideas were, it was where the hackers who hadn't slept all week were, it was where the guys who wanted to get to the show floor interior started out.

This year felt a little different. The edges of the show floor seemed to fade into the sea of lunch tables a little more suddenly than in years gone by. Not to be denied the inspiring sight of some new Java desktop apps, I pulled on some mobile phone exhibit hip waders and headed back into the show floor interior. I only had an hour to check things out. I wasn't disappointed.

The Apple booth was impossible to miss with all the bright light glinting off the beautiful lexan cases and those gorgeous gigantic flat screen displays. There were big black racks of new Apple servers doing sentry duty at the booth's corners. The servers were looking very stylish with hip little rows of blue blinky lights. The lights were very very bright. In a pinch they could be used for Lasik.

Allen Denison, who's the Product Manager for OS X showed off a nice looking Swing app for adminstering RAID's called (this is pretty clever) "RAID Admin". There are some screenshots here. What's great about this Apple desktop app is that sys admins can also run it on other platforms, if they happen to be adminstering their systems from a lesser desktop.

Intersperse was showing a great looking JMX management console at their booth. A couple of months ago I ran into an engineer who claimed to be building a similar product and he told me that his JMX console was going to just target browsers. He thundered about HTML being "good enough" for building user interfaces as he scratched udpates to his todo list on a clay tablet. I would have loved to have shown him this product. Great looking Swing GUIs with lots of custom controls for displaying status and doing analysis in real time.

I also dropped by the VisiComp booth. VisiComp's "RetroVue" debugger was featured in a James Gosling JavaOne keynote a year or two ago. The debugger instruments class files so that all significant events, like method entry and exit, are timestamped and logged in a journal file. That done, you can debug backwards and forwards in time. In years gone by, the journal file for a big app might have been hopelessly large. Thanks to today's plentiful supply of big cheap disks, you can journal all you want. The RetroVue Swing GUI is looking better than ever however you'll want to get one of those really big Apple flat screen displays so that you can see everything at once.

Last stop before I had to dart out was the SavaJe booth. Last year SavaJe was showing iPAQ PDAs and other small devices running the complete J2SE stack. Web Started Swing apps like ThinkFree Office running on a device that you could toss to someone across a room! This year the SavaJe booth was inhabited by a herd of cell phones running more web started apps including email, chat, and a very impressive video player (Star Wars!). And you can make phone calls too. It's great to see how far mobile phone computing has come and the high res 16 bit color screen looked great. Inside these phones was an 300+ Mhz XScale CPU, 32-64M or RAM, and a SAN slot for a Flash card. Thanks to the market for high resolution cameras embedded in phones, we're looking at hand held devices with CPU, RAM, and even secondary storage capacity that's comparable to PCs from a few years ago. Run Anywhere.

Opening the Door to JavaDesktop.org

Posted by hansmuller on June 12, 2003 at 11:17 AM | Permalink | Comments (2)



If you've been traveling for a long time, opening the final door is an perspective changing experience that happens so fast that it's easy to miss. After driving and waiting and getting on the plane and then a bus and then renting a car and getting lost and getting directions and then finding the address (had trouble parking) and you knock and the door opens and the person on the other side says hello and welcome. Like you might have just walked over from next door.

The debut of JavaDesktop.org feels like that. It's been a long (I'm not going to insert "strange") trip between the early days of Desktop Java and finally having a focal point where we can all visit and share and complain and inspire. We've always been a big community, however sometimes it was hard to see it all at once because the work we do is very diverse and it's nicely distributed all over the world. It's great to have a place to visit and see it all. Which brings me to the point of this blog, which is bragging about all of the amazing Desktop Java applications that I've heard about.

An old friend of mine works nearby at the NASA/AMES facility in Mountain view and he's part of the crew building the software for Mars Exploration Rover (MER) mission that launched just yesterday. The scientists who'll be monitoring the Mars data will use a nice Swing application called Collaborative Information Portal (CIP) that provides access to all of the data, including stereo images, as well as project management tools for dealing with all of the schedules and tasks required for keeping the mission humming. Scientists will be able analayze the Mission data collaboratively using an amazing Swing desktop called "MERBoard". It's hosted on huge plasma touch screen displays and scientists at different locations can work together at reviewing and annotating and talking over the data. The folks at NASA told us about another desktop Java app that was developed for this mission down at JPL. It's called Science Activity Planner (SAP) and it's used to create the programs that are uploaded to the Mars Rovers each day. We haven't seen this one yet however the word "cool" came up repeatedly. As soon as I can figure out how to include pictures in this blog, I'll add a CIP screenshot or two and a few pictures of the MERBoard in action.

So it's great to finally arrive here at JavaDesktop.org. Where's the beer?



Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds