Friday, 29 January 2016
John Cook's article on random generator mistakes reminds me of a fun story from school: We had Acorn Archimedes machines, which booted from the network - or at least loaded applications from the network, RiscOS was built into ROM. These machines would often be idle after boot (the entire computer room switched on from a mains breaker), so to ensure they were most useful when someone came onto the machine later, we started various applications to run in the background. This was fine if the machine wasn't going to be used immediately but very annoying if someone did want to use the machine, so I wrote !AutoStart, which started the applications after a delay, and could be cancelled with a click. However a room full of machines all hitting the network at the same time for an application would be very slow, so I added randomisation, so different machines would start up applications at different times. Unfortunately we hit the problem John highlighted - all the machines gave the same random numbers as they were all started at the same time (I think it may have been time since machine power up as well). So in the end machines initialised their random number generator with their network ID instead - predictable, but different from each other.