Simon 2.6 progress report

Since people have been asking and are eagerly awaiting the forthcoming Simon 2.6 release, I thought I'd give a progress report.

Simon 2.6 is coming along nicely. Software development takes time, and the filter feature is quite complex, but the infrastructure is finished, and the Block plugin (which implements the existing Smart Change Detection and more) is done, plus Script plugin support is implemented and being tested now. I then want to add a couple more plugins, though I might do an alpha release once Script is finished.

Here's a teaser screenshot of some filters used in the Edit Test window; notice specifying the input text for each, and advanced options on the second filter (the third one doesn't actually have any additional effect; the Block filter detects changes too):

And the Edit Filter window showing a Script-based filter, which will look familiar to existing Simon users, since it's quite similar to Edit Service etc:

As useful and powerful as the new filter feature is, it isn't the only change in 2.6 by a long shot.

Here are the current release notes, as a sneak peek of the goodies coming in this new version. More stuff will be added before the first beta release, too:

Filters:

  • Added a new Filters feature, replacing the old Smart Change Detection feature in the Edit Test window. The Block filter performs the same function as that old feature, plus several other filters are supported to do other analysis of test output, and you can write custom scripts to create additional filters.
  • Added a Filters window listing the available filters, and enabling adding, editing or deleting them.
  • Added an Edit Filter window to add and edit filters, much the same as the Edit Notifer etc windows. It includes options to configure how the filter is used, plug-in-specific controls, and auto-pause settings.
  • Added a Block filter plug-in to support the old Smart Change Detection functionality. It extracts a block of text between specified start and end text.
  • The Block filter also supports new options to search from the start or the end of the input text, and search for a specific occurrence of the text, e.g. start from the 3rd occurrence from the end of the text.
  • Extended the Script plug-in to work as a filter, too. This enables you to create your own custom filters using AppleScript, Perl, PHP, Python, Ruby, or unix shell scripts.
  • Added a checkbox to the Script filter editor to control whether to merge or override the result of the script with the status of the service and any previous filters.
  • Added a VariablesCSV variable, that outputs a comma-separated list of all other variable names. Potentially useful when debugging your scripts.

Services and Notifiers:

  • Enhanced the Web (HTTP) service plug-in to include checkboxes in the Cookies table: checked cookies automatically update their values (as before). Cookies with blank values are now also supported; they are not sent. New cookies are recorded automatically. So you can prevent a cookie from being recorded by listing it with an unchecked box, e.g. to send the same value every time. Session cookies are now recorded as unchecked with blank values (so are not sent or updated).
  • Reworded the TestStatusPhrase variable to eliminate the word "just", since the event may have occurred a while ago, if it is an ongoing failure.
  • The new VariablesCSV variable is available for services and notifiers, too.

Other:

  • Added a File > Save Log... command to enable saving the current log information to a tab-delimited text file. It saves just the selected lines if there are at least two selected, otherwise all lines. (You can already copy selected lines, too.)
  • Separated the Pause and Resume commands in the menu and toolbars, so it is easier to pause or resume all tests when there is a mixture of paused and active tests.
  • The Pause interval is now remembered as a default for next time, even across launches of Simon.
  • Added optional support for Wi-Fi hotspots. When enabled, Simon tries to fetch a known value when it is first launched or after the Mac wakes from sleep, and goes into a "hotspot" mode if it receives something unexpected -- probably a hotspot login page. This will avoid having false failures when you have an internet connection but need to log in to the hotspot. This feature is disabled by default, but can be enabled via a new General preference if you have Simon on a laptop.
  • Sorting on the Status column in the Monitor window now sorts so checking is at the top, followed by failure, changes, recovery, and paused at the bottom (with time-sensitive statuses in chronological order).
  • Improved handling of sorting all table columns.
  • Many other behind-the-scenes improvements made possible by dropping Tiger support.
  • Now requires a minimum of Mac OS X 10.5 (Leopard).
Additional planned filter plugins include:
  • Keyword: looking for a single bit of text.
  • Regular expression: using regex to match text.
  • Number: detect if a numeric value is greater or less than a reference value or the previous value, optionally by a threshold amount.
  • Link Validator: check for broken links on a web page.
  • Concatenate: combine the results of two filters.
  • Result Override: change the status (failure, unchanged, changed) into another status.

Some of those might be deferred till a future release, depending on how long they take. But with the Script filter, you'll be able to create your own filters as easily as you can create service and notifier scripts.

I hope you're as excited by Simon 2.6 as I am! It'll be a great release. Follow @dejal on Twitter, like the Dejal Facebook page, or read this blog for more news on development progress and the forthcoming alpha and beta releases.