Mostrar mensagens com a etiqueta software. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta software. Mostrar todas as mensagens

sábado, 23 de julho de 2011

Agora que vou viajar...

Consulto a pasta de correio electrónico onde fui juntando toda a correspondência relativa à preparação da viagem. Já algum tempo que deixei de usar as pastas do sistema operativo para guardar a informação relacionada com a colaboração com outras pessoas. A quase totalidade da informação que recebo chega através de correio electrónico. Inclusivamente, por vezes, vejo-me na necessidade de enviar mensagens a mim próprio para juntar numa pasta de correio electrónico onde se encontra informação relacionada. 

Ainda assim, esta solução não é completamente do meu agrado. Levo algum tempo a encontrar a informação. Em particular, no contexto desta viagem, sempre que acedo à pasta  tenho um período inicial em quem vou percorrendo a informação e, mentalmente, a vou agrupando de acordo com o meu interesse do momento, seja a reserva de hotéis ou a distribuição da informação de acordo com o calendário da viagem. Por outro lado, começo a ter várias versões da mesma informação é necessário perceber qual é a que me interessa neste caso, não necessariamente a mais recente.

Muita da informação sobre a viagem resulta da utilização de serviços externos, como sejam serviços de reserva de hotel, avião e automóvel. Estes serviços enviam-me mensagens com os vouchers. Ou seja, alguma da informação que possuo na minha pasta de correio electrónico é apenas uma duplicação, não actualizada, da informação real. Por exemplo, se desejar saber se a viagem de avião alterada devo procurar na minha pasta a referência para o sítio onde o serviço está disponibilizado.

Idealmente, gostaria de poder ter a integrada a informação sobre a viagem com as trocas de mensagens de correio electrónico que efectuei para a preparar. Infelizmente, agora tenho de decidir por duas opções, ou conservo a informação dentro das mensagens ou a desagrego das mensagens. Ambas as soluções não me agradam, embora tenha pendido mais para a primeira.

Há cerca de 2 anos a Google lançou uma ferramenta revolucionária chamada Google Wave. Esta ferramenta permite que várias pessoas colaborem através da troca de mensagens e que simultaneamente vão sintetizando e agregando a informação que vai sendo trocada nas mensagens. Era objectivo da Google alterar o paradigma de comunicação actual, baseada no correio electrónico, por um paradigma de maior partilha e construção colaborativa de conteúdos. Esta proposta acabou por não vingar e acabou por ser abandonada pela Google. 

O Google Wave tem as potencialidades desejadas. Contudo sinto a necessidade de poder ter entidades estruturadas. Tal como o correio electrónico, o Google Wave apenas considera conteúdos feitos de texto e blobs (imagens, videos, etc). Na preparação da viagem gostaria de poder criar um entidade reserva de hotel para cada reserva. Também gostaria de poder enviar um pedido de informação sobre um local que desejo visitar já com um formato pré-estabelecido, de forma a que a resposta criasse uma entidade informação de local que eu poderia depois complementar com a indicação do hotel onde iria ficar e a referência para as coordenadas no Google Maps. A utilização de entidades estruturadas, ligadas a um contexto de comunicação, permitiria usar ferramentas de pesquisa e a ligação a serviços externos. Por exemplo, a entidade reserva de avião, ligada ao serviço externo de reserva de voo, iria sendo actualizada com o estado do voo.

domingo, 19 de junho de 2011

Dr. Strangesoftware

Stanley Kubrick, no filme Dr. Strangelove, constrói uma situação em que os homens ingloriamente lutam contra os procedimentos que criaram. Estes procedimentos, uma vez activados, iniciam uma processo que se revela impossível de parar, levando à destruição da vida no planeta terra. Esta história, é uma versão soft do tema que foi recorrente na ficção científica sobre a tentativa da máquina controlar o seu criador, o homem. Nestas histórias ilustra-se a luta entre a lógica e o humano.

Numa história real, Barbara Tuchman descreve num livro sobre o primeiro mês da Grande Guerra, The Guns of August, como o Kaiser, poucas horas depois de ter ordenado o início das operações contra a França, resolve, após receber um telegrama do seu embaixador em Londres, alterar a sua decisão e invadir a Rússia. A invasão da França tinha sido logicamente preparada para ocorrer em 6 semanas, o que implicava um minucioso plano de deslocação de cerca de 1.000.000 de homens, usando os caminhos de ferro. Quando o Kaiser comunica a sua decisão ao seu chefe do estado maior, a resposta que recebe foi, escreve Tuchman: 

"Your Majesty, it cannot be done. The deployment of millions cannot be improvised. If Your Majesty insists on leading the whole army to the East it will not be an army ready for battle but a disorganized mob...". 

O Kaiser não teve poder para parar a máquina que tinha colocado em marcha.

Também no software há este paradoxo entre a coisa criada e o criador, entre a lógica e o humano.

Num artigo recente na ACM Software Engineering Notes, Robert Schaefer descreve magistralmente este paradoxo:

"I’ve also been thinking a lot lately about the kinship that software developers and managers have in regards to the parable of the blind men and the elephant. Software, as an object stripped away from culture, can be reduced to mathematics, a culturally valueless set of rules of manipulation of symbols. Software also is the formalization of ideas into logic. Coding is nothing more than thinking clearly and logically in the process of symbol manipulation. If so, then what is the big deal? Why can’t just anyone write programs and logic be damned? Logic has one set of rules and culture another. Logic must, but cannot be, separated from cultural values (another paradox). The attempt to map cultural values onto logic, while denying that we are doing it as we do it, is where trouble begins. Now the blind men weren’t able to see the elephant all at once, they could only guess at parts through touch, and emphasize the attributes, assume the whole of a part. We though, as designers and programmers can see the whole elephant, but are not much better off. Which more or less ruins the elephant analogy. Unless the elephant we see is not the elephant that is. Then the elephant analogy works again. We model the elephant in our minds, but the elephant that is, is something different. It looks like an elephant, but behaves like something else. In this instance, it looks like logic but behaves like culture."

Há, no entanto, uma diferença fundamental relativamente às máquinas e procedimentos que têm por base uma visão científica enraizada em princípios desenvolvidos ainda no século XIX: no software a coisa criada não é externa ao criador, não existe para além dele.

Dessa propriedade do objecto de software, que é a sua apropriação pelas pessoas, para além da lógica, falo em alguns dos posts. Por exemplo Da desordem à ordem natural das coisas é sobre a necessidade de tornar a codificação da cultura mais integrada com a codificação da lógica.