Even though we don’t work in a laboratory, computationalists use many tools that make our lives easier and more convenient every day! I want to highlight some (especially those that exist thanks to the uncompensanted efforts of open-source developers) here, to provide some acknowledgement to those developers and also in case you’re looking for a tool to do something similar, or do it better!
I’m also always keen to learn new tools, so if you think you can improve my workflows, give me a shout!
I use a lot of different Python packages too. For data-wrangling, I couldn’t live without Pandas or the rest of the SciPy ecosystem, especially NumPy for mathy things and matplotlib for visualization. Seaborn is another great visualization package built on top of matplotlib. For simple parallelization tasks, Joblib makes life a lot easier. And for interacting with HDF5 files super simply, deepdish (sadly no longer maintained) is also pretty great.
Maybe it hardly bears mentioning, but a big barrier for many new computationalists is getting familiar with a Unix environment. If this is something you are (or someone who know is) dealing with, I heartily recommend Unix for the Beginning Mage as a whimsical yet effective learning tool.
For interactive testing of Julia and Python code with inline output, I’m an extensive user of Jupyter. Binder is a related useful tool that lets you spin up Jupyter kernels from git repos in the cloud!
I learned about iTerm2 from my amazing friend and mentor Prashun and never looked back. Just a super reliable, customizable terminal app. I particularly love their Minimal theme and status bar customization options in the latest release! I also more recently found out about oh my zsh, which offers a lot of other cool CLI customization, including lots of aautocompletes, easy prompt customization to include all kinds of stuff, etc.
When I’m editing code on a cluster, I’m a very-much-not-power-user of Emacs, but when I’m able to edit locally, I love love love Atom. Super nice-looking out of the box but nearly infinitely customizable with extensions for every possible need! My favorite extensions include:
- Juno (also available as a separate installation, optimizes Atom’s setup as a Julia IDE)
- file-icons: file-specific icons in folder tree views
- ftp-remote-edit: use Atom to edit files on remote servers! Woohoo! (though I still use Emacs for quick things)
All my IDE’s of any kind are set up to use the Source Code Pro font with its gorgeous design and sexy ligatures.
I manage my papers/bibliographies with Zotero.
I recently switched over to Spark as my email client. Once they fix some bugs with their calendaring, I will likely use it for that too, but for the moment I use Google Calendar for that.
I keep notes using Bear, which I do pay for, but it’s a quite modest fee for a totally gorgeous, functional app that syncs across all my devices.
I’ve moved to Overleaf almost exclusively as my LaTeX editor. I love not having to manage a TeX environment locally, and being able to easily collaborate with others, etc.
Relatively recently, I’ve started using Trello to keep track of to-dos. So far, it’s been good and I’ve been able to stick with it, unlike prior attempts at to-do lists. I keep three boards: Research, Administrivia, and Personal. The Research board has lists for Coding, Reading, Disseminating, Learning, and Done. Under Administrivia, there’s In Progress, Professional Development, Financial, and Other Minutiae. Finally, the Personal board has a few lists for non-work-related things.
I can get a bit obsessive about aiming for Inbox Zero with my email, which can be a distraction from other work. In addition to making liberal use of full-screen mode to completely shut out distractions, I’ve also started using Unroll.me to turn subscription emails into daily digests and reduce the number of push notifications I get while not filtering out things that might actually require urgent responses.