O imbecil eletrônico

Linguagem de máquina de baixo nível:
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Vire 90 graus à esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Levante o braço direito 90 graus
Segure a porta
Puxe o braço direito
Levante o braço direito 135 graus
Pegue o conteúdo na primeira fileira à direita, na terceira posição
Puxe o braço direito
Segure a porta
Empurre a porta com o braço direito
Vire 180 graus
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Vire 90 graus à direita
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda


Linguagem de programação de alto nível:
for 1 to 3
{
Ande um passo com a perna direita
Ande um passo com a perna esquerda
}
Vire 90 graus à esquerda
for 1 to 2
{
Ande um passo com a perna direita
Ande um passo com a perna esquerda
}
Abra a porta da geladeira
Pegue o conteúdo na primeira fileira à direita, na terceira posição
Feche a porta
Vire 180 graus
for 1 to 2
{
Ande um passo com a perna direita
Ande um passo com a perna esquerda
}
Vire 90 graus à direita
for 1 to 3
{
Ande um passo com a perna direita
Ande um passo com a perna esquerda
}


Linguagem de seres humanos

    – Pegue uma cerveja para mim, por favor.

 


 

O mais poderoso supercomputador existente hoje em dia pesa 1,5 kg e está entre nossas orelhas: é o cérebro humano.

 

quote-the-computer-is-a-moron-peter-drucker-8-19-15.jpg

 

 

Deep Dream

O Deep Dream é um algoritmo de redes neurais do Google, que manipula imagens.

Há um site que permite upload e uso fácil do deep dream: https://www.deepdreamit.com. É muito fácil usar.

