Archive for the ‘Eventos’ Category

10˚ Encontro Locaweb – Problema 2

Ae, esse eu resolvi e ganhei os ingressos :D , está lá em Problema 2.

O problema era: Onde fica isso?

67 7A 69 70 3A 1F 8B 08 08 D0 11 1B 48 02 FF 65 00 CB 28 29 29 B0 D2 D7 CF 4D 2C 28 D6 4B CF CF 4F CF 49 D5 4B CE CF D5 4B 2A 02 0B D9 E7 E4 D8 EA 1A 19 E9 59 1A 1A 99 9B 98 EA E8 9A 18 EB 19 19 98 19 1B 02 00 29 22 3E 34 36 00 00 00

Primeiro chute de qualquer um, isso são bytes em hexadecimal. Mas não podia ser apenas uma string, dava pra perceber pelos 3 últimos bytes 0. Mas como não conhecia nenhum arquivo que o magic number começava com 67, era a primeira opção. E como estava com o Eclipse com as ferramentas de Java aberto, fui logo para o código (mas devia ter considerado usar uma linguagem de script, Groovy por exemplo seria mais adequado).

Primeira tentativa:

class Problem2 {
    public static void main(String[] args) {
        String[] input="67 7A 69 70 3A 1F 8B 08 08 D0 11 1B 48 02 FF 65 00 CB 28 29 29 B0 D2 D7 CF 4D 2C 28 D6 4B CF CF 4F CF 49 D5 4B CE CF D5 4B 2A 02 0B D9 E7 E4 D8 EA 1A 19 E9 59 1A 1A 99 9B 98 EA E8 9A 18 EB 19 19 98 19 1B 02 00 29 22 3E 34 36 00 00 00".split(" ");
        byte[] output=new byte[input.length];

        for (int i = 0; i < input.length; i++) {
            output[i] = (byte)Integer.parseInt(input[i], 16);
            System.out.print((char)output[i]);
        }
    }
}

E como resultado:

gzip:??H?e … e alguns caracteres não representáveis.

Mas o gzip era a dica que eu precisava, então vamos para …

Segunda tentativa:

import java.io.ByteArrayInputStream;
import java.util.zip.GZIPInputStream;

class Problem2 {
	public static void main(String[] args) throws Exception {
		String[] input = "67 7A 69 70 3A 1F 8B 08 08 D0 11 1B 48 02 FF 65 00 CB 28 29 29 B0 D2 D7 CF 4D 2C 28 D6 4B CF CF 4F CF 49 D5 4B CE CF D5 4B 2A 02 0B D9 E7 E4 D8 EA 1A 19 E9 59 1A 1A 99 9B 98 EA E8 9A 18 EB 19 19 98 19 1B 02 00 29 22 3E 34 36 00 00 00"
				.split(" ");
		byte[] byteRepresentation = new byte[input.length];
		byte[] output = new byte[input.length];
		for (int i = 0; i < input.length; i++) {
			byteRepresentation[i] = (byte) Integer.parseInt(input[i], 16);
		}

		GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(byteRepresentation));
		gis.read(output);

		for (int i = 0; i < output.length; i++) {
			System.out.print((char)output[i]);
		}
		gis.close();
	}
}

E o resultado foi:

Exception in thread "main" java.io.IOException: Not in GZIP format
	at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:137)
	at java.util.zip.GZIPInputStream.(GZIPInputStream.java:58)
	at java.util.zip.GZIPInputStream.(GZIPInputStream.java:68)
	at Problem2.main(a.java:14)

Droga, não funcionou o gzip, pesquisando um pouco vi que o gzip do começo não era nem header nem magic number do formato, então resolvi tirar esse pedaço e fui para a …

Terceira tentativa:

import java.io.ByteArrayInputStream;
import java.util.zip.GZIPInputStream;

class Problem2 {
	public static void main(String[] args) throws Exception {
		// Tirei os 5 primeiros bytes
		String[] input = "1F 8B 08 08 D0 11 1B 48 02 FF 65 00 CB 28 29 29 B0 D2 D7 CF 4D 2C 28 D6 4B CF CF 4F CF 49 D5 4B CE CF D5 4B 2A 02 0B D9 E7 E4 D8 EA 1A 19 E9 59 1A 1A 99 9B 98 EA E8 9A 18 EB 19 19 98 19 1B 02 00 29 22 3E 34 36 00 00 00"
				.split(" ");
		byte[] byteRepresentation = new byte[input.length];
		byte[] output = new byte[input.length];
		for (int i = 0; i < input.length; i++) {
			byteRepresentation[i] = (byte) Integer.parseInt(input[i], 16);
		}

		GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(byteRepresentation));
		gis.read(output);

		for (int i = 0; i < output.length; i++) {
			System.out.print((char)output[i]);
		}
		gis.close();
	}
}

E agora, finalmente.

http://maps.google.com.br/maps?ll=-22.912745,-43.20631

Onde era isso? Meu primeiro impulso foi responder, estação do metrô Estácio, mas em tempo lembrei que tinha um centro de convenções lá perto. E assim ganhei os ingressos.

10˚ Encontro Locaweb – Problema 1

A descrição do problema está em: Problema 1. Esse eu sinceramente não consegui resolver, e só fui entender o problema quando eu vi a solução, afinal, o que quer dizer

Eve solved a blew cocoon endorsed rent

Nada, afinal é um anagrama. Não consegui resolver esse, e nem lembrar o filme que tinha um monte de anagramas, acho que era “O bebê de Rosemary”, tenho que verificar no google, hehe.

10˚ Encontro Locaweb – Parte 1

Como, achei muito interessante a iniciativa do portal Tableless, que deu ingressos para o ELPI (que eu acabei ganhando um deles), resolvi comentar e explicar cada uma dos problemas para os ingressos do Rio de Janeiro.

Além disso nos próximos post um comentário sobre o que eu achei de cada uma das palestras.