New laptop: the setup

This is my ever-expanding set of notes about setting my dev environment. One of these days I should turn it into a script or something.

Essentials

First, download and install:

XCode Command Line Tools

While that’s happening, download:

iTerm2

Optional, useful tool for monitoring CPU, bandwidth, memory, etc.:

iStat Menus

iTerm

With iTerm, set triple-click to select wrapped lines:

Preferences / Pointer / Triple-click selects full wrapped lines

Make more room on-screen by turning this off:

Preferenes / Appearance / Panes / Show per-pane title bar with split panes

Editor

Install VS Code

Unix libraries

Install homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install unix libs:

brew update
brew install gpg2 git openssl tmux imagemagick postgres redis git-flow pgcli direnv zsh ssh-copy-id openssl nmap coreutils automake autoconf openssl libyaml readline libxslt libtool unixodbc fop wxmac starship asdf

Typefaces

brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font
brew install --cask font-monoid-nerd-font
brew install --cask font-fira-nerd-font

SSH

Generate an SSH key:

ssh-keygen

Install the handy-dandy ssh-copy-id utility:

brew install ssh-copy-id

ZSH

Recently, RVM has been complaining about specific versions of ZSH, so now we have HomeBrew installed, install the latest version of ZSH:

brew install zsh

Set this version as the correct version of ZSH:

sudo vim /etc/shells
d the following line into the very end of the file(/etc/shells)
/local/bin/zsh

Change default shell:

chsh -s /usr/local/bin/zsh

Now install oh-my-zsh:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

development directory

Create my local development directory:

mkdir ~/development

Ruby and RVM

Install RVM:

\curl -L https://get.rvm.io | bash

Fix any potential SSL certificate nonsense related to RVM:

brew uninstall openssl
uninstall --force openssl
install openssl
osx-ssl-certs update all
link openssl --force

You can test that it worked by trying the following:

gem install eventmachine -v '1.0.8'

Install a Ruby:

rvm install 2.6

Dotfiles

Install my dotfiles:

git clone git@github.com:suranyami/dotfiles.git
cd dotfiles
bundle
./install.rb

Apps

Install SourceTree for enhanced Git visualization:

SourceTree

Don’t use the Mac App Store version of Slack, download it directly: Slack

Java

Go here, click “Accept License Agreement” and download and run the latest Java SDK.

Virtual Box

Go here

Other tools

Install Node.js

Install nmap so I can do things like find my Raspberry Pi on the network:

brew install nmap

ASDF

As per install instructions for asdf here: https://github.com/asdf-vm/asdf

brew install asdf

Add the following to ~/.zshrc:

. $HOME/.asdf/asdf.sh

Install unix libs ASDF requires to build stuff:

brew install coreutils automake autoconf openssl libyaml readline libxslt libtool unixodbc

Install unix libs needed by Elixir and Erlang:

brew install fop wxmac

Install Erlang and Elixir:

asdf plugin-add erlang
asdf plugin-add elixir
asdf install erlang 21.3
asdf install elixir 1.8.1
asdf global erlang 21.3
asdf global elixir 1.8.1

This blog post talks about how to install the above with :observer working, as well as allowing Erlang Wx gadgets to work.

asdf plugin add python
asdf plugin add nodejs
asdf plugin add ruby
asdf install python latest
asdf install ruby 2.7.4
asdf install nodejs latest
asdf global python 3.9.7
asdf global nodejs 16.8.0
asdf global ruby 2.7.4

macOS

Disable the caps-lock key in System Preferences –> Keyboard –> Modifier Keys

Postgres

To make the postgres role:

createuser -s postgres

Foreman

brew install foreman