Code or Die Welcome to my kitchen

How I Learned To Stop Worrying And Love The Default Terminal App

As a recovering champion yak shaver I used to obsessively customize the heck out of every single environment, operating system, or program I touched. In my wiser years I have to shake my head at such time-intensive exercises.

In my experience the less customization the better. As a dev you should be able to blow away any program, environment, or operating system at the drop of a hat and be functional in minimal time.

In my opinion it is no use being precious about extensive customizations if it takes one a long time to re-create.

Oh, you have a 15-pane tmux with customized run commands? Cool. Your IDE settings.json stretches from here to Timbuktu? Nice!

I really hope you don’t have to reinstall that program/env/OS or, heaven-forbid, have it suddenly become unavailable on your machine due to org security or compliance reasons.

I now prefer to use default programs and commands to get up and running as soon as possible on a clean reinstall of software.

If you must customize, then save a copy of modified settings if possible on separate media or a remote repo to be able to quickly re-customize. However even this I’ve found to be a pain point.

Don’t get me started on devs that hesitate to drop dev databases and re-create from scratch, when this is exactly the purpose of dev databases. They are ephemeral and built to be blown away with regularity.

If you are not able to drop a dev DB for fear of losing info, consider a rake task or seed file to easily re-create this info.

This brings up a corrolary to this principle which is don’t alias destructive commands. Destructive in this case meaning irreversible.

I am big fan of trash the brew cask that gives the user a command to send files to system trash. However I made a huge mistake when I aliased the system’s rm to trash.

It is way too easy to slip into muscle memory in the wrong circumstances. You could one day be SSH’ed into a remote machine and forget this alias isn’t available and rm -rf <something important>. Oops, I just destroyed <something important> instead of sending it to system purgatory.

My point is yak shaving is fun until we have to reset your environment or OS. Always keep a backup, but better yet get to know and love default programs/commands. Usually the functionality you are seeking is already there, e.g. using default zsh functionality instead of the overkill that is oh-my-zsh framework.

Your future self will thank you.