tips

Three new Time Out themes

A benefit of Time Out is that it can improve even between updates, through the addition of themes and script actions.

Themes are different appearances during a break, and can be changed on the Break Appearance preferences page, while actions are things that can be done before, during, or after a break, which can be added on the Break Actions page.

The app comes with a bunch of themes and actions, plus you can download more from the Time Out Extras page, or even make your own — themes are just web page URLs or local HTML, and actions are AppleScripts or similar scripts, so anyone with experience with those can make new ones.

Note that changing the theme or adding more than one action are supporter rewards... but you can currently become a supporter for free, so everyone can benefit from these nice features.

If you do make new themes or actions, I encourage you to share them so others can benefit; I'll list them on the Time Out Extras page, and may bundle them with future versions of the app.

Time Out customer Bruno Bernardino recently made and contributed three great new themes, that I think many people will enjoy.

The first is called Pexels Nature, which you can download via that link. It shows a random image of nature for each break, from the Pexels image site, e.g.:

Pexels Nature theme

The second is called Inspirational Quotes, which shows a random inspirational quote for each break, e.g.:

Inspirational Quotes theme

The third is called Photo Slideshow, which is similar to the Pexels Nature one, except you can customize it to show one of 10 local photos for each break. It comes with placeholder images; replace them with your own — your kids, pets, dream vacations, personal goals, or anything else! The placeholder images have the instructions:

Photo Slideshow theme

What's more, Bruno made GitHub repos for each of these, that include additional content to help test these themes. If you want to customize them, or use them as a basis of new themes, you might find these useful:

Thank you Bruno for creating these!

Installing themes is easy:

  1. Go to the Break Appearance page within Time Out.
  2. Choose Reveal Themes from the Theme menu to open the Themes folder in the Finder.
  3. Drag the downloaded theme's folder into the revealed Themes folder.

Check out the Time Out Extras page for several more themes and actions, and please contribute if you make new ones!

Don't already have the app? Download Time Out now!

Time Out tip: how can I avoid a break starting while doing a screen recording?

Similar to the previous tip about skipping breaks during a Zoom call, you can also skip breaks during screen recordings, if that's something you do frequently.

Here's how:

  1. Go to Time Out's Exclusions page.
  2. Click the + button to display the choose panel.
  3. Navigate in the panel to select this path from your startup disk: System ▸ Library ▸ Core Services ▸ screencaptureui, and click Choose.
  4. Change the added exclusion to Skip When Open.

That will prevent a break from starting while recording the screen via QuickTime Player, or taking a screenshot or screen recording via ⌘⇧5.

Time Out tip: how can I automatically skip breaks when on a Zoom call?

Time Out has a handy feature to automatically skip breaks when specified apps are frontmost or running.

