Being a frontend developer, I am subscribed to quite some RSS feeds and newsletters that regularly talk about new tools and tricks. I once realized that I was picking up those tools or other tricks (such as vim movements, IDE shortcuts, etc.) from articles but quickly forgetting about them again. For this reason, I at some point decided to create a knowledge.md file that I track in a GitHub gist. Whenever I learn something new that I think I might want to come back to again later, I cd into my local copy of the repository, edit the file and push it up to GitHub. Looking at the file again from time to time makes me realize that some things I wrote down there seem like really basic things to me nowadays (such as <n>G to jump to nth row in vim) but I think this shows that the system works.

I also made another file specifically for new tools that I discover and would like to use more (such as bat). In order to actually remember to use these new tools or to remember old tricks, I changed my shell’s (fish) greeting, so that now whenever I open a new terminal, I am reminded of one new and one old tool. All the function does is basically picking a random line from each file and showing it (while - in the knowledge.md case making sure, that it’s not a heading). This resembles the tip of the day features that you might know from IDEs.

function fish_greeting
  echo "🔩 new tool: " (gshuf -n 1 ~/NEWTOOLS.txt)
  echo "🔩 old tool:" (grep -E '^\-.*' ~/projects/knowledge-gist/knowledge.md | gshuf -n 1)
end

I think this is pretty useful. Let me know how you are remembering things like this on twitter