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!

Progamming Languages

My most fluent programming at the moment is probably still Python, although Julia is actually what I use most frequently and my fluency is growing fast!

Julia packages I rely on include Flux for building machine learning models, UnicodePlots for quick dataviz in the terminal, as well as various tools from the JuliaGraphs and SciML ecosystems.

Python packages of note: 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.

Git is a great and near-ubiquitous version-control system. I’m at a pretty basic level of git competency, and like many people, I also use GitHub and ungit for visualizing the tree.

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.

Programming Environments

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:

All my IDE’s of any kind are set up to use the Source Code Pro font with its gorgeous design and sexy ligatures.

Academic Life