With a lot of people working from home now (and don't forget to get your free supporter status for Time Out), many people are using the Zoom teleconferencing app.

Some folks are finding that the app exclusions feature doesn't work reliably for Zoom, as it is using an internal helper tool during a call, e.g. for screen sharing.

There's a solution for this. Follow these steps to stop breaks occurring during meetings:

  1. Locate the Zoom.us app in the Finder.
  2. Right-click it and choose Show Package Contents.
  3. Navigate into the Contents ▸ Frameworks subfolder, and find the Transcode app.
  4. Go to Time Out's Exclusions page.
  5. Click the + button to display the choose panel.
  6. Drag the Transcode app into the panel, and click Choose.

You should add both the main app and the helper one, and will probably want to set both to Skip When Open.

Simon tip: website certificate service

Today I received a customer query asking how to use Simon to check for an expired website SSL certificate.

Of course, Simon is very flexible, so even if there isn't a built-in service for this specific case, if you can do it in the Terminal, you can probably create a custom script-based service in Simon to do it, too.

There are a number of ways to get certificate information, but this is one simple approach (if you know of a better way, let me know!).

I created a new script-based service, using the basic C shell, a one-line command, and a custom variable for the host name:

Website Certificate service screenshot

I then created a new test using this service. When accessing a server with an expired certificate, the output includes a "verify return code" message of "certificate has expired", so I used a Block filter to look at just that text (I pasted "Verify return code: " in the Start text, and an Option-Return in the End text), then a Find Required filter to make the test result in a failure if it doesn't find "ok", and finally an Override Custom filter if a failure, to output the error message:

Website Certificate test screenshot

For the success case, the last filter doesn't apply, so it just outputs the "ok":

Website Certificate test screenshot

Want to use this service? You can easily add it yourself, or import it by downloading from the Simon Extras page.

I hope you found the techniques in this post helpful.

Time Out tip: add breaks to Calendar

I just had a customer wish that Time Out could track breaks taken in their Calendar app. That is definitely an interesting idea, so I was going to add it to my feature concepts list for consideration in a future version (and I still will), but it occurred to me that we could probably do that now with AppleScript actions.

As you may know, Time Out has the ability to perform various actions before, during, or after a break occurs. I made two AppleScripts based on Apple's sample code for the Calendar app, and added them to the Time Out Extras page.

Download the scripts now.

The "Add to Calendar Start" script creates a new "Time Out break" event in the first available calendar, at the current time, with a duration of an hour. To use this in Time Out, install it as normal (reveal the scripts folder via the + button on the Break Actions page, and add the two scripts there), then add an action set to be performed "After Start".

The "Add to Calendar End" script finds that event (assuming it is still within that hour), and updates the end time to the current time. So to use this, add an action set to be performed "After Any End" (i.e. when the break finishes, done or not).

Here's how it'll look in Time Out (with a couple of sound actions for good measure):

Break actions

If you want to add the events to a different calendar, you can edit the scripts (I included a commented out example). Just make sure you change both the same way.

I may add a more integrated calendar feature in the future, but in the meantime, it's great that such enhancements can be done immediately. I hope this is helpful to some people.

Time Out tip: how can I stop the window appearing after restarting my Mac?

The Time Out preferences window always appears when opening the app from the Finder, but when you restart your Mac, the window should not appear, even if it is launched via the Automatically start Time Out… preference.

If it does unexpectedly appear after you restart your Mac, the most likely reason is it was launched either by Login Items or the Dock.

To check the Login Items, go to System Preferences ▸ Users & Groups ▸ Login Items, and see if Time Out is listed. If it is, remove it.

If that doesn't solve it, check the Dock: show the Time Out icon in the Dock if it isn't already (via the General preferences), then click-and-hold on its icon in the Dock to show the menu, and look at Options ▸ Open at Login. Uncheck that if checked.

To ensure you don't miss your breaks, make sure the app is launched by checking the Automatically start Time Out… preference on the General page. (Note that this will only work if the app is within your Applications folder.)

Time Out tip: fixed image and blog themes

I recently got a support request for Time Out, my popular break reminder tool, asking to display a fixed image during the break.

Time Out uses HTML pages as break themes, so it is possible to have a fixed image as a theme — in fact the default theme, Icon, does just that, with the app icon.

So one way to have a fixed image is to:

  1. Choose the Reveal Themes command at the end of the Theme pop-up menu to open the Themes folder in the Finder.
  2. Duplicate the Icon theme folder and give it a new name.
  3. Replace the icon.png file with your chosen image.
  4. Edit the index.html to adjust the name and size of the displayed image.
  5. Edit the Info.json file to give the new theme a unique identifier etc.

Pretty easy. You can edit those files in TextEdit or any other text editor.

If the image is available on some website, it's actually a little easier. I have created an example theme on the Time Out extras page:

Download the Ducks & Fish theme

You can edit a copy of this theme to use a different image:

  1. Choose the Reveal Themes command at the end of the Theme pop-up menu to open the Themes folder in the Finder.
  2. Add the Ducks & Fish theme, if not already.
  3. Duplicate that theme and give it a new name.
  4. Edit the Info.json file to give the new theme a unique identifier, and change the URL to the desired image.

(This got me thinking, and I spent the last hour or so writing up notes on ways to make adding image-based themes even easier in a future version. I'm always trying to improve the app.)

While I was at it, I also added three themes to display my three blogs:

  • Dejal Blog (download link): a theme that simply shows the Dejal blog, so you can read it during your break, to see the latest news about Time Out and other Dejal apps (doesn't update very often, though, so probably not that exciting for a regular break).
  • Dejus Blog (download link): a theme that shows my personal blog, where I post photos and comments every day. Could be good for a short break a once or twice a day.
  • Yellow Cottage Blog (download link): a theme to show the Yellow Cottage Homestead blog, about my chickens, ducks, feral cats, bees, and other homestead topics. Could be good for a lunchtime break.

If you try those, you might want to set the Opacity to 100% on the Break Appearance page.

Time Out isn't a web browser or feed reader, but since the themes are just web pages, these show some of the interesting things you can do.

Time Out tip: Dock icon and status item

Time Out has several handy options, some of them only available to current or past supporters, as a reward for helping improve the app.

One such option is the ability to hide the app icon from the Dock. By default, the icon is shown there, for easy access, but if you want Time Out to operate more in the background, you can choose to remove the icon.

If you do so, the second option is automatically turned on: the checkbox to show a status item on the right-hand side of the menubar. This item has further options to choose what to include there.

General preferences

The status item can optionally include a variation of the app icon, the label color of the next break, or neither:

General preferences

It can also include a countdown to the next break, either in a compact form like "7m" for 7 minutes, or a wider form like "07:32", for 7 minutes and 32 seconds. In the compact form, it only shows seconds when less than a minute. That's my favorite form, to attract attention when getting close to a break.

Alternatively, the value can show the time when the next break is due, or will finish, or how long it is. Or no value, just an icon:

General preferences

There's a further checkbox to only show long breaks in the status item, i.e. don't show ones with a duration of less than a minute.

A further useful tip about the status item is that if you hover over it, a tooltip will appear that lists when the upcoming breaks are next due:

General preferences

When the Dock icon is shown, clicking the status item will bring Time Out to the front, to show the preferences window. When the Dock icon is hidden, clicking it will display a menu-like popover of the sidebar, for quick background access to the breaks and options. Clicking one will expand to the full window.

You may wonder what happens if you hide both the Dock icon and the status item. The window will display a warning message:

General preferences

As the message says, if you do this, you can still access the preferences window, though it's a bit harder. You would need to find Time Out in your Applications folder and double-click it to make it active. Since the Dock is hidden, it won't show a menu bar, so there isn't a visual indication that it is active, but you can press ⌘, (i.e. Command and Comma together), which is the keyboard shortcut for the Preferences window, to show it.

Some people like doing this, to discourage changing settings, but most people should show either the Dock icon or status item, or both.

Time Out tip: lifetime supporter?

In ye olde days, software was sold once, for what would be considered nowadays to be a high price, and every year or so the developer would release a major paid upgrade, typically charging about half of the original price.

I still do this for Simon, my pro tool to monitor websites and servers for changes or failures, since that model is still common for pro apps. Though it is also available on Setapp, as part of a subscription along with hundreds of other apps.

But for Time Out, my popular break reminder app, I wanted to try something different. I introduced a "supporter" model, where people can get the main features completely free, but be rewarded for supporting ongoing development with extra features.

Unlike old-school purchases, the supporter purchases are much cheaper, only a few bucks, and for a specific period of time, 3, 6, or 12 months. The extra features can be tried for an hour at a time, or are unlocked permanently with any supporter level. The "catch", such as it is, is that when I update the app, I may add new features that are only available to current supporters, so if your support has expired, you won't get those features unless you renew your support. Of course, you can try them, to help decide if you want to renew.

That seems really fair to me; you can have breaks for free, or get extra features cheaply, and if you like my improvements, you can help pay for their development. Or continue using the older features forever without paying more.

Win/win — you get a useful app that is regularly improved, and I get to eat. I also don't have to hold back major features for a big paid upgrade; I can add things whenever desired.

Even so, I occasionally get people asking about a lifetime purchase option. I don't currently offer that, since I feel it would be detrimental to the long-term survival of the app. However, you can effectively make your own lifetime option, by purchasing multiple 12-month supporter statuses. Each one you purchase will extend your supporter status by a year. So if you envision using Time Out for the next 5 years, purchasing 5 times will extend your support that long. Or whatever duration you want to use.

Of course, it’s worth reiterating that you don't have to pay more than once if you don't want to. You can become a supporter at whatever level you feel comfortable with, and not pay again unless you want to show your appreciation (kinda like a tip jar). After your supporter status expires, all of the advanced features that you had when you were a supporter will remain available permanently. You’d only need to renew if I add new features in the future that you want to use.

Time Out tip: dry eye blink reminders

People use Time Out for lots of reasons; to avoid RSI, to get regular exercise, to avoid sore eyes, to remember to eat regularly, to stop work at the end of the day, and more. But one use case that I've seen several people mentioning recently is to help with dry eyes.

A nice comment from one example:

"...my eyes are freakishly dry, way over-the-top compared to the average dry eye patient, and your app has allowed me to use my computer longer without killing my eyes. I can't thank you enough for making it!!"

People who experience dry eyes can sometimes find that blinking more frequently can help keep the eyes lubricated. That can be hard to remember when focused on work, though. Time Out's default Micro break can help with that, but some people prefer even more frequent reminders.

Time Out breaks can currently be configured to occur as much as once per minute, which is a lot for a typical break, but by making the break only last one second, and configuring the other Schedule settings to avoid skipping or delaying it, the break can be a very brief reminder without being too disruptive:

Time Out schedule page

In the next version of Time Out, I am considering enabling using frequency units of seconds, instead of minutes (and hours, etc). It is currently limited to a minimum of 1 minute, as that seemed like a reasonable minimum, but a very quick break like this every few seconds does have merit. But read on for a way this can be achieved even now.

The Appearance options can be set to avoid fading the screen via the None theme, with zero fade-in and fade-out times (set the fade times before changing the theme):

Time Out appearance page

A great way to very quickly remind yourself to blink is to flash the screen. This can be done via the Flash Screen action. The color and duration of the flash can be tweaked as desired.

And if once per minute isn't enough, you can add as many as you want on the Actions page, spaced out by setting the offset After Start, like this to have it flash every 10 seconds:

Time Out actions page

I hope this is helpful to people suffering from dry eye, or anyone wanting more frequent reminders.

Time Out tips: lunchtime & night breaks

On Twitter, Abbey Jackson asked:

Sure! Here's the Schedule page for my Time Out preferences, showing my Lunchtime break configuration:

Lunchtime schedule screenshot

There are two important steps to do this: firstly, set the frequency to Every 1 day, and secondly, use the Available options to set a fixed start time of noon. In my example, I have this break only occur on weekdays. I also have the natural break option set to Continue Countdown, since I want the break to start immediately, not get pushed back due to idle time.

Didn't realize that you can set daily breaks? Yep! Click, arrow, or tab to the units of the duration ("Break for") and frequency ("Every") fields to change between various units: seconds, minutes, hours for the duration, minutes, hours, days, weeks, months, years for the frequency.

As a bonus, here's my Night break, that tells me to go to bed:

Night schedule screenshot

This is similar, but a longer duration. And yes, I go to bed rather early, as I usually get up at 05:30 (but don't get to my Mac till after breakfast).

Hope this helps!

Simon: unlimited tests for everyone

Simon 4 has been out for a while now, but I'm still getting a regular trickle of upgrades, so obviously not everyone has moved to the latest (or recent) versions yet.

One huge benefit of Simon 4 hasn't gotten much attention, so I thought I'd call it out: unlimited tests for everyone!

What does this mean?

In versions 1 and 2, Simon had three license levels available for purchase: "Basic", "Standard" and "Enterprise". In version 1, Basic permitted a maximum of 3 active test configurations for $29.95, Standard allowed up to 10 for $59.95, and Enterprise removed the limit for the relatively large sum of $195. In version 2, the first two were doubled to 7 and 20 respectively, while Enterprise remained unlimited (with unchanged prices).

In version 3, I added a fourth level, and renamed them to "Bronze", "Silver", "Gold", and "Platinum", with the limits doubled again to 15, 40, 100, and still unlimited at the top. The prices were increased, to $49, $99, $199 and the princely sum of $499, respectively.

So what was I going to do for version 4? Keep them the same, double them again, or something else?

I decided to simplify.

For this upgrade, I eliminated the concept of license levels. Unsurprisingly, relatively few customers had opted for the Platinum level, though more than you might think. The cheapest level, Bronze, wasn't the most popular, though: the majority of people wanted more tests.

I thought that eliminating the levels would make it easier to people to understand the purchase. One price, unlimited tests. Deciding on the price was tricky. Over the years, the expected price of apps have gone down significantly, due to the "race to the bottom" of the iOS App Store, where most apps are free or $0.99 nowadays. Fortunately, things aren't as untenable on the Mac, with average prices more like $20 to $40, and pro apps going for around $100 (which is still less than they used to be, but not as bad). So I decided to go for the price of the most popular license level, but with the features of the top-of-the-line one: $99 to get unlimited tests.

Of course, some people would have preferred a cheaper option. And I was leaving money on the table from people willing to pay prices like $499. But I think time has supported this decision as a happy medium for everyone.

I think most people understand the realities of software development, but I feel I should mention it anyway. Software takes time to write and support. For a powerful and flexible app like Simon, a lot of time. It's also a relatively niche app, so doesn't have as huge a market as other apps. So the only way it can survive and have continued development (even if sometimes slow, as I work on other projects) is to have a sustainable price. It's always tricky to find the right price for an app, but for Simon, this feels right.

Still using Simon 3? Check out the huge number of improvements in the version 4 release notes, and when you're ready, buy an upgrade for just $49!

And if you've bought Simon 4, thank you! Especially to the long-term customers who have used it and upgraded it over the years. I've still got an ever-expanding list of feature ideas, with work on version 4.3 starting soon!

Finally, if you are using Simon, one thing that would really help is to tell others about it. Tell your co-workers, friends, post on Twitter or Facebook, etc. Helping to spread the word is much appreciated, and goes a long way to supporting the app and its ongoing development.

Time Out tip: adding sounds

A frequently asked question about Time Out 2 is how to add more sounds.

There is a FAQ answer on this, but I thought I'd expand on it as a blog topic.

Firstly, refer back to a previous blog post on accessing the sound actions in Time Out. That shows where the "Play Sound" feature has moved in version 2. It is now much more powerful than in version 1, with the ability to play sounds before, during or after a break, and even gently fade out long sounds like music. That post also includes a video demoing adding Play Sound and Fadeout Sound actions.

Time Out comes with a number of built-in sounds that you can play, plus it lists all sounds you have installed on your Mac, which includes system default ones, and any you have added to the standard sound folders.

It's worth noting that you can also have Time Out play any music from your iTunes library, too.

Find more sounds

To add more sounds, you first need to find and download them from a website.

There are many sites that offer sounds of varying length, quality, themes, etc. Some for free, some as paid offerings. Usually with previews so you can listen before downloading.

Here are a few I've found; note that I don't endorse or recommend any particular site; these are just ones I encountered in a brief search. If you're aware of or find a better site, please post in the Time Out forum to share with others.

Add the sounds

Once you have the new sounds, you can easily add them in one of the standard folders to make them available to all apps that can play sounds, or add them to the "Sounds" folder within the Time Out data folder to only make them available in Time Out.

The system sound folders you can add to are in the following paths (tip: you can paste these paths into the Finder's Go ▶ Go to Folder... command to reveal them; if the folders don't exist, you can create them):

  • /Library/Sounds — for sounds available to all users of your Mac.
  • ~/Library/Sounds — where "~" means your home folder.

(There is a third folder, at /System/Library/Sounds, but you shouldn't modify that.)

On the other hand, Time Out's sounds folder is at one of the following paths, depending on which edition of the app you have:

  • ~/Library/Group Containers/6Z7QW53WB6.com.dejal.timeout/Sounds — for the direct edition.
  • ~/Library/Group Containers/6Z7QW53WB6.com.dejal.timeout.free/Sounds — for the Mac App Store edition.

While you can use the Finder's Go to Folder... command to access those, an easier way is to choose Reveal Scripts from the Add Action drop-down menu. That will show the Scripts folder, which is adjacent to the Sounds folder. (I do want to make this even easier in the next update.)

I hope this has been helpful!

Simon tip: Context filter

For a change of pace, I thought I'd discuss a Simon feature this time.

One of the many enhancements in Simon 4.0 was the Context filter. This is a sophisticated filter that takes the previous filter's input and match range to output some context around that filter's output text.

It includes controls to specify the maximum number of characters before and/or after the matched range, and/or a delimiter before and/or after the matched range. So for example you can show up to 50 characters, stopping at a line break.

This filter is unusual in that it requires a previous filter to be used, and that needs to be either a Block- or Find-based filter, as those are the only ones that output the needed match range information.

The Context filter uses the Input specified in the test to determine which filter's input and match variables to use: if you have two previous filters, you can make the Context filter look at the first one by choosing Filter1OutputText instead of the default FilterOutputText (which means the proceeding filter).

The match range is available in variables used by the Context filter, and can be used in your custom filters or notifiers if you wish:

  • {FilterMatchLocation}: the position of the match in the input text, e.g. the text between the Blocks, or the Find result. Note that the location is zero-based.
  • {FilterMatchLength}: The length of that match.
  • {FilterMatchEnd}: The location plus the length, for convenience.

You don't need to worry about these variables for the Context filter, though; it uses them internally.

Here's a simple example of this filter in action.

This is from a Web test that looks at the Daring Fireball site. It has a Find Required filter to look for the word "finally", then if that succeeds a Context filter to output the enclosing paragraph. To round it out, if the Find filter fails, the Override as Unchanged failure case is used, to avoid the test resulting in a failure if Gruber hasn't used the word "finally" recently.

Below the filters, you can see the Preview pane's output, which you'll notice includes the word "finally" towards the end.

Context filter screenshot

I hope this will be a useful filter for many of your tests. Simon is a powerful tool, with lots of other handy filters, services, and notifiers.

Time Out tip: adding to accessibility system preferences to enable idle detection

One of the features of Time Out is the ability to detect natural breaks, i.e. when your Mac is idle, not being used.

In version 1, this was detected via what I call the "Event Source" mechanism, but this can be unreliable for some people, as some apps can make it look like you are using the computer, when it's just an automated activity. So in version 2 I switched to a new approach, which I call "Event Monitor". This is generally more reliable, but has one downside: it requires a manual step by you to allow it, as discussed below. It can detect mouse or trackpad movement, but to detect keyboard activity you need to authorize it. Note that Time Out doesn't log or even watch what you type, it is just detecting any key press as a sign that you're actively using your computer.

Because not everyone wants idle detection at all, or would prefer the old approach, I added a preference on the Advanced Options page: "Natural break detection method". This pop-up menu includes options to disable idle detection altogether, or switch between the two approaches.

When you first launch Time Out, the second page of the Setup Assistant includes instructions on how to authorize idle detection. It's pretty simple, though a number of steps to navigate to the right place:

  1. Open System Preferences.
  2. Go to the Security & Privacy pane.
  3. Go to the Accessibility page in the sidebar.
  4. Go to the Privacy tab.
  5. Click the lock to make changes, if needed, and enter an admin username and password.
  6. Click the + button below the list.
  7. Find and choose Time Out in the resulting open file sheet.
  8. Confirm that Time Out appears in the list, with its box checked.

Since that could seem overwhelming, here's a very brief video demo:

(Or watch on YouTube.)

Time Out tip: sounds, scripts, and other actions

One of the frequently asked questions I've received about Time Out 2 is "where have the sounds gone?"

In version 1, there were separate tab pages for "Sounds" and "Scripts", each offering two options; the ability to play sounds or run scripts at the start and/or end of breaks.

Version 2 still has these features, but can do much more. So, instead of having numerous tab pages, it combines them into an "Actions" page:

[Actions page screenshot]

In addition to sounds and scripts, other actions include the ability to display a notification (with an optional sound), fade out the currently playing sound (useful at the end of the break), flash the screen a custom color, and speak some text with speech synthesis. Several scripts are provided, too.

To add an action, simply click the (+) button in the top-right corner of the window, to display a menu of available actions:

[Add action menu screenshot]

(When you first click this button, the scripts won't be there, and there will just be "More..." item at the end; choose this to install the scripts.)

The first bunch are the various actions, followed by scripts, which are like customizable actions. At the end of the menu are items to open the Scripts folder in the Finder, so you can edit or add scripts, and go to the Time Out Extras page to download more scripts.

Once you add an action, you'll see a header row with the name of the action and some other controls:

[Action header screenshot]

You can use the interval picker and pop-up menu to indicate when to use the action. The interval picker enables you to offset from the action stage by a number of seconds, minutes or even hours (click on the units to change them). Instead of just being able to play a sound at the start and/or end of a break, in version 2 you can choose from many more times, including before due, after skipping, and more:

[Action when menu screenshot]

After those controls is a Preview button, that will demonstrate the action. And a Remove button to remove the action.

Here is a brief video to demo the feature: adding a Play Sound action to play a long music track, and a Fadeout Sound action to make it fade out when the break successfully finishes. (You might instead want to have it fade out for any end, otherwise it'd keep playing till done if you skip.)

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.

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!):

Syndicate content