Category Archives: Geekalhadas

O enigma (parte 2 – resultados)

O primeiro postal chegou logo passados dois dias. Por obra do acaso estava na Suíça a visitar um dos amigos para quem tinha enviado um postal. Ele recebeu-o, achou-o estranho e perguntou-me imediatamente se tinha sido eu a envia-lo. Eu fiz a minha melhor cara de poker e disse com grande naturalidade que não, não tinha sido eu. Acho que ele não acreditou, tal como nunca ninguém acredita quando estou a bluffar no jogo, mas felizmente tive sucesso em mudar de conversa rapidamente.

Quando cheguei a casa verifiquei o meu correio e reparei que o meu postal tinha chegado. Enviar um postal para mim próprio tinha três fins:

  1. Controlar o tempo que os correios demorariam a enviar os postais
  2. Apoiar a minha história de que eu não tinha nada a ver com os postais (apesar de terem dizeres e selos alemães e o carimbo dos correios de Frankfurt)
  3. Salvar o sistema de correios alemão da bancarrota

Já na segunda-feira recebi uma mensagem da Mariana e do Viriato a dizerem que tinham recebido os postais. Eles perceberam imediatamente que eram um enigma e enviaram um mail a todos:

Que carago! Tal como já foi noticiado no Twitter, recebi um postal vindo da Alemanha – ou seja, do Cachapa ou do Aires – com um endereço do geocities, mas que o Yahoo diz não estar atribuído.

http://geocities.com/questao_1/a.html

Isto se contarmos que o ponto de interrogação é para ser substituído pela letra “a” que vem mais abaixo. De qualquer forma tentei os termos question, pergunta, mark, e answer, já que aquele podia ser o artigo indefinido para “a questão”, “a resposta” ou outra coisa qualquer, e mesmo assim nada.

Alguém me pode explicar o que é isto?

Depois de me esquivar e desviar as acusações para o Aires, disse que também tinha recebido um e passada alguma discussão sobre o significado dos postais, sugeri que todos tirassem uma foto do seu postal e a colocassem online, e enviei o meu. Em resposta, cada uma das pessoas que tinha recebido o seu postal enviou uma foto:

Na imagem acima só aparecem seis postais por uma boa razão: um dos meus amigos decidiu que tinha mais o que fazer do que participar no jogo, portanto não enviou a foto dele, e o postal do Ricardo tinha-se perdido algures no limbo dos correios internacionais, apesar dos meus esforços para salvar essa grande instituição.

Felizmente, esta situação estava já prevista durante a fase de planeamento e vingou a minha ideia de escrever uma palavra inteligível no endereço da página web. Inicialmente estava a ser difícil descodificar a palavra porque num dos postais a letra “q” foi confundida com um 9. Pior, a meio da fase de descobrimento fui descoberto pelo Ricardo:

Bom, eu não consegui resolver o puzzle para já, mas resolvi outra parte mais gira: analisei a caligrafia com amostras de postais e cenas que tenho cá por casa, e já sei com 100% de certeza quem o(a) autor(a) do puzzle :-)

Raios! Ok, era mais ou menos óbvio que tinha sido eu, até fiquei admirado de não terem desconfiado mais de mim, mas suponho que estavam mais preocupados com o enigma em si. Para além disso, o Ricardo não me entregou. Obrigado, Ricardo!

O tempo foi passando até que, exactamente uma semana depois de ter enviado os postais, o Milagaia descobriu a resposta:

Não sei quando fizeste anos mas, Parabéns Mariana.

E em seguida deu uma dica importantíssima:

epá, o postal do aires não é um 9 é um ‘q’;

Que iniciou uma avalanche de resoluções com sucesso, apesar de nem todos terem chegado lá.

Finalmente, passado quase exactamente um mês, o Ricardo recebeu finalmente o postal dele:

Ainda por cima o meu era logo aquele com a palavra «Matriz». Úuuuu.

