Productive ToolingFeb 21, 2020
An expert craftsman invests in their tools. They make their tools work for them. They pick the best tools for the job. Some of my favorite qualities of tools - but really just about anything: food, furniture, technical decisions - are threefold. Being: cheap, shitty, and working incredibly well.
I'll leave it as an exercise for the reader why something being less expensive is a good thing. It’s not always, though.
Why is being shitty a good quality? The rule doesn’t always hold - but it sure does a lot. When you know something is bad, or shitty, it implies you know its weak points. Knowing weak points implies you have some knowledge of how to do things better -or- of how to work around said shitty things. What is dangerous is something that is secretly shitty.
What does it mean to work incredibly well? Impossible to answer. Everything is contextual. Sometimes AWS Lambda/serverless works incredibly well. Sometimes Apache works incredibly well. Both never always work incredibly well. To work incredibly well means to empower you to be incredibly productive and deliver work that is more valuable than what you would have done without or to deliver faster.
I'll now provide you with a short list of some tools that for some reason or another fit my descriptions of being cheap, shitty, and work incredibly well.
The shell with memory. Fish remembers what I want. Commands that I use once every three months Fish remembers. I sure don’t. Sure, other shells can do this - but Fish’s power comes from being cheap. This power is given to us out of the box - no setup required. It’s cheap. History autocomplete built-in to everything you type is powerful.
The browser’s killer feature is tabs. My terminal’s killer feature is Tmux. Yes, your terminal can have tabs without a desktop environment or window manager running. You can resume your sessions. On lower powered machines sometimes GDM/Gnome act up. Forcing a
sudo systemctl restart gdm
My Tmux sessions are saved in cases such as these.
There’s plenty of reasons why Vi/Vim is good. I’ll let you use your favorite search provider to find why. My reason is that it never does anything unless I explicitly tell it to. It’s an obedient text editor.
I develop applications I hope end users will cherish and use. Using a low powered machine allows me to feel the pain of my most unfortunate users. If every web developer used this CPU maybe the Brave browser would never need to exist. But I’m sure glad it does.
This is a self shill. I created smscp. “The easiest way to copy text to and from your phone and computer.” I use it all the d*mn time. Although rare, sometimes I’m AFK yet I need text snippets sitting on my computer. Here’s a shell alias of mine that is invaluable to me.
alias i='mktemp | xargs -I X bash -c "vi --not-a-term X && cat X | xclip -selection clipboard && cat X | smscp new"'
Make a temporary file, open it in Vi, on exit copy it to my clipboard and send it to my phone. I use this for everything. TODO lists for course work, grocery lists, whatever.
I'll be updating this post. More will come to me in time. Things such as entr and make will be discussed. I hope you’ve found something useful here. Computers are meant to aid us. Whatever your productivity philosophy is, a computer can help you!