### Solving the SETI Decrypting Challenge

I spotted a challenge to decode a message received from a star 50 light years away. Well, at least a message that pretends to be from a star 50 light years away. The idea is if we were to receive a message like this would we be able to understand it.

The message is 1,902,341 binary digits. Clearly that needs chopping up in some way so I factored it and its prime factorization is 7 × 359 × 757. I suspected that the message was either an image or multiple images. After a bit of fiddling around (initially I thought it might be a single image made of 7 colours overlaid) it turned out to be 7 images of size 359 × 757.

The code I used to generate the images below is here.

The first image confirmed that we were going to see 7 images of size 359 × 757 as it has a horizontal white bar at the top spanning the width and a vertical column on the right giving the height. This first image is a sort of 'frame' indicating that correct way to view the images.

The second image has the number 0 to 756 encoded as binary (white is a 1, black is a 0) down the left hand side. Perhaps the alien is telling us that it will use binary encoding for all numbers.

The third image has another sequence of binary numbers. In this case these are the first 757 prime numbers. I'm not clear why the alien wanted us to know that other than telling us that they know about primes.

Each of the subsequent images has two binary numbers encoded in the first two rows (zoom into this image to see them).

The third fourth image shows a wave. The transmission was received on a frequency of 452.12919 MHz from a star/planet 50 light years away. Working on the assumption that this wave is meant to represent the transmission itself I guessed that the two binary numbers at the start represent a distance and a time period as a reference point.

The two numbers are

1100100111000000111001111110100000110000001010011100100000
00000000000000000000000000000000000000000000000000000000b = 16368191637088910834159098202685440

and

1111100110101110101100100000101010001101001000010000100000
0000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000b = 11677159761321922952849403009790256654968431476473856

I guessed that the first number represents (in some units that the alien uses) the wavelength of the transmission (66.31cm)  and that the second number was the time it would have taken the transmission to reach Earth (50 years). With those as a basis for distance and time measurements it's then able to calculate the other information requested.

The next image shows the alien itself with two binary numbers:

10111010010111011111011000100001110011010011000111100000000
000000000000000000000000000000000000000000000000000000000b
= 60479561273104168652304174731493376

and

111000001011011011010011011011111110010101101010100010000000
000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000b
= 42037775140758923161949049149211273119409177427443712

Assuming the first is the height of the alien then that would be

66.31 cm × 60479561273104168652304174731493376 / 16368191637088910834159098202685440

which is 245.01 cm. So the alien stands about 2.45m tall.

Assuming the second number is the lifespan of the alien was get

50 years × 42037775140758923161949049149211273119409177427443712 / 11677159761321922952849403009790256654968431476473856

That's 180 years. So perhaps this particular alien is 180 years old, or they generally live that long.

The next image shows what appears to be a large area covered in radio telescopes. I guess this is the source of the transmission. I'm pretty sure that this is actually a picture of the proposed Square Kilometre Array in Australia taken from Wikipedia.

Anyhow the two numbers are

11101000001001000100001110101010111000010001010101101
0000000000000000000000000000000000000000000000000
0000
0000000000000000000000000b
= 2468553521351190513386359178720371015680

and

1100001100010000011110110001100000111110010000011101
0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
0000000000000000000000000b = 2335431952264384665006648365913340213606881670994067456

Assuming the first is the size of the array then it's

66.31 cm × 2468553521351190513386359178720371015680 / 16368191637088910834159098202685440

which is 100km. So perhaps this is a square array 10km x 10km.

The second number might be how long they've been trying to talk to us.

50 years × 2335431952264384665006648365913340213606881670994067456 / 11677159761321922952849403009790256654968431476473856

which is 10,000 years. Sorry it took us so long to answer the phone.

Finally we get some information about where the alien lives. I think this depicts a very large planet with three moons (or perhaps it's a sun with three planets). The two numbers at the top are:

101010100011001111001001101000000101011011000101110
0100000000000000000000000000000000000000000000000
00
000000000000000000000000000000000000000000000000b
= 948909505053876287754040784031183263414353920

and

1101111100111011110001000101111011100110011111110110
00000000000000000000000000000000000000000000000000
00
0000000000000000000000000000000000000000000000000
000
00000000000000000000000000000000000000000000b = 1401259171358630776572575392119740616658474880694279974420480

Assuming the first number is a size of the solar system (or planet, perhaps) we get

66.31 cm × 948909505053876287754040784031183263414353920 / 16368191637088910834159098202685440

which is 3.8442×10^7 km (roughly 55 times larger than our sun). So I'm going to guess that might be the size of the sun that they are orbiting.

The other number might be how long their solar system has existed:

50 years × 1401259171358630776572575392119740616658474880694279974420480
11677159761321922952849403009790256654968431476473856

So, 6 billion years. Longer than our solar system has been around but not an unreasonable time frame.

### Your last name contains invalid characters

My last name is "Graham-Cumming". But here's a typical form response when I enter it: Does the web site have any idea how rude it is to claim that my last name contains invalid characters? Clearly not. What they actually meant is: our web site will not accept that hyphen in your last name. But do they say that? No, of course not. They decide to shove in my face the claim that there's something wrong with my name. There's nothing wrong with my name, just as there's nothing wrong with someone whose first name is Jean-Marie, or someone whose last name is O'Reilly. What is wrong is that way this is being handled. If the system can't cope with non-letters and spaces it needs to say that. How about the following error message: Our system is unable to process last names that contain non-letters, please replace them with spaces. Don't blame me for having a last name that your system doesn't like, whose fault is that? Saying "Your

### All the symmetrical watch faces (and code to generate them)

If you ever look at pictures of clocks and watches in advertising they are set to roughly 10:10 which is meant to be the most attractive (smiling!) position for the hands . They are actually set to 10:09.14 if the hands are truly symmetrical. CC BY 2.0 image by Shinji I wanted to know what all the possible symmetrical watch faces are and so I wrote some code using Processing. Here's the output (there's one watch face missing, 00:00 or 12:00, because it's very boring): The key to writing this is to figure out the relationship between the hour and minute hands when the watch face is symmetrical. In an hour the minute hand moves through 360° and the hour hand moves through 30° (12 hours are shown on the watch face and 360/12 = 30). The core loop inside the program is this:   for (int h = 0; h <= 12; h++) {     float m = (360-30*float(h))*2/13;     int s = round(60*(m-floor(m)));     int col = h%6;     int row = floor(h/6);     draw_clock((r+f)*(2*col+1), (r+f)*(row*2+1),

### The Elevator Button Problem

User interface design is hard. It's hard because people perceive apparently simple things very differently. For example, take a look at this interface to an elevator: From flickr Now imagine the following situation. You are on the third floor of this building and you wish to go to the tenth. The elevator is on the fifth floor and there's an indicator that tells you where it is. Which button do you press? Most people probably say: "press up" since they want to go up. Not long ago I watched someone do the opposite and questioned them about their behavior. They said: "well the elevator is on the fifth floor and I am on the third, so I want it to come down to me". Much can be learnt about the design of user interfaces by considering this, apparently, simple interface. If you think about the elevator button problem you'll find that something so simple has hidden depths. How do people learn about elevator calling? What's the right amount of