simon

Simon 2.3.4 released

Just a couple of days after version 2.3.3, here's another bug-fix update for Simon.

I really don't like doing releases so close together, and apologize for any inconvenience... but I figured that it was soon enough that many people wouldn't have got the weekly update notification yet. And the issue this update fixes affected a reasonable number of people, so was important to address quickly.

The main point of this update is to fix Mac OS X 10.3.9 compatibility, which was broken in the 2.3.3 release. It also fixes a minor bug with the status menu, that nobody has reported (or probably noticed), but was worth fixing regardless.

So, how was 10.3.9 compatibility broken, you may ask? Well, I develop on my MacBook Pro under Leopard, but it doesn't have the compiler for 10.3.9 installed. So to do a release I open the project on my PowerMac G5 running Tiger, do a clean build there, plus update the localization, then package the release up in a disk image and upload it back on the MBP. It's a little convoluted, but doesn't really take much longer than just using one machine, since both computers are on my desk, and I can open the project via file sharing.

Anyway, the important part there is a "clean" build -- if I forget to clean the code (i.e. throw away already-compiled binaries and re-compile it), the app won't work on 10.3.9. This has bitten me a few times, though I usually catch it quickly.

Of course, this issue will go away in due course, as each app is upgraded to require a minimum of Leopard -- which will happen over the next year or so.

So, sorry again if you upgraded to Simon 2.3.3 and have to upgrade again. Only about 5% of Simon customers are using 10.3.9 still, but that's enough people to make this quick update worth doing. If you are using Tiger or Leopard, you could skip this update... but there's no harm in updating, too, especially if you didn't already update to 2.3.3.

Download now!

Simon 2.3.3 released

Version 2.3.3 of Simon, the website and server monitoring tool, has now been released.

It is an important update, recommended for all Simon customers. Apart from some minor updates to the German localization and Growl support, it also includes three important changes:

Firstly, the way the test scheduling works has changed. In recent previous versions, I had added a "secret" preference called overlap prevention, which was on by default. This prevented more than one test from being automatically checked at once, as a way to reduce the load on the machine and ensure accurate checking times. The problem with this, though, is it could cause some tests to never get checked if the tests table is sorted by Next Check date and there are lots of tests, as they become queued but are never reached. This was because it scans for candidates to start in the sort order, and always found another queued one before the earlier queued one. Kinda convoluted, and only affecting a few people, but there it is.

This release goes back to allowing multiple tests to be checked at once, but changes things so they are started at least one second apart, even if they fall due at the same time. It uses the same checking interval as set in the Advanced preferences for checking all or multiple selected tests. It still scans in sort order, but it adds all due tests to a queue and starts them one second apart, ensuring that the computer isn't overloaded.

Another important change is to fix a bug in the Edit Test window. I spent a couple of vexing days tracing this, with the most valuable help of a customer. The mystery was that Simon seemed to be forgetting about notifiers assigned to tests in some random conditions. I couldn't recreate it, and added logging to trace what was happening to the data, and nothing seemed missing. Yet when the customer viewed the test configs, sometimes it'd only list one notifier when there should be three or so assigned to the test. Yet if he added the notifiers back, the next time he checked the missing ones would be back, along with the new ones. Wacky!

It turned out that this mysterious situation was just a cosmetic issue. No notifiers were being lost. What was happening was the disclosure triangles were interfering with the loading of the lists of notifiers (and auto-pause and reports). If the disclosure was in a collapsed state when the window was opened, the notifiers list UI wouldn't be visible, so wouldn't be resized to show more than one notifier. If it was in an expanded state, all worked as expected. So the fix was simply to set the disclosure triangle state (and thus UI visibility) after loading the lists, rather than before. An easy oversight, but and important one!

Lastly, this update has several report enhancements. One is to allow digits in test short names (as used for URLs in reports), to allow for people who name tests like "UL102", "UL104", etc, i.e. differing only by digits. Another report change is to handle the file:// protocol better. When saving a report locally to the Desktop or some other location that isn't in the global or user-specific web sharing folders, the report is accessed via the file:// protocol rather than http://. That's all fine and dandy, but several report templates use directories for detail pages to provide tidy URLs, which doesn't work so well with the file:// protocol, as it opens directories as folders in the Finder. So this version solves that by adding the detail page (e.g. index.html) to the end of the URL. As part of that, it also adds a new report variable, SummaryPath, which is like BasePath but includes the index in the URL of the Summary page when saving to a file:// URL - useful for links from the detail pages back to the summary page.

