The Codeless Code: Case 131 Don't Think ====== A new monk of Elephant's Footprint Clan noticed that all brothers under master Bawan’s tutelage answered questions promptly, without the slightest pause. Those who hesitated were given a swift rap on the head with the master’s staff, after which they were to remain silent for the rest of the day—assuming, of course, that they had not been knocked unconscious by the blow. The young monk asked one of the brothers, “Why does Bawan punish those who delay in their answers?” “Because he believes them to be thinking,” said the elder monk. He indicated a row of skulls set on a ledge above the master’s door. Some were dull and dusty while others appeared to be freshly-parted from their previous owners, but carved into the forehead of each were the words DON’T THINK in the master’s unmistakable script. The elder monk departed, leaving the younger to ponder Bawan’s algorithm. Some time later these same two monks were working furiously through the night to upgrade one of the clan’s venerable document databases. Critical systems were offlined while the old documents were migrated to the new servers. The conversion script ran for hours, yet failed near the end due to a minor problem. A second run was started, but since dawn was fast approaching the monks specified that any documents which had already been written by the first run should be skipped. As the second run sped through the portion of the database that the first already processed, Bawan noticed something curious. Many thousands of status messages scrolled past which looked like this: document 2677091: skipped (already exists) document 2677092: skipped (already exists) document 2677093: skipped (already exists) Yet once in a while one would appear which looked like this: document 2677094: skipped (already exists) (** source is newer) “Why the difference?” demanded Bawan. “I cannot say,” said the elder monk quickly. Bawan snorted and struck the man’s cheek with the back of his hand. Then he turned to the younger monk. “Why the difference?” he repeated. In that instant—his mind racing between thoughts of the master’s hand and the master’s staff—the young monk received a flash of insight. “Clock skew,” declared the young monk. “When we pull a source document from the old server we preserve its modification time, and then we create the target document. Yet if the system clocks disagree, the script will sometimes believe that the source is newer than the target.” The master indeed found a small time discrepancy between the two servers. He nodded approvingly and departed, leaving the young monk to bask in the satisfaction of having understood Bawan’s algorithm. One day later Bawan ordered the clan to assemble outside his office. As all waited for the master to appear, the elder monk whispered that Bawan had spent the whole day assembling definitive evidence that clock skew was responsible for the odd messages. “What did he find?” asked a nun. “Nothing of the sort,” said the elder monk. “In truth, one server had accidentally been left running during the migration, so users were still making edits in the old database. The second conversion skipped these documents with the observed warning. When traffic was diverted to the new database, subsequent user edits made restoration of the lost edits impossible. It will be a great embarrassment for the clan.” The discussion halted abruptly as Bawan emerged from his office with a ladder, which he then ascended to place a glistening new skull on the ledge above his door. The skull’s features recalled those of the young monk, who had not been seen all day. As before, the words DON’T THINK were inscribed on the forehead. And on the jawbone—invisible to anyone standing below the ledge but quite legible as the master carried it up—was the single word, KNOW.