Tools

Slightly Outdated
This page was created years ago and was recently migrated over to the new site. I will revisit it as I find time to update it to reflect my current toolbox.

As a developer, trainer and screencaster, I rely heavily on my tools to help me accomplish my goals. Between hardware and software I use for development, the tools I use for screencasting and just keeping myself organized, the list of tools in my toolbox is fairly long. I will continue to add to, and update this list as I find the time, add a new tool or make a change to an existing item.

Development

dot files

I have a repo of my dot files.

.gitconfig

This repo includes my .gitconfig.

I have some pretty handy aliases that I use on a daily basis to work with git more effectively. Some highlights include:

  • git st, which does runs status -sb.
  • git cm, which does an add -A and a commit -m. I call it with a commit message and get all changed files added and committed: git cm "Did stuff and things".
  • git pr - This takes my current branch name and pushes it to my remote. So instead of git push -u origin <current-branch-name>, I just type git pr and my branch is pushed to my remote with a matching branch name.
  • git poop - just runs git stash pop, but it's mildly entertaining and that makes it worth using.
  • git l - runs git log with a couple of options and a --pretty format that I'd never type repeatedly with any success
  • git aliases - shows the entire list of available aliases

That's just a small sample of what I have in there. Feel free to grab them and use them and I'd love to hear suggestions if you have some good ones of your own.

VS Code

I switched away from Atom to VSCode years ago and it's still fantastic!

Theme & Fonts

I'm currenty using the Night Owl theme from Sarah Drasner with the Dank Mono font by Phil Plückthun for development and screencasts.

In the past, I've used Cobalt 2 theme from Wes Bos.

Quokka & Wallaby

Quokka and Wallaby are both from the same developers. They are editor plugins, that will execute your code/tests in the background and show results right in your editor! I can't say enough about how much they boost productivity. Quokka makes it easy to catch errors in your code and see the results of expressions right in your editor. No need to run the code, or step through a debugger. I've even started using Quokka as a more streamlined way to show code results in my screencasts!

Wallaby does that for your tests. If you write test driven code, Wallaby will pay for itself in a matter of days, if not hours! It executes your tests in the background as you type, and shows you results right in the editor. Wallaby means I don't have to run my tests directly or even look at another window to see if my tests are passing. Truly remarkable!

iTerm2

If you're doing development work, you need a good terminal. My go-to terminal application is iTerm2 with the Cobalt2 theme.

oh my zsh!

oh my zsh is a community-driven framework for managing ZSH configuration. I made the switch from bash to zsh and my only regret is that I didn't do this years ago! It is fantastic! My dotfiles repo mentioned above includes my .zsh config.

Screencasting

Camtasia 3 for Mac

I was a ScreenFlow user for a while, but after running into a lot of buggy behavior in the most recent version, I decided to give Camtasia a shot. So far, I'm loving it. I think for the kind of editing I have to do, Camtasia really simplifies things.

SwitchResX

To get the best quality video, I need to record at the right resolution, which means switching my resolution back and forth when I go from development to recording. For this, I use SwitchResX. The app allows me to store “Display Sets” so I can quickly toggle between my recording resolution and my development and editing resolution.

Microphone and Boom Arm

I use a Shure BETA 87C Microphone with a Shock Mount on a Heil Sound PL-2T Overhead Broadcast Boom and a 12” riser to record the audio for all of my screencasts.

VS Code “Profiles”

I'm calling these profiles for lack of a better term.

I have an egghead lesson on this if you'd prefer to watch a video.

The basic idea, is that using command line options, you can load VS Code and point it to specific directories for extensions and settings. I'm using this capability, along with some aliases in my .zshrc to maintain a completely independent setup for VS Code with settings and extensions that are configured for screencasting. This allows me to work in VS Code with a normal font size and all the extensions that make me more productive and teach/present in VS Code with a large font and fewer extensions running that could be a distraction in a screencast or presentation.

If you'd like an example of this, you can check out the GitHub repo I set up for these: https://github.com/avanslaars/code-profiles

Productivity

Notability

The Notability app is fantastic for iPad with Apple pencil.

Concepts

Concepts is an iPad app that offers some great tools for drawing and an infinite canvas which can be great when trying to quickly capture complex data flows and system architecture during meetings.

Alfred

I can't say enough good things about Alfred. I use it with the powerpack and aside from my code editor, it is probably my most used application. I use it to launch applications, to search my file system, as a calculator, to display text and urls when presenting (it has a feature called Large Type that is pretty handy when I remember it's there) and that's before I get into the workflows! With workflows, I can do things like add notes to Evernote, shorten a URL with bit.ly, add an entry to DayOne, even search the Ramda docs!

Moom

I end up with a lot of applications running and like to have certain windows in view together, like my editor, a browser for testing my work and a terminal window to monitor builds, tests and the like. I use Moom to move windows around, save layout configurations and generally wrangle my windows, all without having to take my hands off the keyboard.

Hardware

Aside from my recording gear listed above, I like the following peripherals:

Thunderbolt KVM

To switch between my work laptop and my personal iMac, I use the IOGEAR Thunderbolt 2 KVM Docking Station. Being able to work on either machine with the same monitors, keyboard and mouse make life much simpler and allows me to avoid that keyboard on the new MBP anytime I'm not traveling.

Logitech MX Master mouse

I've been using an mx master mouse for years and I still love it!

WASD Keyboard

After I had issues with not one, but two mechanical keyboards from another company, I switched to an 87 Key keyboard from WASD.

Logitech HD Pro Webcam C920

I'm in a lot of video calls and the c920 webcam provides great video and audio quality. I can use the built-in microphone and some desktop speakers for video calls, which is ideal since otherwise I'd spend my entire day wearing a headset and that would get pretty uncomfortable.