Friday, August 25, 2006

These are a few of my favorite things

No, I won't be talking about "raindrops on roses" or "brown paper packages", but rather a set of software tools I have found I cannot live without. Well, ok: I won't die or something, but if I have to use a computer without the following installed, I get very frustrated:

  1. Servant Salamander

    • The next step after the good old Norton Commander, this Orthodox File Manager (OFM) allows me to perform file operations faster than Windows Explorer or any command-line I have ever used.

    • This is the software that keeps me on Windows and the best $30 I ever spent. I have yet to find anything that equals it for other platforms, although Krusader comes close and Midnight Commander still feels as akward to use as Norton Commander does after trying Servant Salamander.

  2. SciTE
    • SCIntilla-based Text Editor. Syntax-highlighting, auto-completing and folding compact editor. I use it to edit every text file when I'm not using Visual Studio. Look for the occasional patch from yours truly on their mailing list.

  3. Maxthon
    • Internet Explorer with tabs and stuff! The single best feature is the download control, which allows me to turn off, by default, JavaScript, ActiveX, Java, sounds and videos. This makes it really easy to surf safely and only turn those features you need when you trust the site, although a persistent "safe list" would be really nice for those sites I visit often.

    • Some of you may point out that Firefox also has tabs and a similar script disabling facility (which does support a safe list), so, err..., until I can configure it to have an experience like I have in Maxthon (which is a similar problem I have with most OFMs), I'll stick with Maxthon a little longer.

  4. Net Transport (NetXfer)
    • Fantastic software for downloading files. I use it primarily to queue up and throttle downloads, but it's also super at preparing batches of downloads through its browser integration that scans the current HTML for links and allows you to pick which ones to queue up. It also supports tricky protocols and scheduled downloads. It looks like my wish for BitTorrent support has recently come true, so I'll be trying that new version out very shortly. :)

Next time, I'll post about other cool software you've never heard of, but this time I can sort of tolerate using a computer without.

Monday, August 07, 2006

Always provide a manual option

My wife and I picked up a friend from the Ottawa airport the other day. On our way out, we had to pay for parking at one of those booths with a mechanical barrier. Only when we paid, the barrier didn't go up. The attendant looked at us funny, saying: "Ok, you can go now", and we looked at him with an equally funny look saying: "Sure, just lift the barrier first".

After a few iterations of this, including the attendant's assurance he had pressed the right button (and hence the gate should be up), he realized maybe we weren't making it up (he's facing the other way) and told us he had to call someone else to get it open. That someone else eventually showed up with a set of keys and a screwdriver-like tool, which he proceeded to use to open up the mechanical barrier's box. This got the barrier to lift, apparently mechanically.

The RISKS? Well, you'd hate to have the power go out or have an emergency of some sort, since it can obviously fail. Those gates should use a mechanical assist -- thus allowing a human being the option of lifting the barrier themselves -- instead of a completely mechanical drive, just like most garage door openers have that dangling string you can pull on to switch to "manual mode".

Since this blog is about software, ummm... the lesson is the same! Always provide a manual option or an override in software. It's no coincidence computers in movies always have an "override" option (although it's admittedly unlikely those people can somehow always get authorization to do so), but the message is clear; there's always a special circumstance where normal rules/validation conflict or aren't appropriate and thus should be temporarily disabled.

That is, if you want your software to be used. After all, business must go on and if the software refuses to accept unusual input (especially as the business evolves), then people will work around the software and use it less and less.

So think about this issue the next time you need to implement some sort of validation and make it more like guidelines.