Result Not Defined

Apple engineers have long had a delightfully twisted sense of humour. Way back in the early days of Macs, number crunching used a wonderful library of functions known as the Standard Apple Numerics Environment or SANE, when programming with it was often anything but.

One of SANE’s features was that calculations could return a value that was ‘not a number’, a NaN, and you may still stumble across software that, when you divide a number by zero, displays the result as NaN rather than Excel’s row of hashes. In some cases, particularly in those early days, the outcome of certain calculations could be ‘result not defined’, although no-one tried to form that into the inevitable acronym of RaND.

Over the years, fewer results in computing have remained not defined. However the otherwise welcome trend away from blockbuster printed manuals has started to reverse this. Not too long ago we were treated to thousands of pages of freely downloadable documentation for Mac OS X and Mac OS X Server. This seems to have dried up of late, leaving us to peer through a largely hidden labyrinth of Knowledgebase gobbits.

As a result there are a surprising number of features that are only minimally described, leaving us to stumble around in the dark. I have a lot of sympathy for those unsung heroes at Apple, the technical authors, who no sooner have got their helpful words around newly introduced features than everything changes in the next release. They must work in a strange world where painting the Forth Bridge meets Transformers.

On the other hand, in most matters computing, we can always experiment and find out for ourselves. This is quite different from medicine or physiology, where you cannot even try a quick lunchtime ‘what if’ on yourself any more. Pioneers such as Werner Forssmann, who performed the first cardiac catheterisation on himself in 1929, would now be sacked for breaching health and safety regulations, and the Curies would be incarcerated instead of laureated.

Sometimes such self-experiments in Mac use are rather more committing. Assuming that you too have become reliant on Time Machine’s elegantly simple backups over the last few years, when do you expect your backup disk to start running out of space?

Among the rumours and reports that I had seen are that this should not happen for many years, as older backups will be successively thinned to accommodate newer; older backups will be compressed to free up space; and older backups will just be trashed. Those with less confidence claimed that every backup disk will run out of space, causing Time Machine to crash, or to simply stop making backups to that volume.

Initial searches of the scant documentation proved unhelpful, and this smacked of being a ‘result not defined’ – hardly a good answer for something as vital as a backup system. I grew frustrated by Apple’s increasingly inconsistent approach to electronic documentation too. Mac OS X Server used to have the most extensive suite, although barren of illustrations unlike the gorgeous books that Apple used to publish.

The Xcode developer toolkit does still have copious documentation, and in many cases is the best place to look for answers to technical questions, but Time Machine is not intended for third party development. Apart from the rather fragmentary Apple Help, hardly conducive to in-depth study, more technical issues in OS X now seem quite poorly described in official material.

In fact Time Machine does the simplest and most conservative thing: it keeps making backups according to its hourly, daily and weekly regime, trying to thin out the oldest backups so as to keep ample disk space free. Only if that fails, and the backups grow until the volume is almost full, will it stop and leave you to find it another backup volume.

That sounds almost not defined, and certainly not in my control. Wouldn’t it be so much more friendly if we were given the option, perhaps to remove all backups prior to X months ago?

Updated from the original, which was first published in MacUser volume 24 issue 11, 2008.