simon

Simon 4.2b1 released

Simon version 4.2b1 is now available.

This first beta includes the following changes:

Added an Exclude Block filter

  • Added a new Exclude Block filter that outputs the text outside the block, instead of inside like the normal Block filter.
  • Enhanced the Block filter feature to support specifying whether to output the text before the Start, the Start text itself, the text between the Start and End, the End text, and/or after the End text, or any combination of those, optionally joined by some separator.

Email improvements

  • The Preview now supports the Email notifier; it will display the message that is sent, with placeholder values for any variables. (Tip: you can check that an email notifier is configured correctly by showing the Preview or just clicking the Reload toolbar button, or File > Notify Now.)
  • Added support for STARTTLS connection security and Password (PLAIN) authentication in the Email Transport panel.
  • If the Port field is clear, or contains a standard port number for a connection security, it is changed to the typical port number when the connection security is changed.

Several fixes of the reports feature

  • Fixed an issue with uploading reports to remote FTP servers.
  • Fixed a crasher when adding a new report with the Preview pane selected.
  • Fixed a logic error that prevented recent checks, changes, etc from being listed on the detail pages.
  • Fixed incorrect last report date display when the report hasn't been generated yet.

More convenient upgrade licensing

  • When adding an upgrade license, now automatically looks up the original license, instead of just telling you it's needed (which can cause confusion, since it's an unusual situation).

Lots more stability improvements

  • Fixed a common crasher when editing at the Auto Pause pages.
  • Fixed another crasher when changing pages at the bottom of the window.
  • Fixed a cosmetic issue where the editor info background could show garbage in some situations.
  • Fixed a couple of rare crashes with deleting items.
  • Fixed a rare crasher with the Find filter.

If you're using a recent version of Simon already, you can update to this beta by checking for updates in the app. If you haven't used a beta previously, you may need to change your Updates preferences within Simon to include Beta & General Releases. Otherwise, you can download Simon 4.2b1.

Simon 4.1.1 released

Simon version 4.1.1 is now available for download.

Please update to this release for El Capitan compatibility, including:

  • Fixed a crash on OS X 10.11 when changing tests with the Preview displayed.
  • Improved the layout of the Preview.
  • Added exceptions to 10.11's restrictions on http:// access.
  • Fixed several issues raised by the latest development tools.

It continues to work on Yosemite (10.10 and later) too.

Download Simon 4.1.1 now!

Simon 4.1 released

Announcing the general release of Simon version 4.1!

This update is free for licensed customers of Simon 4. It includes several significant improvements and fixes.

Redesigned web feature

One of the most noticeable changes is a redesign of the Web (HTTP) feature. It now uses a list of pages including Parameters, Headers, Cookies and Other. Clicking on one shows the corresponding page.


Support for custom headers

Another much-requested enhancement to the Web feature is support for custom headers. This enables you to send extra values to the server, for example a "User-Agent" so the server thinks the request is coming from a specific web browser.


Load dynamic web content

Many websites nowadays use JavaScript to load additional content after the initial HTML is loaded, for example to incorporate updating values from a database, or activity tracking, and other uses. Previously, Simon wouldn't see that dynamic content — it only looked at the base HTML. Now, you can enable a new option to load the dynamic content a specified number of seconds after the base HTML loads, to incorporate such later changes.


Plus much more

There are many more changes, including various tweaks to the UI, moving the Delete function to the Edit menu, adding a crash reporter to make it easier to capture issues, and localization improvements (including adding Chinese).

Read the release notes for full details of the changes.

Download Simon 4.1 now!

Simon 4.1b5, 4.1b6 and 4.1b7 released

Oh look, another beta!

  • Fixed an issue in the previous betas with the Username and Password fields in the Web feature.
  • Simon now uses the third-party Fabric Crashlytics framework to automatically capture crash reports. Previously it would attempt to ignore crashes, so it might crash a little more than before, but hopefully not. Automatically aggregating crash reports will enable faster fixing any that occur.
  • If a crash occurs, Simon will now display an assistant window on next launch to ask for information about the crash, which may help trace the cause. There are also optional fields for your name and email address, in case there are any questions.
  • Updated a few pages in the help book.
  • Integrated a German translation into the help book.