E era mesmo. Apesar de tardio, foi bem vindo à festa.

No final de contas fiquei contente com o desafio, mas agora que posso olhar para trás, vejo algumas coisas que poderia mudar num desafio futuro. Em primeiro lugar a ideia de usar os correios tradicionais foi boa, mas abre a possibilidade da perda de correspondência, e torna mais difícil de iniciar uma discussão motivadora de resolução do problema. Na minha opinião, a motivação máxima para resolver estas coisas acontece no momento em que se recebe o postal com o enigma, mas visto que todos os receberam em dias diferentes, foi difícil de construir e manter aquele ponto crítico de vontade de resolver a coisa.

Outra coisa que aprendi é que fazer um enigma demasiado focado numa única especialidade (neste caso, a informática) colocou alguns dos participantes de fora, e foi demasiado fácil para os outros. Idealmente um enigma para um grupo heterogéneo de pessoas deveria ter uma mistura de várias especialidades que exigissem os conhecimentos de cada um. Este tipo de enigmas é, no entanto, mais difícil de construir por apenas uma pessoa, pelo que ainda não sei se poderia ter feito muito melhor nesta área.

Mas já chega de conversa, está na altura de olhar para os resultados.

Tempo de chegada do postal:

  • mais rápido: 2 dias
  • mais lento: 28 dias

Custos:

  • Postais: Gratuitos
  • 3 selos para a Alemanha (0,45€): 1,35€
  • 4 selos para Portugal (0,65€): 2,60€
  • 1 selo para a Suíça (0,65€): 0,65€
  • Total: 4,60€

Tempo até à resolução: 8 dias

E foi assim. Se alguém quiser pegar na tocha e continuar, não se esqueçam de mim. Pelo meu lado, quero repetir a experiência, daqui a uns tempos.

O enigma (parte 1 — preparação)

Há uns dias estava a sair de um bar quando vi uma colecção de postais que me pareceram mesmo giros. A imagem era alusiva ao signo chinês do macaco, que por acaso é o meu, e ainda por cima tinha uma rapariga desnudada, coisa que me agrada:

postal

Na altura tive uma ideia: enviar um postal desses a cada um de um grupo de amigos entre os quais trocamos emails com muita regularidade, apesar de estarmos todos geograficamente separados. A ideia inicial era apenas a de enviar os postais, apesar de ainda não ter pensado exactamente o que iria escrever neles, mas depois lembrei-me que seria engraçado fazer uma espécie de jogo, em que cada postal teria uma parte de uma mensagem completa, que só faria sentido quando todos os segmentos da mensagem se juntassem.

Para a mensagem, decidi que era uma ideia porreira aproveitar para desejar os parabéns à Mariana, visto que ela faria anos daí a uma semana. O problema desta ideia é que seria difícil partir a mensagem em pedaços de maneira a que ela não podesse ser reconstruída apenas com dois ou três postais — a palavra “parabéns” lá para o meio tornaria a mensagem mais ou menos óbvia. O que era preciso era que houvesse uma espécie de código que pudesse ser compreendido apenas quando todos (ou quase todos) os postais aparecessem. A minha solução foi criar uma página web, e colocar em cada postal uma das letras que compunham o nome do ficheiro html. A vantagem de ter um endereço online é que teria controlo sobre a mensagem, mesmo depois de enviar os postais, para corrigir quaisquer erros de última hora.

Inicialmente pensei em fazer o nome do ficheiro uma colecção aleatória de oito letras (contando comigo, éramos oito pessoas), mas se um postal se perdesse, ou se alguém não percebesse a letra, era importante ser possível reconstruir o nome do ficheiro. Assim, decidi usar uma palavra para o nome: a palavra “questao” (sem til, para facilitar) porque tinha a ver com o conteúdo da mensagem. Para fazer oito letras acrescentei um 1 ao final: questao1.html. Bastaria ter o cuidado de enviar o postal com o ’1′ a uma pessoa que eu sabia que iria não só recebe-lo, como também participar na discussão subsequente.