Fiz uns testes com uma foto antiga. E me senti como o Sandman (https://wordpress.com/post/60116187/1230/)

deepdream_3964fedce243b1a8b5b2cd888b402527

deepdream_d63aec3bf524d47998d135459a87c8c0

deepdream_a4bdc55b77480170e3b65d08cc23456c

deepdream_4a1200ca4d917327212c72a4790f8f26

Memória rápida e memória lenta

Há diversas similaridades entre computação e biologia. Uma dessas similaridades acontece com as formas de memória utilizadas.

By-Year-2045-It-Would-Be-Able-To-Transfer-Your-Brain-To-A-hard-Disk-1


 

Memórias de computador

Computadores têm dois tipos de memória. Uma com velocidade de processamento extremamente rápida mas capacidade de armazenamento limitada, a memória RAM. A outra, com velocidade de acesso baixa mas capacidade gigantesca, que é o disco rígido do computador.
 

Quando o computador vai processar alguma coisa, utiliza a memória rápida, faz todo o processamento necessário e grava/lê os resultados na memória devagar.

 
A memória rápida é muito cara, em termos de US$/megabyte, portanto ela deve ser grande o suficiente para o processamento, mas muito menor que a memória devagar. Já a memória devagar é barata, portanto dá para ter gigabytes dela.
 

É mais ou menos que nem a mesa de trabalho e um armário de arquivo. Pego do arquivo tudo o que preciso, e deixo na minha mesa. Faço o meu trabalho na mesa e depois devolvo tudo certinho ao armário.

 


Memórias do cérebro

O cérebro humano também tem uma memória rápida e outra devagar. A lógica é exatamente a mesma do computador. A memória de trabalho é limitada e gasta uma enorme energia, além de esquecer facilmente a informação. Já a memória de longo prazo não esquece tão fácil assim, mas demora bastante para gravar alguma coisa nesta memória.
 

Quando a gente aprende alguma coisa nova, quem trabalha é a memória rápida. Na primeira vez em que se dirige um carro, a pessoa presta muita atenção em tudo. Lembro que eu tinha que ver onde estava o câmbio, todas as vezes em que trocava de marcha. Depois que o conhecimento é assimilado, o esforço de dirigir diminui bastante, vira algo automático: o conhecimento foi para a memória devagar.

 
Falar em outra língua, em outro país, também é uma atividade bem difícil e exaustiva no começo. Isto porque a memória rápida tem que se concentrar bastante. Depois de um tempo, a pessoa se acostuma, ou seja, o aprendizado vai para a memória devagar.
 


Memória virtual

O computador usa uma malandragem, que é a memória virtual. Quando a memória RAM acaba, o processador pode pegar um pouco da memória do hard disk emprestada temporariamente. O desempenho do processamento vai diminuir um pouco, mas há o aumento do limite de informação a ser manipulada.
 

Até aí, eu já sabia. Mas o que eu não sabia era que o ser humano também conseguia fazer isso: pegar emprestado um pouco de sua memória de longo prazo para usar na memória rápida.
 

Rüdiger Gamm é um cara normal, e era péssimo em matemática. E ele foi treinado em dividir números primos até a 60a casa decimal, raízes quínticas, etc, tudo de cabeça. Como ele conseguia?

 
Um escaneamento do seu cérebro mostrou que ele estava usando áreas da memória de longo prazo para conseguir estender a sua memória comum.
 

http://archive.wired.com/wired/archive/11.12/genius_pr.html
 


Memorização

Há diversas técnicas de memorização poderosas. Por exemplo, uma delas é associar uma lista de palavras que a pessoa quer decorar com algum lugar físico, e criar uma historinha. Ou associar números de 1 a 99 com pessoas, e números com mais dígitos são uma combinação das pessoas representadas pelos números até 99.

 
Mais ou menos assim:
Decore um número de telefone: (32) 94366-2342
Decore uma historinha: o Bozo subiu em um poste e comeu bife de cavalo com o Silvio Santos, depois beijou a Debora Secco.

o-SILVIO-SANTOS-facebook
É muito mais fácil decorar a historinha, não? O truque é treinar para codificar/decodificar a historinha para os números.

Virando historinha, a gente acessa outras funções do cérebro: criatividade, empatia com os personagens, visualização, etc. E estamos usando outras partes da memória. 

 


Matrix

No filme Matrix 2, tem uma cena em que a Trinity tem que fugir de moto. Mas ela não sabe dirigir. Então, ela downloada a capacidade de dirigir, instala na sua cabeça, e aprende a pilotar a moto em segundos. É no minuto 1:20 do vídeo a seguir.

 

 

Será que um dia chegaremos neste nível?

 

Arnaldo Gunzi
Ago 2015

 
 
 

O Meme de computador

O que é (ou deveria ser) um meme?

A grande maioria das pessoas acha que um “meme” é uma figura com alguma frase escrita sobre ela, com alguma finalidade humorística.

images

 

Mas um “meme” é muito mais do que isto. A palavra “meme” foi criada pelo cientista Richard Dawkins, em seu livro de 1976, “O gene egoísta”.

 


Richard Dawkins é grande defensor do Darwinismo: a ideia de que as espécies animais passam pelo processo de evolução natural, em que as espécies mais bem adaptadas ao ambiente sobrevivem.
 

Uma dos grandes avanços da ciência foi a descoberta do DNA. É através da informação genética que as características dos pais são transmitidas a seus filhos. Está tudo codificado nos genes: cor do cabelo, formato das mãos, altura, etc.

gene

A ideia é que um “gene” transmite uma unidade de informação biológica do pai para o filho.
 

Já um “meme” é algo que transmite uma unidade de informação cultural de uma pessoa para outra.
 

Portanto, uma ideia que é transmitida de uma pessoa à outra é um meme: “Se é Bayer é Bom”, “rouba mas faz”, “pior que está, não fica”, “aqui é Corinthians”. São ideias virais, e o que é transmitido pelo “vírus” é o “meme”.
 

Esta ideia memética pode ser uma música, uma fofoca, uma ideia, uma figura, um vídeo, e até um… meme de computador!


 

Todos nós recebemos e transmitimos um monte desses memes de informação ao longo do dia. Somos uma composição dos memes que chegam a nós e que permitimos que sejam incorporados à nossa personalidade.

 
Portanto, um “meme de computador” é um “meme”, mas um “meme” engloba um conceito muito maior do que o de “meme de computador”.

 

Arnaldo Gunzi

Jul 2015
 

Experimento sobre evolução

Karl Sims é um cientista da computação e artista gráfico.

Ele usou seus conhecimentos em computação e animação para criar um ambiente que simulava a evolução.

A simulação começa com uma séries de bloquinhos com articulações montadas aleatoriamente. Cada indivíduo pode sofrer uma mutação. A função objetivo é ter movimento. Os indivíduos que conseguirem se movimentar melhor tem maior probabilidade de se reproduzirem. Os filhos herdam algumas das características dos pais, e também podem sofrer mutações.

A evolução é cega, sem um plano, sem um guia, sem um formato final correto. A gigantesca maioria dos seres que se formaram foi eliminada, por não obter sucesso. Mas alguns conseguiram evoluir, para os mais diversos formatos possíveis. Alguns pareciam animais já conhecidos, como cobras e peixes. Outros, de forma não tão óbvia, se movimentavam dando cambalhotas.
O vídeo é fascinante. Vale a pena assistir.

Em outro experimento, o objetivo era tomar posse de um cubo verde. Então, surgiram algumas estratégias diretas, como ser o mais rápido a chegar. Teve um que largou mão de procurar o cubo, e foi direto bloquear o adversário. Mas o melhor foi um que usou uma estratégia indireta, de fazer inveja a Sun Tzu: dois braços longos, que simplesmente cercavam a bola. Qualquer ataque do inimigo simplesmente fazia com que a bola ficasse presa em um dos braços longos.

Captchas

images (2)

 

 Captchas
Certamente quem mexe na internet já se deparou com um captcha: é uma imagem, com números e letras aleatórias, e o usuário deve digitar o que lê numa caixa. Se acertar, ele tem acesso. Se não, ele não consegue avançar.

 

Para que serve essa coisa irritante?

 

Serve para distinguir um robô de um ser humano. É relativamente simples criar um programa para visitar páginas da internet e ficar vasculhando o conteúdo. Mas o que gera receita de verdade para o dono da página são seres humanos, e não programas de computador. Um robô pode inclusive roubar o conteúdo valioso de um site e divulgar para o mundo inteiro.

 

Por que o captcha tem que ser tão difícil, cheio de letras distorcidas e traços que atrapalham? Porque existem outros programas de computador, os OCR, que pegam uma imagem e reconhecem o que está escrito. Portanto, o captcha tem que ser suficientemente difícil para um OCR não conseguir transcrever. E, por isso, os captchas são difíceis de entender. Tão difíceis, que nem os humanos entendem… Eu odeio esse negócio. Uma vez, errei três vezes seguidas a transcrição desse negócio, e desisti de acessar o site. Mesmo quando consigo, tenho que fazer um enorme esforço de concentração para isto.

 

Se somar a quantidade de energia mental gasta nesta porcaria por milhões de pessoas no mundo inteira, questiona-se se o captcha foi mesmo uma boa invenção.

O Re captcha

 

O criador do captcha, ao notar o quanto estava dificultando a vida de milhões de pessoas, bolou um jeito de usar esta enorme energia mental para algo produtivo.

 

O google tem uma iniciativa de escanear livros de bibliotecas, e vem gastando um esforço considerável nisto: escaneres extremamente velozes e alta definição, tempo e dinheiro com funcionários para escanear, servidores para armazenar a informação, especialistas em OCR, etc. Mas, mesmo assim, ainda tem um monte de palavras que o OCR não consegue entender. Aí, o google tinha que pagar pessoas para fazer a desambiguidade.

 

A ideia foi brilhante: pegar essas palavras que o OCR não conseguiu entender, jogar no captcha um milhão de vezes. A palavra que for assinalada mais vezes tem grande probabilidade de ser a palavra correta. E todos aqueles que respondem a um captcha estão ajudando a digitalizar um livro.

 

Mas, se ninguém sabe exatamente qual a palavra correta, como usar a palavra escaneada como captcha?

 

Simples, no recaptcha aparecem duas palavras: uma de controle, e a outra com a palavra escaneada. O ser humano só tem que acertar a primeira palavra.

 

Menos mal saber que o tempo gasto para provar que não sou um robô contribui para a digitalização de livros.
difficult-captcha

Alternativas
 

 

Para mim, a responsabilidade e o ônus de saber quem é computador ou não deveria ser do dono da página, e não do usuário.

 

Surgiram outras formas de filtrar robôs, que são muito mais humanas que o captcha.
  • Fazer perguntas literais simples: do tipo “Quanto é dois somado a três?”
  • No ipad, pedir para fazer gestos simples: “Por favor, arraste dois dedos de baixo para cima” (no caso, é para filtrar adulto de criança)
  • Colocar joguinhos simples: arrastar um bloco para um buraco, por exemplo
  • Rastrear a velocidade com que o usuário acessa links e aperta botões.

Unir o útil ao agradável
 

 

A principal razão de eu contar esta história toda não é falar sobre captcha. Mas sim, mostrar que dá para achar utilidade em algo que parecia não ter.

 

Todos os dias, milhões de pessoas gastam tempo, energia e processamento computacional navegando na internet, jogando os mais variados tipos de jogos, acessando facebook, twitter. São formas de entretenimento, não há nada de errado nisto.

 

E se, de alguma forma, quem jogasse um jogo ou lesse uma notícia num site qualquer ao mesmo tempo estivesse contribuindo com alguma coisa, como pesquisa de combate ao câncer?

 

E se fosse possível quebrar um problema em milhões de problemas pequenos e a resolução deste problema for codificado como um pedaço de um jogo?

 

Seria unir o útil ao agradável, e aproveitar um pouquinho do tempo e da energia coletiva de milhões de pessoas.

 

Arnaldo Gunzi

Março 2015


Siglas
Captcha: Completely Automated Public Turing test to tell Computers and Humans Apart
OCR: Optical recognition character
Teste de Turing: concebido por um dos criadores do conceito de computação, o teste de Turing serve para distinguir humano de computadores. Pegue um humano e coloque numa sala. Este humano faz perguntas e recebe respostas de alguém de fora da sala. Se o humano não conseguir distinguir se está falando com um outro humano ou uma máquina, a máquina passou no teste.

Killer application

excel-11-chart-quick-analysus

Hoje participei de uma reunião, com vários diretores da empresa discutindo cenários e fazendo contas de vários milhões de reais (numa grande empresa, é fácil esses cenários passarem de milhões). E qual o software que este pessoal utilizou? Matlab para cálculos numéricos multidimensionais? R, para modelagem estatística pesada? Java ou C++? É claro que não. Eles usaram o bom e velho Excel. E este fato se repete em TODOS os níveis de uma empresa, desde o analista que necessita de algum controle até o CEO.

É impressionante como um software pode ser tão onipresente.
O Excel tem duas características principais: 1 – É extremamente intuitivo para o ser humano trabalhar em duas dimensões, acrescentando a complexidade que quiser e modelando conforme a sua cabeça mandar; 2 – É um software extremamente poderoso, permitindo funções extremamente elaboradas e macros para automação de processos.


Mas o Excel não é a primeira planilha eletrônica da história. Esta honra cabe ao Visicalc, feita para o Apple II.
O Visicalc é o que podemos chamar de “Killer application”: a melhor aplicação, a melhor faixa do disco. Como não poderia deixar de ser num mundo onde a lei de Pareto impera, o killer app sozinho já justifica todo o investimento. Muitas empresas compraram o Apple II só por causa do Visicalc.

Dizem que o cara que criou o Visicalc teve a inspiração numa aula. O professor fez uma série complicada de relações financeiras na lousa. Após fazer o modelo, ele mudou um parâmetro, e teve que recalcular a tabela inteira, com apagador e giz.

Sendo o criador do Visicalc mais um cientista da computação do que um empresário, ele não teve a ambição de dar passos muito maiores, dando espaço para concorrentes melhores surgirem pouco tempo depois: Lotus 1, 2, 3, e, é claro, o Excel.


Dica: em todos os trabalhos que você for entregar, descobrir qual o “killer app”. Não apenas fazer o trabalho que foi encomendado, mas procurar responder: Qual a principal função deste trabalho? Que gargalo ele vai resolver? O que o cliente (ou o chefe) quer de verdade?

Arnaldo Gunzi
Março 2015

Abelha polinizadora

Segundo Walter Isaacson (do livro Inovadores), gênio é o que olha para uma situação e enxerga um único ponto: o mais importante.

John von Neumann foi um poli matemático gênio, influenciando diversas áreas, e sendo um dos responsáveis pela arquitetura do computador moderno.

Quero enfatizar aqui o estilo de Von Neumann: o estilo de abelha polinizadora. Na configuração da arquitetura do computador, ele não era especialista em quase nada. Mas tinha visão de tudo e agia mais como alguém indo e voltando com ideias, e discutindo com especialistas de áreas específicas (memória, processamento, algoritmos, etc).

Ele não era um maluco solitário, mas um fanfarrão colaborativo.

download (2)

A Lei de Moore e o futuro da Apple

Moore

Gordon Moore foi um dos fundadores da Intel, e um dos precursores da revolução digital das últimas décadas. Nos anos 70 predisse uma lei, que se mostra aderente à  realidade até hoje.

Computadores são feitos de microchips, que são transistores e outros componentes eletrônicos empacotados. Moore percebeu que a tecnologia de miniaturizar e integrar esses componentes ficava cada vez melhor e conjecturou que o poder computacional dobraria a cada 18 meses, para o mesmo custo. Observe que esta função é exponencial, implicando que os computadores depois de alguns anos seriam várias ordens de grandeza melhores que as versões antigas.

A Lei de Moore passou a ser ao mesmo tempo uma meta a ser atingida. Não só da Intel, mas da indústria em geral. Esta lei predisse com notável  acuracidade o poder dos computadores vindouros. Hoje em dia, um smartphone que cabe no seu bolso tem poder computacional maior do que os melhores computadores de décadas atrás, que ocupavam o tamanho de um prédio inteiro.

Anos 2000. A Apple lança o iPhone, revolucionando o mercado de telefonia. No final da década, lança o iPad, praticamente iniciando o mercado de tablets. O seu modelo é vertical, no sentido de controlar software e hardware. A Apple é seguida por dezenas de competidores. Competidores de hardware, sendo a mais notável a Samsung. E seguidores de software, sendo o mais notável o Android do Google. Estes num modelo horizontal.

Quem vai vencer esta guerra, e o que a Lei de Moore tem haver com isso?

Os iPhones originais foram cuidadosamente desenhados para obter o máximo de poder como mínimo de hardware. Por exemplo, o Flash player foi tirado do IOS por causa da sua enorme necessidade de computação. O iPad 1 não tinha câmera. O que importava era a experiência dos usuário. E a Apple entregou esta experiência  de forma fantástica. E só a Apple conseguia fazer isto, por dominar hardware e software. Antes do iPhone, tinha-se gadgets que prometiam tudo (câmera, vídeo, Internet), mas não entregavam nada direito (ou a bateria não durava, ou o software dava pau, ou não dava para entender como usar).

Mas, pela Lei de Moore, os computadores evoluem de forma que o hardware passa a aguentar um software mal otimizado. A inovação vira lugar comum em poucos anos. O Samsung + Android passa a rodar tão bem (ou melhor) quanto o Apple, com a vantagem do modelo horizontal e de custo menor. O modelo horizontal permite que dezenas de outros fabricantes de hardware possam usar o Android, centenas de milhares de desenvolvedores possam ajudar a evoluir o Android – contra um fabricante e arquitetura fechada do IOS. E a Apple passou a apelar para o caminho jurídico, de processar rivais por copiar ideias.

A mesma história ocorreu na década de 80. O personal computer era novidade. Dezenas de fabricantes, vários padrões. E a Apple surge, com um Steve Jobs abrindo caminho: interface visual, mouse, o usuário só precisa clicar, software que não dá pau. E surge o seguidor, a Microsoft, que copia um monte de coisas: a interface visual, o mouse + cliques. Mas o Windows rodava em qualquer computador de qualquer fabricante, e era muito mais barato. O Windows dava pau, era uma merda, mas todo mundo usava, era fácil de piratear, e com o tempo (e a Lei de Moore a seu favor) evoluiu muito. Depois de alguns anos, a Apple passa a processar a Microsoft (infrutiferamente).

Somente inovação contínua e disruptiva sustenta um modelo vertical como o da Apple (batalha jurídica não). Ser sempre o primeiro, o melhor. Mas, sem um gênio comandando o barco, não se sabe se isto se sustentará.

Outro caminho é o mercado de nicho. Focar somente em quem pode pagar por uma experiência do usuário melhor, num ecossistema mais protegido. Se eu tivesse ações da Apple, as manteria em carteira por mais alguns anos (pois estão colhendo frutos das inovações da última década, lucros enormes), mas sem comprar mais. Provavelmente, as venderia num futuro próximo.
Vejamos cenas do próximo capítulo.

O melhor é ser o pior?

3776947930_7998829070_z

Quando os fundadores do Google procuraram o Yahoo, e mostraram as vantagens de um algoritmo de busca superior, que ordenava as pesquisas por prioridade e importância da página, o pessoal do Yahoo disse: “Mas isto é terrível. Assim o usuário vai clicar no primeiro link da primeira página e sair do Yahoo. Queremos mais é que eles fiquem várias páginas navegando!”

Naquela época, todos os principais portais de busca tinham um monte de propagandas em suas páginas (que era da onde vinha a receita deles). Portanto, era totalmente contra intuitivo ter um buscador bom, tão bom a ponto do usuário sair da página em segundos, sem nem olhar para os anúncios.

Como surgiu o “bug” de computador

bug
O bug de computador é um fato comum a todos que já utilizaram um computador. E os bugs acompanham a história dos computadores desde os primórdios da computação.
Havia um tempo em que os computadores eram eletro-mecânicos. Relês acionados eletricamente faziam uma conexão entre dois pontos, indicando o bit 1, o relê desligado era o zero. A programação do computador era ligar fios entre inúmeros circuitos para indicar qual seria a lógica a ser executada.
Mas, um dia, o computador travou. Foram ver qual era o problema, o que conhecemos hoje em dia como “debugar”. E encontraram o problema. Era uma mariposa, que tinha ficado presa em um relê. Por isso, o nome “bug”. Neste caso, era literalmente um “bug” o responsável pelo bug.
Programar naquela época deveria ser um pesadelo para qualquer um. Além dos inevitáveis bugs lógicos de programação, eles tinham que lidar até com bugs biológicos presos nos relês eletromecânicos.

Como eram os computadores antes dos computadores?

 

 

Na verdade, não eram computadores, e sim, computadoras. Uma sala cheia de mulheres, cada uma em sua baia, fazendo contas com lápis e papel.

 

As computadoras foram utilizadas no Projeto Manhattan, na Segunda Grande Guerra. O Projeto Manhattan foi o projeto secreto com a finalidade de fabricação da bomba atômica. Para a execução deste, juntaram-se os maiores gênios da física da época, incluindo judeus foragidos da Alemanha Nazista.

Continue a ler o post  no meu blog de tecnologia:

http://exceltequila.wordpress.com/2014/02/01/computadoras/