David Sinclair's blog

Dejal year in review: 2010

The year 2010 saw some big changes at Dejal, including the release of Tweeps for iPhone and iPad, sale of my first app to another company, and a major upgrade of my flagship Mac app:

I spent the first half of 2010 working on Tweeps, a free app for iPad, iPhone and iPod touch to easily manage Twitter accounts. It was an interesting experience; I had written two previous apps for iPhones (SmileDial and Valentines), but Tweeps was a much bigger project, and my first iPad app. It includes a lot of handy technology that I'll put to use in future iOS apps.

An interesting thing that occurred in 2010 was the sale of my first Mac OS X app. Narrator, my app to read out stories in multiple voices, was acquired by Mariner Software. That was quite an interesting experience; I'd never sold off an app before. But I still feel it was the best thing for everybody: I wasn't giving Narrator the love it deserved, and it's a great fit with Mariner's other apps. Based on that experience, I'll definitely consider offers on other of my apps, when appropriate.

Once I released a few bug-fix updates of my various Mac apps, I got to work on a major upgrade of Simon, my flagship product to monitor websites and servers for changes and failures. After five months of development, version 3.0 was released in November. The first major upgrade in five years, it included many great enhancements, especially powerful new filter features.

Caboodle, my lean clean snippet machine, only got a couple of bug fix releases (to version 1.3.6) in 2010. I had been hoping to do the 1.4 release at the end of 2010, but ran out of time. That may come in early 2011, or I may push it out till later in the year.

Similarly, BlogAssist, my tool to help with HTML markup, also only had two bug fix releases (to version 2.2.5) in 2010. It is a lower priority than my other Mac apps, since it is basically feature-complete now, though I do have a number of ideas for improvements, so hope to get an update out later in 2011.

My handy break reminder tool, Time Out, remains one of my most popular products, and it saw an update to version 1.5.6 in 2010. Version 2.0 has been in the works for a few years now, but it got postponed by Tweeps and Simon updates. It remains an important and exciting update, though, so I'm really looking forward to it. It is my top priority for 2011. I'm sure it'll be worth the wait. And as previously mentioned, everyone who makes a donation for Time Out now will be automatically eligible for the full-featured paid edition at no additional cost — so you can set your own price for it now! This offer expires when version 2 is released. Thank you to everyone who has already donated; the volume of donations is really encouraging.

So what's coming up in 2011? As indicated, the main focus will be Time Out 2. I also plan to do smaller, more frequent updates to Simon 3. The initial Simon updates will concentrate on features that will also be leveraged by Time Out 2 — it may not seem it, but they have a lot in common (e.g. scheduling, plugin usage, and behind-the-scenes things like app structure and data organization).

2011 also marks the 20 year anniversary of Dejal (in September). I'm looking forward to celebrating that remarkable milestone!

My year in cities, 2010

Time for my traditional list of the cities I spent one or more nights in during 2010:

  • Portland, OR (home)
  • Mexico cruise ship
  • Seattle, WA
  • Ashland, OR
  • Auckland, New Zealand
  • Tauranga, New Zealand
  • Wellington, New Zealand
  • New Plymouth, New Zealand
  • Opononi, New Zealand
  • Paihia, New Zealand

The Mexico cruise was a new experience — our first cruise ship vacation. We'll definitely do that again sometime in the future.

Visiting Ashland for the Shakespeare festival has become an annual tradition; we'll be back again in 2011.

The big trip for 2010 was the New Zealand tour. Four weeks visiting family and favorite places from when we lived there, and some new places, plus burying my father's ashes (he died in December 2009). I may blog more about it, once my wife has finished posting the photos.

(Compare to 2009, 2008, 2007 and 2006.)

Simon 3.0.1 released

Version 3.0.1 of Simon, my flagship website and server monitoring tool, is now available.

This update includes just a few fixes, though important ones:

  • Enhanced the Twitter plug-in to use a combo box for direct message recipients, and sort them alphabetically.
  • Fixed an issue that prevented the MySQL plug-in from loading.
  • Tweaked the help book to mention the Wi-Fi hotspot option in General Preferences.
  • Updated French and German localizations.

Download Simon 3.0.1 now!

Simon 3.0 released

I'm very excited to be able to announce that version 3.0 of Dejal Simon, my flagship Mac app to monitor websites and servers for changes or failures, is now in general release! The first major upgrade in five years, version 3 has been in development for five months. It includes many significant improvements, including a new Filter concept, new Activity log, redesigned (much nicer!) editor windows, and much more.

Licensed Simon 2 users need to be aware that Simon 3 is a paid upgrade from previous versions. You will need to purchase an upgrade license. If you purchased Simon since September 1, 2010, you are eligible for a free upgrade; contact Dejal to receive your free license.

Please also note that Simon 3 requires Mac OS X 10.5 (Leopard) or later.

Download Simon 3.0 now!

Read on for a summary of some of the many enhancements in Simon 3, or see the release notes for full details.

New Activity Log in the Monitor Window

