Review of the 2018 iPad Pro



The sideways logo gets hidden, rather than fixed.

Photo by eleven x.

Yes, I know this photo is of the old model. But it perfectly captures what’s still wrong with the new one.

The iPad has been my primary mobile computing platform since a couple years after it came out. I’ve had every version since the very first, and I immediately replaced that one when a version with LTE arrived. I spent two months traveling with my family last summer and only used my iPad. I’ve taken countless trips with nothing but it and my phone to get work done.

I’m not mobile-only. I have a 5k iMac on my desk, and am far more capable and productive on it than I would be on anything else, because of screen size if nothing else. It’s worth noting that I’ve worked professionally on MacOS (Classic and X), Solaris, Linux (I tried nearly every distro available until around 2008, and even tried the BSDs), BeOS, and once in a while a little Windows. I had two 21" Trinitron monitors on my desk in 1999, and I’ve spent more hours than I could count fiddling with my computing experience to maximize productivity. Heck, that’s what ended up with my starting Puppet: I just wanted to get more done, faster. So when I say the iPad is the most productive device for me in many situations, I’m saying that within the context of twenty years pursuing exactly this.

I’m a heavy iPad user, and it’s really important to me. I use my phone, but I love my iPad.

That context is important for this review to make sense. We’ve seen many reviews of the new iPad that could be summarized as, “I’ve been using a Windows desktop for twenty years, and the iPad still can’t replace it for my use cases.” Those reviews are useless. I mean, unless you’re one of those people. Get a Kindle, I guess. This review is for people who are willing to shift work styles and recognize that different platforms optimize for different problems. Success for the iPad is more about whether it has valid and compelling uses rather than whether it works for each and every one.

The short version of this review is that I love the new iPad Pro, but I decided not to keep it. I already have two of the older versions at home. The difference between this and previous generations is not a big enough jump for me in the ways I use it, especially given I’m between jobs. For the things that were working great, they now work better, but more of the things that weren’t working, it doesn’t really make an impact.

Your scroll bar is telling you, though, that this is a much longer review. Settle in. (Or silently close the tab, and save half an hour of your life.)

How I fell in love with the iPad

I know some find that travel is explicitly where they struggle to survive without a laptop, but it’s where I flipped the fastest. The easiest explanation for why - also explaining the importance of LTE - is my pattern of travel when I was still running Puppet.

Here’s what it looks like if I have a laptop:

I show up at the airport. I find a seat, pull my laptop up, log in, and join the local wifi. Most of the time this doesn’t work, because airports, so I tether with my phone. Then I wait. No idea how long. I use Apple’s Mail, and the desktop version has consistently had some issues downloading mail efficiently, especially from Google. I’ve tried literally every other mail app; don’t @ me. So I wait. When boarding is called, or all the mail is obviously downloaded, I close my laptop. I have often found myself carrying an open laptop through the boarding line because it’s not done yet.

On the plane, once we’re at 10k feet, I process the mail. When I was running Puppet, I received about 230 mails a day, and sent about 30. Ideally a 1.5 hour flight between PDX and SFO (my most common trip) would at least get me to “no scroll bar in my inbox”, and sometimes even inbox zero(tm).

I land. If I am taking a taxi, I get in, open my laptop, tether to my phone, and let the mail start flowing out. Some of them make it. Some don’t. I’ll try to join every wifi network I spend more than five minutes around. If I’m not taking a taxi, no mail gets sent until I get to my hotel after dinner, most likely - I can’t do this while driving, and the trains are usually too far underground to get service.

I just spend the rest of the day dealing with inconsistencies in the inbox on my phone and the one on my laptop. 🤷‍♀️

Here’s what it looks like on my iPad:

Once I get on the plane, I open the mail app on my iPad to make sure it’s fully synchronized. I then put it in airplane mode, and start reading on it. At 10k feet, I lower the tray and start typing. I’m a little less efficient on an iPad than a laptop, so I get a little less email done, but it’s shockingly similar.

When we land, I turn airplane mode off. I open the mail app just to ensure it’s going to synchronize as quickly as possible.

I get annoyed texts from my team about the torrent of emails I’ve just unleashed.

That’s it.

You could argue that this says nothing about the iPad. Any device that was always on and had an LTE connection could do this, no problem. But of course, my other computers don’t and can’t have these features. I honestly don’t know why I can’t get an Apple laptop with an LTE chip in it, but I do know why it’s not running 100% of the time.

Once my primary travel computing use case - email - flipped, I found a way to make most other things do so.

There are many people whose primary use for computers is sitting in one place, working on one or two problems for hours at a time. I’d be surprised to find those people prefer an iPad. Even if I could program on one, I wouldn’t want to, because the screen just isn’t big enough to show everything, and I can’t have all the windows open that I need.

But as a CEO, my job was constant change, constant context shifts, constant movement. I craved depth, but usually in vain. The iPad fits that life perfectly.

That’s why I love it.

The iPad today

Everyone has said this 1000x times: The iPad’s hardware is great, it’s the operating system that’s lacking. I agree, but I have more to say than that. And it’s not just about features like reading files off a disk, which I doubt I would ever use.

Apple has to (ahem) think differently about the device altogether. They’ve gotten better: They’ve agreed it’s not just a big phone, it has different users, different use cases. It needs a different experience.

But they’ve barely begun to work through the consequences.

I love my iPad. I use it more than every other device put together. I have for years. It is great at so much.

But its user experience for absolutely mundane work is a shocking embarrassment.

I built an automation company to almost 500 people. Our software was built on the recognition that system administrators - the people who make your computers work for you - were spending too much time on menial tedious work, and it got in the way of their real work. Puppet helped restructure their entire work life, automating away the tedium and making space for the most important, most valuable work.

The iPad has provided me great new abilities, but forces me to take the long way to using all of them. If you were to watch me using it, you’d notice that a huge portion of my direct interactions with it are only necessary because of its failures, not my desires. Some of this is not a ton better on the Mac, which always focused more on simplistic usability than working hard for power users. Coming from a fully customized keyboard-driven experience in FVWM and its descendants, I was never going to be happy. I still miss focus follows mouse with no window auto raise. But man, it could be a lot better.

I need you to understand. I want you to feel what I feel.

On my desk, my mouse is less than an inch from my keyboard.

But every single time I have to take my hand off the keyboard - every time - a large buzzer sounds in my room, a million candle power red light starts flashing, and the overhead sprinklers turn on.

