Using simulated annealing to design good codes | Synapse