Em cada postal escrevi o endereço web: “http://geocities.com/questao_1/?.html”, e por baixo aparecia uma das letras que compunham o nome do ficheiro html com uma seta a apontar para o ponto de interrogação. Para ajudar a perceber a ordem das letras, em cima de cada postal escrevi uma das palavras de uma frase que ficaria completa quando todos os postais estivessem juntos — a ordem da frase ajudaria a indicar a ordem das letras. A frase era: “A matriz vai descobrir qual é a pergunta”. Repare-se que “a” aparece duas vezes, pelo que tive o cuidado de escrever uma maiúscula, e a outra minúscula nos postais.

Agora só faltava criar o conteúdo da página web. Criar uma página que apenas contivesse uma mensagem de parabéns pareceu-me um desperdício, face a todo o trabalho que deu codificar o endereço. Decidi, por isso, inventar um enigma e ver se eles eram capazes de o resolver.

A primeira fase do enigma era exactamente a página. Se se visitasse o site em questão, sem o nome do ficheiro html, abriria apenas uma página completamente preta. Isto foi propositado porque já sabia que era a primeira coisa que eles iam fazer ao receber o postal (e foi). Ora, se se visitasse o site com o endereço completo, abriria exactamente a mesma página preta, mas com um ponto de interrogação no meio. O ponto de interrogação mostra que de facto estão no sitio certo, mas a solução não seria óbvia — era preciso olhar para o código fonte da página, onde estava escondido um novo endereço web a apontar para esta imagem (clickar na imagem para ver em plena resolução):

Na imagem, os números são uma codificação simples da posição numérica de cada letra no alfabeto (a = 1, b = 2, c = 3, etc.) sem acentos, cedilhas ou tils, somada a um valor pré-definido (ou “semente“, em criptologia). Para a semente escolhi o valor de 8, porque estava a enviar o postal para 8 pessoas.

Claro que não ia codificar a mensagem à mão. Para escrever os números criei um pequeno programa em C que aceitava a semente e o texto como entrada, e codificava a mensagem nos números equivalentes:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void printWord(char* word, int seed);

int main(int argc, char** argv)
{
	int i, seed;

	if (argc < 2) {
		printf("usage: %s seed text\n\n", argv[0]);
		exit(1);
	}

	seed = atoi(argv[1]);

	for (i = 2; i < argc; i++) {
		printWord(argv[i], seed);
		printf("  ");
	}
	printf("\n");

	return 0;
}

void printWord(char* word, int seed)
{
	int i, val, size = strlen(word);
	char c;

	for (i = 0; i < size; i++) {
		c = word[i];
		val = c - 96 + seed;
		printf("%d ", val);
	}
}

A mensagem em si está dividida em três partes. A primeira serve para ajudar a perceber o código: os números codificam o meu nome (com todo o tempo que perdi nisto, quis assinar o meu trabalho), seguido da única parte que não está codificada naquele esquema, e que representa a data do meu nascimento, 19 de Janeiro de 1981.

Para a data de nascimento escrevi o nome do mês em Finlandês, visto que uma busca no Google daria resultados imediatos. Saber que “Tammikku” significava “Janeiro” e que estava colocado entre duas barras com números devia ser suficiente para perceber que se tratava de uma data. O dia estava codificado em hexadecimal, com o prefixo “0x” que pensei que fosse ser óbvio, pelo menos para a malta dos computadores, e finalmente, o ano era composto pelos números que faltam na sequência de 0 a 9. Esta codificação do ano foi a mais complicada, e aquela que mais temi que ninguém conseguisse perceber, mas calculei que também nao fosse necessário percebe-la para chegar ao resultado — pelo menos algum deles se deveria lembrar da minha data de aniversário.

A segunda parte do enigma é simplesmente uma mensagem escrita na mesma codificação do meu nome. A mensagem diz:

