FoCal is some potentially useful software which performs focus microadjustment for some Canon cameras, automatically. The obvious major flaw is that it's currently Windows only, but the developer has promised a Mac version in future - and if you buy a key for the Windows version now he says that it'll work later for the Mac.
Having bought the Windows version, the next challenge was how to run it on my MacBook. It turned out there was only one answer - Boot Camp. While FoCaL ran in virtual machines on both VMWare Fusion and Parallels, it couldn't see my 7D. I don't think that's FoCaL's fault, as Canon's EOS Utility couldn't either. I blame the virtual machine software. In summary - neither VMWare or Parallels are up to the job, so Boot Camp it was.
FoCal wouldn't start until it had updated .NET - even though I'd just updated it from the Microsoft website. For someone who usually uses Mac software, running software designed for Windows was rather a shock. I'd forgotten how clunky, and frankly how ugly, Windows software can be.
And so to the FoCaL interface - which is functional, but plain. It lags a bit and is a touch unresponsive (on a MacBook Pro, 2.66 GHz i7, 4GB RAM), but that could possibly be put down to running inside .NET. The buttons are big - but the text is small. It does seems like that would be a simple interface issue which could be improved.
But does it work? - It appears that it does.
I set out to calibrate lenses for my 7D using the plus version of FoCaL. Using the provided target, printed on an inkjet, it's easy enough to position a camera on a tripod. It's then just a matter of hitting the autocalibrate button, and off it goes. Around three minutes later it's diagnosed what the appropriate adjustment should be, and offers to reprogramme the camera.
I calibrated 5 lenses, ranging from focal lengths of 15mm to 250mm in less than half an hour - and they all appear to be getting better focus.
So - the software seems to work. It's just very unfortunate you need to use Windows (and a real Windows installation, not a virtual machine) to run it.