I have always loved programming - its like Lego without gravity.

Basic on my ZX81 graduating to assembler and Turbo Pascal during my teens.

Developed phone OS software - engineer, architect, product manager - but got made irrelevant by the iPhone and redundant by Android.

These days I mostly work with data, big data and fitting big data onto small boxes.

Enigma in a spreadsheet!

Back in the summer of 2009 a friend of mine read a few of my books covering cryptography.

This is his interpretation of the Enigma cipher machine; the distillation of a mental model he formed from reading those popular-science treatments of the machine.

He is not a programmer or anything but he just proved his aptitude; and he’s super-leet at Excel too!

I think we can all agree this is programming, even when done by someone who is not a professional programmer and who has no formal programming education.

When I asked him if I could post his old Enigma spreadsheet, he was skeptical that anyone would be interested.  Outside the programming world, normal people think making complicated spreadsheets in their spare time is creepy and to be suppressed ;)

Now the Internet is awash with Engima machines in Flash applets and such; none seem to agree with any other, and this spreadsheet is no exception to that.  So it would be most unlikely this is a truly accurate representation of the real machine.

However, my friend is a good visual learner; I think if we could just get him to Bletchley Park he’d refine and fix his mental model and build a better, more correct spreadsheet :)

I figure we all just have to give him encouragement - comments and code review and such - and get his appetite whetted for doing more of this computer type of thing!  So if you enjoy his work, please say

Download the spreadsheet here

Discussion on Hacker News and Reddit; saw it somewhere else?  please say :)

jump to ↓



performance
Faster searches with non-prefix fields in composite indices
Compressing MySQL databases
What highscalability.com says about Scaling my Server
Scaling my Server: follow-up
old classics
The kid's computer
Making the History of Worlds Religions map
If you defend those involved in the OpenGL ES specification, you are an idiot
Stackoverflow unwinding?
general
Why Swift?
Python annotations and type checking
pycon 2014 Sweden: the bad bits
Table-based Template Translation in C++
recreation
games programming
Perlin Noise
Perlin Noise
Drawing RTS maps fast
WillCity update
ludum-dare
Ludum Dare #35 Mosaic
LudumDare 33 wallpapers
SSIM vs MSE for Mosaics
Ludum Dare 30 results are in!