As someone who is supposed to know about these things, I'm sometimes asked to give talks about computing to non-technical audiences. The one thing I have learned from doing this is that if you want people to understand technological ideas then you have to speak to them in terms that resonate with their experience of everyday things.

It's obvious, I know, but it took me a while to get it. I can vividly remember the moment when the penny dropped. One of the ideas I was always trying to get across was why open-source software was important. The term "open source" is actually a euphemism for free software, coined because some advocates of free software thought that the U.S. corporate world would associate the word "free" with communism. The key thing about free software is not that you don't pay for it (because sometimes you do) but that you have the freedom to change it to meet your requirements — on condition that you pass on the same freedom to anyone who uses the modified software.

When I tried to explain the significance of this to my lay audiences, however, they invariably responded with blank stares. And then one day I realized what the problem was: None of them had ever written a program. So the next time I gave a talk I brought with me a copy of food author Delia Smith's great "Complete Cookery Course." I put up a slide showing her recipe for gratin dauphinois, one of the ingredients for which is 150 ml of double cream. "Now," I said, "double cream is not good for me, so I'd like to substitute single cream in the recipe. Can you imagine a world in which, if I wanted to do that, I would have to get Delia's written permission, and possibly pay her a fee? Wouldn't that be absurd?"