Permission to Forget

I think it was David Allen who said you can do anything you want, but you can’t do everything you want. It’s ironic how an attempt to do everything will actually keep you from doing anything. —Shawn Blanc

A few weeks ago, I tweeted that I had reached “OmniFocus Zero”. I pulled up my available tasks one morning only to find that I had nothing to do. That’s not to say that there were no more tasks waiting for me in OmniFocus, it’s just that my Available perspective was empty. I had nothing due that day and no tasks that weren’t blocked or waiting on someone else.

A few of my GTD-doing friends expressed disbelief. How could everything be done? The simple answer is that I’m ruthless. I’m ruthless when it comes to delegating, deleting, and deferring until later.

I do my weekly review every Monday morning. One of my favorite things is when I come across a task that is no longer relevant to my life. That means I can delete it. Not only from my task manager, but, more importantly, from my brain. It’s one less open loop flying around my mind.

But it wasn’t always like this. I used to be a task hoarder. I’d write down absolutely everything, and never get rid of anything. I’d just keep kicking the can down the road foolishly and naively thinking I’d get to all of those tasks someday.

The trick I finally learned was to give yourself permission to forget. You have to make a ruthless decision and give yourself permission to admit that you’re never going to get around to that task and just delete it. If you have an item on your task list that is causing you anxiety because you just can’t get around to doing it – then maybe it’s not really something you’re committed to doing at all. Get rid of it.

You have to come to the realization that you can’t do everything. Sometimes, one concrete action is all you need to keep moving forward.

GeoHooks

I’ve always been fascinated with geo technologies and location based services. When I worked for Yahoo!, I was always bugging Tom Coates and Gary Gale about all things geo – including the sadly ahead of its time FireEagle web service.

Anyway, for the last two years I’ve been tinkering off and on with an idea of my own – geohooks. They’re webhooks that are triggered based on the location of you, another person, or a combination of multiple people.

I’m really happy to announce that https://geohooks.io is now available for people to beta test. You can sign-up for free here: https://app.geohooks.io/beta.php You’ll also need our iPhone app. You can get in on the test flight magic by @’ing me here or on Twitter or by email.

So what can GeoHooks do? Well…

  • Call a webhook when you enter or leave a specific geofenced area
  • Send an SMS to your spouse when you leave work and you’re on your way home
  • Send an SMS to your spouse when you leave work that also inculdes Google’s traffic estimate
  • Turn off the lights in your smarthome when both of you leave the house
  • Keep track of how long you’re at work each day
  • View a live map of where all of your account members currently are
  • Trigger any service on IFTTT
  • Securely share your current location to 3rd party web services with a level of accuracy you control (pour one out for FireEagle)

And much, much more.

Anythign you can trigger with a URL, you can now control with your location. GeoHooks is location-based webhooks for hackers, with a focus on privacy.

I’d love your feedback.

Moving to a More Comprehensive Weekly Review

Your weekly review is probably the key to keeping your trusted system running smoothly and most importantly out of your mind. For years, my review was little more than going through my list of projects every Sunday morning and making sure each was in an acceptable state.

But after reading Kourosh Dini‘s wonderful book Creating Flow with OmniFocus, I’ve taken his advice and implemented a more comprehensive weekly review that covers more than just my list of projects. It’s designed to be a whole review of every system in my life that accepts incoming data or holds reference material. This holistic approach does a much better job at keeping my mind free of open loops and all of my concerns written down in a trusted location.

To start with, I now have a “Weekly Review” project filled with all the action items it takes to complete my review each week. This project is on hold so the tasks don’t pollute any of my perspectives. When it’s time for a review, I drag the project to the top of the project list while holding down the Option key on my keyboard. This tells OmniFocus to create a copy of the project rather than just re-ordering it in the list. Once the copy is created, I rename it with the date (ex: “Weekly Review 2017-09-25”) and mark it as active. I then focus on the project and begin working my way down through all the action items – checking them off as I go.

Here’s what my weekly review project looks like…

The first task is to go through all of my inboxes and process anything remaining in them. This includes, of course, OmniFocus but also Evernote, DEVONthink, and a physical inbox for postal mail. This process is pretty painless. It’s just a matter of taking a few minutes and putting everything you’ve collected over the last week into its proper, organized place.

