tips

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

The importance of a good backup strategy

Today I received a support email from a Simon customer who had a hard drive failure, and lost their data. Worse still, they were in the process of recreating their Time Machine backup at the time, so didn't have a backup.

That prompted me to post about my backup strategy. When you live your life and make your living on computers, there is little more valuable than the data they contain. So it is critical to protect it from a loss that could set you back years.

Fortunately nowadays most important data is in the cloud... various remote servers. For example, if you use iTunes Match, your music collection is safely on Apple's servers (well, hopefully safely). Photos are still at risk, but Apple is rolling out the iCloud Photos service that will keep them offsite. And other services like Dropbox help protect important documents... if you put them in there.

For myself, I have a multi-pronged data management and backup strategy.

In terms of data management, I use cloud services to sync my data between my iMac and MacBook Air, which has the added benefit of keeping offsite copies of the important data:

  • My documents are all stored in Dropbox.
  • My app source code is managed by Subversion (for my app-specific code) and Git (for my open source code).
  • My music, (soon) photos and other data are stored in iCloud.

In fact, I replaced the Documents folder in my home directory with a symbolic link to a Documents folder within the Dropbox folder, so all of my documents are safely in Dropbox. It's not necessary, but you can easily do this via a couple of simple Terminal commands:

sudo mv ~/Documents ~/Dropbox/Documents
sudo ln -s ~/Dropbox/Documents ~/Documents

The first command moves the Documents folder to within Dropbox, and the second one makes a symbolic link to that folder where the old Documents folder was. The sudo is needed as the OS will normally prevent moving the Documents folder; Terminal will prompt you for your password.

But that doesn't mean that backups aren't important too. Backups are useful to get back earlier versions of documents (via Time Machine), or provide redundancy in case a cloud service loses something, or just as a quick way to get back up-and-running. Plus, of course, protecting data like preferences that aren't included in Dropbox or other cloud syncing.

I use multiple services for backups, too:

  • I use Time Machine via a Time Capsule in a different part of the house to do hourly incremental backups of the most important files. Useful to get back earlier versions of documents.
  • I use SuperDuper! to make nightly exact clones of my SSD main drive and spinning media drive onto backup disks. Useful to quickly get back up-to-speed if a hard drive fails, or I need to revert an obscure file.
  • I use Backblaze to make nightly offsite backups of pretty much all of my files. Useful in case of a major disaster like my house burning down, or failure of one of the other backups.

(Full disclosure, if you use the Dropbox link to sign up I'll get more space, not that I need it, and you'll get 500 MB bonus space. And similarly that Backblaze link will give both you and I a free month of service.)

Your data is valuable — don't risk losing it when it is so easy to protect it!

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 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.

Want to go to WWDC? Simon can help!

There's a great sense of antici...pation in the developer community, awaiting tickets for Apple's Worldwide Developers Conference to go on sale.

The problem is, in recent years the tickets have been selling out in mere hours. In 2009, the 5,000 tickets sold out within a month. In 2010, they sold out in about 10 days. In 2011, it was only 12 hours. And in 2012, it only took two hours.

How fast will they go this year? Less than an hour? Half an hour? Minutes?

So there are a number of websites that offer to notify you when WWDC is announced, so you can get your ticket as quickly as possible — some where you pay to get notified sooner.

Of course, Dejal Simon is designed for just that kind of job. If you already have Simon, you can easily add a test to get notified. If you don't, you can download the free trial and try it yourself.

It's easy to add such a test. Simply create a new test (perhaps called "WWDC"), set the frequency to whatever interval you like (e.g. 5 minutes or even 1 minute), choose the Web (HTTP) service, and enter the http://developer.apple.com/wwdc URL. (The Cookies will automatically populate.)

If you like, you could add a second test for http://developer.apple.com/wwdc/tickets, in case that is updated first.

There's no need to alter the default Change filter on the Filters page; that will detect any change on the page. Since there isn't dynamic content to ignore, that's fine.

