From time to time I stumble upon interesting resources on the web. Often these become part of my "utility belt": I use them quite regularly for reference or they are small little helper programs that make my life a lot easier.
I know that browsers provide bookmarks to keep references to these resources but I don't find these very useful. Ironically, it is too easy to bookmark, so my bookmark list became flooded over time. And it is too difficult to get an overview of the bookmark. At the same time, there is no way to share them. (Thinking of it, probably this would make a cool online service...)
So, this is my humble attempt to structure these resources a bit.
- Structure and Interpretation of Computer Programs (SICP) by Abelson and Sussman
- "All Your Tests are Terible..." by T. Winters & H. Wright at CppCon 2015
- "Large-Scale Changes at Google: Lessons Learned From 5 Yrs of Mass Migrations" by H. Wright at CppConn 2018
- gitignore.io is a very useful helper to quickly add handy
.gitignorefiles to your projects.
- It makes sense to split your git configuration file into
~/.gitconfig.locale.g., if you were to use different email addresses for personal or professional work.
- You can use a bare repository to store your dotfiles for a convenient way to syncronise your configuration across machines.
- Use Conventional Commits to write understandable commits that suffice a standard style.
- Go Resources with the free online book An Introduction to Programming in Go
- The Go Programming Language by Alan A. A. Donovan and
Brian W. Kernighan
- The source code of the code examples is provided in a GitHub repository.
- nvm for managing node.js versions interactively
dplyr's vignette on programming
Backup and Sync
- Syncthing is a great tool for keeping multiple machines in sync: securely and distributed. It even offers a (limited) option for versioning.