Simon 3 replaces the Notifications log with a more comprehensive Activity log. It still lists notifications, but now also lists several other kinds of actions on tests. For example, it lists when a test is edited, paused, offline, started checking, stopped or completed. Plus it lists the output and status of the service and each filter. (What's a filter? Keep reading!)

The Monitor window also now has an optional Location column, which shows the URL, domain, or other properties of the service, where available. And other improvements, like smart zooming.

[Monitor window]
Redesigned Editor Windows

In version 2, the editor windows (Edit Test, Edit Service, etc) squeezed everything into the window at once, and used disclosure triangles to collapse (hide) portions. This was fine originally, but over time the windows have added more controls, and became way too busy, and too high to fit on smaller screens without hiding portions. The disclosure triangles were easy to overlook, too.

So in version 3, the editor windows have been redesigned. Instead of disclosure triangles, they arrange the controls on multiple tab pages. The new layout is tidier and simpler, without losing any functionality — and in fact works much better, since the windows can now be freely resized and zoomed.

Another enhancement is the addition of a Summary page, which contains the Name field and a new Comments text area. This is a great place to provide a description of the test, service, etc. And this description is displayed in tooltips in the pop-up menus in the Edit Test window, as a very useful quick reference when choosing a service etc. The Summary page also includes a handy overview of the values from the other pages. Click the prompt before each item to go directly to that item.

[Edit Test window]
Powerful New Filters

In Simon 2, we had a very handy Smart Change Detection feature, that could extract a portion of the service output (HTML or whatever), to ignore dynamic or uninteresting portions, and determine if it was different than the previous time the test was checked.

As great as that feature was, sometimes it's not flexible enough. What if you want to look at multiple portions, or the 10th occurrence, or simply remove HTML tags or numbers from the text? Or if you want to result in a failure if the text is found? Or only detect a change if a number changes by some threshold, or is out of range?

All of those and much more are now possible, and in fact really easy, thanks to the new Filters feature. Plus now you can combine multiple filters — they can chain together to refine or search the output text, or use different text as input. Lots of flexibility.

[Edit Test window]
Smarter Change Detection

Like Services and Notifiers, Filters are implemented as plug-ins, which can be customized in the new New / Edit Filter window.

The Block filter plug-in provides the functionality of the old Smart Change Detection feature (and your existing tests will be upgraded to use this filter, as needed). It also supports new options to search from the start or the end of the input text, and search for a specific occurrence of the text, e.g. start from the 3rd occurrence from the end of the text. Simply drag the little dot to the right of the fields to reveal these advanced options.

[Block filter]
Fabulous Find Filter

The Find filter plug-in is one of the most useful. This is as easy or powerful as you want: it supports both simple text matching and regular expression searches.

The Find filter plug-in can find one occurrence, find a specific occurrence (like for the Block plug-in), find all occurrences (outputting them separated by your choice of delimiter), or find & replace those possibilities, outputting something else for the match(es) — especially useful with regular expression searches.

When using simple text matching, you can find via Contains, Starts With, Whole Words, and Ends With. When using regular expressions, it includes a helpful menu of regular expression operators to help build expressions, including a dynamically-updating list of capture group markers for replacements — see a screenshot in the sidebar.

[Find filter]
Numeric Analysis

Sometimes you want to use some more subtle criteria for detecting a change or failure, like whether a number has changed by a certain amount. This is now possible, thanks to the Number filter.

Treating the input text as a number of course requires that it is a valid number, so this filter is typically used after a Find or Block filter to narrow down the text. It converts the text to a number, optionally ignoring specified characters, and with a customizable decimal separator so you can match the format of the text. Then it compares that number against either a fixed number, or the number from the previous check, plus or minus some delta. It can compare using "is", "is not", "is greater than", "is less than", "is in range" or "is not in range".

The Number filter can result in either a change or failure, as desired. So you can use this to detect if a disk is getting full, a price has changed by a specified threshold, a file count has changed, or many other uses.

[Number filter]
And More Filters

But wait, there's more! There is also an Override filter plug-in, which enables you to alter the status and/or output text. So, for example, there's a built-in filter to change any failure into success (and use the error message as the output text, so it detects a change when the error changes).

Similarly, there's a Format filter plug-in, which is much like the Override one, except it only changes the output text. It is particularly useful to combine the output of two or more previous filters, or wrap in quotes or other formatting.

And lastly but by no means least, like services and notifiers, filters also support the powerful Script filter plug-in. So you can write an AppleScript, shell script, or Perl, Python etc script to create a virtually infinite range of filtering options.

See the Simon Overview page for a list of the default filters in Simon 3.

Tasty Cookies

The Web (HTTP) service got some love, too. It now includes checkboxes in the Cookies table to control how to handle cookies. Checked cookies automatically update their values (as before). Cookies with blank values are now also supported; they are not sent. New cookies are recorded automatically. So you can prevent a cookie from being recorded by listing it with an unchecked box, e.g. to send the same value every time. Session cookies are now recorded as unchecked with blank values (so are not sent or updated).

[Edit Test window]
And Lots More Improvements

Too many things to list here! (See the release notes for the full list.) A few other highlights that might interest existing users include:

  • Added optional support for Wi-Fi hotspots. When enabled, Simon tries to fetch a known value when it is first launched or after the Mac wakes from sleep, and goes into a "hotspot" mode if it receives something unexpected — probably a hotspot login page. This will avoid having false failures when you have an internet connection but need to log in to the hotspot. This feature is disabled by default, but can be enabled via a new General preference if you have Simon on a laptop.
  • Twitter recently altered their authentication requirements. The Twitter plug-in now uses xAuth (a form of OAuth) to log in to the Twitter server.
  • Separated the Pause and Resume commands in the menu and toolbars, so it is easier to pause or resume all tests when there are a mixture of paused and active tests. Also, the Pause interval is now remembered as a default for next time, even across launches of Simon.
  • Reorganized the variables so filters and notifiers inherit their variables from the service — so for example a notifier has access to all service and filter variables.
  • Changed the Dock icon and status menu to show the number of Unviewed marked items, rather than the number of items with the indicated status, and to draw the yellow unviewed badge in the upper-right corner over the status triangle, instead of behind, to fit with normal badging conventions. The Unviewed marker is now used for failures and recoveries as well as changes.
  • Added a help book, using the standard Apple Help Viewer, and significantly reformatted it. The help can still be read online if you prefer (and easily toggled via the Help menu).
Try Simon 3

Ready to upgrade? Great! Purchase an upgrade license on the Dejal Store.

Still not sure? Try it for free! If you want to keep the old version around, just in case, you can rename it (e.g. to add the version number) rather than replacing it with the new version. That way they can both occupy the same folder without a file name conflict.

Your Simon 2 license will be recognized by Simon 3, and entitle you to the same number of Tests that you were allowed before. Note, though, that the same license levels will allow more Tests after you purchase an Upgrade license.

Simon 3 has renamed the license levels, and added a new one:

  • Bronze license enabling up to 15 tests.
  • Silver license enabling up to 40 tests.
  • Gold license enabling up to 100 tests.
  • Platinum license enabling unlimited tests.

You can upgrade from any Simon 2 license level to any Simon 3 one, and even downgrade (e.g. from Standard to Bronze) if you prefer. A great deal if you have a Simon 2 Basic or Standard license — get an unlimited Platinum license at a huge discount! Here are the upgrade options:

  • Upgrade Simon 2 to v3 Bronze: $19.
  • Upgrade Simon 2 to v3 Silver: $39.
  • Upgrade Simon 2 to v3 Gold: $69.
  • Upgrade Simon 2 to v3 Platinum: $99.

I hope you enjoy the many improvements in Simon 3!

Download Simon 3.0 now!

Simon 3.0b2 released

Another day, another Simon 3 blog post! (You can catch up on older Simon posts via this link, if desired.)

Today I'm releasing a second beta of Simon 3: version 3.0b2. This just has a few fixes and tweaks, including:

  • Added the ability to specify whether to view help in the Apple Help Viewer or your web browser: a simple selection in the Help menu.
  • The new help book is not compatible with Leopard, so web browser viewing is the only option on that OS version.
  • Fixed some minor typos in Simon and the help.
  • The version 3 licenses are now available for purchase via the Licenses window (still not required, though).
  • Minor adjustments to the license editor page.
  • Tweaked the default services data.

Download Simon 3.0b2 now!

Remember, the discounted prices will only remain for another few days, so buy now to save!

And again, if you bought Simon from September 1, 2010, you're eligible for a free upgrade. Contact me to request your free upgrade.

Simon 3 licenses now available

As previously discussed, Simon version 3 has new license levels, each with more tests than previously. I'm pleased to report that the Simon 3 licenses are now available for purchase — but still at Simon 2 prices, for another few days! This special deal will expire with the general release, currently scheduled for early next week. (I'm working on updating the website, and the localizers are hard at work translating Simon into their languages.)

