Blog
-
Concurrency bits: spin locks
A tour of concurrency primitives: spin locks -
Topics in Distributed Systems: Making sense of the CAP theorem
The CAP theorem and its variations -
Metastable failures in distributed systems
An overview of metastable failures and how to deal with them -
Grokking generic algorithms in C++
A closer look at how generic algorithms are implemented in practice -
Actual programming
Advice from real programmers on how to actually write code -
Type traits from the bottom up
How type traits are implemented in the STL -
The Stepanov Language Test
How to know if a language is suited to generic programming -
How to code it: algorithmic problem solving
Using Polya’s How To Solve It techniques in algorithmic problems -
Notes on std::rotate
Analyzing different implementations of std::rotate in the STL -
A sample of sampling algorithms
Algorithms for generating samples -
Relation between std::is_sorted and find_adjacent_mismatch
How to implement std::is_sorted in terms of find_adjacent_mismatch -
The road to std::lower_bound
How to derive a correct and efficient binary search -
Three categories of comments in source code
How to write good comments -
Notes on std::unique
Implementing and using std::unique -
A Philosophy of Software Design, by John Ousterhout
Notes about the book 'A Philosophy of Software Design, by John Ousterhout'