Owning the platform — revisited


I wrote about buying a product, not being one, with the idea that I didn’t want to use services that I couldn’t control (and pay for), but in the last year, my thinking has changed.

Part of this change has come as part of the increasing speed and nature of hacks and compromises across the internet. James Cox writing for Motherboard:

When it comes to website security, users are largely at the whim of site administrators, especially when it comes to the constant updating of software.

In the last year, many work discussions have been around the use of a self-hosted service versus a hosted service. A self-hosted service with five people devoting one percent of their working time to the security of the system is not uncommon. A hosted service has five people dedicating 50+ percent of their time to security. Which system would I trust?

In the last year, an internal dialog similar to the work-related security and focus discussion has been bubbling in my head. I have used “self-hosted” Wordpress, file transfer and storage, contacts and calendars. I am putting information valuable to me on a server on the Internet. I am not hosting them on a dedicated server or a server in my home. I’m on a shared server, managed by Dreamhost, which has worked well. They have security staff and systems in place to find and stop most of the compromises. The issue comes when Wordpress plugins have security holes allowing comprise, or poorly written PHP that exposes personal information.

Erik Hess:

It’s safe to say that static, self-hosted blogs tend to attract the nerdier slice of the vast writing public. I am a proud member of that slice.

Having said that, even nerds get tired of dealing with the day-to-day demands of managing yet-another-web-application, especially if that’s what they do all day long, day-in and day-out.

Changing the hosting of my blog to Medium was an easy choice. In addition to the security benefits, Drew Coffman explains:

There are several benefits to using Medium as Extratextuals’ host, but the main reason that I made a move was this — the time I have to write, I want to write. I have very little interest in fiddling with a website, and even though I streamlined every possible aspect of my Wordpress build, I was still finding myself, every day, fixing settings and making things work.

Marius Masalar expands on Drew’s thoughts, saying:

Here on Medium, I relinquish control over those details.

In exchange, I gain the peace of mind that comes from knowing that instead of me there’s now an entire staff of people whose only job it is to keep everything looking and functioning perfectly, on any platform, under any circumstance.

They’re experts. It’s liberating.

Meanwhile, my content remains mine, I get to keep my URL, my old links redirect seamlessly, and my SEO performance can only get better.

(Emphasis mine)

Moving my blog to medium still conforms with Marco Arment’s thoughts on owning the platform:

You can use someone else’s software, but still have your own “platform”, if you’re hosting it from a domain name you control and are able to easily take your content and traffic with you to another tool or host at any time. You don’t need to go full-Stallman and build your own blogging engine from scratch on a Linux box in your closet — a Tumblr, Squarespace, or WordPress blog is perfectly fine if you use your own domain name and can export your data easily.

So. Owning the platform. What does that mean? How does it conflict with buying a product instead of being one? I am of two minds about this tension. Firstly, I am willing to pay for products that make my life better, like Dropbox, and the products that I can’t pay for, I will work to own the associated domain.

I am replacing almost everything that I have done on my slice of the shared server.

I am using Medium to host my blog now. Partly to increase my “exposure”, partly to stop worry about the constant security issues. I am posting under my own domain, key to Marco’s argument. In addition, I have migrated my email from Dreamhost to Fastmail, which has worked very well. I have mostly given up on RSS, so hosting feed reading software isn’t necessary, also because I am following only a few dedicated site instead of the firehose of the Internet. Calendars and contacts are hosted with Fastmail and iCloud and the mix allows me to share calendars when appropriate. For one-off podcast listening, Overcast’s new upload feature makes my self-hosted service redundant. I am using a paid Dropbox account which allows me to share data from my devices.

I am quickly moving my services from Dreamhost, not because anything bad has happened, but because of what Erik Hess said:

[E]ven nerds get tired of dealing with the day-to-day demands of managing yet-another-web-application, especially if that’s what they do all day long, day-in and day-out.




A Trello assistant, or a foray into using bots

We are at the dawn of the “bot” revolution. Many pundits claim bots will replace apps and become a primary way of interacting with services. I am less confident in our new digital assistants, but with a new bot, I am becoming a fan of their usefulness. I first experienced the idea of a digital assistant in Siri, baked into my iPhone and she has worked in a less than spectacular fashion. She doesn’t hear me well, and I find her commands limited and not well documented. Overall, Not a great start to the revolution.