Currently, the new licenses are only available via the PayPal-powered Dejal Store and the Kagi-powered Dejal Store. The TrialPay store should be updated soon. Update: the TrialPay and GetItFree stores have now been updated too, though they don't have the discounted pricing.

I've redesigned the store content for Simon, to make it easier to pick the right license. Please let me know if you experience any difficulties with your purchase.

The new Simon 3 license levels are as follows:

  • Bronze license enabling up to 15 tests: $49 — buy now for just $29.95 and save $19!
  • Silver license enabling up to 40 tests: $99 (25% per-test discount over Bronze) — buy now for just $59.95 and save $39!
  • Gold license enabling up to 100 tests: $199 (40% per-test discount over Bronze) — buy now for just $99.00 and save $100!
  • Platinum license enabling unlimited tests: $499 — buy now for just $195 and save $304!

Simon 3 represents many months of work, and includes lots of great new features, so is a paid upgrade for version 2 customers. It's been over five years since 2.0, so it's well and truly due. Note that the upgrade pricing has changed a little from my previous announcement, based on initial feedback:

  • Upgrade Simon 2 to v3 Bronze: $19.
  • Upgrade Simon 2 to v3 Silver: $39.
  • Upgrade Simon 2 to v3 Gold: $69
  • Upgrade Simon 2 to v3 Platinum: $99.

Worth noting is that you can upgrade (or downgrade!) to any license level. So if you have a version 2 Standard license and want to go up to a Platinum license in one step, now's your chance; all you need is the Platinum upgrade. Similarly, if you have a v2 Enterprise license, and want to save some money, you can upgrade to v3 and downgrade to Gold in one step, via the Gold upgrade.

Upgrading license levels while upgrading to version 3 will save you a lot of money over upgrading license levels later, so this is a great opportunity to re-evaluate your needs.

I'm happy with these prices; they seem very fair, especially when compared against other high-end software upgrades (e.g. QuickBooks is $229, upgrade for $199; Aperture is $199, upgrade for $99). But if you have any feedback about them, I'm still interested to hear from you in the comments or via email.

Remember, the discounted prices will only remain for another few days, so buy now to save!

And again, if you bought Simon from September 1, 2010, you're eligible for a free upgrade! Contact me to request your free upgrade.

Simon 3.0b1 released

I'm very happy to announce the first public beta release of Simon version 3!

As discussed in my previous blog post, I've been working on Simon 3.0 (nee 2.6) since May. It really is worthy of the major upgrade designation.

This update of Simon has been in private testing (by myself and a small group of alpha testers) for months, and I have some external time constraints, so I'm planning on having a very short public beta cycle this time — maybe only a matter of days. So I would really appreciate everyone downloading and putting Simon 3.0b1 through its paces as quickly as possible. Everything seems fine from our testing, but you never know what will turn up when a wider group of people start using it.

