Things I like this week, volume 32.

DEVONthink

I’ve bounced between a lot of note taking and reference apps over the years, and none have felt like home for more than a little while. I’d resigned myself to just using files and folders in Finder or iCloud Drive or my Synology or whatever, and thought that was the end of the road. The logical conclusion to not finding anything that really ever fit long-term.

I’d heard about DEVONthink before, probably first and most often from Gabe over at Macdrifter, who’s written and talked about it a lot. It always seemed like one of those insane apps that did way more than I could ever have needed, and with my focus on developing simplified workflows where possible, it felt like serious overkill for what I wanted to do with information.

Fast forward to March of this year. I’m re-reading GTD, in an effort to more fully embrace it, as opposed to the semi-adoption and remixed personal approaches I’ve always tripped into in the past. The notion of a place for actions and a place for reference material is critical to success. I ruminate on this, as I have information scattered across many areas and find it intensely frustrating.

At the same time, I read another of Gabe’s excellent, detailed posts about DT. I find myself fascinated with this app’s potential and continue digging into posts and other info. I decide to go all in, buying it on the Mac and iOS. I decide it will become the place where my information lives.

I have not regretted this decision.

I could say a lot about it, but do yourself a favor if you’re even remotely interested in a significant overhaul to your digital workflow and read Gabe’s stuff. Start with that link in the paragraph above.

Then, go support great software and buy it. It will absolutely change the landscape of your information and how you access and use it.

DEVONthink (iOS)

DEVONthink (Mac)

We did a thing.

It’s been a little while since Iterate went off the air, and I’ve often thought about when I might want to podcast again. I knew that my schedule was different, the demands on my time are higher now, and life is moving pretty quickly. I also knew that it was something I enjoyed doing, and some part of me missed chatting with friends and then sticking it on the internet so other people can listen to it.

Tim and I have been friends for a few years now, and would joke from time to time about starting another podcast. We never really did anything with it. Then we wrapped on Iterate (for the time being, I still hope we return to it at some point), and literally that day, Tim said “hey, now you’ve got time”.

A few months later, I agreed.

So we did a thing. It’s no big deal. Two friends talking about the stuff that fills our minds. The basic premise is that we like to solve problems, and we usually do it in nerdy ways. It’s not a show about apps, or workflows, but they might show up occasionally. It’s a show about how we think about our worlds, the information in them, and how organizing those things makes us feel better about everything.

It’s purposefully short, and we only plan on publishing every few weeks, probably more like monthly. So there’s no commitment required. It’s casual, and we aim to keep it that way. We’ll see where it goes.

Hope you like it.

Fundamentally Broken

Things I like this week, volume 31.

Offshore

A podcast that’s just wrapped its first season, focused on real events in Hawaii, and that aims to shine a light on the issues the state faces in context with the rest of the country. Long thought of as paradise, Hawaii struggles with many of the same social problems we see elsewhere on the mainland. Season one deals with a killing of a young Hawaiian by a white federal agent in 2011 and brings to bear a turbulent, racially-charged past that continues to exert its influence on the people of the islands to this day. Highly recommended.

Homecoming

Compelling audio drama from Gimlet. Six episodes in S1. (I thought it was a standalone set of work, but apparently they’re already working on S2, which is awesome.) Features great sound editing and terrific performances from Catherine Keener, David Schwimmer, David Cross, Amy Sedaris, and others. A chilling mystery with an interesting path.

I binged both of these shows entirely in the span of less than a week. My guess is you’ll feel the same once you start.

Offshore
Homecoming

Using Drafts and Workflow as a clipboard manager.

As I continue to play this little game I’ve created for myself in which I try to use and install fewer apps while discovering new ways to use the ones I love, my latest run is based on replacing a dedicated clipboard manager app. While I do really like Copied and other apps like it, the truth of the matter is that I don’t need an app solely devoted to holding and managing snippets of information like this. I do occasionally have this need, and so it’s something I like the idea of having, but it’s almost only for text/links, which I can do in a variety of ways.

The trick is storing the snippets, but also making them accessible and easily retrieved, and because of the way iOS works, we’re limited in a few ways. Any app that does this can only run in the background for so long, and even if you’re using a widget for this, there’s only so much room in the UI to account for the things you can do without launching a full app UI. But since my specific needs are limited, I’ve experimented with pairing Drafts and Workflow together: one as the snippet storage and one for the quick access to my most-used bits of text.

A quick note: I think it goes without saying that if you use an app like Copied for images and other rich media, this wouldn’t really work for you. This is really centered on text, and the impetus for this was restoring my iPhone recently and for the millionth time not having my iCloud text expansions appear. Given that my needs are fairly limited anyway, I’m giving up on that broken-ass bullshit and building a replacement with the tools that I know will work. I still don’t understand how this far along and with all it can do having iCloud remember a three-letter shortcut for my email address and making it available on new devices consistently is such a fucking Herculean task.

Anyway.

Drafts as the library

I used to use TextExpander. I also used to have a million snippets I couldn’t remember. Then I decided to simplify and keep only the stuff I could. Once I realized this was a relatively small number of items, I decided to use the native iOS keyboard expansion for shortcuts. As you can see from my above comment, when it works, this is more than adequate for my needs. However, all too often I restore a device or set one up and I never get the shortcuts. Or they show up a month later.

But Drafts is always there. Building on my thinking for how I was using filters to move tasks out of my inbox, I created a filter to separate these text snippets out too. I liked the way Copied allows you to have a title for the snippet, so I created that same structure in Drafts. I just added a tilde to the end of the title line.

