hardscrabble 🍫

Psst. Check out my RubyConf 2017 talk, There are no rules in Ruby.

the hardware and software I use (2017)

21 Dec 2017

I’m an inveterate reader of Uses This style articles and I’ve always wanted someone to ask me to participate in one and no one has, and I have a perfectly fine blog, so here goes nothing (actually something quite self-indulgent and in need of editing and unlikely to be an annual tradition now that I know how weird it feels to write this all out).

I’m borrowing the questions from that website (thanks).

Table of contents, because this got long, but I guess that’s because I really like using hardware and software, which is true, and that’s a good point when you think about it

Who are you, and what do you do?

Yes hello I am Max Jacobson, I’m a software engineer who makes web apps, currently at Code Climate. Occasionally, and not professionally, I write, speak in public, and podcast.

What hardware do you use?

I have too much and want to have fewer but I’m not sure what to not use. I try to make my hardware last as long as I can and avoid indulging the guilty thrill of buying new things, with mixed success. By frequency of use:

I use my iPhone 7 constantly. It’s great. I like the funny vibrating home button and don’t really miss the headphone jack. I got the AirPods for my birthday and they’re great, although they’ve turned me into someone who gets nervous stepping over grates in the sidewalk. I use it in a Smart Battery Case which is fine, although I feel very warped by it because I start feeling a little stressed out as soon as my phone’s battery dips below 100%.

At work, since March 2017, I use a Lenovo ThinkPad P50 which is enormous and heavy and has a numpad built in that I never use and that little red nub for mousing that I never use and a hinge that curiously opens to a full 180 degrees which I never do and a second set of mouse buttons above the track pad which I never use and a fingerprint scanner that I never use. I didn’t exactly pick it out: when someone left the company I took it over and turned in a MacBook Pro so I could try out switching to Linux (more on that later). I do like it: it’s super fast; the keyboard is good; the screen is sharp; it has all the ports you could want; the actual thing feels pretty good; and once your eyes adjust, its stark black and red aesthetic starts to look kind of slick. I’ll probably pick a smaller ThinkPad for my next laptop.

I use it with a WASD V2 87-Key Custom Mechanical Keyboard, which is awesome and a $5 AmazonBasics USB Mouse which is perfectly fine. I’m not in the camp of people who detest wires on a desk. If anything, I’m in the camp of people who detest having to charge things.

Next up is the 2016 9.7” iPad Pro. I mainly use it to do things like watch videos in bed or read Twitter on the couch. Occasionally I’ll take it out to a cafe with the Apple Magic Keyboard so I can do more productive stuff like write emails or research some project, where I appreciate being able to command+tab to switch between apps or command+space to quick-launch apps. I recently bought a Canopy keyboard case to kinda encourage me to do that more, and hopefully I’ll like that.

I like having it. It lets me give my phone a break. It’s so light. It has such a nice screen. Its speakers are surprisingly loud and nice-sounding. It’s fun to use and to look at (I have the pink one with the mint green smart cover).

For a personal, non-iPad computer, I used to have a 15-inch, Early 2011 MacBook Pro, but it died in early 2017. My grandma bought it for me after college when I was trying to become a filmmaker. It ended up being the computer where I learned to code instead. I put that machine through hell trying to keep it going, and I struggled for a while figuring out what to replace it with. I probably would’ve gotten a spec’d out MacBook pro except that all signs suggested they were going to release a big new update soon. They ended up doing so, but not until November, and it was kind of a controversial new design which I’m glad I didn’t wait for.

I ended up getting a 2015 Dell XPS 13 Developer Edition in November 2015, actually awhile before the MacBook Pro formally stopped booting. I was looking for a light laptop that I could travel with (by this point the MacBook Pro felt like a brick in my bag and had a few loose screws clattering around in it which left me preferring to keep it at home), and also to experiment with using Linux. It cost $1,370. I like this laptop fine. It’s light and fast and runs Linux and has a decent battery and a nice screen. I think it’s weird to have the webcam positioned below the display instead of above. The keyboard is only fine. It feels so sturdy and compact that it doesn’t feel fragile and I toss it in my bag without a case. This is the laptop I brought to India and studied Rust, and later brought to New Orleans to present at RubyConf. It’s reliable and straight-forward.