Note that although Simon 3 will be a paid upgrade, all licensed users can use version 3.0b1 without needing to buy an upgrade (and in fact the upgrade license isn't available quite yet). If you're not sure you'll upgrade, I recommend making a copy of your Simon data, as certain changes made in version 3 won't be backwards compatible to version 2.5.7.

If you haven't bought Simon yet, this is your last chance to get it at the old prices! The prices will be increasing in version 3, but everyone who buys now (and since September 1, 2010) will be eligible for a free upgrade. Don't delay!

I haven't updated the Simon website yet (that's this week's mission), but the new Simon Help is online — the same content as in the help book bundled with the app.

Anyway, without further ado, download Simon 3.0b1 now!

Here are the rather long release notes, detailing all the exciting changes:

Please Note:

  • Simon 3 will be a paid upgrade from Simon 2 (after the beta period).
  • Simon now requires a minimum of Mac OS X 10.5 (Leopard).

Monitor window:

  • Renamed the Notifications log as Activity, and extended it to support logging when tests start checking, and the various steps during the check (starting, stopping, service result, each filter, notifications, etc), plus other actions on tests, e.g. editing, pausing, etc.
  • Added an optional Location column to the tests table. It can be shown via the View Options sheet. It shows the URL, domain, or other properties of the service, where available.
  • Added a File > Save Log... command to enable saving the current log information to a tab-delimited text file. It saves just the selected lines if there are at least two selected, otherwise all lines. (You can already copy selected lines, too.)
  • Sorting on the Status column now sorts so checking is at the top, followed by failure, changes, recovery, and paused at the bottom (with time-sensitive statuses in chronological order).

Editors:

  • Redesigned the editor windows (New / Edit Test, New / Edit Service, etc) to use separate pages instead of disclosures for each section. The old layout had grown too tall over time, so that it no longer fit on a small screen with all sections disclosed. The new layout is tidier and simpler, without losing any functionality.
  • The editor windows can now be freely resized and zoomed as desired.
  • Added a Summary page, that includes the name and a new Comments field, plus an overview of the values from the other pages. Click the prompt before each item to go directly to that item.
  • The Username and Password fields are now only shown on the Service page when the service wants them.
  • Rows can now be inserted in the notifiers, auto-pause, etc lists, rather than just adding to the end (and they'll scroll if too long for the window).
  • Fixed an issue where the services in the pop-up menu in the New / Edit Test window could appear out of alphabetical order.
  • Clicking the Edit Service..., New Notifier..., etc buttons in the Edit Test window now directly opens the corresponding editor, rather than opening its list window first.
  • When creating a new test, service, etc, now remembers the last-chosen service in the Edit Test window, and last-chosen service, filter, notifer & report kind in the those editors.
  • In the Edit Test window, the pop-up menus to choose the service, filter, notifer & report now show the new Comments text as a tooltip for each menu item, and on the chosen item, as a handy way to quickly see a description of each item.

Filters:

  • Added a new Filters feature, replacing the old Smart Change Detection feature in the Edit Test window. The Block filter performs the same function as that old feature, plus several other filters are supported to do other analysis of test output, and you can write custom scripts to create additional filters.
  • Added a Filters window listing the available filters, and enabling adding, editing or deleting them.
  • Added an Edit Filter window to add and edit filters, much the same as the Edit Notifier etc windows. It includes options to configure how the filter is used, plug-in-specific controls, and auto-pause settings.
  • Added a Block filter plug-in to support the old Smart Change Detection functionality. It extracts a block of text between specified start and end text.
  • The Block filter also supports new options to search from the start or the end of the input text, and search for a specific occurrence of the text, e.g. start from the 3rd occurrence from the end of the text.
  • Added a Find filter plug-in. This is as easy or powerful as you want: it supports both simple text matching and regular expression searches.
  • The Find filter plug-in can find one occurrence, find a specific occurrence (like for the Block plug-in), find all occurrences (outputting them separated by your choice of delimiter), or find & replace those possibilities, outputting something else for the match(es) -- especially useful with regular expression searches.
  • For simple text matching mode, the Find plug-in supports finding Contains, Starts With, Whole Words, and Ends With. For regular expression mode, it has a helpful menu of regular expression operators to help build expressions, including a dynamically-updating list of capture group markers for replacements.
  • Find-based filters can even result in a failure if the text was or wasn't found, if desired -- useful to detect text that mustn't or must be there.
  • Added a Format filter plug-in. This enables the combination of values from the service and filters, via an insert variable menu, along with your own text. Handy to append the output of multiple filters, wrap something in quote marks, and other uses.
  • Added a Number filter plug-in. This expects the input text to be a valid number, so is typically used after a Find or Block filter to narrow down the text. It converts the text to a number, optionally ignoring specified characters, and with a customizable decimal separator so you can match the format of the text. Then it compares that number against either a fixed number, or the number from the previous check, plus or minus some delta. It can compare using "is", "is not", "is greater than", "is less than", "is in range" or "is not in range". It then results in either a change or failure, as desired. So you can use this to detect if a disk is getting full, a price has changed by a specified threshold, a file count has changed, or many other uses.
  • Added an Override filter plug-in. You can use this to alter the status of a test from Unchanged, Changed, Failure, or from a success status (the first two), or any status, into a different status, including automatically detecting if a change occurred. You can also alter the output text or error message, including using variables (similar to the Format plug-in).
  • Extended the Script plug-in to work as a filter, too. This enables you to create your own custom filters using AppleScript, Perl, PHP, Python, Ruby, or unix shell scripts.
  • Added a checkbox to the Script filter editor to control whether to merge or override the result of the script with the status of the service and any previous filters.
  • Added a VariablesCSV variable, that outputs a comma-separated list of all other variable names. Potentially useful when debugging your scripts.
  • Added several default filters as useful examples to get you started with these powerful new features.

Services and Notifiers:

  • Enhanced the Web (HTTP) service plug-in to include checkboxes in the Cookies table: checked cookies automatically update their values (as before). Cookies with blank values are now also supported; they are not sent. New cookies are recorded automatically. So you can prevent a cookie from being recorded by listing it with an unchecked box, e.g. to send the same value every time. Session cookies are now recorded as unchecked with blank values (so are not sent or updated).
  • Updated the Twitter service and notifier plug-in to use xAuth (a form of OAuth) to log in to the Twitter server, since they no longer support the old-style "basic" authentication.
  • Added a FileMaker Server service, which simply checks that it can connect to a FileMaker Server, and gives an error if not.
  • Added an Internet Access service, which lists applications/processes that are using internet access. You could use this with a Change filter to see when such apps launch or quit, or with a Find filter to confirm that a desired or undesired app is listed.
  • Reworded the TestStatusPhrase variable to eliminate the word "just", since the event may have occurred a while ago, if it is an ongoing failure.
  • Script-based services and notifiers now use UTF8 encoding (instead of ASCII) for the script source, to prevent issues with special characters in AppleScripts.
  • The new VariablesCSV variable is available for services and notifiers, too.
  • Notifiers have access to the new filter variables, too.

Other:

  • Updated the report variables to reflect the Activity log change. The old variables will continue to work, but there is now an Activity block, and new Type, Status and Details variables.
  • Separated the Pause and Resume commands in the menu and toolbars, so it is easier to pause or resume all tests when there is a mixture of paused and active tests.
  • The Pause interval is now remembered as a default for next time, even across launches of Simon.
  • Added optional support for Wi-Fi hotspots. When enabled, Simon tries to fetch a known value when it is first launched or after the Mac wakes from sleep, and goes into a "hotspot" mode if it receives something unexpected -- probably a hotspot login page. This will avoid having false failures when you have an internet connection but need to log in to the hotspot. This feature is disabled by default, but can be enabled via a new General preference if you have Simon on a laptop.
  • Removed the Copy to Test function from the Preview and Source windows, since it is incompatible with the new filters features. You can easily copy selected text and paste into whichever field of whichever filter.
  • Improved handling of sorting all table columns.
  • Clicking the window zoom boxes will now zoom the windows to ideal sizes.
  • The Dock icon now displays a "static" animation while the License Assistant is displayed, to help remind that the tests are awaiting a response.
  • Changed the Dock icon and status menu to show the number of Unviewed marked items, rather than the number of items with the indicated status, and to draw the yellow unviewed badge in the upper-right corner over the status triangle, instead of behind, to fit with normal badging conventions.
  • The Unviewed marker is now used for failures and recoveries as well as changes.
  • Fixed an issue with loading test data that could result in losing data if one of the plug-ins has a problem setting itself up.
  • Added a new license level, and renamed them from "Basic", "Standard" and "Enterprise" to "Bronze", "Silver", "Gold" and "Platinum".
  • Added a help book, using the standard Apple Help Viewer. The help is also available online.
  • Significantly reformatted the help, to fit with the normal help book styles, and updated for the changes in this release.
  • Many other behind-the-scenes improvements made possible by dropping Tiger support.

Announcing Simon 3.0!

I'm really excited about this. As you know, I've been working since May on version 2.6 of Simon, my flagship Mac app to monitor websites and servers for changes or failures. I've had a number of people tell me that this update is more than significant enough to instead be called 3.0, but I resisted for quite a while.

Version 2.0 was back in 2005. I've been planning version 3.0 since 2006, and have lots of great improvements planned, of which 2.6's filters and activity log features are two... but realistically, too many to squeeze into a single update.

So I've decided that 2.6 will be released as 3.0, with those changes and a couple more much-requested ones I've been saving for 3.0. Then I'll follow it with more frequent, smaller incremental updates, to add the other enhancements on my v3 plan. Version 3.0 lays a great foundation, and 3.1, 3.2, etc will provide the fulfilment.

You can read about the changes already in the forthcoming 3.0 release in my recent Simon-releated blog posts. I'm currently finishing up a move of the User Guide to a help book, then will work on the aforementioned much-requested enhancement: a redesign of the Edit Test window (and other editors) to use multiple pages, instead of disclosures. That window has grown over the years, and is now way too busy, and too high to fit on smaller screens without hiding portions. Even more so with multiple filters in the new version. If I have time, I'll also rewrite the scheduling system (to replace the sometimes confusing Auto-Pause feature), though that might wait for 3.1.

My goal is to have 3.0 released around the start of November. I'll have a beta release next week.

Another change planned for 3.0 is to replace the license levels with four levels, each with more tests than previously, as follows:

  • Bronze license enabling up to 15 tests: $49.
  • Silver license enabling up to 40 tests: $99 (25% per-test discount over Bronze).
  • Gold license enabling up to 100 tests: $199 (40% per-test discount over Bronze).
  • Platinum license enabling unlimited tests: $499.

And as now, you'll be able to upgrade from one level to the next, simply by paying the price difference:

  • Upgrade Bronze to Silver: $50.
  • Upgrade Silver to Gold: $100.
  • Upgrade Gold to Platinum: $300.

As you might expect, 3.0 will be a paid upgrade for version 2 customers. It's been over five years since 2.0, so it's well and truly due. The planned upgrade pricing seems quite reasonable:

  • Upgrade v2 Basic to v3 Bronze: $19 (simply price difference between Basic and Bronze).
  • Upgrade v2 Standard to v3 Silver: $39 (simply price difference between Standard and Silver).
  • Upgrade v2 Enterprise to v3 Gold: $99 (a new license level).
  • Upgrade v2 Enterprise to v3 Platinum: $149 (half the price difference between Enterprise and Platinum).

Adjusting prices is always a nervous situation, so if you have any feedback about the new pricing, I'd be interested to hear from you in the comments or via email.

Did you buy Simon recently, or thinking about buying? Not to worry: everyone who purchased Simon from September 1, 2010 is eligible for a free upgrade! I'll provide information on how to upgrade later.

So if you're thinking about buying Simon, or upgrading your license level, you've now got a great opportunity — I'm leaving the prices at their old levels until 3.0 is released, so if you buy now, you can get 3.0 at a significant discount — e.g. save $39 on a Silver license by buying a Standard license now for just $59.95, or save a whopping $304 on a Platinum license by buying an Enterprise license for $195!

Buy now to save!

Don't delay; only a couple of weeks until the new prices take effect.

I hope everyone is as excited about Simon 3.0 as I am. It's a great upgrade, a long time coming.

Simon Standard in Webilicious Design Bundle!

Appilicious

As long-time readers of my blog will know, I'm a fan of bundles as a marketing mechanism. They help expose apps to a wider audience, and encourage people who normally might not buy an app to give it a go, by getting a great deal for several apps at once.

So when a new bundle comes along, chances are I'll agree to participate. The latest such bundle is from Appilicious, and is called the "Webilicious Design Bundle".

As the name would suggest, this bundle has a focus on web design. It's a little different than many others, in that it includes non-software products amongst the software, including design themes and 6 months hosting at my favorite web host, Site5.

As for my contribution, I'm including the full Standard license of Simon, my flagship app to monitor websites and servers for changes or failures. The Standard license normally sells for $59.95, and the entire bundle costs only $49.99, so if you want Simon, you're saving $10 and effectively getting all those other goodies thrown in for free. What a great deal!

Simon is a powerful app, and soon will be even more powerful — I'm putting the finishing touches on version 2.6, which adds a powerful new filter feature, and lots more. See the recent Simon-related blog posts for more information.

Click here to take advantage of this great bundle, before it expires!

Simon 2.6 sneak peek update: Activity log

As mentioned in my Simon 2.6 progress report a few days ago, this version includes another big change.

In prior versions, the Simon Monitor window included a Notifications log, which listed when notifiers are used. This is quite useful, but could be more useful by listing other interesting things.

I've been thinking about adding more logging for quite a while, but the new filter feature really brought home for me the need for it, since I wanted some way to see what each filter is outputting. Especially useful for filters using powerful regular expressions and such.

So version 2.6 now replaces the Notifications log with a more comprehensive Activity log. It still lists notifications, but now also lists several other kinds of actions on tests. For example, it lists when a test is edited, paused, offline, started checking, stopped or completed. Plus it lists the output and status of the service and each filter.

The report variables have also been updated to reflect the new Activity log. The old variables will continue to work, but there is now an Activity block, and new Type, Status and Details variables.

Here's a screenshot of the log area of the Simon Monitor window, showing the new Activity log. In the top five lines, you can see Simon starting checking the "Filter test 2" test, the status and output of the Web service, the output of the two filters, and the successful completion of the test:

(Click to embiggen)

Want to try it yourself? Just ask!

Simon 2.6 sneak peek update: Format, Number & Override filters

Time for another Simon 2.6 progress report!

We're getting very close to being ready for a beta release. I just need to update the User Guide, which may be moving into a help book (but will remain online too), and tidy up a few areas. If you want to try the latest alpha release, and help me test these new features, please contact me for the download URL (sorry, only available to licensed users for now).

Since the last update, I've added three new filter plugins: Format, Number and Override. These will all be very useful in analyzing the output of services and other filters.

Here are the release notes on these new features:

  • Added a Format filter plug-in. This enables the combination of values from the service and filters, via an insert variable menu, along with your own text. Handy to append the output of multiple filters, wrap something in quote marks, and other uses.
  • Added a Number filter plug-in. This expects the input text to be a valid number, so is typically used after a Find or Block filter to narrow down the text. It converts the text to a number, optionally ignoring specified characters, and with a customizable decimal separator so you can match the format of the text. Then it compares that number against either a fixed number, or the number from the previous check, plus or minus some delta. It can compare using "is", "is not", "is greater than", "is less than", "is in range" or "is not in range". It then results in either a change or failure, as desired. So you can use this to detect if a disk is getting full, a price has changed by a specified threshold, a file count has changed, or many other uses.
  • Added an Override filter plug-in. You can use this to alter the status of a test from Unchanged, Changed, Failure, or from a success status (the first two), or any status, into a different status, including automatically detecting if a change occurred. You can also alter the output text or error message, including using variables (similar to the Format plug-in).

Here's a screenshot of the filter portion of the Edit Test window, showing a Find filter using a regular expression to output the RSS feed URL of a web page — which you may recognize from a previous update. Here, I've added a Format filter after the find, which outputs the test name before the output of the Find filter, and wraps that in quotes:

Here's one of the built-in Number-based filters, showing its Edit Filter window. This will result in a failure with a custom error message if the input number is more than 95 — useful when looking at a percentage, e.g. disk usage. You can of course add additional filters (or customize this one in the Edit Test window) to handle other cases:

Another Edit Filter screenshot, this time showing a built-in Override filter. This can be used to change a failure into a success. The output text will be the error message, so it'll result in a change status if the error changes:

Lastly, here are three filters in the Edit Test window, based on the Block, Number and Override plugins. This test looks at Apple's store page for a specific product, and uses the Block filter to extract the price, the Number filter to result in a change if the price is different than the previous check by at least $5 (plus or minus), and the Override (if a failure occurred) to alter the failure to unchanged status, and alter the output to indicate that the price couldn't be determined:

I hope that gives a hint at the power and flexibility of the new filters features — and remember that they also support scripts, so you can create new filters to do pretty much anything.

The latest alpha release also includes another big change, which I'll discuss in a few days.

Want to try it yourself? Just ask!

Where things are at

I've have been rather quiet of late, haven't I? I thought I'd post a status update, as preview of my traditional end-of-year summary.

I spent the first half of 2010 working on Tweeps, a free app for iPad, iPhone and iPod touch to easily manage Twitter accounts. It was an interesting experience; I had written two previous apps for iPhones (SmileDial and Valentines), but Tweeps was a much bigger project, and my first iPad app. It includes a lot of handy technology that I'll put to use in future iOS apps.

After releasing a few bug-fix updates of my various Mac apps, I got to work on version 2.6 of Simon, my flagship product to monitor websites and servers for changes and failures. This is a significant update, and I've blogged about it a number of times recently, showing sneak peeks of some of the new features. Work on it progresses nicely. Recently Daniel was able to update the Twitter plugin to work with the new OAuth authentication scheme required with Twitter. I'm hoping to have Simon 2.6 ready for beta testing around mid-October, with a general release around mid-November. (And in the meantime, contact me if you want to try a sneak peek release — available to licensed users only.)

An interesting thing that occurred a little while ago was the sale of my first Mac OS X app. Narrator, my app to read out stories in multiple voices, was acquired by Mariner Software. That was quite an interesting experience; I'd never sold off an app before. But I still feel it was the best thing for everybody: I wasn't giving Narrator the love it deserved, and it's a great fit with Mariner's other apps. Based on that experience, I'll definitely consider offers on other of my apps, when appropriate.

After Simon 2.6 is out, assuming I have time, I'm going to close out the year with version 1.4 of Caboodle, my lean clean snippet machine. This update will include some much-requested new features, like a default font preference, encryption of child entries with the parent, and more. If Simon takes longer than anticipated, this might get pushed to next year, but I'm hoping I can get it done this year.

Next year I want my top priority to be finishing off version 2.0 of Time Out, my very handy break reminder tool. I had wanted to finish it last year, but it got postponed by Tweeps and Simon updates. It remains an important and exciting update, though, so I'm really looking forward to it. I'm sure it'll be worth the wait. And as previously mentioned, everyone who makes a donation for Time Out now will be automatically eligible for the full-featured paid edition at no additional cost — so you can set your own price for it now! This offer expires when version 2 is released. Thank you to everyone who has already donated; the volume of donations is really encouraging.

So that's where things stand now, and for the next few months. I have big plans for several of my apps after that, but I don't want to talk about future plans too much, since everything is always subject to change. What's important to me is that everything I release is of the best quality, not that I meet arbitrary deadlines. That's just the way I roll.

Octagonal dream house

I've always enjoyed looking at house plans. Many years ago, back around 1995, I had fun imagining an ideal house plan with an octagonal shape. It just seemed an intriguing shape for a house. I particularly liked the idea of having a large courtyard in the center of the house, with a private patio and swimming pool.

I sketched out a house plan based on my ideas, drawing it in the now-obsolete ClarisWorks application. Recently I came across the old file and converted it to PNG so I'd be able to continue viewing it and reminiscing:

(The above notes are part of the original image.)

The plan still has some good ideas, including some things that have become popular in modern luxury houses, like a media room... and some things are are no longer all that relevant, like a photography dark room (though my wife is still keen to have one for B&W photography). I'm sure I would do lots of things differently now, though I still like the general layout.

Now that I live in the US, it's interesting to be reminded of some of the NZ terminology. For example, we'd say "master bath" instead of "master ensuite", "living room" or "great room" instead of "lounge", and "sliding glass door" instead of "ranchslider". The 4-car garage is definitely an American touch, though. :)

Oh, and for those who don't think in meters, 16m is about 52.5'. So the house is about 105' across, all on one level, apart from the basements. Which makes it somewhere in the range of 5,000 square feet, if my rough math is right. Quite big!

Nowadays, I'm more enamored by Queen Anne Victorian house styles. For example, this plan is pretty much ideal in my book. I just love the pointy bits. :)

Simon 2.6 sneak peek update: Find filter

As mentioned in previous blog posts, I'm working on version 2.6 of Simon, my flagship Mac app to monitor websites and servers for changes and failures.

A few brave/lucky people have tried the previous alpha release, and didn't find any problems with it, which is always reassuring. Now I have another alpha available. It is only available to licensed users currently; it'll be opened up to everyone once in beta. If you want to try it, and help me test these new features, please contact me for the download URL.

I spent the past week working on a new filter plugin. It turned out to be one of the most powerful (and code-intensive) features of Simon, second only to the Script plugin.

I was originally planning on having separate "Keyword" and "Regular Expression" plugins, but decided that it'd make more sense to combine them into one, since they have a lot of commonality. So the new plugin is called simply "Find", and it supports both.

Here are the release notes on this new feature:

  • Added a Find filter plug-in. This is as easy or powerful as you want: it supports both simple text matching and regular expression searches.
  • The Find filter plug-in can find one occurrence, find a specific occurrence (like for the Block plug-in), find all occurrences (outputting them separated by your choice of delimiter), or find & replace those possiblities, outputting something else for the match(es) -- especially useful with regular expression searches.
  • For simple text matching mode, the Find plug-in supports finding Contains, Starts With, Whole Words, and Ends With. For regular expression mode, it has a helpful menu of regular expression operators to help build expressions, including a dynamically-updating list of capture group markers for replacements.
  • Find-based filters can even result in a failure if the text was or wasn't found, if desired -- useful to detect text that mustn't or must be there.

Here's a screenshot of the filter portion of the Edit Test window, demonstrating some of the power of regular expression-based filtering, to output the RSS feed URL of a web page. Notice that it outputs just the contents of the first capture group (the portion between parentheses), rather than entire match:

And a simple text match in the Edit Filter window:

The little drop-down menu with the magnifying glass icon hides a lot of power; use it to choose the find or find & replace mode, text matching or regular expressions, and other options. In regex mode it lists lots of regex operators as a handy guide; just choose one to insert it into the find or replace field (as appropriate):

Lastly, as another example, here's the filter portion of the Edit Filter window showing one of the built-in regular expression-based filters, that uses Find All to list all URLs in the input as a comma-separated list (and result in a failure if there aren't any):

