Braised ox heart

I remember having heart as a child, and enjoying it, so when I came across it on the Wild Beef stall, I had to try it. (It is cheap, too: £4.50 for a heart which will feed two people easily, or four people if there are enough vegetables).

I was told that because it was good quality muscle meat one could just cut the heart into strips and fry it quickly. I didn’t try this, because it wasn’t how I remembered it and I wasn’t sure how well it would work. So here is what I did instead. I didn’t look up any recipes – I just guessed. So I may have made many mistakes, but the result was still very edible.

To prepare the heart: Cut it open and remove anything that is obviously not meaty. For instance, there are strong sinews holding the whole thing in shape, and there may also be tough linings to some of the blood vessels and heart valves. How much you remove depends on how sharp your knife is, how sharp your eyes are, and how confident you are. I removed quite a lot because I wasn’t very confident. I’ll take more care next time.

I also removed the layer of fat on the outside of the heart, but on reflection I think I needn’t have done that because the fat would have melted away during cooking. It was only a thin layer anyway.

Chop the meat into small pieces. I would guess that mine were a bit smaller than half-inch or one-centimetre cubes.


Heat the oven to 170°C.

Heat a small amount of oil in a frying pan. Put the meat into it and fry it until the outside of most of the cubes is brown. You are not trying to cook the meat, only seal it. A thick gravy will come out of the meat, which means that your frying will turn into boiling eventually. Don’t worry about that: it probably means that you have done enough frying and you can stop. Salt the meat a little when you are frying it, but not much, because not much salt is needed.

Put the meat into a casserole together with a 400g tin of chopped tomatoes (mine were “chopped tomatoes with garlic and olive oil”). I put the tomatoes in the casserole and heated it on the stove until the tomatoes were starting to boil, then added the meat. But equally you could add the tomatoes to the frying pan and turn up the heat until everything is at boiling point, and then pour it all into the casserole together.

Put the lid onto the casserole and put it into the oven. Set the timer for 70 minutes, and go to bed. In the morning, take it out and put it in the fridge. When you want to eat it, warm it up.

This means that in practice it will have cooked for a bit more than 70 minutes, because the oven will have taken time to cool down after it switched itself off. So for a daytime version of this recipe, you might say “80 minutes and take it out”, or “70 minutes and then have a look at it”.

A 19th-century cryptogram

On a wall in the cloister at Eichstätt, there is a funerary plaque:


The typography seems whimsical, which is why I took the picture. It reminded me of a 16th-century Latin book whose printer did not possess a lower-case italic W:


…and had to put a capital W into the name Chodkiewicz. But the capital letters D, I, V, C,… are not rare or exotic.

Hold on – they are also Roman numerals…

And indeed, if you add up the capital letters in the sentence that tells us that he died on the 24th of May, you get V+I+I+M+V+I+L+I+C+L+I+D+V+C+V, which adds up to 1825, which is the year in which Peter Pustett died. And if you try the same exercise on the sentence which says that he was ordained bishop on the 3rd of October, you get 1824.

100% chance

On the 29th of April 2016 The Times published the following article:


A cynical scientist would immediately say that this is the usual fallacy at work: collect data, find a correlation, and then assume that causation works in the direction that gets you more citations, more press coverage, better headlines and bigger research grants. After all (he would say) what is more reasonable than that the sort of person who is too feeble to cope with life and retires early to relieve the strain is also the sort of person who will die sooner than the rest of us?

In this case the scientist would be wrong. The lie here is much more obvious than that.

What chance does the Editor of The Times have of dying? It does not take a medical examination to prove that it is 100%.

What chance do you have of dying? It is 100%.

I am also 100% certain to die.

What the Journal of Epidemiology and Community Health, as reported by The Times, is saying is that some people are different from us. They either have an 11% smaller chance of dying – 89% chance of death, 11% of living for ever – or an 11% greater chance, making them more than certain to die. Interesting, but also nonsensical.