Ok, it’s not quite that extreme. To the observer. But that’s what it feels like to me. When I say I want to do everything on the keyboard, what I mean is every time I have to do non-keyboard interactions it is a massive disruption in how I work, move, flow. It breaks my interaction. Some of these are ok - scrolling is probably the least disruptive, although it’s such a core use case it’s amazing there’s no good option from the keyboard1. But clicking into a text box? Selecting text? *shudder*

I grew up remodeling houses with my dad. Imagine a hammer that required I put it down every time I needed a new nail. Or a screw gun that required two hands to load a screw, so I had to hold it between my knees on a ladder. Insane. You could never get flow. You’d throw that stupid thing away.

That’s what it’s like to use an iPad.

Let’s just pick the simple stuff. Something I do every day, often multiple times a day. Let’s walk through each little step, get granular so you really see it.

I have to make a calendar event based on an email. I’m in Apple’s Mail, and the calendar app is next to it. Again, there’s an air horn next to me, a strobe light mounted to my left, and a bucket of water above my head, ready to tip over every time I touch the screen.

I’ll be generous. We’re making the appointment for today, so no need to navigate within the calendar to pick the right day.

Task one: Switch to the calendar app.

Oops. I foolishly have both apps on screen at once. You can’t shift focus between those apps. Or can you? Wait, what does focus even mean on an iPad? No one knows. I’m in Mail, so I know it starts with focus. I lift my right finger up, and select the slot on the calendar I want. The world explodes.

In this case changing focus would not have helped, because Google’s execrable iPad apps don’t really support keyboard shortcuts. Huh. The company whose keyboard shortcuts are so dominant in desktop email that everyone else is copying them, doesn’t even use them on mobile? Maybe if Apple cared, Google would? Probably not, but since Apple clearly doesn’t, why should they?

I wipe the water from my face, and am now in the new event pseudo-pop-up. Oops, I need to copy the email address of the person, because it’s someone not in my contacts. I slowly, cringing, move my finger back to the mail app. How many taps does it take to get to an email address? I’m not sure, but I think it’s about four. It should be Cmd-Tab, Cmd-R (to reply, which I have to do anyway), Shift-Tab a couple of times to get to the To field, Cmd-A, Cmd-C to copy the address (I can use arrows and such to get just one if I want), Cmd-Tab to get back to Calendar, Cmd-V to paste.

Yeah, not here. I think focus is now in the calendar app, so I have to touch the mail app again anyway. I hit the reply icon. I use Shift-Tab to get to the To field, which mostly works. I then try to copy the address. This fails at least 50% of the time. Like, just fails. I mean, the buttons on the keyboard work. But when I try to paste elsewhere, the clipboard appears to be empty. Or something. Nothing happens. Since I’d rather have a crappy workflow than an inconsistent one, I use my finger again to touch the email address. How does one copy an email address when copying doesn’t work?

You don’t! You drag! Because absolutely, the one fix I want to bad keyboard shortcuts is different touch experiences. I love that drag and drop is more powerful now, but can’t you get the basics working, too?

Honestly dragging is also inconsistent, but weirdly, I’ve found it’s more consistent than the keyboard. I frequently swap email addresses in a mail - when I respond to an intro, I swap the default ‘To’ person to BCC, and move the ‘CC’ to ‘To’. If I drag them around, it almost always works, but if I use the keyboard, it just… doesn’t. It fails differently all the time but nearly always fails.

Ok, so I drag it into Google Calendar. Hmm. I can’t seem to drop it on the Guest field. Maybe because it’s not the active text field? Ok, I let go, touch the calendar, and then tab to the guest field.

Hah! Just kidding. Tab doesn’t work, it just puts tabs in the event title. I touch the guest field, and drag again. This seems to actually work.

By now, I have successfully put a person’s email address in a field, and I’ve had 14 buckets of water dumped on my head, I’m flash blind, and I’ll never hear again.

I won’t bore you with the details of actually getting the rest done. Obviously GCal not having keyboard shortcuts of any use hurts a lot, but even better shortcuts would not help much, because the biggest disruption is switching apps back and forth, and once in an app, picking the correct field.

