He may not be a programmer by day, but he certainly has the mentality of one. This definitely is not the kind of macro that can be recorded and works immediately. For someone who is a "non-programmer" it's pretty impressive to figure out how to use nested loops for such an obscure task. How has nobody mentioned how cool this is?!
VBA is an awesome tool. It has saved me hundreds of hours of tedious calculations and copy/pasting sessions.
Whoa...that's awesome. Definitely a programmer. I don't care what you think of VBA...it is a great tool. I've seen some truly impressive programs written in it.
From a quick look (so I may be mistaken), the "Enigma" worksheet has everything it needs to encode a single letter using worksheet formulae.
The VBA just loops through the input text, feeding it into the worksheet character by character and incrementing the step counts, which are referred to by the worksheet formulae. It also looks up the initial rotor positions from the "Settings" table from the "keys" on the main interface worksheet.
That's for encryption - there are another 30 lines of code for decryption which I haven't looked at. It looks hand-coded rather than recorded, but most of the VBA is either incrementing counters or calling worksheet functions, so the VBA isn't doing the heavy lifting.
Your friend may not call himself a programmer but I do Excel/VBA work as part of my job, along with more hacker-approved languages, and I'm very impressed. One of us indeed!
Not a book, but if you're interested in codes and codebreaking, it's worth a trip to the "National Cryptologic Museum", located right outside the NSA headquarters at Ft. Meade, Maryland (between Baltimore and DC). It's a relatively small place that's open daily and seems to be a labor of love by retired NSA codebreakers.
The museum has a four-rotor Enigma machine, which is about the size of a typewriter. It is packed into a wooden case and deployable into the field.
The museum also has a "Bombe", the Enigma codebreaking machine devised originally by Polish mathematicians, and improved by Alan Turing and others, and fabricated in quantity by the British and the Americans during the war. This an electromechanical device the size of several refrigerators.
So nice to see them both together. Of course, I have today's simple and compact encryption technology in my phone, and right across the parking lot from the museum, there is an acreage of computers (Ft. Meade) which is probably able to decrypt what I send, if desired. Same as it ever was.
Not really; I've never done any cryptography so I wouldn't know if I liked it. I thought I'd see if I liked it by learning about it for a WW2 class. Thanks for the suggestion, though.
if you haven't read The Code Book by Simon Singh (as I recommended), you'll be surprisingly pleased by its depth. Everyone loves it. It was the book that inspired that spreadsheet; it clearly contains enough info to go and try and implement an Engima machine :) It also covers Lorenz (http://en.wikipedia.org/wiki/Lorenz_cipher) and such. It covers lots of both older and newer systems too, and even has a puzzles section.
If you want more of the human side, "Code Breakers: The Inside Story of Bletchley Park" is a dry non-technical memoirs by a those who were actually there.
Thanks for everyone shabble, fduran and willvarfar's responses; I didn't realize The Code Book's depth and am really excited to see the positive responses here.
Apart from Singh's incredibly famous one, I also quite enjoyed _Colossus: The secrets of Bletchley Park_[1] for technical history.
The autobiography of Leo Marks: _Between Silk & Cyanide_[2] was a good (although I suspect quite heavily dramatised & exaggerated) read about the more human elements and flaws of pen & paper crypto used by the allied resistance groups.
What's the threshold for being considered a programmer, really? For example, I don't consider myself one, even though I have created scripts in PowerShell and Bash.