I never jumped on the NoSQL bandwagon for data storage (it’s fine for caching data that can be created from MySQL) so none of these arguments are that surprising. :-)
It’s always nice to be wanted in a hiring trend.
Compression is everywhere. It’s used to more efficiently store data on hard drives, send TV signals, transmit web pages like this one, stream Netflix videos, package up video games for distribution, the list is endless. Almost no significant area of modern computing exists that doesn’t make use of compression technologies.
So what is it?
Don’t learn programming languages/frameworks outside of work
This one is kind of negative but I think it’s useful! My view about learning programming languages is:
- I know a few languages reasonably well (python, scala, ruby)
- Learning a new programming language well takes a fair amount of time
- I don’t feel like spending my free time on it
Whenever you find a bug, write a test case to cover it before fixing it
This is my favorite piece of advice whenever people ask what to test.
How does a tiny repo cause git to run out of memory? The secret is that git de-duplicates “blobs” (which are used to store files) to make repositories smaller and allow using the same blob when a file remains unchanged between commits. Git also allows de-duplication of “tree” objects (which define the directory structure in a repository). git-bomb tries to make a billion files, however it only has 10 references to the file blob and only has 10 tree objects in all.
I’ve seen a trick like this with Zip files before but it’s cool to see how small it gets when you’re using git.