What is Quality Software

I’m a software developer and one of my major focuses and motivations is to develop quality software. I refuse to build software that is hacky, down right crummy or falls over under a bit of stress. Yes I live in the real world and sometimes deadlines demand shortcuts, but most of the time I’m very proud of the software I create.

So what are the visible user centred differences between high and low quality software?

It’s quite easy to see when software is shoddy. This could be OEM bundled software, custom intranet applications, or even a well known enterprise product that has taken over the market. I’m sure you have memories where software blue screened or stopped working before you could save the document. Applications that were not throughly tested by QA and were not written with a clear understanding of the business requirements are loaded with bugs. When these software applications are used in the real world the bugs appear and cause intense frustration to the poor users.

The applications we use that are true quality are the ones that we hardly notice. Quality software has an intrinsic property of not getting in the way and allowing the user to focus on their action, instead of focusing on the application. It’s as simple as that.

Using Ubuntu for Time Machine in Snow Leopard

Over a year ago Matthias Kretschmann posted an excellent guide on how to use Ubuntu as a Time Machine backup server. The guide is quite well written all the configuration steps worked, but I received Error 45 creating backup disk image when Time Machine ran. Some more research revealed that this is because of changes to the sparse bundle image in Snow Leopard.

To make it work I had to create my own sparse bundle with a plist file in it to associate my MacBook’s unique id with the time machine image. Leopard and earlier releases of OS X would create a sparse disk image with the name from the network cards mac address, but in Snow Leopard it uses the computer Hardware UUID. I imagine this is because notebooks can have more than one mac address, one for wired and one for wireless.

How to create a sparse bundle in Snow Leopard

Step 1: Create the disk image with your computer’s name:

hdiutil create -size 500G -fs HFS+J -volname 'Time Machine Backup' -type SPARSEBUNDLE computer_name.sparsebundle

Step 2: Create a file called com.apple.TimeMachine.MachineID.plist inside the sparsebundle folder and fill it with the following:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.backupd.HostUUID</key>
    <string>UUID_STRING</string>
</dict>
</plist>

Make sure you replace UUID_STRING with your unique machine identifier. This can be found by loading System Profiler (Hardware UUID).

Step 3: Transfer the sparse bundle disk image to your Ubuntu computer:

rsync -avP computer_name.sparsebundle username@ubuntumachine:~/

Learning WebGL

If you’re interested in programming graphics on the web I recommend subscribing to Planet WebGL; it has a lot of great tutorials and instructional material for learning how to program graphics in a web environment.

WebGL is technically a JavaScript binding to OpenGL ES 2.0. If you already know OpenGL ES and JavaScript, you should be able to pick it up pretty quickly. If you know JavaScript but not OpenGL and are in a web development career, I encourage you to look into WebGL because it could be one key component of interactive web applications in the future.

Click-to-Run Software

With Microsoft launching a click-to-run version of Microsoft Office 2010, I can’t help but think what a great idea it is. Many applications are moving to the web and I do see the web as the future of software development, but I think there is still a need for traditional applications written in a compiled language.

Click-to-run works by a user clicking on a website link, which then runs an small program to download the latest version of the application. When that’s completed the application starts up for the user. With no install process and no worrying if an existing version of Office is already installed, it’s quite a nice scenario for the user.

The application download process definitely seems to be the worst part of click-to-run at the moment. On average it will take about 5 minutes to download the application, but that can certainly be improved.

While similar, Office 2010 doesn’t compare to Google Office. Yes the online office suite from Google does 95% of things you’ll ever need, but the last few percentage points have some critical features that are required in the workplace.

Aside from an office suite, I can see computer game demos as being prime click-to-run software. Software publisher could also use it to allow customers to try before you buy. This has rarely been said over the last few years, but hopefully other companies take a cue from Microsoft in this area.