Maybe it’s just me, but I dearly hate to be enjoying a romance or romantic suspense novel and then run across what is clearly false information about computers or programming.
Take, for instance, Dan Brown’s DIGITAL FORTRESS. (Okay, it’s not romance, but it’s the example that irks me most.) Premise: A genius has created an unbreakable encryption algorithm, called Digital Fortress, and offered it for free download from his web site. So far so good. There’s a lot of techno-geekiness that I can believe as long as the premise is reasonably sound. I’ll even buy the notion of an unbreakable algorithm for a while. The NSA decides to reverse engineer DF and include a “back door,” meaning that the NSA can decrypt anything encrypted with DF. That’s well within the realm of possibility, as the NSA attempted that stunt a few years ago. Then the NSA would post the revised DF on the villain’s web site for folks to download and use.
Then Brown goes and screws it up. Our intrepid heroine observes that the NSA could switch out the original executable with their doctored one, and the algorithm’s creator would never know because he wouldn’t bother to go back through a hundred thousand lines of code.
I read that line and went, “Dude, do a checksum.”
A checksum is a simple tool for determining whether an executable has changed. Think of it as Poor Man’s Version Control. In the software company where I used to work, Cheryl would use chksum and cmp to make sure the executables she was snagging out of the compilation areas were the latest. Chksum would tell her whether the exe had changed; cmp would let her compare the new one against an old one to see how they were different.
Elementary mistake, I’m afraid. In a technothriller, it totally drove me out of the realm of believability. I was hooked no more.
So when I ran across a most glaring pronouncement in a romantic suspense novel recently, I simply sighed. No, law students who are pretty good at installing firewalls and running Ad-Aware are likely not capable of sorting through code on a PC — especially when there is no “code” to sort through. An application is a compiled program, meaning that the high-level programming code used to write the app (probably C or C++) has been churned down to machine-readable code that only the machine can understand.
All this is pretty arcane, I realize, and likely not anything to write home about, but it bugs me. Does it bug me enough to get started on my cracker book? (And I mean “cracker,” as in “breaks into servers whether for good or for ill,” rather than “hacker,” which means “one who desires to write elegant code using outside-the-box techniques and insights.”)
What are your pet peeves? (Besides authors who bitch about their pet peeves.)
Legal inaccuracies. Drives me nuts.