Archive for January, 2006

Classpath Update

Classpath
hit 98% of 1.4 today
, and I think we’ll see another big bump
tomorrow since the XMLEncoder patch went in today. I think we’re in
the 90s against 1.5, though it is hard to say since there hasn’t been
a branch merge in quite a while. Of course, japi isn’t the final word
on how we’re doing, which is why Mark is going to talk
about this at FOSDEM
.

The coming year looks as though it will be a very good one for gcj
and Classpath. I think we’ll finish 1.5.

Netx Hacking

I’ve been doing a little hacking on netx lately.
netx is a java web start implementation; this is a way of bundling a
java application so that you can click on a link in the browser and
have the application automatically download and execute. I set out to
make netx a bit friendlier for Linux use.

My first goal is to make it integrate more nicely with the panel
and the desktop. My idea was to make it so the user can drag a JNLP
link from Mozilla to the panel, and netx would invisibly download the
application, install it, and make a .desktop file for future launches.
The reason to download immediately is that this lets you disconnect
your laptop from the network and still have the application work.

I’ve got a patch to let netx download the application and make a
desktop file. This works great. I’m not sure how to do the next
step, namely integrate with Mozilla and the panel; something to
research.

My test app, by the way, is iRATE radio, which is pretty
cool and worth a look. Thanks to Anthony for pointing it out to
me.

The next idea I had was to make netx a bit friendlier if the
network isn’t up — instead of trying to update an application and
timing out, it should use DBus to discover whether the network is up,
and, if not, skip the check. I looked at the Java DBus bindings and
I don’t see any big problem here, except that I’m still running DBus
0.50 and the bindings want 0.60.

My final thought for netx was to have it gcj-compile jar files as
it downloads them. This isn’t super-friendly though… what I would
really prefer to see here is a push forward on gcc+llvm, so we could
have both AOT and JIT compilation for gcj. More on this later.

Trying VEP

I spent yesterday hacking on medi8 a little. I got thumbnails
working again as well as they ever did — meaning that we show some
image that is somehow related to your movie, just not the right
ones.

I also rewrote the monitor widget using VEP, the visual editor plugin
for Eclipse.

VEP has a couple of unusual features. First, it is not specific
to a particular widget set. It comes set up to handle AWT, Swing, and
SWT, and supposedly you can add your own toolkits to it as well.

Second, VEP uses the Java DOM that is built by Eclipse. All GUI
editors face a fundamental problem: how to represent the generated UI
in the user’s code. These days the consensus approach seems to be to
create an XML file describing the UI, and then provide a library that
turns this into a widget hierarchy. VEP’s approach is to understand
your source code; you can edit the VEP-generated code and it will
preserve your changes even while you modify the GUI.

So, this is cool and high tech. I’m not in a very good position
to say how well it works in practice; my edits were limited to adding
event handlers to buttons. It was able to recognize my own home-grown
widget as a bean with no fuss, and I was able to build a little
monitor widget with VCR-like controls pretty quickly, and without
knowing anything useful about SWT. … but that is about what I’d
expect.

However, VEP still has a long way to go. The handling of widget
layout leaves a lot to be desired, I had a lot of trouble figuring out
how to make it work. You have to know that the “layout” property of a
bean is editable in this general properties view, and then muck with
the settings there; sometimes it pulls up a dialog for you to mess
with. VEP could take a huge usability lesson from Matisse here.
Ideally I barely want to deal with layout at all.

Also VEP has an unusual implementation in another way — it runs a
second JVM to display your widget tree as you edit it, and then it (as
I understand) screen scrapes this to show you what you are editing.
This doesn’t perform very well and at least on my machine results in a
VEP window permanently hiding near the bottom of the screen.
Eww.

Really Big Birds

This morning I noticed that whenever you see a movie or read a
book including really big birds, I mean birds that are so big that you
can saddle them and ride them, the birds are always raptors of some
kind. But why not gigantic ducks? Or enormous flamingos with 30 foot
legs?

The Gift of Therapy

I just finished The Gift of Therapy, which Yalom describes as an open letter to
the next generation of therapists. I thought this book was
fascinating and Elyn and I have had a number of conversations about
it.

I also recommend reading Love’s Executioner or Momma and the
Meaning of Life, both of which are collections of stories about
therapy and don’t assume as much knowledge of what therapy is about.