To get notified when a change is detected for this test, add whichever notifiers you want to the Notifiers page. Why not go crazy and add email, sound, Twitter and speech... and have the page open automatically in your default browser while you're at it:

Some of those notifiers you may need to configure, if you haven't previously, e.g. set up the email and Twitter ones. You can configure them to say whatever you like:

I hope this tip helps you manage to get a ticket!

Simon tip: take automated screenshots

Here's a handy tip for Simon, my flagship website and server monitoring tool:

Want to take regular screenshots of your computer automatically? Perhaps to record your progress or productivity, or make sure a child is using acceptable apps and websites? You might not think of Simon for such a job, but since its scheduler is always running (while Simon is running, anyway), it's a good fit.

Download and install the "Screenshot" service from the Simon Extras web page, then add a test using that service. It will take a screenshot and save it to a specified folder, at whatever frequency you specify for the test.

But wait, there's more! What if you want to take a screenshot of what a web page looks like, perhaps whenever it changes? You can do that, too. Download and install the "Show & Screenshot" notifier script, also from the Simon Extras page. Add that as a change notifier on a web test, and whenever the page changes, it'll be opened in your web browser, wait a bit for it to load, then take a screenshot. Handy!

Of course, being scripts, the behavior can be customized as needed. I hope one or both of these are useful!

Simon tip: watch MU Promo sales

As you may or may not know, MacUpdate Promo is having a fantastic bundle of 13 apps for just $49.99. Unfortunately, they somehow missed Dejal apps from the bundle, but maybe next time.

Anyway, Christian Owens, the mastermind behind another great series of bundles, Mac Bundle Box (which I have participated in previously, and will again for the next one), alerted me to a handy use of Simon: watching the sales figures for the MU Promo bundle.

I've long used Simon to watch download rates, reply counts, and other information, but this is another great example of how useful Simon can be. It looks at a specific portion of a page, and lists the new values when they change. By checking at a fixed interval, e.g. every 15 minutes or half an hour, you can see how fast it is selling, in this example.

[Simon Monitor]

Setting it up is simple: just enter the URL and the HTML source on either side of the interesting value. That's easy to find, too. While the Add Test window is open, click the Preview button to show the Preview window, Cmd-F to find the value, then select some distinctive text before it, and click the Copy to Test button to copy it to the Start text field. Repeat with text after the value, and Simon is smart enough to copy it to the End field. That's it!

[Simon Preview]
[Simon Edit Test]

Easy, and very useful.

Got a favorite trick with Simon? Let us know in the comments or Simon Forum.

Secret screenshot tips

I take a lot of screenshots while documenting my products. I used to use Ambrosia's Snapz Pro, but it started misbehaving (losing its hotkey), so I stopped. Nowadays, I find Apple's built-in screenshot tools quite adequate.

Firstly, of course, is the Grab application, located in your /Applications/Utilities folder. I only tend to use that when I need a timed screenshot, e.g. to record partway through an animation. It is quite useful for that, though: you activate the timed screenshot function, wait for the timer to run out, and it takes a shot of the whole screen in whatever state it is then. It can take a few attempts to get the precise animation frame I want, but it allows taking a shot while clicking and dragging, something the built-in screenshots can't. That was admittedly one of the strengths of Snapz Pro, too.

Built into the OS is the whole-screen screenshot hotkey, Shift-Cmd-3. This will save a PNG image of the whole screen (or multiple pictures if you have multiple screens) to the Desktop. (You can change the file format via a utility like Secrets if you wish. You can also change the hotkey via the Keyboard & Mouse system preferences.)

Perhaps slightly less well known is Control-Shift-Cmd-3, which saves the screenshot onto the Clipboard. Very handy for pasting into emails and such.

The one I find most useful is Shift-Cmd-4, though. This displays crosshairs with a coordinate display, and when you click-and-drag out a selection, the coordinates change to the selection size. Very handy. This saves the selected area to a PNG file.