Along with that, I needed an action that would copy the body text but ignore the title line. Drafts has just such an action built in; just use the clipboard replace action, and instead of the draft tag, use the body tag. This takes everything but the first line and sets the clipboard.

From here you can go wherever and slap it in. You can even search right within the filter if you have a lot of these.

Workflow for quick access

So that takes care of the storage and the occasional browse to find a thing you want. The other time I need this ability is when I’m doing something in another app, and the easiest way to do this is with a widget. I headed over to Workflow and built a very simple list of some frequent snippets that loads right in the widget body, replaces the clipboard, and can be dismissed immediately. I noticed that 15 lines is the max I can fit in one of these on my iPhone 7; any more beyond that and you won’t see everything. Again, my needs are simple, so this is fine. What I’ve done is build a multi-step action that first asks which list you want to display, and then displays the snippets in that list.

The simplest way to get started is to just do a basic text list, add the exact text you want, and have it replace the clipboard. But you could also use the text list to show a label, and then add “Replace Text” blocks for each one, and then send the replacement to the clipboard. This would work better if you had bigger blocks of stuff that you weren’t going to see anyway, or if you just like things looking tidy. (This was Tim’s idea, I like it; I like tidy things.)

What I’ve described is two separate sets of actions that manage this content. Now you can can get Workflow to talk directly to Drafts by using the “Get Contents of Draft” action. This requires you to copy the UUID of the draft you want and place it in the action. This would be true automation, and way more fun. Unfortunately, when you do this, Workflow can’t grab the content directly from Drafts without first switching to the app, so you leave the widget and do a quick round-trip, which defeats the whole purpose of having a widget action in the first place. So I chose a few of my most-used snippets for access within the widget and spent the time up front to save it later.

Now, you might be thinking: boy, that seems like a LOT of dumb work to do just to get the same functionality that a single app can provide, and you’d be totally right! It is. I will not argue this, not even a little. But, there are two reasons I like this.

  1. I always have both of these apps installed, which means they’re always on every device anyway, and it’s one less app to install/manage in addition to that.
  2. Every time I do this kind of thing, I figure out new things. In many cases, these dumb little experiments end up allowing me to refine something else I might have been doing already. This feels good.

Finally, I figured I needed a quick way to make adding snippets easier, so I created a basic Workflow that asks for input or grabs the clipboard (assuming I’ve copied what I want), asks for a title, and uses Tim’s nifty Auto-Archive action to dump the filtered draft in the right bucket.

Needless to say, since Tim and I go back and forth on this stuff all the time, I’ll drop an idea on him, and he’ll latch onto it and improve the flows.

So he figured out how to construct the text as a dictionary, and have Workflow present the list and pull the right text that way. Which means you can build a single text file in whatever app you want containing the labels and links/snippets/etc. and then just drop it into the leading text block in the workflow. This makes things very easy and nice. Here’s the template for that.

And then sometime later I went to bed. But he didn’t.

I woke up to a long message and a few links. One to a new Drafts action and one to a Workflow that’s called by that action. Basically, since Workflow can’t get the info directly out of Drafts in the background, he thought to create a text file that Workflow could access in the background, and stuck it in its iCloud folder. Within that text file is the dictionary, containing the names of the text snippets, and the corresponding values for them. You can store these files in Drafts, and update them whenever you need to. Save the file again to that same folder in Workflow’s iCloud storage, and it’ll overwrite. The next time you run the workflow, it calls the new information from that file. It’s still not quite directly linking the two apps the way you’d think you should be able to, but it’s damned creative, and I told him so. And it’s way easier to edit the dictionary within Drafts than in a tiny box within Workflow.

As far as I’m concerned, that’s the best way to do this: maintain a text file (or a series of text files for whatever you want) in Drafts, save out changes to Workflow’s iCloud folder, and the updated versions are always available when you want them. If you want to keep this in the widget, you’re still limited to the row number, but if you don’t care, you can have a list as long as you want.

I realize it seems circuitous and somewhat silly, but the whole point of all of this is to play and learn. The game of reducing apps has a direct benefit in that every time I restore or set up a new device, it takes less time to get up and running. But these small excursions also allow me to think through problems and find new ways to solve them. Some people engage their leisure brain with crosswords or sudoku. These are the little puzzles I like to solve.

Update 2017-01-13: I realized a week too late that I was mistakenly referring to dictionaries as arrays. So I corrected this egregious mistake. Sorry about that.

Things I like this week, volume 30.

Mozart in the Jungle

Amazon has, in the past few years, gone from “the place where I buy almost everything” to “the place where I am continually surprised to find extremely compelling original entertainment”. When the company announced it was creating its own content, it seemed like a very me-too move. But to its credit, it’s gathered an insane amount of talent and continues to put out some incredible stuff with its Prime Video service.

Apart from the high-visibility shows like the absolutely amazing Transparent, there are a ton of other efforts, some of which barely register on the radar but are still very good. One of these shows is Mozart in the Jungle. I’m not going to get into plot summary, but suffice to say if you like snappy dialogue and classical music, you’ll probably like this show. Hell, even if you don’t like the music, you’ll probably like it. There are several recognizable faces and some outstanding performances from a few you don’t yet know.

It will probably take you a few episodes to get into it, but since it’s a half-hour show, you can chew through it really quickly. Season three just landed in early December and I haven’t started it yet, but we’re about to and I’m really looking forward to it. It’s charming, scathing, heartwarming, and hilarious in equal parts, and once you get into it, you find yourself strangely compelled in watching the lives of these characters unfold. It’s a look at how utterly normal and relatable seemingly different people can be, and it’s a delight.

Mozart in the Jungle