# The Techy

Your online source for tips, news, and more!

## How to solve Opera's April Fool challenge

Update: I just received the prize of the Opera April Fool challenge.

Update: The winners of this challenge can be viewed at http://my.opera.com/chooseopera/blog/2012/04/03/data-challenge-winners.

This is a detailed explanation of how to solve Opera's April Fool code challenge

# Stage 1

It is quite simple once you know how to do it. I did not have to use any software. I simply used the website http://home.paulschou.net/tools/xlate/

Step 1: Get the challenge by visiting http://www.opera.com/portal/getdata/ and entering your email. You would get the set of binary string, which is displayed below:
```00110000001110000011010000100000001100010011000000110100001000000011000000111001001101110010000000110001001100010011000000100000001100010011000000110111001000000011000000110011001100100010000000110001001100100011000100100000001100010011000100110001001000000011000100110001001101110010000000110000001100110011001000100000001100010011000000110010001000000011000100110001001100010010000000110001001100010011010000100000001100000011001100110010001000000011000100110000001101000010000000110001001100000011000100100000001100010011000000111000001000000011000100110001001100100010000000110001001100000011010100100000001100010011000100110000001000000011000100110000001100110010000000110000001100110011001000100000001100010011000100110111001000000011000100110001001101010010000000110000001100110011001000100000001100010011000100110001001000000011000100110001001101110010000000110001001100010011011000100000001100000011001100110011001000000011000000110011001100100010000000110000001110000011100100100!
0000011000100110001001100010010000000110001001100010011011100100000001100010011000100110100001000000011000000110011001100100010000000110001001100010011001000100000001100000011100100110111001000000011000100110001001101000010000000110001001100010011011000100000001100010011000000110101001000000011000000111001001110010010000000110001001100000011010100100000001100010011000100110010001000000011000000111001001101110010000000110001001100010011011000100000001100010011000000110101001000000011000100110001001100010010000000110001001100010011000000100000001100000011001100110010001000000011000100110000001101010010000000110001001100010011010100100000001100000011001100110010001000000011000000111001001110010010000000110001001100010011010000100000001100010011000100110111001000000011000000111001001110010010000000110001001100000011010100100000001100000011100100110111001000000011000100110000001110000010000000110000001100110011001000100000001100010011000000110010001000000011000100110001001100010!
01000000011000100110001001101000010000000110000001100110011001!
0001000000011000100110001001101100010000000110001001100000011010000100000001100010011000000110101001000000011000100110001001101010010000000110000001100110011001000100000001100000011011000110101001000000011000100110001001100100010000000110001001100010011010000100000001100010011000000110101001000000011000100110000001110000010000000110000001100110011001000100000001100010011000000110010001000000011000100110001001100010010000000110001001100010011000100100000001100010011000000111000001000000011000100110001001101010010000000110000001100110011001000100000001100010011000000110110001000000011000100110001001100010010000000110001001100000011011100100000001100010011000000110001001000000011000000110011001100100010000000110001001100010011011000100000001100010011000100110001001000000011000000110011001100100010000000110001001100010011100100100000001100010011000100110001001000000011000100110001001101000010000000110001001100000011011100100000001100000011010000110110001000000011000000110011001!
1001000100000001100000011100000110100001000000011000100110001001100010010000000110000001100110011001000100000001100010011000100110101001000000011000100110000001101000010000000110001001100010011000100100000001100010011000100111001001000000011000000110011001100100010000000110001001100010011000100100000001100010011000100110111001000000011000100110001001101000010000000110000001100110011001000100000001100000011100100110111001000000011000100110001001100100010000000110001001100010011001000100000001100010011000100110100001000000011000100110000001100010010000000110000001110010011100100100000001100010011000000110101001000000011000000111001001101110010000000110001001100010011011000100000001100010011000000110101001000000011000100110001001100010010000000110001001100010011000000100000001100000011010000110100001000000011000000110011001100100010000000110000001110010011011100100000001100010011000100110000001000000011000100110000001100000010000000110000001100110011001000100000001100000011100!
10011100100100000001100010011000100110001001000000011000100110001001100!
0000100000001100010011000100110110001000000011000100110000001101010010000000110001001100010011000000100000001100010011000100110111001000000011000100110000001100010010000000110000001100110011001000100000001100010011000000110000001000000011000100110001001100010010000000110001001100010011100100100000001100010011000100110000001000000011000000110011001100100010000000110001001100010011011000100000001100010011000000110100001000000011000100110000001100010010000000110000001100110011001000100000001100010011000000110000001000000011000000111001001101110010000000110001001100010011011000100000001100000011100100110111001000000011000000110011001100100010000000110001001100010011010100100000001100000011100100110111001000000011000100110001001110000010000000110001001100000011010100100000001100010011000100110000001000000011000100110000001100110010000000110001001100010011010100100000001100000011001100110010001000000011000100110001001101000010000000110001001100010011000100100000001100000011100100!
1101110010000000110001001100000011000000100000001100000011010000110100001000000011000000110011001100100010000000110001001100010011100100100000001100010011000000110001001000000011000000110011001110010010000000110001001100010011010000100000001100010011000000110001001000000011000000110011001100100010000000110001001100000011001100100000001100010011000000110101001000000011000100110001001110000010000000110001001100000011010100100000001100010011000100110000001000000011000100110000001100110010000000110000001100110011001000100000001100000011100100110111001000000011000100110001001110010010000000110000001110010011011100100000001100010011001000110001001000000011000000110011001100100010000000110001001100000011001000100000001100010011000000110101001000000011000100110001001110000010000000110001001100000011000100100000001100000011001100110010001000000011000100110000001100010010000000110001001100100011000000100000001100010011000100110110001000000011000100110000001100010010000000110001001100!
01001101000010000000110001001100010011000000100000001100000011100100110!
1110010000000110001001100000011100000100000001100000011001100110010001000000011000100110000001101000010000000110000001110010011011100100000001100010011000100110100001000000011000100110000001100000010000000110000001100110011001000100000001100010011000000110000001000000011000100110001001101000010000000110001001100000011010100100000001100010011000100111000001000000011000100110000001100010010000000110001001100010011010100100000001100000011001100110010001000000011000100110001001101100010000000110001001100010011000100100000001100000011001100110010001000000011000100110001001101010010000000110001001100010011000100100000001100010011000000111001001000000011000100110000001100010010000000110000001100110011001000100000001100010011000100110001001000000011000100110000001100100010000000110000001100110011001000100000001100010011000100110110001000000011000100110000001101000010000000110001001100000011000100100000001100000011001100110010001000000011000100110001001100100010000000110001001100000!
0110001001000000011000100110001001100010010000000110001001100010011001000100000001100010011000000111000001000000011000100110000001100010010000000110000001100110011001000100000001100010011000100110101001000000011000100110001001100010010000000110001001100000011100000100000001100010011000100111000001000000011000100110000001101010010000000110001001100010011000000100000001100010011000000110011001000000011000000110011001100100010000000110001001100010011011000100000001100010011000000110100001000000011000100110000001101010010000000110001001100010011010100100000001100000011001100110010001000000011000000111001001110010010000000110001001100010011000100100000001100010011000000110000001000000011000100110000001100010010000000110000001101000011011000100000001100000011001100110010001000000011000000111000001101000010000000110001001100010011000100100000001100000011001100110010001000000011000100110001001100100010000000110001001100010011010000100000001100010011000100110001001000000011000100110!
00100111000001000000011000100110000001100010010000000110000001100110011!
0010001000000011000100110001001101100010000000110001001100000011010000100000001100000011100100110111001000000011000100110001001101100010000000110000001100110011001000100000001100010011001000110001001000000011000100110001001100010010000000110001001100010011011100100000001100000011001100110010001000000011000100110001001101010010000000110001001100010011000100100000001100010011000000111000001000000011000100110001001110000010000000110001001100000011000100100000001100010011000000110000001000000011000000110011001100100010000000110001001100010011011000100000001100010011000000110100001000000011000100110000001100010010000000110000001100110011001000100000001100000011100100111001001000000011000100110001001100010010000000110001001100000011000000100000001100010011000000110001001000000011000000110100001101000010000000110000001100110011001000100000001100000011100100110111001000000011000100110001001100000010000000110001001100000011000000100000001100000011001100110010001000000011000100110001!
0011011000100000001100010011000100110001001000000011000000110011001100100010000000110000001110010011100000100000001100010011000000110001001000000011000000110011001100100010000000110001001100010011001100100000001100010011000100110111001000000011000000111001001101110010000000110001001100000011100000100000001100010011000000110101001000000011000100110000001100100010000000110001001100000011010100100000001100010011000000110001001000000011000100110000001100000010000000110000001100110011001000100000001100010011000000110010001000000011000100110001001100010010000000110001001100010011010000100000001100000011001100110010001000000011000100110001001101000010000000110001001100000011000100100000001100000011100100111001001000000011000100110000001100010010000000110001001100000011010100100000001100010011000100111000001000000011000100110000001101010010000000110001001100010011000000100000001100010011000000110011001000000011000000110011001100100010000000110000001110010011011100100000001100000011!
00110011001000100000001100010011000000110100001000000011000000111001001!
1011100100000001100010011000100110100001000000011000100110000001100000010000000110000001100110011001000100000001100010011000000110000001000000011000100110001001101000010000000110001001100000011010100100000001100010011000100111000001000000011000100110000001100010010000000110000001101000011010000100000001100000011001100110010001000000011000100110001001100100010000000110001001100000011100000100000001100010011000000110001001000000011000000111001001101110010000000110001001100010011010100100000001100010011000000110001001000000011000000110011001100100010000000110001001100010011011000100000001100010011000100111001001000000011000100110000001100010010000000110001001100000011000100100000001100010011000100110110001000000011000000110011001100100010000000110000001100110011010100100000001100010011000100110001001000000011000100110001001100100010000000110001001100000011000100100000001100010011000100110100001000000011000000111001001101110010000000110000001110010011011100100000001100010011000!
1001100100010000000110001001100010011010000100000001100010011000000110101001000000011000100110000001110000010000000110001001100000011001000100000001100010011000100110001001000000011000100110001001100010010000000110001001100000011100000100000001100010011000100110101001000000011000000110011001100100010000000110000001110010011100000100000001100010011000000110001001000000011000100110000001100100010000000110001001100010011000100100000001100010011000100110100001000000011000100110000001100010010000000110000001100110011001000100000001100000011011000110101001000000011000100110001001100100010000000110001001100010011010000100000001100010011000000110101001000000011000100110000001110000010000000110000001100110011001000100000001100000011010100110000001000000011000100110001001100000010000000110001001100000011000000100000001100000011010000110110001000000011000000110001001100110010000000110000001100010011000000100000001100000011000100110011001000000011000000110001001100000010000000110000001!
10110001101010010000000110001001100000011001100100000001100000011100100!
1101110010000000110001001100000011010100100000001100010011000100110000001000000011000000110100001101000010000000110000001100110011001000100000001100010011000100110110001000000011000100110000001101000010000000110000001110010011011100100000001100010011000100110000001000000011000100110000001101110010000000110000001100110011001000100000001100010011001000110001001000000011000100110001001100010010000000110001001100010011011100100000001100000011001100110010001000000011000100110000001100100010000000110001001100010011000100100000001100010011000100110100001000000011000000110011001100100010000000110000001110010011100000100000001100010011000000110001001000000011000100110000001101010010000000110001001100010011000000100000001100010011000000110011001000000011000000110011001100100010000000110000001110010011011100100000001100010011000100111001001000000011000100110000001100010010000000110001001100010011010100100000001100010011000100110001001000000011000100110000001110010010000000110001001100!
0000110001001000000011000000110011001100100010000000110000001110010011011100100000001100010011000100110000001000000011000100110000001100000010000000110000001100110011001000100000001100010011000100110010001000000011000000111001001101110010000000110001001100010011010000100000001100010011000100110110001000000011000100110000001101010010000000110000001110010011100100100000001100010011000000110101001000000011000100110001001100100010000000110000001110010011011100100000001100010011000100110110001000000011000100110000001101010010000000110001001100010011000000100000001100010011000000110011001000000011000000110011001100110010000000110000001100010011001100100000001100000011000100110000001000000011000000110001001100110010000000110000001100010011000000100000001100000011100000110100001000000011000100110000001101000010000000110001001100000011000100100000001100000011001100110010001000000011000000110111001110010010000000110001001100010011001000100000001100010011000000110001001000000011000100!
11000100110100001000000011000000111001001101110010000000110000001100110!
011001000100000001100000011100000110100001000000011000100110000001100010010000000110000001110010011011100100000001100010011000000111001

01000010010110100110100000111001001100010100000101011001001001100101001101011001110111000101111101111010100011100000000000000000000110010101111110000000000000000001000001101000100001010111100000000000001010100100000000000100100000000011111111100111110111111110000000100000000000001000100100010001010011111101010000100001100001000001100100000011010000110100000001101000011010000011010101010011111100010001101000000100100110010001101000110010000000110110101001100000111101010010010100001111110001110101100101010111001110100100101000110011010001101001001101101011000000110001000110010100001110100001110100100001100011100100111101101101111100111110110110010100111010010011111100110100101101000110100000001010000000110110000001011010001101110110010011001111101011101100010001001000001101110010010111101001111001100010101110110011111110111000101110111000010110100000111101111100100010011101001110011001111100111011000001000000011111010010101000000100001101100111000111011101010001111100010010010!
0100100000011001100111001001000111101010111001000010100010101110011101011101001111110100000110101010011100001001000111110000110101101101101111110001101100000001001110101011110101110000000001000100111010110011000111000101000101111001000001010000010011001111010101011010101101011101001001110110100010010011100011101000000100010010101010001110110011011101011010101111110001011101110010010001010011100001010000100100001101110001011111011110101000111000000
```