Next up is a review of all of the projects in my OmniFocus database. I won’t go into too much detail about this. If you’re curious, you can read Getting Things Done or Creating Flow with OmniFocus – as each one talks extensively about how to do a proper review. For me, it’s a brief moment to meditate on each project and make sure 1) there’s a next action waiting to be done and 2) there are no extra thoughts or tasks about this project bouncing around in my head that I haven’t written down.

After reviewing all of my projects, I specifically pull up a perspective showing me all of the errands I have to run. This creates a solid foundation in my head of where I need to eventually go around town throughout the week. Most of these tasks don’t have due dates. Rather, they just need to be done in the near future as appropriate.

Following my errands I do a quick look over of all my custom perspectives in OmniFocus. I’m looking at each one and deciding if 1) is this perspective still relevant and something I look at frequently? If not, I delete it. 2) Is it still showing me the correct data I need to see? If not, I adjust its settings. And 3) Can I think of any other common “queries” or views of my database that I could turn into new perspectives?

The next two calendar tasks help keep me grounded. I do a quick review of what’s been on my schedule the past two weeks, which can often jog a few extra followup items out of my head. And then I get a lay of the land for the next six weeks. This, too, can shake loose tasks related to your calendar events that may have been skipped over or forgotten.

Last, is a section where I add any other recurring things I need to check in on. Currently, that’s just Google Photos as I do a review and sort of all the photos my wife and I have taken over the last week.

Finally, there’s The Pause. Dini pushes this point hard in his book and I tend to agree with its importance. This is a moment to sit back, close your eyes, and just let your mind wander wherever it wants to go. And as it does this, take note of any action items it uncovers that you can add to OmniFocus. The more stuff you can get out of your head and into your trusted system, the more energy you’ll have to focus on whatever task at hand you decide to do.

So that’s my weekly review. It takes about an hour each week, but it’s completely worth the time.

Again, my thanks to Kourosh Dini‘s fabulous book Creating Flow with OmniFocus for the insight into his own review process from which I cribbed most of my ideas.

Can the Cloud Be Your Only Backup?

With the news today that CrashPlan is exiting the consumer market, many folks are beginning to scramble looking for the next best backup solution. I can tell you right away that’s BackBlaze. It’s simple to setup, costs only $5/month/computer, and has the best-behaved-Mac-like software of any of the major backup providers. Download it, install it, you’re done.

So, why wasn’t I using BackBlaze all this time to begin with?

Well, I’m the IT person for my family (as I’m sure many of you are as well). After one of my family members lost data for the umpteenth time, I decided to take on handling their backups as well. Initially, as a very happy user of BackBlaze myself, that’s what I installed on everyone’s machine. The only problem was that $50/year/machine cost, which I was footing the bill for myself. I quickly found myself spending over $500 a year. That’s not a deal breaker, but it was definitely more than I wanted to spend.

CrashPlan offered a family plan for $15/month that included as many machines as you needed. At $180/year, that was very attractive, but I never fully trusted their shitty Java-backed software to work correctly on my Mac. However, after learning that Apple uses CrashPlan internally to handle some of their employee backups, I felt safe in switching.

I’m happy to say that for two years CrashPlan has worked great. But now that it’s going away, just switch to BackBlaze. It’s really the only sane option.

All that said, the point of this blog post isn’t to recommend BackBlaze. It’s to question whether full-disk cloud backups are even necessary any longer? Here’s what I mean…

For years I’ve kept meticulous backups. Every night my Mac would clone itself using SuperDuper! to one of two external drives – which were rotated every few weeks between my house and an offsite location. This let me boot up to exactly where I left off the day before should my Mac’s internal drive fail. In addition to that, I had Time Machine running to a networked drive for versioned backups. And BackBlaze backing up to their cloud for serious disaster recovery.

But is all of that really needed today?

I stopped using SuperDuper once Apple dropped FireWire 800 from their machines. Booting up an external disk over the remaining USB ports was just too slow and not worth the trouble. Time Machine over the network has become increasingly unreliable over the years, but it’s still a decent option. But as storage and bandwidth costs have decreased rapidly, I’ve begun to demand more granularity in my backups than Time Machine’s hourly schedule will provide. I want access to every revision of each file – not just whatever happened to be on disk when Time Machine did its thing.

All of my documents – and I do mean all of them – are saved in Dropbox. I pay an extra $40/year for their Packrat feature, which keeps a year’s worth of revisions of all my files rather than the default thirty day limit.

All of my work files (code) are versioned in git and backed up on GitHub in addition to being on my Mac at work.

So, Dropbox and git take care of keeping all of my files backed up and recoverable to any previous version. Everything else on my Mac can be recreated in a manner of hours after a fresh system install. Everything but one exception – my photo library.

