joshuago’s software-engineering Bookmarks
First make it possible. Then make it beautiful. Then make it fast.
Mercurial decided to solve the performance problem by developing a specialized storage format: Revlog. Every file is made up of an index and a data file. Git takes the opposite approach: file blobs. To store revisions quickly, each new file revision is a complete copy of the file.
The whole point of a standard is to describe a fixed set of practices that people can take for granted. Once they can take it for granted, they can begin to focus on other things.
A thorough unpacking of the different kinds of design which are relevant to making modern technology products.
Solitude is out of fashion. Our companies, our schools and our culture are in thrall to an idea which holds that creativity and achievement come from an oddly gregarious place.
Software developers should recognize that they're in a privileged position. We should aim to use our power to better the world and solve hard problems rather than simply building things for ourselves.
Who cares if your product is the most powerful thing in the world if no one understands how to use it? Don't just dump developers to a GitHub page with a two-liner readme. The most successful API docs are carefully crafted with love.
The set of features you choose to build is one thing. The level you choose to execute at is another. Keep it tight.
A stimulating discussion on Google's infrastructure for handling big data. One guy says it's hopelessly out of date. Others chime in and say it's easily 5-8 years ahead of open source alternatives.
A perfect implementation of the wrong specification is worthless. Write your Readme first.