Step 2: Use the website use the website http://home.paulschou.net/tools/xlate/ to convert binary to text. Enter the above binary code (the 1's and 0's into the binary field of the website (the text box below the word "binary"). Doing that I got the following code:

```084 104 097 110 107 032 121 111 117 032 102 111 114 032 104 101 108 112 105 110 103 032 117 115 032 111 117 116 033 032 089 111 117 114 032 112 097 114 116 105 099 105 112 097 116 105 111 110 032 105 115 032 099 114 117 099 105 097 108 032 102 111 114 032 116 104 105 115 032 065 112 114 105 108 032 102 111 111 108 115 032 106 111 107 101 032 116 111 032 119 111 114 107 046 032 084 111 032 115 104 111 119 032 111 117 114 032 097 112 112 114 101 099 105 097 116 105 111 110 044 032 097 110 100 032 099 111 110 116 105 110 117 101 032 100 111 119 110 032 116 104 101 032 100 097 116 097 032 115 097 118 105 110 103 115 032 114 111 097 100 044 032 119 101 039 114 101 032 103 105 118 105 110 103 032 097 119 097 121 032 102 105 118 101 032 101 120 116 101 114 110 097 108 032 104 097 114 100 032 100 114 105 118 101 115 032 116 111 032 115 111 109 101 032 111 102 032 116 104 101 032 112 101 111 112 108 101 032 115 111 108 118 105 110 103 032 116 104 105 115 032 099 111 100 101 046 032 084 111 032 112 114 111 118 101 032 116 104 097 116 032 121 111 117 032 115 111 108 118 101 100 032 116 104 101 032 099 111 100 101 044 032 097 110 100 032 116 111 032 098 101 032 113 117 097 108 105 102 105 101 100 032 102 111 114 032 114 101 099 101 105 118 105 110 103 032 097 032 104 097 114 100 032 100 114 105 118 101 044 032 112 108 101 097 115 101 032 116 119 101 101 116 032 035 111 112 101 114 097 097 112 114 105 108 102 111 111 108 115 032 098 101 102 111 114 101 032 065 112 114 105 108 032 050 110 100 046 013 010 013 010 065 103 097 105 110 044 032 116 104 097 110 107 032 121 111 117 032 102 111 114 032 098 101 105 110 103 032 097 119 101 115 111 109 101 032 097 110 100 032 112 097 114 116 105 099 105 112 097 116 105 110 103 033 013 010 013 010 084 104 101 032 079 112 101 114 097 032 084 101 097 109BZh91AY&SYÜ_z�_�h�x*@�?çßà �OÔ!�C@hh5Sñ�2j`õ%ÇYW:J3F�k�:!�Omóí�é?4´h
`Z7dÏ®ÄH7%éæ+³û�¸Z|�Ó�ó°@}*6qÝGÄ�@Ìä�W!Es®� Õ8HøkmøØ	Õë�"u�â�È(&z­Zé;D�t�GfëWâîH§
�ïQÀ
```