Enter Butler Bot, a bot for my Trello boards.

With Butler Bot I see the value of digital assistants. Butler Bot’s commands are clear and well defined. Ludable, the developer, has been quick in responding to feature requests, adding many with in a day of their request. This is making the bot better and easier to use.

So, what can Butler Bot do?

  • Create and archive cards on a schedule.
  • Move cards from one list to another based on labels or checklists completion.
  • Add checklists to cards in a specific list or when labelled.

These tasks are small and could completed by a person. I find Trello is best when using an established process, with each list being a phase of the process. Butler Bot automates the transitions between phases, making the upkeep on a Trello board simple.

If you use Trello, I highly recommend adding Butler Bot to a board, playing with the command structure and exploring where a bot can make your board better.


Living Bimodally


I have been long aware of Paul Graham’s writing on the Maker’s Schedule versus the Manager’s Schedule. Particularly:

When you’re operating on the maker’s schedule, meetings are a disaster. A single meeting can blow a whole afternoon, by breaking it into two pieces each too small to do anything hard in. Plus you have to remember to go to the meeting. That’s no problem for someone on the manager’s schedule. There’s always something coming on the next hour; the only question is what. But when someone on the maker’s schedule has a meeting, they have to think about it.

For someone on the maker’s schedule, having a meeting is like throwing an exception. It doesn’t merely cause you to switch from one task to another; it changes the mode in which you work.

I find one meeting can sometimes affect a whole day. A meeting commonly blows at least half a day, by breaking up a morning or afternoon. But in addition there’s sometimes a cascading effect. If I know the afternoon is going to be broken up, I’m slightly less likely to start something ambitious in the morning. I know this may sound oversensitive, but if you’re a maker, think of your own case. Don’t your spirits rise at the thought of having an entire day free to work, with no appointments at all? Well, that means your spirits are correspondingly depressed when you don’t. And ambitious projects are by definition close to the limits of your capacity. A small decrease in morale is enough to kill them off.

Having a good understanding of my work and energy patterns, I know that meetings drain me and when I have meetings in the middle of my day. I have hard time getting back into a focused mindset. I also know that I am prone to considerable procrastination when I know that I have meetings later in the work day. I might spend the whole morning goofing off if I have a meeting at 11.

These things are not good. Given the amount and complexity of the work that I need to do to complete a major project, being on a maker’s schedule is critical. The work that I need to do requires significant effort and focus, so applying the principles laid out in Cal Newport’sDeep Work is an effort worth pursuing. After reading Deep Work, I needed to figure out how I could spend more time in the flow-like state, doing the hard work. Part of that process has involved understanding which mode of deep work would work best for me.

Jeremy Duvall summarizes the deep work modes that Newport lays out:

  • Monastic — This philosophy attempts to maximize deep efforts by eliminating or radically minimizing shallow obligations. (Think seclusion somewhere)
  • Bimodal — This philosophy asks that you divide your time, dedicating some clearly defined stretches to deep pursuits and leaving the rest open to everything else.
  • Rhythmic — This philosophy argues that the easiest way to consistently start deep work sessions is to transform them into a simple regular habit.
  • Journalistic — in which you fit deep work wherever you can into your schedule.

I am a using the Journalistic mode to accomplish the writing necessary for my Master’s classes, so I thought it would be the same for my work project. The problem is that meetings were completely productivity sapping. Going into the Monastic mode is appealing, but not very conducive to have a job that requires regular client and co-worker interaction. The Rhythmic mode sounds nice, but when there could be a crisis that meets me at the door when I walk in at eight, it makes forming a habit difficult. That leaves me one mode: Bimodal.

The past three weeks of work have been done in the Bimodal mode. I have blocked two days on my calendar and will not allow anything to be added on Wednesdays and Fridays, those days are for focused work. That leaves Monday, Tuesday and Thursday. Monday is triage and planning, getting ready for my week. That leaves Tuesdays and Thursdays are for meetings, lots of meetings. In some cases, every hour being blocked for a different meeting and keeping me moving across campus. I am completely worn out after meeting days.