The Times is a paper of record. What The Times says is true. When kings die, they do it in The Times.

With authority comes responsibility. This means not printing obvious nonsense. And in this case there is no excuse, because even the proverbial “Arts graduate intern” knows that death comes to us all. The only reason for publishing an article dominated by an obvious false statement – even if the article is a short one – is cynical contempt for the reader. Anything at all will do, as long as it fills the space.

Sundials on Pluto

How would a sundial work if we set one up on Pluto?

it sounds a whimsical question but it isn’t, because answering the question requires really understanding the bits of celestial mechanics we usually take for granted without thinking about them.

There is too much uncritical memorising in science today, and not enough thought. This two-part article is the antidote. It has beautiful pictures as well. (Part I, Part II).

App Transport Security: the truth and the trouble

Apple have introduced a new feature in iOS 9, called App Transport Security, which is meant to make your use of the Web more secure.

Many (perhaps most) app developers will have to turn App Transport Security off, which almost makes the whole thing pointless. We aren’t being evil: we are just trying to make our apps continue to work the way you want them to work.

Here is the explanation.

Why security is needed

The simplest way of reading a web page is that your computer sends a message to a server saying “give me this page” and the server replies with a message saying “here it is”, followed by the text of the page. The messages are in straightforward plain text that can be read by any human being with a silicon-contaminated mind: for instance, the message your browser sent when you asked to read this page started something like GET /2015/08/30/app-transport-security-the-truth-and-the-trouble/ ‎HTTP/1.1.

What man can read, man can intercept. A request goes from your computer (or phone) to the server through many other machines, and although we expect them to be programmed to do nothing more than pass things on, that doesn’t mean that they are. Someone running a wireless router in a café, or someone running a machine deep in the core of the Internet, could record everything you send and everything you receive. This does not just mean the pages you request, but any user names and passwords sent in the process of getting those pages.

What man can intercept, man can alter. A request to transfer money to Bob can be altered to a request to transfer money to Alice; and your bank statement, afterwards, can be altered so that the money still appears to have been sent not to Alice, but Bob.

And so the secure HTTPS protocol was born. It wraps the whole request-and-response transaction with encryption which makes it incomprehensible to whoever intercepts it and impossible to alter without making it unreadable.

HTTPS is unfortunately tied up with a whole bureaucracy of certificates and identity checking – not surprisingly, since a secure connection to your enemy pretending to be your friend would be just as bad as a secure connection to your friend that happened to be intercepted by your enemy. Not surprisingly, sites distributing wholly public information, such as news sites (and in my case, Universalis) see HTTPS as a nuisance without any very clear benefits.

Safe whether you want it or not

Apple’s latest step towards keeping the Internet private is called App Transport Security. It applies to iOS apps built for iOS 9. It means that (i) any request for a web page made by the app is translated to HTTPS automatically and (ii) the HTTPS encryption methods offered by the web server are checked to make sure that they are properly secure according to current thinking. If not – the request fails. The idea is that with millions of devices all demanding the highest fashionable levels of security, there will be pressure on web sites to live up to the security requirements.

Like forcing European economies to align by locking them all into the same currency, this is a brutal approach. In theory the pressure gets applied in the right place, and webmasters all over the world go through the tedious process of getting certificates and slowing down their servers by turning encryption on. In practice, a user will see that an app that used to be able to access a web site whose security settings don’t please apple suddenly fails to do so. Mostly, users will blame the app rather than the site (which still seems easily accessible in web browsers) and will discard the app and look for another. Sophisticated users will know better: they will recognise that it is the fault of the site not the app – but, wanting to access the site, will also discard the app and look for another. Just as with the euro, the pain falls in the wrong place and no change happens.

Unsafety by request

Of course, Apple did think of this. It is possible, in the setup of an app, to say “allow insecure connections to site X”, or even ”allow insecure connections everywhere”. This is intended to be temporary, covering the case where it hasn’t been possible to change a crucial server over to HTTPS.

Why Google want to compromise your security

