A quantum chemist: how I set up a new Mac for my development environment

02 Feb 2019

Testing 1, 2, 3. Ahem, hi everyone, this is my first blog. Please excuse any typos or grammar mistakes.

This blog describes how you can set up a MacBook Pro 2017 for a development environment. As a researcher in quantum chemistry, my work involves frequently writing mathematical formulae, programming ab initio methods, visualizing molecules and orbitals, etc. Thus, setting up an environment with proper tools is essential to productivity. Some tools, such as Google Chrome, Dropbox, LastPass, are for general purposes, and some, such as Avogadro, VMD, PSI4, and PySCF, are only used for my research.

Experienced Mac users or programmers may find this document trivial. But I will be happy if it can benefit a few junior fellows in my field. While Migration Assistant makes it easier to migrate your environments and files, I decide to set up my Mac from scratch because my previous one has too many messed-up settings. Let’s get started!

Useful Links

There are a lot of useful resources about setting up a development environment on macOS. I personally benefitted the most from this extensive guide. Here are some links:

Know Your Machine

First things include choosing your language, logging in with Apple ID, and setting preferences (e.g. trackpad, Touch ID, internet accounts). Easy peasy.

Before starting to install a bunch of packages, you can check your laptop configurations in About This Mac -> Overview:

Install Applications (download-and-double-click)

Browser

Development Tools

Anaconda3 (currently with python 3.7)

Let’s try Macports this time as our package manager. The reason is that there are several chemistry/physics softwares, such as XCrysDen, that can be easily installed using port. If we don’t like Macports in the end, just uninstall it (https://guide.macports.org/chunked/installing.macports.uninstalling.html). Install some developers’ packages

Don’t use Macports to manage Python, such a pain… Use Anaconda instead. I plan to mainly use python3.

Notes my python commands are:

Other developer tools: