Entries from November 2008 ↓

Personality type

Today I took a personality type test at 41 Questions, and I enjoyed my results.

Apparently, the results can be taken seriously, since the test seems to be based on the Myers-Briggs Type Indicator test. I know that a lot of people criticize this kind of psychological tests, but I believe these tests are worth some value.

Twitter Updater

I have just installed the Twitter Updater plugin for my blog. Let’s see how it works 🙂

Análise: Cuidado ao pedir coisas a um programador

Hoje no trabalho, um colega enviou a seguinte piada para uma lista interna:

A esposa pede ao marido, um programador, para ir à mercearia e diz:

– Compre duas salsichas e, se eles tiverem ovos, compre 10.

O programador vai até a loja e pergunta:

РVoc̻s t̻m ovos?
– Sim.
РEnṭo eu quero 10 salsichas.

Esta piada é simplesmente muito boa (de fato, eu pensei exatamente como o programador da piada) e o Otávio encaminhou a mensagem para pipoca-l, nossa lista de discussão do pessoal da Unisinos. A primeira resposta foi do Dante, com a seguinte objeção:

Mas cara, o programador não deveria primeiro comprar as duas salsichas
pra depois comprar mais 10?

O que nos mostrou que estávamos diante um grande problema semântico, e não de uma inocente piada. Dada a criticidade da necessidade de uma solução para o problema, o Otávio e eu prontamente começamos a trabalhar na solução. A conclusão à qual chegamos, com base em nossos trabalhos que seguiram escolas diferentes de pensamento para o Problema dos Ovos e das Salsichas do Programador, é de que o problema é altamente ambíguo e não possui solução computacional definitiva.

A seguir encontra-se a resposta que produzimos, anunciando tal fato:

O problema é ambíguo e sugere duas abordagens. (Cordeiro, O. C., 2008) sugere que o valor que representa a quantidade de salsichas a serem adquiridas é sobrescrito a cada pedido de compra, sugerindo uma mudança de idéia por parte do agente que executa a ação. Sendo assim, o problema pode ser resolvido utilizando o seguinte programa:

#!/bin/bash

SAUSAGES=0

function buy_sausages {
SAUSAGES=$1
}

buy_sausages 2 && if [[ $EGGS != 0 ]]; then buy_sausages 10; fi

echo $SAUSAGES

No entanto, a abordagem dada por (Silveira, C. L. B., 2008) acrescenta ao valor mencionado a quantidade requisitada pelo agente em cada ação de compra. O programa abaixo ilustra a semântica da abordagem:

#!/bin/bash

SAUSAGES=0

function buy_sausages {
SAUSAGES=$((SAUSAGES+$1))
}

buy_sausages 2 && if [[ $EGGS != 0 ]]; then buy_sausages 10; fi

echo $SAUSAGES

Os resultados da execução dos programas são apresentados a seguir, demonstrando a ambigüidade do problema em questão:

root@ubuntu32:~# EGGS=0 ./cesar.sh
2
root@ubuntu32:~# EGGS=1 ./cesar.sh
12
root@ubuntu32:~# EGGS=0 ./otavio.sh
2
root@ubuntu32:~# EGGS=1 ./otavio.sh
10

Dado que o resultado é determinístico, não são necessárias multiplas execuções para os cálculos de média e desvio padrão dos valores observados.

Referências:

Cordeiro, Otávio C. A non-cumulative approach to the Programmer’s Eggs and Sausages problem. Porto Alegre, 2008.

Silveira, César L. B.. Usage of recurrence relations in the solution of the Programmer’s Eggs and Sausages problem. Porto Alegre, 2008.

Dr. Stanley Williams on the finding of the memristor

IEEE has recently published online a new set of articles from IEEE Spectrum. Among those, there is a very interesting article written by HP Labs’ fellow researched Dr. Stanley Williams telling the story of how he and his team found the memristor – the fourth fundamental electronic component, predicted in theory more than 50 years ago by Dr. Leon Chua.

The topic received a considerable amount of attention a while ago, but most stories were short and superficial, roughly mentioning the discovery and its possibilities for the future. In his article, Dr. Williams gives us a little more insight on future memristor applications, of which I believe the most incredible is the possibility of emulating brains in silicon. As it is explained, current technology isn’t enough for that. However, memristor behave in a way which closely resemble synapses in the brain. That was noted even by Dr. Chua when he wrote the theoretical description of the component.

Altough the article is a bit long, I really believe it is worth reading. Dr. Williams explains what the memristor is and how it works using analogies which make it easy for the layperson to understand. There are some very interesting facts in the article which I had never heard of, such as that David Packard had the intention to build a long-term scientific research laboratory at HP in order to “return knowledge to the well of fundamental science from which HP had been withdrawing for so long”. That was actually done in 1995, and Dr. Williams was given at the occasion to choose whatever topic he wanted to research in his field, given that they could have something usable in 10 years.