I’ve moved my blog!

August 21, 2010 Leave a comment

My new blog can be found at blog.davekoelle.com. Please read my latest thoughts there!

Categories: Uncategorized

The return of my blog!

December 18, 2009 Leave a comment

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!).

My Alphanum algorithm for properly sorting strings that contain numbers has garnered additional attraction through StumbleUpon.

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!

Categories: Uncategorized

Alphanum algorithm posted to Reddit

December 11, 2007 2 comments

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.

Categories: Usability

Windows Live Writer rocks!

November 10, 2007 1 comment

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!

Categories: Uncategorized

The reviews are in: JFugue is a hit!

May 30, 2007 1 comment

At this year’s JavaOne, I presented JFugue to an audience of 136 people (Session TS-1130). I’m pleased to report that I’ve heard favorable reviews all around!

Geertjan Wielenga, my co-presenter who demonstrated his Music NotePad (backed by JFugue), had this to say (Link):

“[…] 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.

Categories: Development

Animation, Filthy-Rich Clients, and the Rebirth of Java Swing

March 22, 2007 1 comment

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!

Categories: Development

Just saw the One Laptop Per Child prototype

March 3, 2007 1 comment

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.


Categories: Uncategorized

I’ll be speaking at JavaOne 2007

February 28, 2007 Leave a comment


I am excited to announce that I will be speaking at JavaOne 2007, May 8-11, in San Francisco. My technical session will discuss JFugue, my Java API for Music Programming, and I will also get into API Usability.

Geertjan Wielenga, who used JFugue to create the NetBeans JFugue Music NotePad – and to whom I owe an enormous debt of gratitude for encouraging me to submit a speaking proposal to JavaOne – will be speaking with me, and he will discuss the ease of using JFugue in developing the Music NotePad.

In related news, I’ve been putting a lot of work into the latest release of JFugue, version 3.0. It’s taken a little longer than I had planned, but it has also exceeded my expectations and I’m incredibly pleased with it. Typically, I’m more of a fan of frequent, incremental software releases, but for this version I decided to make one big release, since I was making a number of substantial changes to the underlying architecture. I’m also working on a book, “The Complete Guide to JFugue”, which I will sell on the website – hopefully people will buy it as a way to show their support for such a wonderful API!

The new feature list is amazing – JFugue will let developers play with music in ways that have never been so easy. At the same time, I have maintained the same simple, easy-to-use API for specifying and working with music. Most users won’t have to change a thing when they upgrade to JFugue 3.0, and now there’s an extraordinary potential for people to programmatically play with music.

The new release – and new JFugue website – will be released soon, and I’ll be sure to post again when it’s up!

Categories: Uncategorized

Guy Kawasaki on Stupid Things and Marketing Podcasts

January 29, 2007 Leave a comment

Guy Kawasaki has published a new article on his “How to Change the World” blog on ten (actually, 14) stupid things ways to hinder market adoption. If you want to make sure you don’t lose web visitors for banalities that have nothing to do with your content, be sure to read this.

A couple of weeks ago, Guy also posted a list of his Top Ten Marketing Podcasts, which focus on social media. Included are podcasts from such notables as Seth Godin and Robert Scoble.

Categories: Marketing, The Consumer

Star Trek Legacy: Waiting for Disappointment

December 23, 2006 1 comment

2006 marks the 40th Anniversary of the first airing of Star Trek. To honor this occasion, Bethesda Software has released three Star Trek games; this year. The one I was most eagerly anticipating was Star Trek: Legacy.

Months ago, I made a note to myself: Check this game out when it’s released on November 7! But alas, the Nov. 7 date slipped, and the new release date was scheduled for Nov. 21. So I eagerly awaited that date. And it slipped again… now Legacy would be released on Dec. 5. At this point, my software sense was tingling. If they had to postpone the release date twice, by two weeks each time, something was amiss.

Finally, the game was released. I checked out some of the reviews. Pretty much everyone agreed [Gamespot, IGN] that the game was only mediocre. While the graphics are absolutely stunning, the reviewers cited frustrating control problems, and the inability to save during long missions.

What went wrong? Why will the cornerstone of Bethesda’s 40th Anniversary offerings, a visually gorgeous game that features the voice talent of all five Star Trek captains, suffer poorly in the consumer market because of something as banal as frustrating controls and an inability to save your place?

And why was the game delayed twice, for a total of four weeks?

I’m sure I will never know the answers to these questions, but I would love to be a fly-on-the-wall at Bethesda’s postmortem. But even though I’ll never what really went wrong, I can offer these tidbits to other software and product developers.

If you need to delay your deliverable, make it count. Don’t ever delay a software release by two weeks. There’s probably nothing that you can fix in two weeks that you can’t fix by pushing harder during the available time. If you do have a lot of stuff you need to do and you really do need to push a release date, push it longer – maybe four weeks. You’ll make changes during that time that you’ll need to QA. You’ll want to make sure you do things right, not just fast. Pushing a release date by two weeks sounds to me like the developers need two weeks more… but what about testing all of those late-night, coffee-induced fixes?

Test the game with users! How could they have possibly missed on frustrating controls? That is probably one of the easiest things to anticipate and fix. Conduct thorough user evaluation; offer people free copies of the software after it is released; don’t be afraid of showing the software before it’s complete. Same for the lack of a “save” option on long missions, and for missions that require superhuman feats – these should have been caught early.

Consider your audience. Hard-core gamers can probably deal with frustrating controls, and probably don’t mind playing through an hour-long mission for the third time. But how many hard-core gamers are interested in a Star Trek game? The market here is probably slightly older and more casual about gaming.

Finally, my own pet peeve that has nothing to do with broken schedules or unflattering reviews, but has everything to do with disappointment: The world isn’t all about shoot-em-ups, particularly in the realm of Star Trek. Some of the reviews (I cringe to go get a copy now) say that, until a point, much of the action is space shoot-ups. But to me, Star Trek was always about diplomacy, exploration, discovering new things. stretching one’s thinking. I would LOVE to see a Star Trek game where you come across some new form of life (viz “Encounter at Farpoint” or the Exocomps) than shooting holes through Klingon cruisers (although there’s a place for that, too).

Well, there you go. Hopefully the next time I anticipate a software release, the developers will have read idea2product first!

Categories: The Consumer, Usability