15 de jul de 2012

David Lightman

Ficção: Acho que ainda vou escrever um livro de contos
Quando pela primeira vez vi o filme estreado por Matthew Broderick, Jogos de Guerra, era inverno de 1985. O filme conta a estória de um rapaz, que roubava a senha do sistema de notas do colégio, acessava e mudava as notas. Logo após ele desenvolve uma série de ligações telefônicas usando um computador Apple, a qual entra em um jogo da velha no computador que na verdade era o sistema de guerra (ARPA) dos EUA. Por pouco ele não acaba com o mundo. Nada muito impressionante, mas achei aquilo legal.

No mesmo ano, meu pai chegou dos EUA com um Apple ][e. Uma caixa parda, com uma maçã colorida e mordida. Nos meu auge de 7 anos, pensei comigo "Agora vou ser melhor que aquele cara". Levamos talvez uns 3 meses para ligar tudo, pois a começar com a tomada, a eletricidade, o estabilizador, as barras de cobre para o aterramento em casa, tudo que meu pai teve que comprar depois, pois tudo era diferente de tudo que já tinhamos visto. Até que um dia montamos tudo. A primeira vez levei um susto. O estabilizador era maior e mais barulhento que todo o computador. Tinha uma chave de metal que dava medo de ligar. E ao ligar dava um estouro que parecia que ia queimar tudo. CLANKNNNNNNNNNN. Mas o computador era silencioso. A tela verde, no meio no alto, o nome da empresa, e um sinal logo abaixo em uma tela não maior que uma TV de 14", esverdeada como um ET. E agora? Nada a ser feito. Era só isso. Fiquei lá olhando e pensando no filme, dizendo para mim mesmo "Cara, agora tenho que digitar alguma coisa."


Teclas macias, fazia um tecl diferente de uma máquina de escrever. Mas era muito macio. Talvez o teclado mais macio que já usei. Nem mesmo os Apples atuais tem teclado tão macio e gostoso ao toque. As teclas eram texturizadas, o que dava mais leveza ainda ao digitar. Mas tudo que digitava e apertava o grande botão RETURN dava um beep chato e alto, com o texto:
? SYNTAX ERROR

Em poucos minutos vi que deveria aprender sobre algo que nunca tinha visto, que não existia nas escolas, que no trabalho de meu pai era um monstro que ficava dentro de uma sala de vidro, com pessoas ao redor vestidas de branco. Bom, o primeiro raciocínio lógico foi formado. Se aprendo com livros na escola, devo achar um livro para aprender isso que tenho aqui. É meu amigo. Era o tempo ainda que tinha que ler livros para aprender sobre alguma coisa. Não existia o Google, nem a Wikpedia, Twitter, internet, nem Face, só mesmo o book. Era ler para aprender.


Começou minha peregrinação. Entrava em tudo que era livraria e perguntava: "Tem livro de computador?" Os atendentes achavam graça. Uma criança perguntando de livro de computador? Deve estar procurando revista sobre ATARI ou um novo boneco dos Comandos em Ação. Não era nada disso. Eu queria um livro de computador. Droga, ninguém me entende? COMPUTADOR! Nas bibliotecas publicas e da escola então, nem sinal de livro nenhum sobre computadores. Só livros chatos sobre politicas, psicologia e enciclopédias.


Mas foi um dia que estava com minha mãe em uma papelaria, e tinha um cebo, com muitos livros velhos. Perguntei para a atendente "Tem livro de computador?" Ela deu um sorriso e me mostrou uma caixa com alguns livros. Lembro até hoje meu coração batendo mais forte, pois bem em cima da caixa, sobre todos os outros, tinha um livro, espiral, talvez um pouco maior que a minha mão, amarelado e surrado por uso, mas a foto brilhou como um diamante. Era o meu Apple ][e na capa, e logo abaixo, o nome do meu computador escrita com as mesmas letras que tinha visto na tela em casa. Era este! Tinha que ser! Todo em inglês, não entendia uma palavra que estava escrito. Mas uma folha que abri no começo estava escrito idêntico no meu computador, na imagem da tela quando ligava, e em seguida tinha algo escrito, HOME, e mais alguma coisa talvez explicando o que era aquilo. Agarrei o livro e corri para minha mãe dentro da loja "Mãe! É esse! É esse!" Ela sem entender muito, comprou o livro do cebo. Cheguei em casa, liguei o estabilizador CLANKNNNNNNNNNN, esperei o beep do computador. Apareceu o sinal de novo. Abri o livro, digitei lentamente o que estava escrito no livro: HOME e apertei a tecla RETURN. TCHAN! A tela se apagou por completo e o cursos apareceu bem em cima da tela. Meu pai do céu! HOME apaga a tela! 


Passava noites e final de semana tentando entender o livro, executando cada comando que estava ali. As vezes dava certo, as vezes não. Claro, sem deixar de andar de bicicleta, jogar bola(isso muito pouco), inventar outras coisas como asas(aham!), ir em festa de aniversário, cortar árvore no terreno baldio para fazer cabana de guerra, roubar goiaba no pé do vizinho e correr para não levar tiro de sal. Eu sempre fui uma criança normal para minha época. Década de 80, muita coisa para fazer na rua. Passava a manha toda na escola, tarde na rua e noite em casa. Ficava no computador das 19h até as 21h, quando tinha que dormir. As vezes esperava todos irem dormir, ou acordava antes de todos para continuar testando mais alguns comandos, mas o barulho do estabilizador, alto, forte e chegava a tremer o chão da casa, CLANKNNNNNNNNN me denunciavam. Então parei com isso. Ou minha mãe me obrigou com uma bela chinelada na bunda. Não lembro ao certo, mas foi por este caminho.

Fiz alguns programas em Basic mesmo. Aprendi um pouco de assembly, entendia de filas, pilhas, registradores, armazenamento. Deixei o velho Apple de lado quando chegou um IBM XT no início da décade de 90. Estudei sobre os registradores do 8088, aprendi todos os comandos do DOS 2. Tinha um compilador de programas GW-BASIC que era muito semelhante ao Basic anterior do Apple. Fazia gráficos, jogos, programas de controle. Tudo nele. Aprendi sobre portas seriais, controladores. Um pouco de eletrônica. E quando a coisa pegava, usava um PEEK POKE para acionar diretamente as posições de memória e fazer algo que a linguagem não permitia. Mas eu queria mais. E foi em 1995 que apareceu algo novo. Compaq Presario 5528, com Windows 3, leitor de CD, placa de som, modem. Modem?

Modem. Sim, tinha um lugar que no manual dizia para ligar o cabo do telefone. Liguei e descobri que tinha um programa que atendia chamadas, funcionava como secretária eletrônica, mandava e recebia fax. UAU. Mas não era somente isso. Pensei no filme de novo. Jogos de guerra. ISSO é um modem! Deve se comunicar com outro computador. Mas como? Comecei minha peregrinação novamente. O acesso a informação era algo tão distante quanto o homem ir para Marte nos dias de hoje. Até que encontrei novamente em uma banca, uma revista que falava de uma rede, chamada de Internet, que era oferecida pela gigante americana CompuServe. Mas era somente nos EUA. Após algumas ligações para os EUA, usando uma lista telefônica e um pouco de conversa em um inglês sofrível, consegui os números de acesso aos BBS da Compuserver. Era nada mais que uma tela, onde dava para entrar em salas, conversar com pessoas, o que era o IRC, ou o Facebook de hoje. Mas era só isso. E eu queria mais. Conversando com outros integrantes, recebi a notícia que tinha que atualizar meu Windows 3 para 3.11, que tinha o Winsock, e outras firulas para conectar na Internet se eu queria realmente mais. Que senão ficaria somente nas salas de bate papo e pouca coisa dava para fazer. Fiz isso. Demorou para conseguir uma cópia do Windows Network 3.11. Paguei caro por ela, pois encontrar software pirata naquela época era mais difícil que encontrar um camelo nos polos.

Windows NetWork 3.11 instalado, configurado, tudo certo. Liga para o BBS nos EUA de novo. De madrugada, para não sair absurdamente caro. Pergunto o que devo fazer. Me passaram um navegador pelo BBS. Sim, dava para receber e mandar arquivos, sem se preocupar com restrições e seguranças. Isso deve ter levado uma eternidade. Tipo 2 dias para conseguir baixar tudo.  Não lembro, mas duvido que tinha mais que alguns kbytes. Imagine uma ligação de telefone, com modem, para EUA, do interior do interior do Rio Grande do Sul? Ficava feliz quando chegava a 9k! A magia estava completa. Mas agora? Abro esse tal de Mosaic e ele não faz nada! Volta ao BBS e pergunta: "Hey, I´m opening Mosaic, but now?" e alguém no chat respondeu "Type http://www.altavista.com and hit ENTER" e assim eu fiz. UAU! Era isso que eu queria! Bem vindo ao mundo da informação! Nossa, meu pai ficou louco quando recebeu a conta de telefone aquele mês.

Mas isso para mim não era suficiente. Eu queria mais. Mas não dava para pagar por isso desse jeito. Ligação para EUA eram (e são) o olho da cara. Foi então que descobri um tal de Mandic. Isso ainda em 96. Mandic era um provedor da época em SP. Era simples. Mandava o computador ligar para o provedor, que fazia um cadastro, e dava alguns minutos de graça para testar. Bom, como já tinha um gerador de CPF que tinha feito ainda no Apple, desenvolvi meu primeiro discador e cadastrador de conta com ele. Era simples, o software mesmo discava para o provedor, fazia o cadastro e liberava a internet por 10 minutos. Até que me irritei com isso e fiz uma assinatura. Pagava-se algo como R$100 por mês para ter acesso a uma internet sofrível.

Assim foi até que surgiu alguns BBS na região. Usava o meu programa para discar para eles e fazer o cadastro, ja que a grande maioria trabalhava no mesmo plano de negócio. Tinha descoberto um que era permitido dar os créditos para outra pessoa, e assim alterei e usei meu sistema para cadastrar vários novos usuários com alguns minutos de internet e dava tudo para uma unica conta. O melhor foi quando descobri que certos BBS aceitavam ligação a cobrar. Foi o paraiso. Horas, dias, semanas conectado a internet. Pesquisando sobre o funcionamento da própria.

Estudei servidores Unix, Linux, BBS, redes TCP, UDP, segurança. Roteadores, IPX, HTTP e mais uma penca de outras coisas. Fiz um servidor em casa, que ficava disponível quando eu estava ligado a internet. Fiz meu primeiro stream de video, ok, 16x16 pixel, com 16 cores e um frame por segundo, muito tosco, mas era uma foto que minha câmera digital com seus incríveis 16mb de memória, sem visor, era acionada automaticamente, salvava a foto no computador, era convertida, e atualizada em uma pasta, que era enviada dentro de um HTTP do servidor que eu mesmo criei. Tinha um refresh de 1 segundo para pegar a próxima foto que estava atualizada. As garotas do chat do IRC piravam. Era só digitar no navegador delas algo como http://200.1.2.3 e me ver ao vivo! Quando a bagaça não dava tela azul no Windows.

E porque tudo isso? Porque o que quero dizer é que tudo que existe hoje, já existia no passado. Eu quero mais. Isso para mim não serve. Minha busca por mais informações, agora com meus 34 anos ainda não sanaram. Sou o mesmo quando tinha 7 anos de idade e queria mais. Claro, estive estagnado alguns anos, principalmente pela rotina da vida. Trabalho normal, estudo normal, conta para pagar normal, mas basta. E para isso estou promovendo uma nova faze da minha vida. Uma faze que inicio novamente o conhecimento. Onde novamente inicio minha busca por conhecer pelo simples fato de saber. Não quero ser melhor que outros, ou saber mais que ninguém. O que quero é para mim, e se for de bom grato a outros e me pedirem, vou repassar. Conhecimento existe para ser compartilhado. Então inicio uma nova faze na minha vida, onde minhas idéias mirabolantes não podem ficar somente no papel. Elas tem que ser públicas, e em um objetivo, principalmente onde deve ser seguido e executado. Devem ser úteis, e se possível, que de segurança para minha filha que amo tanto.

Tenho tanta coisa que sai da minha cabeça. Tanta coisa para solicitar registros, patentes e toda a burocracia que novas ideias tem. Algumas já achei referências na internet que estão existindo, outras ainda não vi nada igual. Pois vai uma pequena lista:

1 - Máquina de fazer cego ver: Usando imagens de 2 câmeras convertidas em sons, onde as cores RGB recebem um tom cada, fluindo de um lado para o oposto, de cima para baixo, como no feixe de TV, onde o volume é determinante para a intensidade de cada cor existente, é produzido um som espacial 3d, em fones de ouvidos na pessoa. O volume deste som é ajustável, assim como a intensidade, velocidade. Para aprimorar, deve ser utilizado o logaritmo de foco de atenção criado pelo MIT(se não me engano. Eu tenho a referencia em algum lugar), onde para este foco é dado maior detalhamento. Para melhor funcionamento, me veio a idéia abaixo:

2 - Processador com 3o BIT. Atualmente um processar pena para ser extremamente preciso com uma informação. Mas se ele não for? Simples, temos dados aproximado. Mas será que dados aproximados não são suficientes para fazer cálculos? Ou melhor, será que não é mais eficiente para cálculos de grandezas parcialmente desconhecidas? Devemos realmente calcular todos os fatores de divisão de um numero primo ou simplesmente dizer que ele tem 80% de chance se estiver em uma parábola, confirmando instantaneamente que o número é primo, mesmo que ele não seja? Pense em numero na ordem de 2^10^10^10^10 -1. É primo ou não? O processador pode responder instantaneamente sim ou não com x% de certeza. E se tiver errado, seja capaz de corrigir sua rota de conhecimento. Utilizando outro processador que irá executar a ação, e registrar o acontecimento, analisando a informação que ele chegou e a informação que o outro chegou. E se demorar de mais? Assuma-se que o outro esteja correto e pronto. Ou diga-se que não sabe. Parece coisa de preguiçoso? Mas é. Temos que trabalhar com a principal força da natureza, a lei do menor esforço para estar mais próximo do natural.

Atualizado : Acabo de ler hoje que fizeram isto em maio/2014. Bom, eu estava ao menos antecipado em 15 anos ...

Bibliografia:

Neuromorphic Electronic circuits for Building Autonomous Cognitive Systems
Elisabetta Chicca, Fabio Stefanini, Chiara Bartolozzi, Giacomo Indiveri
Proceedings of the IEEE
Vol.: 99, 1-22
DOI: 10.1109/JPROC.2014.2313954

3 - Absorver, aprender, decidir, fazer. Isto é o ciclo de aprendizagem. O principal problema da inteligência artificial hoje é a exatidão que temos que tratar as informações. Com um processador que faz pouco caso com ela, geraria um caos, mas este mesmo caos é de extrema importância na abordagem natural do processo de aprendizagem. Alguma vez alguém leu um livro inteiro e conseguiu recitar todo o texto do livro? Palavra por palavra, página por página? Não né. Isto é porque utilizamos o mesmo algorítimo de atenção citado no item1. Que deve ser melhorado com o processador do item 2. Ou seja, se colocado toda a informação de um livro em um computador com este 3o bit, terá partes de muita importância, outras de menor e outras totalmente desconhecidas pelo processo. O caos é natural!

4 - SOAP Class: Isto é mais uma viagem total. Uma biblioteca que seja capaz de processar suas classes diretamente em WS, em paralelo com vários WS, para a mesma informação. O primeiro que processar e entregar, é assumido como OK. Se o 2o entregar com outra informação, é aguardado o 3o ou refeito o processo. Caso continue, assuma-se 3oBIT e toca-se ficha no processo.

5 - Banco de dados caótico: Registra-se a informação, mas ela está disponível apenas uma vez. Se registrar 2a mesma, devolve que a info ja está registrada em registro X. Caso não seja utilizado a informação X, a mesma torna-se indisponível. Exclui-se o que não é necessário.

6 - OO com montagem externa: Veja bem. Atualmente a Orientação a objeto tenta trazer para a computação artefatos do cotidiano, mais ou menos numa ordem: 1o Faz-se o projeto; 2o Cria-se o objeto. E depois para alterar um objeto deve ser refeito o projeto. Pois bem, quando eu vou pintar o meu cabelo, não quero voltar para a barriga da minha mãe, apenas para ter o cabelo de outra cor. E por que isso é válido na programação? Sendo assim, uma nova forma de programar, onde pega-se o que ja existe e adapta-se, sem se importar com o resto. Por exemplo, adicionar uma nova caracteristica, alterar uma função, alterar metodos, registros, etc mesmo com a aplicação em funcionamento. Para que isto funcione corretamente, e tudo não fique instável, tem a gerencia de seguranca que deve ser obriatoriamente implementado no processo.

7 - Gerencia de seguranca de execução: Quando um processo chama o outro, o que está recebendo deve receber a assinatura do que está fazendo a chamada, e tomar a decisão se deve ou não considerar esta informação. A gerencia de controle da informação fica a cargo de quem está recebendo. Imagine em uma empresa, quando a mercadoria chegar e estiver errada, simplesmente será colocada em produção ou devolvida para o fornecedor? Pense nisso.

Ok. Por hoje é só. São 4:40 da manha e estou com muito sono!!!!

Boa noite a todos.