How I set up my machine
January 07, 2019
I started at Lambda School this year, writing software to help students and staff be more productive. As with any modern software job, I had to set up a new laptop with all of the tools I rely on each day to get the job done.
After setting up the laptop and tightening up a few pieces, here is my definitive guide to what I install, and why.
15" Macbook Pro (Space Gray) - Intel core i7, 16 GB RAM, 512 GB SSD
I've debated whether or not I want to dive into a Thinkpad with Ubuntu, but my inertia with Mac is pretty strong. No reason to try something new just for fun at this juncture. Same thing applies to Vim, although I may take some time to get into it at some point.
Also, I don't particularly care about Space Gray vs. Silver, but my home laptop is silver so space gray helps me keep track of which one I'm using.
- Spark for eMail
- Zoom Conference
- Amethyst for window management
- Fohkuhs Pomodoro Timer
- Visual Studio Code
- iTerm 2
- Docker for Mac
- Postgres.app for local
Command Line Work
You can tell a lot about an engineer by the contents of his shell profile.
iTerm 2 is my preferred terminal since it's easy to configure and the profiles are transferrable between machines.
ZSH & Oh-my-zsh
I like the plugins Oh-my-zsh comes packed with:
I use the
agnoster theme with powerline-fonts installed.
nvm & node
I set up an
~/.nvmrc file as well for some global defaults as needed, including version pinning for dependencies.
I install Postgres.app so it's easy to get
psql on my command line.
I have a
.psqlrc file to set up table formatting and other features of
psql so it becomes my go-to tool for interacting with postgres (typically over GUI clients).
I install Homebrew so that it's easy to get components I need installed. I typically install
fx for reading JSON files and
wget out of the gate.
Visual Studio Code
VS Code is a fantastic code editor that can be extended to essentially be a full IDE. Although someday I might jump into tmux and vim, VS Code is fast, easy to use and set up, and it works very well.
My preferred base extensions:
- VS Live Share
I add in additional extensions for other language supports.
Ad, Tracking, and other blocking with DNSMasq
DNSMasq is a bundle of network infrastructure services, including a DNS resolver. I use DNSMasq to block trackers, ad networks, and time wasting websites cold. Here's how setup works:
brew install dnsmasq
/usr/local/etc/dnsmasq.confso it includes the following line:
- Add a directory
- Configure basic dnsmasq settings by adding a file to
/usr/local/etc/dnsmasq.d/resolvers.confwith the following contents:
# Tell dnsmasq to get its DNS servers from this config file only no-resolv # Add alternate DNS servers server=220.127.116.11 server=18.104.22.168
- Configure another dnsmasq.conf file
time-wasters.confwith the following format:
address=/.facebook.com/facebook.com/ # This stops any domain under facebook.com
sudo brew services start dnsmasq
I use Duck.com for search
- 1Password extension
- HTTPS Everywhere
- Privacy Badger
- Terms of Service; Didn't Read
- uBlock Origin
I will update this with further details, but for now this is the base setup I prefer to use on my system.