Similarly, Control-Shift-Cmd-4 saves a selected region to the Clipboard.

These selection screenshot options are even more flexible than that, though. After invoking them, but before dragging a selection, you can press the Spacebar to highlight the window under the crosshairs. Clicking will then take a shot of that window, including the border.

While dragging a selection, there are more options. You can hold the Shift (Shift) key to constrain one axis — to keep the height the same while adjusting the width, or vice versa.

You can also hold the Option (Option) key to adjust the size around the center point, instead of from the point where you started dragging.

And you can hold the Spacebar in selection mode to reposition the whole selection, keeping the size the same. Very handy.

Finally, you can cancel the screenshot simply by pressing Escape. This can be useful on occasions other than just changing your mind: you can use the screenshot tool as a ruler, measuring the number of pixels of an object by dragging out a selection and reading the size display from the crosshairs, then hit Escape to exit without taking a shot.

Very useful. If anyone knows of any other tricks with the screenshot tools, please let me know!

Better living

With US Thanksgiving coming up tomorrow, I thought I'd take this opportunity to reflect briefly on ways to improve one's life.

Of course, I'd be remiss if I didn't start off by plugging my own contribution to this goal: Dejal Time Out, my handy Mac app that reminds you to take regular breaks, featuring both micro-breaks for a quick breath and longer breaks to get up, move about and stretch. If you're not already using Time Out, I really recommend it. Lots of people have written to tell me how much it has helped them. And it's completely free! Check it out.

But I also wanted to mention a couple of other things. Firstly is a blog posting sent to me by a fan of Time Out, listing 50 video games for physical therapy and rehab. These are games for the Wii and other gaming systems, plus other options, that make physical activity and recovery from injuries fun and easy. That seems like a great way to motivate people to exercise more, or help those who have limited options.

While physical well-being is important, a major area of stress for many people is financial worries — especially in these troubled economic times. An Australian friend of mine, Jason Anderson, has recently started a blog aimed to help people get this area of their lives under control: Live To Budget. The site has budgeting tips, money-saving recipes, and more. If money worries are getting you down, or you just think you could be spending your money more wisely, I recommend taking a look at this site.

Finally, back to the Thanksgiving theme, I just wanted to say that I am very thankful for my great customers. Spending money on Dejal software is always wise. :) Dejal has enjoyed significant growth this year, so thank you to those who have purchased my products, have donated for Time Out and my other free products, or who have provided feedback to help improve them. I have big plans for the coming year, so stay tuned!

I hope everyone has a safe and enjoyable Turkey Day, if you're celebrating it.

Caboodle's new Security preferences

Completing the series on Caboodle 1.2, here's information from the updated Caboodle User Guide, describing the new Security preferences:

The Preferences window is displayed via the Caboodle > Preferences... menu item. This is the Security page. It includes options for the encryption features.

Default password: This password is one that can be offered in the encryption and decryption sheets, if there isn't a password in the keychain for the entry, or a previously-entered password. It is therefore mainly useful when you launch Caboodle, if you don't store passwords in the keychain. This default password is also stored in the keychain, to keep it safe. There is no default password initially.

The following checkboxes are grouped by encrypting and decrypting, so you can have different behaviors for each if you prefer. These are evaluated in this order, so a keychain password takes priority over a previously entered one or the default password:

Offer the password saved in the keychain for this entry, if any: If this checkbox is selected, Caboodle will look in the keychain for a password previously used for this entry. If there is one, it will be offered in the encryption/decryption sheet. This is on by default.

Offer the password previously entered for any entry, if any: If selected, Caboodle will offer whatever password you most recently used for any entry. For example, if you encrypt an entry then select another entry and ask to encrypt it too, Caboodle will offer the same password as a suggestion. You can of course type another one if you wish. This defaults to on.

Offer the default password: This checkbox indicates that you want to be offered the default password, as entered above, if there isn't a password in the keychain or a previously entered password. This defaults to on.

Syndicate content