My new blog can be found at blog.davekoelle.com. Please read my latest thoughts there!
Astute observers will notice that it’s been two years (almost exactly) since the last time I posted to this blog. I’d like to change that!
In the past, I tried too hard to conform to my blog’s theme, which was supposed to be about my observations and experiences in transforming innovative ideas into usable products. Starting now, I’ll be more unbounded in my posts. I might as well just call this “Dave Koelle’s Blog” instead of “From Idea to Product” – although I still insist that, in both my work and my personal projects, my expected end-state of an interesting idea is the development of a practical, real-world implementation that others find useful, usable, and enjoyable.
So, what’s happened over the past two years? I twice presented JFugue at JavaOne (making three times total). A JFugue-based tool, Log4JFugue, was featured in the September 2009 issue of PragPub Magazine as well as my 2009 JavaOne presentation. Log4JFugue is written by Brian Tarbox of Wabi Sabi Software (who presented with me at JavaOne). You can even learn more about JFugue on Wikipedia (thanks, JFugue user community!).
Other side projects have kept me busy over the past two years as well, like my polyhedra-building microhobby (the Great Dodecahedron and Great Icosahedron are my newest favorite shapes) as well as other endeavors. There’s always something interesting noodling around in my head!
Between 8:00pm and 9:00pm today, I had received four emails from people about my Alphanum algorithm for sorting mixed strings and numbers in a natural order (i.e., not ASCII). Weird, I usually get Alphanum emails every season or so, not four times in one hour! Something seemed to be afoot.
Turns out that someone had posted link to my page on Reddit (here’s the link). I think that’s the first time a page of mine had ever been blogged without me expecting it – not that I’m complaining, of course. I’m very glad other people are finding value in this!
Here’s my favorite comment thread.
I’m writing this post using Windows Live Writer (which I found out about through Jeff Chausse), and I love it already! I always felt there was a place for a desktop application that can help with one’s online tasks. There’s something different about launching an application from the desktop, versus going to Firefox, typing in a URL or going to a bookmark (which so easily become messy), and having to enter my password again. On a busy day, I’m more likely to just not bother with all those steps.
This desktop app is free, it’s got cool “Insert” functions (“Insert Map”, “Insert Video”, etc), and it’s nicely usable! I just feel so much more at home with a desktop app, as opposed to a web app that, despite all of the Web 2.0 advances, still feels like a contrived user experience that’s trying to hard to be something it isn’t.
Like Jeff, I highly recommend Windows Live Writer. A good idea turned into a great product!
“[…] it was up there with the best presentations I have ever attended. Dave Koelle was awesome. He presented the story clearly, coherently, with a touch of humor, and a lot of enthusiasm. The room, containing 136 people, as I later found out, was clearly totally engrossed in his story. I saw many nodding heads when Dave talked about the frustrations of MIDI programming. He had some great slides that showed long code listings of how things are done traditionally and how they are done with the JFugue API. And he played bits of music to illustrate his point, showing how the music was constructed.”
Michael Nascimento Santos reported (Link):
“From Thursday, I would like to highlight the excellent JFugue talk delivered mainly by David Koelle and with special guest star Geertjan Wielenga. David is a terrific speaker, his work is amazingly cool, his demos rocked and he managed to be funny. Geertjan […] focused on demonstrating how JFugue was simple to use, which just makes more people interested in his application and, well, NetBeans. So, another note to J1 selection team: we want more music-related talks, preferably with David!”
JavaOne itself was a blast. I met lots of interesting people, including many names in the industry that I’ve been wishing to meet, and forged new relationships. In addition, some of the technology was pretty cool, particularly SunSPOTs and some of the latest in Filthy-Rich Clients. JavaFX was cool, but I think it still needs a little work to complete with Flash and to integrate unidirectionally with Java itself.
As my follow-up act to JFugue, which brings easy music programming to the masses, I had already started work on another API that would allow for easy animation programming. Sprites and animated graphics are not trivial; like JFugue, my new animation API would make animation possible in only a few lines.
However, it’s possible that my animation API has been made redundant by some things I’ve seen recently on the JDesktop and SwingLabs sites. Specifically, Chet Haase has been working on a timing framework that makes animation (and other time-based control) easier. I’m pleased that Chet and I had very similar architectures for our timing mechanisms (including the use of interpolators). I might as well use his, since it’s already out there!
Switching gears ever so slightly, Romain Guy is one of the people behind Aerith, a very cool “smashup” (Swing mashup) of Google Maps, Flickr, and Yahoo’s geoocoding webservice. The UI is incredibly pretty, and it’s easy-to-create Web 2.0-ish client apps like this that will result in a resurged interest and appreciation for Swing.
Chet and Romain are working on a book, Filthy-Rich Clients (here‘s a related presentation), about these super-pretty user interfaces that use motion and animation to produce a more engaging user experience. Their book will be released in time for JavaOne – I am very much looking forward to getting my own copy!
Finally, I can’t mention all of that without also mentioning that Joshua Marinacci, also one of the Aerith guys, has been working on Painters, which are encapsulate bits of graphic code. Painters were used to do some of the neat Aerith effects.
So, what does this mean for my animation API? Well, it seems that there’s still no good sprite/graphic animation API out there. I think I’ll continue my development, but I’ll leverage Chet’s timing framework. And depending on how much time I have, you might get a sneak peak of my new API in action during my JavaOne technical session!
I just had a personal demonstration of One Laptop Per Child, thanks to my friend SJ [blog]. I am incredibly impressed – I have no doubt that this is going to revolutionize learning and knowledge across the world. Many other patrons at Z Square looked over our shoulders and asked about the perfectly-sized device.
This machine is amazing – and it has a bunch of features. I’ve taken the liberty of borrowing the image below from the OLPC Wikipedia entry – please note that the image is shared under a Creative Commons ShareAlike license. Just look at everything they’ve packed into the little wonder! The real amazing thing will be when this gets distributed to children in countries that don’t have strong libraries, educational facilities, and so on. Kids can take this, sit under a tree, and read any book they have on their computer, or peek at the workings of the programs on the system, or create ad-hoc networks with each other and share pictures and videos… the possibilities are really limitless.