Lots of good fixes and improvements. Download now!

Simon tip: automatic offline support

One "hidden" feature of Simon is how it handles the situation when your computer loses its internet connection.

People sometimes ask me what Simon does in this situation, concerned that it would count as a failure for tests. Simon is smarter than that, though. Every time it starts a check, it first checks if the computer has a current internet connection, and only then performs the check.

If it determines that your internet connection has been disrupted, it places the test in an "offline" state, where it shows a blinking "lightning bolt" for the status icon until the connection is restored. This offline state doesn't count as a failure (or success).

Simon works out if you have a connection by seeing if it can resolve one of two popular domain names; if either work, your connection is probably fine, but if both fail, it is likely disconnected. Using two domains avoids a temporary outage of either one.

From version 2.3 onwards, you can disable this internet connection check on a per-test basis via the new Can check when offline checkbox in the Edit Test Checking Options. This is useful if you want to create a test to notify you when your connection goes down, or for tests that don't require an internet connection (e.g. using the Application or Script service plug-ins).

Test Options

Simon tip: shortcut for entering test URLs

The Web (HTTP) service is the most popular one for tests. So I thought I'd share a helpful tip with adding them.

When entering the URL, you can use very minimal text, and Simon will fill in the remainder when you click OK. It automatically adds the default protocol ("http://") and the "www." and ".com" if necessary.

For example, if you type "apple" (without the quotes), it will be saved as "http://www.apple.com/". Similarly, entering "dejal/simon" will end up as "http://www.dejal.com/simon/".

Web (HTTP) test

Simon 2.3.2 released

I just found a bug that was inadvertently added in the previous release of SImon, where the License or Setup Assistant windows might not display. This was an unintended side effect of the change in 2.3.1 to avoid reusing the editor windows - as they and the license windows share some common code, but work in very different ways.

This was previously reported in the forums, but I couldn't recreate it till today, when I was testing something else in Simon. There were workarounds, but I felt that it was important enough to warrant a special bug-fix release. Particularly as the Simon Enterprise license will be featured on MacZOT tomorrow! (There's a tip for anyone wanting a cheap license.)

If your copy of Simon is already licensed, you could skip this update if you wish... but there's no harm in updating. For anyone who has experienced this issue, I apologize for the inconvenience.

Download Simon 2.3.2 now!

Simon tip: notify via email

I recently received a question from a potential customer, asking whether Simon has the ability to send a notification via email.

Although I do mention it in a number of places, this wasn't an unreasonable question, particularly if you just download Simon and start playing with it, as no email options appear in the list of available notifiers in the Edit Test window by default.

Why is this? Because unlike the Speech and Sound notifier plug-ins, the Email one requires some configuration before it can be used, so it can't be offered by default.

The way notifiers work is (I hope) pretty intuitive, but a little indirect. Simon provides a number of notifier plug-ins that do the work of notifications, and you configure notifiers to use those plug-ins, then choose notifiers for each test.

These levels of abstraction allow easy re-use of notifiers: a single plug-in can be used by multiple notifiers, and a single notifier can be used by multiple tests, without having to set up the same things over and over again.

For example, you can add an email notifier to yourself for some failures, another email notifier to your clients for other failures, another one for recoveries, and so on, and use whichever ones of those are desired in tens or hundreds of tests, as required, as simply as choosing them from a pop-up menu.

Test Notifiers

So, as I said, there is no email notifier set up by default, since it needs configuration, but you can easily add one. If you're editing a test and realize that you want to receive an email or SMS when this test changes, fails, and/or recovers, you can click the New Notifier... button in the Notifiers section of the Edit Test window, which will open the New Notifier window. You can then choose E-mail from the Notifier Kind pop-up menu, and the controls below will change to those for the email plug-in:

Email Notifier plug-in

You can then configure the email, and save the notifier, which will be available for that test and any others you want to use it in. Easy!

Simon 2.3.1 released

Simon version 2.3.1 is now available. This release is a bug-fix version, with just a few changes:

  • Rewrote the Port service plug-in to use a helper app to do the work, to avoid instability caused by multithreading and resource usage issues.
  • Added support for the Preview function for the Port service plug-in. It displays the session script at the top, and the actual transcript of the check at the bottom.
  • Changed editor windows to not reuse the window instances, to avoid issues with windows appears incorrectly in some circumstances.
  • Added German localization, thanks to Manfred Brandstater.
  • Updated French localization, thanks as always to Philippe Bonnaure.

