I've just released a beta of Caboodle 1.4b1, my handy snippet keeper.
Note that this update drops Tiger support. If you are still on Tiger (10.4), you'll need to stick with version 1.3.7.
This update includes:
This release includes the following changes:
As always, please give this beta a try and let me know if you find any issues, or if there are any issues that are not fixed and should be.
Please see blog posts on DejalActivityView.
I've committed a minor update to the DSActivityView open source project for iOS. See the DSActivityView introductory post for more information, including a video demo.
This update adds support for splitting the label over multiple lines for the DSBezelActivityView variation. This change was contributed by Suleman Sidat. Thank you!
To use multiple lines for the label, simply include one or more
\n sequences in the label text, e.g.
[DSBezelActivityView newActivityViewForView:self.view withLabel:@"Split over\nMultiple lines..."]
Similarly, to display an activity view with just the activity indicator, and no label, simply specify a blank label:
[DSBezelActivityView newActivityViewForView:self.view withLabel:@""]
DSActivityView is compatible with iOS 3.0 and later, including iOS 4 (and I believe iOS 5), on iPad, iPhone and iPod touch.
You can get the project from my Dejal Open Source Subversion repository via this Terminal command:
If you make any enhancements to DSActivityView, please contribute them back to me so I can share with other developers.
What is Simon Free?
It's a simplified and streamlined edition of the full Simon application. Instead of having several different kinds of customizable services, filters, notifiers and reports, Simon Express and Simon Free have just a few of the most popular ones. Simon Express is a paid app that enables an unlimited number of tests, so is great for people who want to check lots of websites. Simon Free is restricted to 5 tests, which is enough for people who only want to check their own site... and is completely free.
So what happened?
Although both Simon Express and Simon Free were submitted and approved when the Mac App Store first opened, when I came to do the 3.1 update, the Free edition was rejected. The reviewer felt that it was just a demo. I tried arguing that it was a fully functional app for people with modest needs (and it is), but they weren't convinced. So I submitted an appeal to Apple's App Review Board. In due course, they called me (with some phone tag), and we discussed the issue.
They said that they didn't like that it'd alert you if you exceeded the 5-test limit, and said to disable the New Test button when the limit is reached.
So that's what I did. I also removed the Setup Assistant from Simon Free, since it isn't all that useful for that app. With those changes, they quickly re-reviewed and approved it.
Although having an app rejected is never a pleasant experience, and it's very frustrating for me and the thousands of customers who have downloaded the app, the reviewers were polite and helpful throughout the process... and all's well that ends well.
Uh oh! I received a couple of reports from confused people yesterday, which confused me too: they said that the Web (HTTP) plug-in controls weren't showing up, and other wacky behaviors. I couldn't figure it out until one helpful person sent me screenshots and log information today.
It turns out that when I stripped out the PPC code for the Mac App Store editions, I accidentally stripped it out of some of the plug-ins for the standard edition, too. Oops! So I've fixed that. I'm very sorry for the inconvenience this may have caused.
I also removed the license agreement window. I decided that it doesn't really serve any useful purpose, and is just annoying to have to click through on each update. The license agreement can be viewed online.
Finally, I updated the Simon Help to reflect the above change, and to match the online edition. It now also clarifies that if you add an Upgrade license, you need the base license from the previous major release, too.
If you're using an Intel machine (as the vast majority of Simon users are), there's no need to update to this release, though no harm in doing so. If you're using a PPC machine, this is an essential update.
Simon version 3.1 is now in general release. A rather short beta period, but all seems well with it.
The standard edition of Simon version 3.1 is available for download here. Updates for Simon Express and Simon Free for the Mac App Store have been submitted to Apple, and will be available as soon as they've done their review.
Changes in this release include:
defaults write com.dejal.simon MaximumActiveChecks 1".
I previously discussed a rather ambitious Simon 3.1 update, where I was refactoring the data model to use Core Data, and many other related changes. Pretty much redesigning the core of the application, including splitting it into multiple processes. But that turned out to be too ambitious for my current time constraints. It was taking a long time, with a significant risk of data integrity. So I recently decided to postpone that for a future update.
Therefore, I put that code aside and went back to the 3.0.2 codebase, and implemented a more modest set of enhancements for the new 3.1 release:
I will come back to the Core Data etc refactor in a future update, probably next year. But in the meantime I have a bunch of smaller updates planned (as I always wanted to do after the big 3.0 upgrade), that will have more immediate benefit for my customers.
As you know, I publish this blog on the Dejal website. It has been around for many years, and has discussed all kinds of topics. Dejal product news, of course, plus general Dejal topics, and posts for other developers with open source and code tips.
I've been wondering if the more personal topics are really appropriate for a business blog, though. Looking around at other indie Mac and iOS company blogs, some do post random topics, but most stick to app update announcements, tips, and other core topics.
What do you think of this diverse mix of blog posts? Do you like getting to know your app developers a little better, or would you prefer developer blogs kept to discussing their products?
Should I create a separate blog for non-Dejal-related topics?
What about the Dejal Twitter and Facebook accounts? Should they stick to Dejal news too, or is general life stuff okay? I'm not all that verbose with tweets, with often only a few tweets per day, sometimes none. But the vast majority of the tweets aren't about Dejal topics. Should I use a different account for personal tweets? (I do have a personal Twitter account, @dejus, but don't currently use it.)
Plus, I have a poll! Take a moment to vote.
I've been working on the next update for Simon, my flagship app to check websites and servers for changes or failures. Version 3.1 is quite a big change, but almost all of it is "behind the scenes".
The biggest change is a redesign of the data storage. Previous versions store all tests in a single XML file, which is read in at launch and written out periodically. This is simple, but can be a little slow when there are lots of tests. Similarly, service, filter, notifier and report data each have their own XML file.
In version 3.1, I've redesigned this to use Apple's high-performance SQL-backed Core Data framework. So now it loads much faster, and only needs to write out individual tests when they are changed, rather than all of them.
Not only is this faster, it also enables planned future functionality, like splitting the app into multiple processes to avoid using up resources with lots of active tests, the ability to edit settings for multiple tests at once, and much more. It's an investment in the future.
But because migrating Core Data models can be a hassle, I also write out the tests etc as file packages. The data folder now includes folders for Tests, Services, etc, each of which contains a file package for each individual test etc. The package is actually a folder (which can be examined via the Finder's Show Package Contents contextual menu item), containing an XML file and a folder of logs, also stored as XML.
This means that when I change the Core Data model, Simon can simply discard the Core Data cache, and read in the file packages instead. Updating the XML format is much easier to remain backwards compatible. And since Core Data knows when individual tests are changed, Simon only needs to write out the XML in the packages when a test actually changes. I've measured it, and that adds a negligible amount of extra time to saving (still way faster than writing out all tests each time), and gives the migration benefit, plus enables storing larger data in the package, and in the future will have other benefits like Spotlight searching, sharing data, and more.
Anyway, if you're still reading after all that somewhat technical detail, you might be someone I'm looking for! Since changing the data storage is a big deal, and has involved a lot of changes to Simon's internals, I would like to get a few keen Simon users to help test the update before I unleash it on the world.
So, if you are interested in helping me test Simon 3.1, please contact me. The alpha release of Simon 3.1 will only be made available to a few people, but I expect interest to be limited, so don't hesitate to volunteer.
Worried about risks? It's pretty safe. Simon 3.1 doesn't touch the old large XML files of 3.0 and earlier, so worst case the new data files can be thrown away and you'll revert back to the state before upgrading to 3.1. So the only risk is that you could lose changes made in 3.1. Plus, of course, the risk that you could get spurious notifications, or miss notifications, if something goes wrong. But everything seems to work okay in my testing, other than a few minor issues I'm still tidying up.
Once Simon has had some more testing, I'll do a public beta release, probably in a couple of weeks, depending on the amount of testing the alpha gets, and what issues may turn up.
I'm looking forward to hearing from you!
I am pleased to announce that my flagship product — Simon, my server and website monitoring tool — is now available on the Mac App Store!
Simon was the last of my main apps to have Mac App Store editions, as it presented some extra challenges, being a much more powerful app than the others.
There are now three editions of Simon:
But unlike my other apps with editions on the Mac App Store, there are key differences between the Simon editions. The standard edition of Simon is unchanged; it includes all the same features as before, and is sold in four license levels:
The Mac App Store editions, Simon Express and Simon Free, on the other hand, have a more streamlined feature set. They only have a few of the plug-ins that provide the services, filters and notifiers. They also don't include editor windows for services, filters and notifiers, and don't include the reports feature.
Simon Express has no limitation on the number of test configurations. Yes, you read that right — unlimited tests, just like the most expensive Platinum license... so long as you only need the most popular services: Web (HTTP), FTP, DNS and Ping. So it is ideal for webmasters and others who want to monitor hundreds of websites.
Simon Free is the same as Simon Express, except that it is limited to 5 active test configurations. It is ideal for people who just want to monitor their own site and a few others.
See the Simon Feature Comparison page for a summary of the differences between the three editions. The Overview page has also been updated to add a little gold star () next to features that are only in the standard edition.
I had the idea for an app like Simon Express last year, before the introduction of the Mac App Store. I used the code-name "Webster" for this project, to highlight the goal: a simple, streamlined app for people who just wanted to monitor websites, and didn't need all the extra power of the full Simon application. The standard edition includes lots of flexibility, with custom scripts for services, filters and notifiers, the reports feature, and many more plugins. But not everybody needs all this flexibility; sometimes they just want to monitor hundreds of websites, and want a simple and inexpensive app to do that. Simon Express is the answer.
Simon Express is available on the Mac App Store for an introductory price of $59.99 (in the US; other countries vary as usual for the App Stores). Simon Free is available at no cost; it will always be free. Check them out!
Each edition has separate data and preferences, so you can even run all three at the same time if you wish; perhaps use the standard Simon app to monitor advanced services or do custom filtering, and Simon Express for the bulk of simple web servers. You can migrate between editions by copying the data files; I'll probably add an in-app migration tool in a future version, if there's demand for it.
So which edition is right for you? If you have already purchased Simon, you'd be best off sticking with the standard edition. It has more features and flexibility than the Express or Free editions.
If you're considering Simon, you can download and try either the standard edition or the Free edition, depending on whether you want to monitor all kinds of services, or just websites.
When you're ready to buy, the same criteria can be used: if you want to monitor mail accounts, applications, Twitter, databases, and other diverse services, or use more filtering and notification options like email, Twitter, custom speech and sounds, and more, then the standard edition is for you. If you just want to monitor simple websites, and lots of them, Simon Express is for you. Or if you only want to monitor a few websites, the Free edition might be enough.
I hope everyone is as excited about these new options as I am! As always, if you have any questions, I'm happy to answer them in the comments or Simon Forum.
This Friday is a milestone: 10 years ago my wife (Jennifer) and I moved from New Zealand to the United States.
I was born in NZ and she was born in the US. We met via the ancient command-line internet, she moved to NZ in 1994, and we got married on April 2, 1995. So yes, this weekend is our 16th wedding anniversary.
We enjoyed living in NZ, but eventually the call of Jenn's friends and family in the US became too much, and we decided to move to the US. It was quite a process, since I needed to go through the residency visa application routine, and of course shipping our household goods over in a container (and our three cats via plane) wasn't the easiest. But it was the right choice at the time, and still is.
We flew into Los Angeles on April 1, 2001. Of course, we visited Disneyland. Then we drove a rental car up the US west coast, staying in San Francisco for a couple of nights, then a stopover in Coos Bay, then up to Seattle to stay with Jenn's Mom for a week. Then we went back down to Portland (with a car borrowed from Jenn's grandmother) to stay in a friend's basement while we got established.
Jenn found a local job, we found an apartment, our furniture arrived, and we began to feel settled.
We've since bought a house and car (which we recently replaced), and I am now a dual citizen: I got my US citizenship back in 2004.
Naturally, my company came along for the ride. Dejal was basically a hobby in NZ, but one of my goals once in the US was to turn it into a real business. It has certainly flourished over the years, with revenues steadily growing.
Changing countries is quite a big deal, but it was worth it.
Will we ever move back to NZ? Who knows. We've learnt not to try to predict the future; plans can change. But we do have a dream of retiring in NZ eventually. We'll see!
The Mac App Store edition requires Mac OS X 10.6 or later, but the direct edition still supports 10.4 and later, for now. The next non-bug-fix updates will increase the minimum OS requirement to 10.6, so this might be the last release that supports Tiger and Leopard.
The edition of BlogAssist in the Mac App Store is called "BlogAssist Express", to help distinguish it. It is basically the same as the non-App Store edition; it just doesn't have the in-app update mechanism.
For existing customers, please note that Apple doesn't currently offer any way to migrate users from the existing app to the App Store edition. So I recommend sticking with the direct edition. It will always have the same or more features than the App Store edition, and get updates faster, since it don't have to wait for Apple's review process.
I'm pleased to announce that Dejal Caboodle, my "lean, clean snippet machine" is included in TheMacBundles.
Caboodle is a handy tool to help collect and organize various bits of text, images, PDFs, and other information. It includes support for custom fields and freeform rich text and other content, plus can encrypt your entries to keep them secure, and import and export several formats. It is simple and easy to use. A full license is included in the bundle, not some cut-down version.
This bundle also includes 9 other fine apps, for only $39.95 — a saving of 84%!
Visit TheMacBundles.com to learn more, or to take advantage of this great deal.
A couple of weeks ago, a major earthquake hit Christchurch in New Zealand, with at least 160 dead and many more injured. A couple of days later, I announced that I'd donate 100% of Dejal Mac sales for a week to the New Zealand Red Cross, to aid with their relief effort.
Towards the end of that week, I was contacted by some Kiwi iOS developers who were organizing their own similar effort, also donating 100% of their incomes for a week to the NZ Red Cross. So I decided to join with them and extend my effort by another week. They also managed to recruit lots of other NZ, ex-NZ and overseas developers to their effort.
I'm pleased to report sales totalling US$1,419.64 during this period, which I will donate to the NZ Red Cross.
I had hoped for more (e.g. when I did a similar effort for Haiti, I accumulated almost as much in a single day), but I'm between releases right now, so it didn't benefit from the usual new-release sales spike. And perhaps people aren't as moved by a disaster in a first-world country? True, Haiti was a much bigger disaster, with hundreds of thousands dead. But as an expat Kiwi, the Christchurch earthquake seemed "closer to home" for me.
Regardless, thank you very much to everyone who bought my apps during this period. I really appreciate your help in this effort. I'm sure the NZ Red Cross will make great use of the funds.
If you missed this event, not to worry — you can make donations directly to the NZ Red Cross.
As you may have heard, the city of Christchurch in New Zealand had another major earthquake a couple of days ago, having suffered a big one late last year.
This quake (or series of quakes) has done a huge amount of damage, both to homes and major landmarks like the cathedral. Hundreds of people are still missing, and at least
75 123 were killed, with the toll still climbing.
Here's an interesting visualization of the two big quakes and hundreds of others in the region.
Looking at some of the photos really brings home the tragedy, for example this slideshow of before and after photos.
As many of you know, I was born in New Zealand, and lived there until 2001. Although I don't have any friends or family in Christchurch, I know people who do. I feel that I really want to do something to help the relief efforts.
So, I'm announcing that for the rest of this week (i.e. from now till midnight PST on
Sunday Feb 27), I will donate 100% of the proceeds from Dejal Mac app sales to the New Zealand Red Cross, to help fund their relief efforts.
Update: Extended for another week! I've now joined with other Kiwi Mac and iOS developers who are also donating 100% of their income to the NZ Red Cross. So now I'm donating my Mac income till March 5.
If you're at all interested in any of my products, now is the time to buy. Your money will help those suffering from this disaster.
And if you don't need any of my apps, I urge you to make a donation to the NZ Red Cross directly.
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!
The Mac App Store editions require Mac OS X 10.6 or later, but the standalone editions still support 10.4 and later, for now. The next non-bug-fix updates will increase the minimum OS requirement to 10.6, so these might be the last releases that support Tiger and Leopard.
The edition of Time Out in the Mac App Store is called "Time Out Free". It is completely free, and always will be. Later, once version 2 is released, I'll rename the standalone edition as "Time Out Pro", and introduce a paid "Time Out Express" edition in the App Store. Currently, both the standalone and App Store editions have the same features, except the App Store one of course uses the App Store to update instead of the built-in mechanism. Once version 2 is out, Time Out Free will continue to have about the same features as now, and Time Out Express and Pro will gain many new features.
Similarly, Caboodle on the Mac App Store is called "Caboodle Express", but is basically the same as the non-App Store edition. Other than removing the update mechanism, the only notable difference in Caboodle Express is that it doesn't offer to install the PDF workflow, since Apple objected to that in the approval process. This feature is still available, you just have to alias the application to your "~/Library/PDF Services" folder.
I probably won't have a "Caboodle Free", since I can't think of any way to limit the functionality sufficiently while remaining useful. People can try Caboodle for free via the Dejal site, then buy either from here or from the App Store, as desired.
For existing customers, please note that Apple doesn't currently offer any way to migrate users from the existing app to the App Store edition. So I recommend sticking with the standalone editions. They will always have the same or more features than the App Store editions, and get updates faster, since they don't have to wait for Apple's review process.
In case you're wondering about BlogAssist, I haven't gotten around to building a Mac App Store edition of that yet. I'm not sure I will for a while; it's fine as-is.
As for Simon, that's a tricky case, since it is a very complex app, with lots of plug-ins and complex features. I don't think that Apple would even approve it, without eliminating a lot of functionality... perhaps too much. So for now, I don't plan to submit Simon to the App Store.
I hope you enjoyed these posts.
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!
Time for my traditional list of the cities I spent one or more nights in during 2010:
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.