Alphanum algorithm posted to Reddit

December 11, 2007 - 2 Responses

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.

Windows Live Writer rocks!

November 10, 2007 - One Response

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!

The reviews are in: JFugue is a hit!

May 30, 2007 - No Responses

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.

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

March 22, 2007 - No Responses

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!

Just saw the One Laptop Per Child prototype

March 3, 2007 - One Response

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.

olpc-features.png

I’ll be speaking at JavaOne 2007

February 28, 2007 - No Responses

2007javaonebanner.jpg

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!

Guy Kawasaki on Stupid Things and Marketing Podcasts

January 29, 2007 - No Responses

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.

Star Trek Legacy: Waiting for Disappointment

December 23, 2006 - No Responses

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!

Usability and the Power-Up! 1GB MP3 Player

December 1, 2006 - 15 Responses

I just received a Power-Up! 1GB MP3 Player at the low, low price of (once I complete the rebates) $9.99 from TigerDirect. Hooray! I figured that even if the MP3 capabilities were poor, I’d still have a 1GB USB drive at a killer price. But I didn’t expect the user manual to be so… unusable.

Pass to presss “Mode” key can enter to all level menu, the menu is divided into main course single (the ceasing is to grow to press into), broadcast of submenu (short press into) with submenu (short press into) that stop the hour.

I think I would have had an easier time if they kept the manual in the original Chinese.

Casting the user manual aside, I attempted to figure out the device on my own. I couldn’t get past the first screen - the aforementioned menu with the main courses. Well, the main course I wanted was “Music”, not the Voice Recorder, the Recorded Voice Player, or apparently the Telephone Directory. But I couldn’t figure out how to order the main course.

There are only a few buttons on this device (here’s an image):
- A Hold button, to pause a playing song
- A Volume +/- paired set of buttons
- A big ol’ Play button
- A Mode switch, which rocks to the left and right, and snaps back to the middle when released

It was obvious that the Mode switch lets you traverse the, um, main courses. But I couldn’t for the life of me figure out how to select what I wanted. I tried the big Play button - nothing. Maybe the Hold button? I doubted it, but I tried it anyway. Nope. Couldn’t possibly be the Volume buttons, right? Nope.

Then I re-read the manual. “Short press into”. Could it be… nahhh.. but I tried it anyway. Yes, the Mode switch, which so clearly rocks left and right, can also be pressed in. Where’s the affordance?

At this point, my manual translation skills are finally coming up to speed, and I notice something else: “grow to press into”. Oh no. They can’t possibly mean… Oh, this is horrible. There’s a difference between a long press and a short press of this Mode switch that has no indication that it can even be pressed in the first place.

AND… (ohmigod, I should have been less cheap and bought an iPod)… the function of the short press / long press differs depending on the current mode. If you’re listening to music, a short press brings up a file manager, and a long press brings you back to the menu (you know, with the main courses). If you’re recording your voice, a short press starts the recording, and a long press ends it. And there about 5 modes (i.e., main courses)… so, that’s 2^5 functions I have to remember for this button.

It’s very difficult to press the mode button without inadvertantly moving the switch either left or right. There’s a very good chance I might accidentally “Delete All” instead of “Exit” in the file manager.

Finally, for your amusement, I thought it would be fun to share some other features of this product. The light that shines on the LCD screen cycles through red, yellow, green, cyan, blue, and magenta with every button press. The player came with Lionel Ritchie’s “Say You, Say Me” and The Carpenters’ “Yesterday Once More” pre-loaded - with lyrics, which scroll by on the screen. It takes an insanely long time to copy files over, despite the USB 2.0 interface, and so far I can’t seem to copy over more than 500MB. Finally, the sound quality is abysmal - it’s very tinny, which not good for my hip-hop habit.

But hey - for $9.99, I’ve got a 1GB USB drive!

Paul Graham: The 18 Mistakes That Kill Startups

November 15, 2006 - No Responses

Paul Graham has posted an essay on The 18 Mistakes That Kill Startups. Graham hits a bullseye when he claims that a big mistake that startups make is that they don’t make something that users want (After all of my usability posts this week, I feel like I want to leap into a Steve Ballmer chant: “Users! Users! Users!”).

If you are creating something that users want, then the 18 mistakes are mostly business-oriented shortcomings: too little funding, too much funding, launching too early, launching too late, spending too much, and so on. (Interestingly, one mistake, “Single Founder”, is not possible in Massachusetts, where a company or LLC needs at least two founders)

As always, I find Graham’s essays to be a worthwhile and informative read. Here’s the index of his essays for your viewing pleasure.