We're live-coding on Twitch! Join us!
My New Mac Setup and Why I Switched

My New Mac Setup and Why I Switched

I want to start this article by saying that I'm not here to start or take part in any brand war between Microsoft and Apple. I like both companies and have switched between operating systems occasionally over the years. Also, really hard to go back to Macs when the MacBook Pro keyboards are the way they are. I'm a big mechanical keyboard fan and need more travel in my keys.

Microsoft has been making some good moves in recent years:

I tweeted about this move a bunch over the past week. Thanks to everyone that got in the replies and helped me out!

Why am I moving?

Windows Subsystem for Linux (WSL) is Windows way of bringing Linux to Windows. We now have the ability to develop like we would on any UNIX system. apt get and all!

Essential Reading: Learn React from Scratch! (2019 Edition)

WSL has been great for me for the past few years, Microsoft Announced WSL 2 which greatly improves speed. I tried out WSL 2 and found out it's WAY faster!

This made me realize that the system I was using on WSL 1 was a bit slower than it could have been. I also noticed that WSL would slow down after developing for a while and many many hot reloads.

Mac is faster than WSL 1 for web dev tasks like npm.

The speed improvements that Mac and WSL 2 have over WSL 1 are enough to make me think about how much time I've lost. I'm a big believer in slowing down and spending time on tools that will make me faster in the long run (Vim, new VS Code tools/extensions, etc).

WSL 2 is more on par with the speed of UNIX systems for web dev tasks like npm things.

Will I go back?

Time will tell. So far, I'm enjoying the new setup. Loving how easy it was to switch my entire development environment between platforms. I think that's a testament to the strength of development tools these days:

I'll be switching to Mac. Checking back in on Windows when WSL 2 drops in 2020.

The Setup

Here's the quick rundown. I built my own super computer about three years ago that was pretty tank-ish. It's got three 4k screens and is a setup I'm very happy with.

I wanted to reuse all my current hardware like monitors, mics, keyboards, desk. Mac Mini was the best solution.

I went with:

Mac Mini i7 8GB RAM (Upgraded to 32GB)

I went with the lowest RAM here because Apple allows us to upgrade the RAM ourselves. I opted to take that approach and replaced the RAM immediately using this RAM from Amazon. I used the iFixit guide to replace the RAM+Replacement/115309). Got it done in about 20 minutes.

I am a little bummed that the i7 in the Mac Mini is the same i7 that was in my previous desktop computer. Was hoping for a jump there but it seems that the new Intel chips aren't in the Mac Minis yet.

External GPU

This was the big upgrade to make the Mac Mini a viable computer for me. I'm rocking three 4k monitors. While the Mac Mini says it can power three 4k monitors, the graphics card in the Mac is the built in Intel one. I wanted to upgrade this as I do a lot of video/photo editing work.

Using an external GPU: The only way to add a GPU to the Mac Mini is to use an external GPU. This is a graphics card that sits outside of your computer. It connects to your computer via Thunderbolt 3. This is awesome stuff! We can upgrade our computers (including MacBook Pros) using a little cable!

Initial Impressions

Overall I'm very happy with the Mac Mini's ability to power the three screens. The eGPU is doing a great job so far with Photoshop and Premiere. I'll put it through the ringer in the coming weeks.

Getting a dev environment is simpler on Mac since everything is already built in, especially Terminal and bash.

Homebrew** is amazing**. Homebrew Cask is even more amazing. The ability to install everything through the command line including things like Chrome and Spotify is amazing. I had all the apps I needed in a ridiculously low amount of time.

Thanks to Duncan McClean for his dotfiles [setup.sh](http://setup.sh) that I was able to see how cool setup files can be!

# install normal packages ----------------
homebrew_packages=(
  "git"
  "mysql"
  "php"
  "sqlite"
  "node"
)

for homebrew_package in "${homebrew_packages[@]}"; do
  brew install "$homebrew_package"
done

# install bigger packages with cask ------------
homebrew_cask_packages=(
  "google-chrome"
  "iterm2"
  "rocket"
  "slack"
  "spotify"
  "visual-studio-code"
)

for homebrew_cask_package in "${homebrew_cask_packages[@]}"; do
  brew cask install "$homebrew_cask_package"
done

Mac has fantastic graphics. Something about how Mac handles displaying fonts makes them so pleasing to the eye.

Mac 3rd party apps are so good. I'm still exploring options and would love any ideas you have for best Mac apps. Found Setapp and there's so many cool apps in the Mac ecosystem. So far I'm liking:

  • Paste: Clipboard manager
  • Focus: Avoid distractions
  • Be Focused: Pomodoro style time tracking
  • Screenflow: Screencasting! Really excited to work with this one
  • Keynote: I've used slides.com but when I saw Kim Maida's incredible ng-conf slides, she got me hooked on trying Keynote
  • Sequel Pro: Database connections
  • Day One: For daily reflections, something I've been trying to do more often
  • Looking for a screenshot tool that automatically copies a link to the clipboard
  • Anything I missed? I'm sure there's more

Conclusion

I'll have a write-up on how my switch goes. So far, I'm really liking things. I find joy in breaking down an entire setup and trying to start it from scratch. I'll be back on Windows some time next year to give WSL 2 a try.

For now I'm greatly enjoying devving on a Mac again! Thanks for reading!

Like this article? Follow @chrisoncode on Twitter