Next permutation: When C++ gets it right. An investigation into a classic algorithm for generating the distinct permutations of a sequence in lexicographical order.
Python on Ice. A review of the Python 2, Python 3 language fork. Python 3 has met with some resistance. A moratorium on further changes to the language is being imposed, to smooth the transition.
Longest common subsequence. An investigation into the classic computer science problem of calculating the longest common subsequence of two sequences, and its relationship to the edit distance and longest increasing subsequence problems.
Sums and sums of squares in C++. Reduce is a higher order function which applies a another function repeatedly to a collection of values, accumulating the result. Well known to functional programmers, reduce is also a standard C++ algorithm.
Merging sorted streams in Python. Did you know that Python's for loops can have an else clause? Here's how it can be used in a stream-merging function.
Stop the clock, squash the bug. Which is better, a clock which loses a minute a day or one which is stopped? An investigation into how we find and fix software defects.
Essential Python Reading List. An essential Python reading list. I've ordered the items so you can pause or stop reading at any point: at every stage you'll have learned about as much possible about Python for the effort you've put in.
Animated pair streams. Another look at the functional programming problem of generating an infinite sequence of pairs. An example of using the Python Imaging Library to generate an animated GIF.
Too big or too clever? Steve Yegge says that, for large applications, size is an enemy best controlled by dynamic languages. Alex Martelli says a language can be too dynamic for a large application. Who's right?
Koenig’s first rule of debugging. The problems caused by the C++ compilation model, dependencies and cryptic compile diagnostics. If an expert like Andrew Koenig can’t get it right, what hope for the rest of us?
String literals and regular expressions. An article about string literals, escape sequences, regular expressions, and the problems encountered when mixing these together.