Skip to main content

Posts

Showing posts from February, 2012

How to break the 'rapper code'

The Mirror has a story about a code sent by a prisoner that revealed a bribery plot. The code was apparently broken by a professional code breaker. Looking at the picture in the article I figured I'd have a go.

It's actually a pretty easy code. The first step was to transcribe the code so I could play with it and then do a simple frequency analysis. Lo and behold it looks like it's a substitution cipher. The top six most frequent numbers are:
Number Frequency 10 0.101243339253996 5 0.0959147424511545 27 0.0852575488454707 8 0.0746003552397869 3 0.0728241563055062 16 0.0603907637655417 25 0.0532859680284192 and there's a steep drop off that looks just like the pattern you'd see in English. So those first few numbers likely match the most common letters in English: ETAION. So a quick substitution in that order reveals:
... ... ..NO .O. IE . .. .N..T ..TEIT ..NA ..I. I... AE.T . .E.O . E .TT. .E AEI. OI A. .T ....O…

Programmer

Recently, I joined a new company called CloudFlare where I was asked to pick a job title. I decided to go with Programmer. It was the first job title I ever had:

(Notice how at my first job there was no email address, but there was one for Telex.)

I choose Programmer for both its simplicity and accuracy. I am working as a programmer helping to speed up and protect web sites, and other programming-related job titles seem overblown. Software Engineer always seems like an overly grand way of saying the same thing. And I'm certainly not a Computer Scientist.

Fundamentally, I make computers do what I want them to do.

Of course, people like to come up with grand titles. I once had the stupid title of Chief Architect. And there's a whole variety of Lead Engineer, Principal Engineer, etc. This is partly done so that in large companies people of different seniorities are distinguished and partly so that people feel important.

It might seem lowly to be a Programmer, but in a wo…

Mobile subscriber leakage in HTTP headers in the wild

At the end of January mobile phone company O2 admitted that because of a technical failure it had been leaking the mobile phone numbers of people who browsed using their phones on the O2 network. The phone numbers were being leaked to the web sites people visited.

On that day I set up logging on jgc.org to see if the same thing happened again, and to gather information on in the wild leakage of phone numbers in HTTP headers. The bottom line is that in a month of gathering data I've seen phone numbers sent to my server likely without the person browsing knowing.

The most common headers I've seen are MSISDN and X-MSISDN. Both seem to contain the phone's MSISDN (i.e number). About 1 in every 22,000 visits to the site had the MSISDN header in it with something that looked like a valid phone number.

Another common header was X-UP-SUBNO which AT&T apparently adds. This contains a unique identifier for the subscriber. A typical X-UP-SUBNO in my log files looks like: T_I…

The Case for Open Computer Programs

A few moments ago Nature made public a paper that I've written with two co-authors: Professor Darrel Ince and Professor Les Hatton entitled The Case for Open Computer Programs. The paper argues for the routine release of source code for software used in generating results presented in scientific papers.

Here's the abstract:
Scientific communication has always relied on evidence that cannot be included in publications. But the rise of computational science has added a vast new layer of too often inaccessible data sets and computer programs. Research journals are now coping with the issue of reproducibility of computationally derived results, and while it is generally accepted that all data should be made available upon request, the current landscape of regulations regarding the openness of computer programs remains muddled. Here we argue that, with some exceptions, anything less than release of the actual source programs used is intolerable for any scientific results that depen…

Alan Turing's reading list (with readable links)

Alex Bellos published a list of books that Alan Turing took out from the school library as a child. I've tracked down as many as possible should you wish to follow his reading.

1. Isotopes by Frederick William Aston (1922 edition).

2. Mathematical Recreations and Essays by W. W. Rouse Ball

3. Alice's Adventures in Wonderland, Game of Logic and Through The Looking Glass by Lewis Carroll.

4. The Common Sense of the Exact Sciences by William Kingdon Clifford.

5. Space, Time and Gravitation and The Nature of the Physical World by Sir Arthur Stanley Eddington.

6. Sidelights on Einstein by Albert Einstein.

7. The Escaping Club by A. J. Evans.

8. The New Physics by Arthur Haas.

9. Supply and Demand by Hubert D. Henderson.

10. Atoms and Rays and Phases of Modern Science by Sir Oliver Lodge.

11. Matter and Motion by James Clerk Maxwell.

12. The Theory of Heat by Thomas Preston.

13. Modern Chromatics, with applications to art and industry by Ogden Nicholas Rood.

14. Celestial Objects …

So much for Google's Privacy Settings

Just the other day I deleted most of my online accounts and I set my Google Profile to "not visible in search":

And there on page 3 of Google search results for "John Graham-Cumming" what do we find:

Why, it's a Google+ profile (which I explicitly set to not appear in search results) for a Google+ account that I deleted. Clicking through we discover there's almost no information (because I deleted it), except for the totally brain dead:

Because it's not possible to not show your gender.

It looks like telling Google to not show my profile in search results was useless, the only option was to totally delete it which I have now done.

My foxhole radio

As a child I'd made a crystal radio set and had been meaning to make one again when I came across stories of foxhole or PoW radios made from scavenged parts. These were made during the Second World War (and other wars) from copper wire from a broken motor or alternator and anything from which a diode could be fashioned.

So, I decided to give it a go. Here's my foxhole radio. It's made from: a toilet roll tube, some copper wire, a blue steel razor blade, the tip of a pencil, a piece of coat hanger and an earpiece. Connected to ground and a long wire antenna in the garden it works... just. (PoW's seem to have used the barbed wire of the prisons they were held in as antennas, I used a long piece of bell wire).

The components are:

1. A coil of enameled copper wire wound about 100 times around a toilet roll tube. I used 22 SWG wire.

2. A tuning arm made from a piece of coat hanger than can sweep across the coil to find radio stations. The coil's actual copper is exp…

UK Government declines to pardon Alan Turing

There's been a petition to the government and an Early Day Motion asking for Alan Turing to be pardoned. This is something I oppose despite having been behind the 2009 Alan Turing apology campaign.

Last, Thursday, February 2, the Liberal Democrat Peer Lord Sharkeyasked in the House of Lords: "To ask Her Majesty's Government whether they will consider granting a posthumous pardon to Alan Turing."

A government minister, Lord McNally, responded for the government declining to pardon Turing:
The question of granting a posthumous pardon to Mr Turing was considered by the previous Government in 2009.

As a result of the previous campaign, the then Prime Minister Gordon Brown issued an unequivocal posthumous apology to Mr Turing on behalf of the Government, describing his treatment as "horrifying" and "utterly unfair". Mr Brown said the country owed him a huge debt. This apology was also shown at the end of the Channel 4 documentary celebrating Mr Turing&…

Long range WiFi antenna from Illy coffee can

I have a stack of half finished projects that I'm trying to complete. Happily, the first one was finished late last night: a long range WiFi antenna made using an empty coffee can. Working from the ideas here I made an antenna from the following:

1. An empty 250g Illy Espresso ground coffee can

2. A Type N bulkhead socket and a Type N plug

3. A piece of WiFi antenna extension cable with a reverse SMA connector on the end.

4. A short piece of coat hanger for the active element of the antenna

Here's a shot inside the can showing the antenna element and the Type H bulkhead socket screwed into place. I simply drilled five holes in the can using a HSS drill.

And from the outside:

The active part of the antenna is made by soldering a piece of coat hanger into the Type N bulkhead connector.

For testing I'm using a USB WiFi adapter that has a reverse SMA connector on the side:

The cable was pretty simple to make, all that was needed was connecting the Type N connector on one e…