There is a scene at the end of Goldfinger, the third James Bond movie, where James Bond is trying to defuse a nuclear bomb designed to make the gold stored at Fort Knox unusable. A bomb expert cuts the right wire, just as there are 007 seconds left on the clock. Clever.
The first production Clojure program I ever wrote — along with a lot of help learning Clojure — was a simple program that reads in one .csv file, writes out another, and makes an http client call in the middle. The problem is I wrote this program a long time nearly two years ago, and have not looked at it much, since.
On the other end of this story lies a recently re-written Perl Windows service does the same old things that its older IIS/ASP counterpart used to do, process a GET request and return an answer. The answer contains a bunch of corrected address fields, but unlike its old counterpart the 8th field (carrier route) had embedded at its end. Obviously, this had to be filtered out, but I did not know this immediately. I tested the new Perl service, but did not look closely at the output. So, there’s the bit about thorough testing.
This program happened to fail during a tax bill run, and the program had to be fixed, or its equivalent steps had to be reproduced. I opted for the wrong thing, racing to try to fix the Clojure program, instead of some clear, and fairly easy alternate steps. In other words, I treated the whole thing like a clock ticking down.
And, as far as things worth learning again, racing at high-speed is slower than taking a detour to figuring things out. The bills could have waited at least a day or more.
One thing Clojure lends itself to nicely are the creation of checking tools, and I will definitely remember that for the future.