Google have attracted some adverse publicity by recommending that app developers circumvent the security settings so that users can continue to be pestered by advertising – that is, by web pages they didn’t request and don’t want. They are saying this because some ad distributors aren’t using the proper security on their servers. The adverse publicity is at least half deserved, because, properly wielded, “nobody will see your ads” is a pretty solid incentive for an advertisement distributor to update its security. It would be a perfect example of the correct pressure being applied in the correct place.

Why we all have to compromise your security

At Universalis, we occasionally ask you to give us some of your money (but only if you want to). Like most sites, we don’t want to get involved in handling credit cards or keeping your details secure. We use Worldpay as a payment processor. When you decide that you want to pay us, we send your browser to the Worldpay payment page, saying ”We want £19.99 from this user”. Worldpay ask you for your details, check with your bank, and if everything is all right and the payment goes through, they send us a message saying ”This user has paid you £19.99”. We never know anything about your credit card and we have no information about you that needs to be kept confidential. Worldpay do get your details, of course, but they have specialist staff working full time on security. Online retailers who keep their customers’ credit card details regularly lose millions of them (and forget to tell anyone until pushed); Worldpay never have.

Of course Worldpay use HTTPS to protect all your details so that nobody can intercept them (or alter the payment request so that the amount is different from the amount you authorised, or goes to someone else). But this is the point where App Transport Security gets in the way of security.

  1. Fashionably secure: Worldpay use a form of encryption which does not provide what is called ”perfect forward secrecy”. Perfect forward secrecy means that if someone records lots of encrypted Worldpay transactions and later steals one of Worldpay’s secret keys, he still won’t be able to decrypt those transactions. Apple don’t like this: they want our transactions to be secure even if that happens. So App Transport Security blocks the communication with Worldpay. That, in theory, puts the pressure on Worldpay. Indeed, I have raised a technical support request about perfect forward secrecy with Worldpay, and the right people are looking at it there. But until Worldpay do change their encryption methods, the pressure is not on Worldpay but on Universalis. The only thing I can do is to turn off App Transport Security if I want to keep my customers and keep getting money from them.
  2. Links to links to links: Let’s suppose that Worldpay have made their move and added perfect forward secrecy by the time you read this. My troubles are not over, because more often than not, you don’t make a payment just by using the Worldpay site. If your bank operates Verified by Visa or the MasterCard equivalent, at a given point you may be kicked over from Worldpay to a site operated on behalf of your bank which asks you to confirm your identity by entering a few letters of a password agreed with your bank. It’s meant to make you more secure by confirming with your bank a secret that even Worldpay don’t see.
    The bank’s site is an HTTPS site, obviously. It isn’t Worldpay’s site and I can’t tell in advance whose site it is. It’s pretty certain that at least some banks won’t be doing HTTPS in a way secure enough to satisfy Apple. So at that point (if I’ve left App Transport Security on), after letting Worldpay gather all your details my app will suddenly fail to go further through the process. You will get an error message. What happens then? You can’t pay us, even though you want to. You are faced with a confusing error in the middle of an already confusing transaction: you don’t even know if the payment has gone through or not. You won’t think that this is some deep-down technical disagreement about encryption methods, you will think it is a fraud – we all know that the Internet is out to cheat us. You will give up trying to pay. The only thing I can do is to turn off App Transport Security if I want my customers to be able to make payments and not panic.

Although App Transport Security is a good thing, in practice, for really sensitive applications such as web payments, the only safe thing to do with it is to turn it off.

The way forward

Apple are not fools. They want people to wear seat belts for their own safety, and they know that if your seat belt stops you from reaching the gear lever, you won’t use it. I am confident that once there really are millions of users using (or potentially using) App Transport Security, they will turn from the technical business of implementing it to the business business of making it unnecessary for developers to turn it off.

Fashionably secure: This is the easy part. Once ATS is out there and really exists and has to be dealt with, the operators of payment sites will all make sure that their encryption methods conform to current fashion. Moreover, for us application developers, it is easy to check. Turn ATS on, try making one payment, and if the Worldpay payment page appears, everything is all right.