But when my MacBook Pro died, I did kind of feel like I needed a Mac. I had salvaged the harddrive from the laptop and bought a drive enclosure. I also had them backed up to another hard drive and to the cloud, via backblaze. All those backups cried out to be restored, somewhere.

I ended up getting a Late 2014 Mac Mini spec’d out with 16GB of RAM, an SSD, and whatever the fastest processor was. It cost $1,399. That’s a weird computer to choose in early 2017. Even in 2014, it was really poorly received because it didn’t offer all the options that the previous generation did and wasn’t as upgradable after purchase. I was kind of thinking it’d be a stop-gap until the new MacBook Pros came out, and then I’d sell it and get one of those, but then those came out and were not very appealing to me. But to be honest, I kind of love it. In my experience, it’s plenty fast and reliable. I almost bought a Mac Pro and it turned out the Mac Mini was enough for me. Lol. I don’t use it a ton: I’m on a computer enough at work and don’t thrill at the idea of spending much more time on one. But I still like to have a Mac somewhere in my life, to serve as a hub for things like my photo library, my music library, and all my old college essays and writing projects. And as much as I’ve come to like Linux, there remain a few things that I need a Mac for (more on this later).

I use it with another AmazonBasics mouse and a Spacesaver M White Buckling Spring keyboard from Unicomp. It’s hilarious and thunderous and retro and great. I love it.

For sound, I use Altec Lansing BXR1220 computer speakers I bought for $15 five and a half years ago which are perfectly fine and look pretty cool IMO.

For a display, I use a Dell U2713HM 27-Inch Screen LED-lit Monitor that The Wirecutter recommended when I bought it in 2014. It’s been really great.

For recording audio, I use a MXL Tempo USB Desktop Cardioid Condenser Microphone. I was going through a phase where I enjoyed red things. It wasn’t a huge investment, is simple to use, and sounds OK.

For Wi-Fi, I switched to Eero in 2016 to get better coverage of my apartment and it worked out great.

I watch TV and Movies using an Apple TV (which is fine) on a TV that my friend Russ handed down to me when his aunt handed hers down to him (which is fine).

When I write longhand, it’s usually on some cheap Gregg-ruled steno pad I picked up at a pharmacy (I like the spiral being at the top so it stays away from my wrists; I like for the margin to be right down the middle so I don’t feel weird writing right up to the edge of the page, and it also gives me a sense of how far across the line I’ve gotten at any given point? Maybe I don’t need the middle margin actually) using a Muji 0.5MM Gel-Ink black pen which my sister recommended to me once, years ago.

For reading books, I use the library.

I have way too much hardware, but at least I don’t have an Apple Watch.

And what software?

I try not to use too much software, because the more things I use the more keyboard shortcuts I have to remember, and the less room in my heart there is for poetry. I try to use built-in software when possible unless it’s really bad.

For programming a computer, I primarily use Ruby or, for simple things, shell scripts. I also like to use Rust.

For writing code, I prefer to use terminal-based tools, primarily: vim for editing text, tmux for terminal multiplexing (creating separate workspaces for separate projects, each consisting of a few related shells, controlling how they’re laid out and which to focus on), zsh for a shell, and git for tracking changes to source code. I like them because they’re free and open source, blazing fast, and have user interfaces that feel like they’re carved from stone. There’s a long tail of unix tools that assist in the process of writing and testing code, but I’m going to consider them out of the scope of this post. Thankfully, those all work pretty much the same on both macOS and Linux.

My dotfiles are available on GitHub. They use thoughtbot’s lovely rcm tool to ease installation and syncing across multiple machines.

On macOS, I use the built-in Terminal terminal emulator and on Linux I use rxvt-unicode.

For an operating system on my two laptops, I initially tried Arch Linux at the recommendation of a few co-workers and I’ve come to quite love it. It has a deserved reputation for being ultra minimalist, which means you have to do more legwork to get it up-and-running, but then you can customize it exactly to your taste. It’s way more bare bones than I could ever have imagined. If you want it to behave in any way at all, you have to tell it to – even for super basic things like locking the screen after a few minutes of inactivity – but it has all the seams in place for you to do just that. I initially set it up using this fabulous tutorial from LearnLinux.tv and have iterated on it via a lot of guidance from my patient co-workers and by copious browsing of the elaborate ArchWiki.