The great thing is that even after a day full of back to back meetings, the next day’s focus activities are still highly productive. I am no longer wasting large stretches of the day mindlessly surfing, waiting for the next meeting to start. In fact, I have to remind myself to eat, drink and take breaks, because I get so deep “in the zone” that the distractions of basic functions feel incredibly disruptive.

In addition to shifting the mode of work, I am working to eliminate shallow work, and when I have to group it together. This means removing Safari and email from my phone. I have ways of looking things up, but the friction that comes with it means that I am not wasting time looking up needless things. It also means checking email twice on meeting days, and once on focus days. This limited email schedule means that I have a lot of email to process, but it makes me more ruthless in deleting and responding.

I am also not allowing people to have open access to my calendar. I need to keep myself available on meeting days for my team and my boss, but not allowing people to just drop random calendar invites on my calendar is a very different habit. I am using Calendly to allow people to schedule specified blocks of time, ensuring that my meeting days, while busy are not completely overwhelming.


Working bimodally has taken some getting used to, both by me and my coworkers, but the results have spoken for themselves, I have produced more quality work, and continued to keep the understood commitments of working in a large organization.


An updated way to make the iPhone a dumb phone


Originally, I had created a series of steps using Workflow, Launch Center Pro, and Sidefari to beat my iPhone addiction. Recent changes in Workflow have made the process even simpler.

Before disabling Safari with iOS restrictions, the workflow shortcut can be added to the home screen. This will launch Workflow directly, no need to jump to Safari first.

Second, the new workflow will take the URL from the clipboard and presenting three options:

  1. Open the URL that is on the clipboard
  2. Search for a term
  3. Enter a URL

With the release of Workflow 1.5, a new feature included is the ability to show a Safari View Controller without needing to use Sidefari.

All in all, this update to Workflow has created a simple, effective way to keep distraction off of my phone.


Automate all the tasks

Omnifocus, Workflow, and templates

With all of the discussion around the Omnigroup’s release of automation for Omnifocus for iOS, I have found several types of automation can be run through Workflow.

  1. Project
  2. Project with Defer or Due Dates
  3. Project with variable replacement
  4. Optional multi-section project
  5. Omnifocus task manipulation

Basic Project

The most basic, just a list of tasks in a project. Almost no automation. Using the Taskpaper syntax in a Text Action, and passing the input to a Omnifocus URL.

Basic Project Workflow

Project with Defer or Due Dates

Omnifocus has some great built in automation surrounding dates, specifically the use of relative dates for tasks and projects:

2d, –3w, 1h, 1y1m, and so on — Relative dates and times put the date at a certain amount of time from right now. Negative numbers represent times in the past.

This feature can be used in the template format. Huzzah!

This Workflow only sets the due date for the project and uses the relative date formatting to set start and due dates for the tasks.

Sample Project Template

Basic project @context(A Context) @defer($dueDate -3d) @due($dueDate) @autodone(true)
    - Task 1 @context(Another Context) @defer($dueDate -3d) @due($dueDate -2d)
        A note for Task 1
    - Task 2 @context(A Context) @defer($dueDate -1d) @due($dueDate)

Project with Defer or Due Dates

Project with variable replacement

The same Replace Text Action used in the Projects with Defer and Due Dates can be used in multiple scenarios, not just dates.

Sample Project Template

$account project @context(A Context) @defer($dueDate -3d) @due($dueDate) @autodone(true)
    - Talk to $person1 @context(Another Context) @defer($dueDate -3d) @due($dueDate -2d)
        A note for Task 1
    - Prepare $account report for $person2 @context(A Context) @defer($dueDate -1d) @due($dueDate)

Project with variable replacement

Optional multi-section project

This is where the whole automation process gets interesting. Sections of the project can be omitted if not needed. Adding to this the variable replacement, now there is some significant automation to be had here

Optional multi-section project

Omnifocus task manipulation

I have long used Applescript on the desktop to manipulate tasks, creating a “waiting for” task, by prepending information to the task “Waiting for:” and changing the context to “waiting”. Creating a similar task in Omnifocus on iOS isn’t nearly as simple. Basing this workflow off of one provided by Ken Case, I have changed this to create a “waiting on” task in the format that I prefer.

Waiting On Omnifocus Task manipulation

I am very excited about the automation features that are now in Omnifocus. Using Omnifocus on an iOS device, without a desktop is becoming a reality.