If you've been hanging out here for a while, you probably already know that when things go quiet on the blog, it's usually not because I've disappeared to a tropical island somewhere for a few weeks R&R but because I'm back in the dungeons churning out the next release of Awasu (note to self: something wrong here, investigate).
And that is indeed the case. Over the years, the number of features that Awasu offers has increased dramatically and along with it, the number of configuration settings. Someone recently described the Awasu UI as "very powerful but daunting" and we couldn't agree more. So the next release will feature a dramatically revamped UI with a lot of things cleaned up and made tighter, less-frequently used options tucked away out of sight and a whole swag of new icons and images. It's looking really exciting and should be out Real Soon Now :-). We're just waiting on a few things from some third-party vendors and it'll be ready to go. It's been a mad effort to get everything done as quickly as possible because we've had a sudden slew of enquiries from a lot of companies wanting customized versions of Awasu (some extensively so) or to partner with us. So I've been trying to get this release completed in time for when these deals move further down the pipeline.
On a slightly related note, my esteemed colleague Nick Bradbury posted the other day about his recent drug-induced coding frenzy. The programmers amongst you will immediately understand what he's talking about, that totally immersed state you enter when you are completely in the zone, churning out thousands of lines of code and oblivious to whatever might be happening around you. I know I've been there many times, although never while doped up on drugs (that I can remember :roll:).
But for non-programmers, it's almost incomprehensible. The best analogy I can come up with is to imagine a computer program as a symphony score (I've long held that, often to people's disbelief, there are many parallels between computer programming and playing music, but that's another article for another day). A piece of software is a massively complicated machine, with a huge number of moving parts and dependencies between them all. Change one thing and it has a rippling effect throughout the entire program. This is one way bugs creep into a system, when somebody changes something without realizing the impact it will have on another part of the program. Indeed, one of the key principles of good software design is partitioning off the various bits of a program to isolate them from each other in order to limit this ripple effect.
But to get back to the analogy of software as a symphony, changing a single note for a single instrument has several consequences. The most immediate and obvious effect is that you might have to change what notes other instruments are playing at that instant in time in order for everything to still sound good. But the composer also has to consider how that passage of music hangs together as a whole. And then how it fits in with the entire piece. So changing a single note for a single instrument could have a cascading effect for many notes, for many instruments, for many bars, both before and after the one note that was actually changed! One can imagine Mozart furiously working one of his symphonies, adding notes here, erasing bits there, tearing whole sections out and re-writing them in a different way, all in an whirling effort to shape the piece into what he had in his mind's eye. That's computer programming!