For managing windows on my laptops, I’m using xmonad, a tiling window manager. In the past I’ve tried macOS apps that add keyboard shortcuts for managing windows in a tiling fashion (Spectacle, I think, and others) and never found them to be particularly compelling. I thought things like: I’ve always arranged my windows using my mouse and it’s been fine; I don’t want to learn a bunch of new keyboard shortcuts; etc. But depite those earlier fears and protestations, xmonad is absolutely wonderful. I think I like it more because it’s not a layer on top of a dynamic window manager, it’s the whole system. I set it up so all of my windows get chunky, hot pink outlines. My screen is always 100% filled. Windows get automatically resized to fit as I open and close things. I can re-arrange and navigate the windows without ever using the mouse. It’s cool as hell. It’s also fast as hell.

For browsing the web, I’m a stubborn Firefox apologist and have been for a while. It feels like the internet to me. I even use it on iOS, so my history and bookmarks will sync there. Unfortunately, I end up in Safari for iOS all the time, since that’s the default browser for everyone.

For email, contacts, and calendar I use FastMail. It’s rock solid, has super fast and pleasant web interfaces, and has no ads. I pay $70 per two years for it. I love it.

For email, I use the built-in Mail app on iOS, which works great with FastMail. I’ve tried a handful of alternatives and didn’t really like any of them, and you can’t change the default app to handle email links anyway so I just go with the flow. On macOS and Linux, I just the FastMail web interface, which is great.

For interacting with my personal calendar on macOS and iOS, I use Fantastical which is very delightful.

For buying domains and managing DNS, I use NearlyFreeSpeech.NET. It’s one of my favorite websites. It’s extremely plain and extremely polite and extremely clear.

For lightweight checklists, both long-lived and short lived, I use the Apple Notes app. For example, I have a note called “movies out” which is a checklist of movies that are out or coming out soon that I think I might want to see. I refer to that occasionally when I think “hmm what’s out?” or when I pass a poster and think “Oh, that’s out?” I have another note called “pantry” which has a checklist of the staples I like to keep in my kitchen, and I check things off when I buy them, and uncheck them when they’re running low. I have another note called “Christmas gifts” which lists all the people I need to get gifts for, with checklists for each person of the things I’ve gotten them (checked) or am thinking about getting them (not checked). I’ll delete that one after Christmas. Sometimes I’ll make a note that just has a checklist of all the things I’d like to get to in the day, and I can look at it throughout the day, and then later on delete it.

For being upset and inspired and not-bored and informed about the world, I use Twitter. It’s a big part of my day. I can’t really imagine the world without it. I used to use it exclusively via a third-party app called Tweetbot, but I switched to the official iOS app and it’s honestly fine. I do see ads now, and I lose some neat features and design, but more importantly I get all of the modern twitter features, like polls and group DMs, which aren’t available to third-party apps. On Linux and macOS, I just use the web interface.

For subscribing to websites and newsletters, I use Feedbin. I still love RSS in 2017. It’s a big part of my day. Whenever I read anything I like on the web, I look for a feed so I can subscribe and get more. Also, whenever a newsletter seems interesting, I subscribe via feedbin rather than via my email, which helps me prevent my email inbox from getting cluttered. On iOS and macOS, I read via Reeder, which probably comes second only to Firefox as my favorite and most-used app of all time; I was browsing Google Reader via Reeder on an iPod Touch between classes in college. On Linux, I use the Feedbin web UI, which is actually really nice. On iOS, to detect RSS feeds on web pages and subscribe to them in Feedbin, I use Feed Hawk.

For hosting source code, I use GitHub. It’s great.

For making my blog, I use Jekyll to structure the source code and build the site, GitHub Pages to host the static site, Markdown to make it pleasant to write prose that will become HTML, and Clicky for some traffic analytics.

For creating slides for my one talk I gave in public, I used remark, an open source tool that let me use familiar web technologies like HTML, CSS, and JavaScript to customize the slides, and let me use my beloved Markdown for writing the actual content, and let me easily host the finished product on my blog.

