Dejal Simon has had its first major upgrade in five years! Version 3 has been in development for five months, and includes many significant improvements, including a new Filter concept, new Activity log, redesigned (much nicer!) editor windows, and much more.
Licensed Simon 2 users need to be aware that Simon 3 is a paid upgrade from previous versions. You will need to purchase an upgrade license. If you purchased Simon since September 1, 2010, you are eligible for a free upgrade; contact Dejal to receive your free license.
Please also note that Simon 3 requires Mac OS X 10.5 (Leopard) or later.
Read on for a summary of some of the many enhancements in Simon 3, or see the release notes for full details.
Simon 3 replaces the Notifications log with a more comprehensive Activity log. It still lists notifications, but now also lists several other kinds of actions on tests. For example, it lists when a test is edited, paused, offline, started checking, stopped or completed. Plus it lists the output and status of the service and each filter. (What's a filter? Keep reading!)
The Monitor window also now has an optional Location column, which shows the URL, domain, or other properties of the service, where available. And other improvements, like smart zooming.
In version 2, the editor windows (Edit Test, Edit Service, etc) squeezed everything into the window at once, and used disclosure triangles to collapse (hide) portions. This was fine originally, but over time the windows have added more controls, and became way too busy, and too high to fit on smaller screens without hiding portions. The disclosure triangles were easy to overlook, too.
So in version 3, the editor windows have been redesigned. Instead of disclosure triangles, they arrange the controls on multiple tab pages. The new layout is tidier and simpler, without losing any functionality — and in fact works much better, since the windows can now be freely resized and zoomed.
Another enhancement is the addition of a Summary page, which contains the Name field and a new Comments text area. This is a great place to provide a description of the test, service, etc. And this description is displayed in tooltips in the pop-up menus in the Edit Test window, as a very useful quick reference when choosing a service etc. The Summary page also includes a handy overview of the values from the other pages. Click the prompt before each item to go directly to that item.
In Simon 2, we had a very handy Smart Change Detection feature, that could extract a portion of the service output (HTML or whatever), to ignore dynamic or uninteresting portions, and determine if it was different than the previous time the test was checked.
As great as that feature was, sometimes it's not flexible enough. What if you want to look at multiple portions, or the 10th occurrence, or simply remove HTML tags or numbers from the text? Or if you want to result in a failure if the text is found? Or only detect a change if a number changes by some threshold, or is out of range?
All of those and much more are now possible, and in fact really easy, thanks to the new Filters feature. Plus now you can combine multiple filters — they can chain together to refine or search the output text, or use different text as input. Lots of flexibility.
Like Services and Notifiers, Filters are implemented as plug-ins, which can be customized in the new New / Edit Filter window.
The Block filter plug-in provides the functionality of the old Smart Change Detection feature (and your existing tests will be upgraded to use this filter, as needed). It 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. Simply drag the little dot to the right of the fields to reveal these advanced options.
The Find filter plug-in is one of the most useful. This is as easy or powerful as you want: it supports both simple text matching and regular expression searches.
The Find filter plug-in can find one occurrence, find a specific occurrence (like for the Block plug-in), find all occurrences (outputting them separated by your choice of delimiter), or find & replace those possibilities, outputting something else for the match(es) — especially useful with regular expression searches.
When using simple text matching, you can find via Contains, Starts With, Whole Words, and Ends With. When using regular expressions, it includes a helpful menu of regular expression operators to help build expressions, including a dynamically-updating list of capture group markers for replacements — see a screenshot in the sidebar.
Sometimes you want to use some more subtle criteria for detecting a change or failure, like whether a number has changed by a certain amount. This is now possible, thanks to the Number filter.
Treating the input text as a number of course requires that it is a valid number, so this filter is typically used after a Find or Block filter to narrow down the text. It converts the text to a number, optionally ignoring specified characters, and with a customizable decimal separator so you can match the format of the text. Then it compares that number against either a fixed number, or the number from the previous check, plus or minus some delta. It can compare using "is", "is not", "is greater than", "is less than", "is in range" or "is not in range".
The Number filter can result in either a change or failure, as desired. So you can use this to detect if a disk is getting full, a price has changed by a specified threshold, a file count has changed, or many other uses.
But wait, there's more! There is also an Override filter plug-in, which enables you to alter the status and/or output text. So, for example, there's a built-in filter to change any failure into success (and use the error message as the output text, so it detects a change when the error changes).
Similarly, there's a Format filter plug-in, which is much like the Override one, except it only changes the output text. It is particularly useful to combine the output of two or more previous filters, or wrap in quotes or other formatting.
And lastly but by no means least, like services and notifiers, filters also support the powerful Script filter plug-in. So you can write an AppleScript, shell script, or Perl, Python etc script to create a virtually infinite range of filtering options.
See the Simon Overview page for a list of the default filters in Simon 3.
The Web (HTTP) service got some love, too. It now includes checkboxes in the Cookies table to control how to handle cookies. 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).
Too many things to list here! (See the release notes for the full list.) A few other highlights that might interest existing users include:
- 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.
- Twitter recently altered their authentication requirements. The Twitter plug-in now uses xAuth (a form of OAuth) to log in to the Twitter server.
- Separated the Pause and Resume commands in the menu and toolbars, so it is easier to pause or resume all tests when there are a mixture of paused and active tests. Also, the Pause interval is now remembered as a default for next time, even across launches of Simon.
- Reorganized the variables so filters and notifiers inherit their variables from the service — so for example a notifier has access to all service and filter variables.
- Changed the Dock icon and status menu to show the number of Unviewed marked items, rather than the number of items with the indicated status, and to draw the yellow unviewed badge in the upper-right corner over the status triangle, instead of behind, to fit with normal badging conventions. The Unviewed marker is now used for failures and recoveries as well as changes.
- Added a help book, using the standard Apple Help Viewer, and significantly reformatted it. The help can still be read online if you prefer (and easily toggled via the Help menu).
Ready to upgrade? Great! Purchase an upgrade license on the Dejal Store.
Still not sure? Try it for free! If you want to keep the old version around, just in case, you can rename it (e.g. to add the version number) rather than replacing it with the new version. That way they can both occupy the same folder without a file name conflict.
Your Simon 2 license will be recognized by Simon 3, and entitle you to the same number of Tests that you were allowed before. Note, though, that the same license levels will allow more Tests after you purchase an Upgrade license.
Simon 3 has renamed the license levels, and added a new one:
- Bronze license enabling up to 15 tests.
- Silver license enabling up to 40 tests.
- Gold license enabling up to 100 tests.
- Platinum license enabling unlimited tests.
You can upgrade from any Simon 2 license level to any Simon 3 one, and even downgrade (e.g. from Standard to Bronze) if you prefer. A great deal if you have a Simon 2 Basic or Standard license — get an unlimited Platinum license at a huge discount! Here are the upgrade options:
- Upgrade Simon 2 to v3 Bronze: $19.
- Upgrade Simon 2 to v3 Silver: $39.
- Upgrade Simon 2 to v3 Gold: $69.
- Upgrade Simon 2 to v3 Platinum: $99.
I hope you enjoy the many improvements in Simon 3!
- David Sinclair, author