Want to try it yourself? Just ask!

Narrator has moved to Mariner Software site

As discussed in a blog post a couple of months ago, my first Mac OS X application, Narrator, was acquired by Minneapolis-based Mariner Software, Inc.

The intervening time has been a transition period, as Mariner updated Narrator to use their branding, licensing, and so forth, and as their support staff got up-to-speed with the app. That process has now been completed, and Narrator is now available on their website.

Visit Mariner's Narrator web page for more information about the rebranded Narrator.

Sales and support for Narrator are now handled by Mariner. Existing Narrator 2 customers can update to the Mariner-branded edition at no cost. If you have any queries about it, please check out their helpful support resources.

I'll be interested to hear your experiences with this transition. If you have any comments (good or bad), please get in touch.

Back to school specials!

On occasion, independent developers like to band together to offer great deals, and help introduce their customers to other great indie products.

One such deal has just been introduced: iAppsForStudents. This is focused on students returning to school around this time (in the US, at least) — but the deals are open to anyone interested in learning about new software.

I'm pleased to participate in this promotion. I've added a coupon code "BACK2SKOOL"; simply click this link to go to the Dejal Store, and the coupon will be already applied for you.

The coupon will give you great discounts on my Mac products. For example, get Simon Standard for just $49.95 instead of the regular $59.95 ($10 off), or get the Enterprise license for just $145 instead of $195 ($50 savings)! Similarly, get $5 off Individual or Household licenses of Caboodle and BlogAssist.