Step 3: Delete the section after the words "Bzh." Basically plug the following code into the ASCII DEC / CHAR section of the website http://home.paulschou.net/tools/xlate/:

```084 104 097 110 107 032 121 111 117 032 102 111 114 032 104 101 108 112 105 110 103 032 117 115 032 111 117 116 033 032 089 111 117 114 032 112 097 114 116 105 099 105 112 097 116 105 111 110 032 105 115 032 099 114 117 099 105 097 108 032 102 111 114 032 116 104 105 115 032 065 112 114 105 108 032 102 111 111 108 115 032 106 111 107 101 032 116 111 032 119 111 114 107 046 032 084 111 032 115 104 111 119 032 111 117 114 032 097 112 112 114 101 099 105 097 116 105 111 110 044 032 097 110 100 032 099 111 110 116 105 110 117 101 032 100 111 119 110 032 116 104 101 032 100 097 116 097 032 115 097 118 105 110 103 115 032 114 111 097 100 044 032 119 101 039 114 101 032 103 105 118 105 110 103 032 097 119 097 121 032 102 105 118 101 032 101 120 116 101 114 110 097 108 032 104 097 114 100 032 100 114 105 118 101 115 032 116 111 032 115 111 109 101 032 111 102 032 116 104 101 032 112 101 111 112 108 101 032 115 111 108 118 105 110 103 032 116 104 105 115 032 099 111 100 101 046 032 084 111 032 112 114 111 118 101 032 116 104 097 116 032 121 111 117 032 115 111 108 118 101 100 032 116 104 101 032 099 111 100 101 044 032 097 110 100 032 116 111 032 098 101 032 113 117 097 108 105 102 105 101 100 032 102 111 114 032 114 101 099 101 105 118 105 110 103 032 097 032 104 097 114 100 032 100 114 105 118 101 044 032 112 108 101 097 115 101 032 116 119 101 101 116 032 035 111 112 101 114 097 097 112 114 105 108 102 111 111 108 115 032 098 101 102 111 114 101 032 065 112 114 105 108 032 050 110 100 046 013 010 013 010 065 103 097 105 110 044 032 116 104 097 110 107 032 121 111 117 032 102 111 114 032 098 101 105 110 103 032 097 119 101 115 111 109 101 032 097 110 100 032 112 097 114 116 105 099 105 112 097 116 105 110 103 033 013 010 013 010 084 104 101 032 079 112 101 114 097 032 084 101 097 109
```