I'd like to give special thanks to Manfred for his hard work in getting the German localization done, and also to the couple of German Simon customers who provided feedback on pre-release builds. If you have any feedback on the localization (issues, suggestions for improvements, compliments for Manfred, general comments), please let me know.

Also of note in this version is the rewrite of the Port service plug-in. I've had several reports of crashes and other issues with SImon, which on investigation all traced back to the Port services. There was definitely something NQR there. It's a complex plug-in, though not the most complex. I've tried patching it a couple of times in the past, without complete success, so the time had come to refactor it more significantly. I moved the checking work out into a separate helper app (aka an "agent"). The plug-in launches the background-only helper when starting the check, which does the work, then quits itself when done. This allows avoiding multithreading, which I believe was a factor in the problems, along with some other optimizations that will make it more reliable. And worst case, if it does crash, it won't take out Simon in the process. The crashes do seem to be a thing of the past, though, which is great. Thanks also to the customers who tested pre-release builds with this change.

Another benefit of this refactoring is that it has allowed adding Preview functionality. The Port plug-in did allow previewing in an older version, but I had to disable it when I changed the way the plug-ins worked (from keeping an instance around for the life of the app, to using a separate one for each check). But now I've re-enabled this functionality, and improved it. The Preview window for Port-based services now displays the session script at the top of the window, and the resulting transcript of the check at the bottom (much like for Scripts). This is very handy for ensuring that the test is doing the right thing, or seeing more detail about why it is failing - e.g. whether the session script is incorrect, or the server is misbehaving.

Download Simon now!

Simon 2.3 released

Simon version 2.3 is now in general release!

As previously discussed, this release includes a new Mount plug-in, that works both as a service and notifier, and allows mounting and unmounting local, AFP, and SMB volumes. It also extends the Script plug-in to act as a notifier too, allowing great flexibility in notifications. Plus many other enhancements and fixes. See the release notes for more information, or download now!

Simon 2.3b1 released

I'm pleased to announce a beta release of Simon version 2.3. This update adds a useful new Mount service and notifier, that allows you to check if a local, AFP or SMB volume is mounted, and optionally unmount it. The notifier can be used to mount or unmount a volume as a result of a check.

It also extends the Script plug-in to act as a notifier as well as service. This means that you can now write AppleScripts, shell scripts, Perl, Python, Ruby, etc scripts to do some custom action when a test fails, recovers, or changes. This is a very exciting feature, that expands Simon's already extensive flexibility by an order of magnitude. Not to belabor the hyperbole, but with the new Script notifier, the notification options are now limitless!

This release also includes some new test options, to allow customizing the timeout interval and offline checking, some handy new variables, a number of bug fixes, and compatibility with the current Leopard beta.

There are lots of other nifty enhancements in this release; see the release notes for the full list, or download now!

This is a free update for licensed Simon users.

Pan-Mass Challenge software auction

Seth Dillingham is hosting a Pan-Mass Challenge software auction, as a fundraising project in support of his 300-mile ride across the state of Massachusetts for a cancer care charity.

He wants to collect hundreds of software products, which will be auctioned on eBay starting in July.

This is a very worthy cause, so I am donating 5 Standard licenses for Dejal Simon, plus 5 Household licenses for Dejal Caboodle (about $400 total value). I encourage other Mac developers to join in, too.

For more information on the fundraising, click this image:

Simon tip: detect unacceptable changes

Simon's Smart Change Detection feature looks for the text in the Start text box, then the End text, then compares the text between those two against what it had the last time it checked.

This is useful to detect changes in a portion of the page, but can also be used to detect unacceptable changes.

The usual way to do that is to just provide a Start text block, and not an End one. Then if the Start text isn't found, that is a failure.

So for example, if you do a telnet Script-based check, you'd want it to be considered a success only if this is output:

Escape character is '^]'

So you'd put that in the Start text block, and leave the End block empty.

Then if that text isn't found (as would occur if telnet couldn't connect to the server), Simon will log a failure.

Simon 2.2.2 released

