Uses This


What do people use to get stuff done?

Eric Mill

Eric Mill

Web developer (18F)

Who are you, and what do you do?

I'm Eric Mill. Basically I make things on the Internet for work and for fun.

On the work side: for most of the last 5 or so years, I worked at the Sunlight Foundation, building apps and infrastructure for a more open government. I recently left and joined 18F, a small team inside the federal government that builds open apps and infrastructure on behalf of the government. (I'm speaking for myself here and not my employer, of course.)

And on the personal side: I put maybe an irrational amount of energy into making a neat place once a year. I've tried to help out the post-Snowden Internet a bit by evangelizing personal ownership and a web where encryption is so omnipresent and simple that it's just baked into the background. I follow the work of the Foreign Intelligence Surveillance Court closely, and try to elevate the work of the US government's oversight community.

What hardware do you use?

For the last couple years, I've used a Thinkpad W520 laptop as my main companion. I get routinely mocked for how much of a tank this thing is. It is the farthest cry from a MacBook Air. I comfort myself with its 32GB of RAM, and the ability to run a hojillion things at once with impunity.

The best symbol for the resilience of my Thinkpad is: I spilled water on it early on, and it completely disabled the trackpad and both mouse buttons. But that's okay, because the Thinkpad has another set of mouse buttons and a pointing stick. This computer is prepared with full onboard mouse redundancy.

For a phone, I use a Nexus 5. Always Nexus. I have been the biggest Android evangelist since months before Android launched - I pre-ordered a T-Mobile G1 on launch day, then went Nexus every 2 years since (Nexus One, the Galaxy Nexus, and now the Nexus 5). In Android's earliest days, I maintained a list of the ~20 people I personally convinced to get a G1.

After years of almost exclusively shared hosting, I now host most of my work on Amazon Web Services. It's fine: you can jam a lot of stuff on a single box, and if you reserve it for a year ahead of time it's not bad.

But it's not the best situation, since Amazon is such a central point of failure and compromise now. I think there's a lot of lunch to be eaten from Amazon by competitors who offer a simple, secure experience and project a competitive, underdog image (and I've been messing with DigitalOcean, who I think is demonstrating this).

And what software?

I'm an all-Ubuntu kind of guy, at work and at home. I've been using Ubuntu all day every day since 2007, and I'm still in its corner.

I know a lot of people in the Linux and security/privacy community get down on Ubuntu now for Unity's long-time heft and instability, for abandoning Wayland, and generally making disappointing corporate decisions.

But I am a simple man: I just need a friendly graphical environment and virtual workspaces, and Unity has gotten stable enough to stay out of my way. I've tried GNOME 3 and Cinnamon and found them unstable and unpleasant, and I've had friends evangelize minimalist environments I found spartan and alienating.

And I think Canonical has learned a couple lessons about the extent of their might - they finally made Amazon integration opt-in, and they left their own system process manager behind to align with the Debian community's decision. I'm hopeful that as they evolve to stay relevant in an increasingly mobile-and tablet-dominated industry, they'll keep their feet firmly rooted in the FOSS community.

My Thinkpad does keep a Windows partition around for the occasional Win- or Mac-only game, but Steam's surge of Linux support and Humble Bundle's years of insistence on Linux support has made Linux support so likely for new games that I could probably ditch this now.

For a text editor, I use Sublime Text 3, which is the only piece of software I've paid for on my laptop. I've never been able to stand vim, emacs, or anything that forces me into the terminal for open-ended, creative pursuits like actual coding. (Before Sublime, I used to use Kate.) All I really need to get things done is a fast graphical tabbed editor, syntax highlighting, and find+replace with regular expression support.

What would be your dream setup?

I'm not a subscriber to the idea that tablets are replacing laptops. People still need to make things and get work done.

The perfect laptop:

  • is 100% FOSS, but without any rough edges. (This doesn't exist.)
  • is supported by the manufacturer despite an OS not from Google, Apple, or Microsoft. (Dell recently started doing this again.)
  • ships with its full disk already encrypted, with a password you reset on first boot.
  • comes with an open source USB or smartcard device designed solely for private key storage, with lots of great instructions and advice. (Can't think of anything good that exists like this.)

It would also have a document explaining (in plain language) what global institutions the laptop has been preset to blindly trust. In other words, which certificate authorities are trusted. That document would also explain how to disable certain institutions, in general or on a prompted basis.

The perfect phone:

  • is 100% FOSS, right down to the hardware and firmware level for every bit of it. (This doesn't exist.)
  • can be easily rooted, and its bootloader easily unlocked and re-locked, and a warranty that can withstand that. (The OnePlus One purportedly does this.)
  • ships with its full disk already encrypted, with a password you reset on first boot. The disk password should be totally separate from the screen unlock password.
  • uses Android's permission structure, but allows users to rescind any individual permission they wish.

It would also use a standard find-my-phone/kill-switch spec, that you can authorize (or revoke) the provider of your choice to control on your behalf. That's a useful feature that shouldn't require an irrevocable tether to a major point of failure or compromise like Google or Apple.

The perfect host:

  • focuses on the latest Ubuntu server LTS.
  • has special support for managing one's own website, or email server.
  • is so standards- and container-oriented that anything you create could easily be snapshotted, downloaded, and migrated seamlessly onto a Raspberry Pi.

It would also have documentation and an interface optimized for non-experts and single-use tasks. For example, a graphical UX to manage "the box's" crontab, and ways to point the box at, say, a Dockerfile hosted on GitHub and have it just go from there.

Previous: / Next: