terça-feira, 28 de julho de 2009

Garbage in, garbage out (ou "pensar pra quê?")

Na computação, há um velho princípio (da época dos mainframes, vistos como máquinas pensantes, como me lembro de uma enciclopédia dos anos 70) chamado garbage in, garbage out. Basicamente, ele afirma que a saída é tão boa quanto a entrada; não existe mágica que transforme dados ruins em resultados milagrosos. Podemos generalizar esse princípio para qualquer procedimento experimental: simplesmente não há como obter resultados válidos a partir de dados inválidos sem cometermos uma fraude científica [1].

E um dos conceitos derivados é o perigoso garbage in, gospel out. É o que vejo muitas vezes por aí: uma confiança cega no resultado emitido por uma máquina que supostamente nunca está errada e que muitos acreditam ser "perfeita". A simulação, a modelagem, os algoritmos viraram verdadeiras armas mágicas, aquelas que substituem experimentos e análises e que, para alguns, nunca estão erradas.

Armas essas que podem machucar os seus usuários de forma violenta se usadas incorretamente. Basta lembrar que tais softwares têm milhares - senão milhões, ou bilhões em um futuro próximo - de componentes e linhas de código, assim sua complexidade cresce de forma assustadora. Assim, um modelo incompleto (como é o caso de componentes eletrônicos ou sistemas físicos, nos quais muitas vezes uma modelagem de baixo nível é inviável), um pequeno erro de digitação ou mesmo um atalho tomado para simplificar o código, podem esconder erros que aparecerão no imperfeito e imprevisível mundo real.

Tal comportamento, muitas vezes, vem da cultura de querer uma fórmula para tudo. Quem precisa de raciocínio e de interpretação quando existem milhões de fórmulas mágicas, nas quais basta apenas jogar os valores e, adequado à cultura da impaciência, temos ali uma resposta bonitinha? E é isso que leva a outro comportamento parecido: a dependência excessiva de ferramentas. Vejo pessoas usando calculadoras ou softwares para resolver problemas que poderiam ser executados de forma igualmente eficaz com alguns poucos cálculos manuais.

Ou mesmo passando horas chutando valores em um simulador, até obter o resultado desejado, mesmo que a solução seja impossível no mundo real, ou comentando e descomentando linhas em um código-fonte, praticando a chamada Cargo Cult Programming, tudo isso para evitar o trabalho de pensar e entender a causa do problema, e certamente não é esse o profissional que queremos ver. Em uma analogia, resolver problemas de tal forma seria similar a um "tratamento" médico no qual o profissional decide "sair cortando o paciente até achar onde está o problema".

Em um exemplo mundo-real, podemos fazer uma analogia entre um projeto feito apenas com simulações teóricas e uma pessoa que inicia um relacionamento apenas baseada em fotos e conversas virtuais. Talvez os resultados sejam os esperados, talvez completamente diferentes; talvez uma das, ou as duas pontas desanimem e decidam jogar tempo e trabalho fora.

Não quero defender o retorno às máquinas de escrever e as réguas de cálculo, mas sim que não existe solução - por mais avançada que seja - que tire do profissional o trabalho que nenhuma máquina pode fazer: o de entender o resultado e os limites das ferramentas empregadas e, principalmente, estar pronto para criticar e duvidar de tais, não servindo apenas como um mero apertador de botões.

Por mais poderosas que as ferramentas se tornem, elas não substituirão aquilo que delimita o bom profissional de um mero seguidor de fórmulas e resultados prontos: o bom-senso. E elas continuarão sendo importantes, desde que usadas com consciência de suas falhas e limitações e com a compreensão que nada substitui o mundo real para testes.

Recomendo a leitura desses artigos da coluna Rarely Asked Questions, escrita por um engenheiro da Analog Devices, fabricante de componentes eletrônicos:

1. Which carries more weight, a datasheet or SPICE macromodel? (modelagem X mundo-real)
2. What's in your toolbox? (escolha a ferramenta adequada)
3. Capable engineers should be prepared to question, and modify, anything, not just their own designs (necessidade de criticar e questionar resultados)


[1] Podemos generalizar o conceito de garbage in, garbage out para qualquer mercado: um produto ou serviço refletirá o esforço que nele foi investido e a qualidade que nele foi colocada. E o conceito de aplica-se a produtos de qualidade duvidosa endeusados pela propaganda e pela existência de grandes nomes por trás, no perfeito pensamento capitalista o que é bom para uma empresa, ou para alguém famoso, é bom para mim.

terça-feira, 21 de julho de 2009

A nuvem é negra, e eu não me arrisco nela

Qualquer pessoa que esteja mais ou menos ligada nas notícias de tecnologia já ouviu falar da nuvem e que todos os softwares vão para ela. Se há algo de bom, ao menos ela teoricamente (teoricamente, eu disse) livra os usuários da necessidade de fazer backup, e também de problemas de compatibilidade entre versões (como eu já vi muitas vezes: trabalhos editados no Office 2007 não conseguem ser abertos nos Office mais antigos).

Ficam algumas perguntinhas simples, mas que ninguém responde e a grande mídia - perdida no cool factor e nas buzzwords - ignora:

