Dec 7 2009

Quality Software @ Thirdi

I work at Thirdi Software, and one of the initiatives I started was a Quality Software @ Thirdi email newsletter and series of blog posts highlighting quality solutions to software problems. It’s mostly targeted at developers but there’s also some insights to be had for the quality assurance team and for project managers.

The posts were originally posted on Senses and reproduced here for archival purposes. They touch on a lot of basic information for software developers including software design, upcoming technologies and useful tips to make your life easier.

Check the Quality Software page for links to each article.


Nov 25 2009

Google Wave Giveaway

Does anybody want a google wave invite? Leave a comment and the first people to respond will get one.


Nov 23 2009

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.


Nov 22 2009

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:~/


Nov 15 2009

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.