Simon 3.1 alpha testers wanted

I've been working on the next update for Simon, my flagship app to check websites and servers for changes or failures. Version 3.1 is quite a big change, but almost all of it is "behind the scenes".

The biggest change is a redesign of the data storage. Previous versions store all tests in a single XML file, which is read in at launch and written out periodically. This is simple, but can be a little slow when there are lots of tests. Similarly, service, filter, notifier and report data each have their own XML file.

In version 3.1, I've redesigned this to use Apple's high-performance SQL-backed Core Data framework. So now it loads much faster, and only needs to write out individual tests when they are changed, rather than all of them.

Not only is this faster, it also enables planned future functionality, like splitting the app into multiple processes to avoid using up resources with lots of active tests, the ability to edit settings for multiple tests at once, and much more. It's an investment in the future.

But because migrating Core Data models can be a hassle, I also write out the tests etc as file packages. The data folder now includes folders for Tests, Services, etc, each of which contains a file package for each individual test etc. The package is actually a folder (which can be examined via the Finder's Show Package Contents contextual menu item), containing an XML file and a folder of logs, also stored as XML.

This means that when I change the Core Data model, Simon can simply discard the Core Data cache, and read in the file packages instead. Updating the XML format is much easier to remain backwards compatible. And since Core Data knows when individual tests are changed, Simon only needs to write out the XML in the packages when a test actually changes. I've measured it, and that adds a negligible amount of extra time to saving (still way faster than writing out all tests each time), and gives the migration benefit, plus enables storing larger data in the package, and in the future will have other benefits like Spotlight searching, sharing data, and more.

Anyway, if you're still reading after all that somewhat technical detail, you might be someone I'm looking for! Since changing the data storage is a big deal, and has involved a lot of changes to Simon's internals, I would like to get a few keen Simon users to help test the update before I unleash it on the world.

So, if you are interested in helping me test Simon 3.1, please contact me. The alpha release of Simon 3.1 will only be made available to a few people, but I expect interest to be limited, so don't hesitate to volunteer.

Worried about risks? It's pretty safe. Simon 3.1 doesn't touch the old large XML files of 3.0 and earlier, so worst case the new data files can be thrown away and you'll revert back to the state before upgrading to 3.1. So the only risk is that you could lose changes made in 3.1. Plus, of course, the risk that you could get spurious notifications, or miss notifications, if something goes wrong. But everything seems to work okay in my testing, other than a few minor issues I'm still tidying up.

Once Simon has had some more testing, I'll do a public beta release, probably in a couple of weeks, depending on the amount of testing the alpha gets, and what issues may turn up.

I'm looking forward to hearing from you!