The iAppsForStudents promotion runs until the end of August, but my coupon will continue until the end of September. But don't delay!

And don't forget to check out the other great participating Mac, iPad and iPhone apps with their own coupons, listed on the iAppsForStudents site.

Simon 2.6 sneak peek now available

As discussed in my previous blog post, Simon version 2.6 is coming along nicely.

I am now ready to let a few brave souls try it. See that previous blog post for a list of the changes in this version.

If you'd like to start using an alpha release of Simon 2.6, and help me test the new filter feature and other changes, please contact me, and I'll give you the sooper sekret download URL for this version. Note: only licensed Simon customers can run alpha releases.

Although I've tested it, and it seems bug-free based on my testing, there may be bugs that I haven't found. So I want to limit the number of people using it for now. Once it's had some successful alpha testing, I'll open it up to more people, and once it's feature-complete, I'll do public beta releases.

I'll ask alpha testers to take an extra precaution: you should make a copy of your Simon data (located at "~/Library/Application Support/Dejal/Simon", where "~" means your home folder), just in case. If you want to revert back to version 2.5.7, the data should remain compatible, though any filter changes won't be reflected in that version.

The current Simon 2.6 alpha comes with two filters by default: "Block" and "Change". Both use the "Block" filter plugin; the difference is simply that "Block" includes the Start and End fields in the Edit Test window, like Smart Change Detection, and "Change" doesn't. Both will detect a change.

