Blog
-
Topics in Distributed Systems: Making sense of the CAP theorem
The CAP theorem and its variations -
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 -
The Pimpl idiom in modern C++
What the Pimpl idiom is and how it works in modern C++ -
Type traits from the bottom up
How type traits are implemented in the STL -
Language features as compiler hints
How the compiler sees some language constructs -
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 performance engineering of C++ programs
A collection of notes and resources about performance engineering -
Notes on std::rotate
Analyzing different implementations of std::rotate in the STL -
How do committees invent?
Inovation can be hindered by the overhead of inter-team communication -
Bit tricks in C++
A collection of common bitwise operations in C++ -
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' -
The popularity and evolution of C++
Will C++ continue to be popular? -
Git Cheat-Sheet
Creating and managing repositories with git -
What “no raw loops” really means
Spoiler alert: it’s about isolating algorithmic primitives in your code -
The economy of programming languages
What makes a programming language successfull? -
Computer wordplay
Basic algorithms for detecting and playing with anagrams