EDIT: A quick update to fix another couple of issues:

  • Fixed a crasher in the Web feature when quickly editing custom headers or cookies.
  • Fixed an issue in previous betas with the Web feature when using a username and password.

EDIT 2: Hey why not make it a trio: another quick update with some further tweaks of this area:

  • Fixed another crasher in the Web feature (caused by earlier beta changes).
  • Fixed an issue in previous betas with the Web feature when editing Parameters values.

Download Simon 4.1b7 now!

Simon 4.1b4 released

One last beta, with just localization changes. English customers can feel free to skip this update if you like, though it's trivial to update.

  • Added Chinese localization, thanks to WeiOSX. Anyone familiar with Chinese, please provide feedback on this work (any issues or improvements).
  • Removed Japanese localization, as it has not been updated for a while. If anyone experienced with Japanese localization would like to take over this, please get in touch.
  • Updated the German and French localizations in some of the plugins (where they hadn't been used before).

Download Simon 4.1b4 now!

Simon 4.1b3 released

One more beta with a few fixes, for good measure. This will probably be the last beta before general release; please let me know if you find any issues.

  • If the When pop-up menu for a test filter is changed to None, the filter plugin controls are now removed, as expected.
  • Changed the (-) button to set the When pop-up menu to None for the last filter or notifier in the test.
  • Fixed an issue where the Preview source wouldn't finish loading if the Preview is displayed on launch of the app.

Download Simon 4.1b3 now!

Simon 4.1b2 released

Just been a couple of days, but here's another beta of Simon 4.1, with some exciting changes:

Redesigned Web feature

  • The Web (HTTP) editor has been significantly redesigned, to use a list of pages including Parameters, Headers, Cookies and Other. Clicking on one shows the corresponding page.
  • The Method pop-up menu is now on the Parameters page, since it indicates how the parameters are sent.
  • The Username and Password fields are now on the Other page; they are only useful if you connect to a server that has an authentication challenge (as displayed in a web browser via a sheet; not the same as a in-page form-based login).

Web feature support for custom headers

  • The new Headers list enables you to add custom headers to send with the request, e.g. Accept, User-Agent, etc.
  • Note that sending a request via Post will set the Content-Type and Content-Length headers, overriding any you may add.

Download Simon 4.1b2 now!

Simon 4.1b1 released

Time for an update to Simon! This first beta release includes:

Support for dynamic web content

  • Added an option to the Web (HTTP) service to enable capturing the rendered source some interval after the base HTML is loaded, to support including dynamic changes from JavaScript, as is more and more common nowadays.
  • Now does Post requests via the more compact application/x-www-form-urlencoded content type, instead of multipart/form-data. (Please let me know ASAP if this breaks any of your POST tests.)
  • Updated the web helper to 64-bit.

Other changes

  • When adding a new test with the Preview displayed, now displays a message saying that there's no location, instead of making the test a failure immediately.
  • Changed the display of status icons in the Tests list to support the Use simple status icons preference option (that uses just green & red instead of fading colors over time).
  • Moved the Delete menu item from the File menu to the Edit menu, to match the placement in most other apps.
  • Fixed enabling and disabling of menu and toolbar items depending on the selected list items.
  • Fixed a very vexing code signing issue with the Growl framework.

Download Simon 4.1b1 now!

Simon tip: Simon Extras

Dejal Simon is a powerful and flexible website & server monitoring tool. One of the reasons it is so flexible is that in addition to the many built-in services, filters, notifiers & reports, you can extend it by using or writing custom scripts (or port sessions).

Simon comes bundled with many examples of such scripts; check out the Services, Filters & Notifiers lists and look for the items with a "Script" subtitle. You can inspect and edit those to customize them to suit your needs, or use them as inspiration for your own.

As an additional resource, the Simon site has an Extras page, which lists several more scripts that customers have contributed over the years. Some of which have later been bundled with the app, but some are only available there.

The Simon Extras page is organized by feature kind: Service Scripts, Filter Scripts, Notifier Scripts, Report Templates, and Other Goodies (including a way to add multiple tests, an extended siren sound, and a script to monitor a FTP site). There's also info for developers on writing custom plugins.

I occasionally add new customer-contributed items to the Simon Extras page. For example, yesterday I added a notifier script provided by Carlos Leal to use the third-party Plivo site to send a SMS message, as an alternative to using Clickatell or email.

Installing scripts is easy:

  1. Decompress the downloaded archive, if you browser didn't do it for you;
  2. Launch Simon if not already running;
  3. Go to the Services or Notifiers list, as appropriate;
  4. Click the New toolbar button (or via the File menu);
  5. Choose the Service Kind (or Notifier Kind) button to show the service (or notifier) page.
  6. Choose the Script service/notifier kind, if not selected by default.
  7. Click the Open Script... button and choose the script file.

The script is copied into Simon, so there's no need to keep the downloaded file around after loading it.

If you create or modify a script that others might find useful, please share it! Send me an email with the script attached, along with a description, and I'll be happy to add it to the Simon Extras page.

Simon tip: enable PHP for scripts

Simon is a very powerful server monitoring tool. One of the reasons for this power is the ability to create custom services, filters and notifiers using a variety of scripting languages.

While languages like AppleScript, Perl, Python, Ruby and shell scripts work out of the box, many people are more comfortable with PHP, commonly used server-side for web pages. But that is not enabled by default in OS X.

It's not too difficult to make it available for Simon scripts, though... if you feel comfortable using Terminal.

Fire up Terminal and enter this command to edit the Apache configuration:

sudo nano /etc/apache2/httpd.conf

You'll be prompted for your password (for the sudo command), then presented with an editor screen.

Press Control-W to search for php. This will move the cursor to this line:

#LoadModule php5_module libexec/apache2/libphp5.so

Delete the leading # to uncomment this line.

Then press Control-O to save the change, then Control-X to exit the editor.

Finally, for good measure, tell the Apache web server to restart:

sudo apachectl restart

That's it! You should now be able to run PHP scripts in Simon.

About Simon Express and Simon Free

Did you use Simon Express or Simon Free for the Mac App Store? As you have probably seen by now, they are no longer available. I was unable to update them, so announced back in October last year that I'd remove them, which I did when Simon 4.0 was released.

I thought I'd go into this in a bit more depth today.

So, why wasn't I able to update them?

When the Mac App Store was introduced back in 2011, apps could be included without too many modifications or special requirements. So I was happy to provide special editions of my Simon app, which I called Simon Express and Simon Free. The Express edition enabled unlimited tests (at a time when the standard edition had license limits on the number of tests, which is no longer true), but was streamlined to only provide a basic set of services, filters and notifiers, without the ability to add or edit them. Simon Express sold for $59.99. Simon Free was the same, but was limited to only a few tests, and available at no cost. These seemed like useful editions for people who didn't need the full power of the standard edition, and preferred the convenience of the Mac App Store.

But as of June 2012, Apple threw a spanner in the works: they required that all apps in the Mac App Store be “sandboxed” — where the apps can only access their own private folder, among other restrictions.

Since Simon is a powerful tool, capable to monitoring arbitrary folders, accessing network services, running customizable scripts, etc, it wasn't feasible to sandbox Simon without cutting out a lot of functionality, which I didn't want to do. Even the cut-down Express and Free editions would have had to be severely restricted. So it just wasn't doable.

For a couple of years, I left the Express and Free editions on the store, without updates, but I felt bad about them falling behind the standard edition, and so when version 4 came along, it was time to retire those editions.

But where does that leave people who bought the Express edition?

If that's you, you are of course welcome to continue using it (or the Free edition) for as long as you like. But to take advantage of the attractive new user interface and enhanced features of version 4, you'll need a Simon 4 license.

I didn't want to make you have to buy a full license, though. So in version 4 I added support for treating Simon Express as a full version 3 license. If you have Simon Express installed (or have previously used it with your Mac), a “Simon Express” item will automatically appear in Simon's Licenses window. So all you need to buy is a Simon Upgrade license.

Furthermore, if you don't already have data for the standard edition, Simon 4 will automatically recognize and import your Simon Express data, enabling a smooth transition from the old app.

In the months since removing the Mac App Store editions, I don't recall having received any negative feedback about this move. I think most people understand... and frankly the Mac App Store editions were never huge sellers; most people preferred the power and flexibility of the standard edition.

The Mac App Store is a useful tool for discovery of apps that fit within Apple's rulebook, but some apps like Simon, and other third-party ones like BBEdit, Coda and more don't fit in that model. And that's fine.

I will continue to include my apps in the Mac App Store when I can... while also selling directly from the Dejal site.

Simon tip: reorder filters, notifiers & more

One of the many enhancements in Simon 4 is the ability to rearrange the order of filters, notifiers, reports and auto pause times while editing a test.

Before, the only way to reorder them after adding was to remove and re-add, but now you can change the order very easily. Simply click and drag anywhere outside a control to move a filter etc to a new position.

Here's a looping video example:

Simon tip: check notifiers

I've recently had a couple of queries (via email and the Simon Forum) about checking if a notifier is working, so that seemed like a good blog topic.

Simon is a powerful app. One of its many features is the ability to create custom notifiers, the mechanism for informing you of changes or failures on the tests. Naturally, when you configure a new notifier, or edit an existing one, you want to make sure that it is set up correctly.

This can be done very easily. When showing the Notifiers list, you can simply select the notifier you want to check (as you probably already have if you're editing one), and click the Reload button in the toolbar, or choose the File ▶ Notify Now menu command.

The selected notifier will then be used, just like when used with a test, except that placeholder values will be used for any variables (since there isn't a test in this case).

For example, here's a Notification Center notification, showing placeholder values (click to see full-sized... and yes, I do have rather a lot of system menus!):

Simon 4.0.3 released

Another small update of Simon, to version 4.0.3.

This update is notable as the first to be delivered via the Sparkle update framework, for people on 4.0.2 (where that was introduced). Hopefully it'll work properly. :) (Yes, seems fine; I just tested it.)

Changes in this release include:

  • When the Show the Simon icon in the Dock preference is turned on, its status is now immediately updated.
  • If a password has been set to access Simon, the unlock panel is now shown without the Monitor window.
  • Fixed a hang in the Twitter notifier when typing in the message text area.
  • Fixed some cosmetic Console warnings with the notifier options editor.
  • Fixed an issue that prevented the MySQL helper from starting.
  • Fixed the helper to launch Simon on login.

If you have Simon installed already, you can get the update via the SimonCheck for Updates... command in the app, which will install it for you; no more need to download manually. You can even check the box to have future updates installed automatically if you wish.

If you don't have Simon yet, you can download Simon 4.0.3 now!

Simon tip: groups

One feature request that I received many times for Simon was the ability to organize tests into folders or groups — especially useful for people with lots of tests, or simply want to collect all tests relating to a particular server or client together.

Previously, the closest you could get to this was to use a common prefix on the name, and sort by name. But that is cumbersome, and loses the benefit of being able to sort by something more useful, like last event date — so recently changed or failed tests appear at the top.

Simon 4 solves this with the new groups feature.

Now, tests can be grouped together however you wish. It's easy to create a group: simply choose the New Group command in the File menu or the + pop-up menu, then drag the tests into the new group. Even easier, you can just select some tests and choose the New Group with Selection command to make a group and move those tests into it in one step.

Groups appear with disclosure triangles, enabling them to be collapsed. The group row shows a summary of the contents, with any common values displayed for easy reference. And similarly, the info pane shows a summary of the contained tests.

Groups can even be nested, if desired — you can have an unlimited number of groups within other groups, if that helps organize them.

But wait, there's more! While grouping tests is perhaps one of the most-requested features, I didn't stop there: you can also group services, filters, notifiers and reports in the same way!

When these items are grouped, they appear indented in the Kind pop-up menu in the test editor, so you can keep related items together:

I hope you enjoy this new feature.

Simon tip: hide the Dock icon

Simon 4 added a surprise new feature that many people have asked for over the years: the ability to hide the app from the Dock.

In the past, Simon's app icon was always displayed in the Dock. Now, with version 4, there is a new General preference to control this. By default, it is on (so the icon is shown, as before).

Why might you want to hide it? Maybe you want to keep your Dock as sparse as possible. Simon's Dock icon can display the most interesting status, but maybe you don't need to see that all the time, or you're satisfied with seeing that only in the status menu. Since you'd probably want to keep Simon running all the time, treating it as a background-only app can make a lot of sense. Now you can!

If you turn off the Show the Simon icon in the Dock checkbox, the app icon vanishes from the Dock, and also from the Cmd-Tab app switcher. Note that if you have chosen the Keep in Dock option in the Dock menu, the icon will linger, in an inactive state; you can disable that or drag the icon out of the Dock to remove it.

When Simon is hidden from the Dock, you can still activate the app via the status menu, if you have that enabled — and the app will automatically turn it on when you turn off the Dock icon, as a convenience. If you don't want the status menu, you can turn it off again... in which case the only way to activate the app will be to click on one of its windows, if any are visible, or open it from the Finder.

One thing to note is that as a necessary side-effect of hiding the Dock icon, Simon will no longer have a menubar. It'll truly be a background-only app. When you display the Simon Monitor window, the menus won't change from whatever other app you were using. This isn't a problem for most functions, as the toolbar buttons and sort drop-down menu options cover most menu commands. But for app functions like checking for updates, accessing preferences, etc, when the Dock icon is disabled a special action menu is added to the toolbar. For power users, the keyboard equivalents still work, too — so you can press Ctrl-Cmd-1 to switch to Preview mode, for example.

I know that this is an exciting enhancement for many customers. For anyone who wants Simon to "disappear" into the background, try turning off the Dock icon. You can always turn it back on again. No restart required. What do you think? Do you prefer the Dock icon visible or hidden? Let me know in the comments below.

Simon 4.0.2 released

Here are a bunch of fixes for Simon 4, plus one exciting change: Simon now uses the Sparkle framework, like many other non-App Store apps do, to make updating the app easier. I've resisted using Sparkle for years, as it had various issues that made it incompatible with my apps, but those have been resolved in recent updates.

So it's time to sparkle, finally.

After this update, you should no longer need to download the app from here when there's a new version; Simon will be able to update itself in place, and even do so completely automatically if you wish.

Edit: Note that the update checkbox will be off initially, but the app will ask you if you want to automatically check for updates on the second launch.

Here are the changes in this version:

  • Simon now uses the popular Sparkle framework for app updates, so it can finally download and install updates itself.
  • Changed the Updates preferences for the Sparkle framework, and to add a handy button to show the release notes.
  • Fixed the New pop-up menu being disabled when in full-screen mode.
  • Fixed the app not resuming full-screen mode on launch if it was in full-screen when quit.
  • Fixed a too small icon in the status menu and Dock when a Wi-Fi hotspot is detected.
  • Fixed the auto-pause function, which sometimes wasn't engaging when it should.
  • Fixed the Find filter with regular expressions when not finding a match should be a failure.

Download Simon 4.0.2 now!

Simon 3.6.4 released

When I added recognition of version 4 groups in version 3.6.2, I did so for tests, but services, filters, notifiers and reports can also have groups in version 4. So here's Simon 3.6.4 to fix an issue with editing those.

If you're using OS X 10.10 (Yosemite), I recommend that you upgrade to version 4, if you haven't already. It includes heaps of great improvements. But if you're on 10.6 (Snow Leopard) to 10.9 (Mavericks), you can download Simon 3.6.4 now.

Simon password protection

One of the many enhancements in Simon 4, which was actually also retrofitted to Simon 3.6.2 and later, was the introduction of an optional password feature. This was requested by a volume purchaser of Simon, who also paid for the unusual step of retrofitting it to Simon 3.

The password feature can be used to require a password when Simon is launched or activated. This provides some level of security to prevent unauthorized people from accessing Simon. It doesn't encrypt data or any other changes, it's just a simple access control.

By default, a password is not required. If you want to require one, open up the Preferences. Notice the new Choose Password... button and the text to the left indicating that a password hasn't been set:

Click the button to display the password sheet. If a password hasn't already been set, the first field will be disabled (and display "None"). If one has been set, enter the existing password there. The next two fields are for the new password; enter the same one in both, or leave them both blank to disable the password feature. If entering a password, you should also enter a hint that will remind you of the password (without being too obvious):

After setting a password, the text in the Preferences window will change to indicate so:

When a password has been set, whenever you activate Simon it will display an unlock sheet, asking for the password. It includes a Quit button to quickly stop Simon, and a Cancel to deactivate Simon. After two failed attempts, it will display the password hint (if any); after two more failed attempts, it'll disallow further attempts until after you quit or cancel:

I expect that most people won't need this feature, but for those who do, it should prove quite useful.

Stay tuned for more blog posts delving into Simon 4 enhancements.

A Simon 4 case study: the default "Dejal posts" test

When I released the major version 4 upgrade of Dejal Simon, I included a couple of new default tests as examples for new customers. One of them is named "Dejal posts", and actually includes a quite sophisticated set of filters.

The general idea of this test is to look at the Recent Posts page of the Dejal site, which lists all recent blog, forum, FAQ etc posts and their comments, and output some tidy text describing the most recent one, along with a changed state when a new post or comment is added.

I thought it'd be interesting to break down this test as an example and tutorial for new and existing customers — even long-term users might learn something!

Firstly, here's the Service page; nothing remarkable here (the cookies are automatically recorded, and unimportant for this test):

[Service page]

The most interesting page is the Filters one (click to see it full-size; you might want to use the appropriate modifier key for your browser to open in a new window):

[Filters page]

When you check the test and look in the Activity log, you can see the output from each of those filters (from bottom to top) — click to see full-size:

[Activity log]

Another way to view the output is via the Preview pane, which now includes not only the service response and headers, but also the full output of each filter, to help you diagnose each step.

Here's the output of the service; the full HTML of the web page:

[Preview service response]

Let's break down each of the filters, via the Preview filter output.

The first filter, a Block one, takes the service response as its Input, and has Start text of <tbody> and End text of <td class="replies">. This finds the first occurrence of each of those bits of HTML in the service response, which corresponds with the most recent post information:

[Filter configuration]

This filter outputs that:

[Preview filter output]

The second filter is another Block one. It takes the output of the first filter as its input, and narrows it down further to just the title of the post. Notice that it also uses options disclosed on the right-hand-side of the filter configuration: it looks for the second occurrence of the Start text, searching from the beginning of the input:

[Filter configuration]

The output of this filter is the post title:

[Preview filter output]

The third filter is yet another Block (it is one of the most useful filters), but the input is different: this time it uses the output of the first filter, instead of the previous one (as is the default). It also has an option to look for the third occurrence:

[Filter configuration]

It extracts the author information:

[Preview filter output]

Filter number four is different. It uses a Ignore Links filter to extract out just the author name from the previous filter output. The previous filter doesn't do this as when you're not logged in on the Dejal site, only the name is included (in which case this filter has no effect):

[Filter configuration]

The output is just the non-HTML part of the input:

[Preview filter output]

Next we're back to a Block filter again, but this time looking at the original service response text to extract the number of replies to the post:

[Filter configuration]

This should always output a number:

[Preview filter output]

We then use a new filter introduced in version 4, Singular or Plural, to take the number found in the previous filter and output "reply" if it is one, or "replies" for any other number:

[Filter configuration]

As seen in the preview:

[Preview filter output]

The last filter puts it all together: an Override Custom filter uses variables to combine the output of several filters in a nice readable way. In this case all the variables are variations of the filter output, but other variables are available too. Something that isn't immediately obvious is that you can insert numbers to reference specific filters (otherwise it refers to the previous one):

[Filter configuration]

Which results in:

[Preview filter output]

So now that we've got some nice output text, what do we do with it? Of course, you can just see it in the Tests list, if you have the last change and failure displayed:

[Tests list]

But you'll probably want to get a notification. For myself, in addition to some generic speech notifiers, I have a notifier to post to the @SimonBot Twitter account; an account I added just for Simon to tweet about Dejal site changes:

[Notifiers page]

The SimonBot notifier also uses variables to add more information about the test:

[SimonBot notifier]

Which appears like this:

You're welcome to follow @SimonBot to learn about Dejal news and discussions.

I hope this case study is helpful. Most tests don't need a series of filters like this, and there are other ways to achieve similar effects (like writing all the logic in a script), but it can be very useful when you want it. You can use similar techniques in your own tests.

I plan to do more case studies or tips on Simon features in the future; please leave a comment if you like this or find it useful, or have suggestions for other things you'd like me to cover.

Syndicate content