If I were to lose a photograph of my kid, I’d be sad. If I were to lose all of my photos, I’d be devastated. All of these photos and home videos, some dating back to the early 1980’s, are the most precious data on my Mac. It’s an absolute must that they be protected.

For years I kept them perfectly organized in folders grouped by year-month inside Dropbox and backed up to CrashPlan and SuperDuper!. I even wrote an iOS app designed specifically to browse my Dropbox powered photo library. But as my library grew and hard drives decreased in size (due to the switch to flash drives, which haven’t yet caught back up with spinning disk capacities), I found myself running out of room on my laptop to store my complete collection. I was forced to move infrequently accessed albums to cold storage on an external drive and also to S3. My Dropbox solution was exactly what I wanted – it just didn’t scale.

Then along came Google Photos and iCloud Photo Library. The promise of each service sounded great. All of your photos and videos safely stored in the cloud and available on all your devices. But I was hesitant to move away from my on-disk Dropbox solution for fear of one day being trapped into one system or another. But without any real sane alternative, and with the geeky alure of Google’s image recognition technology paring your library, I gave in. I’m now paying both Apple and Google $10/month for their extra-storage plans so I can keep my entire library in both of their clouds.

And so far it’s working great. I’m still a bit nervous about not being in control of my own backups, but I’m willing to wager I won’t lose access to both services at the same time, so two copies of all my files in the cloud should be enough redundancy for now. (I hope.)

That was a long digression about backing up my photos, but back to my main point – with all of my data siloed into different services based on data type, is there longer any need for full system backups? I’ve asked myself this question a lot over the last few days as I’ve I migrated machines off of CrashPlan and back onto BackBlaze. For my parents and other relatives, I think the answer is still “yes”. The simplicity of BackBlaze makes keeping your family safe a one step process. But for me, a geek, I think I’m finally ready to wholly embrace the cloud as my primary backup solution.

Creating a Daily Standup Perspective With OmniFocus

Like many of you in the software industry, every morning at 10am my team has a standup meeting. It’s meant to be a quick five minute meeting where everyone says what they accomplished yesterday, what they’re planning on doing today, and if anything is blocking them from moving forward. If done correctly, it’s a super-fast way to stay in the loop with everyone.

But sometimes it can be hard to remember all the details about what you did yesterday – especially on Mondays when you’re trying to remember past the weekend and back to last Friday. To help with this, I’ve traditionally kept a journal or work log of what I’m doing throughout my day. But with my recent job switch, I decided to start keeping all of that information in OmniFocus where I can slice and dice the data in ways that a plaintext journal won’t allow.

Because we use JIRA at work to track our tasks, rather than using OmniFocus the traditional way by entering my to-dos and then flagging what I need to get done to create a “Today” perspective, I get my marching orders directly from JIRA. So instead of entering my to-do’s into OmniFocus in advance of doing them, I add them as I complete them and immediately mark each as completed.

What this gives me is a dated and timestamped list of everything that I’ve accomplished. And with the “Standup” perspective that I’ve setup, I can simply flip to it in the mornings during our meeting and get an instant glance of what I accomplished yesterday and any tasks that happen to be waiting for me to complete.

To accomplish this, all of my work tasks are assigned to an OmniFocus project that corresponds to the real life project they belong to. For contexts, however, rather than giving them something like “Office” or “Laptop” or “Email”, they all get the same context simply titled “Work”. This allows me to group them together and sort by completion date in my custom perspective. Here’s what it looks like…

standup-perspective

As you can see, all the tasks I’ve completed are grouped by date – completed today, yesterday, this week, this month, etc. And then at the top is anything I’ve yet to do or might be currently working on.

This gives me a super easy way to provide my standup report each morning without having to remember everything myself.

Here’s a picture of the perspective settings I’m using to do this…

standup-perspective-details

I’m not using a project hierarchy, grouping by Completed, sorting by Project, showing Any Status, and All available items. I’ve also focused the sidebar selection to just my “Work” context.

By saving these settings as a custom perspective, it not only helps me out each morning, but also gives me a instant look at what I’ve accomplished or when something was completed if a boss or co-worker has a question.

A Stupid Idea?

I have a stupid idea. Bear with me…

Apple’s new MacBook Pro is rumored to be updated later this year with the function keys replaced with a tappable OLED display. The idea being this display could change based on the app you’re using. But what if it wasn’t just the function keys. What if the whole keyboard was one big OLED touchable display?

