Setup
Services
Google Classroom
The course will be run at least partly through Google Classroom. You should have received a welcome message sent to your go.olemiss.edu email address. Please accept the invitation to join the class (Phys 540 Spring 2023) by clicking on the enclosed link. You may find it convenient to download the Classroom app on your phone’s app store. This is the best way for us all to communicate between class meetings. Feel free to post questions or start discussions at any time.
We will use Zoom as our tool for video conferencing (every MWF from 11:00–11:50). Recorded videos will be made available in a shared folder on Box.
Bitbucket
We may occassionally use Google Classroom’s assignment submission/upload feature, but generally I will ask you to turn in code by creating a git repository on Bitbucket (a cloud-based git repository service) and granting me permission to view it.
Be sure to sign up for a free account on Bitbucket. And please do so using your university (@go.olemiss.edu) email address. Accounts ending in .edu are treated as special educational accounts.
To work seamlessly, you should provide Bitbucket with a unique ssh key that you have generated.
# make sure you have ssh installed
$ ssh -v
# check that you have a hidden ssh directory
$ ls -a ~/.ssh
# if not, make one
$ mkdir ~/.ssh
# generate a new key
$ ssh-keygen -C "A descriptive name of your machine"
$ ls -a ~/.ssh
./ ../ id_rsa id_rsa.pub
$ ssh-add ~/.ssh/id_rsa
$ ssh-add -K #the -K is only necessary on macos
# enter a passphrase when prompted
# on macos, activate the Keychain
$ pico ~/.ssh/config
Host *
UseKeychain yes
# configure git
$ git config --global user.name "FirstName LastName"
$ git config --global user.email "EmailAddress"
$ cat ~/.ssh/id_rsa.pub
$ pbcopy < ~/.ssh/id_rsa.pub
#Open a browser and log into Bitbucket.
#Click (KB) > Personal settings > SSH keys > Add key
#Label: The descriptive name of your machine
#Key: command-v (paste)
System
Hardware
You will need a computer with a reliable internet connection running Windows 10 or some flavour of Unix (GNU/Linux, FreeBSD, macOS, …). If access to a computer is an issue, please talk to me soon. The department may be able to find a loaner laptop.
GNU/Linux
GNU/Linux comes in many flavours, most of them descended from one of Debian, Arch, or Fedora. I’ll assume in these instructions that you use a Debian-based distribution (such as Ubuntu, Pop!_OS, Elementary OS, …) and rely on the Advanced Package Tool (APT) to install software. If you’re using something else, you’ll have to modify the steps accordingly.
Start by making sure that apt
and its package lists are up-to-date.
Add the basic developer tools and the llvm
compiler toolchain. Add whatever other software or libraries you
might need.
$ sudo apt update
$ sudo apt install build-essential xz-utils curl git
$ sudo apt install llvm clang
$ sudo apt install gnuplot imagemagick python3
If any of those packages are already installed, replace install
with
upgrade
.
macOS
macOS is based on BSD Unix, and it supports most of the standard command
line tools. The system includes a good terminal emulator,
Terminal.app
, but you may want to download iTerm2, which is better still. For many years, the
default shell on macOS was BASH. As of 10.15 Catalina, Apple is
encouraging users to switch to Z Shell. There are other good options,
especially fish.
The compiler and developer tools are no longer installed automatically as part of the OS. You have to do that manually.
$ xcode-select --install
For most other software you’ll want to install with
homebrew. Set up homebrew by running its
install.sh
script.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Make sure everything is up-to-date:
$ brew update
$ brew doctor
$ brew upgrade
Then start downloading the software you need.
$ brew install git
$ brew install gnuplot
$ brew install imagemagick
$ brew install python3
Note that macOS already comes with git
and python
, but the versions
installed are only current from the release date of the OS, and they
tend to get stale quickly. Homebrew will add new package in
/usr/local/Cellar
and symlink to them from /usr/local/bin
.
Windows
It’s possible to do all the course work under Windows 10, provided that you install the Windows Subsystem for Linux. These instructions explain how to install WSL2 and how to obtain a Linux image from the Microsoft Store. As for which distribution, Ubuntu 20.04 LTS or Debian GNU/Linux are reasonable choices. There is some useful additional information here, including instructions on how to Run Graphical Applications
Languages
C++
There should be a C/C++ compiler installed on your system. Check that it’s there.
$ g++ --version
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.5.0
Thread model: posix
$ clang++ --version
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.5.0
Thread model: posix
Julia
The team behind Julia distributes their own binaries. Download them here and follow these platform-specific instructions.
Python
It’s best to install Python with your package manager: e.g., either
$ brew install python3
or
$ apt install python3
You may be interested in tinkering with Jupyter or IPython.
$ brew install jupyterlab
$ brew install ipython
Rust
rustup is the best way to get Rust onto your
system. If you’re on Windows, download the rusup-init.exe
installer. Otherwise, following the instructions provided, just type
the following at the terminal.
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh