Posted by emcmanus
on May 29, 2008 at 9:18 AM PDT
This is the fifth and last installment in my summary of the sessions I
attended at JavaOne this year. This one covers everything that didn't fit into my neat categories. Capsule summary: Garbage First; JFugue; Semantic Web; VisualVM; Real-Time Java; Smartpens.
This is the fifth and last installment in my summary of the
sessions I attended at JavaOne this year.
The previous installments
programming practice ,
concurrency , and
JMX stuff .
Once again, the titles here are not always the ones that appear
in the conference programme. I tried to undo the mangling that
the Trademark Police typically impose on talk titles, so let me
just state up front that Java, JMX, and JVM are trademarks of
Sun Microsystems, Inc., and any other abbreviation beginning
with J has a sporting chance of being one too.
Here are the sessions summarized in this installment:
The Garbage-First Garbage Collector
Jamming with Java: Making Music with JFugue and JFrets
Semantic Web for the Working Ontologist
General Session: Extreme Innovation (the Toy
TS-5419 , The
Garbage-First Garbage Collector, Paul Ciciora, Antonios
Printezis. Antonios (Tony) presented the "Garbage-First"
Garbage Collector, nicknamed G1, which will be showing up in
an update of JDK 6. This is an improved version of
collector (also originally designed by Tony). The new
collector is better because it does not fragment memory as CMS
can, and it does not require tuning the sizes of separate
memory areas as CMS does. The performance should also be
better. What made this presentation work was the
painstakingly-constructed diagrams, which really helped
understand the underlying ideas.
Tony talks more about this in
on the JavaOne website.
TS-5263 , Jamming
with Java: Making Music with JFugue and JFrets, David
Warman. JFugue is a very
nifty system that allows you to represent MIDI sequences with
strings. This is hugely easier to work with than
API. JFugue adds useful notions like repeated patterns, which
can be submitted to arbitrary transformers. It supports
tapping out rhythms using arbitrary characters and then
applying a substitution that says for example
* means a snare drum eighth-note
. means an eighth-note rest,
..*...*. is a pattern that hits the virtual
snare drum on the weak beats in 4/4 time.
Pedant moment. The melody shown for Frère
Jacques in the slides had a D instead of a C as the
fourth note, which means it wouldn't work as
a round .
JFrets builds on JFugue to provide an app that does guitar
tablature. I don't have much to do with tablature but JFrets
seemed pretty useful for those who do.
TS-5555 , Semantic
Web for the Working Ontologist, Dean Allemang. I
generally try to fit in at least a couple of sessions that are
completely unrelated to my professional activities, and this
is one. I chose this one because, like many people, I'd heard
the term "semantic web" being bandied about but I didn't have
any real idea of what it meant. Also, I know Dean from way
I think this area suffers from frightening terminology such as
"ontologies" and indeed "semantic web" itself. It sounds a lot
more complicated than it actually is. Which is not to say that
it is simple.
The basic idea as I understand it is that today we have this
fantastic web of human-readable information. We'd like to build
on that infrastructure to create a web of machine-readable
information as well.
Some questions are rather easy for people to answer by browsing
the web. For example: who were the speakers at JavaOne 2008?
But programs can't easily answer such questions because the
human-readable information on the web isn't formally structured.
The Semantic Web would allow web pages to be structured in a way
that allows a program to understand them, without needing to
build logic into the program for each information set.
There's an obvious parallel here with web forms intended to be
filled out by humans, versus web services APIs intended to be
called by programs. I don't know enough about the area to be
able to say whether this might mean there is a sort of rivalry
between web services and the semantic web.
I found it possible not to be scared by the word "ontology" by
mentally replacing it with "schema". An "ontology" represents a
set of concepts and the relationships between them. Well if
that isn't a schema, it's near enough to one for me.
One thing Dean stressed is that it isn't necessary for some
standards body to create all the world's schemas. The semantic
web includes support for mapping between the concepts of
different schemas, for example to say that "address" in my
schema is the same as "location" in your schema. Of course
there could be subtle differences in the semantics (perhaps
"location" can represent the North Pole while "address" can't),
but you can still get a lot of useful work done even with these
mismatches at the edges.
And that's enough about the Semantic Web to be able to avoid
sounding stupid when talking about it at parties. This talk,
and the fact of writing it up, has led me to discover some
promising starting points for further exploration, of which the
best I've found is an article
General Session , Extreme Innovation, James Gosling
and guests. Also known as the Toy Show, this is the annual
overdose of geekery where James shows all the latest nifty
stuff. It also doubles as a good way for the conference
organizers to persuade people to stay around for the last day of
Unusually, I was right there at 8:30am when the show was due to
start, because I knew that the first item would
be VisualVM , being
Hurka and my
Alventosa . Equal measures of pride and stress for them, I
think, as they stood up and demoed their stuff in front of
thousands of people in a huge dark auditorium. In the event, the
demo went off perfectly, as did the other demos from this session. (Unlike the first general session of the conference, but the less said the better.)
use JConsole ,
you should check out VisualVM.
Among the many other nifty things in this session, I liked the
Bollella built to show off Real-Time Java.
title="Greg Bollella shows his Real-Time Java contraption to James Gosling (photo by Yuichi Sakuraba)">
Little coloured balls circulate through the plastic tubes,
occasionally encountering pinball flippers or
machine . Eventually each ball falls past a colour detector
and into a sorter. The Real-Time Java system has to flick the
right switches while the ball is in free-fall so that it ends up
in the right bin. Plain Java wouldn't be up to the job (what if
a garbage collection happened at just the wrong time?), but
Real-Time Java is. The box at the bottom of the picture is Project
"Blue Wonder", a collection of Sun technologies suitable for use
in industrial control processes. You can see more details in the
of this part of the session.
But the thing that impressed me most, along with most of the
people I was talking to, was
smartpen. It records your pen movements as you write and can
upload them to a computer to reproduce what you wrote. It
records ambient sound at the same time and can upload that as
well. If you go back to something you wrote and touch it with
the pen, the pen can play back the sound from the time you were
writing. You can also search through your writing on the
computer (handwriting-recognition algorithms seem to have
improved without bound since the last time I was paying
attention) and play back there the sound from what you find.
There were some other nice demos: drawing a toy piano keyboard, then having
the pen sound the notes from the keys you touch; or touching a
word with the pen and having it pronounce the equivalent word in
Arabic. But even without these I thought the pen would be
invaluable to anyone who has to take notes often, for example
students. It's not even very expensive: $149.
Jeff bought one
for his wife (one can't buy such trivia for oneself of
course) and she's apparently very happy with it. The pen needs
special paper, but I noted with approval that Livescribe will be
making software available so that you can print it yourself if
you have a good-quality printer.
Well that's it from me about JavaOne for this year. Back to
more mundane blogging...