Links to links to links: For now, what a developer needs to do is to say “Allow insecure connections” and also “For Worldpay, insist on secure connections”. As soon as Worldpay tell us they have perfect forward secrecy, this is what we will do. It’s a slightly awkward fiddle, but it works.

The next step is for Apple to take. For example, they could allow us as developers to say “Don’t worry about security if a site has been reached through a Worldpay link” – on the ground that Worldpay will only be linking to sites that Worldpay trust. That way, if some minor bank has not updated its systems, its payment confirmation page can still appear.

The real technical solution would be, every time this happens, for the operator of the site to receive a notification saying ”Your security is outmoded, please update it”. But then we run into interesting questions of privacy, because Apple don’t know (at present) what sites we are visiting, and they quite rightly don’t want to know.

All in all, the interesting technical part of App Transport Security has been done, but that is just the beginning of the really interesting part.

Beef mince

This is how I do mince.

900g minced beef (if there is a choice between coarse-ground and fine-ground mince, choose the coarse)

2 medium-large onions (I use red onions but white ones will work too)

30g dried wild mushrooms (mixed wild mushrooms, porcini mushrooms, or whatever you can find)

Start by soaking the dried mushrooms in a jug or bowl. I use hot water, just enough of it to cover the mushrooms. I leave them to soak for about an hour. Once they have been soaked, take them out of the jug and cut them into smallish pieces. They are going to go into the mince, and people won’t want to find a huge bit of fungus on their plate. Keep the liquid from the mushrooms because it’s important.

Peel the onions and chop them finely. Fry them lightly (on oil or butter, you choose) until they go soft. They will turn slightly translucent at the same time. For best results, don’t use a very high heat, and salt them lightly because that seems to help the process.

Put the onions and mushrooms into a bowl.

Fry the minced beef. I do this in two 450g instalments.  The aim is to turn it from a pink lump


into separate, brownish-grey grains.

Fry on a little oil or fat, not butter. With a wooden or plastic spatula, chop the lump into smaller lumps and turn them over


As you carry on doing this, you will get more grey-brown and less pink until there is no pink left at all. At the same time some liquid will come out of the meat, so that it seems to be boiling rather than frying. Don’t worry about this but turn up the heat a little bit and carry on chopping and turning over. When the water has evaporated and the mince is all the same colour, turn off the gas, and tip everything from the frying pan into the casserole:


If you taste a bit of it at this stage, it will feel like rubber and taste like it a little bit, as well. Don’t worry.

Put some more oil into the frying pan and do the second lot of minced beef in the same way as the first. Put it into the casserole.

Take the onions and mushrooms from the bowl and put them into the casserole as well.

You can add some spices at this stage. I use juniper berries, crushed with the side of a knife:


Juniper is very good with pork, but I like it with beef as well.

Some people add peppercorns, also slightly crushed, but I think it’s so discouraging when you’re eating mince and crunch a peppercorn by mistake, so I add some ground pepper instead. If I have bay leaves, I put in a couple, and in winter I also like to add some warming spices. This time I’ve used powdered cloves – they are very aromatic, so I use about half a level teaspoonful: no more.

The one thing left to add is the liquid from the mushrooms. I heat it up and dissolve a stock cube in it (I use the Kallo organic chicken ones, because they are not too salty – not the low-salt ones, though, because they taste of nothing).

When you have poured the liquid into the casserole and mixed everything up nicely, it will look something like this.


Put it into the oven (which you turned on some time ago) at 200˚ for 30 minutes. Leave the lid of the casserole off.

At the end of this time the mince will have browned a bit on top. The liquid may have reduced a little bit, but the onions give off liquid of their own, so don’t worry if it all still looks wet.

Put the lid on, and put it back into the oven. Reduce the heat to 160˚ and let it cook for 2 hours.