For editing my podcast, I use … actually I do it so infrequently that each time I basically forget and try something new, and I currently don’t remember.

For listening to music, I use Spotify although I kind of wish I just paid for music again so I didn’t feel a mounting dread about how much money I’ve sunk into something I don’t get to keep. It has good native apps for all the platforms I use. Sometimes I use the Apple Music app for things that aren’t on Spotify, and other times I listen to musicforprogramming.net.

For listening to podcasts, I use the wonderful Overcast. I love to have a podcast app that does server-side polling and sends push notifications when new episodes are available. I generally use the iOS apps, but I’m glad it has a spartan web app I can use on Linux and macOS.

For tracking personal tasks, I use OmniFocus, which is available on all of the Apple platforms. I use it pretty passively. It’s more a thing I write to than read from. If someone recommends something, I’ll put it in OmniFocus. If I see a tweet with a link I want to check out later, I’ll put it in. If I have a random thought I want to explore further, I’ll put it in. If I feel guilty about something, I’ll put it in. Occasionally I’ll go back and look through it and check things off and delete things and organize them into little projects. It helps me remember what are all the things I want to or am supposed to do, which helps me not feel worried all the time, and when I do feel worried I know where to go to remind myself who I am. I used to use Instapaper for saving articles to read later, and this year I stopped, and it’s a relief. But I did make a single action project in OmniFocus called “articles to read later”, and I do occasionally put articles in it. It’s a little deranged. I dearly wish they had a web version so I could check it on Linux.

For tracking work-related personal tasks, I use Todoist, which is pretty similar to OmniFocus, except it feels less reliable to me, has subscription-based pricing, and has a web version so I can check it at work on my Linux computer. I actually kind of like keeping a divide between work stuff and personal stuff. I just wish its syncing engine felt more rock solid.

For keeping files in sync across my goofy amount of computers, and occasionally for sharing files with other people, I use Dropbox. I’m tempted to become more reliant on it. My photo library is currently in Apple’s Photos app, which I can’t access on Linux. That might be a project for next year.

For managing my personal passwords, I use 1Password. I’m very pleased because they recently introduced a web version, which should let me use it on Linux, although I haven’t tried yet. I think I may need to switch over to subscription pricing to use that, which would totally be worth it for that alone. Currently, whenever I need to look up a password on my personal laptop I just look it up on my phone and peck it in, which suuucks when your passwords are super involved. For my work passwords, I use Rooster, a CLI password manager.

For texting I use some combination of iMessage, WhatsApp, Facebook Messenger, Twitter DM, Instagram DM, and Slack depending on who I’m talking to. It’s a mess. And I’m just realizing three of those are owned by Facebook. In theory, I prefer Twitter and Slack most, because those are available on all of the operating systems I use. In practice, I use iMessage the most.

For making screencasts, I use QuickTime to record my screen and ScreenFlow if I need to do any editing. I have used recordmydesktop to record my screen on Linux and it works great, but I never really do it. And I have no idea how to edit video on Linux, although I’m sure it’s done.

For remembering where I’m at in which TV shows, I use iShows TV on my phone. I love it.

For figuring out where to go and planning trips, I use Foursquare.

For giving and receiving FOMO, and helping me remember later the names of the places I’ve been, I use Swarm on my phone.

For some twitter analytics, I use Birdbrain on my phone.

For reading comics, with cool panel-by-panel transition animations, I use Comixology, mostly on my iPad.

For tracking the shipping status of packages I use Deliveries on macOS and iOS.

What would be your dream setup?

Hmmmmm.

I wish that all iOS apps I liked had at least spartan web interfaces so I could interact with their data from my Linux computers.

I’m looking at you, iMessage and OmniFocus.

I wish Vimscript were replaced with Ruby.

I wish there were less lock-in.

I wish I could use iOS more like a general-purpose computer. I know some people can, but I don’t think I can until I can do things like:

I should probably get better speakers.

I have a kind of allergy to using Google products that I should probably get over, because they do make a lot of good stuff.

I wish more people had blogs and fewer people had newsletters.