My Great Android Experiment: Part 0

Being a longtime macOS user, when the iPhone arrived on store shelves, I never looked back. The mental model of iOS fit me better than any platform I’d ever used. And given my experience developing Mac software, bringing that knowledge to iOS apps was as simple as learning a new framework.

So I’ve been iOS-only since 2007. I can count on one hand the number of times I’ve used an Android device. Sure, we have a couple Amazon Fire tablets for the kids laying around, but those are just toys as far as I’m concerned. I’ve never owned or spent any in-depth time with Google’s offering. But, yet, here I sit, holding my new Pixel 2 in hand and wondering what to do next.

I’m not switching to Android. I’m too invested in the Apple ecosystem to consider that. But I am curious what the top-of-the-line Android experience offers. Particularly, because I want to learn to develop for Android. I feel like I’ve topped-out as far as I can go career wise without knowing the other side of the fence. I could just open up the latest Android book and start learning, but before I do that I want to immerse myself in the OS and learn the Android way of doing things.

As long as I can stay motivated, I plan on documenting my thoughts about switching on this blog in a series of posts.

So I switched to Android. Pixel 2. I think I’ve reached my ceiling career wise if I don’t know both. Fuck.

January 13, 2018

We should stop letting in presidents from shithole golf courses like Mar-a-lago.

January 13, 2018

Switching to Google Photos from a Dropbox Photo Library

Five years ago I went all-in and migrated my ancient iPhoto library to generic files and folders on disk inside of Dropbox. I wanted something I could access from anywhere, and – perhaps more importantly – was future-proof. I liked this solution so much I started writing a book about it and even made an iPhone app to help me view my library on the go.

My library’s structure worked like this…

        /2017-12 Aaron's 4th Birthday Party/
        /2017-12 Christmas in Chattanooga/
        /2017-11 Thanksgiving in Nashville/
        /2018-01-01 12:45:02.jpg
        /2018-01-02 02:38:15.jpg

That worked great. It allowed me to keep album-worthy photos separate from all of those one-off day-in-the-life photos we take. It also let me quickly find any photo just by knowing the album or month it was taken in.

The problem was that – especially with all of my home videos now in 4k/60fps – I was running out of disk space. My library was over 300GB. I had plenty of storage space left in my 1TB Dropbox paid account, but not on my hard drive.

I was facing the decision of not keeping all of my files locally or running Dropbox off a larger external drive. Neither option made me very happy.

But then came Google Photos.

If you know me then you might think I’ve gone crazy. I migrated ten years worth of Gmail to FastMail three years ago and never looked back. I wanted to be in control of my own data and domain name.

That said, I really did love Gmail for the ten years I used it. Most importantly, I trusted it. Many times I found myself referencing emails from a decade ago only to find them safely stored, not forgotten, just waiting to be read again. I’ve never lost a byte of data with any of Google’s product offerings – I trusted Photos would offer the same reliability. And sweetening the deal further, with my massive library I would be a paying customer. Google would have reason to keep my data safe versus my free Gmail account which came with no promises.

So I installed Google’s Mac uploader app on my Mac, pointed it at my Dropbox photo library, and waited. Three days later all of my photos and videos were in Google’s cloud. The only problem? I had no albums. Just a giant stream of 50,000 photos sorted (thankfully) by date.

So over the next few weeks I picked a couple albums each day from my old Dropbox library and recreated them in Photos. It was boring, monotonous, and not entirely pleasant work. But in the end it was worth the effort.

To keep things organized and easily searchable, each album follows the same naming convention as it did in Dropbox. “Year-Month Short Description” (2018-01 Aaron's Birthday Party). Here’s a screenshot.

IMG 4685FB06DD09 1

All the rest of my day-in-the-life photos are sorted individually by date under the “Photos” tab.

The Google Photos iPhone app is installed on my phone and takes care of backing everything up to their cloud. It’s also installed on my wife’s phone (and signed-in under my Google account) so it slurps her’s up as well.

Further, any SD camera cards we plug into my Mac are ingested by the Photos Mac app.

Every Monday, as part of my GTD weekly review, I do a search on the Photo’s website for “last 7 days”. That, predictably, shows the lasts seven days worth of photos, which I then go through and sort into albums and delete any pictures that aren’t worth keeping.

So that all takes care of getting my media into Google Photos, but once it’s all in there, then what?

Well, quite a lot actually.

You can search and filter by people. Here’s everyone in my library…

IMG 762E75E87362 1

Tapping on my wife’s grandmother filters down to only photos containing her…

IMG 714DA282CAE2 1

But Google’s AI is much smarter than just facial recognition. Watch what happens when I search for “Thelma Roberts bridge”…

IMG 60CAB60E7EF3 1

Amazing, right? But how clever is the AI, really? Well…

Search for “Inside House”….

IMG DE26B3947546 1

And then search for “Outside House”…

IMG 0B900B658B11 1

It’s truly astounding to be able to search, slice, and dice your photos this way. I can’t wait to see what features Google adds next.

In case anyone was wondering, I’m now posting my tweets first to my blog and then letting cross-post to Twitter. Owning my own content is the new hotness in 2018.

January 4, 2018

My wife and I were talking about an older Baseball player we hope gets traded to the @SFGiants only to discover he’s five years younger than us. Heh. “Old”.

January 4, 2018

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.

Happy #4 to my amazing, kind, funny, crazy, most favorite boy in the world. Love you forever.

January 3, 2018


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 is now available for people to beta test. You can sign-up for free here: 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.