At the end of this time, the mince should be a decent shade of brown and it should be moist but not drowning in liquid. If it seems too wet then I give it a stir, raise the heat to 200˚, and put it back in the oven without the lid, making sure to look at it and stir it every 10 minutes, so that it doesn’t burn.

Removing the fat

Minced beef isn’t usually very fatty, but just in case, what I do is this:

1. Push all the mince to one side of the casserole.

2. Tip the casserole so that the liquid flows away from the mince.


3. Put the lid back on.

4. Leave it to cool for a few hours. I usually leave it overnight.

5. Put it in the fridge for a bit.

6. With a spatula or something, gently scrape the solidified fat off the liquid (which has now turned into a jelly).

7 Warm it all up and mix the liquid back together with the mince. I do this in the oven but if you have the sort of casserole that can be put on the stove, you can boil it up on the stove and mix it together there.

Final seasoning

Now it’s all been cooked, and is hot, it’s time to check the seasoning. It probably needs more salt, because the stock cube at the very beginning wasn’t very salty. Taste it and see, but remember that you probably need very little extra salt. You can’t take it out after you’ve put it in!

Let it cool, put most of it into boxes which you will freeze for later, but keep some to eat now.

While you are transferring the mince, try to get the bay leaves out because they have sharp edges and are not good to eat.



Reading emails scrambled by Eudora

Eudora is the best email program there is, but it is dead. Being dead, it cannot be upgraded to display messages with international characters in them. “Saumon fumé” is displayed as “Saumon fumé”, but “Wędzony łosoś” is displayed as “WÄ™dzony Å‚osoÅ›”.

If you get such a scrambled email, here are two ways of reading it.

On the web

Visit this converter page and copy and paste the received email into it.

On your computer (Windows)

  1. Open Notepad. (If you can’t see an icon for it, hold down the Windows key, press R, and then type notepad into the box).
  2. Paste the received email into it.
  3. Go back to the beginning of the email, and post the following three characters into it, with no spaces between them: ï»¿
  4. Save the document. In the “Encoding” box in the Save window, make sure “ANSI” is selected.
  5. Close Notepad.
  6. Open the saved document. It will now be readable.



A ridiculous puzzle: the end

To recapitulate: I think of two numbers greater than 1. I add them together and give them to Anna. I multiply them together and give them to Mark. Anna and Mark are perfect logicians and perfectly truthful. They have a conversation together about whether they know the numbers I thought of or not.

In Round 1, Mark spoke. He said whether or not he knew what numbers I had thought of (or, equivalently, what Anna’s total was). In Round 2, Anna spoke. In Round 3, Mark spoke. In Round 4, Anna spoke. In Round 5, Marl spoke. In Round 6, Anna spoke. Here is the chart showing what my numbers could be and what Mark’s and Anna’s answer would be in each case. M means that Mark says ‘I know’, A means that Anna says ‘I know’. A dot indicates a ‘don’t know’.

2 3 4 5 6 7 8 9 10 11
2 MA MA M.. MA ..MA MA ….MA ….. ….. MA
3 MA M. .AM MA ….. M. ….. M. ….. M.
4 M. .AM …AM ….. …..A ….. ….. ….. ….. …..
5 MA MA ….. M. ….. M. ….. ….. ….. M.
6 ..MA ….. …..A ….. ….. ….. ….. ….. ….. …..
7 MA M. ….. M. ….. M. ….. ….. ….. M.
8 ….MA ….. ….. ….. ….. ….. ….. ….. ….. …..
9 ….. M. ….. ….. ….. ….. ….. ….. ….. …..
10 ….. ….. ….. ….. ….. ….. ….. ….. ….. …..
11 MA M. ….. M. ….. M. ….. ….. ….. M.

Now it is Mark’s turn again.