conseguiste decifrar a mensagem agora para descobrires a pergunta dobra a semente:

“Dobrar a semente” significa simplesmente “multiplicar a semente por dois”, mas ficou propositadamente vago para não ser demasiado fácil descobrir o texto na terceira parte do enigma. Portanto, a terceira parte da mensagem foi codificada no mesmo esquema, mas com uma semente de valor 16, em vez de 8. A mensagem era:

sera tarde demais para desejar os parabens a mariana?

A Mariana fazia anos uma semana e meia depois do dia em que enviei os postais. Inicialmente temi desejar-lhe os parabéns cedo demais, mas a imprecisão dos correios, e o facto de estarmos quase no fim de semana, fizeram-me jogar pelo seguro e enviar tudo com alguma antecedência.

Foi assim que preparei o enigma. Fica prometida para mais tarde uma segunda parte com os resultados.

Gravatars

Há uns dias andei a mexer na configuração deste blog e reparei que a Mariana tinha uma imagem nos
comentários dela (mas que só aparecia na interface de administração, e não no blog em si). Ora, a Mariana não tem conta de utilizador no meu site, até porque o meu blog não permite o registo de utilizadores externos, por isso fui investigar o que se passava.

Parece que há um serviço chamado Gravatar em http://www.gravatar.com onde um tipo pode registar uma imagem contra o seu endereço de email, e depois quando deixa um comentário num site qualquer, desde que o campo do email fique correctamente preenchido (e o site suporte o tal sistema), aparecerá ao lado do comentário o seu avatar. Isto é fixe porque deixa de ser necessário criar um login e configurar a conta em cada um dos sites onde comentamos. Aliás, como o site do Gravatar serve imagens de quaisquer tamanhos entre 1 e 80 pixéis, nem sequer temos que nos preocupar em faze-lo manualmente, ao mesmo tempo dando ao dono de um determinado site a escolha de design que quer para o seu site.

A razao porque o Gravatar da Mariana apareceu directamente nas páginas de administração do meu blog foi porque o WordPress (o software que serve este site) incluiu supporte para o servico na última versão, apesar de o tema que eu tinha instalado ainda estar desenhado para a versão anterior. Depois de acrescentar o código que faltava ao tema, já aparece a imagem da Mariana, por exemplo, aqui. É claro que criei um meu próprio Gravatar, que apareceu automaticamente no blog dela, no meu e no do Caxaria.

Super vista

Há cerca de dois meses mudei-me para Frankfurt. Quando estava a visitar o apartamento onde moro agora, o tipo da imobiliária exaltou a vista e disse que “até dá para ver a famosa Frankfurter Skyline!”.

Ena, e não é que dá mesmo? Se um tipo olhar com atenção, dá para ver os últimos metros da torre do Commerzbank, aquele que foi o maior prédio da Europa até 2005, e ainda hoje é o maior da União Europeia!

Para ressalvar a importância que isto tem, e para fazer juz ao nome deste blog, decidi fazer alguns cálculos:

De acordo com a Wiki, o prédio mede 259 metros e o Google Earth diz-me que a distância entre o meu prédio e a torre é de 3463 metros:

A um metro da minha câmara a altura da torre visível é de cerca de 3cm:

Assim, uma conta simples diz-nos quantos metros de torre são visíveis a partir da minha janela:

Em que temos: hv = hm * d

Ou seja: hv = 0,03 * 3463 <=> hv = 104m

Isto, claro, ignorando o facto de o triângulo formado pelas linhas não ser exactamente rectângulo, e que, tecnicamente, não se aplica a fórmula que usei, mas dadas as margens de erro penso que o resultado estará próximo o suficiente.

Isto tudo significa que da minha casa tenho vista para uns magníficos (hv / ht * 100 = ) 40% do topo da famosa Frankfurter Skyline, e isso deixa-me feliz!

40% feliz!