- Qual o sentido de tornar um computador completamente dependente da internet? Iremos ver, no futuro, argumentos como não conseguimos fazer nada hoje, porque todos nossos documentos estão 'na nuvem' e a nossa conexão está fora do ar? Queremos realmente retornar à época dos terminais burros?

Estamos em um país no qual, infelizmente, as conexões móveis não são tão robustas quanto seria o ideal. E é uma experiência torturante usar as tais aplicações web em uma conexão um pouco pior; parece que elas foram projetadas para um mundo maravilhoso no qual links de alta velocidade surgem no meio da rua e estão sempre 100% disponíveis.

- O que acontece se, amanhã ou depois, o servidor com meus dados for invadido ou seu dono decidir mudar a licença de uso? Ou se ele for vítima de um dos vigilantes da propriedade intelectual, que devido à suposta ameaça de um único usuário , decidiu que TODOS os documentos deveriam ser entregues? É bastante simples dizer don't be evil, mas é difícil colocar isto em prática com uma arma apontada na sua cabeça (o sonho de muitos desses vigilantes).

Muitos usuários não lêem as letrinhas miúdas perdidas no legalês denso e ofuscado dos contratos de licença. E não posso condená-los, pois na prática seria necessário um advogado para interpretá-los. Cabe, então, aos provedores de serviços escreverem tais termos em uma linguagem legível aos meros mortais (afinal, não são eles o público alvo desses serviços?), mas aparentemente não vimos nenhum esforço nesse aspecto.

- O mesmo pode ser aplicado para documentos realmente confidenciais. Você se sentiria seguro armazenando, por exemplo, dados financeiros ou planos de marketing da sua empresa em um servidor fora do seu controle?

- São viáveis, considerando uma conexão comum, aplicações mais complexas do que as de produtividade? Ainda não consigo imaginar, por exemplo, um CAD ou um editor de vídeos rodando on-line sem depender de tecnologias proprietárias como o Flash, fonte de reclamação para muitos usuários - especialmente aqueles que não usam Windows.

- Há um importante fator humano entre todos estes fatores. Não acho que seria interessante perder meus dados graças a um administrador de sistemas que restaurou a fita de backup errada. Nem correr o risco de ser vítima de um sysadmin mau-caráter.

- E, em uma conclusão das perguntas acima, queremos colocar todos os nossos documentos e trabalhos em sistemas que não nos pertencem e sob os quais não temos praticamente nenhum controle?

Continuo preferindo minhas aplicações off-line. Aquelas que muitas vezes não são compatíveis entre plataformas e não rodam dentro de um browser. Aquelas que é necessário atualizar manualmente, e que estarão disponíveis mesmo que eu esteja em uma ilha deserta, sem conexão com a internet em um raio de 500km.

Mas continuo cético quanto às promessas da nuvem. E não acho muito interessante, para um usuário que prefere formatos e softwares livres, esse verdadeiro downgrade que é a dependência dos serviços de uma empresa.

segunda-feira, 13 de julho de 2009

Coisas que aprendemos em um semestre de universidade

Além de Cálculo, Algoritmos, Desenho, Química, Organização de Computadores, Oficina e Introdução à Engenharia, aprendi algumas coisas no meu dia-a-dia de estudante do 1° semestre de Engenharia Elétrica na UFSM:

- Computadores sempre trancam ou dão algum problema no meio de apresentações. Se você levar o notebook, como eu sabiamente fiz em algumas aulas, não há tomadas suficientes nas salas. Máquinas de uso promíscuo são excelentes lugares para dar um vírus de presente ao seu pen-drive.

- Existem maus professores e professores maus. Vários dos meus caíram na primeira classificação. Por sinal, esqueça a ideia de que na universidade só tem gente inteligente ou que ela é um oásis de conhecimento; aparentemente há muitos que só estão lá a passeio. Ah, há pessoas que odeiam Matemática e Física e cursam Engenharia.

- Dormir em aulas é uma atividade gratificante. Especialmente quando um dos seus professores não fala, sussurra, e usa um projetor empoeirado com lâminas idem. Ou quando seu professor de Desenho espera que você incorpore o espírito de M.C. Escher.

- Por sinal, Desenho Técnico é uma excelente forma de contrair uma dor nas costas. E, ainda nesta disciplina, a única coisa que pode tornar sua aula mais agradável é o fato de, na sala imediatamente à frente da sua, estudar uma turma da Arquitetura formada basicamente por mulheres e seres de sexualidade indefinida.

- Na mesma disciplina, você terá vontade de pegar uma régua-T e usá-la como arma para um massacre.

- Muitas pessoas ainda vão tratar você como engenheiro elétrico. Inclusive futuros colegas de profissão.

- Na UFSM, podemos perder mais tempo na fila do RU do que comendo a excelente carne de monstro e a sola de sapato acebolada, acompanhada por um delicioso copo de ácido.

- Em todo lugar haverá um mala que acha bonito dar pitaco naquilo que você está fazendo, com conselhos extremamente úteis como não é assim que se faz, faz isso, isso e aquilo entre outras palavras de sabedoria para alegrar nosso dia e nos tornar mais iluminados.

