Maximizing, Customization and Git Alias
Me experimenting with my daily bagel
I have always had the temperament of a satisficer. I find something that works for me, and I stick to it forever. It’s simple and easy, once I make a commitment to something, I don’t have to think about that category of thing again. I do this for bagels, pens and IDEs. But I am starting to wonder if I am missing out by not maximizing more.
I have decided to spend more effort customizing my personal computing experience to match my needs and the way I work. I am an engineer by trade. If I want, I can write one-off software just for myself to perfectly match the way that I work. I can extend it, maintain it, and fix it as needed.
Now, this is often a failure mode for engineers, building custom difficult-to-maintain setups (i.e. vim configs) that will only be used by them. On the other hand, I respect people who do that, and they seem to be pretty good at being engineers. The easiest way to build software people will use is to build software for yourself.
In that spirit, today, I set up my first Git alias.
I have a to-do list stored in a markdown file on a Jeykll website in a private GitHub repo, which I edit mostly from my MacOS personal computer with Cursor (a VScode-based IDE). Every day, I append my to-do items to the end of the file, and when I do them, I cross them off. I send the list and items that I have done to my uncle over WhatsApp. This is a much better to-do system than Todoist. There is accountability as I send the to-do list to my uncle, unlike in Todoist. I need to intentionally choose to add to my to-do list and what I choose to roll over to the next day.
While most of the edits to this private Jeykll site are done through a PR. It is helpful even when I am working by myself to have branches and systems for reviewing my work.
But changes to the to-do list which are just new items appended to the bottom are just added to the file in the main branch and can be pushed without with a review.
This is something that normally takes multiple commands
git add website/to-do.markdown
git commit -m 'Update to-do list'
git push origin main --force
I have instead added to my repo git config file:
sync-to-do = "!f() { git add website/to-do.markdown && git commit -m \"Update to-do list\" && git push origin HEAD --force; }; f"
I edit my to-do list from my MacOS personal machine, but sometimes I edit the private Jekyll site from GitHub codespaces so eventually I would like to sync my aliases but for now, I will just stick to this.