When you upgrade, existing Smart Change Detection settings should be automatically converted to the corresponding filter settings. Tests with change detection disabled will have no filter; tests with change detection enabled but blank fields will have one "Change" filter; tests with Start and/or End text entered will have one "Block" filter.

No Script-based filters or other filter plugins are included in this release, but they will be added in future updates. I'd really appreciate it if you wanted to write some Script-based filters that I could bundle with the app.

I hope that the alpha testers will try the various new features of Simon 2.6, and let me know of any problems or areas for improvement.

If you're a licensed Simon user and want to try Simon 2.6, please contact me for the download URL.

Simon 2.6 progress report

Since people have been asking and are eagerly awaiting the forthcoming Simon 2.6 release, I thought I'd give a progress report.

Simon 2.6 is coming along nicely. Software development takes time, and the filter feature is quite complex, but the infrastructure is finished, and the Block plugin (which implements the existing Smart Change Detection and more) is done, plus Script plugin support is implemented and being tested now. I then want to add a couple more plugins, though I might do an alpha release once Script is finished.

Here's a teaser screenshot of some filters used in the Edit Test window; notice specifying the input text for each, and advanced options on the second filter (the third one doesn't actually have any additional effect; the Block filter detects changes too):

And the Edit Filter window showing a Script-based filter, which will look familiar to existing Simon users, since it's quite similar to Edit Service etc:

