It's so easy to get out of rhythm, get busy, and drop the ball on some things that you really want to do or should do. This blog is a good example. I took some time off for some family reasons, but have taken a long time to get back to it simply because I am out of rhythm. As I am trying to get back into the rhythm there is some tooling that I have set up for it that I completely forgot about that feel good to use again.

Repetitive Tasks

Simple Repetitive Tasks that I have to do often can just feel soul crushing, and one main thing that got me interested in programming.

AI tools are becoming more and more useful at solving these problems. For instance code generation tools like co-pilot or codeium are really good at boilerplate and pattern repetition. Things that used to be a few vim macros is now just banging on tab.

I often look for setting up templates or some sort of snippet to replace a big chunk of boilerplate that I know I will need over and over.

timebox

Don't be afraid to give up on making a better workflow for something that just might not be worth it. Give yourself a session or two to show some progress, if you don't get it, don't be afraid to put it on pause, let it stew, or just forget about it. Often times I will come back later with new knowledge and knock out an thorn in my setup with new skill much easier the next time around.

Low Hanging Fruit

Often things like having a quick template to get a blog post up and running are worth it. It might not take that long to setup a new post, set the date, title, tags, and create the file, but sometimes that is enough of a barrier to stop me from even making a post. Making a template and a script that I can call in a few keystrokes makes me much more likely to make a post.

Learning

I am often reminded of this xkcd comic about automation, and how easy it is to overdo it. Spending far more time automating things than it would have to do the original task is a very easy pit to fall into. I've been guilty of it many times. I'm sure most people who have written any automation code is as well.

https://xkcd.com/1319/

What this comit misses is learning. If you never take the time to learn any automation you will not be any good at it and it will always take longer to automate than to just do the thing. You have to tackle some things that you think are achievable with skills you think are transferable to other tasks. Scraping that one weird endpoint out of the Microsoft Graph API that is not in the cli is a prime example. Often there is a series of undocumented n+1 queries that you have to execute and each leave you feeling like you are almost at the data that you can see in the ui, but want in the terminal. Learning this api will leave you with nothing but potentially one task automated.

Learning how to leverage cli tools like curl, grep, xargs are great examples of skills that can solve many automation problems quickly, but the first time you will end up spending hours looking for the right thing before you realize what you need.