When Steve Jobs stood on stage and announced the first iPhone in January 2007, before revealing the design, he showed a slide of “the usual suspects.” The standard smart phones at the time. He said the problem with theses phones (among other things) is the “bottom third.” He was referring to their fixed-in-plastic keyboards that are the same no matter what app you use. He said Apple “solved this problem thirty years ago with bitmap displays.”

Doesn’t that sound like an apt description of the standard laptop keyboard we’ve all grown accustomed to? What if it could change form whenever we switched apps?

Many people, myself included, are almost as fast at touch typing on a full-size, on screen, iPad keyboard as we are on a physical keyboard.

The travel of the keys on the new MacBook (One) has been drastically reduced to save space. Any further reduction and you’d practically be typing on a flat surface.

The new force touch trackpad in the MacBook (One) and recent MacBook Pros simulates the “click feel” by vibrating slightly.

What if the rumored MacBook Pro had a huge battery saving OLED screen for a keyboard that vibrated on key press? Would that be so bad?

Making Money Outside the Mac App Store

One of the themes of this blog is how I make money selling my own Mac apps on my website rather than through the Mac App Store. I truly believe it’s the best way to go if you’re serious about earning a living. That said, not everyone has time to write their own backend sales platform like I did. For those who want to focus on development and make the actual sales process as painless as possible, I recommend using FastSpring. I’ve used them since 2009 and have never been disappointed. And getting up to speed with FastSpring couldn’t be easier than this great new book by Christian Tietze. It’s all about how to sell your apps outside the App Store. It covers everything from how to setup a storefront, to implementing serial numbers, and protecting your app against piracy. I’ve read the book, and it’s great.

If you do like the book and decide to buy, using this link will give me a small kickback. (But that hasn’t influenced my decision to post about it. The book really is good!)

image

Coding on My iPad Pro

Last month, my 9-5 job was kind enough to gift me an iPad Pro and its new keyboard. I’ve had a few iPads in the past, but they’ve always ended up stashed away, unused, in a drawer somewhere. I simply never got hooked on their utility. I never found that killer app, which, for me, would be the ability to code anywhere. This Pro model, however, has changed all of that.

I’ve always had two Macs. One to take places and another to get “real work” done. In the past that meant a spec’d out iMac and an 11″ MacBook Air. More recently, it’s been a work-issued 15″ MacBook Pro that stays plugged into my cinema display 99% of the time and a MacBook (One) when I travel. The new MacBook is certainly the most portable Mac I’ve ever owned, but it’s slow and lacks the screen space to do any UI intensive work.

Now that I have an iPad Pro, I’ve sold my MacBook and only touch my MacBook Pro when I have serious work to do. The iPad has replaced nearly everything I use my laptop for. That may not be so unbelievable. Lots of folks like Viticci have moved to an iOS only way of life. As I do more and more tasks on my phone, I’ve been tempted to try going iOS primarily, but I could never make that jump because I code for a living.

Until now.

I was screen sharing from my iPad to another machine on my local network, when it dawned on me how great it could be if this particular Mac were always available to me – even from outside my house. So, I splurged and ordered a datacenter-hosted Mac Mini from MacStadium. Ten minutes later I was connected to my new Mac in the cloud. And ten minutes after that, I had Xcode open and started testing the waters.

I’m using Screens.app to connect. And with a good internet connection there’s virtually no lag when screen sharing with my new Mac Mini. I’m able to run a native Mac resolution of 1920×1200 on my iPad in full screen. That gives me plenty of room to run Xcode and the iOS Simulator. With Apple’s new external keyboard, all of my usual Xcode and OS X keyboard shortcuts work just fine. And since coding is primarily a keyboard driven activity, my arm doesn’t get tired from reaching out and touching the screen like a designer’s might.

All in all I’m thrilled with my new setup. It gives me the simplicity and benefits of iOS, while still allowing me to do real work outside of the house or from the couch.

ipad-pro-xcode

Wrapping up 2015

Last year, I wrote about my final sales numbers for 2014. Now that 2015 is wrapping up, it’s time to do the same.

I had very high expectations going into 2015. I released Hobo right at the start of the new year and planned a major update to VirtualHostX for the Fall. With both of those in place, plus a renewed focus on my mailing list and website analytics, I set the seemingly impossible goal of doubling my 2014 sales this year. That meant my revenue goal for 2015 was $123,000. Audacious. Lofty. But that’s what I was aiming for.

