
Okay, enough blurred teasing. Time to show a full screenshot!
Time Out 2 is coming along nicely; I've made lots of progress in finishing off and polishing the app in recent weeks, thanks in large part to the feedback of the elite alpha testing group. There's still much to do, but it's getting ever closer to being done, so I want to share a bit more about it now.
Without further ado, here is a screenshot from the latest alpha build of Time Out version 2 (click to see full-sized):
As you can see (and could no doubt tell from the previous teases), the preferences window now has a sidebar that lists the breaks, and other options. What's this... three breaks? Yes indeed... in fact you can unlock an unlimited number of breaks in version 2!
If you look closely at the sidebar, you can see a colored label (which can be shown in the menubar), the break name, when the break is next due, and the last time it was completed.
On the right-hand-side, you can see the Schedule page for the Normal break. It has much improved controls compared to version 1, making it easy to set the duration and frequency of the break, plus the ability to set a time range for the break (useful for a daily lunch break, for example), tweak when the next break will occur, automatically count backwards to get credit for natural breaks (when the computer is idle), and automatically skip a break if too close to a more important one (e.g. to avoid having a Micro break a few minutes before or after a Normal one).
Of course, this is all subject to change; some aspects of this view changed recently, and I know of at least one more change that'll affect it. But the final product will look very close to this.
I hope you're as excited about this sneak peek of version 2 as I am. I can't wait to make it available to everyone. In the meantime, if you've made a donation, and are using Yosemite or later, you can contact me to request to join the alpha team, or to get more information. Or stay tuned for more screenshots and details in the coming weeks!
I have a very important question that I've been pondering for some time, and that I'd appreciate your input on. How to price Time Out 2.
Version 1, as you may know, is free, with a suggested donation. All features can be used without restriction for no cost, but if you find it useful, I appreciate a donation. I like the idea of Time Out being free, so lots of people can get the health benefits of taking regular breaks. But I also like to eat and pay bills, so I need an income. Free, even with a donation, doesn't really cut it, unfortunately.
So I've always planned to charge for version 2, especially considering the huge amount of work I've put into it, and the significantly improved feature set. But I'm not sure exactly how to do so.
There are a number of options I'm considering. I'd appreciate your thoughts on these.
The simplest option is to stick with the current model: a free app, with no restrictions, and an optional donation.
Pros: widest use.
Cons: relatively few paid customers; unsustainable.
The obvious alternative is to simply have a price tag on the app. Version 2 will be available both directly from the Dejal website and in the Mac App Store, so I could do like I do for other apps, with a free trial on the Dejal site as a time-limited demo, with a payment required after 14 days of use (which may be non-contiguous). And on the App Store, just have a fixed price.
Pros: simple; easy to understand; customers are all paid (except during the direct edition trial period).
Cons: no trial on the Mac App Store; less publicity from people recommending it as a free app.
Another option is "freemium" — a free edition on the Mac App Store, with some feature restrictions, with a single In-App Purchase (IAP) perhaps called "Unlock Everything" to make all of the features available. This is similar to a trial period for the direct Dejal site edition, so it could use the same mechanism.
Pros: free trial for both editions; simple-to-understand price.
Cons: it could be tricky to set the limits so enough people pay.
A variation on the freemium approach is to have multiple In-App Purchase options. So instead of paying once to unlock all the features, customers could pay to unlock individual features, e.g. new break themes, action types, and perhaps even to add a new break. The app could come with one or two breaks, and you pay $0.99 or something for each additional break.
Pros: free trial for both; pay for usage; potentially more $$$.
Cons: more confusing pricing; some might not like the "nickel & diming".
Taking the above further, another option is often referred to as "gamification": using rewards or social features to make using the app more fun, and to spend money on features. There are various ways this could be done, but one idea for Time Out is to have an in-app currency for breaks taken and skipped. So taking a break earns some credit, and skipping or postponing a break spends some of that credit. If someone wants to skip more than they take breaks, they could pay real money to buy break credits. There could also be achievements to earn for taking breaks (e.g. taking all breaks in a day or a week), etc.
Pros: could be fun; real incentive to take breaks; potentially more $$$.
Cons: more complex to implement and understand; again with the "nickel & diming".
A variation of the above options could be to use one approach for the direct Dejal edition, and another for the Mac App Store edition. For example, the direct edition could use the traditional 14-day trial approach, while the MAS edition uses a paid or freemium model.
Pros: more choices for people.
Cons: more complex to understand.
There are probably other approaches that could work, too. If you can think of any, please let me know.
I'd really appreciate your opinions on these options. I need Time Out to be sufficiently profitable to justify and sustain further enhancements. But I also want it to be used as widely as possible. It's already a fairly popular app, in large part due to being free, so I want to do what I can to improve that.
Of course, once a pricing model is decided, the next obvious question is what the actual price(s) should be. I welcome feedback on that, too, if you like.
Please let me know what you think in the comments below, or privately.
Without a doubt, the most popular request for Time Out over the years has been the ability to not need to be in the Dock. The second-most popular request is a countdown in the menubar.
These feature requests are related, as if the app isn't in the Dock, it should be in the menubar, otherwise there's no real convenient way to access its settings.
Your wish is my command: both of these requests have been granted in version 2 (and much more). A countdown can be displayed in a menubar status item, which when clicked displays a popover listing the breaks and more options.
Here's a blurred screenshot:
Breaks can be manually started, paused, etc from this popover. Clicking on an item will show it in the preferences window, enabling you to configure the breaks.
There is a preference to control whether or not Time Out appears in the Dock, and the appearance of the status item can be configured, to change the icon and countdown or time of the next break, among other options:
It is currently technically possible to not have Time Out in the Dock or status menu, but then the only way to access the settings would be to open the app from the Finder. Which some people might like, perhaps.
When I first created version 2, I had the scheduler and status item in a helper process, separate from the main app with the preferences window. Later I merged the two, as that proved a bit unreliable and more complex. But now I'm reconsidering the design, as it turns out that the status popover doesn't work when an app is fullscreen.
So I'm thinking about a number of options for a redesign:
I am currently leaning towards the last option, as that seems like the best of both worlds: the ability to show or hide the Dock icon, and a countdown status item available with either. If the Dock icon is shown, clicking on the status item would be equivalent to clicking on the Dock icon, bringing the app to the front. If not, it'd show a popover for quick access, and only bring the app to the front if you want to edit something.
What do you think? Would you want to show or hide the Dock icon? Do you want the countdown item? Let me know in the comments below. Alpha testers can reply here if you don't mention any unannounced features, or in the private alpha forum.
A post for developers, though also related to Time Out 2.
One of the features of Time Out 2 is a sidebar listing the breaks and options, as you could see (blurred somewhat) in my previous post . The sidebar includes a couple of buttons that appear when you hover the pointer over a row, enabling you to manually start or pause that break.
A vexing issue I had, though, was that the button didn't draw correctly. If you look closely at this screenshot, you may notice that the background of the text and the remainder of the button content don't match — there's a visible outline around the text:
That is rather ugly. I'm not sure exactly what causes it, but presumably it's related to being in a sidebar list, and perhaps an issue with title-less windows (I've seen some other issues, too).
Regardless, I wanted to fix it. After a bit of experimentation, I found a simple solution: a subclass of NSButtonCell
to override the -drawTitle:withFrameinView:
method, which as you might imagine is responsible for drawing the title text. The override simply invokes the superclass, and returns the full button rect instead of the rect of the text itself:
@interface DejalButtonCell : NSButtonCell
@end
@implementation DejalButtonCell
- (NSRect)drawTitle:(NSAttributedString *)title withFrame:(NSRect)frame inView:(NSView *)controlView;
{
[super drawTitle:title withFrame:frame inView:controlView];
return frame;
}
@end
That seems to do the trick:
Filed Radar #22491410.
As you may know, I'm working on a major upgrade of my popular break reminder tool, Time Out. Version 2 has been in the works for quite some time, in between working on contract work and updates of Simon, Pack, and other apps.
I've recently made some significant progress, and although there remains much to do, I think it's time to start teasing a little about the new version.
So without further ado, I present your first glimpse of the app (other than the icon, which I showed previously). A heavily blurred screenshot, admittedly... but you may be able to glean something about it.
Want to see more? How about actually try the current version? No need to wait: licensed users can apply to become alpha testers, and actually use the latest builds now (version 2.0a13 was released a few days ago). If you've made a donation, and are using Yosemite or later, you can contact me to request to join the alpha team, or to get more information.
Otherwise, stay tuned for more screenshots and information about the upgrade over the coming months. (Yes, I fully expect it'll be a few months before it's finished, though who knows; it'll be done when it's done.)
Announcing the general release of Simon version 4.1!
This update is free for licensed customers of Simon 4. It includes several significant improvements and fixes.
One of the most noticeable changes is a redesign of the Web (HTTP) feature. It now uses a list of pages including Parameters, Headers, Cookies and Other. Clicking on one shows the corresponding page.
Another much-requested enhancement to the Web feature is support for custom headers. This enables you to send extra values to the server, for example a "User-Agent" so the server thinks the request is coming from a specific web browser.
Many websites nowadays use JavaScript to load additional content after the initial HTML is loaded, for example to incorporate updating values from a database, or activity tracking, and other uses. Previously, Simon wouldn't see that dynamic content — it only looked at the base HTML. Now, you can enable a new option to load the dynamic content a specified number of seconds after the base HTML loads, to incorporate such later changes.
There are many more changes, including various tweaks to the UI, moving the Delete function to the Edit menu, adding a crash reporter to make it easier to capture issues, and localization improvements (including adding Chinese).
Read the release notes for full details of the changes.
EDIT: A quick update to fix another couple of issues:
EDIT 2: Hey why not make it a trio: another quick update with some further tweaks of this area:
One last beta, with just localization changes. English customers can feel free to skip this update if you like, though it's trivial to update.
I'm pleased to introduce zCloud, a new app in the Mac App Store to quickly and easily share screenshots and other files.
zCloud lives in your menu bar, and has shortcuts to take screenshots, upload them to Dropbox, and place a link to share them on your clipboard. Just hit the shortcut then paste the link to share with co-workers, friends or family.
You can also drag any file to the menu bar icon to upload and share it.
The preferences enable you to choose what happens when you upload a file, and enable automatically uploading screenshots from the Desktop:
zCloud can even watch any number of folders to automatically upload new files:
The screenshot shortcuts can be fully customized:
The history of uploaded files can be viewed via the menu bar icon, enabling re-sharing, viewing or removing previous items:
zCloud was written by Dejal, as a contract project for zFoundry, LLC. To find out more about Dejal's consulting / contract development service, visit the Dejal Consulting page.
Learn more about zCloud via the zCloud site or the Mac App Store. Available now!
One more beta with a few fixes, for good measure. This will probably be the last beta before general release; please let me know if you find any issues.
Just been a couple of days, but here's another beta of Simon 4.1, with some exciting changes:
Accept
, User-Agent
, etc.Content-Type
and Content-Length
headers, overriding any you may add.Time for an update to Simon! This first beta release includes:
application/x-www-form-urlencoded
content type, instead of multipart/form-data
. (Please let me know ASAP if this breaks any of your POST tests.)It's my birthday today! To celebrate, I give you a gift: a redesigned Watch app for Pack!
Like many developers, I was excited by the ability to write an app for the new Apple Watch, so I wrote one before the Watch was actually available: Pack 1.1.
And like many developers (e.g. Marco's Overcast), once I actually had a Watch and used my app on a real device, I realized that my initial design wasn't all that good.
I had thought that scrolling a long list of items to pack, like on the iPhone, would be annoying on the Watch. So I split the packing list up between two screens: a list of categories (or other groupings), where you tap on one to drill down to the items within that group.
In practice, that was cumbersome. Scrolling long lists is actually really easy and fast with the digital crown (or even swiping), and realistically most packing lists aren't all that long, especially as you get towards the end of packing. Having to go back and forth between categories was a pain.
So for version 1.2, I redesigned the Watch app. I collapsed the two screens into one simple list, with headings for groupings.
I also added a Force Touch menu to change the grouping (between by item name, category, or person), and to mark all remaining items as packed (or mark all as unpacked).
I also found, as many others have, that going to the app home screen is less preferred as a way to launch apps. The best way in most cases is to use a Glance from the watch face. So I also added a Glance to Pack, which indicates the number of items still to pack. Now one can simply tap that to launch the full app.
Here are all the changes in version 1.2:
Learn more about Pack, or download for free on the App Store.
At the end of last week I attended my first conference since WWDC07. That's quite the hiatus!
This time it was a much smaller conference: CocoaConf PDX, a small two-day touring conference organized by the Klein family, which visits a number of cities each year.
Now that I'm doing new contract work (in addition to my own apps), I thought it'd be good to stretch myself a little outside my comfort zone with some networking. What better way to start than a small conference in my home town?
Despite being in Portland, I stayed at the conference hotel — mainly because I live about an hour away, and wanted to avoid that commute. The hotel is quite nice, for one by the airport — a nice foyer with ponds and streams, and all rooms are two-room suites. I put in for an upgrade to a "premium" room, and got that, so enjoyed additional benefits like free snacks.
One bit of pre-conference excitement (and hassle for some attendees) was the arrival of President Obama in Portland. I happened to catch Air Force One coming in for a landing, and the motorcade as he and his entourage headed downtown.
The conference provided some nice swag, including a helpful booklet with information about the sessions. Unfortunately, many of the sessions were rescheduled at the last minute, but I still got to attend all of the ones I most wanted to see. Perhaps in the future they'll use an app, so the information can be updated dynamically?
Some conferences are single-track, meaning that everyone attends the same sessions. Others (like WWDC) are multi-track, with a number of simultaneous sessions to choose from. There are certainly pros and cons of each — a single track means more opportunities to meet other people, but could mean having to sit through (or skip) sessions that aren't interesting... while multi-track gives more choice at the cost of fewer personal interactions.
I liked the balance that CocoaConf had: some single-track sessions, and some in three tracks. Plus 15 minute breaks between sessions, and catered lunches and dinner. So there were plenty of opportunities to meet new people, catch up with old friends, and of course learn about the topics that are most interesting (while also expanding one's horizons with new topics).
The circular tables helped with meeting new people — better than the rows of chairs at WWDC, where the only interaction is in the hallways or queues.
Another fun event at the end of the first day was a performance of James Dempsey and the (Conditional) Breakpoints, the biggest group in Cocoa rock.
I recorded a bootleg of their final song of the evening, The Liki Song:
Overall, it was an excellent experience. I'm very glad I attended, and definitely plan to go again next year. I'm also thinking about other conferences that I could participate in... probably not WWDC this year (even the alt conf stuff), but I'm considering the new Release Notes conference in October, as a more business-focused one, though there are many other excellent options.
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:
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.
Quickly following the 1.1 update, which introduced the Watch app, here's version 1.1.1 with an important fix:
Learn more about Pack, or download for free on the App Store.
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.
The Apple Watch is available for pre-order and in-store tryout today, and will be delivered starting April 24 for those who stayed up late enough to get their order in quickly. Did you order yours? What did you get? Let me know in the comments.
Personally, I ordered two Watches: a 42 mm for myself and a 38 mm for my wife, Jenn:
Ordered Apple Watch Sport 42 green & 38 blue via web Store at about 00:10; confirmation at 00:14 says delivery 4/24-5/8.
— David Sinclair (@dejus) April 10, 2015
Also available today is an update to my Pack iPhone app, to include an Apple Watch extension to help you even more quickly and easily pack for trips.
The Watch app for Pack is very simple: the idea is that you choose what to pack on your iPhone, then you can put the phone in your pocket while actually stuffing your clothes etc into your suitcase, and just tap on your Watch to mark things as packed.
This will be much more convenient. I've used Pack for my own travel for several years (as a pre-release prototype), and while it is quite easy to mark things as packed, having to take my iPhone out of my pocket while I have my hands full of clothing can be a little inconvenient. Being able to just tap my watch will be so much easier.
Since I don't have a Watch yet, I've only been able to test this in the simulator, but Apple has tested and approved it (after a couple iterations of fixes and clarifications), so I'm confident that it'll work well. I'm sure I'll add further features in a future version, based on my and others usage. If you already have a Watch, please try it and let me know what you think!
Here's a brief looping demo of the Watch app in action:
Learn more about Pack, or download for free on the App Store.
Did you use Simon Express or Simon Free for the Mac App Store? As you have probably seen by now, they are no longer available. I was unable to update them, so announced back in October last year that I'd remove them, which I did when Simon 4.0 was released.
I thought I'd go into this in a bit more depth today.
So, why wasn't I able to update them?
When the Mac App Store was introduced back in 2011, apps could be included without too many modifications or special requirements. So I was happy to provide special editions of my Simon app, which I called Simon Express and Simon Free. The Express edition enabled unlimited tests (at a time when the standard edition had license limits on the number of tests, which is no longer true), but was streamlined to only provide a basic set of services, filters and notifiers, without the ability to add or edit them. Simon Express sold for $59.99. Simon Free was the same, but was limited to only a few tests, and available at no cost. These seemed like useful editions for people who didn't need the full power of the standard edition, and preferred the convenience of the Mac App Store.
But as of June 2012, Apple threw a spanner in the works: they required that all apps in the Mac App Store be “sandboxed” — where the apps can only access their own private folder, among other restrictions.
Since Simon is a powerful tool, capable to monitoring arbitrary folders, accessing network services, running customizable scripts, etc, it wasn't feasible to sandbox Simon without cutting out a lot of functionality, which I didn't want to do. Even the cut-down Express and Free editions would have had to be severely restricted. So it just wasn't doable.
For a couple of years, I left the Express and Free editions on the store, without updates, but I felt bad about them falling behind the standard edition, and so when version 4 came along, it was time to retire those editions.
But where does that leave people who bought the Express edition?
If that's you, you are of course welcome to continue using it (or the Free edition) for as long as you like. But to take advantage of the attractive new user interface and enhanced features of version 4, you'll need a Simon 4 license.
I didn't want to make you have to buy a full license, though. So in version 4 I added support for treating Simon Express as a full version 3 license. If you have Simon Express installed (or have previously used it with your Mac), a “Simon Express” item will automatically appear in Simon's Licenses window. So all you need to buy is a Simon Upgrade license.
Furthermore, if you don't already have data for the standard edition, Simon 4 will automatically recognize and import your Simon Express data, enabling a smooth transition from the old app.
In the months since removing the Mac App Store editions, I don't recall having received any negative feedback about this move. I think most people understand... and frankly the Mac App Store editions were never huge sellers; most people preferred the power and flexibility of the standard edition.
The Mac App Store is a useful tool for discovery of apps that fit within Apple's rulebook, but some apps like Simon, and other third-party ones like BBEdit, Coda and more don't fit in that model. And that's fine.
I will continue to include my apps in the Mac App Store when I can... while also selling directly from the Dejal site.
Today marks the 20th anniversary of marrying my wife, Jennifer. My how time flies... it seems only yesterday when I posted about our 15th wedding anniversary — read that post from five years ago for the story of how we met, got married, and more.
I wanted to do something special to mark this milestone, so a couple of weeks ago I did something I've been meaning to do for decades: I edited the videotape footage of our wedding into a short movie (about 5 minutes).
It begins with part of a TV news report that aired shortly after our wedding. As that previous blog post described, we met via the internet in an age when that was new and rare, so we were interviewed by local TV and newspaper reporters.
The movie then has clips from the ceremony and reception, which were both held near the beach at one of our favorite spots, Long Bay Beach in Auckland, New Zealand. It concludes with some scenes from our honeymoon in the credits.
Take a look:
20 happy years, full of love and adventures. Happy anniversary Jenn; I love you!