Selling Snakes with Huckster
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 href="http://www.javadesktop.org">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
- 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
-This time the image is used for the slide's background
And here's the
same tiny presentation exported as HTML
(just images really) so you can have a look.