I know, it’s been too long. What can I say? I’ve been busy. Really, really busy.
A few weeks ago Cloudera announced our latest release of our Hadoop Distribution and the open sourcing of numerous projects that are part of that distribution. If you’re reading my blog because you care about JavaScript and stuff, this won’t be terribly interesting to you (if you’re into distributed computing though, that’s another story). What will interest you is that one of the things we open sourced is Cloudera Desktop, which is now the Hadoop User Experience (aka “HUE”).
Why is this interesting to you? Well, HUE is the thing I’ve been working on for over a year now at Cloudera and I can tell you that the JavaScript foo inside it is some of the most interesting stuff I’ve ever written. Here’s a little preview:
- JFrame: Essentially a JavaScript implementation of an IFrame. You assign a url to a DIV and now all links, forms, etc. load in that DIV. Click a link, the div updates. It powers the Ajax windows on the Desktop UI and allows us to build plain old vanilla web applications and load them into windows in the browser and they all act like their own little browsers. Because they aren’t really IFrames, you don’t have all that history session clutter, you don’t need to load all your JS and CSS for every one of them, and they can easily communicate with each other, allowing applications to spawn other apps and continue talking to them.
- Behavior: Anyone remember Behavor.js from 2005? Well, this script is a bit of a nod in the direction of that early JavaScript tool. What it does is turn vanilla HTML with some declarative mark-up into interactive, slick looking UI goodies. For example, there’s a Behavior Filter for forms that make them submit via Ajax – the filter just finds any form tag with an HTML5 data attribute that looks like <form … data-filters=”Form.Request”>… and configures an instance of Form.Request for it. Same thing for sortable tables, input hint text, and other UI widgets.
- MooTools ART: HUE makes a liberal use of MooTools ART for windowing, nice looking buttons and inputs, icons and more. There’s still a lot of CSS stuff going on of course, but HUE looks as good as it does in large part due to ART. The code is pretty stable. You can download and play with the ART Widgets to see how it works. Before we can release all this stuff though we need to document it all and so it’ll likely be a while longer before there’s an official download on MooTools.net.
There are some more detailed posts about HUE on Cloudera’s blog, one that gives a nice overview of what it does and one that I posted today that gives an overview of how to develop your own applications on it.
It’s worth noting that HUE, as it is right now, is focused on supporting application development for the Hadoop ecosystem, but there’s nothing stopping it from being used for something else. The Desktop system itself doesn’t depend on Hadoop. If I had the time to make it stand alone I’d call it the MooTools Desktop. If you find yourself wishing you had such a thing, don’t hesitate to fork the code and work on it or to hop on the HUE Developer Google Group to ask questions or make suggestions.
Now that most of my work is open source I hope that in the coming weeks and months I’ll be able to post more often. When ART is released I’ll probably write about how to use it more. Right now the Behavior framework is part of the ART-Widgets repository but maybe I’ll release that sooner if enough of you are interested in it…