Awasu » The soul of an engineer
Tuesday 17th July 2007 1:48 PM [General]

OK, it's official, I admit it, I have the soul of an engineer. Not that this is necessarily a bad thing - Awasu is a pretty solid program because of the development practices I have in place - but it's still kinda icky to have to admit it :-(

Now, I've never been a prototypical geek, gadgets hold no interest for me whatsoever, I do a lot of things outside of IT and anyone who's ever seen me perform live would never walk away thinking "man, he's such a nerd." But a couple of things this past week have left me scratching my head, mumbling "WTF was I thinking?!"

First up, jrmarino posted a question in the forums asking if there was some way to stop Awasu from trying to update channels if the computer was not connected to the net. Of course, there is (Auto-detect an internet connection), and so the obvious next question is why this isn't turned on by default.

You'd think it'd be easy to do but as it happens, figuring out if there is a working internet connection is insanely tricky. Awasu has to jump through quite a few hoops to do this and unfortunately, the process is not 100%-reliable (especially if you connect via a LAN). In other words, sometimes it will think it's online when it isn't, or worse, vice versa. Worse, because if Awasu thinks it's not connected, it won't automatically update any of your channels and will just sit there on your desktop like a fat lump.

So, when deciding what the default setting for this feature should be, I had to choose between two less-than-ideal options. Having it on means that Awasu will sometimes not correctly detect if there was a connection and thus not work properly, but having it off means that people like jrmarino have to struggle with Awasu blindly trying to update channels even when it's offline, barfing up error messages left, right and centre, until they find the Auto-detect an internet connection setting (if they find it at all).

The engineer in me instinctively recoiled at the prospect of having Awasu's default behaviour be "sometimes doesn't work properly" :roll: and so I chose to have it off by default but in hindsight, it should've been on since it works most of the time, while the problems jrmarino described are guaranteed to affect everybody who doesn't have an always-on, 100%-reliable connection.

In the same vein, I've just checked in another database optimization that makes Awasu simply fly. I've had the option of putting this optimization in for quite a while but haven't done so because there is a very small chance, if Windows crashes or you lose power at just the wrong instant, the moon is in the right phase and you happen to be looking to the left and up a bit, the archive database might get corrupted. Of course, Windows is fairly stable these days (since NT4, at least, the oldest version Awasu is supported on) and power cuts are rare so the chance of a corruption is pretty remote but again, to design things in such a way that a corruption could happen (and didn't have to) is anathema to the engineer in me. But Awasu running slowly affects everyone, all the time :-(

For the next alpha, this optimization will be turned on and we'll see how it goes, but even though my brain is telling me otherwise, I'm still loathe to turn these things on by default, knowing that they can sometimes not work properly. I mean, a database corruption is pretty serious, right? :roll:

What do you think?

2 Responses to this post

I'd love a flying Awasu - since the last version it's been far from that I'm afraid.
Would it be possible to add a built-in backup/restore tool (or even just an automatic reminder!) so that it wouldn't been much of a problem restoring a corrupted database?

Btw, I've had a lot of Internet connection problems lately, much of the time, and haven't experienced it as a problem with regards to Awasu.


>>> Would it be possible to add a built-in backup/restore tool

No need, you just need to backup some files as part of your (ahem) regular backup schedule.

Upgrade to 2.3.1.alpha1 since this contains some optimizations that already make a difference and I'll push out alpha2 fairly soon.

Have your say