Tools should make work easier, more effective, and more fun.
This is an incomplete list of the tools I use, along with commentary on why I use them.
To help with work/life balance I use two computers, one for work and one for everything else. Both are Macbook Pro’s running macOS, one is 15" (work) and the other is 16" (other).
I often run calculations on remote machines which I don’t manage. Those almost always run some variant of Debian Linux.
I use an iPhone as my primary handheld device, along with an Apple Watch and iPad Pro (12.9"). Because I look at my phone often, and because Tools Should Express Values I use the Widgetsmith app to produce widgets that just feature text reminding me of values I under-use, and these live on my home screen.
Scheduling and Task Management
I use Fantastical for calendar management on iOS and iCal on macOS. I find Fantastical provides a more information-rich display on a small screen, whereas iCal is cleaner to look at on the big screen.
I use Things on both macOS and iOS for tracking todos. I like the look and feel of Things, and it is powerful enough for most of what I want to do, including recurring tasks. I also make daily task lists in markdown files to ensure I make a conscious decision of what I want to accomplish each day.
I use Due for tasks that I have to do by a particular time. It’s great at reminding me over and over when that time comes, in a way that’s much harder to ignore than either a calendar event or a Things todo.
I automate tasks on my Mac using Alfred. I also use Alfred to search documents and folders.
Alfred supports Workflows, which are a powerful way to build automated tasks. For instance I have a workflow (activated with the command
nlog) that creates a time-stampted markdown file in a “Research Log” folder, populates it with a template, and opens it. I have similar workflows for my Weekly Reviews which further open the previous week’s prospective and review.
I write notes in Markdown with MathTeX using Typora. Typora is by far my favorite Markdown editor. It provides inline previews as I type, supports beautiful formatting themes (I use Mysty Light), has a fast-feeling interface, and provides a minimal integrated file browser in the sidebar.
In 2019 I switched from using pen-and-paper for calculations to using an iPad Pro with a 2nd generation Apple Pencil, and I haven’t looked back. I tried the previous generation pencil and found it too cumbersome to use regularly, but the new ones (especially with ‘double tap for eraser’) feel strictly better than pen-and-paper.
I mostly do analytic calculations with pen-and-paper or equivalent. I use Mathematica for more complicated expressions and more investigation-style work (plotting, inspecting expressions, etc.).
I use Gmail to host my email and access it with the Superhuman client. Superhuman has the best filtering tools I’ve seen, the most easy-to-remember keyboard shortcuts, works offline, and the interface is fast. Interface speed is underrated and they’re among the best.
For more interactive collaboration I use Slack, Zoom, and Skype. I prefer Zoom over Skype because I find it easier to use, especially for sharing a tablet’s screen.
I’ve had trouble using sophisticated IDE’s. I usually find their interfaces clunky and/or slow.
I edit code with Sublime Text. I use Git for version control and Github for hosting repositories (including this website!). I find it difficult to work with Git in the command line, so I use the Tower graphical Git client.
I use Anaconda to manage my Python environment. I’ve found this more robust than manual management with pip.
I make presentations and schematic figures in Keynote and Powerpoint.
I use zsh with oh-my-zsh for my shell. The most useful feature for me is the ability to search for matching history commands with the up arrow.
I use exa as a replacement for
ls. By default it shows the information I want, and it shows it with pretty colors. I suspect I could configure
ls to do the same, but this was easier.
I use bat as a replacement for
cat because it provides line numbering and syntax highlighting.
I use dust as a replacement for
du because I find it faster and it defaults to more human-readable output.
I manage remote simulations using my RemoteExperiments Python package because I frequently want to perform reproducible numerical experiments and managing them all by hand became difficult.
I simulate stellar evolution using Modules for Experiments in Stellar Astrophysics (MESA) because it is open source, it’s the code I have the most experience with, and it’s a code I help develop.
I perform Bayesian inference using dynesty because I like its Python interface and the way it sets up inference problems in terms of likelihoods and priors meshes with how I think about them. I also like the fact that the underlying Nested Sampling method provides estimates of both the likelihood and the uncertainty in the likelihood.
I use Anki for spaced repetition. It came highly reviewed by Michael Nielsen. That said, I’m actively looking for alternatives because I’ve run into limitations with Anki. In particular, inspired by Andy Matuschak, I would like to be able to queue tasks with spaced repetition, and Anki is not well set-up for that. I also want to be able to mark cards as ‘bad’ (meaning ‘refactor this card’), but haven’t found an easy way to do this in Anki.
I mostly review cards using Anki on iOS and create cards using Anki on macOS.
I track habits using Way of Life. I picked this because it doesn’t try to impose its own goals on my habits, and it lets me easily see my progress on each habit through the week.
On Way of Life I only track whether or not I performed a habit each day. I separately track details of exercise-related habits using my Apple Watch as well as the fitlist app on iOS, which I found provided an easy-albeit-clunky way to enter, review, and export data.
Until the end of 2020 I tracked my eating habits with MyFitnessPal. In 2021 I switched to FoodNoms. I found FoodNoms provided quicker data entry, and provides more useful feedback and reports on my habits. A downside of FoodNoms is that its food database is much less extensive than that of MyFitnessPal, so I end up having to think of similar foods or decomposing foods into ingredients more often. I’ve been tracking my eating for years so I’m pretty good at that, but it would give me pause in recommending FoodNoms to someone just starting out on tracking food.
I meditate with a combination of Headspace and Waking Up. Headspace gives a more ‘standard’ experience whereas Waking Up provides a broader diversity of guided meditations. Because of that I would recommend starting with Headspace and using Waking Up as a supplement later on.