Nicolas Fabre

What I use

Give me six hours to chop down a tree and I will spend the first four sharpening the axe.

- Abraham Lincoln

Let's kick off this blog with a list of the tools I use and value in my everyday work. It's worth spending some time configuring your tools so that you can get the most out of them. This page also plays the role of a living guide for myself when I need to setup a new development environment. After having to set this up 4 time in the past year, I decided to write this down and automate this as much as I can.

Hardware:

Computer:

  • MacBook Pro 13-inch, 2019, 2,8 GHz Quad-Core Intel Core i7, 16 GB of RAM and a SSD of 500 Gb
  • MacBook Pro 14-inch, 2023, M2 Pro, 32 GB of RAM and a SSD of 500 Gb

Screen: Samsung 4K 28" U28R55

Keyboard and mouse:

  • Keychron K3 and Apple Magic trackpad 2. Keeping the Apple Magic Keyboard close for backup / traveling.
  • Apple Magic Keyboard and a very nice Logitech MX Vertical.

Headphones:

  • I've been using Ticpods Free or Sennheiser Momentum for a while, now using the Bose QC35 II.
  • Bose QC35 II for longer calls and Apple AirPods Pro 2 for shorter ones.

Ereader: Kobo Libra H2O for reading.

Software:

Some of the noteworthy pieces of software that I use (almost) everyday:

Iterm 2 with Zsh, Oh My ZSH to manage the configuration, and the pure prompt.

VSCode with plenty of nice extensions, check this article about my favs here.

Calibre to manage my e-books

Keka for compressing and decompressing every type of format (eg.: 7-zip on mac)

Unsplash Wallpapers for fresh desktop backgrounds

Stats is a very nice open source project to get usage metrics of your laptop

Some older tools have been implemented natively in MacOs:

  • f.lux to manage the color of my screen according to the time of the day - now called Night Shift in MacOs settings.
  • Amphetamine, to use the computer with the lid closed, works now when peripherals are connected to the computer.

Raycast as an app launcher, which has replaced the following tools I was using previously:

Some I don't use anymore:

  • Brave browser for its privacy features - I now just use Safari and Chrome / Chromium
  • Notion for flexible and shared notes that can be arranged to do nearly anything you wish, I just use Apple Notes.
  • Vanilla to manage the menu bar real estate.

Setting up a new computer

So now the qustion is: How to re-install all of these applications, plus many others, including development dependencies, runtimes, databases management sytems, all kind of binaries without spending hours on it ?

I'm using a not-so-new-anymore feature that landed in Brew, which is the bundle command.

Use brew bundle dump to dump all your installed dependencies in a Brewfile, then check the list and add any missing application. To do that you can use brew search for any applications - eg.: brew search kubectl. For applications distributed on the App Store use mas cli. Use mas list and then add these to your Brewfile. Once your Brewfile is created you'll only need to install brew and run brew bundle to setup up all you apps.

One great quality of life improvement when switching machines is to bring over your shell history. This article inspired me to do the same by versionning it with my dotfiles before switching machines.

Now how to bring this file, and your dotfiles, on a new computer ? I personally version them in Github, and then symlink them in my home. My setting up a new machine routine becomes:

  • Install my password manager
  • Log into VCS, create an ssh key and clone my dotfiles
  • run brew bundle install and symlink my dotfiles into my home
  • Profit

I use a signed in browser profile with Google Chrome which syncs my browser extensions.

VSCode settings are synced with Setting Sync native feature in the insider release and / or with Settings Sync MarketPlace extension in the regular release that saves everything to github gists.

Passwords, ssh keys and plenty of stuff is managed using a password manager.

Pictures, documents go on the cloud ☁️.

That's about it for now, I'll update this as my practice change. What about you ?