- No meio do ônibus, você irá lembrar que esqueceu o pen-drive, com uma apresentação importantíssima. Depois, quando chegar lá, você será salvo por uma professora que faltou ao trabalho.

- Bibliotecas são excelentes lugares para se achar livros da época das réguas de cálculo e das válvulas, periódicos publicados na União Soviética e documentos da Alemanha Oriental, e alergias a formas de vida desconhecidas.

- Há pessoas que não sabem ler e, incrivelmente, passaram em um vestibular: para elas, terminal somente para consulta de livros significa máquina para ficar mandando e-mails e fazendo compras, assim atrasando todo o resto das pessoas que desejam procurar livros.

- Essas mesmas pessoas, ou pessoas de uma mesma espécie, entendem que o laboratório de informática é um lugar adequado para baixar músicas e assistir vídeos no volume máximo, assim atolando a rede e o conforto dos outros idiot... usuários.

- Esse mesmo laboratório acha interessante trocar as máquinas e não trocar os monitores azulados, além de criar uma imagem de disco com vírus que posteriormente será copiada para todas as máquinas.

- Com honrosas exceções, mulheres da Engenharia são seno e cosseno: precisa elevar ao quadrado e somar para dar uma.

- Banheiros da Engenharia não vêem desinfetantes há séculos. Banheiros do Departamento de Geociências são verdadeiros paraísos em se tratando de limpeza.

- O Portal do Aluno é algo extremamente bem-feito, de forma a dar erro na semana de matrículas.

Esperamos que o segundo semestre nos forneça uma experiência similar. Ou não...

sexta-feira, 3 de julho de 2009

Preencher os embutidos suínos é "out"

Considere a seguinte afirmação: "Um dos fatores cruciais para o aumento sistemático, estocástico e não-determinístico da minha intolerância perante meu interlocutor é o uso de uma linguagem saturada com estruturas gramaticais intrincadas e nebulosas e vocábulos rebuscados, notadamente em se tratando de mero discurso sem algum valor construtivo.": Mais de 300 caracteres e 44 palavras.

Agora, considere a decodificação dela em uma linguagem mais acessível aos meros mortais: "Não tenho paciência para quem quer enrolar falando difícil". Uma frase cujo significado é bastante claro para qualquer pessoa que tenha conseguido chegar a esse blog.

Normalmente, esperar-se-ia que a segunda forma seria mais usada e aceita. Mas, infelizmente, não. Há pessoas que gostam da primeira forma, seja por ela parecer algo intelectual, difícil, ou mesmo para disfarçar uma falta de conhecimento do assunto com uma linguagem complexa, que desvie a atenção do ouvinte. Um rebuscamento forçado, talvez em uma tentativa de provar que sabe e que não fala errado.

Isso não seria um problema, não houvesse um grande número de pessoas que se impressionam e se deixam levar pela eloquência. Assim sendo, ela é a ferramenta perfeita para vendedores picaretas, advogados picaretas, políticos picaretas, entre outras, aquela classe infeliz de seres que se alimenta da ingenuidade dos outros. Perfeita para convencer, afinal quem irá duvidar de um dotô?

Outra característica normalmente apresentada por essas pessoas é a necessidade de abusar dos estrangeirismos - ainda que hajam palavras similares na língua portuguesa - para parecerem poliglotas (mesmo que com isso pareçam trogloditas, como no clássico episódio de Chaves), cosmopolitas ou, simplesmente, sofisticadas. Não existe mais liquidação na loja de departamentos, existe uma sale na megastore. As boas ideias viraram 'insights'. DVDs (ou Blu-Rays) são executados em players e assistidos em displays. E o design não é mais restrito ao profissional diplomado nesta área: o músico virou sound designer. E o velho confeiteiro tornou-se um cake designer (essa era nova para mim), ao mesmo tempo que transformava sua padaria em um sofisticado ambiente, cuja iluminação foi projetada por um lighting designer. A propósito, ele quer seu feedback sobre a nova decoração, pode colocar ali na caixinha de sugestões.

Longe de parecer xenófobo (afinal, ninguém gostaria de ter que falar telemóvel ou digitalizadora [1], e nem de retirar termos como modem, timer ou reset do vocabulário), mas será tão grande a força por trás dessa necessidade de parecer intelectual e sofisticado, que até o vocabulário torna-se algo tão forçado e superficial quanto as próprias pessoas?

Cansei de linguagens forçadas. Se for para demonstrar conhecimento do idioma, que ele seja feito falando corretamente. A propósito, é importante não confundir escrever de forma simples com escrever errado (como muitos fazem, depois acusam os outros de preconceito linguístico). Muito pelo contrário: escrever corretamente, de forma a ser entendido facilmente, é uma das formas mais simples e eficientes de escrever.

Mas nunca usando os vocábulos como conteúdo para preenchimento de embutidos de origem suína. Por sinal, acabo de ter um insight no meio de uma sessão de brainstorming. Tenho que voltar ao meu job de design de engenharia, cujo objetivo é aumentar o feedback de um loop de players interconectado a um conjunto de displays. Fui.

[1] vulgo scanner.