And before you tell me to switch to Fantastical or something, please. My calendar is currently showing eight separate calendar feeds, all different colors so I can easily tell them apart. E.g., mine, my wife’s, my travel, my kids, the two soccer clubs I follow (#gunners #RCTID). My main event feed further colors every event by event type. Just today I can see four different colors of event. And I only have one meeting I’m personally attending. Apparently no one else does this, because no other apps even come close to Google in effectively managing this overlay of info. Don’t @ me. I don’t know how you people live.

And also don’t try to tell me I should automate this whole process. Sure, you’re right. Except again, it would only work sometimes, I’m always dealing with natural language text that doesn’t easily parse, the automation would be brittle and I’d move from being pissed off at Apple and Google to being pissed off at my own code, and I’d spend my time trying to figure out how to build abstractions over similar automations on different platforms, version control them all, package and deploy them, and suddenly I’m trying to use Zapier with microservices in a docker container in a VM on my iPad just so I can create an event. That’s definitely better.

It should be clear to you by now that every time I do this from my living room, my basement floods, my neighbors call the cops because of the sirens, and the lights have knocked countless birds from the sky. It’s a disaster.

And this workflow is one of my most important, most common.

The basics just don’t work. Maybe you didn’t know you can “minimize” an email by dragging it by its top bar to the bottom of the screen. Where’s the shortcut for that? What about the one to cancel an email? Honestly just deleting email with the keyboard fails most of the time, and 100% of the time after the first few. Delete, delete, ooops now it doesn’t work. Of course, this is true on the desktop, too, so…

Everyone else, all the other app developers, they follow Apple’s lead. They know Apple does not respect the keyboard. So they don’t either.

But the thing is, this diatribe has nothing to do with the keyboard.

It has to do with my flow. And the flow of everyone who uses this device.

I love my iPad. But Apple has clearly not taken a critical eye to where it supports flow, and where it breaks it.

I grew up on a hippie commune in rural Tennessee. When I was about 7, the state built a bridge across a ravine, which shortened the drive to Nashville by 30 minutes. One bridge, and suddenly a trip we took all the time is an hour shorter, round-trip.

One little simplification can have a massive impact.

Apple is adding features, but not connecting them. They’ve run a freeway into town, but haven’t built all the feeder roads so people can use it. There’s a fancy bridge between two cities, but the roads to and from it are still gravel. There’s a high speed train between cities, but the stations are outside of town and you have to walk there.

It’s not enough to put things in place, they have to fit into a coherent, cohesive system.

And until Apple respects the iPad enough to really think about how it all fits together, I will finish my work day soaking wet. Brrr.

Now, about that new iPad

Naturally, I bought one of the new Pro models when it came out. I have the original (2016?) 12.9" at home, and also the 10.5" that came out in the spring of 2017, both with LTE and the keyboards, and one pencil to share.

I almost never use the big one. It’s just too big. It doesn’t fit into my EDC bag (mostly because that was specifically chosen to fit the smaller ones), it’s too unwieldy to read in bed on, and it’s just hard to move around like I do with my main one. I mostly use it to watch soccer games on while I’m making breakfast on weekends. I’d sell it, but we often have five kids at our house playing Minecraft or Roblox, and I would never hear the end of it if we were short one.

I think Apple did exactly the right thing by making the big one smaller and growing the screen size of the small one. I don’t think it will, but I really want the new big one to work for me. The thing I miss most about my desktop is the big screen. I want more space, bigger screens, multiple of them. I had two screens on every one of my computers starting in 1998, until I got this 27" iMac - the screen is finally big enough, and managing windows on multiple monitors on a Mac was just not worth it.

So, I got the big one to try it out. I bought it just before heading out to visit my family for the holidays. I left my smaller iPad pro at home, to force me to use this for everything, including reading books in bed.

I returned it on the 14th day.

I loved it. If I were still gainfully employed, I would have kept it. I’m having to optimize a lot for lack of income right now, and that goes big time into my decision. Even without that constraint, a lot is riding on iOS 13 to deliver real improvements. I’m expecting to be disappointed.

The reality is, the device is too similar to the two I already have. When I was less money constrained, it made sense to take every incremental upgrade. Today it does not.

For all my lack of keeping it, though, I think it’s worth sharing my experience. I think it’s enough different from others that it stretches the tapestry a bit.

The bigger one is enough smaller that it really does feel different. I could see myself traveling with just that, no smaller one - I just did for ten days. But I would have to replace the bag I have carried for years. A bigger bag would mean I’d pack more, and be less happy. But honestly, I think it would be worth it. I could consolidate to just one iPad, mostly portable but big enough to be more productive. I would love that.

One area performance was immediately obvious was loading photos. One of the things I love most about the iPad Pro compared to other iPads is just how fast it downloads from SD cards. last summer I took more than 6000 (yes, you read that right) photos, mostly on my Fuji XT-2, and processed them all on my iPad. The connection on the Pro is waaaaay faster than on the normal devices, and it makes a huge difference. The new one seems to download the photos even faster, so fast the thumbnails are shown even more slowly than the data makes it onto the device.

That being said, most of the speed doesn’t matter that much to me right now. I’m typing this on a 12.9" that’s almost three years old, and I suffer through the app reloads and web page refreshes that the new one did not force on me. But it’s a pretty minor sacrifice for what I do, which is mostly reading and writing.

One of the biggest features in this new one was a mixed bag. I love having Face ID. Sometimes. Apple stubbornly insists this is a portrait device. That’s wrong for the smaller device usually, but always for the big one. Like, literally, I never use it in portrait mode. I know some do, in a stand or something. I don’t. That poor decision by Apple compromises Face ID so badly that I think they’ll move the camera in the next release. Here’s why:

I’m right handed, so I use my right index finger for most touch interactions. This leaves my left hand to hold the device, move it around, etc. And when I do that, where am I holding it? Right over the camera.

Pair that with the fact that Face ID is built to be used less than two feet from your face, and it’s a bad setup. I am sitting on my recliner in my living room, and every time I use the device here, it would say, “Face too far away”. I grab it with my left hand to move it closer, and now I’ve got the camera covered.

When I got the iPhone X, it was a magical experience. I just did not notice Face ID. On the iPad Pro, I’m getting a constant “You’re holding it wrong” experience instead. I’m having to babysit how I log in or authenticate, and have constant friction. Again, all because Apple is wrong about how their customers use this device.

The other big feature is the new pencil. I would use this one more than the old one, but not a lot. I basically only ever use them when taking notes in meetings. That was much more important years ago, less so now, but it’s still not that useful for how I work. Most of my text apps don’t support it (e.g., the app I’m writing this in, Ulysses), so any notes get sequestered in Apple Notes, which is a consumer app that fails quickly for me when asked to do complex information management. I need complex folders, with PDFs sitting next to notes and text files. I mean, duh, I want to organize by content subject, not content type. Plus my handwriting is illegible. So I agree the pencil setup is better, but that’s more a statement of how bad it was than how clever or great it is now. I know this matters a lot to some, just not that much to me.

The larger screen really is better. I don’t do “multitasking”, but I often have two apps on screen. E.g., when I process email, I almost always need to look at my calendar. With the bigger screen I can have my calendar in a small window, showing daily view, and it works great. I can only do this on my small device if I squint a lot. Being in my 40s is awesome. (It’s not all work; I also often have Destiny Item Manager and Discord open at the same time.) Again, note, this is about allowing me to get all the apps for one task on a screen. The computer is multitasking, I am not.

The new keyboard folio is pretentiously named, and such a bad wrapper for such a beautiful device that I’m embarrassed to touch or see it. I think technically the first case for the first iPad might have been worse, but wow that’s a low bar. So I have three color choices for my $1500 device, but I have to wrap them all in a slate-colored piece of vinyl? Shameful.

I guess the new setup is better. I definitely love having two angles, and it’s certainly less confusing for others to use the device. It’s a bit more disorienting for this expert user, though. I never got lost on my old iPad, but this one is sufficiently featureless that I’m always struggling to hold it in just the right way when opening it. Where’s the hinge? What corner does the camera go in? I frequently felt like I was studying a foreign object rather than using a well-known device. It needs to be far more obvious how to grab it, how to open it. The asymmetry of the old one was ugly, but you would never be confused about where the hinge is, or the bottom, or anything else. And the keyboard being exposed on the back is just a mess. It gets filthy, that filth passes to the screen, etc. Yuck.

That being said, the actual keyboard bit is better. I am typing this on the old one, on my lap, so clearly that was never a problem for me, as it apparently was for others. But the new one is more rigid, and the actual typing seems better. I mean, not good compared to my mechanical keyboards, but better.

So for this one, I’m calling a pencil: Wow the last one was really really bad. This one’s a bit better, so it’s only really bad. Unlike the pencil it’s a real downgrade in orienting yourself on the device when you first pick it up. The materials and handling issues guarantee no better than a middling grade.

I like smaller bezels and the new form factor, but honestly none of that matters to me except for how it makes the device smaller. Yes, Apple has a knack for industrial design that immediately makes everything that came before seem antiquated, but I’ll suffer through somehow. My car is six years old. I’ll be ok. I’ll just start calling my old devices dadcore.

Conclusion

It often seems that Apple’s industrial designers are their favorite kid, and the software designers are only there because someone has to fill the machines with stuff. Jony Ive gets to lovingly expound from his featureless white room on the physical bits, but, ah, not so much on what it’s like to use it for anything other than a dinner plate. That’s someone else’s job, someone else’s love.

I don’t think this is “new Apple”. Holy cow I hated early releases of OS X. Yes, it’s far more important than my interfaces be lickable than usable. Of course.

Apple’s operating systems usually do have a much user experience than others. But, ah, you’re comparing yourself to XWindows, which still can’t automatically detect an external monitor2, and Windows, which is a clean-room copy of MacOS done by aliens. The competition isn’t exactly fierce.

After college, I switched from MacOS to BeOS. I loved that OS. There was so much forward thinking in it, and there was a real conversation about what usability really meant, with a close connection between the people building it, developing for it, and using it. When it went away, I had no real choice but to switch to Linux. Literally every year I cycled through all of the distros in hopes of finding one that didn’t require me to hand-maintain my X.org config to support two monitors, but always ended up back on Debian, because at least its packaging was sane.

I finally switched to Mac when I realized: Once a year, I spend a week being livid, utterly pissed, bright red and burning hot, at Apple, all their products, and how they seem to just not like or trust their customers.3 But I spent an hour every day feeling like that about Linux. I eventually concluded I’d rather compartmentalize all of that into one chunk than spread it evenly throughout my life.

So yeah, I love my Apple devices, but, like, only compared to everything else. I hate software, but I’m pragmatic.

With that as a preface, here is the most accurate, but also most damning, review I can give for these new iPads:

They are a stunning implementation of the wrong thing.

The easiest way to see this is looking at the Apple logo on the back of the iPad. If you use the new keyboard, it’s covered in shame, but on my existing devices, it’s either hidden or sideways. If I am not using the keyboard, it’s wrapped around hiding the logo, but if I am using it, then I’m in landscape, and the logo is on its side.

The crazy thing is that Apple already learned this lesson! They used to ship their laptops with the Apple logo upside down. Or rather, it was right side up when just sitting there, but not when you actually used it.

Look, I don’t care about the logo. It wasn’t my blind spot that led to this.

What I care about is what it means that Jony Ive, Tim Cook, and all of the other leadership aren’t seeing these sideways logos every day, and tearing their hair out.

I’m trying to imagine an exec meeting there, with fifteen Apple logos sideways around the room, and everyone just shrugging. I can’t. Someone has to notice, be pissed off, right?

I can only conclude they don’t use these devices the way I do, and that causes me some despair. They still have a long road to walk. They’ll get there. But not soon.

The first thing I do every morning is turn off rotation lock, and enabling it is the last thing I do every night. I only need it enable when reading it bed, and the rest of the time I want to easily switch back and forth. This little bit of software friction cuts my usage of the keyboard by like 50%. One of the best things about using the big iPad is it’s too big to read in portrait, so this problem goes away.

A teeny software change could just ignore rotation lock when the keyboard is attached.

That software change would have happened ages ago if the people building these products used them anything like how I do.

Since they obviously don’t, I am not optimistic they’re going to make the right fixes.

Yes, there are a bunch of features they should add. But it’s more important they make a psychological shift in what this thing is for.

This device does give me some bit of hope. Even they can’t ignore the debacle that is Face ID with these things in landscape. That will push them to reorient.

Until then, you’ll just have to hide your sideways logo. But I’ll know it’s there.

  1. Page up/down aren’t scrolling; most apps handle them poorly.
  2. I’ve no idea if this is true. But it was true last time I checked, and that time was in the 21st century, so it’s still embarrassing.
  3. This was more so at the time, around 2007, then now.

We Were Promised Flying Cars and Five Hour Work Weeks



Work is not a zero-sum game

Image courtesy of Clem Onojeghuo

Remember those stories from a few decades ago, about how improvements in productivity and automation would mean that we’d only be working 5 hours a week by now? They seem as fanciful, and predictive, as The Jetsons.

It’s almost a punch-line now, because many actually work more hours today than back then. How could they have been so stupid?

Of course there is actually a lot baked into the fact that higher productivity has not reduced hours worked (nor, it turns out, has it raised wages for the bottom 50% of earners in the last three decades, quite contrary to the previous, oh, 200 years). But a big part of why that prediction seems so silly now is it included an implicit assumption: That the work we’d be doing today is pretty much the same as what we did then. You know, before computers.

And I don’t mean, they could not foresee how much time we’d waste on social media. Their primary mistake was not thinking about how we’d use the space created by greater productivity.

We’ve known for centuries that increased efficiency results in increased consumption - we keep improving fuel efficiency, yet we’re consuming more gas than ever. Why?

We also know that expanding a freeway has never reduced traffic congestion. It has the same cause.

Induced demand. People who would not have driven with only two lanes, because of all the traffic, will now drive if there are four lanes. Trips you would not have taken because of the gas cost now become affordable and reasonable.

If your goal was to get more people driving, and maybe get the resulting increase in economic activity, then I suppose you got what you wanted. But if you were trying to reduce traffic - which is why most people say they want more freeways - then you’ve failed. If anything, you made it worse, because now twice the number of people are stuck in traffic. You didn’t reduce the problem, you just spread it around.

Demand is induced in many other areas. I grew up remodeling houses with my dad and got to see the impact of pneumatic nail guns and paint sprayers, which automated a huge chunk of how we’d spent our days. Of course, we didn’t use that newly free time to sit around, we changed our behavior: We did higher quality work, we finished jobs faster so got more done in a year, and we lowered prices.

I ran into this perception conflict all the time as I was building Puppet. I’d say I was building automation for the data center, and salespeople and execs would say, “Oh, so you can fire sysadmins!” I don’t know what they had against operations teams, but no, I would respond: I can give you a choice between reduced cost at the same service level (i.e., you fire people), or keep costs the same but increase service quality.

“Wait, that’s an option?!” Without higher level tools like Puppet, people had no idea how to increase service quality. Cost was their only dial, so they focused on that, even if it made no sense. Once I gave them other choices, of course they wanted better quality.

So where success in 1999 was shipping twice a year, and not going down, like, that often, now success is shipping multiple times a day and never appearing down to your customers. The standards have changed entirely, and that change was made possible mostly through automation. You can bet Netflix doesn’t become the new standard for infrastructure hotness using the bad old manual practices of the 90s.

You might say, no, people’s standards changed and that’s what motivated them to invest in automation, but you would be wrong. They always wanted higher quality. They always wanted better service. They just felt they had no choice but to accept the status quo, until we showed them other options.

I’m not saying automation never destroys jobs, never reduces the amount of work to be done in an area. But it’s by no means the default result.

The first impact of automation is to increase quality. I felt this myself, building houses. The main reason I’m no longer a carpenter is because of how incompetent I was at setting trim nails. You drive the nail most of the way into the wood1, then use a small punch to recess it. You cover that one little hole in spackle, and no one can tell. Unless you’re me. When I do it, I make a little sunflower, with a hole in the middle and holes all around in a circle, because I’m just that good at letting the punch head slide off the nail, into the wood. If we’d had the trim nailers that exist now, even I could have done a decent job. That kind of success might not have driven me out of the industry and into the welcoming arms of computers. I’m not a lot better typist, but the delete key does wonders for my self-confidence.

And let’s be honest about what we’re automating: It’s literally the most boring and least useful work we do. I wasn’t exactly high skilled labor, but I assure you there were more valuable things for me to do than try to set a nail while on my knees, bent over to the base molding. As a SysAdmin, yeah, my bosses thought my job was typing the same command 1000 times a day, but we can look back now and see that definition actually got in the way of the work, rather than being it. We had much more important stuff to do. Or at least, I did. Not sure about the bosses.

If we were all willing to drive cars from the 70s, while living in houses from the 70s (oh god the colors), using computers from the 70s (all three of them), watching channels from the 70s (all three of them), then yeah, maybe we could also work 5 hours a week.

But we all know what we’d do with the spare time: We’d make more work.

You’d do something silly, like write a book. And obviously, most of those books would be junk, but enough would be good that it would become someone’s job. And maybe the other writers didn’t actually have a knack for writing, but found they could be great at helping other writers. Oops, now you’re an editor, or a publisher. And now you’re working more than five hours a week again!

Stupid entrepreneurship.

Or maybe you don’t want to be a writer, you just hate Avocado Green enough to do something different with your kitchen. Oops, now your friends want the same thing, and you’re an interior designer.

Or maybe you realize that the gas-guzzling death-traps we all drive in are insane, and you figure out some way to start bringing those sweet little rides over from Japan. You know, just to fill the time. Because you can only consume so much of your day watching three channels (and remember, no ESPN in this scenario).

You’re not the only one that’s bored. Everyone else has more time, and a need to fill it. They can spend the effort to become experts in watches, furniture, bicycles, hiking, boating, economics, philosophy, or any number of other areas. And we all know the main outcomes of expertise, beyond insufferable newsletters: Demand for more specialized stuff, or enough disgust at the lack of it that you’ll just do it your darn self.

Some number of us won’t do the work, but we still want more, because why else would I have read three books on horology? It only takes a few people to step in to fill that demand, and suddenly your time is taken up.

And of course, if you want to buy that fancy Patek Philippe to pass on to your kid, you probably need to work a few more hours than the minimum.

So now you know why we don’t work five hours a week, and hopefully you have a little more confidence that automation will generally be good, not bad. It’ll create more entrepreneurs, raise wages, increase quality, and reduce cost. Not every time, but most times.

It doesn’t explain why those prognosticators in the 70s were so silly, but, well, I bet it wasn’t the worst decision they made that decade.

  1. 16oz Estwing finish head with a curved claw, natch.

Owning My Strava Ride



I know what it means to own my code contributions Github, but what does it mean to own my rides on Strava?

Photo by William Hook

I recently went mountain biking in Bend, Oregon, which is a few hours’ drive from my house. As I usually do, I used Strava to record the ride. This was a new trail for me, and I got lost multiple times, so I also used Trailforks to figure out how to get back to my vehicle.

I’ve been thinking a lot about how services like Facebook start out helping us, but at some point the relationship shifts and we’re stuck helping them more. I don’t think Strava has gotten to a stage where the relationship is abusive, and maybe this is weird but I hope they stay too small to ever get there. Even without that shift, though, I am a little uncomfortable with our relationship.

I was standing on the trail, trying to find the right trail and idly watching a coyote search for chipmunks. As I switched between apps, I realized that I was losing a lot by recording in Strava instead of Trailforks. Or rather, I wasn’t; people who want to bike this trail in Bend were.

I log my rides (and my infrequent, hilariously slow runs) in Strava for, um, reasons. I don’t want kudos, and I don’t really look at my historical performance, although I do enjoy being able to study my rides at times. I want the data there, even if I rarely use it. And it conveniently automatically completes my daily exercise goal in Streaks. It’s kind of useful, but if it went away tomorrow, I wouldn’t miss the online component much, if at all.

If I instead recorded all of the trail rides in Trailforks, then everyone who came after me could get some value from the information provided by my ride. They could see what route I took, could likely tell based on my speed when I had to walk and when I was able to ride, and they could over time get a sense of what routes are most popular, or even what signage is confusing.

I built an open source company, so I’ve thought a lot about the worth of contributions. A developer’s time on one project can’t be spent on another. Someone who writes documentation for your baby is giving up the opportunity to contribute elsewhere. It’s a conscious choice on the part of the contributor, and a constant interaction between the project and its constituents to keep people coming back.

I think Trailforks really understands the value of my contributions: If you do this, people who ride here will have higher quality data, and probably better rides.

I am super confident that Strava knows the value of my usage: I’ll get feedback from friends and I can track my speeds and feeds. But those aren’t contributions; that’s not something I’m giving up for the greater good. It’s something I am doing for selfish reasons.

The value of my trail ride could be for the greater good, though. Even my road rides and runs could be, as they could help people find routes, but the trail rides especially seem valuable, because the downsides of being lost out there are materially worse than not having the right route for your run.

It’s clear to me that Strava is not seeing my data as a contribution. They’re focused on engagement. That’s not inherently bad - lots of people use and love the app - but it is different. I find it interesting to think of what the experience would look like if that changed.

But after that, I thought: Why can’t I just share the data with both apps?

I mean, to some extent I can. I can just run both of them and let each record its own view of the world. This is what I did with Slopes and Strava in Mammoth, taking the lifts up and riding down. That made a little more sense because neither quite has the correct view of the world - Slopes doesn’t know what bikes are, and Strava doesn’t know what lifts are. It was pretty kludgy, but more importantly, I didn’t run into this conflict because the apps exist to do pretty much the same thing, just for different sports.

I could duplicate here, I assume, but… it seems stupid.

Beyond our relationships to service providers, I’ve been thinking about what it means to own your own data. It sounds awesome, but it’s rarely very useful in practice.

It turns out, I do own the data that I have posted on Strava. Great! So I’ll just share it with Trailforks, too.

Hmm. What would that look like? Can I… download the data, and then upload it to Trailforks? Is it a common data type?

Can I record it separately on my phone and post it to both apps? Is that what truly owning my data would look like?

It’s hard to imagine that world: You use apps that generate data, which by default is yours and only yours. It gets recorded in forms that are easy to share, understand, and manage. If you like, you can then contribute that data to other sites, and in doing so, you get to negotiate with them exactly what rights you’re passing on. Either way you have the data, but now they get a copy, too. If you don’t like their offer, you still get the data, and most likely, given you have all your delicious data, other apps will crop up with a different offer, because they can focus on that rather than all the data collection.

It would look a lot like the text editor I’m using to write this article, Ulysses. It allows me to publish, but is built first and foremost to make it easy to write. Sharing, contributing, engagement, and all of the other online stuff is left to other sites, other apps, like Wordpress and Medium. And yeah, those apps do allow both writing and publishing, but it’s a horrible experience, a great way to lose data, and if you only write there then your data is stuck in their system and is pretty hard to get out in a useful way.

The world of writing looks weirdly different from the world of recording rides. And a lot worse.

I’m not in control. Legally I own the data, but, ah, I don’t have it. Strava does.

I would never write directly in Medium, so why am I logging my rides directly in Strava? What am I giving up because of it?

I’m pleased to find that Strava will allow me to give other people the data - the data that I own! - and it turns out that Trailforks knows how to slurp it out of Strava.

So it all ends well: My rides are in both locations, and every mountain bike ride I post to Strava will now be automatically imported intro Trailforks. Probably.

But for that brief moment, in Bend, while watching the coyote… I saw what it would take for me to really own my data. I liked it a lot.

An alternative crypto-history



Filesystems, version control, and the blockchain

Image courtesy of Adarsh Kummur

This is the fourth, and possibly final, article in my series on the blockchain without blockchain.

I’ve always had a warm place in my heart for filesystems.

I taught myself shell scripting while automating the installation of Disksuite, Sun’s free but sadistic disk mirroring software. I barely recall the actual work, instead remembering a hallway. I undertook a literal journey to learn programming, a repeated pilgrimage to the desk of a friend who took visible pleasure in explaining to me what I was doing wrong.1 It’s fair to say that if filesystems were less painful in the 90s, I would not be where I am today.

When Sun started advertising ZFS as the (finally!) successor to Disksuite and the filesystem it was built around, UFS, most of its functionality seemed obviously good - make the computers manage the disks, don’t demand people know up front how big a filesystem should be, don’t fail miserably when the server crashes, little things like that. But what was this data integrity thing? I’m embarrassed to say it took me a while to realize I needed it - who really cares if your filesystem is good at storing data, amirite? - and even longer to understand how it worked.

To explain it, I’m going to have to teach you cryptography. Just a little. You’re welcome to skip ahead if you’ve already got this part covered, but I expect most could use a little, ah, refresher. Step 1 in cryptography guides is usually: “Get a masters in mathematics from MIT.” I’m hoping to do a bit better than that. Cryptography really is just a form of math, and while we can’t all understand the details (I certainly don’t) we can at least understand the “algorithms happen here” flow diagrams2.

Cryptography is most famous for its privacy utility: You use it to ensure you and only you can read your files and chat messages. It gets more complex once we need to read them on all of our different devices, but most of it is pretty similar in concept. Even more useful is ensuring both you and I can read some text, but no one else can. It’s more complex, but is essentially an extension of that first use.

Privacy is not the only use case for cryptography. It’s also useful for efficient validation. That is, it can be used to see if a file you have today is the same one you had yesterday. I sent you a document, you think it looks wrong; how do we make sure it did not get changed somehow in transit?

Obviously one way to do that is to just send it again. This is not a great solution, because if you did not trust it the first time, why would you trust it the second? That might also be a bad idea if bandwidth is expensive. You generally want a verification mechanism that takes less space than the original file, and less CPU power than directly comparing the two files.

Cryptography provides just such a capability, usually called a ‘hash function’. It’s an algorithm that converts, say, a large text file into a much shorter string. If you want to ensure the file is not changed in some way, just run it again and compare the output. The short strings are easier to compare than the long documents, and you could even read them over the phone to someone so they can check the file on their end. These algorithms generally produce a string of a fixed length, regardless of input - this makes them efficient for long term storage and comparison, and safe to run on any size file. Here’s an example hash from my files:

03f39f4bfad04f6f2cfe09ced161ab740094905c

As you can see, it’s just a long string of gibberish. It’s not only useful for comparison, not meaningful in it’s own right.

What’s critical about these algorithms is that given a unique input they always provide a unique output. If you and I each have a file that hashes to a given string, then we can be confident we have exactly the same file. Of course, this can’t literally be true: We could design a hash function that only had 256 possible outputs, and there are obviously more than 256 possible inputs. This would produce a lot of what are called collisions, when two files hash to the same output, and, ah, is not terribly useful.

All of the modern hash functions are incredibly long. It is possible in theory but not in practice that a collision would happen. You’d need to execute the function 2^128 times. That’s 3.4 with 38 zeros after it. So, mathematically possible, but you can expect the sun to swallow the earth before the most secure hash functions get compromised. I mean, you can’t. You’ll be gone by then. But your files will still be safe.

Now that you’re at least as much an expert on cryptography as most of the bitcoin hodlers, why does any of this matter?

We were talking about data integrity.

You’d be right to guess that ZFS uses these hash functions to provide it. It goes further than just validating individual files. A little bit of cryptographic genius called a Merkle tree is the key. These don’t just hash the content on disk for later validation; they build a tree of hashes, where the leaf nodes are hashed by the nodes above them in the tree, which are themselves hashed by the root node. If any part of this system is corrupted - because the disk is broken, or someone changed the content some other way - it’s easy to detect. It’s not just that the individual hash will be different; remember each parent hashes all of its children, so now the parent is wrong. And its parent is wrong, too.

If the content is changed by any mechanism that does not also also update the Merkle tree, then it is easy to detect by rehashing all of the content and comparing the results to the stored tree.

This is how ZFS validates data integrity. It can write a block to disk, then pull the block and ensure it still matches the hash. When it writes a block, it updates the parallel tree, and when you ask for the block later, it can tell you if the block is still correct. If it’s not, it throws an error instead of handing it back to you.

When I first learned of this, it seemed overkill, but over time I remembered just how many ways there are for data to get corrupted. The most obvious one is someone changes it for nefarious reasons, but far more commonly you have a failure somewhere in the writing or reading process. The old spinning disks were error-prone, and the new SSD drives degrade eventually. It’s the complexity of reading and writing that really gets you, though: There are multiple layers of caches, drivers, and connections, any of which could introduce corruption.

For the first time on a normal production system, you could at least detect any of those problems. It’s too bad no one ever used it.3

I know, I know, you came to hear about how you could get all the awesomeness of blockchain without using the blockchain and instead I’m giving lessons on two things you could literally not care less about, cryptography and filesystems. Don’t worry. It gets worse from here.

Long after I learned about and promptly forgot ZFS (after all, it’s not like I was using it), I adopted Git. It’s a version control system, used for storing and managing source code. Every geek knows about it, but most of the world only recently learned of it when Microsoft bought Github for $7.5B with a ‘b’. I was an early adopter, switching Puppet to Git in 20084. Eventually I even learned how it works. I was titillated and a bit horrified that I had duplicated in Puppet one of the key features that made Git work: A system of storing files that allowed them to be looked up by their content (or rather, a hash of their content). Normally you store files by a name, but if lots of people (or, in Puppet’s case, computers) store the same file, they might not call it the same thing, so Git and Puppet instead stored them by their hash. This ensured we never backed up more than one copy of a file, saving a lot of space, and made it easy to check for changes in files.

For Puppet, we just used this to back up files we changed, in case people later wanted to revert.

Git did a lot more than that.

Like ZFS, it builds a Merkle tree of the entire file repository, with a similar goal: To understand what files have changed and how. After all, git is used to track and share changes to a collection of files. The sharing is a critical component; you can easily copy an entire git repository to another computer, or another person, and it’s important that they be able to confirm that they have a faithful copy.

Git stores the hash tree alongside all of the files. At any point, you can use the tree to validate every file in your tree. If there are changes (which is pretty much the whole point of a version control system), it can automatically store the new files and update the related tree.

Just like ZFS, one of the key features here is that the Merkle tree allows us to validate every file stored. We can walk the file tree and compare each file to its hash, and then compare the file listing to its own hash, all the way up. Any discrepancy is easily spotted.

This is my favorite kind of cleverness: It’s simple in implementation, yet makes Git more flexible and useful. It has power that other version control systems are missing, just because it relies on this basic mechanism for storage and validation.

Ok. Now we get to the point.

Again, I’m not actually interested in the blockchain. I’m interested in peeling it apart, putting the useful bits to work while avoiding the whole anarcho-capitalist aspect.

It would be easy to see the blockchain as a sudden revolution, a dramatic change in what’s possible. Viewed this way, it’s hard to separate the pieces from the whole. If all you see is the big picture, it’s easy not to notice that every individual component has its own history, its own value.

The blockchain was gradual, for both me and the industry. It was not one giant leap forward. It was part of a story, a sequence, and the most interesting aspect - Merkle trees - is decades old in math and now pushing decades old even in popular usage. Most of the interesting features touted in the blockchain come directly from them. Immutability (which isn’t) and trustless systems derive directly.

It’s worth understanding that history, to see which stages and steps apply to problems you have. The current cryptocurrency tech stack is built to solve problems I don’t think exist. Certainly they aren’t problems I have.

Unlike the blockchain as a whole, though, the individual technical components have been used for years, even decades, in production. Focusing on the current trend can blind you to the opportunity history demonstrates. I think you’re a lot more likely to find broadly applicable solutions there than in trying to replace currency.

Because I got here from the world of filesystems and version control, I see different benefits than you might if you approach thinking of currencies or exchanges. Or chat messages. That does not make me right or wrong, but it does, at least, mean we’re going to work on different problems.

I expect most of you think this is boring. That’s great. It will give me that much more time to build something.

  1. My brightest memory is learning that of course the ’echo’ command resets the exit code variable. This was a critical early lesson in how your own debugging can dramatically change the behavior of a program.
  2. When people talk about the futility of trying to ban cryptography, this is what they mean: You can’t ban math.
  3. Yes, I know some people use and love ZFS. But never to the extent it should be.
  4. Resulting in one of our critical community members abandoning Puppet in protest, for some reason.

The virtue of a tool



Vendor success should be about customer needs, not its own.

Photo by Philip Swinburn

I am a tool junkie. I love the effortless balance of a well-known chef’s knife, like my hands know what to do all on their own. Heavy usage builds callouses and tunes muscles, its usefulness evidenced by scuff marks and changed infrastructure. Failure leaves blisters or even hospital visits in its wake.

A good tool proves its utility. Knives slowly shrink with sharpening, work pants thin, machines need oil. If they don’t, you’re either not maintaining your tools, or barely using them.

This wear is proof of your usage. They should be scratched. Dented. Aged. Patinas should be acquired from the shop, not factory treatments. Their callouses should pair yours. Tools can not be precious. They’ll just live on a shelf, then retire to your attic. You should seek that perfect middle ground, where you spend enough money that your kids can inherit them, but not so much that you are squeamish about giving them a job.

Tools only deserve the label if they help you work.

You might say I have strong feelings about them. I’m assuming this love led to my focus as a software entrepreneur on helping people people work. Or maybe my experience with tools in the physical world led me to seek them in the digital world, learning to make what I could not buy.

Given my tool fetish, you’d think I’d have a solid grasp of what I mean when I use the word. Apparently, not so much. I was recently pulled up short by a simple question, asked by Jordan Hayles of the Radical Brand Lab: What do you mean by tools?

What do you mean, what do I mean? It’s a simple question, right? The above text gives one example, but I would have thought I could answer it in a bunch of reasonable ways, none of which seem terribly controversial.

But the more I explored, the less simple the question became.

I’ve been describing my goal as building power tools for people. This phrase comes from my time building houses with my dad, and ‘power tools’ just meant the things you plugged in. You know? Because they needed power? It’s a common usage, maybe the word choice here did not mean much.

Except… I’ve spent more than a decade learning product management, describing myself as a product-oriented founder, managing that function in a growing company, and attempting to teach it to others. Yet here I am ignoring both the term and the field entirely. Why am I so quickly dumping my work of the last ten years? Is it just creative branding? Cynicism about my industry?

Why not power products? That’s a motor boat of alliteration: ‘power products for people.’ Awesome, right?

Ok, maybe not.

Product management as we know it began in the consumer goods industry. You’re handed a train car full of dish soap and told to sell it. You’ve got to package it, set pricing, convince a local store to carry it, argue with them about location, move it away from competitors, all that. Every product you see in your local grocery store is loved by a product manager who fights for its shelf space, believes it is beautiful, and wants you to give it a good home.

Tide soap is one of the most commonly stolen consumer goods, but not because it’s soap. The strong brand makes it easy to resell, even allowing it to be used as a stand-in for money in drug deals. I wish I was that good at product management. For all that, it says nothing about the soap.

Product management can also be used for evil. Laser printers had toner cartridges you could just refill. Not very clean, but cheap and reliable to run once you plonked down the cash for the expensive printer. Modern inkjet printers instead use disposable cartridges. To sustain profit margins in a rapidly commoditizing industry, manufacturers started putting rules in place on the cartridges: You had to buy them from the manufacturer, they had to be replaced every year, you could not refill them, you could not print in black and white if any color cartridges are empty.

The user was getting hurt so the vendor could make more money. People got pissed of enough that the US Supreme Court weighed in.

That’s good product management. Well, it’s evil, but you know what I mean. It’s effective. We’re talking big-B revenue effective. Hmm. A moral distinction begins to reveal itself.

These are examples of companies forcing their business model onto their customers. There’s no difference between the dish soap sold at retail and the one sold in bulk, yet they’re separate products, differentiated through packaging, shipping needs, and labeling. You pay much more for the retail package than the wholesale one, primarily because the business model behind them is so different.

But when I think of a tool, these complications are missing. When I use a hammer, it just has to fit my hand and smash stuff. When I pick up my drill, it works with every bit I own, regardless of the logo. The battery and charger are proprietary, but the vendor’s most visible role in my life is color choice. My yellow drill works just fine with bits from the blue or green companies. (You probably visualized brands by my just mentioning colors. That’s still effective here.) It does not matter whether I bought the drill from Home Depot or inherited it from my dad; once in my hands, it just works.

I think this begins to answer the question of what a tool is.

It helps you do your job, without your worrying about the vendor’s needs.

I know that DeWalt and Mikita need to make money to sell me a drill, but I don’t think about it when I’m using their tools. Even after more than two decades without one, I can comfortably recite that “my” hammer is the Estwing 22oz waffle head with a straight claw1, but none of those details mean I need the vendor’s permission to hit a nail with it. I make a decision about the right tool, I buy it, I use it. End of story.

It is small. If you call something a tool, not a product, you’re saying it’s less, it’s not as complete a solution. This can be belittling, insulting, but it does not have to be. It’s also a statement of independence. Of freedom. Of, and this is going to sound crazy, compatibility.

Products have an implicit, ongoing dependence on their vendor. If that’s me, I love it: I want you to pay me all the time, not just once. That ongoing relationship is how I afford to keep improving what I’ve built for you. This can be a great way to ensure we have a long-term, sustainable partnership. But it’s not always a healthy relationship. The more you have to deal with how I make money, the worse the experience is for you.

I think this is what I like about tools. They’re self-contained. Independent. Using them is fundamentally pragmatic, not a lifetime commitment.

That independence has downsides for me as a vendor. You don’t get any of those delicious growth-hacker buzzwords. Your product isn’t “sticky”, there’s no “moat.” Those are examples of my customers being constrained by my business model, and their absence means revenue is harder to build, to protect.

One might argue I’m better off because treating my customers with more respect makes a better business in the long term, and I’d probably agree. This kind of respectful partnership should deliver higher returns than one that traps and mistreats its customers. I think this is often the right answer, but it’s not a popular one. It’s harder to get funding, to get off the ground. I might be accused of not “wanting to build a real company,” or I might have Silicon Valley’s most dire insult hurled at me: “That’s just a lifestyle business”.

Tell that to Adobe. Or AutoDesk. These are great tools companies. They are the behemoths we know today because they knuckled down and solved their customers’ problems. They worried about that, rather than how they could extract maximum revenue over time. It was a different time, but people have not changed.

I don’t think that every product is compromised when the vendor’s needs show up in the customer’s life, but I think most are. Some of it is laziness, shoring up product limitations with business model innovations, but a lot of it is strategy, recognizing the value of painting your customer into a corner.

Honestly, some of it is just survival. A lot of those inkjet printers are unaffordably cheap, but buyers care only about cost, not value. Some markets are intrinsically dysfunctional, with users and vendors slowly killing each through bad deals and cynical behavior. But as a vendor, I get to make a choice about what markets to play in, and how to work with my customers.

I am a simple person with a simple dream: I want to build something that helps someone work. I have to make money while doing it, because that’s the nature of the job, but I’m more interested in my customers’ work than my own. I know I need a business model, a go-to-market strategy, a plan for growing and supporting my business. But my customers should not need to care about that, should they? If they like what I’m building, they should be able to buy it, and use it. And tell all their friends how great it is. They should not wake up one day to find they’ve accidentally gotten married to me.

I just want to build tools. And I’m proud of it.

  1. We told with great pleasure the (most likely apocryphal) story that this hammer was illegal in Florida because the metal haft could cut your thumb off.

© 2022 Luke Kanies. All Rights Reserved. Contact