How’d I do?

I’m sad to report that instead of doubling, sales cratered. With about two weeks to go in 2015, my current revenue sits at $35,000. Don’t get me wrong. I know there are many people out there who would love to be making that kind of money on their app business. And I’m very fortunate to earn what I do. But, still, instead of doubling my revenue I almost lost 50% year over year.

Why?

I can point to a number of reasons why 2015 was such a down year. Some were business decisions. Others were personal. Most obviously (to me) is that Hobo never really took off. Sales have been OK, but my goal of having it match VirtualHostX dollar-for-dollar seem to have been premature. I had a couple large quantity sales to businesses, which gives me hope that I could begin marketing Hobo in that direction rather than at individual developers. I positioned the commercially licensed version of the app as a boon to web dev shops with the ability to share and remotely update .hobo files. But, looking back, I haven’t made that feature prominent enough on the website. I need to do a better job at educating potential buyers.

I also never got around to properly setting up my Hobo mailing list with Drip. One of the changes I made in 2015 for VirtualHostX was requring an email address to download the software. This lets me follow up with the user after they download the app. I don’t consider it spam. I send three emails – each a day apart – that walk the new user through the major features of the app. And then if they haven’t purchased after two weeks, I follow up with a simple email asking if there’s anything the app could have done better or if they’d like more time to evaluate it. This email course has worked extrodinarily well and provided me with a lot of great feedback. I’ve had a to-do to setup the same sort of course for Hobo for nine months but never got around to it. And that’s squarely my fault.

Another major reasons for the low sales volume is I never got around to building and releasing the major update to VirtualHostX I’ve been planning. During the week of a major upgrade release, I can count on an additional $10,000 – $15,000 in sales via upgrades. Not having a major release this year definitely caused a significant dip in sales.

And here’s where things get personal.

Why didn’t I have a new, major release ready in time for El Captian in the Fall?

Two reasons. One, we had a new baby girl. And, believe it or not, taking care of two kids is way more work than dealing with just one. But, the main reason is the planning for my major Fall release typically happens early in the Summer. But during June and July of 2015, I found myself at the bottom of a deep depression. One like I hadn’t experienced since 2009. It’s hard to properly describe what it’s like being depressed, because at its core, you feel nothing. And that nothingness saps away every ounce of motivation you have. My relationships with my family and friends struggled, my app business saw virtually no attention for three months, and my nine-to-five job suffered as well. Two of those areas were forgiving. The other, not so much. But, I bounced back, got on some better meds, and feel great now. The seventh major release of VirtualHostX is going well and should be ready this Winter.

So what did I do well this year?

I grew my mailing list considerably. That means when VirtualHostX 7.0 is ready to go, I should have a great audience to market it to. Further, earlier in the year I ran a bunch of A/B tests on my marketing website aimed at upping my conversion rate. I’m happy to report that I saw good growth in that regard – even with the change to requring email addresses to trial the app.

So that’s a summary of my year as far as business goes. I thought about listing all of the services I use and expenses I have running the business, but that hasn’t changed much since last year.

How’d you do?

Switching Email Providers

Earlier this year I switched (after 11 years) away from Gmail to an email address at my own domain hosted by FastMail.

I didn’t make this decision lightly. I knew changing email addresses could uproot my very online identity. But I was tired of the new direction Gmail’s interface was heading, and I also worried about the horror stories you occasionally hear when Google accidentally closes or locks someone out of their account. Email is precious to me – especially the history it contains – and I didn’t want to chance losing it.

I’ve used FastMail with my freelance email address for years and always been extremely satisfied. So choosing them to replace Gmail was a no-brainer.

With that introduction out of the way, what I’d really like to talk about are the four steps I took to ensure a smooth transition to my new email address.

First, I used FastMail’s built-in IMAP importer tool to transfer over all eleven years worth of Gmail into my new account. The process took about six hours – they emailed me when it was complete.

Then, I setup a forwarding rule in Gmail to forward all mail to my new address and archive a copy in Gmail.

Next, I created a smart folder in 1Password that searched for my Gmail address as the login for any website. Over the next few weeks, I updated a few website from that list each day with my new email until they were all switched over.

Finally, I setup a rule in FastMail to file all email that was forwarded from Gmail to a specific folder. From there I can see all the remaining websites and mailing lists that have my old email address and update the ones I care about.

Changing email addresses isn’t easy. But it’s certainly doable with a little planning and some work after the fact.