Considering the numbers Mark doesn’t yet know the answer to, the only interesting case is if Mark sees 24. 24 can be 2×12 or 3×8 or 4×6.

  1. If the numbers are 2 and 12 then Anna will never have said ‘I know’. (This is not visible in the table, which would have to be drawn bigger to show it).
  2. If the numbers are 3 and 8 then Anna will never have said ‘I know’.
  3. If the numbers are 4 and 6 then Anna will just have said ‘I know’.

If Anna has just said ‘I know’, then Mark can deduce that the numbers are 4 and 6. But if Anna has just said ‘I don’t know’, then Mark can deduce nothing at all, because the numbers could be 2 and 12 or 3 and 8.

Mark can deduce nothing new from Anna’s saying ‘I don’t know’, so the game is at an end.

A ridiculous puzzle: Round 6

To recapitulate: I think of two numbers greater than 1. I add them together and give them to Anna. I multiply them together and give them to Mark. Anna and Mark are perfect logicians and perfectly truthful. They have a conversation together about whether they know the numbers I thought of or not.

In Round 1, Mark spoke. He said whether or not he knew what numbers I had thought of (or, equivalently, what Anna’s total was). In Round 2, Anna spoke. In Round 3, Mark spoke. In Round 4, Anna spoke. In Round 5, Marl spoke. Here is the chart showing what my numbers could be and what Mark’s and Anna’s answer would be in each case. M means that Mark says ‘I know’, A means that Anna says ‘I know’. A dot indicates a ‘don’t know’.

2 3 4 5 6 7 8 9 10 11
2 MA MA M.. MA ..MA MA ….M ….. ….. MA
3 MA M. .AM MA ….. M. ….. M. ….. M.
4 M. .AM …AM ….. ….. ….. ….. ….. ….. …..
5 MA MA ….. M. ….. M. ….. ….. ….. M.
6 ..MA ….. ….. ….. ….. ….. ….. ….. ….. …..
7 MA M. ….. M. ….. M. ….. ….. ….. M.
8 ….M ….. ….. ….. ….. ….. ….. ….. ….. …..
9 ….. M. ….. ….. ….. ….. ….. ….. ….. …..
10 ….. ….. ….. ….. ….. ….. ….. ….. ….. …..
11 MA M. ….. M. ….. M. ….. ….. ….. M.

Now it is Anna’s turn again.

Considering the numbers Anna doesn’t yet know the answer to, the only interesting case is if Anna sees 10. 10 can be 2+8 or 3+7 or 4+6 or 5+5.

  1. If the numbers are 2 and 8 then Mark will just have said ‘I know’.
  2. If the numbers are 3 and 7 then Mark will have said ‘I know’ a long time ago.
  3. If the numbers are 4 and 6 then Mark will never have said ‘I know’.
  4. If the numbers are 5 and 5 then Mark will have said ‘I know’ a long time ago.

In both cases 1 and 3, Anna can now deduce the answer (in cases 2 and 4, she still can’t). Here is the new chart:

2 3 4 5 6 7 8 9 10 11
2 MA MA M.. MA ..MA MA ….MA ….. ….. MA
3 MA M. .AM MA ….. M. ….. M. ….. M.
4 M. .AM …AM ….. …..A ….. ….. ….. ….. …..
5 MA MA ….. M. ….. M. ….. ….. ….. M.
6 ..MA ….. …..A ….. ….. ….. ….. ….. ….. …..
7 MA M. ….. M. ….. M. ….. ….. ….. M.
8 ….MA ….. ….. ….. ….. ….. ….. ….. ….. …..
9 ….. M. ….. ….. ….. ….. ….. ….. ….. …..
10 ….. ….. ….. ….. ….. ….. ….. ….. ….. …..
11 MA M. ….. M. ….. M. ….. ….. ….. M.

So we have the fifth interesting answer in the game.

Mark: Don’t know; Anna: I don’t know; Mark: I don’t know; Anna: I don’t know; Mark: I don’t know; Anna: I know – can only mean that the numbers are 4 and 6. Mark’s number is 24 and Anna’s number is 10.

Next, it is Mark’s turn. Now that he has heard what Ann has said, we shall see what he can deduce.