Step 5: Doing so would produce the message:

Thank you for helping us out! Your participation is crucial for this April fools joke to work. To show our appreciation, and continue down the data savings road, we're giving away five external hard drives to some of the people solving this code. To prove that you solved the code, and to be qualified for receiving a hard drive, please tweet #operaaprilfools before April 2nd.

Again, thank you for being awesome and participating!

The Opera Team

# Stage 2

Step 1: Go to http://home.paulschou.net/tools/xlate/ and from the converted binary code, copy and paste the part after "Bzh" (the part that was discarded above):

```BZh91AY&SYÜ_z�_�h�x*@�?çßà �OÔ!�C@hh5Sñ�2j`õ%ÇYW:J3F�k�:!�Omóí�é?4´h
`Z7dÏ®ÄH7%éæ+³û�¸Z|�Ó�ó°@}*6qÝGÄ�@Ìä�W!Es®� Õ8HøkmøØ	Õë�"u�â�È(&z­Zé;D�t�GfëWâîH§
�ïQÀ
```

Step 2: Copy the result under the text field BASE64:

`QlpoOTFBWSZTWcOcX3rvv70ZX++/vRBo77+9eCpABO+/vT/Dp8Ofw6Ag77+9EU/DlCHvv70ZA0NAaGg1U8OxGgTvv70aMgNqYMO1JQ/Dh1lXOkozRu+/vWsDEe+/vTodIe+/vU9tw7PDre+/vcOpPzTCtGgNCgNgWjdkw4/CrsOESDclw6nDpivCs8O777+9wrhaD3zvv73Dk++/vcOzwrBAfSoENnHDnUfDhO+/vUDDjMOk77+9VyFFc8Ku77+9wqDDlThIw7hrbcO4w5gJw5XDq++/vSJ177+9w6Lvv73DiCgmesKtWsOpO0Tvv710CO+/vUdmw6tXw6LDrkjCpw0KEhvvv73Dr1HDgA==`

