Imagine if, for example, the hypervisors that run EC2 were compromised - imagine almost every business you deal with online compromised, all at once. This is the never-talked-about problem with the cloud - over on my timboudreau.com blog.
Bunyan is a NodeJS library that rethinks logging in some really useful ways. I wrote a Java port you can use in your applications. In particular, with Bunyan, logs are JSON - and Bunyan comes with a great filtering and analysis tool. The Java port uses some innovative techniques to make logging simple and foolproof - in particular, a use ofAutoCloseable to make a logging code simple and foolproof. A walkthrough on my real blog on timboudreau.com.
Visual Library is a library in NetBeans, which you can use in standalone Java apps, for doing beautiful, complex, animated layouts. JUNG is a library for exploring graphs of connected data. What if we put those two things together? That's what I did. The result is on GitHub. Video demo and more info over on my timboudreau.com blog.
Have you wanted to do something with asynchronous I/O? I did. After doing some work with Node.js, I wanted to find a way to get some of the goodness of its programming model for Java. The Acteur project is the result - a framework for building scalable, asynchronous web applications using Netty + Guice - was the result. The programming model is a little unusual - you treat constructors as function-objects. Read more over on my new blog, or check out the (just finished!) tutorial on GitHub.
So I haven't posted a blog here since 2009 - and haven't work for Sun or Oracle since early 2010. It's been a wild few years working on a number of things as diverse as giant clouds to control software for cameras which go down oil wells. And I have a new blog at timboudreau.com, naturally using a blog engine I wrote myself (I gave myself a project to learn node.js). Currently I'm architecting a Hadoop-like job-distribution thingy using node.js and C for a company that does search software. I'm still doing open source software, and still doing a lot of Java (though node.js is giving it some stiff competition - but really it and Java are good at very different things). Here are some of the things I've been working on and writing about:
where the number of pages, their contents and IDs are provided by applet parameters which the applet interprets. And yes, it's got some unobtrusive but cool looking fades and and other JavaFX sexiness.
Neater still, it has a provision for server-side validation of the components. This took a little doing (some Java code that starts a background thread, and a Java interface for running it and performing callbacks which is implemented over a JavaFX class) - so when the user stops typing into a field for a few seconds, the applet can communicate with the server (presumably using the same mechanisms as Wicket's built-in AJAX support); the little "o" you see beside each text field shows whether the data is good or not, and while the background part is running (currently just aThread.sleep() - I wanted to see if I could get this working at all).
But while what I've got is a really rough prototype, it proves you can do it (yes, you can do similar things with AJAX, but well, it's AJAX :-)).
Now, whether the world has any use for this is another question - but it could be interesting to make generic data entry applets with lovely UIs, which could simply be embedded in a Wicket component (and skinned with your site's own CSS - though this actually seems to be a little broken in JavaFX at the moment). Drop the component on your page, and, voila.
Now, of course, the hard side is the server<->client communication - that's next. Or maybe I'll take the weekend off...that would be unusual :-)