A second bug-fix release of Simon 2.2, this version includes the following tweaks:

  • Updated the Specific DNS service plug-in to work with the version of the dig unix tool that ships with the latest Macs.
  • Added a little more exception logging, to help with diagnosing any future issues.
  • Worked around a known bug in the OS, where resources aren't freed properly if there are no user events (e.g. while Simon is working for a long time without human interaction).
  • Fixed a possible cause of instability when closing the Preview window.

This is a recommended update for all Simon users. Download now.

Added Simon web badges

[Badge2]

These are a couple of web badges for Simon that I've just added. You are welcome to add one of these to websites that you monitor with Simon, to reassure your readers that you're watching your site for failures or comments, and help spread the good word about Simon.

[Badge1]

To use these, drag the desired image to your Desktop to download it, then upload to a suitable location on your website (please don't just link to the images on my site). Then copy the HTML code below to the part of your page where you want the badge to appear, and change the image name and/or path if necessary:

<a href="http://www.dejal.com/simon/"><img src="simon-monitor2.png" title="Learn about Dejal Simon, the essential website and server monitor for Mac OS X" /></a>

If anyone wants to create more badges, or has any suggestions for other designs, please get in touch.

Simon reviewed on mac.pocket.at

Simon has just been reviewed at mac.pocket.at (in German). Read the review, or the automatic English translation.

Simon 2.2.1 released

Simon version 2.2.1 is now in general release.

As discussed in previous blog entries, it fixes some important issues, as follows. It is a recommended update for all Simon users.

  • Fixed an issue that affected some people, particularly those who use Apple Remote Desktop or similar remote control products, where Simon would erroneously display "offline", some icons would disappear, and sometimes other cosmetic issues.
  • Improved the reliability of the Script service plug-in, so it doesn't terminate the script before all output has been received.
  • Changed the Web (HTTP) service's plug-in to not record session-only cookies, to avoid issues with servers that get confused with such cookies in a different check (session).
  • Fixed an issue with the Growl notifier plug-in that prevented it from working properly under Mac OS X 10.3.9.
  • Fixed an issue with the Specific DNS service plug-in, where it didn't report a failure for some machine configurations.
  • Added test check overlap prevention.
  • And more....

Read the release notes for details, or download now.

Simon 2.2.1b2 released

Another beta release of Simon, to version 2.2.1b2.

This release fixes two minor bugs raised in the Simon forum:

  • Changed the Web (HTTP) service's plug-in to not record session-only cookies, to avoid issues with servers that get confused with such cookies in a different check (session).
  • Fixed an issue with the Growl notifier plug-in that prevented it from working properly under Mac OS X 10.3.9.

Enjoy!

Released Simon 2.2.1b1

I have just released Simon version 2.2.1b1, which includes a number of fixes; click that link for the release notes.

Of particular note, it fixes a rather vexing issue that only affected a few people (particularly those accessing their Simon machine via Apple Remote Desktop, it seems), where Simon would eventually go into an "offline" state, with icons disappearing and other strange behavior.

I was unable to recreate this myself, but fortunately one of my customers was kind and patient enough to help me by running a series of special builds with debug logging added, which allowed me to narrow down the cause. It finally turned out to be due to a known bug in the OS, where allocated objects aren't being automatically released as they should if there is no user interaction on the machine. So I solved that by managing their release myself in all the key areas.

Everyone who experienced this issue, please download this version. If anyone still experiences this issue, please let me know ASAP. Thanks to those who helped trace it, and for everyone's patience.

MacUpdate Promo finished!

The one-day MacUpdate Promo for Dejal Simon is over. Thank you to everyone who took advantage of this great deal. Welcome! I hope you enjoy Simon. Remember to check out the User Guide, FAQ and Simon Forum if you have any questions.

Get Simon at 50% off, today only!

SimonDejal Simon is available for just $14.95 today (for a Basic license), only via the MacUpdate Promo.

Click that link for more information or to take advantage of this one-day special!

Simon 2.2 released

It gives me great pleasure to announce (again) that Simon version 2.2 is now in general release!

It's been about a year since the previous version, 2.1.1, though version 2.2 has been in development and testing for much of that time, along with my various other projects. That's too long... I want version 2.3 to be much sooner than another year away!

This version does add lots of good stuff, though, as mentioned in the press release. I'm most proud of the new Script service plug-in, but there are several other new service and notifier plug-ins, many written by Daniel Ellis. Plus the Simon Monitor now has a more modern window appearance, and is a Universal Binary.


Enjoy!

Syndicate content