As useful and powerful as the new filter feature is, it isn't the only change in 2.6 by a long shot.

Here are the current release notes, as a sneak peek of the goodies coming in this new version. More stuff will be added before the first beta release, too:

Filters:

  • Added a new Filters feature, replacing the old Smart Change Detection feature in the Edit Test window. The Block filter performs the same function as that old feature, plus several other filters are supported to do other analysis of test output, and you can write custom scripts to create additional filters.
  • Added a Filters window listing the available filters, and enabling adding, editing or deleting them.
  • Added an Edit Filter window to add and edit filters, much the same as the Edit Notifer etc windows. It includes options to configure how the filter is used, plug-in-specific controls, and auto-pause settings.
  • Added a Block filter plug-in to support the old Smart Change Detection functionality. It extracts a block of text between specified start and end text.
  • The Block filter also supports new options to search from the start or the end of the input text, and search for a specific occurrence of the text, e.g. start from the 3rd occurrence from the end of the text.
  • Extended the Script plug-in to work as a filter, too. This enables you to create your own custom filters using AppleScript, Perl, PHP, Python, Ruby, or unix shell scripts.
  • Added a checkbox to the Script filter editor to control whether to merge or override the result of the script with the status of the service and any previous filters.
  • Added a VariablesCSV variable, that outputs a comma-separated list of all other variable names. Potentially useful when debugging your scripts.

Services and Notifiers:

  • Enhanced the Web (HTTP) service plug-in to include checkboxes in the Cookies table: checked cookies automatically update their values (as before). Cookies with blank values are now also supported; they are not sent. New cookies are recorded automatically. So you can prevent a cookie from being recorded by listing it with an unchecked box, e.g. to send the same value every time. Session cookies are now recorded as unchecked with blank values (so are not sent or updated).
  • Reworded the TestStatusPhrase variable to eliminate the word "just", since the event may have occurred a while ago, if it is an ongoing failure.
  • The new VariablesCSV variable is available for services and notifiers, too.

Other:

  • Added a File > Save Log... command to enable saving the current log information to a tab-delimited text file. It saves just the selected lines if there are at least two selected, otherwise all lines. (You can already copy selected lines, too.)
  • Separated the Pause and Resume commands in the menu and toolbars, so it is easier to pause or resume all tests when there is a mixture of paused and active tests.
  • The Pause interval is now remembered as a default for next time, even across launches of Simon.
  • Added optional support for Wi-Fi hotspots. When enabled, Simon tries to fetch a known value when it is first launched or after the Mac wakes from sleep, and goes into a "hotspot" mode if it receives something unexpected -- probably a hotspot login page. This will avoid having false failures when you have an internet connection but need to log in to the hotspot. This feature is disabled by default, but can be enabled via a new General preference if you have Simon on a laptop.
  • Sorting on the Status column in the Monitor window now sorts so checking is at the top, followed by failure, changes, recovery, and paused at the bottom (with time-sensitive statuses in chronological order).
  • Improved handling of sorting all table columns.
  • Many other behind-the-scenes improvements made possible by dropping Tiger support.
  • Now requires a minimum of Mac OS X 10.5 (Leopard).
Additional planned filter plugins include:
  • Keyword: looking for a single bit of text.
  • Regular expression: using regex to match text.
  • Number: detect if a numeric value is greater or less than a reference value or the previous value, optionally by a threshold amount.
  • Link Validator: check for broken links on a web page.
  • Concatenate: combine the results of two filters.
  • Result Override: change the status (failure, unchanged, changed) into another status.

Some of those might be deferred till a future release, depending on how long they take. But with the Script filter, you'll be able to create your own filters as easily as you can create service and notifier scripts.

I hope you're as excited by Simon 2.6 as I am! It'll be a great release. Follow @dejal on Twitter, like the Dejal Facebook page, or read this blog for more news on development progress and the forthcoming alpha and beta releases.

Simon Standard featured in both VoteBundle and TheMacBundles

I'm pleased to announce that Dejal Simon, my flagship server monitoring app, is now featured in two bundles: the existing TheMacBundles collection, and an innovative new VoteBundle.

VoteBundle started out with 20 apps, and 40,000 Mac users cast 200,000 votes for which apps they most wanted in the bundle. The most popular 10 apps remain, including Simon.

Dejal Simon is the essential site monitoring tool for Mac OS X. It checks servers for changes or failures, and notifies you via e-mail, sound, speech, Twitter, or other means. You can use it to track updated sites, and to alert you when an important server goes down or recovers.

Both bundles include the full Simon Standard license — normally $59.95!

You can see more of the application on the Simon pages.

Version 2.6 is currently in development, and a beta will be out soon. It includes a powerful new Filter feature, enabling much more flexible analysis of test output, plus cookie management and many more enhancements. Version 2.6 will be a free update for all licensed Simon users.

Each bundle also includes several other fine apps. TheMacBundles includes 12 apps for only $49.95, and VoteBundle includes 10 apps for only $39. A bargain! Especially since you're getting a Standard license for Simon — for less than it normally costs by itself. Why not buy both bundles, and get 21 great apps for just $88.50?!

Visit TheMacBundles.com and VoteBundle.com to learn more about each, or to take advantage of one or both of these great deals.

Vote for Dejal apps in VoteBundle

The people behind the popular Mac Bundle Box promotions have launched an innovative new bundle concept: the VoteBundle.

Three Dejal products are in the running: Simon, my tool to monitor websites and servers for changes or failures; Narrator, my fun app to read out stories in multiple voices (soon to move to Mariner Software); and BlogAssist, my handy tool to make marking up HTML easier. As I write this, Simon is doing quite well, though could certainly use more votes, while the other two are trailing. If you like these apps, please vote them up!

Here's an intro video (not iOS compatible, unfortunately):

VoteBundle 1 - www.VoteBundle.com from Christian Owens on Vimeo.

Welcome to VoteBundle the very first community driven, democratic Mac software bundle. Cast your votes now, www.VoteBundle.com

Syndicate content