Then go to http://www.opinionatedgeek.com/dotnet/tools/base64decode/ and paste the base64 string and click "decode." When you save the file, click save as as shown.

In the resulting window type in something.bzip2 and select "all files" in the file type.

Note: I have blurred the content of the window to avoid showing the folders on my PC.

Step 3: After that go to http://wobzip.org/ and upload the bzip2 file. Then click on "download as zip." After downloading, extract the file to the desktop. Browse through the extracted folders until you come to a file with no extensions. The file would have the same name as the initial file you used for the conversion. In my case I use Test.bzip2, so I got the file name as "test."

Step 5: There is two way you can do this:

Step 5a (the geeky way): Open up Notepad or any text editors. Drag the file onto the Notepad window and you will get the message:

Wow, you're persistent and good! Tweet hashtag #operaaprilfoolleet to participate in the next level of l33thaxx0rs competition. Hurry up! Tweet must be out by April 3rd 2012 CET.

Microsoft Word or Wordpad (and possible other word processors) also works, but there is one extra step. First you have to launch the program and then press ctrl+O to launch the Open File dialog. Then select "all files" as shown:

How to open the file with Microsoft word. I have blurred the folder content here as well.

How to open the file with Wordpad. I have blurred the folder content here as well.

Step 5b (the easy way): Drag the file to your browser icon on the desktop (like the blue "e" for Internet Explorer or the red "O" for the Opera browser) and your browser will handle the file. You will get the same message as above. Note: I tested this method only with Internet Explorer and Opera so it may not work with other browsers. The above method (Step 5a) of opening it with Notepad or any text editors is sure to work!

To make it easier for people, I have attach the file to Opera. You can visit it at http://files.myopera.com/wikipedian/blog/test

Credit to Opera user Davide Mazzoleni for helping me solve Stage 2 of the challenge. He made me aware that there is a second part and pointed me to the right websites.