python Optimising riddle generation Optimising riddle generation, trading space for time, then exploring something like laziness
python Seventh time lucky: solved Brute-force solution of a number puzzle, plus a bit of investigation around it.
codes and ciphers Testing hillclimbing and simulated annealing Some experiments to determine if simulated annealing is better than hillclimbing.
codes and ciphers Simulated annealing and breaking substitution ciphers What simulated annealing is, and how it works.
codes and ciphers Breaking keyword substitution ciphers without a keyword Solving ciphers when you have no idea about the key
python Organising a Python module Where different files go in a Python module, and how to get to them.
codes and ciphers What's the best language model?: part 2 A computational experiement to find the best way of testing possible plaintexts when breaking ciphers.
codes and ciphers What's the best language model?: part 1 Looking at different ways to test possible plaintexts when breaking ciphers.
codes and ciphers Sanitising text Cleaning text for further analysis: how to keep only letters, and how to remove accents.
codes and ciphers Breaking ciphers and language models How do we know which key to use when automatically breaking a code? Creating a model of English for finding out.